Computer Operating System - Lecture 4: Process Concept - Nguyen Thanh Son

Process Concept
 Process Scheduling
 Operations on Processes
 Cooperating Processes
 Interprocess Communication
 Communication in Client-Server
Systems 
pdf 39 trang xuanthi 30/12/2022 800
Bạn đang xem 20 trang mẫu của tài liệu "Computer Operating System - Lecture 4: Process Concept - Nguyen Thanh Son", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfcomputer_operating_system_lecture_04_process_concept_nguyen.pdf

Nội dung text: Computer Operating System - Lecture 4: Process Concept - Nguyen Thanh Son

  1. Chapter’s Content  Process Concept  Process Scheduling  Operations on Processes  Cooperating Processes  Interprocess Communication  Communication in Client-Server Systems BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 2
  2. 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 process.  terminated: The process has finished execution. BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 4
  3. Process Control Block (PCB) Information associated with each process.  Process state  Program counter  CPU registers  CPU scheduling information  Memory-management information  Accounting information  I/O status information BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 6
  4. CPU Switch From Process to Process BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 8
  5. Ready Queue And Various I/O Device Queues BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 10
  6. 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 CPU. BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 12
  7. Schedulers (Cont.)  Short-term scheduler is invoked very frequently (milliseconds) (must be fast).  Long-term scheduler is invoked very 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.  CPU-bound process – spends more time doing computations; few very long CPU bursts. BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 14
  8. Process Creation  Parent process create children processes, which, in turn create other processes, forming a tree of processes.  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. BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 16
  9. Processes Tree on a UNIX System BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 18
  10. Cooperating Processes  Independent process cannot affect or be affected by the execution of another process.  Cooperating process can affect or be affected by the execution of another process  Advantages of process cooperation  Information sharing  Computation speed-up  Modularity  Convenience BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 20
  11. 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 BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 22
  12. Bounded-Buffer – Consumer Process item nextConsumed; while (1) { while (in == out) ; /* do nothing */ nextConsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; } BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 24
  13. 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? BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 26
  14. 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.  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.  BK Link may be unidirectional or bi-directional. TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 28
  15. Indirect Communication  Mailbox sharing  P1, P2, and P3 share mailbox A.  P1, sends; P2 and P3 receive.  Who gets the message?  Solutions  Allow a link to be associated with at most two processes.  Allow only one process at a time to execute a receive operation.  Allow the system to select arbitrarily the receiver. Sender is notified who the receiver was. BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 30
  16. Buffering  Queue of messages attached to the link; implemented in one of three ways. 1. Zero capacity – 0 messages Sender must wait for receiver (rendezvous). 2. Bounded capacity – finite length of n messages Sender must wait if link full. 3. Unbounded capacity – infinite length Sender never waits. BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 32
  17. Sockets  A socket is defined as an endpoint for communication.  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. BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 34
  18. Remote Procedure Calls  Remote procedure call (RPC) abstracts procedure calls between processes on networked systems.  Stubs – client-side proxy for the actual procedure on the server.  The client-side stub locates the server and marshalls the parameters.  The server-side stub receives this message, unpacks the marshalled parameters, and peforms the procedure on the server. BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 36
  19. Remote Method Invocation  Remote Method Invocation (RMI) is a Java mechanism similar to RPCs.  RMI allows a Java program on one machine to invoke a method on a remote object. BK TP.HCM 07-Feb-17 Faculty of Computer Science & Engineering 38