4.Week
4.Week
Application programs
Application
programming interface
Application Libraries/utilities Software
binary interface
Operating system
I nstruction Set
Architecture
Execution hardware
M emory
System interconnect
translation Hardware
(bus)
I /O devices
M ain
and
memory
networking
Operating System (OS) Services
• The most important system program
• Masks the details of the hardware from the programmer and
provides the programmer with a convenient interface for using
the system
• The OS typically provides services in the following areas:
– Program creation
– Program execution
– Access to I/O devices
– Controlled access to files
– System access
– Error detection and response
– Accounting
Interfaces
• Key interfaces in a typical computer system:
Instruction set Application Application
architecture binary programming
(ISA) interface (ABI) interface (API)
Gives a program access to
the hardware resources
Defines the machine Defines a standard for and services available in a
language instructions that binary portability across system through the user
a computer can follow programs ISA supplemented with
high-level language (HLL)
library calls
Programs
and Data
I /O Controller
Processor Processor
Storage
OS
Programs
Data
Types of Operating Systems
• Interactive system
– The user/programmer interacts directly with the computer to
request the execution of a job or to perform a transaction
– User may, depending on the nature of the application,
communicate with the computer during the execution of the job
• Batch system
– Opposite of interactive
– The user’s program is batched together with programs from other
users and submitted by a computer operator
– After the program is completed results are printed out for the user
Early Systems
• From the late 1940s to the mid-1950s the programmer
interacted directly with the computer hardware – there was no
OS
– Processors were run from a console consisting of display lights, toggle switches,
some form of input device and a printer
• Problems:
– Scheduling
▪ Sign-up sheets were used to reserve processor time
– This could result in wasted computer idle time if the user finished early
– If problems occurred the user could be forced to stop before resolving the
problem
– Setup time
▪ A single program could involve
– Loading the compiler plus the source program into memory
– Saving the compiled program
– Loading and linking together the object program and common functions
Memory Layout for a Resident Monitor
I nterrupt
Processing
Device
Drivers
M onitor
Job
Sequencing
Control Language
I nterpreter
Boundary
User
Program
Area
From the View of the Processor . . .
• Processor executes instructions from the portion of main memory containing the monitor
– These instructions cause the next job to be read in another portion of main memory
– The processor executes the instruction in the user’s program until it encounters an ending or error condition
– Either event causes the processor to fetch its next instruction from the monitor program
• Example:
– $JOB
– $FTN **Each FORTRAN instruction and each item of
data is on a separate punched card or a separate record on
– ... Some Fortran instructions tape. In addition to FORTRAN and data lines, the job includes
job control instructions, which are
– $LOAD
denoted by the beginning “$”.
– $RUN
– ... Some data
– $END
Time
(a) Uniprogramming
Duration (min) 5 15 10
Memory required (M) 50 100 80
CPU CPU
0% 0%
100% 100%
M emory M emory
0% 0%
100% 100%
Disk Disk
0% 0%
100% 100%
Terminal Terminal
0% 0%
100% 100%
Printer Printer
0% 0%
time 0 5 10 15
minutes
time
(a) Uniprogramming (b) M ultiprogramming
Dispatch
Admit Release
New Ready Running Exit
Timeout
Event
Occurs Event
Wait
Blocked
Priority
Program counter
M emory pointers
Context data
I /O status
information
Accounting
information
Scheduling Example
Operating system Operating system Operating system
In
control
A A A
"Running" "Waiting" "Waiting"
In
control
B B B
"Ready" "Ready" "Running"
In
control
Long- Short- I /O
I nterrupt
Term Term Queues
from Process I nterrupt
Queue Queue
I nterrupt Handler (code)
from I /O
Short-Term
Scheduler
(code)
Pass Control
to Process
Queuing Diagram Representation of
Processor Scheduling
Long-term Short-term
queue queue
Admit End
Processor
I /O 1
Occurs
I /O 1 Queue
I /O 2
Occurs
I /O 2 Queue
I /O n
Occurs
I /O n Queue
The Use of Swapping
M ain
Disk storage memory
Operating
system
Disk storage
M ain
memory
I ntermediate
queue Operating
system
Completed jobs
Long-term
and user sessions
queue
(b) Swapping
Example of Fixed Partitioning of a 64-Mbyte
Memory
Operating System Operating System
8M 8M
2M
8M 4M
6M
8M
8M
8M
8M
8M
12 M
8M
8M
16 M
8M
Logical address
- expressed as a location relative
56M Process 2 14M Process 2 14M
to the beginning of the program
Process 2 14M
Process 1 20M Process 1 20M 20M
6M
Process 4 8M Process 4 8M Process 4 8M
14M
6M 6M 6M
4M 4M 4M 4M
Page 1
Process A 13 Process A 13
of A
Page 0 Page 0
Page 1 Page 1 Page 2
14 14
Page 2 Page 2 of A
Page 3 Page 3
Page 3
15 15
of A
In In
16 16
use use
Free frame list Free frame list
13 In 20 In
17 17
14 use use
15 Process A
page table Page 0
18 18 18
of A
20 18
In 13 In
19 19
use use
14
15
20 20
Page 1
13
of A
16
18
17
13
14 Page 0
18
of A
15
Process A
Page Table
Virtual Memory
Demand Paging
• Each page of a process is brought in only when it is needed
• Principle of locality
– When working with a large process execution may be confined to a small section
of a program (subroutine)
– It is better use of memory to load in just a few pages
– If the program references data or branches to an instruction on a page not in main
memory, a page fault is triggered which tells the OS to bring in the desired page
• Advantages:
– More processes can be maintained in memory
– Time is saved because unused pages are not swapped in and out of memory
• Disadvantages:
– When one page is brought in, another page must be thrown out (page
replacement)
– If a page is thrown out just before it is about to be used the OS will have to go get
the page again
– Thrashing
▪ When the processor spends most of its time swapping pages rather than
executing instructions
Inverted Page Table Structure
Virtual address
n bits
Page # Offset
Control
n bits bits
Process
hash m bits Page # ID Chain
function 0
2m – 1 Frame # Offset
m bits
I nverted page table Real address
(one entry for each
physical memory frame)
Operation of Paging and Translation
Lookaside Buffer (TLB)
Start
Return to
faulted instruction
CPU checks the TLB
Yes
CPU activates
I /O hardware Update TLB
Page transferred
from disk to CPU generates
main memory physical address
M emory Yes
full?
No Perform page
replacement
Page tables
updated
Translation Lookaside Buffer and Cache
Operation
TLB Operation
Virtual Address
Page # Offset
TLB
TLB miss
TLB
hit Cache Operation
Real Address
M ain
M emory
Page Table
Value
31 22 21 12 11 0
31 24 23 22 20 19 16 15 14 13 12 11 8 7 0
D A Segment
Base 31...24 G / L V limit P DPL S Type Base 23...16
B L 19...16
31 12 11 9 76 5 4 3 2 1 0
P P P U R
Page frame address 31...12 AVL S 0 A C
D
W SWP
T
AVL — Available for systems programmer use PWT — Write through = reserved
P — Page size US — User/supervisor
A — Accessed RW — Read-write
PCD — Cache disable P — Present
(d) Page directory entry
31 12 11 9 76 5 4 3 2 1 0
P P U R
Page frame address 31...12 AVL D A C W SWP
D T
D — Dirty
(e) Page table entry
x86 Memory Management Parameters (1 of 2)
Segment Descriptor (Segment Table Entry)
Base
Defines the starting address of the segment within the 4-Gbyte linear address space.
D/B bit
In a code segment, this is the D bit and indicates whether operands and addressing modes are 16 or 32 bits.
Descriptor Privilege Level (DPL)
Specifies the privilege level of the segment referred to by this segment descriptor.
Granularity bit (G)
Indicates whether the Limit field is to be interpreted in units by one byte or 4 Kbytes.
Limit
Defines the size of the segment. The processor interprets the limit field in one of two ways, depending on
the granularity bit: in units of one byte, up to a segment size limit of 1 Mbyte, or in units of 4 Kbytes, up to a
segment size limit of 4 Gbytes.
S bit
Determines whether a given segment is a system segment or a code or data segment.
Segment Present bit (P)
Used for nonpaged systems. It indicates whether the segment is present in main memory. For paged
systems, this bit is always set to 1.
Type
Distinguishes between various kinds of segments and indicates the access attributes.
(Table is on page 323 in the textbook)
x86 Memory Management Parameters (2 of 2)
Page Directory Entry and Page Table Entry
Accessed bit (A)
This bit is set to 1 by the processor in both levels of page tables when a read or write operation to the
corresponding page occurs.
Dirty bit (D)
This bit is set to 1 by the processor when a write operation to the corresponding page occurs.
Page Frame Address
Provides the physical address of the page in memory if the present bit is set. Since page frames are aligned
on 4K boundaries, the bottom 12 bits are 0, and only the top 20 bits are included in the entry. In a page direc-
tory, the address is that of a page table.
Page Cache Disable bit (PCD)
Indicates whether data from page may be cached.
Page Size bit (PS)
Indicates whether page size is 4 Kbyte or 4 Mbyte.
Page Write Through bit (PWT)
Indicates whether write-through or write- back caching policy will be used for data in the corresponding page.
Present bit (P)
Indicates whether the page table or page is in main memory.
Read/Write bit (RW)
For user-level pages, indicates whether the page is read- only access or read/write access for user- level
programs.
User/Supervisor bit (US)
Indicates whether the page is available only to the operating system (supervisor level) or is available to
both operating system and applications (user level).
(Table is on page 323 in the textbook)
Paging
• Segmentation may be disabled
– In which case linear address space is used
ARM
core Cache
Virtual and Cache
address write line fetch
buffer hardware
Virtual Memory Address
Translation • Sections and supersections are supported
to allow mapping of a large region of
memory while using only a single entry in
• The ARM supports memory access based
the TLB
on either sections or pages
• The translation table held in main memory
• Supersections (optional)
has two levels:
– Consist of 16-MB blocks of main
memory
• Level 1 table
• Sections – Holds level 1 descriptors that contain
the base address and translation
– Consist of 1-MB blocks of main
properties for a Section and
memory
Supersection
• Large pages – And translation properties and pointers
– Consist of 64-kB blocks of main to a level 2 table for a large page or a
memory small page
• The region can be privileged access only, reserved for use by the OS and not by
applications