52
Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel Systems 5. O/S support for Distributed Systems/Networks

Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Embed Size (px)

Citation preview

Page 1: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Lecture 2O/S Design: Trends and Motivations

Today’s Talk will cover:

1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel Systems 5. O/S support for Distributed Systems/Networks

Lecture 2O/S Design: Trends and Motivations

Today’s Talk will cover:

1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel Systems 5. O/S support for Distributed Systems/Networks

Page 2: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

D11 D12 D21 Dn1 Dn2 Dn3

CPU DC1 DC2 DCn

Memory Controller

Memory

Computer - System OperationComputer - System Operation

Page 3: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

• I/O devices and the CPU can execute concurrently.• Each device controller is in charge of a particular

device type.• Each device controller has a local buffer.• CPU moves data from/to main memory to/from the

local buffers• I/O is from the device to local buffer of controller.• Device controller informs CPU

that it has finished its operationby causing an interrupt.

• I/O devices and the CPU can execute concurrently.• Each device controller is in charge of a particular

device type.• Each device controller has a local buffer.• CPU moves data from/to main memory to/from the

local buffers• I/O is from the device to local buffer of controller.• Device controller informs CPU

that it has finished its operationby causing an interrupt.

Computer - System OperationComputer - System Operation

Page 4: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Common Function of InterruptsCommon Function of Interrupts

• Interrupt transfers control to the interrupt service routine, generally, through the interrupt vector, which contains the addresses of all the service routines.

• Interrupt architecture must save the address of the interrupted instruction.

• Incoming interrupts are disabled while another interrupt is being processed to prevent a lost interrupt.

• Interrupt transfers control to the interrupt service routine, generally, through the interrupt vector, which contains the addresses of all the service routines.

• Interrupt architecture must save the address of the interrupted instruction.

• Incoming interrupts are disabled while another interrupt is being processed to prevent a lost interrupt.

Page 5: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

• A trap is a software-generated interrupt caused either by an error or a user request.

• An operating system is interrupt driven.

• A trap is a software-generated interrupt caused either by an error or a user request.

• An operating system is interrupt driven.

Common Function of InterruptsCommon Function of Interrupts

Page 6: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Interrupt HandlingInterrupt Handling• The operating system preserves the state of the CPU

by storing registers and the program counter.• Determines which type of interrupt has occurred:

– polling– vectored interrupt system

• Separate segments of code

determine what action should be

taken for each type of interrupt.

• The operating system preserves the state of the CPU by storing registers and the program counter.

• Determines which type of interrupt has occurred:– polling– vectored interrupt system

• Separate segments of code

determine what action should be

taken for each type of interrupt.

Page 7: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

I/O StructureI/O Structure• After I/O starts, control returns to user program only

upon I/O completion.– Wait instruction idles the CPU until the next

interrupt.– Wait loop (contention for memory access).– At most on I/O request is outstanding at a time; no

simultaneous I/O processing.

• After I/O starts, control returns to user program only upon I/O completion.– Wait instruction idles the CPU until the next

interrupt.– Wait loop (contention for memory access).– At most on I/O request is outstanding at a time; no

simultaneous I/O processing.

Page 8: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

• After I/O starts, control returns to user program without waiting for I/O completion.– System call - request to the operating system to

allow user to wait for I/O completion.– Device-status table contains entry for each I/O

device indicating its type, address, and state.– Operating system indexes into I/O device table to determine device status and to modify table entry to include interrupt.

• After I/O starts, control returns to user program without waiting for I/O completion.– System call - request to the operating system to

allow user to wait for I/O completion.– Device-status table contains entry for each I/O

device indicating its type, address, and state.– Operating system indexes into I/O device table to determine device status and to modify table entry to include interrupt.

I/O StructureI/O Structure

Page 9: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Storage HierarchyStorage Hierarchy• Storage systems organized in hierarchy:

– speed– cost– volatility

• Caching - copying information into faster storage system; main memory can be viewed as a fast cache for secondary memory.

• Storage systems organized in hierarchy:– speed– cost– volatility

• Caching - copying information into faster storage system; main memory can be viewed as a fast cache for secondary memory.

Page 10: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

• Software Protection• Dual- Mode Operation• I/O Protection• Memory Protection• CPU Protection

• Software Protection• Dual- Mode Operation• I/O Protection• Memory Protection• CPU Protection

Storage Hierarchy ContinuedStorage Hierarchy Continued

