Multiprocessor Memory Allocation
Download
Report
Transcript Multiprocessor Memory Allocation
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