TENEX

Virtual Machine?

  1. What's the "VM" in Tenex?
    • Unix-like, virtual address, physical address
    • virtual memory map, user could read or write
    • each slot in the map contains a page or pointer to the page
  2. What's the VMWare's VM?
    • Hardware VM
  3. What's the JVM?
    • LANG VM, Enable program run in a specific language environment (JAVA)
  4. What are some ways to distinguish between the two?
    1. VMWare’s:
      1. Give the illusion of real machine from user point of view;
      2. Have all features of a real machine, ex unique IP address, processor, memory could put different OS on top of a physical machine
      3. 100% isolation between different virtual machines
    2. Others ex JAVA, virtual machine in paper: A management of some hardware resources
  5. What were the components of the VM system?

BBN pager

Two main goals of the pager

  • Address translation
  • Sharing : pager permits individual pages to be shared for write as well as read references

Address Translation

  • translation from Virtual Address Space to Physical Address Space
    • input: VAS 9 bit virtual
    • output: PAS 11 bit physical

Sharing

  1. how was sharing in Tenex?
    • Implementation in TENEX
    • Two virtual address could be mapped into the same physical addr
    • 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.
  2. how was sharing implemented?

    • multiply pages could point to one page (in contrast, nowaday, sharing implemented by that multiply pages could point to one same frame in physical address space.)
  3. 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(Sec 3.5)

  • Support programs written for an older system
  • How was BC supported in Tenex?
    • 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.
  • Why in user space?
    • the compatibility package can be maintained as a separate module, independent from the monitor
    • protect the monitor from malfunction by the compatibility routines
    • regular use can be made of the pseudo interrupt system
    • (pseudo interrupt system: detect set of unusual conditions)
  • How was 32-bits Programs supported in a 64-bit machine?
    • dynamic binary translation
    • during loading, interperate every bit operation

Scheduling

Goals:

  1. maximum CPU usage
  2. maximum system efficiency 3.4...

  3. 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)
  4. What is the metric that determines whether a process working set is in memory?

  5. 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.

results matching ""

    No results matching ""