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:

  1. It executes a system call
  2. An interrupt occurs
  3. The Process is exiting

 

 

 

Process Control Block

 

  1. Process Identification
  2. Process State
  3. CPU Scheduling Information
  4. Program Counter
  5. Memory Management Information (memory limits, etc.)
  6. Accounting Information (amount of CPU used, etc.)
  7. I/O Status Information (list of I/O devices allocated, etc.)

 

 

 

Interruption Procedure

 

  1. Save PCB in a stack
  2. Load information about interruption program
  3. Execute the interruption program
  4. Move blocked process to ready queue
  5. Select process to run (scheduler program)
  6. Begin execution of the active program

SWAPPING (the system very loaded)

 

 

 

 

 

 

 

 

 

 

 

OPERATIONS ON PROCESSES

  1. Process Creation
  2.  

     

     

     

     

  3. Process Deletion

 

Scheduling

  1. Long-term Scheduler
  2. Short-term Scheduler
  3. Medium-term Scheduler

 

 

 

 

 

 

 

 

 

 

 

Long-term Scheduler

 

 

Short-term Scheduler:

 

 

Medium-term Scheduler:

- Swap out and swap in a process from the memory

CONTEXT SWITCH

 

  1. Save the state of the old process
  2. Load the saved state for the new process

 

 

CONCURRENT PROCESSES

Producer à Buffer -> Consumer

+ 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

  1. FIRST COME – FIRST SERVED
  2. + Can be monopolized the CPU

     

     

     

  3. SHORTEST JOB FIRST:

+ Minimal average delay

+ Starvation

 

 

 

 

 

PREEMPTIVE POLICIES

  1. ROUND ROBIN
  2. + 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)

     

     

     

  3. GENERAL MULTI-LEVEL OR PRIORITY SCHEDULING:
  4. + 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

  5. Multi-level feedback queues
  6. + 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

     

  7. Guaranted Scheduling
  8. + Goal: fair share

    + The highest priority to the process that has the lowest

    actual-to planned CPU usage ratio

    PREEMPTIVE POLICIES

  9. MULTI-LEVEL QUEUES BY CHARACTERISTICS:

+ 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

  1. PRODUCER AND CONSUMER

 

B) THE READERS-WRITERS PROBLEM

+ THE READERS THAT NEED TO ACCESS FILES

+ THE WRITERS THAT NEED TO UPDATE THEM

 

 

C) THE DINING PHILOSOPHERS

 

 

 

  1. THE SLEEPING BARBER

 

 

 

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 MARK

WHERE NEEDi <= AVAILABLE

AVAILABLE = AVAILABLE + NEEDi

MARK PROCESS Pi

IF THERE ARE PROCESSES WITHOUT MARK

UNSAFE STATE

ELSE

SAFE STATE

DEADLOCK PREVENTION

  1. DETECTION MECHANISM

 

 

 

 

 

 

 

 

 

- MULTIPLE INSTANCE OF EACH RESOURCE TYPE

IF THERE ARE PROCESSES WITHOUT MARK

PROCESSES BLOCKED

 

  1. RECOVERY MECHANISM

- ABORT: + ABORT ALL DEADLOCKED PROCESSES

+ ABORT ONE PROCESS AT A TIME UNTIL THE

DEADLOCK CYCLE IS TERMINATED

MEMORY MANAGEMENT

 

 

  1. EACH PROGRAM HAD ACCESS/MANAGED TO WHOLE MAIN MEMORY
  2.  

  3. UNIPROGRAMMING
  4. + MEMORY-RESIDENT MONITOR

    + MEMORY PROTECTION HARDWARE

     

  5. MULTIPROGRAMMING WITH FIXED PARTITION

+ FIXED NUMBER OF MEMORY PARTITIONS WITH FIXED BOUNDARIES

+ PROGRAMS RUNNING IN DIFFERENT MEMORY PARTITION

MEMORY MANAGEMENT

 

+ MEMORY PROTECTION

 

 

 

 

 

 

 

  1. MULTIPROGRAMMING WITH VARIABLE PARTITION

+ 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:

 

  1. PAGING AND SEGMENTATION STRATEGIES

+ 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

 

  1. NON-CONTIGUOUS ALLOCATION OF MEMORY
  2.  

    + PROCESS ADRESS SPACES à DISJOINTS BLOCKS OF

    PHYSICAL MEMORY

    (CALLED PAGES OR

    SEGMENTS)

     

    Virtual address Real address

    + CPU à MMU à RAM

     

  3. DEMAND FETCH
  4.  

    + 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

     

  5. KINDS OF VIRTUAL MEMORIES

+ PAGING SYSTEMS

(FRAMES)

(PAGES)

+ SEGMENTATION SYSTEMS

 

  1. ADDRESS TRANSLATION PROCESS

+ PROBLEM

 

 

 

 

 

 

 

 

 

 

 

 

VIRTUAL MEMORY

 

  1. ADDRESS TRANSLATION PROCESS

+ EXAMPLE

 

 

 

 

 

1,024 = 10000000000

 

 

 

 

 

+ N LEAST SIGNIFICANT BITS = OFFSET

(N=LOG2 (PAGE SIZE))

M-N MOST SIGNIFICANT BITS = PAGE NUMBER

 

 

 

 

VIRTUAL MEMORY

 

  1. ADDRESS TRANSLATION PROCESS

 

 

 

 

 

 

 

 

 

5) MISSING PAGES => PAGE FAULTS => PROCESS TO

WAITING STATE

    1. FIND EMPTY PAGE FRAME IN MEMORY
    2. IF THERE ISN’T
    3. 2.1 EXPEL ONE PAGE FRAME FROM MEMORY

    4. FETCH MISSING PAGE INTO THE MEMORY
    5. UPDATE PAGE TABLE ENTRY

 

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

 

  1. FIND THE DESIRED PAGE ON THE DISK
  2. IF THERE IS A FREE FRAME THEN
    1. USE IT
    2. ELSE

    3. USE A PAGE-REPLACEMENT POLICY
    4. WRITE THE VICTIM PAGE TO THE DISK
    5. READ THE DESIRED PAGE INTO THE FREE FRAME AND UPDATE PAGE AND/OR FRAME TABLE.
    6. RESTART THE USER PROCESS

 

 

 

 

 

 

 

 

 

 

 

 

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