Page 11: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Direct Memory Access (DMA) Structure

Direct Memory Access (DMA) Structure

• Schema• Schema

CPUI/O Devices

I/O instructions

Memory

Page 12: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

• Used for high-speed I/O devices able to transmit information at close to memory speeds.

• Device controller transfers blocks of data from buffer storage directly to main memory without CPU intervention.

• Only one interrupt is generated per block, rather than the one interrupt per byte.

• Used for high-speed I/O devices able to transmit information at close to memory speeds.

• Device controller transfers blocks of data from buffer storage directly to main memory without CPU intervention.

• Only one interrupt is generated per block, rather than the one interrupt per byte.

Direct Memory Access (DMA) Structure

Direct Memory Access (DMA) Structure

Page 13: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Technological History of O/S Design

This section considers the availability of tools.

1st Generation: 1945 - 1955

1st Generation computers were made of Vacuum tubes and plugboards. Computers were expensive and had limited peripherals, programs were entered by toggling switches on the control panel. Minimal O/S were used.

Technological History of O/S Design

This section considers the availability of tools.

1st Generation: 1945 - 1955

1st Generation computers were made of Vacuum tubes and plugboards. Computers were expensive and had limited peripherals, programs were entered by toggling switches on the control panel. Minimal O/S were used.

Page 14: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

2nd Generation: 1955-1965

2nd Generation computers are characterized by Transistors /Batch Programming. Non-interactive peripheral access improved (i.e. card readers) but computers were still relatively expensive relative touser/programmer time. Access to the machine wasrestricted to operators, users submitted jobsto the operators.

2nd Generation: 1955-1965

2nd Generation computers are characterized by Transistors /Batch Programming. Non-interactive peripheral access improved (i.e. card readers) but computers were still relatively expensive relative touser/programmer time. Access to the machine wasrestricted to operators, users submitted jobsto the operators.

Technological History of O/S DesignTechnological History of O/S Design

Page 15: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

3rd Generation:1965 -1980

IC's reduced computing costs and made interactive peripherals available. Computers are still expensive, and had to be shared. Time-Sharing permits many users to share the machine, and encouraged interactive applications.

3rd Generation:1965 -1980

IC's reduced computing costs and made interactive peripherals available. Computers are still expensive, and had to be shared. Time-Sharing permits many users to share the machine, and encouraged interactive applications.

Technological History of O/S DesignTechnological History of O/S Design

Page 16: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

4th Generation:1980-1990

Tanenbaum calls Personal Computing fourth generation.

Users had dedicated machines and initially multitasking was not used. Simple networking was prevalent.

Parallel Computing:1990-present

Transparent tools for inter-connecting machines are prevalent.

4th Generation:1980-1990

Tanenbaum calls Personal Computing fourth generation.

Users had dedicated machines and initially multitasking was not used. Simple networking was prevalent.

Parallel Computing:1990-present

Transparent tools for inter-connecting machines are prevalent.

Technological History of O/S DesignTechnological History of O/S Design

Page 17: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Tightly Coupled ArchitecturesCoupling in parallel systems refers to how processors are connected. Processors sharing common memory are said to be tightly coupled. (figure 3)

Tightly Coupled ArchitecturesCoupling in parallel systems refers to how processors are connected. Processors sharing common memory are said to be tightly coupled. (figure 3)

I/O I/O

Processor Storage Processor

Tightly coupled systems have limited scalability.Tightly coupled systems have limited scalability.

Page 18: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Loosely coupled processors have distributed memory.Loosely coupled processors have distributed memory.

Storage Storage

Processor Processor

I/O I/O

Communications LinkFigure 4Figure 4

Page 19: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Inter-processor communication latency is larger in a loosely coupled system than in a tightly coupled system, however such systems scale well.

Inter-processor communication latency is larger in a loosely coupled system than in a tightly coupled system, however such systems scale well.

Page 20: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Types of ApplicationsTypes of Applications• Resource Utilization:

– Computation intensive jobs– I/O intensive jobs

• Application Driven Needs:– Real time jobs– Fault Tolerant/High Availability– Virtual Machine– Multi User– Multitasking – Interactive Jobs– Batch Jobs– On Line Transaction Processing– Transparent Interconnection

• Resource Utilization:– Computation intensive jobs– I/O intensive jobs

