OPERATING SYSTEMS PRINCIPLES

Post on 03-Jan-2016

22 views 1 download

Tags:

description

OPERATING SYSTEMS PRINCIPLES. Instructor: Xiangluo Wang E-Mail: wx_25@yahoo.com.cn Office: Yifu A404 Office Hours: Thursdays@ 16:00-18:00,or by appointment. Preface. GOALS Devoting to traditional topics Extending & Integrating them with basic ideas in distributed computing - PowerPoint PPT Presentation

Transcript of OPERATING SYSTEMS PRINCIPLES

OPERATING SYSTEMS PRINCIPLES

Instructor: Xiangluo Wang

E-Mail: wx_25@yahoo.com.cn

Office: Yifu A404

Office Hours: Thursdays@ 16:00-18:00,or by appointment

Preface• GOALS

Devoting to traditional topicsExtending & Integrating them with basic ideas in

distributed computingEmphasizing language application

• CONTENTSProcess Management and CoordinationMemory ManagementFile and I/O ManagementProtection and Security

Preface

• EXERCISESAnalytical contentsConstructive contentsDiscussion or speculative analysis

• APPROACH & PHILOSOPHY In-depth coverage of standard topics Integrating centralized and distributed OS issues in eac

h chapter Introducing various cases of existing os throughout the

course

CHAPTER 1

THE ROLE OF OPERATING SYSTEMS

ORGANIZATION OF OPERATING SYSTEMS

OPERATING SYSTEM EVOLUTION AND

CONCEPTS

INDEX:

THE ROLE OF OPERATING SYSTEMS

• Bridging the Hardware/Application Gap

• As Extended Machines

• As Virtual Machines

• As Resource Managers

Fetch the instruction pointed to by the program counter

Increment the program counter

Decode the current instruction

Fetch any operands referenced by the instruction

Execute the instruction

FIGURE 1-1 Basic hardware cycle

Main

memory

CPU Communication

devices

Secondary

storage

User

Network

FIGURE 1-2 Main components of a computer system

Main

memory

CPU

CPU

Communication

devices

Secondary

storage

FIGURE 1-3 Shared-memory multiprocessor

Main

memoryCPU

CPU

Communication

devices

Secondary

storage

Main

memory

FIGURE1-4 Distributed-memory multiprocessor

Main

memoryCPU

CPU

Communication

devices

Secondary

storage

Main

memory

Secondary

storage

Communication

devices

Netw

ork

FIGURE 1-5 Multicomputer

LARGE DIVIDE BETWEEN HARDWARE AND APPLICATION:

Machine instructions

Read or write a value------High-level data structures

Perform arithmetic/logical operation-----Complex control flows

Main memory

A linear sequence of simple cells------programs, modules, and data structures

Secondary storage

Tracks, blocks------file

Hardware interface and I/O device

Registers-------messages

Three Views of operating systems

• Abstraction:

Being applied to handle complexity• Virtualization:

resource sharing• Resource management:

The problem of efficiency

KEY CONCEPTS:

OS as Extended Machines

• Abstraction:package sequences of lower-level instructions into functions that can be invoked as single higher-level operations

• Making use of abstraction at many levels

OS as Virtual Machines

CPU1 CPU2

CPU

Virtual memory1

Virtual memory2

Main memory

Printer1 Printer2

Printer

Application1

Time sharing

Memory management

Spooling

OS

Hardw

are

Principles of virtualization

Task’s VM space in Linux

User

kernel

CS

DS

BSS

HEAP

STACK

HOLE

3GB

1GB

OS as Resource Managers

• Difference between devices’ performance

• Parallelism opportunities

• Scheduling policies

ORGANIZATION OF OS

• Structural Organization (functional)

• Internal structure (static)Hardware InterfaceProgramming InterfaceUser Interface

• Runtime Organization

Structural Organization

Applications

(system and user)

OS kernel

System libraries

Hardware

User

Library calls

Kernel calls

Machine instructions

Hardware Interface

• Interrupts, Singularities, and TrapsExternal interrupts (Hardware)Internal interrupts

Soft interruptsSelf trapsSingularities

• Modes of Instruction Execution

X86:Ring 0—Ring 3

Example

• Clock interrupt in LinuxSeveral hardware clock interrupts contribute one “tick”;

One “tick” causes the change of execution mode .

