Download Lecture - University of Hawaii

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

Distributed operating system wikipedia , lookup

DNIX wikipedia , lookup

Burroughs MCP wikipedia , lookup

Process management (computing) wikipedia , lookup

Transcript
Processes
• ICS 240: Operating Systems
– William Albritton
•
Information and Computer Sciences
Department at Leeward Community College
–
–
5/23/2017
Original slides by Silberschatz, Galvin, and Gagne
©2007 from Operating System Concepts with Java,
7th Edition with some modifications
Also includes material by Dr. Susan Vrbsky from the
Computer Science Department at the University of
Alabama
1
Process Concept
• The main components of a process include
– Program counter (instruction pointer – IP register)
• Contains the address of the next instruction in the program
• Also has other data in the CPU’s registers
– Data section
• Global data (static variables in Java)
– Code section
• All the code in a program
– Stack (runtime stack)
• Temporary data for method calls such as parameters, return
address, local variables, and return value
– Heap
• Dynamically allocated memory for a running process
• The data for Java objects is stored here
5/23/2017
2
Process Concept
• A process is a program in execution
– Textbook uses the terms job and process almost
interchangeably
– The main components of a process include
•
•
•
•
•
5/23/2017
Program counter (instruction pointer – IP register)
Data section
Code section
Stack
Heap
3
Process Management
• A process is a program in execution.
– It is a unit of work within the system.
• A program is a passive entity, process is an
active entity.
• Process needs resources to accomplish its
task
– CPU, memory, I/O, files
• Process termination requires reclaim of any
reusable resources
5/23/2017
4
Process in Memory
5/23/2017
5
Process State
• As a process executes, it changes state
– new: The process is being created
– running: Instructions are being executed
– waiting: The process is waiting for some event to
occur
– ready: The process is waiting to be assigned to a
processor
– terminated: The process has finished execution
5/23/2017
6
Diagram of Process State
5/23/2017
7
Process Control Block (PCB)
• Information associated with each process is
stored in a process control block (PCB)
• Information includes
1. Process state
• New, ready, running, waiting, etc.
2. Program counter
• Register containing the address of the next instruction
3. CPU registers
• Different registers contain sums, index to array
elements, runtime stack addresses, etc.
5/23/2017
8
Process Control Block (PCB)
• Information includes
4. CPU scheduling information
• Such information as process priority, addresses to
scheduling queues (lines), etc.
5. Memory-management information
• Information about where the data is stored
6. Accounting information
• Time limits, account numbers, process numbers, etc.
7. I/O status information
• List of I/O devices, open files, etc.
5/23/2017
9
Process Control Block (PCB)
5/23/2017
10
Process to Process CPU Switch
5/23/2017
11
Process Scheduling Queues
• Processes migrate among the various 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
• Note that queue is a fancy word for line
– As in a line (queue) of people waiting to buy
movie tickets
5/23/2017
12
Ready Queue And Various I/O Device Queues
5/23/2017
13
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 the CPU to one of them
• Medium-term scheduler
– remove process from memory to disk and later
returns the process back to memory (swapping)
• helps to free up memory
5/23/2017
14
Schedulers
• Short-term scheduler is invoked very
frequently
– In milliseconds, because must be fast
• Long-term scheduler is invoked very
infrequently
– In seconds, or minutes, because may be slow
– The long-term scheduler controls the degree of
multiprogramming (number of processes in
memory)
5/23/2017
• Long-term scheduler may only need to be invoked
when a process leaves the system
15
Schedulers
• Processes can be described as either
1. I/O-bound process
• Spends more time doing I/O than computations, many
short CPU bursts
2. CPU-bound process
• spends more time doing computations; few very long
CPU bursts
• Long-term scheduler balances the system
– By selecting a good process mix of both I/Obound and CPU-bound processes
5/23/2017
16
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 pure overhead
• the system does no useful work while switching
– Time dependent on hardware support
5/23/2017
17
PID
• On the UNIX & Windows operating systems,
each process is assigned a unique number
– Called a process identifier (PID)
• UNIX command to list user processes
– ps
• UNIX command to list all processes
– ps -el
– To view the processes on the Windows, press the
three keys ctrl-alt-delete
• Then press Task Manager
5/23/2017
18
Process Creation
• Parent process create children processes,
which, in turn create other processes, forming a
tree of processes
• Three possibilities for Resource sharing
– Parent and children share all resources
– Children share subset of parent’s resources
– Parent and child share no resources
5/23/2017
19
A tree of processes on a typical Solaris
•The Solaris Operating System is a Unix-based
operating system by Sun Microsystems
5/23/2017
20
Process Creation (Cont.)
• Two possibilities for execution
– Parent and children execute concurrently
– Parent waits until children terminate
• Two possibilities for address space
– Child duplicate of parent
– Child has a program loaded into it
5/23/2017
21
Process Termination
• Process executes last statement and asks the
operating system to delete it (exit)
– Status value returned to parent process
– Process resources are deallocated by OS
• Parent may terminate execution of children
processes (abort)
– Child has exceeded allocated resources
– Task assigned to child is no longer required
– If parent is exiting
• Some operating system do not allow child to continue if
its parent terminates
– All children terminated - cascading termination
5/23/2017
22
Interprocess Communication
• Mechanisms to allow processes to
communicate
1. shared memory
• two processes read & write to the shared region
2. message passing
• two processes exchange data with messages
5/23/2017
23
Interprocess Communication
Message Passing
5/23/2017
Shared Memory
24
Shared Memory
• Producer-Consumer Problem
– Paradigm for cooperating processes, producer
process produces information that is consumed
by a consumer process
– For example, a web server produces HTML files
& images, which a web browser consumes
• unbounded-buffer places no practical limit on the size
of the buffer
• bounded-buffer assumes that there is a fixed buffer
size
5/23/2017
25
Message Passing
• Processes communicate with each other without
resorting to shared variables
• Message passing facility provides two operations:
– send(message) – message size can be fixed or variable
– receive(message)
• If P and Q wish to communicate, they need to:
– establish a communication link between them
– exchange messages via send/receive
• For example, a chat program on the Internet
communicates by exchanging messages
5/23/2017
26