Showing posts with label os 4. Show all posts
Showing posts with label os 4. Show all posts
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.
* Asymmetric variant
- receive (id, message) – receive a message from any
Process, pid stored in id




Indirect Communication

*Messages are directed and received from mailboxes (als
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 communications
Links.
- Link may be unidirectional or bi-directional.
* Operations
- create a new mailbox
- send and receive messages through mailbox
- destroy a mailbox
* Primitives are defined as:
Send (A, message) – send a message to mailbox A
Receive (A, message) – receive a message from mailbox A
* 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.



Synchronization

*Message passing may be either blocking or non-blocking.
* locking is considered synchronous
* Non-blocking is considered asynchronous
* send and receive primitives may be either blocking or
non-blocking.



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 nmessages
Sender must wait if link full.
3. Unbounded capacity – infinite length
Sender never waits.
Exercise: Read about Mach and Windows 2000



Producer consumer example

In computer science the producer-consumer problem (also known as the bounded-buffer problem) is a classical example of a multi-process synchronization problem. The problem describes two processes, the producer and the consumer, who share a common, fixed-size buffer. The producer's job is to generate a piece of data, put it into the buffer and start again. At the same time the consumer is consuming the data (i.e. removing it from the buffer) one piece at a time. The problem is to make sure that the producer won't try to add data into the buffer if it's full and that the consumer won't try to remove data from an empty buffer.The solution for the producer is to go to sleep if the buffer is full. The next time the consumer removes an item from the buffer, it wakes up the producer who starts to fill the buffer again. In the same way, the consumer goes to sleep if it finds the buffer to be empty. The next time the producer puts data into the buffer, it wakes up the sleeping consumer. The solution can be reached by means of inter-process communication, typically using semaphores. An inadequate solution could result in a deadlock where both processes are waiting to be awakened.
Posted by Roger Labels:
* Mechanism for processes to communicate and to synchronize their actions.
* Message system – processes communicate with each other without resorting to shared variables.n 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 communication link between them
: exchange messages via send/receive
* Implementation of communication link
: physical (e.g., shared memory, hardware bus) considered later
: logical (e.g., logical properties) now
Posted by Roger Labels:
* 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
Posted by Roger Labels:
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 processor
: terminated: The process has finished execution.


Process Control Block

*Information associated with each process.
: Process ID
: Process staten Program counter
: CPU registersn CPU scheduling information
: Memory-management information
: Accounting information
: I/O status information
Posted by Roger Labels:
Process Creation



Parent process creates 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.
Address space

* Child duplicate of parent.
* Child has a program loaded into it.
UNIX examples

* fork system call creates new process
* fork returns 0 to child , process id of child for parent
* exec system call used after a fork to replace the process’ memory space with a new program



Process Termination

Process executes last statement and asks the operating system to delete it (exit).
*Output data 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.
*Parent is exiting.
:Operating system does not allow child to continue if its parent terminates.
:Cascading termination.
*In Unix, if parent exits children are assigned init as parent
Posted by Roger Labels:
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.
*Processes migrate between the various queues.

Schedulers

*Long-term scheduler (or job scheduler) – selects which processes should be brought into the ready queue.
*Short-term scheduler (or CPU scheduler) – selects whichprocess should be executed next and allocates CPU.
* Short-term scheduler is invoked very frequently (milliseconds) fi (must be fast).
* Long-term scheduler is invoked very infrequently (seconds, minutes) fi (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


Context Switch

* When CPU switches to another process, the ssave the state of the old process and load the for the new process.
* Context-switch time is overhead; the system douseful work while switching.
* Time dependent on hardware support.
Posted by Roger Labels:
Visit the Site
MARVEL and SPIDER-MAN: TM & 2007 Marvel Characters, Inc. Motion Picture © 2007 Columbia Pictures Industries, Inc. All Rights Reserved. 2007 Sony Pictures Digital Inc. All rights reserved. blogger templates