53
2 Computer Systems Overview Basically Chapter 1 in textbook Need some basic understanding of computer organization and hardware: processor memory I/O devices “Left as an exercise”

Computer Systems Overview

  • Upload
    tavon

  • View
    34

  • Download
    0

Embed Size (px)

DESCRIPTION

Computer Systems Overview. Basically Chapter 1 in textbook Need some basic understanding of computer organization and hardware: processor memory I/O devices “Left as an exercise”. Chapter 2: Operating Systems Overview. What is an Operating System? Services provided by an OS - PowerPoint PPT Presentation

Citation preview

Page 1: Computer Systems Overview

2

Computer Systems Overview

Basically Chapter 1 in textbook Need some basic understanding of

computer organization and hardware: processor memory I/O devices

“Left as an exercise”

Page 2: Computer Systems Overview

3

Chapter 2: Operating Systems Overview

What is an Operating System? Services provided by an OS Evolution of the OS Desired Hardware Features to support the OS Multiprogramming Time Sharing Systems Difficulties of the OS Design Achievements of the OS System Structure of the OS Modern OS

Page 3: Computer Systems Overview

4

Operating System Is a program that controls the execution of

application programs Tells the CPU when to execute other programs Uses the hardware efficiently

Is an interface between the user and hardware Masks the details of the hardware to

application programs Hence OS must deal with hardware details Make the system convenient to use

Page 4: Computer Systems Overview

5

Layers and Views

The OS typically is further dividedinto multiple layers.

Page 5: Computer Systems Overview

6

Operating Systems Definitions

Resource manager: manages and allocates resources (CPU, memory, I/O, software processes)

Control program: control the execution of user programs

Kernel: the one program running at all times (all else being application programs)

Page 6: Computer Systems Overview

7

Services Provided by the OS Facilities for Program creation

editors, compilers, linkers, and debuggers Program execution

loading in memory, I/O and file initialization Access to I/O and files

deals with the specifics of I/O and file formats System access

Protection in access to resources and data Resolves conflicts for resource contention

Page 7: Computer Systems Overview

8

Services Provided by the OS

Error Detection internal and external hardware errors

memory error device failure

software errors arithmetic overflow access forbidden memory locations

Inability of OS to grant request of application

Error Response simply report error to the application Retry the operation Abort the application

Page 8: Computer Systems Overview

9

Services Provided by the OS

Accounting collect statistics on resource usage monitor performance (e.g., response time) used for system parameter tuning to improve

performance useful for anticipating future enhancements used for billing users (on multiuser systems)

Page 9: Computer Systems Overview

10

Quiz 2-1

1. What is an OS?A. Application programB. Interface between user programsC. Resource manager D. Kernel

2. Name two OS services.

Page 10: Computer Systems Overview

11

Evolution of the Operating System Must adapt to hardware upgrades and new

types of hardware. Examples: Character vs. graphic terminals Introduction of paging hardware

Must offer new services, e.g., Internet support

The need to change the OS software on a regular basis modular construction with clean interfaces object oriented methodology

Page 11: Computer Systems Overview

12

Simple Batch Systems First generation OS (mid-50s) Main objective is to maximize utilization The user submits a job (written on card or

tape) to a computer operator The computer operator places a batch of

several jobs on a input device The OS, the monitor, manages the

execution of each program in the batch Monitor mostly is in main memory and

available for execution, Resident Monitor Monitor utilities are loaded when needed

Page 12: Computer Systems Overview

13

The Monitor Monitor reads in jobs one at a

time from the input device Monitor places a job in the

user program area A monitor instruction

branches to the start of the user program

Execution of user program continues until: end-of-program occurs error occurs

Causes the CPU to fetch its next instruction from Monitor

Page 13: Computer Systems Overview

14

Job Control Language (JCL) Is the special type language to

provide instructions to the monitor what compiler to use what data to use

Example of job format: $JOB shows a new job $FTN loads the compiler and

transfers control to it $LOAD loads the object code (in

place of compiler) $RUN transfers control to user

program

$JOB$FTN...FORTRAN program...$LOAD$RUN...Data...$END

Page 14: Computer Systems Overview

15

Job Control Language (JCL)

During user program execution: Each read (or input) instruction (in user

program) causes one line of input data to be read

Causes an input routine to be invoked checks for not reading a JCL line skips to the next JCL line at completion of user

program

Page 15: Computer Systems Overview

16

Simple Batch OS

Alternates execution between a user program and the monitor program

Relies on available hardware to effectively alternate execution from various parts of memory

Page 16: Computer Systems Overview

17

Desirable Hardware Features Memory protection

do not allow the memory area containing the monitor to be altered by user programs

Timer prevents a job from monopolizing the system an interrupt occurs when time expires

Page 17: Computer Systems Overview

18

