28
1/18/2008 CSCI 315 Operating Systems Design 1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying the textbook Operating Systems Concepts with Java, by Silberschatz, Galvin, and Gagne (2007). Many, if not all, the illustrations contained in this presentation come from this source.

1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

  • View
    224

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 1

Computer System Structures

Notice: The slides for this lecture have been largely based on those accompanying the textbook Operating Systems Concepts with Java, by Silberschatz, Galvin, and Gagne (2007). Many, if not all, the illustrations contained in this presentation come from this source.

Page 2: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 2

Memory Layout for a Simple Batch System

Operating System

User Program AreaOne programs: it’s loaded, runs to completion, and leaves the system.

Page 3: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 3

Multiprogrammed Batch Systems

Several jobs are kept in main memory at the same time, and the CPU is multiplexed among them.

Operating System

Job 1

Job 2

Job 3

Job 4

0

512K

Page 4: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 4

OS Features Needed for Multiprogramming

• I/O routine supplied by the system.• Memory management – the system must

allocate the memory to several jobs.• CPU scheduling – the system must choose

among several jobs ready to run.• Allocation of devices.

Page 5: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 5

Time-Sharing SystemsInteractive Computing

• The CPU is multiplexed among several jobs that are kept in memory and on disk (the CPU is allocated to a job only if the job is in memory).

• A job swapped in and out of memory to the disk.• On-line communication between the user and the

system is provided:– When the operating system finishes the execution of one

command, it seeks the next “control statement” from the user’s keyboard

• On-line system must be available for users to access data and code.

Page 6: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 6

Desktop Systems

• Personal computers – computer system dedicated to a single user.

• I/O devices – keyboards, mice, display screens, small printers.

• User convenience and responsiveness.• Can adopt technology developed for larger operating

system: – Often individuals have sole use of computer and do not need

advanced CPU utilization of protection features.

• May run several different types of operating systems (Windows, MacOS, UNIX, Linux).

Page 7: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 7

Parallel Systems

• Systems with more than one CPU in close communication (also known as multiprocessor systems).

• Tightly coupled system – processors share memory and a clock; communication usually takes place through the shared memory.

• Advantages of parallel system: – Increased throughput– Economical – Increased reliability (in some cases)

• graceful degradation

• fail-soft systems

Page 8: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 8

Parallel Systems (Cont.)• Asymmetric multiprocessing

– Each processor is assigned a specific task; master processor schedules and allocated work to slave processors.

– More common in extremely large systems.

• Symmetric multiprocessing (SMP)– Each processor runs an identical copy of the operating

system.– Many processes can run at once without performance

deterioration.– Most modern operating systems support SMP.

Page 9: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 9

Symmetric Multiprocessing Architecture

CPU

Memory

CPU CPU...

Page 10: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 10

Distributed Systems

• Distribute the computation among several physical processors.

• Loosely coupled system – each processor has its own local memory; processors communicate with one another through various communications lines, such as high-speed buses or telephone lines.

• Advantages of distributed systems:– Resources Sharing, – Computation speed up – load sharing,– Reliability,– Communications.

Page 11: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 11

Distributed Systems (cont.)

• Requires networking infrastructure.

• Local area networks (LAN) or Wide area networks (WAN).

• May be either client-server or peer-to-peer systems.

Page 12: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 12

General Structure of Client-Server System

Client

Server

Client Client...

network

Page 13: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 13

Clustered Systems

• Clustering allows two or more systems to share storage.

• Provides high reliability.

• Asymmetric clustering: one server runs the application or applications while other servers standby.

• Symmetric clustering: all N hosts are running the application or applications.

Page 14: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 14

Real-Time Systems

• Often used as a control device in a dedicated application such as controlling scientific experiments, medical imaging systems, industrial control systems, and some display systems.

• Well-defined fixed-time constraints.• Real-Time systems may be either hard or soft

real-time.

Page 15: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 15

Real-Time Systems (Cont.)

• Hard real-time:– Secondary storage limited or absent, data stored in

short term memory, or read-only memory (ROM).– Conflicts with time-sharing systems, not supported

by general-purpose operating systems.

• Soft real-time:– Limited utility in industrial control of robotics.– Integrate-able with time-share systems.– Useful in applications (multimedia, virtual reality)

requiring tight response times.

Page 16: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 16

Handheld Systems

• Personal Digital Assistants (PDAs).

• Cellular telephones.

• Issues:– Limited memory,– Slow processors,– Small display screens.

Page 17: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 17

Migration of Operating System Concepts and Features

Page 18: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 18

Chapter 2: Computer-System Structures

• Computer System Operation

• I/O Structure

• Storage Structure

• Storage Hierarchy

• Hardware Protection

• Network Structure

Page 19: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 19

A Modern Computer System

CPUDisk

ControllerI/O

Controller

...

Disks Mouse

Keyboard

Printer

Memory Graphics Adapter

Network Interface

Monitor

Page 20: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 20

Computer-System Operation

• 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 local

buffers.• I/O is from the device to local buffer of controller.• Device controller informs CPU that it has finished its

operation by causing an interrupt.

Page 21: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 21

Common Functions 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.

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

• An operating system is interrupt driven.

Page 22: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 22

Interrupt 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 kernel routines determine what action should be taken for each type of interrupt.

Page 23: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 23

I/O SystemsI/O subsystem hides peculiarities of

devices from rest of system. It contains:

• Memory management component

• General device driver interface

• Drivers for specific hardware devices

Page 24: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 24

DMA Structure

• 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 on interrupt is generated per block, rather than the one interrupt per byte.

Page 25: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 25

Storage Structure• Main memory – only large storage media that the CPU

can access directly.

• Secondary storage – extension of main memory that provides large nonvolatile storage capacity.

• Magnetic disks – rigid metal or glass platters covered with magnetic recording material:– Disk surface is logically divided into tracks, which are subdivided

into sectors,– The disk controller determines the logical interaction between

the device and the computer.

Page 26: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 26

Storage Hierarchy

• Storage systems organized in hierarchy:– Speed,– Cost,– Volatility.

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

Page 27: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 27

Caching

• Use of high-speed memory to hold recently-accessed data.

• Requires a cache management policy.

• Caching introduces another level in storage hierarchy:– This requires data that is simultaneously stored in

more than one level to be consistent.

Page 28: 1/18/2008CSCI 315 Operating Systems Design1 Computer System Structures Notice: The slides for this lecture have been largely based on those accompanying

1/18/2008 CSCI 315 Operating Systems Design 28

From Disk to Register

Consider a system with virtual memory in which an integer variable A has been swapped out of “core” and currently resides on disk. Consider that a machine instruction moves that variable from memory into a register.

Question: What is the sequence of events that ensues until the value of A is finally stored in a register?