* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Operating Systems, 082
Survey
Document related concepts
Library (computing) wikipedia , lookup
Berkeley Software Distribution wikipedia , lookup
Mobile operating system wikipedia , lookup
Copland (operating system) wikipedia , lookup
Plan 9 from Bell Labs wikipedia , lookup
Process management (computing) wikipedia , lookup
Burroughs MCP wikipedia , lookup
Security-focused operating system wikipedia , lookup
Distributed operating system wikipedia , lookup
Transcript
Operating Systems (202-1-3031) Danny Hendler Amnon Meisels Office: Alon, 218 [email protected] Office hours: Wed., 11-13 Office: [email protected] Office hours: Lecturers: Danny Hendler and Roie Zivan TAs: Alon Grubshtein, Amir Mentchel, Ilya Misrky and Dolev Pomerantz Course site: http://www.cs.bgu.ac.il/~os122/Main Operating Systems, 2012, Danny Hendler & Roie Zivan 1 1 Assignments and grade structure Assignment Subject Weight Programming 1 + 2 Scheduling + Synchronization Programming 3 + 4 Memory Management + Files 15% Midterm 15% Final Processes, scheduling, synchronization, memory (TBD) All 15% 55% Assignments and exams are mandatory Must pass final exam Operating Systems, 2012, Danny Hendler & Roie Zivan 2 2 Textbooks A. Tanenbaum: Modern Operating Systems, Prentice-Hall, 3rd Edition, 2008 A. Silbetschatz et al.: Operating System Concepts (8th ed.), Addison Wesley, 2009 G. Nutt: Operating Systems (a modern perspective) (3rd ed.), Addison Wesley, 2003 W. Stallings: Operating Systems (6th ed.), Prentice-Hall, 2009 Operating Systems, 2012, Danny Hendler & Roie Zivan 3 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. Security – General policies and mechanisms; protection models; authentication 8. Distributed Synchronization (if there's time) Operating Systems, 2012, Danny Hendler & Roie Zivan 4 Introduction: outline What is an operating system? Some history OS concepts OS structure Operating Systems, 2012, Danny Hendler & Roie Zivan 5 Layered Hardware-Software Machine Model Applications System Programs Banking System Airline reservation Compilers Editors Web browser Shell Operating System Hardware Operating Systems, 2012, Danny Hendler & Roie Zivan 6 Computer-System Architecture Operating Systems, 2012, Danny Hendler & Roie Zivan 7 What is an Operating System ? An operating system is: 1. An Extended Machine 2. A Resource manager Operating Systems, 2012, Danny Hendler & Roie Zivan 8 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, 2012, Danny Hendler & Roie Zivan 9 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, 2012, Danny Hendler & Roie Zivan 10 UNIX high-level architecture User Interface Operating Systems, 2012, Danny Hendler & Roie Zivan 11 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, 2012, Danny Hendler & Roie Zivan 12 Introduction: outline What is an operating system? Some history OS concepts OS structure Operating Systems, 2012, Danny Hendler & Roie Zivan 13 History of Operating Systems First generation 1945 - 1955 o vacuum tubes, plug boards – user plugs-in program Operating Systems, 2012, Danny Hendler & Roie Zivan 14 The first computers Electronic Numerical Integrator And Computer (ENIAC) Mathematical Analyzer, Numeric Integrator And Computer(MANIAC) Operating Systems, 2012, Danny Hendler & Roie Zivan 15 History of Operating Systems (cont’d) 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… Operating Systems, 2012, Danny Hendler & Roie Zivan 16 How Bill Gates became rich… 1974: Intel releases the 8080 processor, needs an OS Please! develop an OS CP/M OS Gary Kildall Operating Systems, 2012, Danny Hendler & Roie Zivan 17 How Bill Gates became rich…(cont’d) 1974: Intel releases the 8080 processor, needs an OS CP/M OS Sure! Can you grant me CP/M rights? Gary Kildall Operating Systems, 2012, Danny Hendler & Roie Zivan 18 How Bill Gates became rich…(cont’d) 1980: IBM designs IMB PC, needs an OS Can you find an OS for our PC? Please meet IBM, they need an OS Gary Kildall Operating Systems, 2012, Danny Hendler & Roie Zivan 19 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, 2012, Danny Hendler & Roie Zivan 20 How Bill Gates became rich…(cont’d) 1980: IBM designs IMB PC, needs an OS May I retain the rights for MSDOS? Sure, why not!! Operating Systems, 2012, Danny Hendler & Roie Zivan 21 How Bill Gates became rich…(cont’d) Well, this is 20:20 hind vision… Operating Systems, 2012, Danny Hendler & Roie Zivan 22 Introduction: outline What is an operating system? Some history OS concepts OS structure Operating Systems, 2012, Danny Hendler & Roie Zivan 23 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, 2012, Danny Hendler & Roie Zivan 24 OS – Key Functions (cont’d) 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 Operating Systems, 2012, Danny Hendler & Roie Zivan 25 Processes - a key concept Resource container for “program in execution” Timesharing, process suspension/preemption Process Table Process Groups Signals Operating Systems, 2012, Danny Hendler & Roie Zivan 26 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, 2012, Danny Hendler & Roie Zivan 27 Multiprogramming: how is it done? 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 Operating Systems, 2012, Danny Hendler & Roie Zivan 28 Process trees • A process tree A created two child processes, B and C B created three child processes, D, E, and F Operating Systems, 2012, Danny Hendler & Roie Zivan 29 Inter-Process Communication (IPC) Two processes communicating via a pipe Operating Systems, 2012, Danny Hendler & Roie Zivan 30 Files: non volatile data File types and operations on files Directories - hierarchical structure Working directories Root di re ctory S tu de n ts Facu l ty Am n on Gi l Or Ron i Pape rs Progs Operating Systems, 2012, Danny Hendler & Roie Zivan Gran ts 31 Files: non volatile data (cont’d) 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 Operating Systems, 2012, Danny Hendler & Roie Zivan 32 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, 2012, Danny Hendler & Roie Zivan 33 Interrupts and the fetch-decode-execute loop While (halt flag not set during execution){ 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, 2012, Danny Hendler & Roie Zivan 34 Synchronous vs. Asynchronous I/O execute Operating Systems, 2012, Danny Hendler & Roie Zivan 35 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, 2012, Danny Hendler & Roie Zivan 36 System Calls processes files directories miscellaneous Operating Systems, 2012, Danny Hendler & Roie Zivan 37 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, 2012, Danny Hendler & Roie Zivan 38 Shell structure – Parent & child A stripped-down shell: while (TRUE) { type_prompt( ); read_command (command, parameters) if (fork() > 0) { /* Parent code */ wait(); } else { /* Child code */ execvp (command, parameters); } /* repeat forever */ /* display prompt */ /* input from terminal */ /* fork off child process */ /* wait for child to exit */ /* execute command */ } Operating Systems, 2012, Danny Hendler & Roie Zivan 39 Shell initialization The init program 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, 2012, Danny Hendler & Roie Zivan 40 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, 2012, Danny Hendler & Roie Zivan 41 UNIX Utility Programs A few of the more common UNIX utility programs required by POSIX Operating Systems, 2012, Danny Hendler & Roie Zivan 42 Introduction: outline What is an operating system? Some history OS concepts OS structure Operating Systems, 2012, Danny Hendler & Roie Zivan 43 Operating system structure 1. Monolithic systems 2. Virtual machines 3. Client-server model … Operating Systems, 2012, Danny Hendler & Roie Zivan 44 Monolithic systems Monolithic systems have little structure Main procedure for invoking OS service Service Routines Utility procedures Operating Systems, 2012, Danny Hendler & Roie Zivan 45 Monolithic systems Service routines are system calls Utility procedures serve multiple service routines All compiled into a single system Operating Systems, 2012, Danny Hendler & Roie Zivan 46 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, 2012, Danny Hendler & Roie Zivan 47 Virtual Machines: IBM 370 user CMS CMS CMS kernel VM/370 370 bare hardware CMS: Conversational Monitor System, a single user OS Operating Systems, 2012, Danny Hendler & Roie Zivan 48 Virtual Machines (cont’d) Operating Systems, 2012, Danny Hendler & Roie Zivan 49 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, 2012, Danny Hendler & Roie Zivan 50 Microkernels Small number of lines of code mostly in C Catching interrupts and switching processes in Assembly C code manages and schedules processes, interprocess 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, 2012, Danny Hendler & Roie Zivan 51 Client-Server Model Client Process Client Process ...... File Server Memory Server (Micro)Kernel Machine1 Machine2 Client File Server Kernel Kernel .... Network Machine4 Machine3 Process Server Kernel Kernel ... Distributed System Operating Systems, 2012, Danny Hendler & Roie Zivan 52 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, 2012, Danny Hendler & Roie Zivan 53