53
1 Operating Systems (202-1-3031) Lecturers: Meni Adler, Danny Hendler and Amnon Meisels TAs: Vadim Levit, Ehud Barnea, Matan Drori, Yeri Sofer and Dan Brownstein (Zohar Komarovski & Tomer Sidi) Course site: http://www.cs.bgu.ac.il/~os142/Main Meni Adler Office: Alon, 211 [email protected] Office hours: Wed….. Danny Hendler Office: Alon, 218 [email protected] Office hours: 11:30-13:30 Amnon Meisels Office: Alon, 206 [email protected] Office hours: Wed. 9-11

Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

  • Upload
    lythien

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

1

Operating Systems (202-1-3031)

Lecturers: Meni Adler, Danny Hendler and Amnon Meisels

TAs: Vadim Levit, Ehud Barnea, Matan Drori, Yeri Sofer and Dan Brownstein (Zohar Komarovski & Tomer Sidi)

Course site: http://www.cs.bgu.ac.il/~os142/Main

Meni Adler

Office: Alon, 211 [email protected] Office hours:

Wed…..

Danny Hendler Office: Alon, 218

[email protected] Office hours: 11:30-13:30

Amnon Meisels

Office: Alon, 206 [email protected] Office hours: Wed. 9-11

Page 2: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

2

Assignments and grade structure

Weight Subject Assignment

15% Scheduling + Synchronization

Programming 1 + 2

15% Memory Management + Files

Programming 3 + 4

15% Processes, scheduling, synchronization, memory (TBD)

Midterm

55% All Final

Assignments and exams are mandatory

Must pass final exam

Page 3: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Textbooks

A. Tanenbaum: Modern Operating Systems, Prentice-Hall, 3rd Edition, 2008

A. Silbetschatz et al.: Operating System Concepts (9th ed.), Addison Wesley, 2012

G. Nutt: Operating Systems (a modern perspective) (3rd ed.), Addison Wesley, 2003

W. Stallings: Operating Systems (6th ed.), Prentice-Hall, 2009

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 3

Page 4: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Syllabus 1. Introduction - History; Views; Concepts; Structure 2. Process Management - Processes; State + Resources; Threads;

Unix implementation of Processes 3. Scheduling – Paradigms; Unix; Modeling 4. Synchronization - Synchronization primitives and their

equivalence; Deadlocks 5. Memory Management - Virtual memory; Page replacement

algorithms; Segmentation 6. File Systems - Implementation; Directory and space management;