Desirable Hardware Features Privileged instructions

can be executed only by the monitor an interrupt occurs if a program tries these

instructions Interrupts

provides flexibility for relinquishing control to and regaining control from user programs

Page 18: Computer Systems Overview

19

Transfer of Control via Interrupts

Page 19: Computer Systems Overview

20

Main Problem with Batch Systems - System Utilization Example

Page 20: Computer Systems Overview

21

Multiprogrammed Batch Systems I/O operations are exceedingly slow

(compared to instruction execution) A program containing even a very small

number of I/O operations will spend most of its time waiting for them

Hence: poor CPU usage when only one program is present in memory

Page 21: Computer Systems Overview

22

Multiprogrammed Batch Systems If memory can hold several programs, then

CPU can switch to another one whenever a program is awaiting for an I/O to complete

This is multitasking (multiprogramming)

Page 22: Computer Systems Overview

23

Requirements for Multiprogramming Hardware support:

I/O interrupts and (possibly) DMA in order to execute instructions while I/O device

is busy Memory management

several ready-to-run jobs must be kept in memory

Memory protection (data and programs) Software support from the OS:

Scheduling (which program is to be run next) To manage resource contention and

concurrency

Page 23: Computer Systems Overview

24

Example: three jobs are submitted

Almost no contention for resources All 3 can run in minimum time in a multitasking

environment (assuming JOB2/3 have enough CPU time to keep their I/O operations active)

Total memory size is 256M bytes.

JOB1 JOB2 JOB3

Type of job Heavy compute Heavy I/O Heavy I/O

Duration 5 min. 15 min. 10 min.

Memory req. 50M 100 M 80 M

Need disk? No No Yes

Need terminal No Yes No

Need printer? No No Yes

Page 24: Computer Systems Overview

25

Advantages of Multiprogramming

Uniprogramming Multiprogramming

Processor use 17% 33%

Memory use 33% 67%

Disk use 33% 67%

Printer use 33% 67%

Elapsed time 30 min. 15 min.

Throughput rate 6 jobs/hr 12 jobs/hr

Mean response time 18 min. 10 min.

Page 25: Computer Systems Overview

26

Time Sharing Systems (TSS)

Batch multiprogramming does not support interaction with users

TSS extends multiprogramming to handle multiple interactive jobs

Processor’s time is shared among multiple users

Multiple users simultaneously access the system through terminals

Page 26: Computer Systems Overview

27

Time Sharing Systems (TSS)

Because of slow human reaction time, a typical user needs 2 sec of processing time per minute

Then (about) 30 users should be able to share the same system without noticeable delay in the computer reaction time

The file system must be protected (multiple users…)

Page 27: Computer Systems Overview

28

Difficulties with OS Design

Improper synchronization ensure a program waiting for an I/O device

receives the signal Failed mutual exclusion

must permit only one program at a time to perform a transaction on a portion of data

Deadlock It might happen that 2 or more programs wait

endlessly after each other to perform an operation.

Page 28: Computer Systems Overview

29

An example of deadlock

Program A wants to copy from disk1 to disk2 and takes control of disk1

Program B wants to copy from disk2 to disk1 and takes control of disk2

Program A must wait that program B releases disk2 and program B must wait that program A releases disk1

Program A and B may wait forever

Page 29: Computer Systems Overview

30

Quiz 2-2 What is multiprogramming?

Multiprogramming vs. uniprogramming Main advantage? Challenges?

True of False Time sharing systems (TSS) are multiprogramming Multiprogramming systems are TSS

Batch multiprogramming vs. TSS Key objective Source of directives to OS

Page 30: Computer Systems Overview

31

Major Achievements of OS

Operating Systems are among the most complex pieces of software ever developed

To meet the difficult requirements of multiprogramming and time sharing, there have been 5 major achievements by OS: Processes and threads Memory management Information protection and security Scheduling and resource management System structure

Page 31: Computer Systems Overview

32

Process Introduced to obtain a systematic way of

monitoring and controlling pgm execution A process is an executable program with:

associated data (variables, buffers…) execution context: i.e., all the information that

the CPU needs to execute the process • content of the processor registers

the OS needs to manage the process:• priority of the process• the event (if any) after which the process is waiting• other data (that we will introduce later)

Page 32: Computer Systems Overview

Process Fundamental to the structure of operating

systems

A process can be defined as:

a program in execution

an instance of a running program

the entity that can be assigned to, and executed on, a processor

a unit of activity characterized by a single sequential thread of execution, a current state, and an associated set of system

resources

Page 33: Computer Systems Overview

34

A simple implementation of processes The process index

register contains the index into the process list of the currently executing process (B)

A process switch from B to A consist of storing (in memory) B’s context and loading (in CPU registers) A’s context

A data structure that provides flexibility (to add new features)

Page 34: Computer Systems Overview

