operating systems {week 05}
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/1.jpg)
Operating Systems{week 05}
Rensselaer Polytechnic InstituteCSC 432 – Operating SystemsDavid Goldschmidt, Ph.D.
![Page 2: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/2.jpg)
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 Layer N is the top-level
user interface (GUI) Each layer uses functions
and services of the layer(or layers) beneath it
![Page 3: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/3.jpg)
Operating system structure (ii) Also view
as a stack of services
![Page 4: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/4.jpg)
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
![Page 5: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/5.jpg)
User and kernel modes (i) Program instructions run either
in user mode or in kernel mode Kernel mode allows the operating
systemto protect itself and its system components
switch modesvia system calls
![Page 6: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/6.jpg)
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, memory
leaks, memory hogs, etc. Not always effective in practice...▪ Can you stop a runaway process
before your computer crashes?
Aaaaaaaugghhhh!
I’m going to take
this computer and...
![Page 7: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/7.jpg)
System calls via APIs (i)
OS services are available via system calls System calls are made via an interface called
an 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
![Page 8: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/8.jpg)
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)
![Page 9: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/9.jpg)
System calls via APIs (iii) An API hides the implementation
details of the underlying operating system Programmers just need to abide by
the API specifications How do we change the API or
the operating system servicesthat it offers?
the dude abides...
![Page 10: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/10.jpg)
System calls via APIs (iv)
![Page 11: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/11.jpg)
System calls via APIs (v)
Example using the printf()function from C
One API may callanother, which mayin turn call another,and so on...
![Page 12: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/12.jpg)
System calls via APIs (vi) Use registers to pass parameters:
Store memory location X that references a block of data somewhere in memory
![Page 13: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/13.jpg)
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, including
disks, networks connection, etc. Filesystem manipulation▪ Read/write/traverse filesystem directories,
read/write files, enforce permissions, search for files
![Page 14: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/14.jpg)
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
![Page 15: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/15.jpg)
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!
![Page 16: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/16.jpg)
Process scheduling and queues Processes are created by
the operating system Processes initially added to
a job queue, which containsall processes waiting to enter the system
From the job queue, processes thatare ready for execution are addedto the ready queue
![Page 17: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/17.jpg)
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....
![Page 18: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/18.jpg)
Long-term scheduling (i)
The long-term scheduler isinvoked infrequently
![Page 19: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/19.jpg)
Long-term scheduling (ii) The degree of multiprogramming of
an 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
![Page 20: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/20.jpg)
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 its
time 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
![Page 21: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/21.jpg)
Long-term scheduling (iv) Most modern operating systems
have no long-term scheduler (e.g. Windows, UNIX) All processes are admitted to
the ready queue, regardlessof whether the operatingsystem can handle the load
Often results in userschanging their usage habits....
![Page 22: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/22.jpg)
Medium-term scheduling
Modern operating systems implement a medium-term scheduler to swap processes to/from memory and disk
![Page 23: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/23.jpg)
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
![Page 24: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/24.jpg)
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
![Page 25: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/25.jpg)
Process states
As a process executes, it changes its state
![Page 26: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/26.jpg)
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 memory
management information List of open file/resource handles
![Page 27: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/27.jpg)
Process context switch
context switch takesa few milliseconds
![Page 28: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/28.jpg)
Process scheduling
![Page 29: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/29.jpg)
Short-term scheduling
The short-term scheduler frequently decides which process the CPU executes next Typical time slice (t) a process has with
the CPU is 100 milliseconds How much CPU time is wasted
if t is 100ms and it takes 10msto schedule the next processand perform the context switch?
![Page 30: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/30.jpg)
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:
![Page 31: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/31.jpg)
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
![Page 32: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/32.jpg)
Process creation (iii)
Each process has itsown unique processidentifier (pid)
![Page 33: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/33.jpg)
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 to
terminate their execution
The child process decides what it will do: Duplicate the parent or load a new program
![Page 34: Operating Systems {week 05}](https://reader036.vdocument.in/reader036/viewer/2022062305/5681637b550346895dd45961/html5/thumbnails/34.jpg)
Process creation (v) In Unix, a new child process is forked via
the fork() system call
Child optionally calls the exec() system callto load a new program