operating systems (202-1-3031) - bguos142/wiki.files/introduction.pdf · operating systems...
TRANSCRIPT
![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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/45.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/46.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/48.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/49.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/50.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/51.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/52.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022051800/5ace30957f8b9a6a678e6a88/html5/thumbnails/53.jpg)
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