• Application Driven Needs:– Real time jobs– Fault Tolerant/High Availability– Virtual Machine– Multi User– Multitasking – Interactive Jobs– Batch Jobs– On Line Transaction Processing– Transparent Interconnection

Page 21: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Some well Known Operating SystemsSome well Known Operating Systems

We can characterize well known current O/Ss:

1. Apple's Mac OS2. IBM's OS/23. UNIX/Linux/SunOs/AIX/IRIX4. Microsoft Windows5. QNX6. IBM's VM7. IBM's MVS 8. Inferno

We can characterize well known current O/Ss:

1. Apple's Mac OS2. IBM's OS/23. UNIX/Linux/SunOs/AIX/IRIX4. Microsoft Windows5. QNX6. IBM's VM7. IBM's MVS 8. Inferno

Page 22: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

MVS History and GoalsMVS History and GoalsIBM developed the System/360 and System/370 and their O/Ss:

1. PCP - Principle control program

2. MFT - Multiprogramming with a fixed number of tasks

3. MVT - Multiprogramming with a variable number of tasks

4. MVS - Multiple virtual storage.

IBM developed the System/360 and System/370 and their O/Ss:

1. PCP - Principle control program

2. MFT - Multiprogramming with a fixed number of tasks

3. MVT - Multiprogramming with a variable number of tasks

4. MVS - Multiple virtual storage.

Page 23: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

MVS is designed to Support:

1. High performance (I/O throughput)

2. On Line Transaction Processing (OLTP)

3. Maintain backward compatibility

4. Have high availability/fault tolerance

5. Support tightly coupled multiprocessing

MVS is designed to Support:

1. High performance (I/O throughput)

2. On Line Transaction Processing (OLTP)

3. Maintain backward compatibility

4. Have high availability/fault tolerance

5. Support tightly coupled multiprocessing

Page 24: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

MVS Jargon and ComponentsMVS Jargon and ComponentsMVS has internals and an outer layer of support tools:

MVS Outer Layer MVS has the following outer layers shown in :1. Compilers, Link Editors, Loader 2. Error Recovery Management 3. Job Management -The command environment (shell): a) Interprets operator commands b) Read and write Job input data to peripherals c) Allocate I/O devices and notify operator of mount

requests d) Convert the Job into tasks for task management

MVS has internals and an outer layer of support tools:

MVS Outer Layer MVS has the following outer layers shown in :1. Compilers, Link Editors, Loader 2. Error Recovery Management 3. Job Management -The command environment (shell): a) Interprets operator commands b) Read and write Job input data to peripherals c) Allocate I/O devices and notify operator of mount

requests d) Convert the Job into tasks for task management

Page 25: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

MVS Internals MVS Internals Under the hood MVS has:• Dispatcher --- Schedules tasks on processors• Task Management --- process control• Interrupt Handling • Program Management --- Runs Programs (run time

loader)• Storage Management --- Virtual and real memory• Systems resource Management --- Partitions resource

among tasks • Access Methods --- User I/O interface• I/O supervisor --- Low level device access

Under the hood MVS has:• Dispatcher --- Schedules tasks on processors• Task Management --- process control• Interrupt Handling • Program Management --- Runs Programs (run time

loader)• Storage Management --- Virtual and real memory• Systems resource Management --- Partitions resource

among tasks • Access Methods --- User I/O interface• I/O supervisor --- Low level device access

Page 26: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

MVS System StructureMVS System Structure

1. Job Management2. Access Methods 3. Program Mgmt.4. Dispatcher5. Interrupt Handlers6. Storage Mgmt.7. I/O Supervisor8. Task Mgmt.9. Sys. Res. Mgmt.10.Error Rec. Mgmt. 11.Compilers, Linkage Editors, Loaders

1. Job Management2. Access Methods 3. Program Mgmt.4. Dispatcher5. Interrupt Handlers6. Storage Mgmt.7. I/O Supervisor8. Task Mgmt.9. Sys. Res. Mgmt.10.Error Rec. Mgmt. 11.Compilers, Linkage Editors, Loaders

1

109

8

7

6

5

4

3

2

11

Page 27: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Unix System StructureUnix System Structure

Hardware

Kernel

Shell Editors, and

Private User Programs

Application ProgramsC

om

pil

er

Co

mp

iler

C

om

po

nen

ts

Figure 6

Page 28: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Unix - An Evolving

O/S

Unix - An Evolving

O/S

Figure 7: (Now Ancient) History of UNIX

Figure 7: (Now Ancient) History of UNIX

