Partial preview of the text
Download distributed operating systems and more Thesis Distributed Programming and Computing in PDF only on Docsity!
behind immutable files is to prevent the replication mechanism from undergoing race conditions. And file server crashes normally don't result in an inconsistent file system! The Bullet server uses the virtual disk server to perform I/O to disk, so it's possible that the file server run as a normal user program! The Boot server controll all global system servers (outside the kernel): start, check and poll, restart if crashed. « All Amoeba objects (files, programs, memory segments, servers) are protected and discribed with so called Capabilities (see below). Anexample for a processor pool: About 60 -80 Sun motherboards were build into a rack system at the Vrije Univerity. Of course cheap and normal IBM-PC 's can be used as CPU-Servers, too! 4. The Amoeba Micro-kernel A small piece of code, called the microkernel, is present on all Amoeba machines and they run nearly the same microkernel which handles * Low level I/O management « Communication between processes or threads « Low level Memory management « Process and thread (kernel/user space) management Server processes (see above) supply other operating system services and generally run in user mode. This job specialization allows the microkernel to be small and efficient, increases reliability, allows as much as possible of the operating system to run as user processes, providing flexibility and no extra burdens are added to individual CPUs with facilites that it doesn't need. Process concept: * Amoeba supports traditional process concept e Processes consists of several threads (at least one) * Each thread has his own registers, Instruction Pointer, stack; but all threads of a process share the same memory region « Example: File server. Each request is handled by one thread, but all threads use the same cache; synchronization through Mutex and Semaphores | Process 0 Process 2 (mt) (ut) |= | | | Space | MOY) | || | Microkeme! Threads | Kemet J Space Memory management: Threads can allocate and deallocate blocks of memory, called Segments . These segments can be read and written, and can be mapped into and out of the address space of the process. A process owns at leat one segment, but may have many more of them. Segments can be used for text, data, stack, or any other purpose the process desires. The operating system doesen't enforce any particular pattern on segment usage. V/O-Managment: « For each I/O-Device attached to a machine, there is a device driver in the kernel. The driver manages all I/O for the device.