Memory Management The OS has five principal storage

management responsibilities:

process isolation

automatic allocation

and managemen

t

support of modular

programming

protection and access

controllong-term storage

Page 35: Computer Systems Overview

36

Memory Management The key contribution is virtual memory It allows programs to address memory

from a logical point of view without regard to the amount that is physically available

While a program is running only a portion of the program and data is kept in (real) memory

Other portions are kept in blocks on disk the user has access to a memory space that is

larger than real memory

Page 36: Computer Systems Overview

37

Virtual Memory Concepts

Page 37: Computer Systems Overview

38

Virtual Memory All memory references made by a program

are to virtual memory which can be either a linear address space a collection of segments (variable-length blocks)

The hardware (mapper) must map virtual memory address to real memory address

If a reference is made to a virtual address not in memory, then (1) a portion of the content of real memory is

swapped out to disk (2) the desired block of data is swapped in

Page 38: Computer Systems Overview

39

File System

Implements long-term store (often on disk) Information stored in named objects called

files a convenient unit of access and protection for

OS Files (and portions) may be copied into

virtual memory for manipulation by programs

Page 39: Computer Systems Overview

40

Security and Protection

Access control to resources forbid intruders (unauthorized users) to enter

the system forbid user processes to access resources

which they are not authorized to

Page 40: Computer Systems Overview

41

Scheduling and Resource Management Differential responsiveness

discriminate between different classes of jobs Fairness

give equal and fair access to all processes of the same class

Efficiency maximize throughput, minimize response time,

and accommodate as many users as possible

Page 41: Computer Systems Overview

42

Key Elements for Scheduling OS maintains queues of processes

waiting for some resource Short term queue of processes in memory

ready to execute The dispatcher (short term scheduler) decides

who goes next Long term queue of new jobs waiting to use

the system OS must not admit too many processes

A queue for each I/O device consisting of processes that want to use that I/O device

Page 42: Computer Systems Overview

43

Key Elements for Scheduling (cont’d)

Page 43: Computer Systems Overview

44

System Structure Because of it’s enormous complexity, we

view the OS system as a series of levels Each level performs a related subset of

functions Each level relies on the next lower level to

perform more primitive functions Well defined interfaces: one level can be

modified without affecting other levels This decomposes a problem into a number

of more manageable sub problems

Page 44: Computer Systems Overview

45

Characteristics of Modern Operating Systems New design elements were introduced

recently New hardware development

multiprocessor machines high-speed networks faster processors and larger memory

New software / application needs multimedia applications Internet and Web access Client/Server applications

Page 45: Computer Systems Overview

46

Microkernel architecture Only a few essential functions in the kernel

primitive memory management (address space) Interprocess communication (IPC) basic scheduling

Other OS services are provided by processes running in user mode (servers) device drivers, file system, virtual memory…

More flexibility, extensibility, portability… A performance penalty by replacing service

calls with message exchanges between process...

Page 46: Computer Systems Overview

47

Multithreading A process is a collection of one or more threads

that can run simultaneously Useful when the application consists of several

tasks that do not need to be serialized Gives the programmer a greater control over the

timing of application-related events All threads within the same process share the

same data and resources and a part of the process’s execution context

It is easier to create or destroy a thread or switch among threads (of the same process) than to do these with processes

Page 47: Computer Systems Overview

48

Distributed Systems

Distributed operating systems Provides the illusion of a single main memory

space and single secondary memory space

Page 48: Computer Systems Overview

49

Symmetric Multiprocessing (SMP) A computer with multiple processors Each processor can perform the same functions

and share same main memory and I/O facilities (symmetric)

The OS schedule processes/threads across all the processors (real parallelism)

Existence of multiple processors is transparent to the user.

Incremental growth: just add another CPU (at least in theory).

Robustness: a single CPU failure does not halt the system, only the performance is reduced.

Page 49: Computer Systems Overview

50

Example of parallel execution on SMP

Page 50: Computer Systems Overview

51

Quiz 2-3 Name the main difference between

multiprogramming and multiprocessing

True or False Multiprocessing generally implies

multiprogramming

Multiprogramming generally implies multiprocessing

Page 51: Computer Systems Overview

52

Quiz 2-3 Micorkernel systems:

a. What extra “weight” (features) do they usually remove?

b. What are the main advantages?

c. What is the main cost?

Page 52: Computer Systems Overview

Virtual Machines and Virtualization Virtualization

enables a single PC or server to simultaneously run multiple operating systems or multiple sessions of a single OS

a machine can host numerous applications, including those that run on different operating systems, on a single platform

host operating system can support a number of virtual machines (VM)

• each has the characteristics of a particular OS and, in some versions of virtualization, the characteristics of a particular hardware platform

Page 53: Computer Systems Overview

Virtual Memory Concept