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
|