Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Operating Systems CMPSCI 377 Lecture 3: OS Structures Lecture 4: Processes Emery Berger University of Massachusetts, Amherst UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science Last Time: OS & Computer Architecture Modern OS Functionality (brief review) Architecture Basics Hardware Support for OS Features UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 2 This Time: OS Structures & Processes Components OS Organizations (kernels) Processes UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 3 Components Process Synchronization Memory management File system Secondary storage I/O systems Distributed systems UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 4 Process Memory mgmt. File system Secondary storage I/O systems Distributed sys. Key Component:The Process OS manages variety of activities: User programs, batch jobs, command scripts Daemons: spoolers, name servers, file servers, etc. Each activity encapsulated in process: Context (PC, registers, address space, etc.) required for activity to run Process != program One program may comprise many processes Many processes may run same program UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 5 Process Memory mgmt. File system Secondary storage I/O systems Distributed sys. Processes OS manages & schedules processes Creation, deletion Resource allocation (e.g., CPU, memory) Suspension & resumption OS supports processes Inter-process communication Synchronization UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 6 Process Memory mgmt. File system Secondary storage I/O systems Distributed sys. Process Synchronization Example Banking transactions Cooperating processes operate on single account ATM transactions Balance computation Monthly interest calculation & addition All may access same account simultaneously What could happen? UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 7 Process Memory mgmt. File system Secondary storage I/O systems Distributed sys. Memory Management Main memory: Direct access storage for CPU Processes: must be in main memory to execute OS must: Maintain page tables (virtual/physical memory) Allocate & deallocate memory Decide how much memory each process gets Decide when to remove memory from process UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 8 Process Memory mgmt. File system Secondary storage I/O systems Distributed sys. File System Secondary storage devices (e.g., disks) Block-level: read, write to point on disk Too crude to use directly for long-term storage File system provides logical objects (files) & operations on these objects Long-term storage entity Named collection of persistent information Can be read or written to UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 9 Process Memory mgmt. File system Secondary storage I/O systems Distributed sys. File System Organization Supports hierarchical organization of files Maintains metadata about files: Files grouped in directories Date created Last modified date Controls access to files Who owns & can alter files Read-only, executable, etc. UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 10 Process Memory mgmt. File system Secondary storage I/O systems Distributed sys. File System Management Standard interface to: Create & delete files, directories Manipulate files & directories Read, write, extend, rename, copy, protect Map files into memory May provide other general services: Backups Quotas UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 11 Process Memory mgmt. File system Secondary storage I/O systems Distributed sys. Secondary Storage (Disks, etc.) Persistent memory Endures system failures Low-level OS routines handle disk functions: Scheduling disk operations Head movement Error handling May keep track of free space Sometimes these routines are in filesystem UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 12 Process Memory mgmt. File system Secondary storage I/O systems Distributed sys. I/O Systems Support communication with external devices: Support buffering & spooling of I/O Provide general device driver interface Terminal, keyboard, printer, mouse Hides differences between devices Often mimics file system interface Provide implementations of device drivers for specific devices UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 13 Process Memory mgmt. File system Secondary storage I/O systems Distributed sys. Distributed Systems Distributed system = collection of processors that do not share memory or clock Processes must communicate over network OS must deal with failures & deadlock Problems specific to distributed systems OS can support distributed file system Manages multiple independent storage devices All users, servers, storage devices may be dispersed UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 14 OS Structures & Processes Components OS Organizations (kernels) Processes UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 15 Monolithic Kernel Classic UNIX approach, Linux Everything in kernel + Fast - Risky UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 16 Layered OS Design “THE” operating system Dijkstra + Modular, simple, portable, easy to design/debug - Communication overhead, copying, bookkeeping UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 17 The Microkernel Approach Goal: Minimize contents of kernel Why? UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 18 Microkernel: Motivation Minimize contents of kernel: Reduces risk of crashing OS Put functionality in user-level processes Simplifies extension & customization First μ-kernel: Hydra (CMU) Current systems: Mach (also CMU), by Rick Rashid et al. (now head of Microsoft Research) UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 19 μ-kernels vs. Monolithic Kernels Past conventional wisdom: (1990’s) Today: much faster computers Mach – beautiful research idea but “failed” in practice Too slow! Linux – ugly, monolithic, but fast Mach: fast enough (Mac OS X) Reliability, simplicity, robustness now more important than performance UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 20 OS Structures & Processes Components OS Organizations (kernels) Processes UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 21 Processes Process Concept Process States Process Scheduling Process Management Interprocess Communication UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 22 Process Concept OS executes variety of programs: Process – program in execution Batch system – jobs Time-shared systems – user programs or tasks process execution sequential (kind of) Process includes: program counter stack data section UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 23 Process States New Process being created Running Instructions being executed Waiting Process waiting for some event to occur Ready Process waiting to be assigned to a processor Terminated (duh) UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 24 Process State Diagram Transitions: Program actions (system calls) OS actions (scheduling) External events (interrupts) UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 25 Process Execution Example void main() { printf (“Hello world\n”); } 1. 2. 3. 4. 5. 6. 7. New Ready Running Waiting for I/O Ready Running Terminated UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 26 Process Data Structures Process Control Block: Tracks state OS allocates, places on queue OS deallocates on termination Lots of info: Process state Program counter CPU registers CPU scheduling information Memory-management information Accounting information I/O status information UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 27 Process Scheduling Queues Job queue Ready queue Set of processes residing in main memory ready & waiting to execute Device queues Set of all processes in system Set of processes waiting for I/O device One per device Process migration between the various queues. UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 28 Process Queues Example UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 29 CPU Scheduling UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 30 Process Scheduling UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 31 PCBs and Hardware State Switching processes: context switch Relatively expensive Start: Time between switches (quantum) must be long enough to amortize this cost OS picks ready process Loads register values from PCB Stop: OS saves registers into PCB UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 32 Process Creation One process can create other processes Creator = parent, new processes = children Parent can wait for child to complete, or continue in parallel UNIX: fork() used to create child processes Copies variables & registers from parent to child Memory lazily copied (copy-on-write) Only difference between parent & child: return value Parent: returns process id of child Child: returns 0 UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 33 Process Creation Example Logging into UNIX creates shell process Every command typed into shell: Child of shell process (spawned by fork) Executes command via exec Example: Type “emacs” OS forks new process exec executes emacs If followed by “&”, runs in parallel; otherwise, waits until done UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 34 Example UNIX Program: Fork UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 35 Process Termination On termination, OS reclaims all resources assigned to process UNIX processes: Can terminate self via exit system call Can terminate child via kill system call UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 36 Example: Process Termination UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 37 Cooperating Processes Cooperating processes work together to accomplish a task Advantages: Can improve performance by overlapping activities or performing work in parallel Can enable simpler program design Simplifies distribution Processes can live on different machines UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 38 Interprocess Communication Processes communicate in one of two ways: Message passing: Send and receive information Numerous means: sockets, pipes, etc. Shared memory: Establish mapping to named memory object Use mmap Fork processes that share this structure UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 39 Process Summary Process = unit of execution Represented by Process Control Blocks Process state: New, Ready, Waiting, Running, or Terminated One running process at a time (on a uniprocessor) Contain process state, scheduling info, etc. Context switch when changing process executing on CPU Communicate by message passing or shared memory UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 40 The End UNIVERSITY OF MASSACHUSETTS, AMHERST • Department of Computer Science 41