CS 4448 - Fall 1998
Object-Oriented Programming and Design
Talk 7.4
by
will farrell
THE GRASSHOPPER OPERATING SYSTEM
by
...
Orthogonal Persistence—all data should be able to survive for as long as data is required
- All data types may be persistent and that data may be manipulated in a uniform manner regardless of the length of it persists.
- Not found in most Operating Systems, Programming Languages, and Databases.
- Long term data is maintained by the database or operating system.
- Short tem data is maintained by the programming language.
- Based on information-hiding modules or objects
- This uses a very safe programming language
- utilizes static type-checking wherever possible
- utilizes dynamic type-checking when necessary
- utilizes polymorphism (obtain different forms)
- utilizes inheritance
- addressing
- stability and resilience
- process management
- protection
- Reduction in code development time, efficiency (better memory utilization & higher level of code re-use)
- Fine-grain controls over access of data (highly secure system)
- Greater flexibility (particularly where large and complex structures must be maintained.
1. Memory Management—replaced by the persistent store file system
2. Input-Output—presented in most OS’s the same abstraction as a normal file system
3. Persistent system requires that the state of the process persists
4. Persistent Operation Systems consist of data & relationships with other Persistent Operating Systems
5. Objects must be stable & resilient
6. Processes must be integrated with the object space so that the process state is contained within the Persistent Operating System
- Must restrict access to objects the same as a regular file system would
- Common Features are stores are better since they are resilient and stable
- Stability—ability of system to be consistently checkpointed on a secure medium so computation may resume from that point in the future.
- Resilient—safely resume computation after an unexpected system crash.
BUT NEVER FEAR GRASSHOPPER IS HERE!!
2.1 usually restored by a daemon process
Conventional Operating Systems support processes that only access short-term data in addressable physical or virtual memory.
- Long term is held on backup and not directly accessible and is there only abstraction.
Orthogonal Persistence is where objects must be addressed uniformly and moved between long and short storage. This will not be seen by the user.
- There will be two address spaces
- Local address where objects may be accessed by machine instructions
- Software supported address space
- BOTH OF THESE ARE TRANSFERRED TO EACH OTHER ON COMMAND
Resilience not limited to Persistent Systems in normal Operating systems you have recovery failures (ex. Fsck)
Resilience requires that the persistent store envolves from on consistent state to another automatically.
- So if the system fails it can be brought back up to its previous state
- Old files are never overwritten
In a conventional file system each file is an independent object while in a Persistent system there might be cross references between objects so if one is lost their might be a system failure.
Process Management and Protection
- Persistent systems provide a large store where all data resides where all processes execute against, so only processes may access data for which it holds access permission.
- If loss of permissions occur there is a loss of privacy or possible data corruption
- In Unix permissions set by read/write/execute and ownership which is not useful in persistence due to it having objects that are directly addressable by processes. So all protection is done by ownership.
- This is dangerous but solved by:
- using compilers which strictly enforce protection rules
- multiple persistent address spaces (course-grain of protection)
- either have total access or non at all
- Need to have a global mechanism to allow processes operating in separated addresses spaces to cooperate.
Relies on three abstractions
- Container—provides the only abstraction over storage
- Loci—agents of change
- Capabilities—means of access and protection in the system
Disk I/O System
- Disk drives are constructed in modules that may be placed in the order that best fulfills an application’s requirements.
Copyright © University of Colorado. All rights reserved.
Revised: September 17, 1998