![Page 1: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/1.jpg)
1
OMSE 510: Computing Foundations5: The Operating System
Chris Gilmore <[email protected]>
Portland State University/OMSE
![Page 2: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/2.jpg)
2
Today
The Operating System!
Back to talking about software!
Overview
Process/Kernel Abstraction
Timeslicing
Process Scheduling
![Page 3: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/3.jpg)
3
Computer System (Idealized)
CPUMemory
System Bus
Disk Controller
Disk
![Page 4: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/4.jpg)
4
What is an operating system?
Operating system --“is a program that controls the execution of application programs and acts as an interface between the user of a computer and the computer hardware”Narrow view
Traditional computer with applications running on it (e.g. PCs, Workstations, Servers)
Broad viewAnything that needs to manage resources (e.g. router OS,
embedded devices, pagers, ...)
![Page 5: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/5.jpg)
5
Two key OS functions
Abstract Machine Hide details of the underlying hardware Provide “common” API to applications and
services Simplifies application writing
Resource Manager Controls accesses to “shared” resources
CPU, memory, disks, network, ... Allows for “global” policies to be implemented
![Page 6: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/6.jpg)
6
Why is abstraction important?Without OSs and abstract interfaces application writers program all device access directly load device command codes into device registers handle initialization, recalibration, sensing, timing etc for physical
devices understand physical characteristics and layout control motors interpret return codes … etc
Applications suffer severe code bloat! very complicated maintenance and upgrading writing this code once, and sharing it, is how OS began!
![Page 7: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/7.jpg)
7
Providing abstraction via system calls
Operating System
Video CardCPU
Monitor PrinterDisk
MemoryNetwork
Application
Hardware
![Page 8: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/8.jpg)
8
Providing abstraction via system calls
Operating System
Video CardCPU
Monitor PrinterDisk
MemoryNetwork
Application
Hardware
System Calls: read(), open(), write(), mkdir(), kill() ...
Device MgmtFile System Network Comm.
Process Mgmt
Protection Security
![Page 9: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/9.jpg)
9
OS as a resource managerSharing resources among applications across space and timeschedulingallocation
Making efficient use of limited resources improving utilizationminimizing overhead improving throughput/good put
Protecting applications from each otherenforcement of boundaries
![Page 10: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/10.jpg)
10
Problems an OS must solve
Time sharing the CPU among applications
Space sharing the memory among applications
Space sharing the disk among users
Time sharing access to the disk
Time sharing access to the network
![Page 11: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/11.jpg)
11
More problems an OS must solve
Protectionof applications from each otherof user data from other usersof hardware/devicesof the OS itself!
The OS needs help from the hardware to accomplish these tasks!
![Page 12: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/12.jpg)
12
Overview of computer system layers
Hardware - CPU, memory, I/O devices - disk, network ...
![Page 13: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/13.jpg)
13
The OS is just a program!How can the OS cause application programs to run?
How can applications programs cause the OS to run?
How can the OS switch the CPU to run a different application and later resume the first one?
How can the OS maintain control?
In what ways can application code try to cheat?
And how can the OS stop the cheating?
![Page 14: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/14.jpg)
14
How can the OS invoke an application?
The computer boots and begins running the OS fetch/decode/execute OS instructions
OS can request user input to identify an application to runOS loads the address of the application’s starting
instruction into the PCCPU fetches/decodes/executes the application’s
instructions
![Page 15: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/15.jpg)
15
How can applications invoke the OS?
Trap instruction changes PC to point to an OS entry point instructionapplication calls a library procedure that
includes the appropriate trap instruction fetch/decode/execute cycle begins at a
specified OS entry point called a system call
![Page 16: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/16.jpg)
16
How can the OS run a new application?
To suspend execution of an application simply capture its memory state and processor statecopy values of all registers into a data
structure and save it to memorypreserve the memory values of this
application so it can be restarted later
![Page 17: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/17.jpg)
17
How can OS guarantee to regain control?
What if a running application doesn’t make a system call and hence hogs the CPU? timer interrupts!OS must register a future timer interrupt before it
hands control of the CPU over to an application
How can the OS avoid trampling on the processor state it wants to save?carefully written interrupt handlers!
![Page 18: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/18.jpg)
18
What if the application tries to cheat?
What stops the running application from disabling the future timer interrupt so that the OS can not regain control? the mode bit (in the PSW)!
Certain instructions can only be executed when the mode bit is setmanipulating timer interruptssetting the mode bit! ...
![Page 19: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/19.jpg)
19
What other ways are there to cheat?
What stops the running application from modifying the OS?Memory protection!can only be set with mode bit set ….
The OS must clear the mode bit before it hands control to an application! interrupts and trap instructions set the mode bit
and transfer control to specific locations (in the OS)
![Page 20: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/20.jpg)
20
Why its not quite that simple ...
Pipelined CPUs
Superscalar CPUs
Multi-level memory hierarchies
Virtual memory
Complexity of devices and buses
Heterogeneity of hardware
![Page 21: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/21.jpg)
21
Pipelined CPUs
Fetchunit
Decodeunit
Executeunit
Execution of current instruction performed in parallelwith decode of next instruction and fetch of the oneafter that
![Page 22: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/22.jpg)
22
Superscalar CPUs
Fetchunit
Decodeunit
Executeunit
Fetchunit
Decodeunit
Executeunit
Executeunit
Holdingbuffer
![Page 23: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/23.jpg)
23
What does this mean for the OS?
Pipelined CPUsmore complexity in capturing state of a running applicationmore expensive to suspend and resume applications
Superscalar CPUseven more complexity in capturing state of a running
applicationeven more expensive to suspend and resume applications
More details, but fundamentally the same task
![Page 24: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/24.jpg)
24
Terminology review - metric units
The metric prefixes
![Page 25: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/25.jpg)
25
The memory hierarchy2GHz processor 0.5 ns
Data/inst. cache 0.5ns – 10 ns, 64 kB- 1MB
(this is where the CPU looks first!)
Main memory 60 ns, 512 MB – 1GB
Magnetic disk 10 ms, 160 Gbytes
Tape Longer than you want, less than magnetic disk!
![Page 26: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/26.jpg)
26
Who manages the memory hierarchy?Movement of data from main memory to cache is under hardware control cache lines loaded on demand automatically replacement policy fixed by hardware
Movement of data from cache to main memory can be affected by OS instructions for “flushing” the cache can be used to maintain consistency of main memory
Movement of data among lower levels of the memory hierarchy is under direct control of the OS virtual memory page faults file system calls
![Page 27: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/27.jpg)
27
OS implications of a memory hierarchy?How do you keep the contents of memory consistent across layers of the hierarchy?
How do you allocate space at layers of the memory hierarchy “fairly” across different applications?
How do you hide the latency of the slower subsystems? Main memory… yikes! Disk Tape
How do you protect one application’s area of memory from other applications?
How do you relocate an application in memory?
![Page 28: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/28.jpg)
28
Summary/QuizHow does the OS solve these problems:
Time sharing the CPU among applications?Space sharing the memory among applications?Space sharing the disk among users?Time sharing access to the disk?Time sharing access to the network?Protection of applications from each other?Protection of user data from other users?Protection of hardware/devices?Protection of the OS itself?
![Page 29: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/29.jpg)
29
Section overviewOS-Related Hardware & Software
Memory protection and relocationVirtual memory & MMUsI/O & Interrupts
ProcessesProcess schedulingProcess statesProcess hierarchiesProcess system calls in Unix
![Page 30: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/30.jpg)
30
Memory protection and relocation ...
Memory protection (basic ideas) virtual vs physical addresses
address range in each application starts at 0
“base register” used to convert each virtual address to a physical address before main memory is accessed
address is compared to a “limit register” to keep memory references within bounds
Relocation by changing the base register value
Paged virtual memory same basic concept, but more powerful (and complex)
![Page 31: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/31.jpg)
31
Base & Limit Registers (single & multiple)
![Page 32: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/32.jpg)
32
Virtual memory and MMUsMemory management unit (MMU) hardware provided equivalent of base registers at the granularity of “pages” of memory, say 2kB, i.e., lots
of them! supports relocation at page granularity applications need not occupy contiguous physical memory
Memory protection limit registers don’t work in this context per-page and per-application protection registers
Relocation and protection occur at CPU speeds!
![Page 33: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/33.jpg)
33
What about I/O devices?Monitor
Bus
A simplified view of a computer system
![Page 34: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/34.jpg)
34
Structure of a large Pentium system
![Page 35: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/35.jpg)
35
How do programs interact with devices?
Devices vs device controllers vs device drivers device drivers are part of the OS programs call the OS which calls the device driver
Device drivers interact with device controllers either using special IO instructions or by reading/writing controller registers that
appear as memory locations
Why protect access to devices by accessing them indirectly via the OS?
![Page 36: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/36.jpg)
36
How do devices interact with programs?
Interrupts
![Page 37: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/37.jpg)
37
Different types of interruptsTimer interruptsAllows OS to maintain controlOne way to keep track of time
I/O interruptsKeyboard, mouse, disks, etc…
Hardware failures
Program generated (traps)Programming errors: seg. faults, divide by zero, etc.System calls like read(), write(), gettimeofday()
![Page 38: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/38.jpg)
38
Timer interrupts
OS can ask timer device to interrupt after a specified time period has elapse
Interrupt invokes timer interrupt handler which invokes OS “scheduler”
OS can take the opportunity to save the current application and restore a different one context switch
![Page 39: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/39.jpg)
39
Why use traps for system calls?The Operating System is just a program!It must have the privilege to manipulate the hardwareset base and limit registers for memory protectionaccess devicesset and clear mode bit to enable privilege
If user programs execute with the mode bit clear, and do not have privilege to set it, how can they invoke the OS so that it can run with the mode bit set?That’s what traps do … set the mode bit and begin
execution at a specific point in memory (in the OS!)
![Page 40: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/40.jpg)
40
System callsSystem calls are the mechanism by which programs communicate with the O.S.
Implemented via a TRAP instruction
Example UNIX system calls:open(), read(), write(), close()kill(), signal()fork(), wait(), exec(), getpid()link(), unlink(), mount(), chdir()setuid(), getuid(), chown()
![Page 41: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/41.jpg)
41
The inner workings of a system call
User-level code
Library code
Process usercode { ... read (file, buffer, n); ... }
Procedure read(file, buff, n) { ... read(file, buff, n) ... }
_read: LOAD r1, @SP+2 LOAD r2, @SP+4 LOAD r3, @SP+6 TRAP Read_Call
![Page 42: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/42.jpg)
42
Steps in making a system call
![Page 43: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/43.jpg)
43
What about disks and file storage?
Structure of a disk drive
![Page 44: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/44.jpg)
44
Disks and file storageManipulating the disk device is complicatedhide some of the complexity behind disk controller, disk device
driver
Disk blocks are not a very user-friendly abstraction for storagecontiguous allocation may be difficult for large data itemshow do you manage administrative information?
One application should not (automatically) be able to access another application’s storageOS needs to provide a “file system”
![Page 45: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/45.jpg)
45
File systems
File system - an abstraction above disk blocks
![Page 46: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/46.jpg)
46
What about networks?Network interfaces are just another kind of shared device/resource
Need to hide complexitysend and receive primitives, packets, interupts etcprotocol layers
Need to protect the deviceaccess via the OS
Need to allocate resources fairlypacket scheduling
![Page 47: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/47.jpg)
47
The Process ConceptProcess – a program in executionProgram
description of how to perform an activity instructions and static data values
Process a snapshot of a program in execution memory (program instructions, static and dynamic data values) CPU state (registers, PC, SP, etc) operating system state (open files, accounting statistics etc)
![Page 48: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/48.jpg)
48
Process address space
stack
text
dataAddress
space
Each process runs in its own virtual memory address space that consists of: Stack space – used for function and system calls Data space – variables (both initialized and uninitialized) Text – the program code (usually read only)
Invoking the same program multiple times results in the creation of multiple distinct address spaces
![Page 49: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/49.jpg)
49
Memory
ProgramCode
ProgramData
Running a process on a CPU
CPU
ALU
ADD R1, R2
SP PC
In its simplest form, a computer performs instructions on operands. Registers are used to hold values temporarily to speed things up
![Page 50: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/50.jpg)
50
Switching among multiple processes
Memory
ProgramCode
ProgramData
CPU
ALU
SP PC
ProgramState
Program 1 has CPU
Saving all the information about a process allows a process to be temporarily suspended
![Page 51: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/51.jpg)
51
Switching among multiple processes
Memory
ProgramCode
ProgramData
CPU
ALU
SP PC
ProgramState
ProgramCode
ProgramData
SUB R1, R2
Program 2 has CPU
Saving all the information about a process allows a process to be temporarily suspended
![Page 52: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/52.jpg)
52
Switching among multiple processes
Memory
ProgramCode
ProgramData
CPU
ALU
SP PC
ProgramState
ProgramCode
ProgramData
ProgramState
Program 2 has CPU
Saving all the information about a process allows a process to be temporarily suspended
![Page 53: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/53.jpg)
53
Switching among multiple processes
Memory
ProgramCode
ProgramData
CPU
ALU
SP PC
ProgramState
ProgramCode
ProgramData
ProgramState
Program 1 has CPU
Saving all the information about a process allows a process to be temporarily suspended
![Page 54: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/54.jpg)
54
Switching among multiple processes
Memory
ProgramCode
ProgramData
CPU
ALU
SP PC
ProgramState
ProgramCode
ProgramData
ProgramState
ADD R1, R3
Program 1 has CPU
Saving all the information about a process allows a process to be temporarily suspended
![Page 55: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/55.jpg)
55
Why use the process abstraction?
Multiprogramming of four programs in the same address spaceConceptual model of 4 independent, sequential processesOnly one program active at any instant
![Page 56: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/56.jpg)
56
The role of the scheduler
Lowest layer of process-structured OShandles interrupts & scheduling of processes
Above that layer are sequential processes
![Page 57: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/57.jpg)
57
Process states
Possible process states runningblocked ready
![Page 58: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/58.jpg)
58
Implementation of process switching
Skeleton of what the lowest levels of the OS do when an interrupt occurs
![Page 59: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/59.jpg)
59
How do processes get created?
Principal events that cause process creation
System initialization
Initiation of a batch job
User request to create a new process
Execution of a process creation system call from another process
![Page 60: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/60.jpg)
60
Process hierarchiesParent creates a child process, special system calls for communicating with and
waiting for child processeseach process is assigned a unique identifying number
or process ID (PID)
Child processes can create their own child processes Forms a hierarchyUNIX calls this a "process group"
Windows has no concept of process hierarchyall processes are created equal
![Page 61: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/61.jpg)
61
How do processes terminate?
Conditions which terminate processes
Normal exit (voluntary)
Error exit (voluntary)
Fatal error (involuntary)
Killed by another process (involuntary)
![Page 62: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/62.jpg)
62
Process creation in UNIXAll processes have a unique process id getpid(), getppid() allow processes to get their information
Process creation fork() creates a copy of a process with the lone exception
of the return value of fork() exec() replaces an address space with a new program system() like CreateProcess()
Process termination, signaling signal(), kill() allows a process to be terminated or have
specific signals sent to it
![Page 63: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/63.jpg)
63
Example: process creation in UNIX
…
pid = fork()if (pid == 0) { // child… … exec(); }else { // parent wait(); }…
csh (pid = 22)
![Page 64: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/64.jpg)
64
Process creation in UNIX example
…
pid = fork()if (pid == 0) { // child… … exec(); }else { // parent wait(); }…
csh (pid = 22)
…
pid = fork()if (pid == 0) { // child… … exec(); }else { // parent wait(); }…
csh (pid = 24)
![Page 65: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/65.jpg)
65
Process creation in UNIX example
…
pid = fork()if (pid == 0) { // child… … exec(); }else { // parent wait(); }…
csh (pid = 22)
…
pid = fork()if (pid == 0) { // child… … exec(); }else { // parent wait(); }…
csh (pid = 24)
![Page 66: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/66.jpg)
66
Process creation in UNIX example
…
pid = fork()if (pid == 0) { // child… … exec(); }else { // parent wait(); }…
csh (pid = 22)
…
pid = fork()if (pid == 0) { // child… … exec(); }else { // parent wait(); }…
csh (pid = 24)
![Page 67: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/67.jpg)
67
Process creation in UNIX example
…
pid = fork()if (pid == 0) { // child… … exec(); }else { // parent wait(); }…
csh (pid = 22)
//ls program
main(){
//look up dir
…
}
ls (pid = 24)
![Page 68: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/68.jpg)
68
What other process state does the OS manage?
Fields of a process table entry
![Page 69: 1 OMSE 510: Computing Foundations 5: The Operating System Chris Gilmore Portland State University/OMSE](https://reader036.vdocuments.us/reader036/viewer/2022062517/56649f305503460f94c4b301/html5/thumbnails/69.jpg)
69
What about the OS?
Is the OS a process?
It is a program in execution, after all …
Does it need a process control block?
Who manages its state when its not running?