Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
91 Cards in this Set
- Front
- Back
Why is memory exchange difficult to use?
|
every data transcer requires a send and receive, so receptive process must expect the send()
|
|
Define shared memory.
|
two or more processes share a part of their address space.
|
|
What is the primary advantage of shared memory?
|
fast and easy to use
|
|
What are the two problems intorudced by shared memory's primary advantage?
|
1) concurrent access can cause disasters, 2) synchronization access is needed
|
|
What are the two disadvantages fo shared memory?
|
1) not general, since sender and reciever must be on the same machine, 2) less secure since processes can directly access a part of the other process's shared address space
|
|
Name the four defining issues of message passing.
|
1) direct/indicrect communication, 2) blocking/nonblocking primitives, 3) exception handling, 4) quality of service
|
|
T/F - In direct communication, send and receive system calls do not always need to specify processes as desitnation/source.
|
F
|
|
Give examples of send and recieve specifications that would take place in direct communication.
|
send(process, msg,length); receive(process, msg, &length);
|
|
Why is direct communication the most simple means of IPC?
|
there is no intermediary between sender and receiver
|
|
Make an analogy with which you could describe direct communication to a layman.
|
ex: phones without switchboard, MAKE YOUR OWN FOR PRACTICE!
|
|
T/F A process executing a recieve call only needs to know the identity of all processes likely to send messages WHEN the IPC is RGD
|
F. RGD doesnt even mean anything. receiver ALWAYS needs to know!!
|
|
Why does a receiving process need to know the identity of all processes likely to send it messages?
|
duh
|
|
Why is a receiving processes neccesity to know all processes likely to send messages bad for servers?
|
because servers must answer requests from arbityary processes.
|
|
How is indirect communication different from direct communication?
|
indirect communication has an intermediary entity as a destination or source
|
|
What is the intermediary of indirect communication called?
|
the mailbox
|
|
Given an example of a send or a recieve primative that is involved in indirect communicaiton.
|
send(mailbox,msg,size);
|
|
T/F a mailbox is created by the client.
|
F, it is created by the kernel
|
|
How does a kernel know that it is to create a mailbox?
|
a request has been sent by a user process.
|
|
Make an analogy with which you could describe indirect direct communication to a layman.
|
ex: phones with a switchboard, MAKE YOUR OWN FOR PRACTICE!
|
|
T/F Differnt processes can send messages to a single mailbox.
|
T |
|
T/F In indirect communication, a process cannot recieve messages from a processes it does not know about.
|
F, different processes can send messages to a single mailbox, and the receptive process is informed by that mailbox
|
|
T/F processes cannot wait for messages coming from different senders. they will only open the first message they receive
|
F, but they do open messages as they arrive
|
|
What are the two types of mailboxes?
|
1) private, 2) public
|
|
Is a BSD socket a private or public mailbox?
|
private, the word "socket" reveals this |
|
What is the difference between private and public mailboxes?
|
1) private are attached to specific processes while 2) public are system objects
|
|
T/F private mailboxes cease to exist when the process that requested creation (and its children) terminates
|
T
|
|
What is another name for a private mailbox?
|
port
|
|
What can receive messages trhough a private mailbox?
|
the process and the children thereof that requestsed said mailbox's creation
|
|
What are public mailboxes "owned" by?
|
the system, man
|
|
What are public mailboxes shared by?
|
all processes having the right to receiver messages through it
|
|
T/F public mailboxes can survive the termination of their creator process.
|
T
|
|
T/F public processes are best suited for passing messages between different machines.
|
F
|
|
Are System V UNIX message queues public mailboxes? What word(s) gives the answer away?
|
Yes, "message queues"
|
|
Is buffering needed for a blocking primative?
|
Nope
|
|
When does a blocking send return?
|
when the receipient process has received the message.
|
|
When does a non-blocking send return?
|
when the messages has been accepted for delivery by the OS
|
|
What does a non-blocking send assume about the receipient OS?
|
it assumes that the OS can store the message in a buffer
|
|
Make an analogy with which you could describe a non-blocking send to a layman.
|
ex: letter is dropped in mailbox so you are DONE, you assume post office will handle the rest MAKE YOUR OWN FOR PRACTICE!
|
|
When does a non-block receive return?
|
as soon as it has either 1) retreived a message or 2) learned that the mailbox is empty
|
|
Make an analogy with which you could describe a non-blocking receive to a layman.
|
ex: checking the mail.
|
|
What is another name for blocking receives?
|
busy wait
|
|
In three or more steps, explain the logic of a blocking send simulation.
|
1) sender sends message and reqeusts an acknowledgement (ACK), 2) sender waits for ACK from receiver using a blocking receieve, 3) receiver sends ACK
|
|
In three or more steps, explain the logic of a blocking send simulation.
|
1) receipient receives message 2) receipient is delayed, 3) this process repeats until message space receives contents
|
|
What are the three elements that define the "standard choice?"
|
1) indirect naming, 2) non-blocking sends (fire and forget), 3) blocking receives (receiver needs data to continue)
|
|
T/F Non-blocking primitives require buffering. Justify your answer.
|
T, OS needs to store messages that have been sent but not yet received.
|
|
What does it mean if a buffer has bounded capacity?
|
the buffer can refuse to receive messages when it is full
|
|
What is the limit on capacity of a buffer receiving non-blocking primitives?
|
theoretically there is none, but typically the capacity is bounded.
|
|
Are blocking receives and direct communication the best pairing of any pairing ever of all time forver?
|
NO. They are not!! when paired, processes cannot wait for messages from several sources without using special parallel programming constructs, in fact, the receiving process can only receive messages from a specified process
|
|
How can the sending and recieving of messages effect the quality of service?
|
loss, corruption, duplication, arrival out of sequence
|
|
What are positive acknowledgements?
|
basic techniques for providing reliable delivery of messages
|
|
Describe the scenarios of postive acknowledgements
|
1) destination process sends an acknowledgment message (ACK) for every message that was correctly delivered, 2)sender resends any mdessage that was not ACK within a fixed time frame
|
|
Name the three classes of service and how they handle messages
|
1) datagrams -messages are sent one at a time, 2) virtual circuits - a connection oriented service that uses an ordered sequence fo messages, 3) streams - message boundaries are ignored and are sent as an ordered sequence of bytes
|
|
How are messages sent when using datagrams? what potential consequences result from this?
|
individually, some messages can be lost, duplicated, or might arrive out of sequence.
|
|
what are the two kinds of datagrams?
|
1) reliable datagrams 2) unreliable datagrams
|
|
Why are reliable datagrams labeled so?
|
because they resend messages until acknowledgement
|
|
T/F unreliable datagrams work well when a message requests a reply
|
T since a reply is an implicit ACK of a message
|
|
Make an analogy for unreliable datagrams
|
ex. you don't ACK emails, you just reply to them
|
|
Why would an ACK be sent if a reply is an implicit response?
|
The ACK is useful when a reply will not be timly
|
|
What does UDP stand for?
|
User Data Protocol
|
|
T/F UDP is one of the lesser known protocols
|
F
|
|
T/F UDP provides a reliable datagram service
|
F
|
|
T/F UDP is best for short interactions
|
T
|
|
How many requests and replies is a UDP suited for?
|
one of each
|
|
When using virtual circuits, a ___ is established between the send and receiver.
|
logical connection
|
|
T/F Virtual circuits guarantee arrival of a sequence without loss or duplication.
|
T
|
|
Make an analogy for virtual circuits
|
ex. words of a phone conversation
|
|
Why are virtual circuits costlier than datagrams?
|
the connection must be set up beore sending any data
|
|
HTTP is an example of __?
|
a virtual circuit
|
|
T/F virtual circuits are best for transmitting large amounts of data.
|
T
|
|
T/F virtual circuits are best for transmitting data that requires two or less large messages.
|
F, several messages are best suited
|
|
T/F Streams are very similar to virtual cirtuits.
|
T
|
|
Do streams preserve message boundaries? How tdoes the receiver see the resultant message?
|
streams do not preserve message boundaries. the receiver sees a seemless stream of bytes.
|
|
What is an alternate name for TCP?
|
stream protocol
|
|
Why is TCP said to be heavyweight?
|
it requires three messages (packets) to establish a virtual connection
|
|
T/F TCP provides a reliable stream service
|
T
|
|
What are the three major advantages of using remote procedure calls?
|
1) they hide all details of message passiong, 2) they provide a higher level of abstraction, 3) they extend a well know model of programming
|
|
What is the disadvantage of using a RPC?
|
RPCs do not always behave like regular procedure calls since the client and server do not share the same address space
|
|
List the four steps of a user stub.
|
1) argument marshaling, 2) send request message, 3) wait for server reply message, 4) argument unmarshaling
|
|
List the five steps of the server stub.
|
1) wait for client requests, 2) argument unmarshaling, 3) call server procedure, 4) argument marshaling, 5) send reply
|
|
Which does the actual processing of user requests, the server procedure or the user stub?
|
the server procedure
|
|
T/F In RPC, the client and server processes share the same address space
|
F
|
|
T/F An RPC needs to handle partial failures
|
T
|
|
What are the ramifactions (2) of an RPC not having shared address space?
|
1) no global variables, 2) cannot pass addresses (arguments by reference or dynamic data structures through pointers)
|
|
If a remote procedure call cannot pass addresses, what are two ways arugments can be passed?
|
1) pass current value of argument to remote procedure, 2) copy returned value in user program
|
|
How can partial failures be detected?
|
the client can send "are you alive?" mesages to the server at fixed intervals
|
|
What is an idempotent request?
|
a request that can be executed several times and have the same effect as having been executed once
|
|
Given an example of an idempotent request.
|
reading n bytes from a fixed location, not reading the next n bytes from a current location
|
|
What does attaching a serial number to requests allow a server to do?
|
detect replays of requests it has previously received and refuse to execute
|
|
T/F Attaching serial numbers is a cheap method of handling partial executions.
|
T
|
|
T/F Using transaciton mechanisms are the most costly method of handling partial executions.
|
T
|
|
What does a transaction mechanism do?
|
it guarantees that each request with EITHER be full executed OR have no effect.
|