
Operating Systems MLFQ + Limited Direct Execution Nipun Batra MLFQ - Revision 2 MLFQ - Revision • Rule 1: If Priority(A) > Priority(B), A runs (B doesn’t). • Rule 2: If Priority(A) = Priority(B), A & B run in RR. • Rule 3: When a job enters the system, it is placed at the highest priority (the topmost queue). • Rule 4: Once a job uses up its time allotment at a given level (regardless of how many times it has given up the CPU), its priority is reduced (i.e., it moves down one queue). • Rule 5: After some time period S, move all the jobs in the system to the topmost queue. 2 Practice Session ./mlfq.py -s 5 -Q 2,10,15 -n 3 -j 3 -M 0 -m 30 -c 3 Practice Session ./mlfq.py --jlist 0,40,0:20,20,0 -Q 5,10,10 -c 4 Practice Session ./mlfq.py --jlist 0,40,0:10,20,0:20,30,0 -Q 5,10,10 -c -B 50 5 Practice Session ./mlfq.py -c 6 Practice Session 7 More Topics Will cover after remaining topics are finished: 1. Lottery scheduling 2. Multi-CPU scheduling (needs concurrency background) 3. Inter-process communication (IPC) 8 CPU Virtualisation Revisited Want to run How to run P2 P3 P1 P1 P2 OS Running Should Scheduler run Low level mechanisms Which program (Context to run switch) 9 Process Control Block (PCB) 10 Process Control Block (PCB) Data structure for process information 10 Process Control Block (PCB) Data structure for process information 10 Process Control Block (PCB) Data structure for process information Running, Blocked, Ready 10 Process Control Block (PCB) Data structure for process information Running, Blocked, Ready PID 10 Process Control Block (PCB) Data structure for process information Running, Blocked, Ready PID Current execution 10 Process Control Block (PCB) Data structure for process information Running, Blocked, Ready PID Current execution Various CPU registers 10 Process Control Block (PCB) Data structure for process information Running, Blocked, Ready PID Current execution Various CPU registers Management of page table etc. 10 Process Control Block (PCB) Data structure for process information Running, Blocked, Ready PID Current execution Various CPU registers Management of page table etc. CPU scheduling information: Priority, Run time, etc. 10 PCB in XV6 11 Process Table Could it be a linked list? 12 Core Challenges in CPU Virtualisation Mechanisms 13 Core Challenges in CPU Virtualisation Mechanisms 1. Performance - Minimise OS overhead 13 Core Challenges in CPU Virtualisation Mechanisms 1. Performance - Minimise OS overhead 2. Control - OS should maintain control 13 Core Challenges in CPU Virtualisation Mechanisms 1. Performance - Minimise OS overhead 2. Control - OS should maintain control 1. Imagine OS schedules a process with infinite loop 13 Core Challenges in CPU Virtualisation Mechanisms 1. Performance - Minimise OS overhead 2. Control - OS should maintain control 1. Imagine OS schedules a process with infinite loop 2. We saw priority reduces over time in MLFQ 13 Direct Execution OS Program 14 Direct Execution OS Program 1. Create entry for process 14 Direct Execution OS Program 1. Create entry for process 2. Allocate memory for process 14 Direct Execution OS Program 1. Create entry for process 2. Allocate memory for process 3. Load program into memory 14 Direct Execution OS Program 1. Create entry for process 2. Allocate memory for process 3. Load program into memory 4. Set up stack 14 Direct Execution OS Program 1. Create entry for process 2. Allocate memory for process 3. Load program into memory 4. Set up stack 5. Execute call main() 14 Direct Execution OS Program 1. Create entry for process 2. Allocate memory for process 3. Load program into memory 4. Set up stack 5. Execute call main() 1. Run main() 14 Direct Execution OS Program 1. Create entry for process 2. Allocate memory for process 3. Load program into memory 4. Set up stack 5. Execute call main() 1. Run main() 2. Execute return from main 14 Direct Execution OS Program 1. Create entry for process 2. Allocate memory for process 3. Load program into memory 4. Set up stack 5. Execute call main() 1. Run main() 2. Execute return from main 1. Free memory 14 Direct Execution OS Program 1. Create entry for process 2. Allocate memory for process 3. Load program into memory 4. Set up stack 5. Execute call main() 1. Run main() 2. Execute return from main 1. Free memory 2. Remove process from process list 14 Direct Execution Challenges 15 Direct Execution Challenges 1. How would OS stop the current process and run another 15 Direct Execution Challenges 1. How would OS stop the current process and run another 2. How does OS ensure that the program doesn’t make illegal access (issuing I/O) 15 Restricted Operations 1. How would OS stop the current process and run another 2. How does OS ensure that the program doesn’t make illegal access (issuing I/O) 16 Restricted Operations 1. How would OS stop the current process and run another 2. How does OS ensure that the program doesn’t make illegal access (issuing I/O) 16 Restricted Operations 1. How would OS stop the current process and run another 2. How does OS ensure that the program doesn’t make illegal access (issuing I/O) 16 Restricted Operations 1. How would OS stop the current process and run another 2. How does OS ensure that the program doesn’t make illegal access (issuing I/O) • Do we stop accessing I/O and network? 16 Restricted Operations 1. How would OS stop the current process and run another 2. How does OS ensure that the program doesn’t make illegal access (issuing I/O) • Do we stop accessing I/O and network? 16 Restricted Operations 1. How would OS stop the current process and run another 2. How does OS ensure that the program doesn’t make illegal access (issuing I/O) • Do we stop accessing I/O and network? • Goal: A process must be able to perform I/O and some other restricted operations, but without giving the process complete control over the system. 16 Restricted Operations CPU Modes (hardware register to indicate) Kernel Mode User Mode 17 Restricted Operations CPU Modes (hardware register to indicate) Kernel Mode User Mode 1. Restricted mode - can not issue IO 17 Restricted Operations CPU Modes (hardware register to indicate) Kernel Mode User Mode 1. Restricted mode - can not issue IO 2. If tries to issue IO or restricted operation, exception raised 17 Restricted Operations CPU Modes (hardware register to indicate) Kernel Mode User Mode Code can issue IO. 1. Restricted mode - Mode that OS runs in. can not issue IO 2. If tries to issue IO or restricted operation, exception raised 17 Restricted Operations CPU Modes (hardware register to indicate) Syscall (Trap Kernel Mode Instruction) User Mode Code can issue IO. 1. Restricted mode - Mode that OS runs in. can not issue IO 2. If tries to issue IO or restricted operation, exception raised 17 Kernel v/s User mode • In kernel mode, the CPU has instructions to manage memory and how it can be accessed, plus the ability to access peripheral devices like disks and network cards. The CPU can also switch itself from one running program to another. • In user mode, access to memory is limited to only some memory locations, and access to peripheral devices is denied. The ability to keep or relinquish the CPU is removed, and the CPU can be taken away from a program at any time. 18 Pop Quiz Interrupt v/s Polling? 19.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages52 Page
-
File Size-