230 likes | 405 Views
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D. Operating Systems { week 02}. from Principles of Modern Operating Systems , 1st edition by Garrido and Schlesinger, Jones and Bartlett Publishers, 2008, ISBN 0-7637-3574-4.
E N D
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D. Operating Systems{week 02} from Principles of Modern Operating Systems, 1st edition by Garrido and Schlesinger, Jones and Bartlett Publishers, 2008, ISBN 0-7637-3574-4
Multiprogramming and timesharing • Multiprogramming goals: • Maximize CPU utilization • Maximize number of processes in memory • Timesharing goals: • Switch CPU among processes such that users interact with each program simultaneously • Maximize fairness almost!
Process scheduling and queues • Processes are created bythe operating system • Processes initially added toa job queue, which containsall processes waiting to enter the system • From the job queue, processes thatare ready for execution are addedto the ready queue
Schedulers • A long-term scheduler(i.e. job scheduler) selects processes from the job queue, adding those processes to the ready queue • A short-term scheduler(i.e. CPU scheduler) selects processes from the ready queueand allocates time with the CPU • More on this later....
Long-term scheduling (i) • The long-term scheduler isinvoked infrequently
Long-term scheduling (ii) • The degree of multiprogrammingofan operating system is defined asthe number of processes in memory • In a stable operating system,the average process arrival rate equalsthe average process departure rate
Long-term scheduling (iii) • Processes are either I/O bound or CPU bound • A CPU-bound process does little I/O and instead makes heavy use of the CPU • An I/O-bound process spends a majority of itstime performing (i.e. waiting for) I/O • The long-term scheduler should select a good process mix of CPU-bound and I/O-bound processes
Long-term scheduling (iv) • Most modern operating systems have no long-term scheduler (e.g. Windows, UNIX) • All processes are admitted tothe ready queue, regardlessof whether the operatingsystem can handle the load • Often results in userschanging their usage habits....
Medium-term scheduling • Modern operating systems implement a medium-term scheduler to swap processes to/from memory and disk
Processes (i) • A process is an active program in execution • Requires CPU time, memory, file access,network access, other I/O access • Operating system is responsible for: • Creating/deleting processes • Scheduling processes • Allocating resources to processes • Synchronizing communication between processes
Processes (ii) • For each process, the operatingsystem manages and executesprocesses by recording: • Program counter (PC) • Registers • Data section (global data) • Stack (temporary data) • Heap (dynamically allocated memory)
Process states • As a process executes, it changes its state
Process control block • Operating system represents each process via a process control block (PCB) • Process state • Process ID or number • Program counter (PC) • CPU registers • CPU-scheduling and memorymanagement information • List of open file/resource handles
Process context switch context switch takes a few milliseconds
Short-term scheduling • The short-term scheduler frequently decides which process the CPU executes next • Typical time slice (t) a process has withthe CPU is 100 milliseconds • How much CPU time is wastedif tis 100ms and it takes 10msto schedule the next processand perform the context switch?
Process creation (i) • Processes are created from other processes • A parent process creates a child process, whichin turn creates child processes of its own, etc. • A tree of processes is the result:
Process creation (ii) • Operating system resources are sometimes shared amongst processes • Possibilities: • Parent and child processes share all resources • Child shares a subset of its parent’s resources • Parent and child processes share noresources
Process creation (iii) • Each process has itsown unique processidentifier (pid)
Process creation (iv) • When a new process is created,the parent has two options: • Parent process continuesto execute concurrently with its children • Parent process waits for its children toterminate their execution • The child process decides what it will do: • Duplicate the parent or load a new program
Process creation (v) • In Unix, a new child process is forkedviathe fork() system call • Child optionally calls the exec()system callto load a new program
What next? • Read and studyChapters 1 and 2 • Do Exercises at the end of Chapter 2 • Also be sure to do the programming exercise on the next slide in C
Programming exercise Did it work? • Implement a program to simulate caching: • Write a function called calculateAnswer() that takes integer n as input and calculates (and returns)the sum (1 + 2 + … + n) • Pretend this method is computationally costly! • Initially, the cache is empty • Ask the user to input a number in range 1..100 • If the answer is not in the cache, call calculateAnswer() and display the resulting sum; store the result in the cache • If the answer is in the cache, simply display the answer