410 likes | 426 Views
Explore the key components of operating systems - processes, memory management, file systems, secondary storage, I/O systems, and distributed systems. Learn about process synchronization, memory allocation, file organization, and more. Dive into different OS organizations like Monolithic Kernel, Layered OS Design, and Microkernel Approach.
E N D
Operating SystemsCMPSCI 377Lecture 3: OS StructuresLecture 4: Processes Emery Berger University of Massachusetts, Amherst
Last Time:OS & Computer Architecture • Modern OS Functionality (brief review) • Architecture Basics • Hardware Support for OS Features
This Time:OS Structures & Processes • Components • OS Organizations (kernels) • Processes
Components • Process • Synchronization • Memory management • File system • Secondary storage • I/O systems • Distributed systems
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
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
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?
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
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 logicalobjects (files) & operations on these objects • Long-term storage entity • Named collection of persistent information • Can be read or written to
Process Memory mgmt. File system Secondary storage I/O systems Distributed sys. File System Organization • Supports hierarchical organization of files • Files grouped in directories • Maintains metadata about files: • Date created • Last modified date • Controls access to files • Who owns & can alter files • Read-only, executable, etc.
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
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
Process Memory mgmt. File system Secondary storage I/O systems Distributed sys. I/O Systems • Support communication with external devices: • Terminal, keyboard, printer, mouse • Support buffering & spooling of I/O • Provide general device driver interface • Hides differences between devices • Often mimics file system interface • Provide implementations of device drivers for specific devices
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
OS Structures & Processes • Components • OS Organizations (kernels) • Processes
Monolithic Kernel • Classic UNIX approach, Linux • Everything in kernel • Fast • Risky
Layered OS Design • Modular, simple, portable, easy to design/debug • Communication overhead, copying, bookkeeping • “THE” operating system • Dijkstra
The Microkernel Approach • Goal:Minimize contents of kernel • Why?
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)
μ-kernels vs. Monolithic Kernels • Past conventional wisdom: (1990’s) • Mach – beautiful research idea but “failed” in practice • Too slow! • Linux – ugly, monolithic, but fast • Today: much faster computers • Mach: fast enough (Mac OS X) • Reliability, simplicity, robustness now more important than performance
OS Structures & Processes • Components • OS Organizations (kernels) • Processes
Processes • Process Concept • Process States • Process Scheduling • Process Management • Interprocess Communication
Process Concept • OS executes variety of programs: • Batch system – jobs • Time-shared systems – user programs or tasks • Process – program in execution • process execution sequential (kind of) • Process includes: • program counter • stack • data section
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)
Process State Diagram • Transitions: • Program actions (system calls) • OS actions (scheduling) • External events (interrupts)
Process Execution Example • New • Ready • Running • Waiting for I/O • Ready • Running • Terminated void main() { printf (“Hello world\n”);}
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
Process Scheduling Queues • Job queue • Set of all processes in system • Ready queue • Set of processes residing in main memory ready & waiting to execute • Device queues • Set of processes waiting for I/O device • One per device • Process migration between the various queues.
PCBs and Hardware State • Switching processes: context switch • Relatively expensive • Time between switches (quantum) must be long enough to amortize this cost • Start: • OS picks ready process • Loads register values from PCB • Stop: • OS saves registers into PCB
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
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
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
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
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
Process Summary • Process = unit of execution • Represented by Process Control Blocks • Contain process state, scheduling info, etc. • Process state: • New, Ready, Waiting, Running, or Terminated • One running process at a time (on a uniprocessor) • Context switch when changing process executing on CPU • Communicate by message passing or shared memory