Skip to content.
Sections
Personal tools
You are here: Home » Operating System

Operating System

Document Actions
Newtons use custom operating system, called OS600. It uses message based paradigm for interprocess communication. Everything is represented as "kernel objects".

Kernel Objects

OS600 manages a number of different object types. They are implemented in class listed under backend class. All objects are kept in kernel memory, and to user space only unique object id is passed. To make things easier for programmer, those object ids are actually asigned to user classes, which are just wrappers around some SWI calls operating on given object type.

ID Name Backend class User class
0 kObjectPort TPort TUPort
1 kObjectTask TTask TUTask
2 kObjectEnvironment TEnvironment TUEnvironment
3 kObjectDomain TKDomain TUDomain
4 kObjectSemList TSemaphoreOpList TUSemaphoreOpList
5 kObjectSemGroup TSemaphoreGroup TUSemaphoreGroup
6 kObjectSharedMem TSharedMem TUSharedMem
7 kObjectSharedMemMsg TSharedMemMsg TUSharedMemMsg
8 kObjectMonitor TMonitor TUMonitor
9 kObjectPhys TPhys TUPhys

Port

Ports are used to exchange messages between tasks.

Task

Tasks are executed paralelly by operating system. Tasks can be assigned an Environment. Each object could be owned by a task. Tasks see "local" object ids.

Environment

Environment groups a number of Domains and can be assigned to a number of tasks.

Domain

Each page in MMU can belong to one of 16 domains, and access rights can be set based on active domains. Each domain can have designated Fault Monitor, which handles all MMU faults.

Semaphore OpList

TBD

Semaphore Group

TBD

Shared Memory

TBD

Shared Memory Message

TBD

Monitor

Monitors are used to guarantee that only single task executes function passed to monitor constructor.

Phys

This is representation of physical memory page (or subpage).

Created by philz
Last modified 2003-09-12 12:35 PM
« July 2008 »
Su Mo Tu We Th Fr Sa
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
 
 

Powered by Plone