Download presentation
Presentation is loading. Please wait.
Published byClinton Hensley Modified over 9 years ago
1
1 Choices “Our object-oriented system architecture embodies the notion of customizing operating systems to tailor them to support particular hardware configuration and particular applications.” --from Choices homepage
2
2 What is Choices? Choices is an object-oriented operating system Written in C++ Machine and processor dependent portions are in assembler It has an object-oriented interface Operating system entities are objects
3
3 Where could Choices run? Bare networked SPARC stations Shared memory Encore Multimaxes Personal computers using the Intel 386 and MC68030 processors Tapestry hypercubes
4
4 Frameworks An architectural design of a system Components and interactions From general to specific Advantages –Code reuse, Portability, Rapid prototyping
5
5 Building Frameworks Abstract classes for generalized interfaces Inclusion polymorphism Constraints between classes Dynamic code loading Delayed binding and virtual functions Conversions
6
6 Choices Framework A hierarchy of framework representing the OS Abstract classes as configurable components Single inheritance Subtyping to express inclusion polymorphism A particular OS is a possible instantiation of the framework
7
7 Choices Framework MemoryObject Process Domain (Kernel domain, User domain) Relationship between these three NameServer
8
8 Choices Subsystems Virtual memory Persistent storage Process management Message passing Device management
9
9 Virtual Memory Features –Multiple 32 bit virtual memory address spaces –One and two level paging –Shared memory Components –MemoryObject –Domain –MemoryObjectCache –Address Translation
10
10 Process Management Features –Multi-threading support –Grouping of processes (Gang) Components –Process (System, Application, Interrupt) –ProcessContext (machine dependent state) –Processsor –Gang –ProcessContainer (implements scheduling)
11
11 Persistent Storage Features –Support both standard and customized storage systems Components –PersistentStore (random access) –PersistentObject –PersistentStoreContainer –PersistentStoreDictionary –PersistentArray, RecordFile, AutoloadPersistentObject
12
12 Message Passing System Features –Different reliability models –Support multiprocessor and distributed system Components –MessageContainer (Mach ports, communication entity) –ContainerRepresentative –MessageSystemInterface –Transport –DataTransfer (buffering strategy)
13
13 Device Management Features –Processes communicate with devices –Similarities and differences with UNIX Components –Device (server) –DevicesControllers –DevicesManager
14
14 Further Work uChoices –Micro kernel OS Adaptive file systems that provide different caching and network protocol support A fast process migration facility
15
15 uChoices (1) “To support modern OS services such as user level and gang scheduling, distributed customizable virtual memory, and multimedia in a completely modular architecture, while maintaining high performance.” Redesign of Choices as a micro-kernel
16
16 uChoices (2) Nano-kernel encapsulates hardware dependencies Micro-kernel provides the interface to the remainder of the OS –Encapsulates the micro-kernel data structures –Single standard interface to nano-kernel Intermediate levels of OS –Client, server, file system components, etc. Application interfaces
17
17 Comparisons (1) Choices vs. OS-Kit –general purposes –OS-Kit also support finer granularity –Different attitudes toward legacy code –OS-Kit supports COM interface –Choices supports ORB –OS-Kit tries to minimize the interaction and dependencies between components –OS-Kit has a minimal API
18
18 Comparisons (2) Choices vs. MMLite –General purpose (MMLite is also used in embedded systems) –The distributed file system extension of Choices is close to the mechanism used in MMLite (proxy) –MMLite focuses on support for transparently replacing components in use –MMLite supports COM
19
19 Comparisons (3) Choices vs. PURE –PURE is for deeply embedded systems –PURE extension has an OSEK API –PURE uses the concept of components at the design level, and avoids artificical boundaries in implementation concerning run time and code size –PURE is fine-grained
20
20 Comparisons (4) Choices vs. Pebble –Pebble is for complex embedded system –Concerns about safe extensibility and low interrupt latency –Pebbles uses a micro-kernel stucture –Pebble uses fine-grained components
21
21 Comparisons (5) Choices vs. eCos –eCos is designed for embedded system –eCos has its own published API –eCos is fine-grained –Statically reconfigurable –eCos has very good tool support (analysis and configuration tool)
22
22 Conclusion Relatively old research work Limited work on constraints No clear description of how to build a system
23
23 Choices Reference: –Choices, Frameworks and Refinement –Getting Started with Choices –An Object-Oriented Nano-Kernel for Operating System Hardware Support
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.