1 / 59

CSC 4320/6320 Operating Systems Lecture 3 Process Management

CSC 4320/6320 Operating Systems Lecture 3 Process Management. Saurav Karmakar. Chapter 3: Processes. Process Concept Process Scheduling Operations on Processes Interprocess Communication Examples of IPC Systems Communication in Client-Server Systems. Objectives.

cchance
Download Presentation

CSC 4320/6320 Operating Systems Lecture 3 Process Management

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. CSC 4320/6320Operating SystemsLecture 3Process Management Saurav Karmakar

  2. Chapter 3: Processes • Process Concept • Process Scheduling • Operations on Processes • Interprocess Communication • Examples of IPC Systems • Communication in Client-Server Systems

  3. 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 and termination, and communication • To describe communication in client-server systems

  4. Process Concept • An operating system executes a variety of programs: • Batch system – jobs • Time-shared systems – user programs or tasks • Program – file containing list of instructions (Passive Entity) • Process – a program in execution (Active Entity) • Program becomes process when it is loaded into memory. • Process execution must progress in sequential fashion.

  5. Process Concept • A process includes: • Value of program counter • Contents of the processor’s register • Temporary data on the process stack • Data section • May include a heap • Multiple processes associated from a same program are considered separate execution sequences.

  6. Process in Memory

  7. Process State • As a process executes, it changes state. • It 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 • Point to note : • One process can be running on any processor at any instant, While many processes may be ready or waiting

  8. Diagram of Process State

  9. Process Control Block (PCB) Information associated with each process – Contents of PCB • Process state • Program counter • CPU registers • CPU scheduling information • Memory-management information • Accounting information • I/O status information Process Table

  10. Process Control Block (PCB)

  11. CPU Switch From Process to Process

  12. Process 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 • These queues are generally stored as linked lists. • Processes migrate among these various scheduling queues

  13. Ready Queue And Various I/O Device Queues

  14. Process Scheduling (Contd…) • An executing process  I/O RequestI/O Queue  Create a new sub-process  Wait for sub-process termination  Interrupt  Back to ready queue • A process continues this cycle until terminates. • At termination a process is removed from all the queues and it’s PCB and resources are deallocated.

  15. Representation of Process Scheduling :Queueing Diagram

  16. Schedulers • Scheduler selects a processes from these queues for scheduling purpose. • 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 CPU • Short-term scheduler should be fast for short time between executions • Short-term scheduler is invoked very frequently (milliseconds)  (must be fast) • Long-term scheduler is invoked very infrequently (seconds, minutes)  (may be slow)

  17. Schedulers (Cont) • The long-term scheduler controls the degree of multiprogramming • Stable degree of multiprogramming : the avg. process creation rate equals to the avg. departure rate. • As long term scheduler has more decision time, so it should make a careful choice. • Processes can be described as either: • I/O-bound process– spends more time doing I/O than computations, many short CPU bursts • CPU-bound process– spends more time doing computations; few very long CPU bursts • Long-term scheduler should select a good process mix of both kinds.

  18. Addition of Medium Term Scheduling • Some OS introduces medium-term scheduler, whose job is to reduce overhead of the CPU by sometime removing job from them and later reintroducing them back to ready queue. • This scheme is known as Swapping. • Swapping improves process mixing sometime.

  19. Context Switch • When CPU switches to another process, the system must save the state(context) 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

  20. Process Creation • Parentprocess create childrenprocesses, which, in turn create other processes, forming a tree of processes • Generally, process identified and managed via a process identifier (pid)

  21. A tree of processes on a typical Solaris

  22. 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

  23. Process Creation (Cont) • Address space • Child duplicates the parent’s address space • Child has a new program loaded into it • UNIX example : • fork() system call creates new process • exec() system call used after a fork to replace the process’ memory space with a new program • wait() system call move the parent process off to the ready queue until child process terminates.

  24. Process Creation

  25. 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); } }

  26. Process Termination • Process executes last statement and asks the operating system to delete it (with exit() system call) • What happens at that time ? • Output data (possible status--int) from child to parent (via wait() ) • Process’ resources are deallocated by operating system • 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

  27. Interprocess Communication • Processes within a system may be independentor cooperating • Independent process cannot affect or be affected by the execution of another process • Cooperating process can affect or be affected by other processes, including sharing data • Reasons for cooperating processes: • Information sharing • Computation speedup • Modularity • Convenience • Cooperating processes need interprocess communication (IPC) • Two models of IPC • Shared memory • Message passing

  28. Communications Models

  29. Producer-Consumer Problem • Paradigm for cooperating processes : • Producer process produces information that is consumed by a consumer process • To run the systems concurrently a buffer should be provided in the shared memory region • This buffer would be filled by the producer and would be emptied by the consumer. • The producer and consumer also have to be synchronized. • Unbounded-bufferplaces no practical limit on the size of the buffer • Bounded-bufferassumes that there is a fixed buffer size

  30. Bounded-Buffer – Shared-Memory Solution • Shared data #define BUFFER_SIZE 10 typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; • Solution is correct, but can only use BUFFER_SIZE-1 elements

  31. Bounded-Buffer – Producer while (true) { /* Produce an item */ while (((in = (in + 1) % BUFFER SIZE count) == out) ; /* do nothing -- no free buffers */ buffer[in] = item; in = (in + 1) % BUFFER SIZE; }

  32. Bounded Buffer – Consumer while (true) { while (in == out) ; // do nothing -- nothing to consume // remove an item from the buffer item = buffer[out]; out = (out + 1) % BUFFER SIZE; }

  33. Interprocess Communication – Message Passing • Mechanism for processes to communicate and to synchronize their actions without sharing the same address space. • IPC facility provides two operations: • send(message) – message size fixed or variable • receive(message) • If P and Q wish to communicate, they need to: • establish a communicationlink between them • exchange messages via send/receive • Implementation of communication link • physical (e.g., shared memory, hardware bus) • logical (e.g., logical properties)

  34. Implementation Questions • How are links established? • Can a link be associated with more than two processes? • How many links can there be between every pair of communicating processes? • What is the capacity of a link? • Is the size of a message that the link can accommodate fixed or variable? • Is a link unidirectional or bi-directional?

  35. Several methods for logically implementing a link • 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

  36. Direct Communication • Processes must name each other explicitly: • send (P, message) – send a message to process P • receive(Q, message) – receive a message from process Q • Properties of communication link • Links are established automatically • A link is associated with exactly one pair of communicating processes • Between each pair there exists exactly one link • The link may be unidirectional, but is usually bi-directional • Symmetry in addressing -- both the sender and the receiver processes must name the other to communicate. • Asymmetry in addressing --Only the sender names the recipient; the recipient is not required to name the sender. Here the send and receive primitives are defined as follows: • send (P, message) • receive (id, message)

  37. Indirect Communication • Messages are directed and received from mailboxes(also referred to as ports) • Each mailbox has a unique id • Processes can communicate only if they share a mailbox • Send/Receive primitives : send(A, msg)/receive(A, msg) • Properties of communication link • Link established only if processes share a common mailbox • A link may be associated with many processes • Each pair of processes may share several communication links • Link may be unidirectional or bi-directional

  38. Indirect Communication • Suppose that processes P1, P2, and P3 all share mailbox A. Process P1 sends a message to A, while P2 and P3 each execute a receive from A. Which process will receive the message sent by P1 ? • Allow a link to be associated with at most two processes. • Allow at most one process at a time to execute a receive operation. • Allow the system to select arbitrarily which process will receive the message (that is, either P2 or P3, but not both, will receive the message). The system may identify the receiver to the sender.

  39. Indirect Communication • Mailbox owner could be the OS or a process. • A process owns a mailbox it can receive messages, where as other processes can send messages (users) • An OS owns a mailbox has to provide a mechanism that allows a process to do the following: • Create a new mailbox. • Send and receive messages through the mailbox. • Delete a mailbox.

  40. Synchronization • Design options for send/receive -- Message passing may be either blocking or non-blocking • Blocking is considered synchronous • Blocking send has the sender block until the message is received • Blocking receive has the receiver block until a message is available • Non-blocking is considered asynchronous • Non-blocking send has the sender send the message and continue • Non-blocking receive has the receiver receive a valid message or null

  41. Buffering • Messages exchanged by communicating processes reside in a temporary queue. • Implemented in one of three ways 1.Zero capacity – 0 messages Sender must block until receiver receives(rendezvous) • Bounded capacity – finite length of n messages . Sender must wait/block if link full 3.Unbounded capacity – infinite length Sender never waits

  42. Examples of IPC Systems - POSIX • POSIX Shared Memory • Process first creates shared memory segment segment id = shmget(IPC_PRIVATE, size, S_IRUSR | S_IWUSR); • Process wanting access to that shared memory must attach to it shared memory = (char *) shmat(id, NULL, 0); • Now the process could write to the shared memory sprintf(shared memory, "Writing to shared memory"); • When done a process can detach the shared memory from its address space shmdt(shared memory);

  43. Examples of IPC Systems - Mach • Mach communication is message based • Even system calls are messages • Each task gets two mailboxes at creation- Kernel and Notify • Only three system calls needed for message transfer msg_send(), msg_receive(), msg_rpc() • Mailboxes needed for commuication, created via port_allocate() • The default size of the message queue is 8.

  44. Examples of IPC Systems - Mach • If the mailbox is not full, the message is copied to the mailbox and the sending thread continues. • If the mailbox is full, the sending thread has four options: 1. Wait indefinitely until there is room in the mailbox. 2. Wait at most n milliseconds. 3. Do not wait at all, but rather return immediately. 4. Temporarily cache a message. One message can be given to the operating system to keep, even though the mailbox to which it is being sent is full.

  45. Examples of IPC Systems – Windows XP • Message-passing centric via local procedure call (LPC) facility • Only works between processes on the same system • Uses ports (like mailboxes) to establish and maintain communication channels. • Two types of ports – conncetion/communication • Communication works as follows: • The client opens a handle to the subsystem’s connection port object • The client sends a connection request • The server creates two private communication ports and returns the handle to one of them to the client • The client and server use the corresponding port handle to send messages or callbacks and to listen for replies • Large messages are passed through section objects

  46. Local Procedure Calls in Windows XP

  47. Communications in Client-Server Systems • Sockets • Remote Procedure Calls • Pipes

  48. Sockets • A socket is defined as an endpoint for communication • Identified by concatenation of IP address and port • The socket 161.25.19.8:1625 refers to port 1625 on host 161.25.19.8 • Communication consists between a pair of sockets

More Related