Chapter 3 Processes Operating System Concepts 8 th

  • Slides: 33
Download presentation
Chapter 3: Processes Operating System Concepts – 8 th Edition, Silberschatz, Galvin and Gagne

Chapter 3: Processes Operating System Concepts – 8 th Edition, Silberschatz, Galvin and Gagne © 2009

Chapter 3: Processes n Process Concept n Process Scheduling n Operations on Processes n

Chapter 3: Processes n Process Concept n Process Scheduling n Operations on Processes n Interprocess Communication n Examples of IPC Systems n Communication in Client-Server Systems Operating System Concepts – 8 th Edition 3. 2 Silberschatz, Galvin and Gagne © 2009

Process Concept n An operating system executes a variety of programs: Batch system –

Process Concept n An operating system executes a variety of programs: Batch system – jobs l Time-shared systems – user programs or tasks n Textbook uses the terms job and process almost interchangeably n Process – a program in execution; process execution must progress in sequential fashion n A process includes: l program counter l stack l data section l Operating System Concepts – 8 th Edition 3. 3 Silberschatz, Galvin and Gagne © 2009

Process in Memory Operating System Concepts – 8 th Edition 3. 4 Silberschatz, Galvin

Process in Memory Operating System Concepts – 8 th Edition 3. 4 Silberschatz, Galvin and Gagne © 2009

Process State n As a process executes, it changes state l new: The process

Process State n As a process executes, it changes state l new: The process is being created l running: Instructions are being executed l waiting: The process is waiting for some event to occur l ready: The process is waiting to be assigned to a processor l terminated: The process has finished execution Operating System Concepts – 8 th Edition 3. 5 Silberschatz, Galvin and Gagne © 2009

Diagram of Process State Operating System Concepts – 8 th Edition 3. 6 Silberschatz,

Diagram of Process State Operating System Concepts – 8 th Edition 3. 6 Silberschatz, Galvin and Gagne © 2009

Process Control Block (PCB) Information associated with each process n Process state n Program

Process Control Block (PCB) Information associated with each process n Process state n Program counter n CPU registers n CPU scheduling information n Memory-management information n Accounting information n I/O status information Operating System Concepts – 8 th Edition 3. 7 Silberschatz, Galvin and Gagne © 2009

Process Scheduling Queues n Job queue – set of all processes in the system

Process Scheduling Queues n Job queue – set of all processes in the system n Ready queue – set of all processes residing in main memory, ready and waiting to execute n Device queues – set of processes waiting for an I/O device n Processes migrate among the various queues Operating System Concepts – 8 th Edition 3. 8 Silberschatz, Galvin and Gagne © 2009

Ready Queue And Various I/O Device Queues Operating System Concepts – 8 th Edition

Ready Queue And Various I/O Device Queues Operating System Concepts – 8 th Edition 3. 9 Silberschatz, Galvin and Gagne © 2009

Representation of Process Scheduling Operating System Concepts – 8 th Edition 3. 10 Silberschatz,

Representation of Process Scheduling Operating System Concepts – 8 th Edition 3. 10 Silberschatz, Galvin and Gagne © 2009

Schedulers n Long-term scheduler (or job scheduler) – selects which processes should be brought

Schedulers n Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue n Short-term scheduler (or CPU scheduler) – selects which process should be executed next and allocates CPU Operating System Concepts – 8 th Edition 3. 11 Silberschatz, Galvin and Gagne © 2009

Schedulers (Cont) n Short-term scheduler is invoked very frequently (milliseconds) (must be fast) n

Schedulers (Cont) n Short-term scheduler is invoked very frequently (milliseconds) (must be fast) n Long-term scheduler is invoked very infrequently (seconds, minutes) (may be slow) n The long-term scheduler controls the degree of multiprogramming n Processes can be described as either: l I/O-bound process – spends more time doing I/O than computations, many short CPU bursts l CPU-bound process – spends more time doing computations; few very long CPU bursts Operating System Concepts – 8 th Edition 3. 12 Silberschatz, Galvin and Gagne © 2009

Addition of Medium Term Scheduling Operating System Concepts – 8 th Edition 3. 13

Addition of Medium Term Scheduling Operating System Concepts – 8 th Edition 3. 13 Silberschatz, Galvin and Gagne © 2009

Context Switch n When CPU switches to another process, the system must save the

Context Switch n 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 n Context of a process represented in the PCB n Context-switch time is overhead; the system does no useful work while switching n Time dependent on hardware support Operating System Concepts – 8 th Edition 3. 14 Silberschatz, Galvin and Gagne © 2009

Process Creation n Parent process create children processes, which, in turn create other processes,

Process Creation n Parent process create children processes, which, in turn create other processes, forming a tree of processes n Generally, process identified and managed via a process identifier (pid) n Resource sharing l Parent and children share all resources l Children share subset of parent’s resources l Parent and child share no resources n Execution l Parent and children execute concurrently l Parent waits until children terminate Operating System Concepts – 8 th Edition 3. 15 Silberschatz, Galvin and Gagne © 2009

Process Creation (Cont) n Address space l Child duplicate of parent l Child has

Process Creation (Cont) n Address space l Child duplicate of parent l Child has a program loaded into it n UNIX examples l fork system call creates new process l exec system call used after a fork to replace the process’ memory space with a new program Operating System Concepts – 8 th Edition 3. 16 Silberschatz, Galvin and Gagne © 2009

C Program Forking Separate Process int main() { pid_t pid; /* fork another process

C Program Forking Separate Process int main() { pid_t pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1); } else if (pid == 0) { /* child process */ execlp("/bin/ls", "ls", NULL); } else { /* parent process */ /* parent will wait for the child to complete */ wait (NULL); printf ("Child Complete"); exit(0); } } Operating System Concepts – 8 th Edition 3. 17 Silberschatz, Galvin and Gagne © 2009

