william stallings computer organization and architecturecomputer organization and architecture....

41
1 William Stallings Computer Organization and Architecture Chapter 7 Operating System Support

Upload: others

Post on 28-May-2020

29 views

Category:

Documents


5 download

TRANSCRIPT

1

William Stallings Computer Organization and Architecture

Chapter 7Operating SystemSupport

2

Objectives and Functions

ConvenienceMaking the computer easier to use

EfficiencyAllowing better use of computer resources

3

Layers and Views of a Computer System

4

Operating System Services

Program creationProgram executionAccess to I/O devicesControlled access to filesSystem accessError detection and responseAccounting

5

O/S as a Resource Manager

6

Types of Operating System

InteractiveBatchSingle program (Uni-programming)Multi-programming (Multi-tasking)

7

Early Systems

Late 1940s to mid 1950sNo Operating SystemPrograms interact directly with hardwareTwo main problems:

SchedulingSetup time

8

Simple Batch Systems

Resident Monitor programUsers submit jobs to operatorOperator batches jobsMonitor controls sequence of events to process batchWhen one job is finished, control returns to Monitor which reads next jobMonitor handles scheduling

9

Job Control Language

Instructions to MonitorUsually denoted by $e.g.

$JOB$FTN... Some Fortran instructions$LOAD$RUN... Some data$END

10

Desirable Hardware Features

Memory protectionTo protect the Monitor

TimerTo prevent a job monopolizing the system

Privileged instructionsOnly executed by Monitore.g. I/O

InterruptsAllows for relinquishing and regaining control

11

Multi-programmed Batch Systems

I/O devices very slowWhen one program is waiting for I/O, another can use the CPU

12

Single Program

13

Multi-Programming with Two Programs

14

Multi-Programming with Three Programs

15

Time Sharing Systems

Allow users to interact directly with the computer

i.e. Interactive

Multi-programming allows a number of users to interact with the computer

16

Scheduling

Key to multi-programmingLong termMedium termShort termI/O

17

Long Term Scheduling

Determines which programs are submitted for processingi.e. controls the degree of multi-programmingOnce submitted, a job becomes a process for the short term scheduler(or it becomes a swapped out job for the medium term scheduler)

18

Medium Term Scheduling

Part of the swapping function (later…)Usually based on the need to manage multi-programmingIf no virtual memory, memory management is also an issue

19

Short Term Scheduler

DispatcherFine grained decisions of which job to execute nexti.e. which job actually gets to use the processor in the next time slot

20

Process States

21

Process Control Block

IdentifierStatePriorityProgram counterMemory pointersContext dataI/O statusAccounting information

22

Key Elements of O/S

23

Process Scheduling

Process

Request

EndLong-TermQueue

Short-Term

QueueCPU

I/O QueueI/O

I/O QueueI/O

I/O QueueI/O

24

Memory Management

Uni-programMemory split into twoOne for Operating System (monitor)One for currently executing program

Multi-program“User” part is sub-divided and shared among active processes

25

Swapping

Problem: I/O is so slow compared with CPU that even in multi-programming system, CPU can be idle most of the timeSolutions:

Increase main memory ⌧Expensive⌧Leads to larger programs

Swapping

26

What is Swapping?

Long term queue of processes stored on diskProcesses “swapped” in as space becomes availableAs a process completes it is moved out of main memoryIf none of the processes in memory are ready (i.e. all I/O blocked)

Swap out a blocked process to intermediate queueSwap in a ready process or a new processBut swapping is an I/O process...

27

Partitioning

Splitting memory into sections to allocate to processes (including Operating System)Fixed-sized partitions

May not be equal sizeProcess is fitted into smallest hole that will take it (best fit)Some wasted memoryLeads to variable sized partitions

28

FixedPartitioning

29

Variable Sized Partitions (1)

Allocate exactly the required memory to a processThis leads to a hole at the end of memory, too small to use

Only one small hole - less waste

When all processes are blocked, swap out a process and bring in anotherNew process may be smaller than swapped out processAnother hole

30

Variable Sized Partitions (2)

Eventually have lots of holes (fragmentation)Solutions:

Coalesce - Join adjacent holes into one large holeCompaction - From time to time go through memory and move all hole into one free block (c.f. disk de-fragmentation)

31

Effect of Dynamic Partitioning

32

Relocation

No guarantee that process will load into the same place in memoryInstructions contain addresses

Locations of dataAddresses for instructions (branching)

Logical address - relative to beginning of programPhysical address - actual location in memory (this time)Automatic conversion using base address

33

Paging

Split memory into equal sized, small chunks -page framesSplit programs (processes) into equal sized small chunks - pagesAllocate the required number page frames to a processOperating System maintains list of free framesA process does not require contiguous page framesUse page table to keep track

34

Logical and Physical Addresses - Paging

35

Virtual Memory

Demand pagingDo not require all pages of a process in memoryBring in pages as required

Page faultRequired page is not in memoryOperating System must swap in required pageMay need to swap out a page to make spaceSelect page to throw out based on recent history

36

Thrashing

Too many processes in too little memoryOperating System spends all its time swappingLittle or no real work is doneDisk light is on all the time

SolutionsGood page replacement algorithmsReduce number of processes runningFit more memory

37

Bonus

We do not need all of a process in memory for it to runWe can swap in pages as requiredSo - we can now run processes that are bigger than total memory available!

Main memory is called real memoryUser/programmer sees much bigger memory -virtual memory

38

Page Table Structure

39

Segmentation

Paging is not (usually) visible to the programmerSegmentation is visible to the programmerUsually different segments allocated to program and dataMay be a number of program and data segments

40

Advantages of Segmentation

Simplifies handling of growing data structuresAllows programs to be altered and recompiled independently, without re-linking and re-loadingLends itself to sharing among processesLends itself to protectionSome systems combine segmentation with paging

41

Required Reading

Stallings chapter 7Stallings, W. Operating Systems, Internals and Design Principles, Prentice Hall 1998Loads of Web sites on Operating Systems