Michael Young @ CMU
Proceedings of the Eleventh ACM Symposium on Operating System Principles, November 8-11, 1987
Object oriented design |
|||||
Micro kernel |
|||||
Message passing IPC |
|||||
Binary compatible to BSD4.3 |
|||||
Memory object and data manager (= pager)--application specific secondary storage manager |
|||||
Complementary roles of VM and IPC
|
Task & thread
|
|||||||||||||||||||||||||
Port
|
|||||||||||||||||||||||||
Message
|
|||||||||||||||||||||||||
Memory Object
|
Task's address space is composed of regions (= regions in Unix) |
|||||||||||||||
Task can allocate regions anywhere within the virtual address space
|
|||||||||||||||
Task can also allocate regions mapped to memory objects - like mmap in Unix
|
|||||||||||||||
Memory reference
|
|||||||||||||||
Dirty page cleaning
|
|||||||||||||||
Hint to the kernel
|
|||||||||||||||
Default memory objects and pager
|
Application interfaces and filesystem's actions
|
Shows how to implement simple, centralized "shard virtual memory" system. See Fig 4-1. In this figure, shared-memory-server on the center of each diagram is pager |
|
Can you implement shard virtual memory system using the Mach's messaging scheme? |
Threads may become blocked for data supplied by another user task, which does not respond promptly |
|||
When the kernel wants to kick out a page, what if the data manager (=pager) does not response promptly (on purpose)? |
|||
What if a data manager responds to 'page_data_request' with too many pages |
|||
What if a data manager maliciously changes its contents so often which have been read-copied to multiple tasks |
|||
Deadlock
|
Timeout mechanism can be used |
|
After timeout, let the default pager, which is the trusted one, intercept the processing and finish it |
As network becomes fast enough, the distinctions between message-passing and shared-memory approach for multiple threads support are becoming blurred
|