Process Termination n Process executes last statement and asks the operating system to delete

Process Termination n Process executes last statement and asks the operating system to delete it (exit) l Output data from child to parent (via wait) l Process’ resources are deallocated by operating system n Parent may terminate execution of children processes (abort) l Child has exceeded allocated resources l Task assigned to child is no longer required l If parent is exiting 4 Some operating system do not allow child to continue if its parent terminates – All children terminated - cascading termination Operating System Concepts – 8 th Edition 3. 18 Silberschatz, Galvin and Gagne © 2009

Interprocess Communication n Processes within a system may be independent or cooperating n Cooperating

Interprocess Communication n Processes within a system may be independent or cooperating n Cooperating process can affect or be affected by other processes, including sharing data n Reasons for cooperating processes: l Information sharing l Computation speedup l Modularity l Convenience n Cooperating processes need interprocess communication (IPC) n Two models of IPC l Shared memory l Message passing Operating System Concepts – 8 th Edition 3. 19 Silberschatz, Galvin and Gagne © 2009

Communications Models Operating System Concepts – 8 th Edition 3. 20 Silberschatz, Galvin and

Communications Models Operating System Concepts – 8 th Edition 3. 20 Silberschatz, Galvin and Gagne © 2009

Single and Multithreaded Processes Operating System Concepts – 8 th Edition 3. 21 Silberschatz,

Single and Multithreaded Processes Operating System Concepts – 8 th Edition 3. 21 Silberschatz, Galvin and Gagne © 2009

Benefits n Responsiveness n Resource Sharing n Economy n Scalability Operating System Concepts –

Benefits n Responsiveness n Resource Sharing n Economy n Scalability Operating System Concepts – 8 th Edition 3. 22 Silberschatz, Galvin and Gagne © 2009

Multicore Programming n Multicore systems putting pressure on programmers, challenges include l Dividing activities

Multicore Programming n Multicore systems putting pressure on programmers, challenges include l Dividing activities l Balance l Data splitting l Data dependency l Testing and debugging Operating System Concepts – 8 th Edition 3. 23 Silberschatz, Galvin and Gagne © 2009

Thread Libraries n Thread library provides programmer with API for creating and managing threads

Thread Libraries n Thread library provides programmer with API for creating and managing threads n Two primary ways of implementing l Library entirely in user space l Kernel-level library supported by the OS Operating System Concepts – 8 th Edition 3. 24 Silberschatz, Galvin and Gagne © 2009

User Threads n Thread management done by user-level threads library n Three primary thread

User Threads n Thread management done by user-level threads library n Three primary thread libraries: l POSIX Pthreads l Win 32 threads l Java threads Operating System Concepts – 8 th Edition 3. 25 Silberschatz, Galvin and Gagne © 2009

Pthreads n May be provided either as user-level or kernel-level n A POSIX standard

Pthreads n May be provided either as user-level or kernel-level n A POSIX standard (IEEE 1003. 1 c) API for thread creation and synchronization n API specifies behavior of the thread library, implementation is up to development of the library n Common in UNIX operating systems (Solaris, Linux, Mac OS X) Operating System Concepts – 8 th Edition 3. 26 Silberschatz, Galvin and Gagne © 2009

Java Threads n Java threads are managed by the JVM n Typically implemented using

Java Threads n Java threads are managed by the JVM n Typically implemented using the threads model provided by underlying OS n Java threads may be created by: l Extending Thread class l Implementing the Runnable interface Operating System Concepts – 8 th Edition 3. 27 Silberschatz, Galvin and Gagne © 2009

Threading Issues n Semantics of fork() and exec() system calls n Thread cancellation of

Threading Issues n Semantics of fork() and exec() system calls n Thread cancellation of target thread l Asynchronous or deferred n Signal handling n Thread pools n Thread-specific data n Scheduler activations Operating System Concepts – 8 th Edition 3. 28 Silberschatz, Galvin and Gagne © 2009

Semantics of fork() and exec() n Does fork() duplicate only the calling thread or

Semantics of fork() and exec() n Does fork() duplicate only the calling thread or all threads? Operating System Concepts – 8 th Edition 3. 29 Silberschatz, Galvin and Gagne © 2009

Signal Handling n Signals are used in UNIX systems to notify a process that

Signal Handling n Signals are used in UNIX systems to notify a process that a particular event has occurred n A signal handler is used to process signals n 1. Signal is generated by particular event 2. Signal is delivered to a process 3. Signal is handled Options: l Deliver the signal to the thread to which the signal applies l Deliver the signal to every thread in the process l Deliver the signal to certain threads in the process l Assign a specific threa to receive all signals for the process Operating System Concepts – 8 th Edition 3. 30 Silberschatz, Galvin and Gagne © 2009

Thread Pools n Create a number of threads in a pool where they await

Thread Pools n Create a number of threads in a pool where they await work n Advantages: l Usually slightly faster to service a request with an existing thread than create a new thread l Allows the number of threads in the application(s) to be bound to the size of the pool Operating System Concepts – 8 th Edition 3. 31 Silberschatz, Galvin and Gagne © 2009

Linux Threads n Linux refers to them as tasks rather than threads n Thread

Linux Threads n Linux refers to them as tasks rather than threads n Thread creation is done through clone() system call n clone() allows a child task to share the address space of the parent task (process) Operating System Concepts – 8 th Edition 3. 32 Silberschatz, Galvin and Gagne © 2009

Linux Threads Operating System Concepts – 8 th Edition 3. 33 Silberschatz, Galvin and

Linux Threads Operating System Concepts – 8 th Edition 3. 33 Silberschatz, Galvin and Gagne © 2009