Title: Operating Systems
1Operating Systems
2What is an operating system?
- A program that runs on the hardware and supports
- Resource Abstraction
- Resource Sharing
- Abstracts and standardises the interface to the
user across different type of hardware - Virtual machine hides the messy details witch
must be performed. - Manages the hardware resources
- Each program gets time with the resource
- Each program gets space on the resource
3Introduction
- The aims of an operating system are
- User convenience
- System performance
- Number of requests serviced per unit time, etc
4Introduction
- Fundamental tasks of an operation system
- Management of Programs
- Organize their execution by sharing the CPU
- Ensure good user service and efficient use
- Management of Resources
- Efficient allocation/de-allocation without
constraining user programs - Security and Protection
- Ensure absence of interference with programs and
resources by entities within and outside the
operating system
5Operating Systems
- Application programs needs to access the devices
connected to a computer. - Operation System (system program slide-19,
chapter 2). - is a software layer between the hardware and the
user. - provides a consistent application program
interface (API). - first program that runs when the computer boots
up. - is a program that is always running when the
machine is on.
6Main functions of an operating system
- User/computer interface
- Provides an interface between the user and the
computer - Resource manager
- manages all computers resources.
- Process manager
- Memory manager
- Device manager
- File manager, etc.
7A model of an operation System
User command interface
Process Manager Memory manager Device
Manager File manager Network manager
Operation System
Resource management
8Operating system as a user/computer interface
- A user command such as open, save or print would
correspond a sequence of machine-code
instructions. - The user does not need to provide these sequences
of instructions. - Operating system translates these commands to a
machine-code instructions.
9Operating system as a resource manager
- Process Manager
- Next program to be executed?
- Time to be given to each program?
- Memory manager
- Best use of the memory to run as
- many programs as possible
- I/O Device (e.g.printer) Manager
- Which program should use a particular I/O device?
- Network manager
- which computer should execute a particular
program?
Resource management
10Type of operating systems
- Multi-programming
- Operating system can handle several programs at
once. - Time-sharing
- Operating system allows many user to share the
same computer and interact with it. - Or, in case of a single-user computer (e.g. PC),
the user can work on several programs at the same
time.
11How the operating system get started?
- Main memory has a small section of permanent read
only memory (ROM) - ROM contains a program, bootstrap.
- At the start the CPU runs bootstrap. Which
directs the CPU to load the operation system from
disk and transfer control to it.
12Main memory
Main memory
Disk storage
R O M
R O M
Bootstrap program
Bootstrap Program
Operating System
Operating System
R A M
R A M
13Operating system as a process manager
- Coordinates the occupation of the main memory by
different processes and their data. - At any time the operation system may be dealing
with many processes. - e.g. a process may be executed or allowed to wait
in main memory, or swapped out of the main
memory.
14Processes
- Definition of a process
- Process Scheduling
- Operations on Processes
- Cooperating Processes
15What is a process
- Process a program in execution process
execution must progress in sequential fashion. - A process includes
- program counter
- stack
- data section
- heap
16Process State
- As a process executes, it changes state
- new The process is being created.
- running Instructions are being executed.
- waiting The process is waiting for some event
to occur. - ready The process is waiting to be assigned to
a process. - terminated The process has finished execution.
17Process Control Block (PCB)
- Information associated with each process.
- Identifier
- Process state
- Program counter
- CPU registers
- CPU scheduling information
- Memory-management information
- Accounting information
- I/O status information
18CPU Switch From Process to Process
- The PCB is saved when a process is removed from
the CPU and another process takes its place
(context switch).
19Process Scheduling Queues
- Job queue set of all processes in the system.
- Ready queue set of all processes residing in
main memory, ready and waiting to execute. - Device queues set of processes waiting for an
I/O device. - Process migration between the various queues.
20 Schedulers
- Long-term scheduler (or job scheduler) selects
which processes should be brought into the ready
queue. - Short-term scheduler (or CPU scheduler) selects
which process should be executed next and
allocates CPU.
21Medium Term Scheduling
- Time sharing Operating systems may introduce a
medium term scheduler - Removes processes from memory (and thus CPU
contention) to reduce the degree of
multiprogramming swapping - Swapping may be needed to improve the process mix
or to free up memory if it has become
overcommitted
22Intermediate queue
Job queue
CPU
Ready queue
End
Process request
I/O
I/O
I/O
I/O
23Scheduling Criteria
- CPU utilization keep the CPU as busy as
possible - Throughput of processes that complete their
execution per time unit - Turnaround time amount of time to execute a
particular process - waiting to get into memory waiting in the ready
queue executing on the CPU I/O - Waiting time amount of time a process has been
waiting in the ready queue - Response time amount of time it takes from when
a request was submitted until the first response
is produced,
24Optimization Criteria
- Max CPU utilization
- Max throughput
- Min turnaround time
- Min waiting time
- Min response time
- In most cases we optimize the average measure
25Scheduling AlgorithmsFirst-Come, First-Served
(FCFS)
- Process Burst Time
- P1 24
- P2 3
- P3 3
- Suppose that the processes arrive in the order
P1 , P2 , P3 The Gantt Chart for the schedule
is - Waiting time for P1 0 P2 24 P3 27
- Average waiting time (0 24 27)/3 17
- CPUI/O Burst Cycle Process execution
consists of a cycle of CPU execution and I/O
wait.
26FCFS Scheduling (Cont.)
- Suppose that the processes arrive in the order P2
, P3 , P1 - The Gantt chart for the schedule is
- Waiting time for P1 6 P2 0 P3 3
- Average waiting time (6 0 3)/3 3
- Much better than previous case.
- Average waiting time is generally not minimal and
may vary substantially if the process CPU-burst
times vary greatly
27FCFS Scheduling (Cont.)
- FCFS is non-preemptive
- Not good for time sharing systems where where
each user needs to get a share of the CPU at
regular intervals - Short process(I/O bound) wait for one long
CPU-bound process to complete a CPU burst before
they get a turn - lowers CPU and device utilization
- I/O bound processes complete their burst and
enter ready queue I/O devices idle and I/O
bound processes waiting - CPU bound process completes CPU burst and moves
to I/O device - I/O bound processes all quickly complete their
CPU bursts and enter I/O queue now CPU is idle - CPU bound completes I/O and executes on CPU back
to step 1
28Shortest-Job-First (SJR) Scheduling
- Associate with each process the length of its
next CPU burst. Use these lengths to schedule
the process with the shortest time (on a tie use
FCFS) - Two schemes
- nonpreemptive once CPU given to the process it
cannot be preempted until completes its CPU
burst. - preemptive if a new process arrives with CPU
burst length less than remaining time of current
executing process, preempt. - This scheme is know as the shortest-Remaining-Tim
e-First (SRTF). - SJF is optimal gives minimum average waiting
time for a given set of processes.
29Example of Non-Preemptive SJF
- Process Arrival Time Burst Time
- P1 0.0 7
- P2 2.0 4
- P3 4.0 1
- P4 5.0 4
- SJF (non-preemptive)
- Average waiting time (0 6 3 7)/4 4
30Example of Preemptive SJF
- Process Arrival Time Burst Time
- P1 0.0 7
- P2 2.0 4
- P3 4.0 1
- P4 5.0 4
- SJF (preemptive)
- Average waiting time (9 1 0 2)/4 3
31Priority Scheduling
- A priority number (integer) is associated with
each process - The CPU is allocated to the process with the
highest priority (smallest integer ? highest
priority). - Can be preemptive (compares priority of process
that has arrived at the ready queue with priority
of currently running process) or non-preemptive
(put at the head of the ready queue) - SJF is a priority scheduling where priority is
the predicted next CPU burst time. - Problem ? Starvation low priority processes may
never execute. - Solution ? Aging as time progresses increase
the priority of the process.
32Round Robin (RR)
- Each process gets a small unit of CPU time (time
quantum), usually 10-100 milliseconds. After
this time has elapsed, the process is preempted
and added to the end of the ready queue. - If there are n processes in the ready queue and
the time quantum is q, then each process gets 1/n
of the CPU time in chunks of at most q time units
at once. No process waits more than (n-1)q time
units.
33Example of RR with Time Quantum 20
- Process Burst Time
- P1 53
- P2 17
- P3 68
- P4 24
- The Gantt chart is
- Typically, higher average turnaround than SJF,
but better response.
34Memory Management
- When a process is executed it has to be in main
memory as the main memory can be accessed
quicker. - An efficient use of the main memory is an
important task of the operation system. - Different memory management techniques are used
for this purpose.
35Memory partition
- How processes are arranged in the main memory
before been executed? - Fixed-sized partitions
- Variable-sized partitions
36Fixed-sized partitions
OS 8M
8M
8M
8M
8M
37Variable-sized partitions
OS 8M
2M
4M
8M
18M
38Swapping
- I/O operations are slow
- If a running process requires an I/O operation.
The CPU will move to another process in the main
memory. - Suppose the main memory is full of processes
waiting on I/O. - CPU becomes idle
- To solve this problem Swapping technique is used.
39disk
Main memory
Operation System
Long-term queue
Completed processes
No Swapping
Main memory
Long-term queue
Operation System
Completed processes
With Swapping
Medium-term
40os
os
os
os
P1
P1
P1
p2
p2
p3
a
c
d
b
os
os
os
os
P1
P1
p2
P4
P4
P4
P3
P3
p3
p3
e
g
h
f
41Fragmentation
- Memory is divided into partitions
- Each partition has a different size
- Processes are allocated space and later freed
- After a while memory will be full of small holes!
- No free space large enough for a new process even
though there is enough free memory in total - If we allow free space within a partition we have
internal fragmentation - Fragmentation
- External fragmentation unused space between
partitions - Internal fragmentation unused space within
partitions
42Problems with swapping
- Swapped process are I/O output processes.
- I/O processes are slower.
- The swapping process is slow as well.
- Solution
- Reduce the amount of codes that needs to be
swapped. - Paging
43Paging
- A program is divided into small fixed-sized
chunks(pages). - Main memory is divided into small fixed-sized
chunks (frames). - A page is stored in one frame.
- A program is stored in a set of frames. These
frames do not need to be continuous.
44disk
disk
13
page 0 of A
13
Process A
Process A
page 1 of A
14
page 0 page 1 page 2 page 3
page 0 page 1 page 2 page 3
14
page 2 of A
15
15
In use
In use
16
16
In use
In use
17
17
page 3 of A
A- page table
18
18
In use
In use
19
13
19
14
20
20
15
18
45Logical and physical address
disk
page 0 of A
Page 1
13
Process A
page 1 of A
14
I . . . J(30)
page 0 page 1 page 2 page 3
Logical address(J)
page 2 of A
15
130
In use
16
In use
17
page 3 of A
A- page table
18
In use
19
13
14
20
Physical address(J)
15
18
1430
46simple paging is not efficient
- Better than fixed and variable-sized partitions.
- OS - loads all pages of a process in the main
memory. - However, not all pages of a process need to be in
the main memory in order to be executed. - OS - can still execute a process if only some of
the pages are loaded - Demand paging.
47Demand paging
- Operating system loads a page only when it is
required - No swapping in or out of unused pages is needed.
- Better use of memory.
- CPU can access only a number of pages of a
process at one time. - Then asks for more pages to be loaded.
48Virtual memory
- Demand paging gives rise the concept of virtual
memory. - Only a small part of a process needs to be in
main memory at one time. - Programs which require bigger memory that main
memory can still be executed. - Impression of a bigger computer memory.
- This concept of the main memory is called virtual
memory. - Demand paging and virtual memory are widely used
in todays operation systems (wind-2000, XP).
49Interrupts
- Definition of Interrupt
- Event that disrupts the normal execution of a
program and causes the execution of special
instructions
50Interrupts
Interrupt
Program
time t
51Interrupts
Program
time t
52Interrupts
Interrupt
Program
Program
Interrupt Service Routine
time t
53Interrupts
Interrupt
Program
mov R1, cent
mul R1, 9
div R1, 5
add R1, 32
mov fahr, R1
time t
54Interrupts
Interrupt
Program
Program
Interrupt Service Routine
mul R1, 9
mov R1, cent
time t
55Interrupts
Interrupt
Program
Program
Save Context
Restore Context
Interrupt Service Routine
mul R1, 9
mov R1, cent
time t
56Interrupts
Interrupt
Program
Program
Save Context
Restore Context
Interrupt Service Routine
mul R1, 9
mov R1, cent
eg push R1
eg pop R1
time t
57I/O devices
- Called peripherals
- Keyboard
- Mouse
- Speakers
- Monitor
- scanner
- Printer
- Disk drive
- CD-drive.
- OS manages all I/O operations and devices
58OS - I/O management
- There are four main I/O operations.
- Control tell the system to perform some action
(e.g. rewind tape). - Test check the status of the device
- Read read data from the device
- Write write data to the device.
59I/O modules
System bus
I/O module
I/O module
CPU
Main memory
I/O device
I/O device
60Advantages of I/O modules
- They allow the CPU to view a wide range of
devices in a simple-minded format - CPU does not need to know details of timing,
format, or electronic mechanics. - CPU only needs to function in terms of a simple
read and write commands. - They help the CPU to work more efficiently
- They are 3 ways in which I/O modules can work
- Programmed I/O
- Interrupt-driven I/O
- Direct memory access.
61Programmed I/O
- The CPU controls I/O device directly Via the I/O
modules. - The CPU sends an I/O command the I/O module.
- And waits until the I/O operation is completed
before sending another I/O command. - The performance is poor as the CPU spends too
much time waiting the I/O device.
62Programmed I/O
Issue Read to I/O module
Check status
Ready
Read word from I/O module
Write word To memory
NO
done
yes
Next instruction
63Interrupt-driven I/O
- The CPU issues a command to the I/O module and
then gets on with executing other instructions. - The I/O module interrupts the CPU when it is
ready to exchange data with the CPU. - The CPU then executes the data transfer.
- Most computer have interrupt lines to detect and
record the arrival of an interrupt request.
64Interrupt-driven I/O
Issue Read to I/O module
CPU goes to do Other things
Check status
When the status Is ready the I/O module sends An
interrupt-signal
Ready
Read word from I/O module
Write word To memory
NO
done
yes
Next instruction
65How does I/O module send an interrupt to the CPU?
- I/O module is linked to the control bus.
- I/O module reads a word from the I/O device.
- Puts the word in the data register which is
linked to data bus. - Sends a interrupt signal to the CPU via control
bus.
66How does CPU know Interrupt-signal?
- The CPU executes an instruction cycle.
- An interrupt stage is added at the end of the
cycle. - At the end of an instruction cycle the CPU checks
for interrupts. - The CPU hardware has a wire, interrupt-request
line that the CPU can sense. - If no interrupt the CPU carries on executing next
instruction. - Otherwise, it updates the process control block,
save it. - Then process the interrupt.
- Resume the execution of the interrupted process.
67How does CPU process interrupts?
- Interrupt detection.
- CPU executes Interrupt-handler program.
- Interrupt-handler program makes use of the
process control block save earlier. - Interrupt-handler decides what to do with
interrupt. - Then asks the CPU to resume the execution
interrupted.
68Disadvantages of Interrupt-driven I/O
- CPU is responsible for managing I/O data
transfer. - Every transferred word must go through the CPU.
- Devices with large transfer, e.g. disk drive, the
CPU wastes time dealing with data transfer. - Solution Direct-memory-access(DMA).
69Direct-memory-access - DMA
- Special-purpose processor.
- Handles data transfer.
- CPU issues to the DMA
- starting address in main memory to read/write to.
- Starting address in the I/O device to read/write
to. - The number of words to be transferred.
- DMA transfers data without intervention from the
CPU. - DMA sends interrupt to the CPU when transfer is
completed.
70DMA/CPU - bus system
- DMA take care data transfer.
- CPU free to do other jobs.
- However, they can not use the bus at the same
time. - DMA can use the bus only when the CPU is not
using it. - Some times it has to force to CPU to free the
bus, cycles stealing.
71DMA/CPU
System bus
DMA
CPU
Main memory
I/O module
I/O device
72Summery
- OS- memory manager
- Fixed-sized partition waist of memory.
- Variable-sized partition fragmentation.
- Swapping. Time wasted in swapping the whole
process - Simple paging process divided into pages and
loaded into main memory(divided into frames). - Demand paging only the required pages are loaded
to main memory. - OS- I/O manager
- Programmed I/O CPU waste waiting for I/O
operation. - Interrupt-driven I/O CPU responsible for data
transfer. - DMA takes care of data transfer instead the
CPU.