PLEX86  x86- Virtual Machine (VM) Program
 CVS  |  Mailing List  |  Download  |  Newsgroups

What ever happened to Tandem and NonStop OS 1982


Your Ad Here

Your Ad Here

What ever happened to Tandem and NonStop OS 1986
Andrew Swallow The Z80 came out in 1976 and was a single chip beastie that cost a fraction of the price to make + sell. Highly unlikely until...

The current threads on *n*x is just like c++, a problematic implementation of a pretty good idea.

*n*x, in the clbuttic implementation that is done in the BSDs, Linux, SVR4 etc. has just one copy of the monitor (possibly with some cpu-cache-effects),

The kernel executes in four different modes; interrupt handling from devices, "uuo"servicing on behalf of users, kernel housekeeping, and scheduling.

The interrupt handling is done in priviliged kernel mode; and is usually very short. uuo services is done mostly in the user's own context. This is where I suggest a "ring0-ring1" model a.k.a. Multics and get beaten by Linus et al. Kernel housekeeping (for lack of a better word) is done in a high privilige mode but still the kernel runs as a process, and the scheduling needs lots of priviliges.

The unix fork() duplicates the process that is running; memory map, open files, and each memory image now has it's own thread and both are full virtual machines.

The duplication is a virtual one; pages remain the same, but have copy-on-write turned on. If a new program is to be loaded in a virgin address space one of the exec() system calls is used. Since this requires a full address space to be set up for a duration of a few system calls there is an alternative to fork(), vfork() that needs an exec() to follow it; but saves a lot on process setup.

The *n*x model is a strict hierarchy of processes, and the parent is responsible for cleanup for the children. It it dies, or does an appropriate system call the "grandparent" inherits the child. Dead, but not yet cleaned-up processes are called "zombies".

Ultimatly the owner of last resort is the init process; intimatly integrated with the kernel, but still running in user space.

What ever happened to Tandem and NonStop OS 1983
Which, IME, dooms it because there is no long range plan for extending the feature included in the design. However, this is how we used to work...

It is the "clbuttic" pre-unix way of doing things. Multics, Primos etc also do this. When you run a program the existing shell is pushed, and the new program mapped in and invoked. It is still visible in the process address space though.

I prefer to use *n*x style processes and do the necessary communication between them, and use mmap() to explicitly map memory between them where this is beneficial.

I do miss the recycl() call from Primos when doing this. This was a way to explicitly schedule another process, so inter-process interaction could be near instantaneuos.

-- mrr



Your Ad Here

List | Previous | Next

What ever happened to Tandem and NonStop OS 1983

Alt Folklore Computers from Newsgroups

The #1 Usenet Provider on the Internet

What ever happened to Tandem and NonStop OS 1981