* 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