tailieunhanh - distributed operating system phần 9
Không có một phần của cuốn sách này có thể được sao chép, lưu trữ trong hệ thống phục hồi, hoặc truyền đi dưới bất kỳ hình thức nào hoặc bằng bất cứ phương tiện nào, mà không cần sự cho phép trước bằng văn bản của nhà xuất bản, ngoại trừ trong trường hợp trích dẫn ngắn gọn được nhúng vào trong các bài viết quan trọng hoặc đánh giá. | SEC. SUMMARY 473 Mach is based on the concepts of processes threads ports and messages. A Mach process is an address space and a collection of threads that run in it. The active entities are the threads. The process is merely a container for them. Each process and thread has a port to which it can write to have kernel calls carried out eliminating the need for direct system calls. Mach has an elaborate virtual memory system featuring memory objects that can be mapped and unmapped into address spaces and backed up by external user-level memory managers. Files can be made directly readable and writable in this way for example. Memory objects can be shared in various ways including copy-on-write. Inheritance attributes determine which parts of a process address space will be passed to its children. Communication in Mach is based on ports which are kernel objects that hold messages. All messages are directed to ports. Ports are accessed using capabilities which are stored inside the kernel and referred to by 32-bit integers that are usually indices into capability lists. Ports can be passed from one process to another by including them in complex messages. BSD UNIX emulation is done by an emulation library that lives in the address space of each UNIX process. Its job is to catch system calls reflected back to it by the kernel and pass them on to the UNIX server to have them carried out. A few calls are handled locally within the process address space. Other UNIX emulators are also being developed. Amoeba and Mach have many aspects in common but also various differences. Both have processes and threads and are based on message passing. Amoeba has reliable broadcasting as a primitive which Mach does not but Mach has demand paging which Amoeba does not. In general Amoeba is more oriented toward making a collection of distributed machines act like a single computer whereas Mach is more oriented toward making efficient use of multiprocessors. Both are undergoing .
đang nạp các trang xem trước