CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS...

33
Chapter 1 CS 1550: Introduction to Operating Systems Prof. Ahmed Amer [email protected] http://www.cs.pitt.edu/~amer/cs1550

Transcript of CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS...

Page 1: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1

CS 1550:Introduction to Operating Systems

Prof. Ahmed Amer

[email protected]://www.cs.pitt.edu/~amer/cs1550

Page 2: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 2CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Class outline

Introduction, concepts, review & historicalperspectiveProcesses

SynchronizationSchedulingDeadlock

Memory management, address translation, andvirtual memoryOperating system management of I/OFile systemsSecurity & protectionDistributed systems (as time permits)

Page 3: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 3CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Overview: Chapter 1

What is an operating system, anyway?Operating systems historyThe zoo of modern operating systemsReview of computer hardwareOperating system conceptsOperating system structure

User interface to the operating systemAnatomy of a system call

Page 4: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 4CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

What is an operating system?

A program that runs on the “raw” hardware and supportsResource AbstractionResource Sharing

Abstracts and standardizes the interface to the user acrossdifferent types of hardware

Virtual machine hides the messy details which must be performed

Manages the hardware resourcesEach program gets time with the resourceEach program gets space on the resource

May have potentially conflicting goals:Use hardware efficientlyGive maximum performance to each user

Page 5: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 5CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Operating system timeline

First generation: 1945 – 1955Vacuum tubesPlug boards

Second generation: 1955 – 1965TransistorsBatch systems

Third generation: 1965 – 1980Integrated circuitsMultiprogramming

Fourth generation: 1980 – presentLarge scale integrationPersonal computers

Next generation: ???Systems connected by high-speed networks?Wide area resource management?

Page 6: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 6CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

First generation: direct input

Run one job at a timeEnter it into the computer (might require rewiring!)Run itRecord the results

Problem: lots of wasted computer time!Computer was idle during first and last stepsComputers were very expensive!

Goal: make better use of an expensive commodity:computer time

Page 7: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 7CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Second generation: batch systems

Bring cards to 1401Read cards onto input tapePut input tape on 7094Perform the computation, writing results to output tapePut output tape on 1401, which prints output

Page 8: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 8CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

$END

$RUN

$LOAD

Structure of a typical 2nd generation job

$FORTRAN

$JOB, 10,6610802, ETHAN MILLER

FORTRANprogram

Data forprogram

Page 9: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 9CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Spooling

Original batch systems used tape drivesLater batch systems used disks for buffering

Operator read cards onto disk attached to the computerComputer read jobs from diskComputer wrote job results to diskOperator directed that job results be printed from disk

Disks enabled simultaneous peripheral operation on-line (spooling)

Computer overlapped I/O of one job with execution ofanotherBetter utilization of the expensive CPUStill only one job active at any given time

Page 10: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 10CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Operatingsystem

Third generation: multiprogramming

Multiple jobs in memoryProtected from one another

Operating system protectedfrom each job as wellResources (time, hardware)split between jobsStill not interactive

User submits jobComputer runs itUser gets results minutes(hours, days) later

Job 1

Job 2

Job 3

Memorypartitions

Page 11: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 11CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Timesharing

Multiprogramming allowed several jobs to be activeat one time

Initially used for batch systemsCheaper hardware terminals -> interactive use

Computer use got much cheaper and easierNo more “priesthood”Quick turnaround meant quick fixes for problems

Page 12: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 12CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Types of modern operating systems

Mainframe operating systems: MVSServer operating systems: FreeBSD, SolarisMultiprocessor operating systems: Cellular IRIXPersonal computer operating systems: Windows,UnixReal-time operating systems: VxWorksEmbedded operating systemsSmart card operating systems

⇒Some operating systems can fit into more than onecategory

Page 13: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 13CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Components of a simple PC

Hard drivecontroller

Videocontroller

Memory

USBcontroller

Networkcontroller

Outsideworld

CPU Computer internals(inside the “box”)

Page 14: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 14CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Executeunit

Executeunit

Executeunit

Executeunit

Buffer

Fetchunit

Decodeunit

Fetchunit

Decodeunit

Fetchunit

Decodeunit

CPU internals

Pipelined CPU Superscalar CPU

Page 15: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 15CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Access latency

1 ns

2–5 ns

50 ns

5 ms

50 sec

< 1 KB

1 MB

256 MB

40 GB

> 1 TB

Capacity

Storage pyramid

Registers

Cache (SRAM)

Main memory (DRAM)

Magnetic disk

Magnetic tape

Goal: really large memory with very low latencyLatencies are smaller at the top of the hierarchyCapacities are larger at the bottom of the hierarchy

Solution: move data between levels to create illusion of largememory with low latency

Better

Better

Page 16: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 16CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Disk drive structure

sector

cylinder

platter

spindle

track

head

actuator

surfaces

Data stored on surfacesUp to two surfaces per platterOne or more platters per disk

Data in concentric tracksTracks broken into sectors

256B-1KB per sector

Cylinder: correspondingtracks on all surfaces

Data read and written byheads

Actuator moves headsHeads move in unison

Page 17: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 17CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Memory

User programand data

User programand data

Operatingsystem

Address

0x1dfff

0x23000

0x27fff

0x2b000

0x2ffff

0

Single base/limit pair: set for each processTwo base/limit registers: one for program, one for data

Base

Limit

User data

User program

Operatingsystem

User data

Base1

Limit2

Limit1

Base2

Address

0x1dfff

0x23000

0x29000

0x2bfff

0x2ffff

0

0x2d000

0x24fff

Page 18: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 18CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Anatomy of a device request

Interruptcontroller

CPU5 Disk

controller

3 2

61 4

