1 / 64

Operating System Concepts

This chapter explains the concept of processes in operating systems, including process scheduling, operations on processes, cooperating processes, interprocess communication, and communication in client-server systems. It also provides exercises for practice.

darciea
Télécharger la présentation

Operating System Concepts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Operating System Concepts Ku-Yaw Chang canseco@mail.dyu.edu.tw Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh University

  2. Chapter 4 Processes • A process • A program in execution • A system consists of a collection of processes • OS processes • System code • User processes • User code • All processes are executed concurrently • Switching the CPU between processes • Make the computer more productive Chapter 4 Processes

  3. Chapter 4 Processes • Process Concept • Process Scheduling • Operations on Processes • Cooperating Processes • Interprocess Communication • Communication in Client-Server Systems • Summary • Exercises Chapter 4 Processes

  4. 4.1 Process Concept • An operating system executes a variety of programs • Batch system – jobs • Time-shared systems – user programs or tasks • All these activities are similar • Called processes • The terms job and process are used almost interchangeably Chapter 4 Processes

  5. A program in execution Consist of Text section Program code Data section Global variables An active entity A program is a passive entity Two processes may be associated with the same program Stack Temporary data Current activity Program counter Contents of registers 4.1.1 The Process Chapter 4 Processes

  6. 4.1.2 Process State • As a process executes, it changes state. • Each process may be in one of the following states • 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. • Only one process can be running on any processor at any instant. Chapter 4 Processes

  7. Diagram of process state Chapter 4 Processes

  8. 4.1.3 Process Control Block • Each process is presented by a process control block (PCB) – also called a task control block. • Process state • Program counter • The address of the next instruction to be executed • CPU registers • Very in number and type, depending on the computer architecture • Accumulators, index registers, stack pointer, general-purpose registers.. • CPU scheduling information • A process priority, pointers to scheduling queues… Chapter 4 Processes

  9. 4.1.3 Process Control Block • Memory-management information • Base and limit registers • Page or segment tables • Accounting information • The amount of CPU, real time used, time limits… • I/O status information • A list of I/O devices allocated to this process • A list of open files • Repository for any information that may vary from process to process • Context switch • Save/load the state of the old/new process Chapter 4 Processes

  10. Diagram showing CPUswitch from process to process Chapter 4 Processes

  11. Process control block (PCB) Chapter 4 Processes

  12. 4.1.4 Threads • A process is a program that performs a single thread of execution. • Could not simultaneously type in characters and run the spell checker within the same process • Extend the process concept to allow a process to have multiple threads of execution. Chapter 4 Processes

  13. Chapter 4 Processes • Process Concept • Process Scheduling • Operations on Processes • Cooperating Processes • Interprocess Communication • Communication in Client-Server Systems • Summary • Exercises Chapter 4 Processes

  14. 4.2 Process Scheduling • Multiprogramming • Have some process running at all times • To maximize CPU utilization • Time-sharing • Switch CPU among processes so frequently • Users can interact with each program while it is running Chapter 4 Processes

  15. 4.2.1 Scheduling 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. • Each device has its own device queue. • Other queues Chapter 4 Processes

  16. The ready queue andvarious I/O device queues Chapter 4 Processes

  17. Queueing-diagram representation of process scheduling Chapter 4 Processes

  18. 4.2.2 Schedulers • A process migrates between various scheduling queues throughout its lifetime. • Carried out by the appropriate scheduler • Long-term scheduler (or job scheduler) • select which processes should be brought into the ready queue (load into memory for execution) • Short-term scheduler (or CPU scheduler) • select which process should be executed next and allocate CPU Chapter 4 Processes

  19. 4.2.2 Schedulers • Primary distinction between these two schedulers • The frequency of their execution • Short-term executes frequently • Must be fast. • Long-term executes much less frequently • Control the degree of multiprogramming – the number of processes in memory • Afford to take more time to select a process Chapter 4 Processes

  20. 4.2.2 Schedulers • Processes can be described as • I/O-bound process • spend more time doing I/O than computations • CPU-bound process • spend more time doing computations • Best performance • A combination of CPU-bound and I/O-bound processes • Long-term scheduler Chapter 4 Processes

  21. 4.2.2 Schedulers • Long-term scheduler may be absent or minimal. • Put every process in memory for the short-term scheduler • Stability depends on • Physical limitation • Self-adjusting nature of human users Chapter 4 Processes

  22. 4.2.2 Schedulers • Medium-term scheduler • Remove processes from memory (swap out) • Reduce the degree of multiprogramming • Reintroduce the process and continue its execution (swap in) • Such a scheme is called swapping • May be necessary to • Improve the process mix • A change in memory requirement has overcommitted available memory Chapter 4 Processes

  23. 4.2.3 Context Switch • Context Switch • When CPU switches to another process, the system must • save the state of the old process • load the saved state for the new process. • Context-switch time • pure overhead • the system does no useful work while switching. • Highly depend on hardware support • Multiple sets of registers Chapter 4 Processes

  24. Chapter 4 Processes • Process Concept • Process Scheduling • Operations on Processes • Cooperating Processes • Interprocess Communication • Communication in Client-Server Systems • Summary • Exercises Chapter 4 Processes

  25. 4.3 Operations on Processes • Processes can execute concurrently • Be created and deleted dynamically • OS must provide a mechanism (or facility) for process creation and termination. Chapter 4 Processes

  26. 4.3.1 Process Creation • A process may create new processes • Create-process system call • The creating process is called a parent process, whereas the new processes are called the children of that process. • May form a tree of processes Chapter 4 Processes

  27. A tree of processes on a typical UNIX system Chapter 4 Processes

  28. 4.3.1 Process Creation • Resource sharing • Parent and children share all resources. • Children share subset of parent’s resources. • Parent and child share no resources. • Execution • Parent and children execute concurrently. • Parent waits until children terminate. • Address space • Child duplicate of parent. • Child has a program loaded into it. Chapter 4 Processes

  29. 4.3.1 Process Creation • UNIX examples • Each process is identified by its process identifier (PID) • A unique integer • fork system call creates new process • execlp system call used after a fork to replace the process’ memory space with a new program. Chapter 4 Processes

  30. 4.3.2 Process Termination • Process executes last statement and asks the operating system to delete it (use exit system call). • Output data from child to parent (via wait system call). • Process’ resources are deallocated by operating system. • Parent may terminate execution of children processes (abort system call). • Child has exceeded allocated resources. • Task assigned to child is no longer required. • Parent is exiting. • Operating system does not allow child to continue if its parent terminates. • Cascading termination Chapter 4 Processes

  31. Chapter 4 Processes • Process Concept • Process Scheduling • Operations on Processes • Cooperating Processes • Interprocess Communication • Communication in Client-Server Systems • Summary • Exercises Chapter 4 Processes

  32. 4.4 Cooperating Processes • Independent process • A process cannot affect or be affected by the execution of another process. • Cooperating process • A process can affect or be affected by the execution of another process • Advantages of process cooperation • Information sharing • Computation speed-up • Modularity • Convenience Chapter 4 Processes

  33. Producer-Consumer Problem • Paradigm for cooperating processes • A producer process produces information that is consumed by a consumer process. • The producer and consumer must be synchronized. • Categories • unbounded-buffer • no practical limit on the size of the buffer • bounded-buffer • a fixed buffer size • The buffer can be provided by • Interprocess-communication (IPC) facility • Shared memory Chapter 4 Processes

  34. Producer-Consumer Problem • Bounded-buffer • Shared-memory solution • Shared data #define BUFFER_SIZE 10 Typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; Chapter 4 Processes

  35. Producer-Consumer Problem • The share buffer is a circular array with two logical pointers • in : the next free position in the buffer • out : the first full position in the buffer • Empty buffer • in == out • Full buffer • ( (in+1) % BUFFER_SIZE) == out • At most BUFFER_SIZE – 1 items Chapter 4 Processes

  36. Producer Process item nextProduced; while (1) { while (((in + 1) % BUFFER_SIZE) == out) ; /* do nothing */ buffer[in] = nextProduced; in = (in + 1) % BUFFER_SIZE; } Chapter 4 Processes

  37. Consumer Process item nextConsumed; while (1) { while (in == out) ; /* do nothing */ nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; } Chapter 4 Processes

  38. Chapter 4 Processes • Process Concept • Process Scheduling • Operations on Processes • Cooperating Processes • Interprocess Communication • Communication in Client-Server Systems • Summary • Exercises Chapter 4 Processes

  39. 4.5 Interprocess Communication • IPC provides a mechanism to allow processes to communicate and to synchronize their actions without sharing the same address space. • Particularly useful in a distributed environment • Best provided by a message-passing system Chapter 4 Processes

  40. 4.5.1 Message-Passing System • An IPC facility provides at least two operations • send(message) • receive(message) • Messages could be • Fixed size • Straightforward system-level implementation • More difficult programming • Variable size • More complex system-level implementation • Simpler programming Chapter 4 Processes

  41. 4.5.1 Message-Passing System • If P and Q wish to communicate, they need to: • establish a communication link between them • exchange messages via send/receive • Implementation of communication link • physical (e.g., shared memory, hardware bus) • logical (e.g., logical properties) Chapter 4 Processes

  42. Methods for logical implementation • Direct or indirect communication • Symmetric or asymmetric communication • Automatic or explicit buffering • Send by copy or send by reference • Fixed-sized or variable-sized messages Chapter 4 Processes

  43. 4.5.2 Naming • Direct communication • Explicitly name the recipient or sender of the communication • send (P, message) – send a message to process P • receive(Q, message) – receive a message from process Q • Properties • A link is established automatically between every pair of processes that want to communicate. • Know each other’s identity • A link is associated with exactly two processes. • Exactly one link exists between each pair of processes. Chapter 4 Processes

  44. 4.5.2 Naming • Symmetry in addressing • Both the sender and the receiver must name the other to communicate • Asymmetry in addressing • Only the sender name the recipient • The recipient is not required to name the sender • send (P, message) – send a message to process P • receive(id, message) – receive a message from any process • id is set to the name of the process with which communication has taken place • Disadvantage in both schemes • Limited modularity Chapter 4 Processes

  45. 4.5.2 Naming • Indirect communication • Messages are sent to and received from mailboxes or ports. • Each mailbox has a unique identification • send and receive primitives • send (A, message) – send a message to mailbox A • receive(A, message) – receive a message from mailbox A • Properties • A link is established only if processes have a shared mailbox • A link may be associated with more than two processes. • Each pair of processes may share several communication links. Chapter 4 Processes

  46. 4.5.2 Naming • A mailbox is owned by • A process • the owner and the user • The operating system • Not attached to any particular process • Provide a mechanism that allows a process to • Create a new mailbox • Send and receive messages through the mailbox • Delete a mailbox Chapter 4 Processes

  47. 4.5.3 Synchronization • Message passing may be either blocking (synchronous) or nonblocking (asynchronous) • Blocking send • The sending process is blocked until the message is received. • Nonblocking send • The sending process sends the message and resumes operation. • Blocking receive • The receiver blocks until a message is available. • Nonblocking receive • The receive retrieve either a valid message or a null. • A rendezvous • Both the send and receive are blocking Chapter 4 Processes

  48. 4.5.4 Buffering • Messages exchanged by communicating processes reside in a temporary queue. • Zero capacity • Maximum length is 0 • The sender must block until the recipient receives the message. • Bounded capacity • A finite length n • The sender must block until the space is available in the queue. • Unbounded capacity • An infinite length • The sender never blocks. Chapter 4 Processes

  49. Chapter 4 Processes • Process Concept • Process Scheduling • Operations on Processes • Cooperating Processes • Interprocess Communication • Communication in Client-Server Systems • Summary • Exercises Chapter 4 Processes

  50. 4.6.1 Sockets • A socket • An endpoint for communication • Identified by an IP address concatenated with a port number • The socket 161.25.19.8:1625 refers to port 1625 on host 161.25.19.8 • Client-server • The server waits for incoming client requests by listening to a specific port • Port 23: telnet • Port 21: ftp • Port 80: http • All ports below 1024 are considered well known. Chapter 4 Processes

More Related