Presentation is loading. Please wait.

Presentation is loading. Please wait.

Slides for Chapter 18: Mach Case Study From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley 2001.

Similar presentations


Presentation on theme: "Slides for Chapter 18: Mach Case Study From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley 2001."— Presentation transcript:

1 Slides for Chapter 18: Mach Case Study From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley 2001

2 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Figure 18.1 Mach supports operating systems, databases and other subsystems Application processes/objects Multiprocessor or uniprocessor BSD4.3 UNIX Camelot Database OS/2 Object-oriented language run-time MkLinux Mach kernel

3 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Figure 18.2 Mach tasks, threads and communication Uniprocessor Multiprocessor Mach Network servers Port Task Thread Processor Key: Communications Thread mapping Mach

4 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Figure 18.3 A task’s port name space Taskt (user-level) Kernel t's port name space Port rights and port set rights (capabilities) Port(s) i System call quoting port right or port set identifier i

5 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Figure 18.4 Task and thread creation task_create(parent_task, inherit_memory, child_task) parent_task is the task used as a blueprint in the creation of the new task, inherit_memory specifies whether the child should inherit the address space of its parent or be assigned an empty address space, child_task is the identifier of the new task. thread_create(parent_task, child_thread) parent_task is the task in which the new thread is to be created, child_thread is the identifier of the new thread. The new thread has no execution state and is suspended. thread_set_state(thread, flavour, new_state, count) thread is the thread to be supplied with execution state, flavour specifies the machine architecture, new_state specifies the state (such as the program counter and stack pointer), count is the size of the state. thread_resume(thread) This is used to resume the suspended thread identified by thread.

6 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Figure 18.5 A Mach message containing port rights and out-of-line data HeaderPort rightsIn-line data Pointers toout-of-line data Port rightsT T = type information TTTT

7 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Figure 18.6 Network communication in Mach

8 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Figure 18.7 Copy-on-write overheads Region sizeSimple copyCreate regionAmount of data copied (on writing) 0 kilobytes (0 pages) 8 kilobytes (1 page) 256 kilobytes (32 pages) 8 kilobytes kilobytes _ Note: all times are in milliseconds.

9 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Figure 18.8 External pager Task’s address space External pager Memory cache objects Kernel Network Port Messages Kernel Region

10 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 © Addison-Wesley Publishers 2000 Figure 18.9 External pager message EventSenderMessage vm_mapcalled by task K -> EP EP -> K memory_object_init memory_object_set_attributes,or memory_object_data_error Taskpage-faults when no data frame exists EP -> K memory_object_data_request memory_object_data_provided,or memory_object_data_unavailable Kernel writes modified page to persistent store memory_object_data_write External pager directs kernelto write page/set access permissions EP -> K memory_object_lock_request memory_object_lock_completed Task page-faultswhen insufficient page accessEP -> K memory_object_data_unlock memory_object_lock_request Memory object no longer mappedmemory_object_terminate Externalpager withdraws memory object EP -> K memory_object_destroy memory_object_terminate K -> EP


Download ppt "Slides for Chapter 18: Mach Case Study From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, © Addison-Wesley 2001."

Similar presentations


Ads by Google