Chapter 3: Processes Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013 Chapter 3: Processes 1/Process Concept 2/Process Scheduling )(الترتيب أو الجدولة 3/ Operations on Processes 4/ Interprocess Communication Operating System Concepts – 9th Edition 3.2 Silberschatz, Galvin and Gagne ©2013 Objectives To introduce the notion of a process -- a program in execution, which forms the basis of all computation To describe the various features of processes, including scheduling, creation, termination, and communication Operating System Concepts – 9th Edition 3.3 Silberschatz, Galvin and Gagne ©2013 1/Process Concept Program is a passive entity stored on disk (executable file)-ls, process is an active entity –ps/top .. An operating system executes a variety of active entities: Process – a program in execution; ps Task or Thread (Method in execution or part of process)top Job: (Batch file in execution or set of processes) jobs Program becomes process when executable file loaded into memory Execution of program started via GUI mouse clicks, command line-bash, entry of its name ./script01, etc One program can be several processes Consider multiple users executing the same program Runnig paint many times Operating System Concepts – 9th Edition 3.4 Silberschatz, Galvin and Gagne ©2013 1/Process Concept Process has multiple parts (has many parts) The program code, also called code section or code segment Current activity including program counter, processor registers Stack containing temporary data Function parameters, return addresses, local variables Data section or segment containing global variables or data Heap containing memory dynamically allocated during run time Operating System Concepts – 9th Edition 3.5 Silberschatz, Galvin and Gagne ©2013 1/Process States As a process executes, it changes state new: The process is being created(by a parent: look process tree ps axjf) running: Instructions are being executed waiting: The process is waiting for some event to occur The process is waiting for some event to occur (such as an I/O completion or reception of a signal). ready: The process is waiting to be assigned to a processor terminated: The process has finished execution Operating System Concepts – 9th Edition 3.6 Silberschatz, Galvin and Gagne ©2013 1/Process Control Block (PCB) Information associated with each process (also called task control block) Process state – running, waiting, etc Program counter – location(in memory) of instruction to next execute CPU registers – contents of all process- centric registers CPU scheduling information- priorities, scheduling queue pointers Memory-management information – memory allocated to the process Accounting information – CPU used, clock time elapsed since start, time limits I/O status information – I/O devices allocated to process, list of open files Operating System Concepts – 9th Edition 3.7 Silberschatz, Galvin and Gagne ©2013 1/CPU Switch From Process to Process 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 via a context switch Context of a process represented in the PCB Context-switch time is overhead( ;) كلفةthe system does no useful work while switching Time dependent on hardware support Some hardware provides multiple sets of registers per CPU multiple contexts loaded at once(Bank of register) Some other have only one set of registers using stack solution Operating System Concepts – 9th Edition 3.8 Silberschatz, Galvin and Gagne ©2013 1/Threads()األشرطة الحاسوبية Thread الخيط thread of execution سلسلة أو شريط التعليمات Threads األشرطة الحاسوبية/الخيوط So far, process has a single thread of execution Thread is a component of a process A process with two threads of execution, running on one processor Multiple threads can exist within one process, executing concurrently and sharing resources such as memory Consider having multiple program counters per process Must then have storage for thread details, multiple program counters in PCB A process with two threads of execution, running on 2 processors Operating System Concepts – 9th Edition 3.9 Silberschatz, Galvin and Gagne ©2013 2/Process Scheduling Maximize CPU use, quickly switch processes onto CPU for time sharing Process scheduler selects among available processes for next execution on CPU (premptive and non-premptive scheduler) Maintains scheduling queues of processes Job/process queue – set of all processes in the system(ps –e l) Ready queue – set of all processes residing in main memory, ready and waiting to execute(./loop3; ./myjob2&;top; i or ps r l) Device queues – set of processes waiting for an I/O device Processes migrate among the various queues Operating System Concepts – 9th Edition 3.10 Silberschatz, Galvin and Gagne ©2013 Ready Queue And Various I/O Device Queues @ of beginning of second PCB Operating System Concepts – 9th Edition 3.11 Silberschatz, Galvin and Gagne ©2013 Representation of Process Scheduling Queueing diagram represents queues, resources, flows ?3 ?1 ?2 several System call Operating System Concepts – 9th Edition 3.12 Silberschatz, Galvin and Gagne ©2013 Schedulers Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU Sometimes the only scheduler in a system (it is the main scheduler) Short-term scheduler is invoked frequently (milliseconds) (must be fast) Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue (from wait queue or Job pool) Long-term scheduler is invoked infrequently (seconds, minutes) (may be slow) The long-term scheduler controls the degree of multiprogramming Processes can be described as either: I/O-bound process – spends more time doing I/O than computations, many short CPU bursts(period) CPU-bound process – spends more time doing computations; few very long CPU bursts(period) Long-term scheduler strives(try to realize) for good process mix (more priority for I/O-bound process) Operating System Concepts – 9th Edition 3.13 Silberschatz, Galvin and Gagne ©2013 Addition of Medium Term Scheduling Medium-term scheduler (10 or 100ms) can be added if degree of multiple programming needs to decrease (total number of executed processes=Ps. In ready Q+Ps. In swap+Ps. In CPU) Remove process from memory, store on disk, bring back in from disk to continue execution: swapping Operating System Concepts – 9th Edition 3.14 Silberschatz, Galvin and Gagne ©2013 Multitasking in Mobile Systems(iOS) Some mobile systems (e.g., early version of iOS) allow only one process to run, others suspended Due to screen real estate, user interface limits iOS for a Single foreground process- controlled via user interface Multiple background processes– in memory, running, but not on the display, and with limits allowing a process to run in the background without being suspended but these processes are Limited to : running a single, finite-length task (such as completing a download of content from a network) receiving notification of events(such as a new email message); specific long-running tasks like audio playback Operating System Concepts – 9th Edition 3.15 Silberschatz, Galvin and Gagne ©2013 Multitasking in Mobile Systems(Android) Android does not place such constraints on the types of applications that can run in the background. If an application requires processing while in the background, the application must use a service Consider a streaming audio application: if the application moves to the background, The service continues to send audio files to the audio device driver on behalf of the background application. In fact, the service will continue to run even if the background application is suspended. Services do not have a user interface and have a small memory footprint, thus providing an efficient technique for multitasking in a mobile environment. Operating System Concepts – 9th Edition 3.16 Silberschatz, Galvin and Gagne ©2013 (1)Process Creation Parent process create children processes, which, in turn create other processes, forming a tree of processes Generally, process identified and managed via a process identifier (pid) Resource sharing options Parent and children share all resources Children share subset of parent’s resources Parent and child share no resources Execution options Parent and children execute concurrently Parent waits until children terminate Operating System Concepts – 9th Edition 3.19 Silberschatz, Galvin and Gagne ©2013 Process Creation (Cont.) fork(&) system call creates new process exec system call is used after a fork system call by one of the two processes to replace the process’s memory space with a new program The parent waits for the child process to complete When the child process completes the parent process resumes()يستأنف Operating System Concepts – 9th Edition 3.20 Silberschatz, Galvin and Gagne ©2013 Process Termination Process executes last statement(instruction) and then asks the operating system to delete it by using the exit() system call. Returns status data from child to parent (via wait()) Process’ resources are unallocated by operating system Parent may terminate the execution of children processes using the abort() system call. Some reasons for doing so: Child has exceeded allocated resources Task assigned to child is no longer required The parent is exiting and the operating systems does not allow a child to continue if its parent terminates Operating System Concepts – 9th Edition 3.21 Silberschatz, Galvin and Gagne ©2013 Interprocess Communication Processes within a system may be independent or cooperating Reasons for cooperating processes: Information sharing Computation speedup Cooperating processes need interprocess communication (IPC) Two models of IPC Shared memory Message passing(send; receive) Operating System Concepts – 9th Edition 3.23 Silberschatz, Galvin and Gagne ©2013 Communications Models (a) Message passing. Operating System Concepts – 9th Edition (b) shared memory. 3.24 Silberschatz, Galvin and Gagne ©2013 Interprocess Communication – Shared Memory An area of memory shared among the processes that wish to communicate The communication is under the control of the users processes not the operating system. Major issues is to provide mechanism that will allow the user processes to synchronize their actions when they access shared memory. Synchronization is discussed in great details in Chapter 4. Operating System Concepts – 9th Edition 3.25 Silberschatz, Galvin and Gagne ©2013 Interprocess Communication – Message Passing Mechanism for processes to communicate and to synchronize their actions Message system – processes communicate with each other without resorting to shared variables IPC facility provides two operations: send(message) receive(message) The message size is either fixed or variable Operating System Concepts – 9th Edition 3.26 Silberschatz, Galvin and Gagne ©2013 Message Passing (Cont.) If processes P and Q wish to communicate, they need to: Establish a communication link(pipe) between them Exchange messages via send/receive Distant processes(on network) Operating System Concepts – 9th Edition 3.27 Silberschatz, Galvin and Gagne ©2013 Synchronization (Cont.) Producer-consumer becomes trivial message next_produced; while (true) { /* produce an item in next produced */ send(next_produced); } message next_consumed; while (true) { receive(next_consumed); /* consume the item in next consumed */ } Operating System Concepts – 9th Edition 3.28 Silberschatz, Galvin and Gagne ©2013 End of Chapter 3 Operating System Concepts – 9th Edition Silberschatz, Galvin and Gagne ©2013