next up previous

2.5 Operating Systems     continued...

Another impact of having several other jobs in the process queue is that as they are executed they work themselves into the cache, displacing your program and data. During your application's time slice its code and data will fill up the cache. But when the time slice is over and a daemon or other user's program runs, its code and data will soon replace yours, so that when yours resumes it will have a higher miss rate until it reloads the code and data it was working on when it was interrupted. This period during which your information is being moved back into the cache is known as a reload transient. The longer the interval between time slices and the more processes that run during this interval the longer the reload transient.

Supercomputers and parallel processors also use variants of Unix for their runtime environments. You will have to investigate whether or not daemons run on the main processor or a ``front end'' processor and how the operating system allocates resources. As an example of the range of alternatives, on an Intel Paragon XPS with 56 processors some processors will be dedicated to system tasks (e.g. file transfers) and the remainder will be split among users so that applications do not have to share any one processor. The MasPar 1104 consists of a front-end (a DEC workstation) that handles the system tasks and 4096 processors for user applications. Each processor has its own 64KB RAM. More than one user process can run at any one time, but instead of allocating a different set of processors to each job the operating system divides up the memory. The memory is split into equal size partitions, for example 8KB, and when a job starts the system figures out how many partitions it needs. All 4096 processors execute that job, and when the time slice is over they all start working on another job in a different set of partitions.