Upload
curtis-summers
View
215
Download
0
Embed Size (px)
Citation preview
04/20/23 1
Processes• ICS 240: Operating Systems
– William Albritton• Information and Computer Sciences
Department at Leeward Community College– 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
04/20/23 2
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
04/20/23 3
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• Program counter (instruction pointer – IP register)• Data section• Code section• Stack • Heap
04/20/2304/20/23 4
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
04/20/23 5
Process in Memory
04/20/23 6
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
04/20/23 7
Diagram of Process State
04/20/23 8
Process Control Block (PCB)
• Information associated with each process is stored in a process control block (PCB)
• Information includes1. 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.
04/20/23 9
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.
04/20/23 10
Process Control Block (PCB)
04/20/23 11
Process to Process CPU Switch
04/20/23 12
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
04/20/23 13
Ready Queue And Various I/O Device Queues
04/20/23 14
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
04/20/23 15
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)
• Long-term scheduler may only need to be invoked when a process leaves the system
04/20/23 16
Schedulers
• Processes can be described as either1. 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/O-
bound and CPU-bound processes
04/20/23 17
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
04/20/23 18
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
04/20/23 19
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
04/20/23 20
A tree of processes on a typical Solaris•The Solaris Operating System is a Unix-based operating system by Sun Microsystems
04/20/23 21
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
04/20/23 22
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
04/20/23 23
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
04/20/23 24
Interprocess CommunicationMessage Passing Shared Memory
04/20/23 25
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
04/20/23 26
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