cmsc 412 operating systems fall 2002

38
University of Maryland, CMSC 412, Fall 2002 CMSC 412 Operating Systems Fall 2002 Liviu Iftode [email protected]

Upload: gloria-todd

Post on 04-Jan-2016

40 views

Category:

Documents


0 download

DESCRIPTION

CMSC 412 Operating Systems Fall 2002. Liviu Iftode [email protected]. Course overview. Goals. Understand how an operating system works as a mediator between the computer architecture and user programs Learn how OS concepts are implemented in a real operating system - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 20021

CMSC 412Operating Systems

Fall 2002

Liviu Iftode

[email protected]

Page 2: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 20022

Course overview

Goals

Understand how an operating system works as a mediator between the computer architecture and user programs Learn how OS concepts are implemented in a real operating system Introduce to systems programming Learn about performance evaluation Learn about current trends in OS research

Page 3: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 20023

OS Learning

OS Concepts

Real OS OS Programming

OS Implementation (lectures, textbooks)

recitations

homeworks

project

(Unix/Linux textbooks) (man pages)

(source code, project doc)

Page 4: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 20024

Course Timeline

Lecture

Lab

Homework

Project

W

Apply A

HW A Due

W

W

Project AB Due

W

Apply B

W

Apply C

Tu Th

Concept A

Tu Th

Concept B

Tu Th

Concept C

HW BC Due

W

Page 5: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 20025

Suggested Approach

Read the assigned chapter from the textbook before the lecture to understand the basic idea and become familiar with the terminology

Attend the recitation Start homeworks and project right away, systems

programming is not easy ! Ask questions during lecture, recitation. Use the mailing list/newsgroup for discussions, do not be

afraid to answer a question posted by your colleague even if you are not sure. This is a way to validate your understanding of the material. Do not forget, questions and discussions are not graded !

Page 6: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 20026

Course Outline

Processes and process management Threads and thread programming Synchronization and Deadlock Memory management and Virtual Memory CPU Scheduling File systems and I/O Management Networking and Distributed Systems Security

Page 7: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 20027

Course requirements

Prerequisites

computer architecture good programming skills (C!!, C++, Java)

Expected work

substantial readings (textbooks and papers) challenging project extended over the entire

semester homeworks (require programming) midterm and final exams

Page 8: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 20028

Work Evaluation

midterm exam 25% homework 25% project 25% final exam 25%

Page 9: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 20029

HomeworksGoals

Deepen the understanding of OS concepts Develop systems programming skills: virtual memory, threads, synchronization, sockets Learn to design, implement, debug and evaluate the performance of an OS-bound program

Structure

4-5 homeworks Both theoretical and C-programming problems

Page 10: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200210

Project

Goals

learn to design, implement and evaluate basic OS mechanisms and policies

Structure

individual project multiple phases project report for each phase

Page 11: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200211

Textbooks

Stallings Operating Systems. Internals and Design Principles, 4th Edition, Prentice-Hall, 2001.

Silberschatz, Galvin and Gagne, Operating System Concepts, 6th Edition, John Wiley & Sons, 2001.

Papers will be made available on the course homepage

Page 12: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200212

Logistics

TAs: Chunyuan Liao Iulian Neamtiu (to be confirmed)

Course homepage:

http://www.cs.umd.edu/~iftode/cs412/cs412syllabus.htm Preliminary schedule and course notes are already

available for the entire semester but they may be updated before each class.

Homeworks every other week. A project phase every other week. A mailing list/newsgroup will be announced shortly.

Page 13: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200213

What is an operating system

a software layer between the hardware and the application programs/users which provides a virtual machine interface: easy and safe

a resource manager that allows programs/users to share the hardware resources: fair and efficient

hardware

operating system

application (user)

Page 14: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200214

How does an OS work

receives requests from the application: system calls satisfies the requests: may issue commands to hardware handles hardware interrupts: may upcall the application OS complexity: synchronous calls + asynchronous events

hardware

OS

application (user) system calls upcalls

commands interrupts

hardware independent

hardware dependent

Page 15: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200215

Files

traditional approach: OS does disk block allocation and caching (buffer cache) , disk operation scheduling and replacement in the buffer cache

new approaches: application-controlled cache replacement, log-based allocation (makes writes fast)

hardware: disk

operating system: files, directories

A file is a storage abstraction

application/user: copy file1 file2 naming, protection,operations on files

operations on disk blocks...

Page 16: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200216

Traditional file system

application: read/write files

OS: translate file to disk blocks

...buffer cache ...maintains

controls disk accesses: read/write blocks

hardware:

Page 17: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200217

Mechanism vs Policy

mechanism: data structures and operations that implement the abstraction (e.g. the buffer cache)

policy: the procedure that guides the selection of a certain course of action from among alternatives (e.g. the replacement policy for the buffer cache)

traditional OS is rigid: mechanism together with policy

hardware

operating system: mechanism+policy

application (user)

Page 18: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200218

traditional OS cannot provide the best policy in all cases new OS approaches separate mechanisms from

policies:

OS provides the mechanism + some policy applications contribute to the policy

flexibility+efficiency require new OS structures and/or new OS interfaces

Mechanism-policy split

Page 19: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200219

Application-controlled caching

