Title: Emery Berger
1Operating SystemsCMPSCI 377Lecture 3 OS
StructuresLecture 4 Processes
- Emery Berger
- University of Massachusetts, Amherst
2Last TimeOS Computer Architecture
- Modern OS Functionality (brief review)
- Architecture Basics
- Hardware Support for OS Features
3This TimeOS Structures Processes
- Components
- OS Organizations (kernels)
- Processes
4Components
- Process
- Synchronization
- Memory management
- File system
- Secondary storage
- I/O systems
- Distributed systems
5Key Component The Process
Process Memory mgmt. File system Secondary
storage I/O systems Distributed sys.
- 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
6Processes
Process Memory mgmt. File system Secondary
storage I/O systems Distributed sys.
- OS manages schedules processes
- Creation, deletion
- Resource allocation (e.g., CPU, memory)
- Suspension resumption
- OS supports processes
- Inter-process communication
- Synchronization
7Process Synchronization Example
Process Memory mgmt. File system Secondary
storage I/O systems Distributed sys.
- 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?
8Memory Management
Process Memory mgmt. File system Secondary
storage I/O systems Distributed sys.
- 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
9File System
Process Memory mgmt. File system Secondary
storage I/O systems Distributed sys.
- 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
10File System Organization
Process Memory mgmt. File system Secondary
storage I/O systems Distributed sys.
- 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.
11File System Management
Process Memory mgmt. File system Secondary
storage I/O systems Distributed sys.
- 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
12Secondary Storage (Disks, etc.)
Process Memory mgmt. File system Secondary
storage I/O systems Distributed sys.
- 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
13I/O Systems
Process Memory mgmt. File system Secondary
storage I/O systems Distributed sys.
- 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
14Distributed Systems
Process Memory mgmt. File system Secondary
storage I/O systems Distributed sys.
- 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
15OS Structures Processes
- Components
- OS Organizations (kernels)
- Processes
16Monolithic Kernel
- Classic UNIX approach, Linux
- Everything in kernel
- Fast
- Risky
17Layered OS Design
- THE operating system
- Dijkstra
- Modular, simple, portable, easy to design/debug
- Communication overhead, copying, bookkeeping
18The Microkernel Approach
- GoalMinimize contents of kernel
- Why?
19Microkernel 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)
20µ-kernels vs. Monolithic Kernels
- Past conventional wisdom (1990s)
- 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
21OS Structures Processes
- Components
- OS Organizations (kernels)
- Processes
22Processes
- Process Concept
- Process States
- Process Scheduling
- Process Management
- Interprocess Communication
23Process 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
24Process 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)
25Process State Diagram
- Transitions
- Program actions (system calls)
- OS actions (scheduling)
- External events (interrupts)
26Process Execution Example
- New
- Ready
- Running
- Waiting for I/O
- Ready
- Running
- Terminated
- void main() printf (Hello world\n)
27Process 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
28Process 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.
29Process Queues Example
30CPU Scheduling
31Process Scheduling
32PCBs 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
33Process 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
34Process 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 parallelotherwise,
waits until done
35Example UNIX Program Fork
36Process 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
37Example Process Termination
38Cooperating 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
39Interprocess 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
40Process 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
41The End