1 / 16

The Structuring of Systems Using Upcalls

The Structuring of Systems Using Upcalls. David D. Clark. Presented by Mohammed S Karamathulla. Agenda. Layering and upcalls Multi-task Modules Advantages Problems Related Systems Conclusion. Layering/Upcalls.

langston
Download Presentation

The Structuring of Systems Using Upcalls

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Structuring of Systems Using Upcalls David D. Clark Presented by Mohammed S Karamathulla

  2. Agenda • Layering and upcalls • Multi-task Modules • Advantages • Problems • Related Systems • Conclusion

  3. Layering/Upcalls • At the kernel level (micro kernel) each layer is implemented as a single process with its own address space • In this paper all layers in a single address space • Layer provides service to client layer (above/below) • Upcalls used to distinguish from structured view of service invocation, organized around downward flow • With procedural invocations no need to have process and interprocess communication

  4. What is multitask module? Layer is organized as collection of subroutines Subroutines live in a number of tasks callable form above or below. Multitask module contains a collection of state variables – accessible through shared memory

  5. Layering Architecture Swift “THE” System Single Address Space Level 5 - operator IPC Fast Threads Level 4 – user programs Processes Interprocess communication Level 3 – I/O services Slow Multitask modules Level 2 – message interpreter Interprocess communication Level 1 – segment controller Level 0 - processor allocation and synchronization Tasks

  6. General Architecture User A User B Display Layer Transport layer (Appication Specific) Downcall downcall return - immediate upcall upcall return Network Layer- common to all (shared) does not classify TCP/UDP Interrupt

  7. Congestion Control Data sent waiting to be acknowledged Data to be sent Congestion Window Dropped Pkt Max. BW BW Actual BW Time

  8. Net Layer display-start() display-get- -data(packet) Display display- keyboard -hadler() display- receive(char) Transport Transport- send (port) transport- Get-port (packet) Transport- open() transport- receive (packet,port) transport-arm-for -send (port,send-handler) Net-open (receive-handler) Net-send (packet,port) Net-receive (port,hadler) Net-dispatch() Interrupt Handler

  9. Advantages of Methodology • Flow control is by synchronous subroutines-natural. • Subroutines are cheaper than IPC – no context switches, data buffering mechanisms. • Efficient and Simplicity in implementation • One layer asks advise of other. • Only subroutines are exported • Eliminates system-wide codification • Piggybacking • Asynchrony (IPC) is used only when needed

  10. Problems • Upcall Failures: resources to be recovered – shared variables and task • partition data and make shared data consistent and unlocked • make tasks reusable How resources are identified and freed? sol: mediate between client and layers How to distinguish between a task in a loop and a long computation? sol: timer/overseeing human

  11. Problems Cont.. • Recursive Calls: • Put variables in consistent state and re-evaluate states on return • Prohibit recursive downcall • Queue work request if lock is set • Set flags which is identifiable by other tasks • Replace downcall by extra return arguments/another upcall to query client

  12. Problems with Multi-task Modules • Locking • How to change the global state of a module • Signal any task in whose stack there is subroutine of this module

  13. Related Systems • Task Scheduling • Assign dynamic priority in the scheduling requests • Monitor and scheduler interaction • Deadline promotion • Address Space management • Swift implemented in single address space • How to control propagation of errors? sol: compile/runtime checking for pointers,bound checking for arrays etc. • Garbage collector

  14. Conclusion • Convinces methodology of upcalls and muti-task modules • Faster – no context switches, data buffering and IPC • Display window management failed. • Swift OS is portable • Layer as a process is a bad idea • Organize layer as a multi-task modules • Good for interactive and networked systems • This paper has been cited 167 times by the google scholar.

  15. backup • A real-time memory allocator / garbage collector: • Provide a mechanism to preallocate, or bound the delay of allocation and de-allocation of memory.

  16. Layered Systems • Advantages • Support for Abstraction: Complex problems can be partitioned into sequences of incremental steps • Enhancement: Like pipelines, a layer in a layered system interacts with only the adjacent layers – limiting impact of changes • Reuse: Different implementations of layers may be used interchangeably • Disadvantages • Not all systems can be structured in a layered fashion • Performance: Sometimes it is necessary to cross layers in order to boost performance • Abstraction Difficulties: It can be difficult to find the right levels of abstraction

More Related