Unix file system; Distributed file systems (NFS) 7. Distributed Synchronization (if there's time)

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 4

Page 5: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Introduction: outline

What is an operating system?

Some history

OS concepts

OS structure

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 5

Page 6: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Layered Hardware-Software Machine Model

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 6

Page 7: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Computer-System Architecture

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 7

Page 8: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

What is an Operating System ?

An operating system is:

1. An Extended Machine

2. A Resource manager

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 8

Page 9: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Operating Systems as extended Machines

The problems:

Bare machine has complex structure o Processors

o Many difficult-to-program devices

Primitive Instruction Set

Different for Different Machines

OS provides:

Abstraction!

– Simple, easier to use interface (machine-independent)

– Hiding of unnecessary details

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 9

Page 10: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

OS abstraction example: read from disk

Read file data from disk (simplified) …

Read linear sector 17,403 from disk 2

Convert linear sector number to: cylinder, sector, head (may be complicated – outer cylinders have more sectors, bad sectors remapped, etc.)

Move disk arm to requested cylinder

Wait for proper sector to appear

OS abstraction return-code = read(fd, buff, nbytes)

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 10

Page 11: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

UNIX high-level architecture

User Interface

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 11

Page 12: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Operating Systems as Resource Managers

Multiple resources o Processors; Memory

o Disks; Tapes; Printers

o Network interfaces; Terminals

Controlled allocation of Resources among:

o Groups, Users; Processes, Threads,…

Means of control: sharing/multiplexing/scheduling, monitoring, protection, report/payment

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 12

Page 13: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Introduction: outline

What is an operating system?

Some history

OS concepts

OS structure

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 13

Page 14: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels

History of Operating Systems First generation 1945 - 1955

o vacuum tubes, plug boards – user plugs-in program

14

Page 15: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels

The first computers

15

Electronic Numerical Integrator And Computer (ENIAC)

Mathematical Analyzer, Numeric Integrator And Computer(MANIAC)

Page 16: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels

Second generation 1955 - 1965 o transistors, batch systems – multiple programs on Disk

Third generation 1965 – 1980 o ICs and multiprogramming - user interaction (time-sharing)

Fourth generation 1980 – present o personal computers – graphic user-interface

o Networks – file & computing services

o Web-computing, Handheld devices , Cellular phones, Cloud computing…

History of Operating Systems (cont’d)

16

Page 17: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels

How Bill Gates became rich…

1974: Intel releases the 8080 processor, needs an OS

Gary Kildall

Please! develop an OS

CP/M OS

17

Page 18: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

How Bill Gates became rich…(cont’d)

1974: Intel releases the 8080 processor, needs an OS

Gary Kildall

CP/M OS

Can you grant me CP/M rights?

Sure!

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 18

Page 19: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

How Bill Gates became rich…(cont’d)

1980: IBM designs IMB PC, needs an OS

Gary Kildall

Can you find an OS for our PC?

Please meet IBM, they need an OS

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 19

Page 20: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

How Bill Gates became rich…(cont’d)

1980: IBM designs IMB PC, needs an OS

Kildall too busy. Please develop an

OS!

I’de like to buy the DOS OS

Sure, it’s yours for $75,000

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 20

Page 21: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

How Bill Gates became rich…(cont’d)

1980: IBM designs IMB PC, needs an OS

May I retain the rights for MS-

DOS?

Sure, why not!!

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 21

Page 22: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

How Bill Gates became rich…(cont’d)

Well, this is 20:20 hind vision…

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 22

Page 23: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Introduction: outline

What is an operating system?

Some history

OS concepts

OS structure

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 23

Page 24: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

OS – Key Functions Process management

o process creation; deletion; suspension/preemption

o process synchronization; communication; scheduling

Main-memory management

o Manage used parts and their current users

o Select processes to load from secondary storage

o Allocate memory to running processes

Secondary storage management

o Free-space management

o Storage allocation

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 24

Page 25: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

File system management o File + directory - creation; deletion

o File manipulation primitives

o Mapping files onto secondary storage

I/O system management o General device-driver interface

o Drivers for specific hardware devices

Protection system o Distinguish between authorized and unauthorized usage

o Provide means of enforcement

OS – Key Functions (cont’d)

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 25

Page 26: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Processes - a key concept

Resource container for “program in execution”

Timesharing, process suspension/preemption

Process Table

Process Groups

Signals

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 26

Page 27: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Why do we need multiple processes?

• Single application: We want things to happen “concurrently” (E.g.: paging and typing in a text editor)

• Multiple applications: processes running in the background (e.g., Anti Virus)

• Multiple users: The departmental computer; all types of Servers

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 27

Page 28: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

CPU much faster than I/O

o Computation/communication overlap

Memory large enough – requires memory protection!

Scheduler which manages flow of jobs in and out and shares CPU between jobs – requires Timer

Multiprogramming: how is it done?

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 28

Page 29: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Process trees

• A process tree

A created two child processes, B and C

B created three child processes, D, E, and F

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 29

Page 30: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Inter-Process Communication (IPC)

Two processes communicating via a pipe

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 30

Page 31: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Files: non volatile data

File types and operations on files

Directories - hierarchical structure

Working directories Root directory

Students

Gil

Roni

Or

Faculty

Amnon

Papers Progs Grants

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 31

Page 32: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Protection and Security Unix - user; group; other (rwx bits)

File descriptors (handles)

I/O as a special file

Block & Character special files

Standard input; output; error

Pipes

Links

Files: non volatile data (cont’d)

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 32

Page 33: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

I/O is performed in kernel mode

All I/O instructions are privileged instructions

I/O devices and CPU can execute concurrently

CPU moves data between main memory and device controllers' buffers (done by device drivers)

Device controllers interrupt upon completion

Interrupts or Traps enable mode switching

Operating systems are interrupt-driven

Traps/signals: software interrupts

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 33

Page 34: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Interrupts and the fetch-decode-execute loop

Do forever{ IR = memory[PC]; execute(IR); PC++; If(Interrupt_Request) { memory[0] = PC; PC = memory[1] } }

An interrupt is an asynchronous event

The kernel interrupt handling routine may use a disable_interrupts instruction to avoid losing data while processing an interrupt request

Interrupt handler is typically called indirectly via the interrupt vector

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 34

Page 35: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Synchronous vs. Asynchronous I/O

execute

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 35

Page 36: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Steps in Making a System Call

There are 11 steps in making the system call: read (fd, buffer, nbytes)

Is this call Synchronous or Asynchronous?

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 36

Page 37: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

System Calls

processes

files

directories

miscellaneous

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 37

Page 38: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

The Shell Command Language

sort < file1 > file2

cat file1 | sort | lpr

• The Shell is a process which executes its commands as offspring processes

• Processes may call shell commands by using the “system” system call

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 38

Page 39: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Shell structure – Parent & child

A stripped-down 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 */

wait(); /* wait for child to exit */

} else {

/* Child code */

execvp (command, parameters); /* execute command */

}

}

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 39

