Transcript
Page 1: Operating Systems {week  05}

Operating Systems{week 05}

Rensselaer Polytechnic InstituteCSC 432 – Operating SystemsDavid Goldschmidt, Ph.D.

Page 2: 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 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}

Operating system structure (ii) Also view

as a stack of services

Page 4: Operating Systems {week  05}

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}

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}

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}

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}

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}

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}

System calls via APIs (iv)

Page 11: Operating Systems {week  05}

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}

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}

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}

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}

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}

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}

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}

Long-term scheduling (i)

The long-term scheduler isinvoked infrequently

Page 19: Operating Systems {week  05}

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}

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}

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}

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}

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}

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}

Process states

As a process executes, it changes its state

Page 26: Operating Systems {week  05}

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}

Process context switch

context switch takesa few milliseconds

Page 28: Operating Systems {week  05}

Process scheduling

Page 29: Operating Systems {week  05}

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}

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}

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}

Process creation (iii)

Each process has itsown unique processidentifier (pid)

Page 33: Operating Systems {week  05}

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}

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