Operating Systems: A Modern Perspective, Chapter 3 Slide 3- 1 Copyright © 2004 Pearson Education, Inc. 3 Operating System Organization
Dec 14, 2015
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-1
Copyright © 2004 Pearson Education, Inc.
3Operating SystemOrganization
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-2
Copyright © 2004 Pearson Education, Inc.
Purpose of an OS
The Abstractions
Create the Abstractions
Coordinate Useof the AbstractionsProcesses
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-3
Copyright © 2004 Pearson Education, Inc.
Device Management
Device-IndependentPart
Device-IndependentPart
Device-DependentPart
Device-DependentPart
Device …Device Device
Device-DependentPart
Device-DependentPart
Device-DependentPart
Device-DependentPart
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-4
Copyright © 2004 Pearson Education, Inc.
Process, Thread, and Resource Management
…Processor
PrimaryMemory
AbstractResources
MultiprogrammingMultiprogramming
ThreadAbstraction
ThreadAbstraction
ProcessAbstraction
ProcessAbstraction Generic
ResourceManager
GenericResourceManager
OtherOther
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-5
Copyright © 2004 Pearson Education, Inc.
Memory Management
PrimaryMemory
ProcessManager
ProcessManager
BlockAllocation
BlockAllocation
VirtualMemory
VirtualMemory
Isolation &Sharing
Isolation &Sharing
StorageDevices
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-6
Copyright © 2004 Pearson Education, Inc.
Exclusive Access to a Resource
Process AProcess A
SupervisorProgram
SupervisorProgram
A’s ProtectedObject
A’s ProtectedObject
Processor
Process BProcess B
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-7
Copyright © 2004 Pearson Education, Inc.
Kernels
• The part of the OS critical to correct operation (trusted software)
• Executes in supervisor mode
• The trap instruction is used to switch from user to supervisor mode, entering the OS
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-8
Copyright © 2004 Pearson Education, Inc.
Supervisor and User Memory
UserSpace
UserSpace
SupervisorSpace
SupervisorSpace
UserProcess
UserProcess
SupervisorProcess
SupervisorProcess
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-9
Copyright © 2004 Pearson Education, Inc.
Procedure Call and Message Passing Operating Systems
call(…);
trap
return;
send(…, A, …);receive(…, B, …);
receive(…A, …); …send(…, B, …);
send/receive
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-10
Copyright © 2004 Pearson Education, Inc.
System Call Using the trap Instruction
…fork();…
fork() {…trap N_SYS_FORK()…}
sys_fork()
sys_fork() {/* system function */ … return;}
KernelTrap Table
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-11
Copyright © 2004 Pearson Education, Inc.
A Thread Performing a System Call
User Space Kernel Space
fork();
sys_fork() {
}
Thread
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-12
Copyright © 2004 Pearson Education, Inc.
Basic Operating System Organization
Processor(s) Main Memory Devices
Process, Thread &Resource Manager
MemoryManager
DeviceManager
FileManager
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-13
Copyright © 2004 Pearson Education, Inc.
LibrariesLibraries CommandsCommands
Device DriverDevice Driver
The UNIX ArchitectureInteractive User
ApplicationPrograms
ApplicationPrograms
OS System Call Interface
Device DriverDevice Driver
Device DriverDevice Driver
Dri
ver
Inte
rfac
eD
rive
r In
terf
ace
…Monolithic Kernel Module•Process Management•Memory Management•File Management•Device Mgmt Infrastructure
Trap Table
…
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-14
Copyright © 2004 Pearson Education, Inc.
Windows NT Organization
Processor(s) Main Memory Devices
LibrariesLibraries
ProcessProcess
ProcessProcess
ProcessProcess
SubsystemSubsystemUser
Supervisor
SubsystemSubsystem SubsystemSubsystem
Hardware Abstraction LayerHardware Abstraction LayerNT Kernel
NT ExecutiveI/O SubsystemI/O Subsystem
TT
TT
TT T T
T
Process ManagementMemory ManagementFile ManagementDevice Mgmt Infrastructure
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-15
Copyright © 2004 Pearson Education, Inc.
4ComputerOrganization
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-16
Copyright © 2004 Pearson Education, Inc.
Stored Program Computers and
Electronic Devices
Pattern
Fixed Electronic Device
Variable Program
Stored Program Device
Jacquard Loom
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-17
Copyright © 2004 Pearson Education, Inc.
The von Neumann Architecture
Control Unit(CU)
Central Processing Unit (CPU)
DeviceDevice
Address BusData Bus
Arithmetical Logical Unit(ALU)
Primary Memory Unit(Executable
Memory)
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-18
Copyright © 2004 Pearson Education, Inc.
The ALU
R1R2
Rn
. . .
Status RegistersFunctional Unit
Left Operand
Right Operand
Result
To/from Primary Memory
load R3,bload R4,cadd R3,R4store R3,a
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-19
Copyright © 2004 Pearson Education, Inc.
Control Unit
3046305030543058
Primary Memory
Fetch UnitFetch Unit
Decode UnitDecode Unit
Execute UnitExecute Unit
PC
IR
Control Unit
load R3,bload R4,cadd R3,R4store R3,a
10111001001100…110111001010000…010100111001100…010111010001100…1load R4, c
3050
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-20
Copyright © 2004 Pearson Education, Inc.
Control Unit Operation
PC = <machine start address>;IR = memory[PC];haltFlag = CLEAR;while(haltFlag not SET) { execute(IR); PC = PC + sizeof(INSTRUCT); IR = memory[PC]; // fetch phase};
• Fetch phase: Instruction retrieved from memory
• Execute phase: ALU op, memory data reference, I/O, etc.
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-21
Copyright © 2004 Pearson Education, Inc.
Primary Memory Unit
MAR
MDR
Command
012
n-1
1234 98765Read Op:
1234
1. Load MAR with address
read
2. Load Command with “read”
98765
3. Data will then appear in the MDR
Address Register
Data Register
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-22
Copyright © 2004 Pearson Education, Inc.
The Device-Controller-Software Relationship
Application Program
Device ControllerDevice Controller
DeviceDevice
Sof
twar
e in
the
CP
U
Abstract I/O Machine
•Device manager•Program to manage device controller•Supervisor mode software
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-23
Copyright © 2004 Pearson Education, Inc.
Device Controller Interface
CommandCommand StatusStatusData 0Data 0
Data 1Data 1
Data n-1Data n-1LogicLogic
busy done Error code . . .. . .busy done 0 0 idle 0 1 finished 1 0 working 1 1 (undefined)
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-24
Copyright © 2004 Pearson Education, Inc.
CPU-I/O Overlap
CPUCPU
DeviceDevice
…
Rea
dy P
roce
sses
CPUCPU
DeviceDevice
…
Rea
dy P
roce
sses
I/O Operation
CPUCPU
DeviceDevice
…
Rea
dy P
roce
sses
Uses CPU
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-25
Copyright © 2004 Pearson Education, Inc.
Determining When I/O is Complete
CPUCPU
DeviceDevice DeviceDevice DeviceDevice
Interrupt Pending
• CPU incorporates an “interrupt pending” flag• When device.busy FALSE, interrupt pending flag is set• Hardware “tells” OS that the interrupt occurred• Interrupt handler part of the OS makes process ready to run
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-26
Copyright © 2004 Pearson Education, Inc.
Control Unit with Interrupt (Hardware)
PC = <machine start address>;IR = memory[PC];haltFlag = CLEAR;while(haltFlag not SET) { execute(IR); PC = PC + sizeof(INSTRUCT); IR = memory[PC]; if(InterruptRequest) { memory[0] = PC; PC = memory[1]};
memory[1] contains the address of the interrupt handler
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-27
Copyright © 2004 Pearson Education, Inc.
Interrupt Handler (Software)
interruptHandler() { saveProcessorState(); for(i=0; i<NumberOfDevices; i++) if(device[i].done) goto deviceHandler(i); /* something wrong if we get to here … */
deviceHandler(int i) { finishOperation(); returnToScheduler();}
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-28
Copyright © 2004 Pearson Education, Inc.
A Race Condition
saveProcessorState() { for(i=0; i<NumberOfRegisters; i++) memory[K+i] = R[i]; for(i=0; i<NumberOfStatusRegisters; i++) memory[K+NumberOfRegisters+i] = StatusRegister[i];}
PC = <machine start address>;IR = memory[PC];haltFlag = CLEAR;while(haltFlag not SET) { execute(IR); PC = PC + sizeof(INSTRUCT); IR = memory[PC]; if(InterruptRequest && InterruptEnabled) { disableInterupts(); memory[0] = PC; PC = memory[1]};
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-29
Copyright © 2004 Pearson Education, Inc.
Revisiting the trap Instruction (Hardware)
executeTrap(argument) { setMode(supervisor); switch(argument) { case 1: PC = memory[1001]; // Trap handler 1 case 2: PC = memory[1002]; // Trap handler 2 . . . case n: PC = memory[1000+n];// Trap handler n};
• The trap instruction dispatches a trap handler routine atomically
• Trap handler performs desired processing
• “A trap is a software interrupt”
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-30
Copyright © 2004 Pearson Education, Inc.
Direct Memory Access
PrimaryMemory
CPU
Controller
Device
PrimaryMemory
CPU
Controller
Device
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-31
Copyright © 2004 Pearson Education, Inc.
Addressing Devices
PrimaryMemory
Device 0
Device 1
Device n-1
PrimaryMemory
Device 0
Device 1
Device n-1
Dev
ice
Add
ress
esM
emor
y A
ddre
sses
Mem
ory
Add
ress
es
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-32
Copyright © 2004 Pearson Education, Inc.
Polling I/O…// Start the device…While((busy == 1) || (done == 1)) wait();// Device I/O complete…done = 0;
…while((busy == 0) && (done == 1)) wait();// Do the I/O operationbusy = 1;…
busy done
Sof
twar
eH
ard
war
e
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-33
Copyright © 2004 Pearson Education, Inc.
Detecting an Interrupt
CPUCPU
DeviceDevice DeviceDevice DeviceDevice
InterruptRequest flag
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-34
Copyright © 2004 Pearson Education, Inc.
The Trap Instruction Operation
SMode
TrustedCode
trap
User Supervisor
Branch Table
2
3
1
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-35
Copyright © 2004 Pearson Education, Inc.
Intel System Initialization
ROM
CMOS
RAM
Boot DevicePOSTPOST
BIOSBIOS
Boot ProgBoot Prog
LoaderLoader
OSOS
…Hardware Process
Data Flow
Power Up
Operating Systems: A Modern Perspective, Chapter 3
Slide 3-36
Copyright © 2004 Pearson Education, Inc.
Bootstrapping
Bootstrap loader (“boot sector”)
Primary Memory
Loader
OS
12
3
4. Initialize hardware5. Create user environment6. …
Fetch UnitFetch Unit
Decode UnitDecode Unit
Execute UnitExecute Unit
000A000000A000
……
PC
IR
BIOS loader 0x00001000x0001000
0x0008000
0x000A000