Page 40: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Linux Shell initialization The init program (process 1) runs getty on all ports

Upon detecting a terminal, getty runs login

Typing in a user name and a password – login checks the passwd file and if correct runs a shell – the one specified in the UID entry

The shell is run with that user ID environment parameters

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 40

Page 41: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Running user commands

User types: ‘grep some_word file_name’

Shell parses the command, inserts the strings grep, some_word, file_name into argv and their number to argc

Next, the shell uses fork() to create a process (same user ID)

Now, it takes the executable name grep and the arguments, all from argv, and uses execvp() (or a similar system call) to run the grep executable

On foreground execution, the shell would use the wait() system call and continue its session only after the child process terminates

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 41

Page 42: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels

UNIX Utility Programs

A few of the more common UNIX utility programs required by POSIX

42

Page 43: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Introduction: outline

What is an operating system?

Some history

OS concepts

OS structure (חומר העשרה)

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 43

Page 44: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Operating system structure

1. Monolithic systems

2. Virtual machines

3. Client-server model

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 44

Page 45: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Monolithic systems

Monolithic systems have little structure

Service Routines

Utility procedures

Main procedure for invoking OS service

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 45

Page 46: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Monolithic systems

Service routines are system calls

Utility procedures serve multiple service routines

All compiled into a single system

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 46

Page 47: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Virtual Machines

Provide an interface identical to the underlying bare machine

VM monitor creates multiple VMs, each executing on its own (virtual) processor and its own (virtual) memory

Virtual machines provide complete protection of system resources - even separate resources

Difficult to implement, due to the effort required to provide an exact duplicate of the underlying machine

Well-known examples: o MS-DOS on top of Windows

o JVM

o VMWare

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 47

Page 48: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Virtual Machines: IBM 370

370 bare hardware

VM/370

CMS CMS CMS kernel

user

CMS: Conversational Monitor System, a single user OS

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 48

Page 49: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Virtual Machines (cont’d)

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 49

Page 50: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Modern virtual machines

Different legacy servers run on different OS

Host sharing for web servers

Use multiple operating systems on a single machine

Security through isolation

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 50

Page 51: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Microkernels

Small number of lines of code mostly in C

Catching interrupts and switching processes in Assembly

C code manages and schedules processes, inter-process communication, i/o interaction

Offers few (~40) system calls for the rest of OS

Device drivers (Disk, Network,…) in user mode

Upper level contains Servers – File, Process..

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 51

Page 52: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Client-Server Model

(Micro)Kernel

Client Process

Client Process

. . . . . . File Server

Memory Server

Client File Server Process Server

Kernel Kernel Kernel Kernel

Machine1 Machine2 Machine3 Machine4

. . . . . . .

Network Distributed System

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 52

Page 53: Operating Systems (202-1-3031) - BGUos142/wiki.files/Introduction.pdf · Operating Systems (202-1-3031) Lecturers: ... Nutt: Operating Systems (a modern perspective) ... Gary Kildall

Client/server architecture: Mechanism vs. Policy

Simple Kernel - modularity; minimal “privileged” operation

Servers for files, memory, etc. - distribution; user mode

operation

good for distributed systems

Mechanism in kernel - how to do things..

Policy outside - decide what to do; can be changed later..

Critical servers in kernel – i/o disk server & the Scheduler – who serves who….

Operating Systems, 2014, Meni Adler, Danny Hendler & Amnon Meisels 53