* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Multiprocessor Memory Allocation
Survey
Document related concepts
Transcript
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