Operating Systems{week 05}
Rensselaer Polytechnic InstituteCSC 432 – Operating SystemsDavid Goldschmidt, Ph.D.
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
Operating system structure (ii) Also view
as a stack of 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 (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
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...
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
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 by
the API specifications How do we change the API or
the operating system servicesthat it offers?
the dude abides...
System calls via APIs (iv)
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
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
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
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 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
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 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
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
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....
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)
heap
stack
data
text/code
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 memory
management information List of open file/resource handles
Process context switch
context switch takesa few milliseconds
Process scheduling
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?
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 no
resources
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 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
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
Top Related