Transcript ppt
A Note on
Operating System Organization
CS-502 – Spring 2006
CS502 Spring 2006
OS Organization
1
The “THE” Operating System
System Operator
User Programs
I/O Management
Operator-Process Communication
Memory Management
Processes & Semaphores
Dijkstra, E. W., “The Structure of the ‘THE’-Multiprogramming
System,” Communications of ACM, vol.11, pp. 341-346, May 1968.
CS502 Spring 2006
OS Organization
2
Operating System Organizations
• The literature in operating systems is full of
papers of simple, elegant systems like this
one
• Simple
• Easy to build and maintain by small teams
• Very instructive for study
• Limited usefulness
CS502 Spring 2006
OS Organization
3
Question
• In a typical system, how do the layers or
components talk to each other?
• Answer: one of two ways
• Messages between processes
• Procedure/function calls between “modules”
CS502 Spring 2006
OS Organization
4
Message-based systems
• Processes are isolated from each other –
separate address spaces, etc.
• IPC primitives
• Send Message (socket, content)
• Wait For Message (socket, &content)
• Request, results, and status encoded in
message contents
• Static processes to manage resources, create
abstractions and layers
CS502 Spring 2006
OS Organization
5
Message-based systems – Resource manager
<internal data for managing resource>
while (true) {
ReceiveMessage (socket, &content)
switch (content.action) {
case action1: <do something & reply>
case action2: <do something else>
case action3: <hold pending some event>
case action4: <release previously held
action & reply>
...
}
}
CS502 Spring 2006
OS Organization
6
E.g., File Manager
void File_Manager(socket fileSocket) {
<internal data for managing files>
while (true) {
ReceiveMessage (fileSocket, &content)
switch (content.action) {
case write: <do something & reply>
case seek: <do something else>
case read: <start disk activity>
case readDone: <return result of
read previously started>
...
}
}
}
CS502 Spring 2006
OS Organization
7
Message-based systems (continued)
• Resource manager
• Infinite loop
• Created at system start-up, assigned fixed sockets
• Effectively a critical section – one request or activity
is handled at a time
• Maintains internal data structures for queuing up
requests that cannot be replied to immediately
• No sharing of data with requesting processes
• Any status information is encoded in content
• Reply to specific socket of requester
CS502 Spring 2006
OS Organization
8
Message-based systems (continued)
• Requested actions encapsulated in function – e.g.,
void read(file f, char *p, int len) {
socket s = new(socket);
content c = {f, readAction,len, s};
content r = {char c[len]);
SendMessage(fileManager, c);
WaitForMessage(s, r);
strcpy(r.c, p, len);
}
• Examples
• MACH (Carnegie Mellon University
• Mac OS-X
CS502 Spring 2006
OS Organization
9
Procedure/Monitor-based systems
• Resource Manager represented as a Monitor – e.g.,
monitor class file {
<internal data for managing files>
void read(file f, char *p, int len);
void write(file f, char *p, int len);
void seek(file f, position);
...
}
• Requester makes direct function calls to monitor
CS502 Spring 2006
OS Organization
10
Process/Monitor systems
• Resource manager
• Static object with functions; created at start-up
• Effectively a critical section –one request or activity
is handled at a time
• Maintains internal data structures for queuing up
requests that cannot be replied to immediately
• Shared address space, but internal data hidden from
requesters
• Status maintained in stack of requesting process
• Examples
• Pilot
CS502 Spring 2006
OS Organization
11
Observation
• There is really no fundamental difference
between systems organized by messages
and those organized by monitors
• Choice depends upon what is available in
underlying system
• Shared or separate address spaces
• Language support for monitor discipline
•…
Lauer, H.C. and Needham, R.M., “On the Duality of
Operating System Structures,” Operating Systems Review,
vol 13, #2, April 1979, pp. 3-19.
CS502 Spring 2006
OS Organization
12