Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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