Page 29: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Some HistorySome History

• 1969 Multics Abandoned by Bell Labs GE 645 Removed

• Thompson begins building UNIX file system on GECOS

• Ritchie and Thompson ported/extended UNIX for PDP 7 ``Space Travel'' --- Assembler/Command interpreter added

• 1970-71 Version 1 on PDP 11/20Added multi-user support, process management and most major command utilities.

• 1969 Multics Abandoned by Bell Labs GE 645 Removed

• Thompson begins building UNIX file system on GECOS

• Ritchie and Thompson ported/extended UNIX for PDP 7 ``Space Travel'' --- Assembler/Command interpreter added

• 1970-71 Version 1 on PDP 11/20Added multi-user support, process management and most major command utilities.

Page 30: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

• 1972 Version 1 on PDP 11/20 --- C created (no structs

or global variables yet).• 1973 --- UNIX Rewritten in C• 1975 --- UNIX Version 6 made

publicly available (inexpensive)• 1977 --- UNIX ported to Interdata

8/32 (eliminating many machine

dependencies) • 1979 --- UNIX System 7 released

(first widely used UNIX Version)

• 1972 Version 1 on PDP 11/20 --- C created (no structs

or global variables yet).• 1973 --- UNIX Rewritten in C• 1975 --- UNIX Version 6 made

publicly available (inexpensive)• 1977 --- UNIX ported to Interdata

8/32 (eliminating many machine

dependencies) • 1979 --- UNIX System 7 released

(first widely used UNIX Version)

Some History (continued)Some History (continued)

Page 31: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

UNIX Programming EnvironmentUNIX Programming Environment

UNIX programming environment features:• Text Editors • Text Processing• C/C++ compilers• make utility• Debuggers (dbx/sdb/adb/gdb)• Profilers• Compiler Construction Aids • (Lex and YACC)• Source code version control (sccs, rcs, cvs)• Memory Leak checkers

UNIX programming environment features:• Text Editors • Text Processing• C/C++ compilers• make utility• Debuggers (dbx/sdb/adb/gdb)• Profilers• Compiler Construction Aids • (Lex and YACC)• Source code version control (sccs, rcs, cvs)• Memory Leak checkers

Page 32: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

UNIX Programming PhilosophyUNIX Programming Philosophy

Program design philosophy:

1. Arrange each program to perform a single function.2. Avoid extraneous output, another program might use it as input.3. If possible, use or modify existing tools rather write a new one.4. Create the design first, then start with a small prototype and add features incrementally.

Program design philosophy:

1. Arrange each program to perform a single function.2. Avoid extraneous output, another program might use it as input.3. If possible, use or modify existing tools rather write a new one.4. Create the design first, then start with a small prototype and add features incrementally.

Page 33: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

UNIX System ConceptsUNIX System ConceptsSome Central Concepts to UNIX include:

1. The File System

a) Every file is a sequence of bytes (characters) representing either a program or data. No record structure is imposed.

b) A directory holds the names of other files or directories, hence the file system is hierarchical.

c) Input or output devices are treated as special files using the standard file interface. Information is provided from/to the device directly.

Some Central Concepts to UNIX include:

1. The File System

a) Every file is a sequence of bytes (characters) representing either a program or data. No record structure is imposed.

b) A directory holds the names of other files or directories, hence the file system is hierarchical.

c) Input or output devices are treated as special files using the standard file interface. Information is provided from/to the device directly.

Page 34: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

2. Processes do all user work in UNIX. a) Process creation is done by copying, the original is the parent, the copy is the child. b) Parent and Child are identical except the parent may wait for the child to finish. c) A process may replace itself by running another program.

2. Processes do all user work in UNIX. a) Process creation is done by copying, the original is the parent, the copy is the child. b) Parent and Child are identical except the parent may wait for the child to finish. c) A process may replace itself by running another program.

UNIX System ConceptsUNIX System Concepts

Page 35: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

3. The Shell is the Unix command language. a) The shell executes command from a terminal or a file. b) Users can create commands using script files. c) Many commands use standard input or standard output. d) Pipes send the standard output from one process to the standard input of another.

3. The Shell is the Unix command language. a) The shell executes command from a terminal or a file. b) Users can create commands using script files. c) Many commands use standard input or standard output. d) Pipes send the standard output from one process to the standard input of another.

UNIX System ConceptsUNIX System Concepts

