1 / 34

Operating Systems {week 05}

Rensselaer Polytechnic Institute CSC 432 – Operating Systems David Goldschmidt, Ph.D. Operating Systems {week 05}. Operating system structure (i). Using a layered approach, the operating system is divided into N levels or layers Layer 0 is the hardware Layer 1 is often the kernel

rhys
Download Presentation

Operating Systems {week 05}

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rensselaer Polytechnic Institute CSC 432 – Operating Systems David Goldschmidt, Ph.D. Operating Systems{week 05}

  2. 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

  3. Operating system structure (ii) • Also viewas a stackof services

  4. 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

  5. User and kernel modes (i) • 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

  6. User and kernel modes (ii) • Kernel gives control to a user process, but may set a timer to ensure a process does not run beyond its allotted time • To avoid infinite loops, memoryleaks, memory hogs, etc. • Not always effective in practice... • Can you stop a runaway processbefore your computer crashes? Aaaaaaaugghhhh!I’m going to takethis computer and...

  7. 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 Library

  8. 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)

  9. 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...

  10. System calls via APIs (iv)

  11. System calls via APIs (v) • Example using the printf()function from C • One API may callanother, which mayin turn call another,and so on...

  12. System calls via APIs (vi) • Use registers to pass parameters: • Store memory location X that references a block of data somewhere in memory

  13. 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

  14. 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

  15. 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!

  16. 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

  17. 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....

  18. Long-term scheduling (i) • The long-term scheduler isinvoked infrequently

  19. 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

  20. 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

  21. 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....

  22. Medium-term scheduling • Modern operating systems implement a medium-term scheduler to swap processes to/from memory and disk

  23. 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

  24. 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

  25. Process states • As a process executes, it changes its state

  26. 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

  27. Process context switch context switch takes a few milliseconds

  28. Process scheduling

  29. 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 t is 100ms and it takes 10msto schedule the next processand perform the context switch?

  30. 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:

  31. 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 no resources

  32. Process creation (iii) • Each process has itsown unique processidentifier (pid)

  33. Process creation (iv) • When a new process is created,the parent has two options: • Parent process continues to 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

  34. Process creation (v) • In Unix, a new child process is forked viathe fork() system call • Child optionally calls the exec() system callto load a new program

More Related