• Task schedule& switchOccurring in Ring 0

• User mode& kernel mode

Linux: Ring0& Ring3;

OS2: Ring0---Ring3

The Programming Interface

• The difference between kernel and library functions

• Sys-calls provided by OSs

Application issues call

To lib_func(params)

Body of

Lib_func()

Push params on stack

Branch to lib_func() bodyPerform service

Return from functionPop stack pointer

Nonprivileged library service

Application issues call

To kern_func(params)

Body of

kern_func()

Push params on stack

Branch to kern_func() body Set up regs for SVC

SVC

Pop stack pointer

Nonprivileged library service

Return from function

Kernel code

Perform service

Set nonprivileged mode

Return from SVC

Sys-calls

• Process management

--create/destroy, suspend/activate process

--send signal or message to process

--wait for event or signal• Memory management

--allocate/deallocate region of memory

--increase/decrease size of allocated region

Sys-calls

• File management

--create/destroy, open/close, move, rename file

--append data to file or concatenate files

--display content of file or directory

--display/change file attributes

Sys-calls

• Input/Output--read/write character or block of data from a file o

r device

--control/check status of a device

• Miscellaneous services--get current date and time

--schedule an alarm to occur

--generate various system diagnostics

The User Interface

The top-level user interface remains available at all times so that users can launch, use, monitor, and manage applications and files– Text-based interface (shell)– Graphics-based interface (GUI)

The Shell• Execute and manage programs

ar: create, edit,modify source files

as: compiler

ld: GNU linker

gdb: GNU DeBug

• Manipulate filesmkdir, rm, mv, rmdir, cat

• Obtain system informationwho, pwd,du, ls

The Shell

• Shell scriptslocal variables

iterative statements

conditionals

arithmetic and logical operators

Wildcards

connectors

Runtime Organization

User process

Library or kernel call

Service routinereturn

Service as a subroutine

Process’ address space

User process (client)

Return results

Send request

Service routine

Process1’s address space

Process2’s address space

System process (server)

Service as a process

Benefits of the C/S approach

• Being suitable for a distributed system

• Being convenient for different types of services

• Having a greater degree of fault tolerance

• Enforcing a strict segregation of functionalities

OS EVOLUTION&CONCEPTS

• Early systems

• Batch OSs

• Multiprogramming Systems

• Interactive OSs

• PC and Workstation OSs

• Real-Time OSs

• Distributed OSs

Early Systems

• Users interact with computations

• One at a time

• At the lowest machine level

• A standard operating procedureLoaderassemblersource programloaderexe machine code

• Initial startup (bootstrapping)

Batch OSs

• Automating the standard load/translate/load/execute sequence

• Job-to-job transitions automatically

• Submitting multiple jobs at the same time

• I/O processor (I/O channel)

Multiprogramming Systems

• A simultaneous manner

• Virtual parallelism (concurrence)

• Protection

• Process synchronization and communication

• Dynamic memory management

Job A

CPU

IO

Job B

Sequential execution

Job A

IOA

CPUA

CPUB

IOB

Job B

multiprogramming

CPU and I/O overlap

Interactive OSs

• The ability to simultaneously share a machine’s resources

• Acceptable response time to each user

• Serve processes cyclically by assigning a small portion or quantum of CPU time

PC and Workstation OSs

• The development of GUIs

• Manually switching

• Implicit multiprogramming (multitasking)Being transparent to the interactive user but not to

applications

• Preemptive multiprogrammingBeing transparent not only to users but to applications

Real-Time OSs

• Timing constraints (deterministic deadlines)

• Concurrency (asynchronous, simultaneous)

• Strict fault tolerance and reliability requirements

• Difficult to test and certify

Distributed OSs

• Loosely coupledCommunicates at a lower level (e.g., over a WAN)

• Tightly coupledhigher-level communication on top of message passing (RP

C)

• Clocks must be synchronized, accurate, and monotomic increasing

EXERCISES

• Give examples of semantic gaps that must be bridged by software,including OSs at the following levels: CPU (instruction) level, main memory level, secondary storage level, I/O device level.

• What do traps and interrupts have in common? How are they different? Give an example of each.

EXERCISES

• What do multiprogramming and time-sharing have in common? How are they different? Is multiprogramming possible without interrupts? Is time-sharing possible without interrupts?