Page 36: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Pipes, Processes, and I/O RedirectionPipes, Processes, and I/O Redirection

Recall that a process is a program in execution.In UNIX a process has access to the following files:

1. Standard Input (stdin) - The keyboard by default, but could be a file or the output of another process (pipe)2. Standard Output (stdout) --- Where normally generated output goes.3. Standard Error (stderr) --- Reserved for error messages (so they don't get piped as input to another process).

Additional files can be read or written.Redirection: sort < junk > /tmp/junk.srt Pipe: "du -a -s sort -r -n more "

Recall that a process is a program in execution.In UNIX a process has access to the following files:

1. Standard Input (stdin) - The keyboard by default, but could be a file or the output of another process (pipe)2. Standard Output (stdout) --- Where normally generated output goes.3. Standard Error (stderr) --- Reserved for error messages (so they don't get piped as input to another process).

Additional files can be read or written.Redirection: sort < junk > /tmp/junk.srt Pipe: "du -a -s sort -r -n more "

Page 37: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Spell Checking Using FiltersSpell Checking Using Filters

Steve Johnson constructed the following prototype of spell using filters. The sequence of actions is:Steve Johnson constructed the following prototype of spell using filters. The sequence of actions is:

Figure 8Figure 8

Page 38: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

The program looks like:

prepare filename #Remove Formatting

tr ‘[A-Z]’ ‘[a-z]’ #Convert to lower case

tr -c ‘[a-z]’ ‘/n’ #Separate into words

sort -u #Sort step

comm -2 dict #In dictionary?

The program looks like:

prepare filename #Remove Formatting

tr ‘[A-Z]’ ‘[a-z]’ #Convert to lower case

tr -c ‘[a-z]’ ‘/n’ #Separate into words

sort -u #Sort step

comm -2 dict #In dictionary?

Page 39: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Contributions of UNIXContributions of UNIX

Some UNIX Contributions to O/S design and practice include:1. Simplicity2. Portable implementation using a high level language3. Uniform treatment of peripherals/files 4. Ease of I/O redirection5. Flexibility/ease of extension6. (Initially) System size7. Good software development tools8. Initially easily obtained source code9. Interactive multitasking

Some UNIX Contributions to O/S design and practice include:1. Simplicity2. Portable implementation using a high level language3. Uniform treatment of peripherals/files 4. Ease of I/O redirection5. Flexibility/ease of extension6. (Initially) System size7. Good software development tools8. Initially easily obtained source code9. Interactive multitasking

Page 40: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Problems With UNIXProblems With UNIX1. (Historically) Easy to crash the system due to limited error detection and recovery2. Command names are not obvious3. Documentation assumes you know what you are doing4. Administration tools assume UNIX expertise5. Limited system security 6. Code Bloat (particularly in the Kernel)7. Filter model initially unintuitive to users (sometimes no output is generated)

1. (Historically) Easy to crash the system due to limited error detection and recovery2. Command names are not obvious3. Documentation assumes you know what you are doing4. Administration tools assume UNIX expertise5. Limited system security 6. Code Bloat (particularly in the Kernel)7. Filter model initially unintuitive to users (sometimes no output is generated)

Page 41: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Microsoft Windows NTMicrosoft Windows NT

David Cutler was the chief architect of NT .

NT is a portable single user multitasking system with highly modular components, designed to support multi processing.

David Cutler was the chief architect of NT .

NT is a portable single user multitasking system with highly modular components, designed to support multi processing.

Page 42: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Figure 9: Structure of Windows NTFigure 9: Structure of Windows NT

Page 43: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

NT Components (Layers)NT Components (Layers)

NT has the following layers:1. Hardware Abstraction Layer (HAL): An efficient portable low level hardware interface.2. Kernel: Provides basic O/S services not belonging in user space: scheduling, context switching, interrupt handling, etc...3. Subsystems: Modules designed to provide specific functions within the O/S outside the Kernel.4. System Services: Modules designed to provide functions for application level support

NT has the following layers:1. Hardware Abstraction Layer (HAL): An efficient portable low level hardware interface.2. Kernel: Provides basic O/S services not belonging in user space: scheduling, context switching, interrupt handling, etc...3. Subsystems: Modules designed to provide specific functions within the O/S outside the Kernel.4. System Services: Modules designed to provide functions for application level support

Page 44: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Parallelism and OOPParallelism and OOP

Models of parallelism employed:

1. Client Server Model

2. Threads

3. Symmetric Multiprocessing (SMP)

NT has some object oriented features, with:

1. Encapsulation

2. Objects and Instantiations

(named instances have security)

Models of parallelism employed:

1. Client Server Model

2. Threads

3. Symmetric Multiprocessing (SMP)

NT has some object oriented features, with:

1. Encapsulation

2. Objects and Instantiations

(named instances have security)

Page 45: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Memory Speeds ComparedMemory Speeds Compared

Figure 10:

Speed of various memory devices

Figure 10:

Speed of various memory devices

Page 46: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Memory ManagementMemory Management

Programmers and Users demand:

1. More Memory

2. Fast Memory Access

The von Neumann bottleneck: Memory speed limits systems performance.

Ways of improving memory performance:

1. Parallelize Memory Access - Possible Asynchrony

Programmers and Users demand:

1. More Memory

2. Fast Memory Access

The von Neumann bottleneck: Memory speed limits systems performance.

Ways of improving memory performance:

1. Parallelize Memory Access - Possible Asynchrony

Page 47: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

2. Hierarchical Memory --- Has two common

approaches:

a) Large amounts of cheap slow memory

extend available memory.

b) Small amounts of expensive fast memory improve

