Processes ICS 240 Operating Systems William Albritton Information
Processes • ICS 240: Operating Systems – William Albritton • Information and Computer Sciences Department at Leeward Community College – – 1/21/2022 Original slides by Silberschatz, Galvin, and Gagne © 2007 from Operating System Concepts with Java, 7 th 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 1/21/2022 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 • • • 1/21/2022 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 1/21/2022 4
Process in Memory 1/21/2022 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 1/21/2022 6
Diagram of Process State 1/21/2022 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. 1/21/2022 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. 1/21/2022 9
Process Control Block (PCB) 1/21/2022 10
Process to Process CPU Switch 1/21/2022 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 1/21/2022 12
Ready Queue And Various I/O Device Queues 1/21/2022 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 1/21/2022 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) 1/21/2022 • 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 1/21/2022 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 1/21/2022 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 1/21/2022 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 1/21/2022 19
A tree of processes on a typical Solaris • The Solaris Operating System is a Unix-based operating system by Sun Microsystems 1/21/2022 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 1/21/2022 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 1/21/2022 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 1/21/2022 23
Interprocess Communication Message Passing 1/21/2022 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 1/21/2022 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 1/21/2022 26
- Slides: 26