TENEX, a Paged Time Sharing System for the PDP-10
UNIX-like
3 types of VM
Type | Example |
---|---|
OS VM | TENEX |
H/W VM | VM ware |
LANG VM | Java on JVM |
Paging
Relocation
It provides individual mapping (relocation) of each page of both user and monitor address spaces using separate maps for each.
Virtual address -> Physical address
Sharing
Implementation in TENEX
VAS
+------------+
| |
+------------+
+------> +-------+ PAS
| +------------+ | +------------+
| | | | | |
| +------------+ | +------------+
| +---> |
| VAS +------------+
| +------------+ | |
| | | +------------+
| +------------+
+------+ |
+------------+
| |
+------------+
VAS = Virtual Address Space
PAS = Physical Address Space
Implementation used in systems nowadays.
VAS
+------------+
| |
+------------+
| +-------+ PAS
+------------+ | +------------+
| | | | |
+------------+ | +------------+
+---> |
VAS | +------------+
+------------+ | | |
| | | +------------+
+------------+ |
| +-------+
+------------+
| |
+------------+
VAS = Virtual Address Space
PAS = Physical Address Space
The pager permits individual pages to be shared for write as well as read references, so two or more processes may communicate by sharing a common page into which any or all may write.
Copy on Write
Allow users to share large portions of an address space containing procedures and data, and to obtain private copies of only those pages which are changed.
Backward Compatibility
Problem
Make binary images of old programs run without re-compilation on new systems.
Change OS while still support old programs.
Solution
A compatibility package running in the user space, translating the old system monitor calls to the new JSYS instruction supported by the new system.
Tradeoff: Overhead or Recompile.
Scheduler
Balance Set
- Maximize CPU utilization
- Interactivity
- Fairness
- Priority boost for those willing to pay more
Priority + Memory status (In paging?) -> Run state
Hierarchy
Process Tree
EXEC
Running in Shell, creating a child process of the shell process
Protection
File System
File Descriptor
- Device name
- Directory name
- File name
- Extension
- Version Number
C:\FILE.C VER
If the version should be maintained by file system or not is a problem. In TENEX, it is supported by FS, but in other systems, we need extra tools, e.g., CVS.