systems performance.

2. Hierarchical Memory --- Has two common

approaches:

a) Large amounts of cheap slow memory

extend available memory.

b) Small amounts of expensive fast memory improve

systems performance.

Memory ManagementMemory Management

Page 48: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Paralleling Memory AccessParalleling Memory Access

Memory tends to be written sequentially. The cost of sequential memory access can be described:

TA = TL +TC

Where:

Memory tends to be written sequentially. The cost of sequential memory access can be described:

TA = TL +TC

Where:

Symbol Meaning

T A Total Memory access time

T C Completion Time (service cost)

T L Memory latency (startup cost)

Page 49: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

A technique to improve memory access is to initiate several memory accesses in parallel when so that the processor can continue operating while waiting for a memory operation to finish. Typically this is done by distributing sequential memory addresses

across different memory units.

A technique to improve memory access is to initiate several memory accesses in parallel when so that the processor can continue operating while waiting for a memory operation to finish. Typically this is done by distributing sequential memory addresses

across different memory units.

Paralleling Memory AccessParalleling Memory Access

Page 50: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

Hierarchical MemoryHierarchical MemoryHierarchical memory was first used in the Atlas operating system in 1962. (figure 11)Hierarchical memory was first used in the Atlas operating system in 1962. (figure 11)

Remote Access Optical Juke Box Backups

Magnetic Disk (Cache)

Main Memory

Cache

Registers

Page 51: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

ReferencesReferences

1. George Almasi and Allan Gottlieb. Highly Parallel Computing. Benjamin/Cummings Publishing Company, Inc., 1994

2. J.L. Bentley. Programming Pearls: A spelling checker. Communications of the ACM, 28(5): 456-462, May 1985.

3. A.S. Tanenbaum. Operating Systems: Design and Implementation. Prentice-Hall, Englewood Cliffs, NJ USA, 1987

1. George Almasi and Allan Gottlieb. Highly Parallel Computing. Benjamin/Cummings Publishing Company, Inc., 1994

2. J.L. Bentley. Programming Pearls: A spelling checker. Communications of the ACM, 28(5): 456-462, May 1985.

3. A.S. Tanenbaum. Operating Systems: Design and Implementation. Prentice-Hall, Englewood Cliffs, NJ USA, 1987

Page 52: Lecture 2 O/S Design: Trends and Motivations Today’s Talk will cover: 1. Review 2. O/S design History/Survey 3. UNIX Design Overview 4. Trends in Parallel

4. A.S. Tanenbaum and G.J. Sharp. The Amoeba distributed Operating System. Vrjie Univeriteit, Amsterdam, the Netherlands. Additional information available on line at http://www.am.cs.vu.nl/amoeba.html.

5. G.P. Zachary. Showstopper! The Free Press, A Division of Macmillan Inc., NY,NY USA, 1994.

4. A.S. Tanenbaum and G.J. Sharp. The Amoeba distributed Operating System. Vrjie Univeriteit, Amsterdam, the Netherlands. Additional information available on line at http://www.am.cs.vu.nl/amoeba.html.

5. G.P. Zachary. Showstopper! The Free Press, A Division of Macmillan Inc., NY,NY USA, 1994.