TENEX: a paged Time Sharing System for the PDP-10
Virtual Machine?
- What's the "VM" in Tenex?
- Unix-like
- What's the VMWare's VM?
- Hardware VM
- What's the JVM?
- LANG VM
- What are some ways to distinguish between the two?
- What were the components of the VM system?
BBN pager
- translation from Virtual Address Space to Physical Address Space
- input: VAS
- output: PAS
- goals: address translation, sharing
Sharing
- how was sharing in Tenex?
how was sharing implemented?
- multiply pages could point to one page (in contrast, nowasday, sharing implemented by that multiply pages could point to one same frame in physical address space.)
How was sharing of large portions of almost-the-same code and data efficiently supported?
- 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.
Copy-on-write (sometimes referred to as "COW") is an optimization strategy used in computer programming. The fundamental idea is that if multiple callers ask for resources which are initially indistinguishable, you can give them pointers to the same resource. This function can be maintained until a caller tries to modify its "copy" of the resource, at which point a true private copy is created to prevent the changes becoming visible to everyone else. All of this happens transparently to the callers. The primary advantage is that if a caller never makes any modifications, no private copy need ever be created.
Backwards Compatibility
- Support programs written for an older system
- How was BC supported in Tenex?
- How was 32-bits Programs supported in a 64-bit machine?
- translate
- 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.
Scheduling
Goals:
- maximum CPU usage
maximum system efficiency 3.4...
How does Tenex decide which processes to keep in memory? Why?
- working set (how many pages request by a process)(keep the pages which have high hit rates in memory)
What is the metric that determines whether a process working set is in memory?
Would we accept that as a definition of working set?
Exec. (user-interface)
paper conclude that it's human-engineered (in fact, human here is knowledgeable users.
File system
File name: device, directory, name, extention, version.
Summary
- rich time-sharing system
- rich Virtual memory, e.g., sharing, copy-on-write
- Support for backwards compatibility
Questions
what does the “virtual machine” term used in this paper refer to?
- TENEX: VM is similar to a UNIX/LINUX Process.
How is it different from VmWare’s vritual machine or Xen?
- Xen: VM emulates the hardware.
What was one feature of virtual memory maps that doesn't exist in today's VM systems?
- becausef of protection, today's VM system does not allow user program to change page table.