470 likes | 578 Views
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D. Operating Systems {week 04}. Operating system services (i). An operating system provides services : Program execution Load programs into memory, run/suspend/halt programs, handle/display errors
E N D
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D. Operating Systems{week 04}
Operating system services (i) • An operating system provides services: • Program execution • Load programs into memory, run/suspend/halt programs, handle/display errors • I/O operations • Seamlessly interact with I/O devices, includingdisks, networks connection, etc. • Filesystem manipulation • Read/write/traverse filesystem directories,read/write files, enforce permissions, search for files
Operating system services (ii) • Other operating system services: • Inter-Process Communications (IPC) • Processes exchange information via shared memory,message passing, sockets, pipes, files, etc. • Often spans multiple computers and networks • Error detection and recovery • Detect errors in CPU, memory, I/O devices,processes, network connections, etc. • Recover from errors gracefully,ensuring correct and consistent operations
Operating system structure (i) • Using a layered approach, the operating system is divided into Nlevels or layers • Layer 0 is the hardware • Layer 1 is often the kernel • Layer N is the top-leveluser interface (GUI) • Each layer uses functionsand services of the layer(or layers) beneath it
Operating system structure (ii) • Also viewas a stackof services
Operating system kernel • The core program running inan operating system is calledthe kernel • When a computer is switched on,a bootstrap program executes from ROM • The bootstrap program initializes the system, then loads the operating system kernel and starts its execution
User and kernel modes • Program instructions run eitherin user mode or in kernel mode • Kernel mode allows the operating systemto protect itself and its system components switch modesvia system calls
System calls via APIs (i) • OS services are available via system calls • System calls are made via an interface calledan Application Program Interface (API) • Common operating system APIs: • Win32 API for Windows • POSIX API for POSIX-based systems,including UNIX, Linux, Mac OS X • Java API for Java Virtual Machine • C/C++ Standard Libraries
System calls via APIs (ii) • Types of system calls include: • Process control (e.g. start/suspend/stop a process) • Debugging information, too • File management • Device management • Information retrieval and maintenance • Current date/time, number of current users, OS version, amount of free memory, process information, etc. • Communications (e.g. IPC, network)
System calls via APIs (iii) • An API hides the implementation details of the underlying operating system • Programmers just need to abide bythe API specifications • How do we change the API orthe operating system servicesthat it offers? the dude abides...
System calls via APIs (v) • Example using the printf()function from C • One API may callanother, which mayin turn call another,and so on...
System calls via APIs (vi) • Use registers to pass parameters: • Store memory location X that references a block of data somewhere in memory
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
Long-term scheduling (i) • The long-term scheduler isinvoked infrequently
Long-term scheduling (ii) • The degree of multiprogramming ofan 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, Linux) • All processes are admitted tothe ready queue, regardlessof whether the operatingsystem can handle the load • Often results in userschanging their usage habits....
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) heap stack data text/code
Process states • As a process executes, it changes its state
Process creation • In Unix, a new child process is forked viathe fork() system call • Child optionally calls the exec() system callto load a new program
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 (CPU) scheduling (i) • The short-term scheduler decides which process the CPU executes next • The dispatcher gives control of the CPU to the process selected by the CPU scheduler: • Performs context switch • Switches to user mode • Jumps to the proper location in the user program to resume program execution
Short-term (CPU) scheduling (ii) the dispatcher operates here
CPU-I/O burst cycle (i) • Processes alternate betweenCPU execution and I/O wait • A CPU burst is actual programexecution that uses the CPU • An I/O burst is a blocked state • Each process starts and endswith a CPU burst
CPU-I/O burst cycle (ii) • Histogram of CPU burst time frequencies
CPU scheduling algorithms (i) • CPU scheduling requires an algorithm todetermine which process to dispatch next • Scheduling algorithms include: • First-Come, First-Served (FCFS) • Shortest-Job-First (SJF) • Round-Robin (RR) • Priority • Multilevel Queue (MQ)
process CPU scheduling algorithms (ii) • Preemptive scheduling preempts a running process before itstime slice expires • Or it preempts a processbecause its time slice has expired • Non-preemptive scheduling gives a process exclusive uninterrupted access to the CPU for the entirety of its execution process process process
CPU scheduling algorithms (iii) • Compare scheduling algorithms by measuring • CPU utilization – keep CPU as busy as possible • Throughput – maximize the number of processes that complete their execution per unit time • Turnaround time – minimize the elapsed time to fully execute a particular process • Waiting time – minimize the elapsed time a process waits in the ready queue
P1 P2 P3 0 24 27 30 First-Come-First-Served (FCFS) • FCFS dispatches processesin the order they enterthe ready queue • FCFS is non-preemptive time
P2 P3 P1 0 3 6 30 Shortest-Job-First (SJF) • SJF dispatches processes byselecting the process withthe lowest CPU burst time • SJF is non-preemptive (and predictive) time
SJF with varied arrival times • What happenswhen processesarrive at differentarrival times? • Calculate the turnaround times and wait times for each process • Calculate the average turnaround time and average wait time
P1 P2 P3 P2 P4 P1 11 16 0 2 4 5 7 Preemptive SJF • Same as SJF, but anew process maypreempt therunning process time
Limitations of SJF (i) • SJF is the optimal solution • The problem with SJF is the inability toknow the required CPU burst times • Apply a prediction algorithm that usesprevious CPU burst times • Algorithm uses exponential averaging: • tn = actual length of the nth CPU burst • τn+1 = predicted value for the next CPU burst • τn+1 = α tn + (1 – α) τn , where 0 < α < 1
Limitations of SJF (ii) α is ½
Limitations of SJF (iii) α is ¾ α is ½ α is ¼
Practice! • Apply the FCFS, SJF, and Preemptive SJF scheduling algorithms to this table: • Calculate the wait and turnaround times ofeach process, as well as overall averages recalculate using context switch time tcs = 20 μs
P3 P1 P2 P3 P1 P3 P1 0 2 4 6 8 10 12 13 Round-Robin (RR) • RR is a preemptive algorithmthat gives all ready processesa fair time slice of CPU time • Using a time slice of 2 ms.... time
Priority Scheduling (i) • Associate a priority number with each process • The dispatcher selects the processwith the highest priority • For multiple ready processeswith identical priority values,use FCFS (or ...) • Key problem is starvation • Overcome starvation by aging, increasingthe priority of a process as it ages
process Priority Scheduling (ii) • Is priority scheduling preemptiveor non-preemptive? • Non-preemptive priority scheduling places higher-priority processes at the head of the queue • Preemptive priority scheduling requires a running process to be interrupted and preempted upon the arrival of a higher-priority process
Multiclass systems • Operating systems that support priority schemes are often called multiclass systems use a separate schedulingalgorithm for each queue
Multilevel Queue (MQ) • Assign processes to multiple queues,each with its own scheduling algorithm
Multilevel Feedback Queue (MFQ) • Dynamically assign processes to multiple queues based on actual CPU burst times • i.e. feedback quantum is synonymouswith time slice
Practice! • Apply the FCFS, SJF, RR, and Preemptive Priority scheduling algorithms to this table: • For RR, use a time slice of 10 ms • Calculate the wait and turnaround times ofeach process, as well as overall averages lower number indicates a higher priority recalculate using context switch time tcs = 20 μs