Left: sequence as seen by hardwareRequest sent to controller, then to diskDisk responds, signals disk controller which tells interrupt controllerInterrupt controller notifies CPU

Right: interrupt handling (software point of view)

Instructionn

Operatingsystem

Instructionn+1

Interrupt handler

1: Interrupt

2: Process interrupt

3: Return

Page 19: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 19CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Operating systems concepts

Many of these should be familiar to Unix users…Processes (and trees of processes)DeadlockFile systems & directory treesPipesWe’ll cover all of these in more depth later on, butit’s useful to have some basic definitions now

Page 20: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 20CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Processes

Process: program in executionAddress space (memory) theprogram can useState (registers, includingprogram counter & stackpointer)

OS keeps track of all processes ina process tableProcesses can create otherprocesses

Process tree tracks theserelationshipsA is the root of the treeA created three child processes:B, C, and DC created two child processes: Eand FD created one child process: G

A

B

E F

C D

G

Page 21: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 21CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Inside a (Unix) process

Processes have threesegments

Text: program codeData: program data

Statically declared variablesAreas allocated by malloc()or new

StackAutomatic variablesProcedure call information

Address space growthText: doesn’t growData: grows “up”Stack: grows “down”

Stack

Data

Text

0x7fffffff

0

Data

Page 22: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 22CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Deadlock

Potential deadlock Actual deadlock

Page 23: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 23CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Root directory

bin cse

faculty grads

ls ps cp csh

Hierarchical file systems

elm sbrandt kag amer4

stuff

classes research

stuff

Page 24: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 24CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Interprocess communication

Processes want to exchange information with each otherMany ways to do this, including

NetworkPipe (special file): A writes into pipe, and B reads from it

A B

Page 25: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 25CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

System calls

Programs want the OS to perform a serviceAccess a fileCreate a processOthers…

Accomplished by system callProgram passes relevant information to OSOS performs the service if

The OS is able to do soThe service is permitted for this program at this time

OS checks information passed to make sure it’s OKDon’t want programs reading data into other programs’ memory!

Page 26: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 26CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Making a system call

System call:read(fd,buffer,length)

Program pushes arguments,calls libraryLibrary sets up trap, callsOSOS handles system callControl returns to libraryLibrary returns to userprogram

Return to caller

Trap to kernel

Trap code in register

Increment SP

Call read

Push arguments

DispatchSys callhandler

Kernelspace(OS)

Userspace

0

0xffffffff

1

2

3

4

5 6

7

8

9

Library(read call)

Usercode

Page 27: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 27CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

System calls for files & directories

Remove name as a link to an object (deletesthe object if name was the only link to it)

s = unlink(name)

Create a new entry (name2) that points to thesame object as name1

s = link(name1,name2)

Remove a directory (must be empty)s = rmdir(name)

Create a new directorys = mkdir(name,mode)

Get a file’s status information (in buffer)s = stat(name,&buffer)

Move the “current” pointer for a files = lseek(fd,offset,whence)

Write data from a buffer into a filen = write(fd,buffer,size)

Read data from a file into a buffern = read(fd,buffer,size)

Close an open files = close(fd)

Open a file for reading and/or writingfd = open(name,how)

DescriptionCall

Page 28: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 28CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Get the elapsed time since 1 Jan 1970seconds = time(&seconds)

Change a file’s protection bitss = chmod(name,mode)

Send a signal to a processs = kill(pid,signal)

Change the working directorys = chdir(dirname)

Terminate process execution and returnstatus

exit(status)

Replace a process’ core images = execve(name,argv,environp)

Wait for a child to terminatepid=waitpid(pid,&statloc,options)

Create a child process identical to theparent

pid = fork()

DescriptionCall

More system calls

Page 29: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 29CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

A simple shell

while (TRUE) { /* repeat forever */type_prompt( ); /* display prompt */read_command (command, parameters) /* input from terminal */

if (fork() != 0) { /* fork off child process *//* Parent code */waitpid( -1, &status, 0); /* wait for child to exit */

} else {/* Child code */execve (command, parameters, 0); /* execute command */

}}

Page 30: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 30CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Monolithic OS structure

Mainprocedure

Serviceroutines

Utilityroutines

Page 31: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 31CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Virtual machines

First widely used in VM/370 with CMSAvailable today in VMware

Allows users to run any x86-based OS on top of Linux or NT

“Guest” OS can crash without harming underlying OSOnly virtual machine fails—rest of underlying OS is fine

“Guest” OS can even use raw hardwareVirtual machine keeps things separated

Bare hardware

Linux

VMware

Linux

App1 App2 App3

VMware VMware

Windows NT FreeBSDI/O instructions

System calls

Calls to simulate I/O

“Real” I/O instructions

Page 32: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 32CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Microkernel

Clientprocess

Processserver

Terminalserver

Clientprocess

Fileserver

Memoryserver

… User mode

Kernel mode

Microkernels (client-server)

Processes (clients and OS servers) don’t share memoryCommunication via message-passingSeparation reduces risk of “byzantine” failures

Examples include Mach

Page 33: CS 1550: Introduction to Operating Systemspeople.cs.pitt.edu/~mosse/cs1550/Slides/amer-intro.pdfCS 1550: Introduction to Operating Systems ... Operating system management of I/O ...

Chapter 1 33CS 1550, cs.pitt.edu (originaly modified by Ethan L. Miller and Scott A. Brandt)

Metric units

Exa1,000,000,000,000,000,0001018atto0.00000000000000000110-18

Peta1,000,000,000,000,0001015femto0.00000000000000110-15

Tera1,000,000,000,0001012pico0.00000000000110-12

Giga1,000,000,000109nano0.00000000110-9

Mega1,000,000106micro0.00000110-6

Kilo1,000103milli0.00110-3

PrefixNumberExp.PrefixNumberExp.