Download Processes

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Plan 9 from Bell Labs wikipedia , lookup

CP/M wikipedia , lookup

Distributed operating system wikipedia , lookup

VS/9 wikipedia , lookup

Spring (operating system) wikipedia , lookup

Burroughs MCP wikipedia , lookup

Unix security wikipedia , lookup

DNIX wikipedia , lookup

Process management (computing) wikipedia , lookup

Transcript
• What is an Operating System?
• Various systems and their pros and cons
– E.g. multi-tasking vs. Batch
• OS definitions
– Resource allocator
– Control program
– Kernel
Abstract View of System Components
Important OS Features/services
•
•
•
•
•
•
•
•
Process Management (CPU scheduling)
Main Memory Management
File Management
I/O System Management
Secondary Management
Networking
Protection System
Command-Interpreter System
OS Control Structure
Memory Tables
Process Image
Memory
I/O Tables
I/O
File
File Tables
Processes
Primary Table
Process 1
Process 2
…
Process N
User data
User program
System stack
PCB
Process State Diagram
dispatch
admit
New
Ready
Running
time-out
activate
release
event
wait
Suspend
Blocked
suspend
Exit
• System call vs. System program
Dual mode operation & why ?
OS structure & Layered Approach
• The operating system is divided into a
number of layers (levels), each built on top
of lower layers. The bottom layer (layer
0), is the hardware; the highest (layer N) is
the user interface.
• With modularity, layers are selected such
that each uses functions (operations) and
services of only lower-level layers.
UNIX System Structure
Process Management
•
•
•
•
Process vs. Thread creation
Process scheduling
Process Termination
Unix process creation fork() & exec()
– Identify parent vs. child
• How to find out process infomation
Process Control Block (PCB)
Process vs. Thread creation
Multithreading Models
• Many-to-One
• One-to-One
• Many-to-Many
---------------------------------------------• Pthread, JAVA thread, Kernel vs. User
thread
CPU Switch From Process to
Process
Process Scheduling Queues
• Job queue – set of all processes in the
system.
• Ready queue – set of all processes
residing in main memory, ready and
waiting to execute.
• Device queues – set of processes waiting
for an I/O device.
• Process migration between the various
queues.
Representation of Process
Scheduling
Schedulers
• Long-term scheduler (or job scheduler) –
selects which processes should be
brought into the ready queue.
• Short-term scheduler (or CPU scheduler)
– selects which process should be
executed next and allocates CPU.
• Midterm scheduler
Addition of Medium Term
Scheduling
Context Switch
• When CPU switches to another process,
the system must save the state of the old
process and load the saved state for the
new process.
• Context-switch time is overhead; the
system does no useful work while
switching.
• Time dependent on hardware support.
Process scheduling
Process scheduling Concepts
• Maximum CPU utilization obtained with
multiprogramming
• CPU–I/O Burst Cycle – Process execution
consists of a cycle of CPU execution and
I/O wait.
• CPU burst distribution
• Pre-emptive and none-preemptive
Scheduling Criteria
• CPU utilization – keep the CPU as busy as possible
• Throughput – # of processes that complete their execution
per time unit
• Turnaround time – amount of time to execute a particular
process (finishing time – arrival time)
• Waiting time – amount of time a process has been waiting
in the ready queue
• Response time – amount of time it takes from when a
request was submitted until the first response is
produced, not output (for time-sharing environment)
Various scheduling algorithms
•
•
•
•
•
•
•
•
FCFS
SJF
SRTF
R-R with quantum
Priority
Multi-level Priority
--------------Pros and cons, different conditions (q time,
starvation prevention etc.)
• Example of process arrival rate
Process Communication
• IPC & Unix IPC
• Client-Server
– Raw socket
– High-level comm (e.g. RPC, RMI, CORBA etc)
– Pros & con on various mechanisms
Process Synchronization &
deadlocks
•
•
•
•
Critical Section
Semaphore & implementation (Unix)
Spin lock and sleep(wait) lock
Deadlock
– Mutex, hold-wait, no-preemption, circular-wait
– Identify deadlock from resource allocation
graph or code
Memory Management
•
•
•
•
•
•
•
•
Swapping
Contiguous Allocation
Paging
Segmentation
Segmentation with Paging
-------------------Pros and cons
Address translation
Pros & cons
• Paging vs Contiguous
• Hierarchical Paging vs. Hashed Page
Tables vs. Inverted Page Tables
Example of address translation
(segmetation)
Example of address translation
Virtual Memory
Virtual Memory
• Demand paging
• Demand segmentation
• Page fault and how to handle
• Page replacement
File Management
•
•
•
•
•
File structure
File Attributes (FCB)
directory
Access method
Access control
A Typical File Control Block
Virtual File System
Allocation Methods
• An allocation method refers to how disk
blocks are allocated for files:
• Contiguous allocation
• Linked allocation
• Indexed allocation
I/O system
• I/O Hardware
• Application I/O Interface
• Kernel I/O Subsystem
– Chracter vs. block
– Polling vs. interupt
User program & Kernel interface
Note: This picture is excerpted from Write a Linux Hardware Device Driver, Andrew O’Shauqhnessy, Unix world
Two I/O Methods
Synchronous
Pooling or
interrupt
Asynchronous
LKM
• What is it?
• Pros & cons (vs. recompile and patches)