application: read/write files replacement policy

OS: translate file to disk blocks

...buffer cache ...maintains

controls disk accesses: read/write blocks

hardware:

Page 20: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200220

Processes

traditional approach: OS switches processes on the processor (process scheduling), provides inter-process communication and handles exceptions

new approaches: application-controlled scheduling, reservation-based scheduling, agile applications

hardware: processor

operating system: processes

A process is a processor abstraction

user: run application create, kill processes,inter-process comm

context switch

Page 21: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200221

Traditional approach

OS mediates inter-process communication (IPC) OS schedules processes on the processor application provides hints: priorities

processor

OS

processes

IPC

active

Page 22: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200222

Hierarchical scheduling

OS schedules schedulers which schedule dependent processes

processor

OS

processes schedulers

Page 23: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200223

Virtual memory

traditional approach: OS provides a sufficiently large virtual address space for each running application, does memory allocation and replacement and may ensure protection

new approaches: external memory management, huge (64-bit) address space, global memory

hardware: physical memory

operating system: virtual memory

Virtual memory is a memory abstraction

application: address spacevirtual addresses

physical addresses

Page 24: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200224

VM: mechanism and policy

processes can run being partially loaded in memory illusion of more memory than physically available: swapping processes can share physical memory if permitted replacement policy can be exposed to the application

physical memory:

v-to-p memory mappings

processes:

virtual address spacesp1 p2

Page 25: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200225

Communication

traditional approach: OS provides naming schemes, reliable transport of messages, packet routing to destination

new approaches: zero-copy protocols, active messages, memory-mapped communication

hardware: network interface

operating system: TCP/IP protocols

Message passing is a communication abstraction

application: socketsnaming, messages

network packets

Page 26: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200226

Traditional OS structure

monolithic/layered systems one/N layers all executed in “kernel-mode” good performance but rigid

OS kernel

hardware

userprocess

filesystem

memorysystem

usersystem calls

Page 27: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200227

Micro-kernel OS

micro-kernel

hardware

clientprocess

fileserver

memoryserver

IPC

user mode

client-server model, IPC between clients and servers the micro-kernel provides protected communication OS functions implemented as user-level servers flexible but efficiency is the problem easy to extend for distributed systems

Page 28: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200228

Extensible OS kernel

extensible kernel

hardware

process

defaultmemoryservice

user modeprocess

mymemoryservice

user processes can load customized OS services into the kernel

good performance but protection and scalability become problems

Page 29: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200229

Virtual Machines

old concept which is heavily revived today

the real hardware in “cloned” in several identical virtual machines

OS functionality built on top of the virtual machine

hardware

user

exokernel

allocate resourceOS on virtual machine

Page 30: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200230

Computer System Processor: performs data processing Main memory: stores both data and programs, typically volatile Disks: secondary memory devices which provide persistent storage Network interfaces: inter-machine communication Buses: intra-machine communication

memory bus (processor-memory) I/O bus (disks, network interfaces, other I/O

devices, memory-bus)

Page 31: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200231

Basic computer structure

CPU Memory

memory bus

I/O bus

disk Net interface

Page 32: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200232

Memory caches motivated by the mismatch between processor and memory speed closer to the processor than the main memory smaller and faster than the main memory act as “attraction memory”: contains the value of main memory locations which were recently accessed (temporal locality) transfer between caches and main memory is performed in units called cache blocks/lines caches contain also the value of memory locations which are close to locations which were recently accessed (spatial locality)

Page 33: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200233

Cache design issues

cache size and cache block size mapping: physical/virtual caches, associativity replacement algorithm: LRU write policy: write through/write back

cpu

cache

mainmemory

word transfer

block transfer

Page 34: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200234

Memory Hierarchy

cpu

cache

main memory

word transfer

block transfer

disks

page transfer

decrease cost per bit decrease frequency of access increase capacity increase access time increase size of transfer unit

Page 35: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200235

Data transfer on the bus

CPUMemory

memory bus

I/O bus

disk Net interface

cache

cache-memory: cache misses, write-through/write-back memory-disk: swapping, paging, file accesses memory-Network Interface : packet send/receive I/O devices to the processor: interrupts

Page 36: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200236

Direct Memory Access (DMA)

bulk data transfer between memory and an I/O device (disk, network interface) initiated by the processor

address of the I/O device starting location in memory number of bytes direction of transfer (read/write from/to

memory) processor interrupted when the operation completes bus arbitration between cache-memory and DMA

transfers memory cache must be consistent with DMA

Page 37: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200237

Multiprocessors

CPUMemory

memory bus

I/O bus

disk Net interface

cache

simple scheme: more than one processor on the same bus memory is shared among processors-- cache consistency bus contention increases -- does not scale alternative (non-bus) system interconnect -- expensive single-image operating systems

CPU

cache

Page 38: CMSC 412 Operating Systems Fall 2002

University of Maryland, CMSC 412, Fall 200238

Multicomputers

network of computers: “share-nothing” -- cheap communication through message-passing: difficult to program challenge: build efficient shared memory abstraction in software each system runs its own operating system

CPUMemory

memory bus

I/O bus

disk Net interface

cache

CPUMemory

memory bus

I/O bus

diskNet interface

cache

network