Operating System Concepts Part II Department of Computer Science Southern Illinois University Edwardsville Spring, 2009 Dr. Hiroshi Fujinoki CS 514 Operating Systems Intro_II/001
Operating System Concepts This PPT presentation covers Section 1.5 of the textbook. (1) Process (2) Deadlock avoidance in I/O resource management (3) Files and file descriptor (4) Special Files CS 514 Operating Systems Intro_II/002
Subjects covered about “process” What is “process”? How is it different from “program”? What we can do by “processes”? A: “Process” is a program in execution. HDD “program” is an executable file stored in a disk program Stored as a file Q: What is “process”? Solutions CS 514 Operating Systems Intro_II/003
Then how a “program” can become “process”? HDD program Stored as a file Memory CPU A program becomes a process when one is loaded into the memory for execution by CPU Load CS 514 Operating Systems Intro_II/004
Things needed for a program to be executed in memory Memory HDD Program Code Stack Memory Heap Memory Address Space Program X Program Z CPU PCB-Z PCB-A PCB-X PCB = Process Control Block PCB is a data structure for the CPU to keep track of each process Process Program CS 514 Operating Systems Intro_II/005
Example of “program” and “process” Program Process Static object, usually exists as an executable file Program in execution This is a program This is a process (program in execution) CS 514 Operating Systems Intro_II/006
Intermediate summary of “process” It is a program in execution A process consists of the contents in process address space and PCB Process address space consists of: Program Code Stack Memory Space Heap Memory Space Collection of assembly instructions CPU runs Stack data structure for sub-routine calls Other data structure (local/global variables) Questions Where are PCBs located? What information does PCB hold? CS 514 Operating Systems Intro_II/007
Things needed for a program to be executed in memory Memory Program XProgram Z CPU PCB-Z PCB-A PCB-X Program Y OS Where are PCBs located? In the operating system CS 514 Operating Systems Intro_II/008
Deadlock Deadlock avoidance in I/O resource management What is “deadlock”? More than one process wait for resource for each other for forever Example Resources Printer HDD Assume that there are two processes Each of the two processes requires printer and HDD at the same time Without the printer and HDD, neither can finish its tasks Process A Process B Assigned wait (Circular-wait) CS 514 Operating Systems Intro_II/009
Concept of files and file descriptor Logical data storages in computer systems What is a file? What is “file descriptor”? Logical identification for each file being used in a computer system. HDD file OS user open read load use close CS 514 Operating Systems Intro_II/010
Concept of files and file descriptor (continued) ABXY File Names “A.txt” User HDD OS Location on disk Sectors Track Platters Open “A.txt” Find/Access Load File Descriptor Read (FD) Write (FD) Append (FD) File NamesSector Locations File Allocation Table A.txt 1E 23 CD CS 514 Operating Systems Intro_II/011
Concept of Special Files Ordinary File user OS HDD file Can not be seen by human user user OS HDD Special Files Keyboard printer Users can I/O to many devices as if they were a file Modem Internet Request Request (1) Response (4) Internet Request Network Special Files CS 514 Operating Systems Intro_II/012
Special Files A concept in OS where a user can handle many I/O devices using the same interface (APIs) that is used for actual files. When you open (reserve) a resource, OS gives you “descriptor” Some special files are read-only and some others may be write-only Read-OnlyRead/Write Write-Only - Disks - Keyboard - Printer - Network - Mouse - CRT Monitor (with touch-pen support) - CD-ROM - CRT Monitor CS 514 Operating Systems Intro_II/013
Operating System Structure Monolithic Structure Layered Structure VM (Virtual Machine) Micro-Kernel Windows uses these concepts This PPT presentation covers Section 1.7 of the textbook. CS 514 Operating Systems Intro_II/014
Monolithic Structure OS Operating systems are essentially a collection of procedures. Monolithic Structure OS No structure in a collection of procedures (Any procedure or a user application can call any other procedure) OS Procedures Disk I/O Process Mgmt.Memory Mgmt.Printer Spooler IPC KB I/O user Program Big mess But fast (no overhead) CS 514 Operating Systems Intro_II/015
How is a Monolithic-Structured OS implemented? OS Procedures Disk I/O Process Mgmt. Memory Mgmt. Printer Spooler IPC KB I/O Disk I/O Memory Mgmt. Process Mgmt. IPC KB I/O Printer Spooler Source code modules Concatenate into one source code file Compile OS Operating system as an executable program CS 514 Operating Systems Intro_II/016
“OS” in a broader definition How is a Monolithic-Structured OS implemented? OS Operating system as an executable program awk grep sort Disk I/O Memory Mgmt. Process Mgmt. IPC KB I/O Printer Spooler Program System calls External Commands user execute exec (); “OS Kernel” CS 514 Operating Systems Intro_II/017
Layered Structure Operating Systems “Layers”Layers of priorities User Programs I/O Management Process Communication Memory Management Process Management CS 514 Operating Systems Intro_II/018
Virtual Machine (VM) Without VM HardwareOperating System App1App N user OS 1 Virtual Machine SupportOS 2 OS 3 A virtual machine UNIX Windows 2000 Application programs Hardware With VM MS-DOS Extra layer on top of hardware CS 514 Operating Systems Intro_II/019
Hardware OS 1 Virtual Machine Support OS 2 OS 3 Hardware 1 OS 2 OS 3 OS 1 Hardware 2 Hardware 3 Concept of VM For each application program, it looks like they are being executed by the dedicated hardware CS 514 Operating Systems Intro_II/020
Without VM Memory Process X Process Y Process Z OS With VM Memory OS 1 OS 3 OS 2 Process X Process Y VMS VM 1 VM 2 VM 3 Process Manage Process Manage Process M Process N Process Manage Process A Process B Process Manage VM Manage Implementation of of VM CS 514 Operating Systems Intro_II/021
Win32 Virtual Machine Support MS-DOS Hardware Windows-9x VM All Win-32 applications are execute in Win-32 kernel Each MS-DOS application will be executed within its VM MS-DOS VM CS 514 Operating Systems Intro_II/022
Summary of Virtual Machine (VM) VM A virtual computer where computer hardware is software-emulated by VMS (Virtual Machine Support) Provide virtual dedicated machine (= hardware) to each OS Multiple operating systems (and its applications) at once (Q: What’s the difference from “multiple boot”?) - For flexibility - For robustness One VM crashes, others still survive (EG: Windows-NT) CS 514 Operating Systems Intro_II/023
“OS” in a broader definition OS awk grep sort Disk I/O Memory Mgmt. Process Mgmt. IPC KB I/O Printer Spooler External Commands “OS Kernel” Micro-Kernel Architecture CS 514 Operating Systems Intro_II/024
“OS” in a broader definition awk grep sort Disk I/O IPC KB I/O Memory Mgmt. Process Mgmt. Printer Spooler External Commands OS “OS Kernel” Micro-Kernel Architecture (continued) Memory Mgmt. Process Mgmt. Printer Spooler CS 514 Operating Systems Intro_II/025
Micro-Kernel Architecture (continued) Computer Hardware Operating System User Program User-Mode Kernel-Mode In ordinary OS (not Micro-Kernel OS), OS has to provide all the user services in Kernel-mode services OS kernel tends to be huge System Call OS Procedure (in the OS kernel) CS 514 Operating Systems Intro_II/026
Micro-Kernel Architecture (continued) Computer HardwareOperating System User Program User-Mode Kernel-Mode Spooler Micro-Kernel Architecture is based on Client-Server Model ClientServer Micro-kernel Architecture Make the OS kernel as small as possible Operating System becomes a service broker CS 514 Operating Systems Intro_II/027
Micro-Kernel Architecture (continued) What is it good for? MS Windows uses micro-kernel architecture for this reason (1) Each OS function becomes a module A bug in OS can be fixed by replacing a module (what we should do if “monolithic structure kernel”?) (2) Better robustness OS functions may be executed in user-mode (a bug in a module will not crash the kernel) CS 514 Operating Systems Intro_II/028