+ All Categories

Choices

Date post: 18-Jan-2016
Category:
Upload: ethel
View: 50 times
Download: 0 times
Share this document with a friend
Description:
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. What is Choices?. - PowerPoint PPT Presentation
Popular Tags:
23
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
Transcript
Page 1: Choices

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

Page 2: Choices

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

Page 3: Choices

3

Where could Choices run?

• Bare networked SPARC stations• Shared memory Encore Multimaxes• Personal computers using the Intel 386 and

MC68030 processors• Tapestry hypercubes

Page 4: Choices

4

Frameworks

• An architectural design of a system• Components and interactions• From general to specific• Advantages

– Code reuse, Portability, Rapid prototyping

Page 5: Choices

5

Building Frameworks

• Abstract classes for generalized interfaces• Inclusion polymorphism• Constraints between classes• Dynamic code loading• Delayed binding and virtual functions• Conversions

Page 6: Choices

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

Page 7: Choices

7

Choices Framework

• MemoryObject • Process• Domain (Kernel domain, User domain)• Relationship between these three• NameServer

Page 8: Choices

8

Choices Subsystems

• Virtual memory• Persistent storage• Process management• Message passing• Device management

Page 9: Choices

9

Virtual Memory

• Features– Multiple 32 bit virtual memory address spaces

– One and two level paging

– Shared memory

• Components– MemoryObject

– Domain

– MemoryObjectCache

– Address Translation

Page 10: Choices

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)

Page 11: Choices

11

Persistent Storage

• Features– Support both standard and customized storage systems

• Components– PersistentStore (random access)

– PersistentObject

– PersistentStoreContainer

– PersistentStoreDictionary

– PersistentArray, RecordFile, AutoloadPersistentObject

Page 12: Choices

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)

Page 13: Choices

13

Device Management

• Features– Processes communicate with devices

– Similarities and differences with UNIX

• Components– Device (server)

– DevicesControllers

– DevicesManager

Page 14: Choices

14

Further Work

• uChoices– Micro kernel OS

• Adaptive file systems that provide different caching and network protocol support

• A fast process migration facility

Page 15: Choices

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

Page 16: Choices

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

Page 17: Choices

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

Page 18: Choices

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

Page 19: Choices

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

Page 20: Choices

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

Page 21: Choices

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)

Page 22: Choices

22

Conclusion

• Relatively old research work• Limited work on constraints• No clear description of how to build a system

Page 23: Choices

23

Choices

• Reference:– Choices, Frameworks and Refinement

– Getting Started with Choices

– An Object-Oriented Nano-Kernel for Operating System Hardware Support


Recommended