OPERATING SYSTEM
CONTROLS AND COORDINATES THE USE OF THE HARDWARE AMONG THE VARIOUS APPLICATION PROGRAMS FOR THE VARIOUS USERS
A COMPUTER SYSTEM COMPONENTS:
TYPE OF OPERATING SYSTEMS:
A MODERN COMPUTER SYSTEM
I/O STRUCTURE
STORAGE
OPERATING SYSTEM COMPONENTS
SYSTEM CALLS
PROVIDE THE INTERFACE BETWEEN A PROCESS AND THE OPERATING SYSTEM
CATEGORIES:
SYSTEM PROGRAMS
OPERATING SYSTEM SERVICES:
METHODOLOGY FOR OPERATING SYSTEM IMPLEMENTATION
PROCESSES
A PROCESS IS A PROGRAM EXECUTING A GIVEN SEQUENTIAL COMPUTATION
PROCESS ELEMENTS:
OPERATIGN SYSTEMS AND PROCESSES
STATE OF A PROCESS
Running Process loses CPU:
Process Control Block
Interruption Procedure
SWAPPING (the system very loaded)
OPERATIONS ON PROCESSES
Scheduling
Long-term Scheduler
Short-term Scheduler:
Medium-term Scheduler:
- Swap out and swap in a process from the memory
CONTEXT SWITCH
CONCURRENT PROCESSES
+ Client-Server
THREADS
It is a lightweight process that does not have its own address space but shares it with its parent and other peer threads, collectively known as a task. A conventional process (heavyweight process) is a task with a single thread
- A thread has: + A program counter
+ Set of registers
+ Own stack
- A thread share: + The code segment
+ The data segment
+ OS resources
+ Opened files
+ Address space
THREADS
IMPLEMENTATION
1. Kernel-Support threads + System Calls
+ One process table entry per thread
+ Complex Switch
2. User-level Threads + One process table entry per task
+ Thread library
+ Blocking Problems
THREADS
- SERVER/WORKERS
SCHEDULING
DECIDES HOW TO ALLOCATE THE CPU AND THE MAIN MEMORY TO THE PROCESSES
CPU SCHEDULER -> SHORT-TERM SCHEDULER
MAIN MEMORY SCHEDULER -> MEDIUM-TERM SCHEDULER
GENERAL OBJECTIVES
SCHEDULING
NON-PRE-EMPTIVE SCHEDULER: NEVER REMOVES A RESOURCE FROM A PROCESS THAT STILL NEEDS IT.
PRE-EMPTIVE SCHEDULER: CAN TEMPORARELY REMOVE A RESOURCE FROM A PROCESS IF ANOTHERE PROCESS REQUIRES IT MORE URGENTLY.
CPU SCHEDULING DECISION:
NON-PREEMPTIVE POLICIES
+ Can be monopolized the CPU
+ Minimal average delay
+ Starvation
PREEMPTIVE POLICIES
+ Similar to FCFS but processes only get the CPU for a
fixed amount of time (time quantum or time slice)
+ Performance of this policies F(length of the quantum)
+ A given priority by process
+ A queue per priority level (array of FCFS queues)
+ Preemptive policy between priorities queues
+ Starvation for low-priority processes
PREEMPTIVE POLICIES
+ Dynamic priorities
+ Each queue has a different time quantum
+ A process that exceeds its time quantum is moved to a
lower priority queue
+ A process that has not used the CPU for too long time is
moved to a higher priority queue
+ Goal: fair share
+ The highest priority to the process that has the lowest
actual-to planned CPU usage ratio
PREEMPTIVE POLICIES
+ Partition the ready queue into several separate queues
+ Each queue has its own scheduling algorithm
+ Scheduling between the queues: * Priorities
* Time quantum
+ Each queue represents a property of the process to allow
a classification of the processes into different groups
Floating Priorities: + Increase when the process completes an I/O
+ Decrease when the process exceeds its quantum
Aging: + Solve starvation problem
+ Gradually increasing the priority of process that wait
INTERPROCESS COMMUNICATION
SET OF TOOLS PROVIDED BY THE OPERATING SYSTEM TO ALLOW PROCESSES THAT DO NOT SHARE COMMON MEMORY SEGMENTS TO COMMUNICATE WITH EACH OTHER
send
receive
INTERPROCESS COMMUNICATION
+ DIRECT COMMUNICATION
PROCESS AS DESTINATION OR SOURCE
send(P, message) <-SYMMETRIC send(P, message)
receive(Q, message) receive(Q, message)
+ INDIRECT COMMUNICATION
send(A, message)
receive(A, message)
INTERPROCESS COMMUNICATION
+ BLOCKING (SYNCHRONOUS)
+ NON-BLOCKING (ASYNCHRONOUS)
INTERPROCESS COMMUNICATION
- BUFFERS + ZERO CAPACITY => RENDEZVOUS
+ BOUNDED CAPACITY
+ THEORETICALLY UNLIMITED CAPACITY
REMOTE PROCEDURE CALLS
UNPACK REPLY
PERFORMS REQUIRED DATA CONVERSION
SEND A REQUEST AND WAIT
PACK RESULTS
PERFORMS REQUIRED DATA CONVERSION
WAIT FOR INCOMING REQUESTS AND SENDS
THE REPLY
EXCEPTIONS
INTERPROCESS SYNCHRONIZATION
PROBLEM: WHENEVER TWO OR MORE PROCESSES SHARE COMMON DATA (WHICH CAN BE STORED IN A FILE, OR SHARED MEMORY SEGMENT), UNPREDICTABLE RESULTS ARE LIKELY TO HAPPEN IF TWO OF THE PROCESS ATTEMPT TO ACCESS THE SARED DATA AT THE SAME TIME
INTERPROCESS SYNCHRONIZATION
CRITICAL SECTION
EACH PROCESS HAS A SEGMENT CODE, CALLED A CRITICIAL SECTION, TO SHARE DATA WITH OTHER PROCESSES. WHEN ONE PROCESS IS EXECUTING IN ITS CRITICAL SECTION, NO OTHER PROCESS IS TO BE ALLOWED TO EXECUTE IN ITS CRITICAL SECTION
SOLUTIONS
CRITERIA TO SATISFY
SOFTWARE SOLUTION
PETERSON’S ALGORITHMS
HARDWARE SOLUTION
PROBLEMS:
SEMAPHORES
+ MUTUAL EXCLUSION
P(&MUTEX) V(&MUTEX)
+ FORCING A PROCESS TO WAIT FOR ANOTHER:
SEMAPHORES
+ FORCING TWO PROCESSES TO WAIT FOR EACH OTHER:
V(&1-READY)
P(&2-READY)
P(&1-READY)
V(&2-READY)
EXAMPLE (Producer-Consumer)
MONITORS
+ WAIT ON A CONDITION => COND.WAIT
+ GET A SIGNAL => COND.SIGNAL
MONITORS
EVENTCOUNTS
- 3 OPERATIONS: + READ (E)
+ ADVANCE (E)
+ AWAIT (E, V)
MESSAGE PASSING
CLASSICAL SYNCHRONIZATION PROBLEMS
B) THE READERS-WRITERS PROBLEM
+ THE READERS THAT NEED TO ACCESS FILES
+ THE WRITERS THAT NEED TO UPDATE THEM
C) THE DINING PHILOSOPHERS
DEADLOCK
A SET OF PROCESSES IS IN A DEADLOCK STATE WHEN EVERY PROCESS IN THE SET IS WAITING FOR AN EVENT THAT CAN BE CAUSED BY ONLY ANOTHER PROCESS IN THE SET
WHEN SEVERAL PROCESSES ARE BLOCKED AND EACH OF THESE PROCESSES IS WAITING FOR A RESOURCE THAT CAN ONLY BE RELEASED BY ANOTHER BLOCKED PROCESS
TYPE OF RESOURCE + SERIALLY REUSABLE RESOURCE
+ CONSUMABLE RESOURCE
MODE OF OPERATION + REQUEST
+ USE
+ RELEASE
DEADLOCK MANAGEMENT
+ IGNORE THE PROBLEM
+ DEADLOCK PREVENTION DEADLOCK
+ DEADLOCK AVOIDANCE NEVER OCCURS
+ DEADLOCK DETECTION
RESOURCE ALLOCATION GRAPH
VERTICES + RESOURCES EDGES + REQUEST
+ PROCESSES + ASSIGNEMENT
NECESSARY CONDITION FOR A DEADLOCK
FOUR NECESSARY CONDITION THAT MUST BE SIMULTANEOUSLY IN EFFECT
DEADLOCK PREVENTION (DENYING ONE OF THE CONDITIONS)
DEADLOCK AVOIDANCE
- INFORMATION
+ THE RESOURCES CURRENTLY AVAILABLE
+ THE RESOURCES CURRENTLY ALLOCATED
+ THE FUTURE REQUESTS AND RELEASES
FREE=3 T0 T1 T2 T3 T4 T0 T1
9 A 3 3 3 3 3 3 5
4 B 2 4 - - - 2 2
7 C 2 2 2 7 - 2 2
THE REQUEST CAN BE GRANTED ONLY IF CONVERTING A GIVEN CLAIM EDGE TO ASSIGNMENT EDGE DOES NOT RESULT IN THE FORMATION OF A CYCLE
DEADLOCK AVOIDANCE
RESOURCES ALLOCATION NEED
4 2 3 1 0 0 1 0 2 0 0 1
AVAILABLE 2 0 0 1 1 0 1 0
2 1 0 0 0 1 2 0 2 1 0 0
RULES: A<B IFF Ai<=Bi
S
i=1m ALLOCATIONij + AVAILABLEj = RESOURCEj
REPEAT WHILE
THERE IS A PROCESS Pi WITHOUT MARKWHERE NEEDi <= AVAILABLE
AVAILABLE = AVAILABLE + NEEDi
MARK PROCESS Pi
IF
THERE ARE PROCESSES WITHOUT MARKUNSAFE STATE
ELSE
SAFE STATE
DEADLOCK PREVENTION
- MULTIPLE INSTANCE OF EACH RESOURCE TYPE
IF THERE ARE PROCESSES WITHOUT MARK
PROCESSES BLOCKED
- ABORT: + ABORT ALL DEADLOCKED PROCESSES
+ ABORT ONE PROCESS AT A TIME UNTIL THE
DEADLOCK CYCLE IS TERMINATED
MEMORY MANAGEMENT
+ MEMORY-RESIDENT MONITOR
+ MEMORY PROTECTION HARDWARE
+ FIXED NUMBER OF MEMORY PARTITIONS WITH FIXED BOUNDARIES
+ PROGRAMS RUNNING IN DIFFERENT MEMORY PARTITION
MEMORY MANAGEMENT
+ MEMORY PROTECTION
+ EACH PROCESS IS GIVEN EXACTLY THE MEMORY SPACE IT REQUIRES
+ MEMORY MANAGER LOADS ALL THE PROCESS UNTIL MAIN MEMORY IS FULL => FREE LIST
MEMORY MANAGEMENT
+ EXTERNAL FRAGMENTATION: FREE MEMORY FRAGMENT INTO A LARGE NUMBER OF SMALL BLOCKS
+ MEMORY ALLOCATION:
+ BINDING OF INSTRUCTION AND DATA TO MEMORY ADDRESS
MEMORY MANAGEMENT
+ DYNAMIC LOADING AND LINKING
+ OVERLAYS => TO KEEP IN MEMORY ONLY THE CODE
THAT IS NEED
+ SWAPPING
VIRTUAL MEMORY
+ PROCESS ADRESS SPACES à DISJOINTS BLOCKS OF
PHYSICAL MEMORY
(CALLED PAGES OR
SEGMENTS)
Virtual address Real address
+ CPU à MMU à RAM
+ PROCESS CAN BE EXECUTED WOTHOUT FETCHING INTO MEMORY IST WHOLE APRESS SPACE
+ PROCESS ADDRESS SPACE WILL BE FETCHED ON DEMAND
+ IF THE MEMORY IS FULL AND A PAGE NEEDS TO BE FETCHED => EXPEL SOME OTGER PAGE
+ FAULTS CAN SLOW DOWN A PROCESS
Taccess = (1-f)*Tmem + f*Tdisk
VIRTUAL MEMORY
+ PAGING SYSTEMS
(FRAMES)
(PAGES)
+ SEGMENTATION SYSTEMS
+ PROBLEM
VIRTUAL MEMORY
+ EXAMPLE
1,024 = 10000000000
+ N LEAST SIGNIFICANT BITS = OFFSET
(N=LOG2 (PAGE SIZE))
M-N MOST SIGNIFICANT BITS = PAGE NUMBER
VIRTUAL MEMORY
5) MISSING PAGES => PAGE FAULTS => PROCESS TO
WAITING STATE
2.1 EXPEL ONE PAGE FRAME FROM MEMORY
6) PAGE TABLE ENTRIES
EXTRA BITS
+ MODIFICATION BIT
+ PROTECTION BIT
+ PAGE REFERENCE BIT
VIRTUAL MEMORY
7) PAGE TABLE REPRESENTATION
+ EACH PROCESS PAGE TABLE IN CPU
+ PAGE TABLE IN MEMORY
+ TRANSLATION LOOK-ASIDE BUFFER (TLB)
Taccess = h*Tmem + (1-h)* Tmem
+ TWO LEVEL PAGES TABLE
VIRTUAL MEMORY
7) PAGE TABLE REPRESENTATION
+ INVERTED PAGE TABLE
< process-id, page-number, offset>
8) SHARED PAGES
PAGE REPLACEMENT POLICY
PAGE REPLACEMENT POLICY
- GOALS: + MINIMUM OVERHEAD
+ VICTIMS MUST NOT BE REFERENCED AGAIN IN
THE NEAR FUTURE
ELSE
PAGE REPLACEMENT POLICY
+ FIFO (FIRST IN – FIRST OUT)
BELADY’S ANOMALY
Reference String: 0 1 2 3 0 1 4 0 1 2 3 4
+ LRU (LEAST RECENTLY USED)
+ SECOND CHANCE AND CLOCK
+ LFU (LEAST FREQUENTLY USED)
+ MFU (MOST FREQUENTLY USED)
PAGE REPLACEMENT POLICY
+ VARIABLE SIZE LOCAL POLICIES
+ EQUAL ALLOCATION:
m/n FRAMES PER PROCESS
m: number of frames
n: number of process
+ PROPORTIONAL ALLOCATION
si /S*m FRAMES PER PROCESS
S=å si S: size of virtual memory
si: size of virtual memory for process i
SEGMENTATION
SEGMENTATION WITH PAGING
PROCESSES -> SEGMENT TABLES
SEGMENT -> PAGE TABLE
|
NUMBER OF SEGMENT |
NUMBER OF PAGE |
OFFSET |
SEGMENTATION
FILE SYSTEMS
IT IS THE PART OF THE OPERATING SYSTEM THAT PROVIDES LONG TERM STORAGE OF INFORMATION. THE OPERATING SYSTEM PROVIDES A UNIFORM LOGICAL VIEW OF THIS INFORMATION STORAGE
- ELEMENTS: + COLLECTION OF FILES
+ DIRECTORY STRUCTURE
+ IS A SET OF RELATED INFORMATION THAT IS STORAGE ON SECONDARY STORAGE.
+ IS A LOGICAL STORAGE UNIT THAT THE OPERATING SYSTEM ABSTRACTS FROM THE PHYSYCAL PROPERTIES OF ITS STORAGE DEVICES
+ SEQUENCE OF BITS WHOSE IS DEFINED BY THE FILE’S CREATOR
+ ORDINARY FILES (ASCII, BINARY, EXECUTABLE) LIKE SOURCE CODE, TEXT FILE, ETC.
+ DIRECTORIES
+ SPECIAL FILES: DEVICES, SYSTEM OBJECTS
FILE SYSTEMS
+ SET OF RECORDS => SET OF FIELDS
+ BLOCK OF RECORDS => PACKING THECNIQUES
+ TREE OF RECORDS
+ SEQUENCE OF BYTES
+ SEQUENCIAL ACCESS
+ DIRECT ACCESS
+ USING A KEY
FILE SYSTEMS
+ NAME
+ TYPE
+ LOCATION
+ FILE PROTECTION: owner, password, access control list
+ HISTORIAL INFORMATION: creation date, last access date
+ ACCOUNTING INFORMATION: file size
+ FLAGS: hidden flag, backup flag
+ OPEN
+ READ
start from the current position
+ WRITE
+ SEEK => direct access
+ CLOSE
+ CREATE
+ DELETE
+ OTHERS: APPEND, RENAME, ETC.
MAPPED FILES
IT IS A FILE THAT IS MAPPED INTO THE VIRTUAL MEMORY SPACE OF A GIVEN PROCESS
ALLOCATION METHODS
+ SIMPLE AND LOW ACCESS TIME
+ FRAGMENTATION AND PREDICTION OF THE SIZE
ALLOCATION METHODS
+ EACH DISK BLOCK CONTAINS THE ADDRESS OF THE
NEXT ONE
+ NO EXTERNAL FRAGMENTATION AND FILE GROWTH
EASY
ALLOCATION METHODS
+ A FILE INDEX WITH THE ADDRESS OF ALL THE BLOCKS
IN THE FILE
MS-DOS SOLUTION
FILE 1 => BLOCKS: 0 3 6 7 8 9 10
FILE 2 => BLOCKS: 1 2 4 5
UNIX SOLUTION
SUPERBLOCK
DIRECTORIES
+ CREATE
+ DELETE
+ RENAME
+ LINK
+ LIST
+ SEARCH (PATH NAME: ABSOLUTE OR RELATIVE)
+ SINGLE STRUCTURE
+ TWO-LEVEL
+ TREE-STRUCTURE
+ ACYCLIC STRUCTURE
UNIX SOLUTION
FREE-SPACE MANAGEMENT
DISK SCHEDULING
DISK SCHEDULING
PROTECTION
TO CONTROL ACCESS TO RESOURCES
+ ACCESS CONTROL LIST <user name, type-access>
+ TICKETS OR CAPABILIITES => password
I/O HARDWARE
- STORAGE DEVICES: DISKS, TAPES
- TRANSMISSION DEVICES: NETWORK CARDS, MODEMS
- HUMAN-INTERFACE DEVICES: SCREEN, KEYBOARD, MOUSE
- SPECIAL DEVICES: PORT, BUS, CONTROLLERS
I/O HARDWARE
I/O HARDWARE
+ CHARACTER-STREAM OR BLOCK
+ SEQUENTIAL OR RANDOM-ACCESS
+ SYNCHRONOUS OR ASYNCHRONOUS
+ SHARABLE OR DEDICATED
+ SPEED OF OPERATION
+ READ-WRITE, READ ONLY, WRITE ONLY