for passing information to a program at run time and determining whic h libraries are searc hed to resolve external references.

Multi-programming Environment

MPE/iX is a multiprogramming en vironment in which one process has con trol of the CPU at any given instant. All other processes are suspended to allo w time for this to occur, and the processes tak e turns. The frequency and duration of a turn is determined b y the MPE/iX Dispatcher and is dependen t on the priority assigned to the process. Processes can v oluntarily suspend for man y reasons. For example, a process ma y suspend because it is w aiting for input or output. The code and data for suspended processes is retained in memory un til space is needed by the executing process.

Priority Levels

A priority number identi￿es the priority lev el for a process. The lo wer the number, the higher the priority. Priorities range from 1 to 255. MPE/iX uses a mec hanism of subqueues to determine when to change the priorit y level of a process, if at all. Operating system processes are given the highest priorit y to promptly service requests. The AS subqueue (used for most operating system processes) receiv es the highest priorities, follo wed by the BS subqueue (usually used for special user processes). The CS, DS, and ES subqueues (used for the Command Interpreter, Editor, compilers, and standard user processes), as a group receiv e the lowest priorities.

Operating system processes are giv en the highest priorit y to promptly service requests. A t the user level, processes are queued and giv en CPU control based on rules for the t ypes of queue used at the particular lev el of the process. The operating system alwa ys runs the highest priority process that is ready to execute. A system manager can assign to users and accoun ts privileges or restrictions of one subqueue o ver another. A system supervisor has some con trol over the priorit y levels in CS, DS, and ES.

Linear Subqueues

The AS and BS subqueues are linear queues. The c haracteristics of a linear queue are: MPE/iX does not c hange the priority lev el of a process.

Processes at a giv en priority level execute on a ￿rst come, ￿rst serv ed basis.

An executing process con trols the CPU until it voluntarily suspends or receiv es a higher priority interrupt.

The AS subqueue should be reserv ed for operating system processes. A user process running in AS can severely impair the operating system's abilit y to function. The BS subqueue is for special high priority user processes. It is a recommended practice to run a special user process at a priorit y of 140 or lo wer to avoid preempting important MPE/iX functions, suc h as spooler operation.

Program Development 3-17