13.07.2015 Views

An Operating Systems Vade Mecum

An Operating Systems Vade Mecum

An Operating Systems Vade Mecum

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

316 Co-operating Processes Chapter 94.3 Space managementThe kernel provides support for the address-translation tables and allows privilegedprocesses (such as the storage manager) to modify those tables. One way to keep thecost low is to map the translation tables themselves into the address space of the storagemanagers. Address-translation faults are converted by the kernel into some form of callon the appropriate storage manager. (Each machine might have its own.) This invocationcan take the form of a return from a kernel call or a message that appears to comefrom the faulting process.Storage managers on different machines in a multicomputer may exchange informationabout their allocation state to help make reasonable decisions about where to startnew processes. A single storage manager can control more than one machine, but if so, itmay be unacceptably slow in responding to faults. If the kernel is unable to grant thenecessary support to a remote storage manager, an intermediary process may reside onthe target machine and relay requests from a remote storage manager to the local kernel.Storage managers can prevent overcommitment of main store by swappingprocesses to backing store. A port bound to a swapped-out process is still usable, butcommunication with such a process will be delayed until the process is swapped back in.Such a communication event causes the relevant storage manager to be informed of theproblem.4.4 Other servicesCatalogs are used to find the port identifiers of servers. These catalogs are themselvesimplemented as server processes. Newly created processes can establish their environmentby knowing the process identifier of at least one catalog process.File services may be provided by a hierarchy of processes. Many arrangements arepossible. One arrangement is to have three levels for file access:(1) Directory server: Given the name of a file, this server returns the processidentifier of a file server that manages this file.(2) File server: This server supports file open, read, write, and close.(3) Disk server: This server supports seek, read block, write block.Some applications, like database programs, will want to deal with the lowest level of thehierarchy. There may be more than one server at each level, particularly if the tree offiles is distributed across many machines.It is not easy to fit devices into the communication-kernel approach. Ideally, wewould like each device to be controlled by a server process. Unfortunately, the serverprocess might be too slow or too powerful.The kernel must transform each device-completion interrupt that arrives into a virtualinterrupt to the associated server process. This action requires a contextswitch to the kernel, followed by a process switch to the server. The time required

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!