• Keine Ergebnisse gefunden

An operational memory share supervisor providing multi-task processing within a

Im Dokument FALL JOINT COMPUTER CONFERENCE (Seite 59-62)

"single partition

byJ.E.BRAUN

Penna. -N. J. -Md. Interconnection Philadelphia, Pa.

and

A.GARTENHAUS

Applied Programming Services, Inc Philadelphia, Pa.

INTRODUCTION

The real-time digit"al process control system, of which the Partition Share Supervisor is an operational feature was designed and implemented to assist in the

function~

of monitoring, evaluating and controlling an inter-connected system of electrical power utility com-panies. The main processing unit is located at the central control office with teleprocessing communi-cations to remote lower level control centers.

The basic addressable unit within the main processor is the byte (8 data bits

+

1 parity bit), with a word consisting of four bytes. There is a storage protect option which is implemented through assignment of storage and "keys" to contiguous 2048 byte blocks of memory. A group of memory blocks with matching protect keys comprise a partition or task area. This protection feature permits non destructive read-out across partition boundaries but will cause termination of any task which attempts to write in another task's memory area.

The arithmetic-logic unit maintains its current status in a program status word which contains such infor-mation as whether or not I/O is currently being per-mitted on each of the data channels, the protect key for

the instruction presently being executed, present machine status, length of current instruction, the ad-dress of the next in"struction to be fetched, etc. There are certain instructions within the instruction set which can only be executed when the machine is in the "supervisor" state, i.e., when the portion of the program status word which indicates machine status is correctly set." These instructions are classified as

"privileged" instructions and perform such functions

"as disabling data channel interrupts, altering storage keys, resetting the program status word, etc.

The ability of the computer to disallow certain of its instructions when operating in the normal problem program state prevents inadvertent destruction of critical storage area or catastrophic conditions being caused by problem programs which could lead to system shutdown.

51

This system utilizes the indeperldent I/O channel concept which permits the main processor to continue execution of program instructions while the channel transfers data from I/O devices into main storage by cycle interleaving.

The multi-tasking capability of the manufacturer supplied software support system permits priority

52 Fall Joint Computer Conference, 1969 scheduling of several tasks all utilizing the resources of one processing unit. The design of the real-time control system requires that it perform certain of its functions in a cyclic basis. Therefore, the internal storage has been divided into' four task areas (partitions) with time de-pendent and critical programs placed in partitions with relatively higher priorities. The following task de-scriptions are listed in order of task priorities:

Task 1 (core requirement) == 42K)

Task 1 is dedicated to the manufacturer supplied \

operating system (O/S) which contains supervisory routines, data management routines priority scheduler, etc.

Task 2 (Icore requirement ==72K)

Task 2 incorporates the process control family of programs. It also includes the remote typewriter/caTd reader communications programs since they use little processing time and benefit from both the independence of input/output channel operations and quick response time available to the task. D~ring power system emergency situations, Task 2 additionally initiates routines which, due to their critical nature, retain system resources and dispatch emergency communi-cations until the disturbance is relieved.

Task 3 (core requirement == 40K)

Task 3 contains special digital console message pro-cessing routines, text output gene*ators for programs operational within Task 2, routines! for processing card inputs from the telecommunications system and rou-tines which monitor and control inter-task communi-cations.

Task 4 (core requirement == 6K)

Task 4 is the Partition Share, Supervisor (PSS) which causes Tasks 5 and 6 to share the remaining available memory. The detailed description of this task is the subject of this paper.

Task 5 (core requirement == 96K)

Task 5 consists primarily of scientific application programs. These programs are run as required either on special demand from real-time on~line tasks or peri-odically with the length of the period depending on the nature of the program.

HIGH TELECOMMUN I CATI ONS CONTROL ANALOG/DIGITAL TELECOMMUNICATIONS CONTROL

EMERGENCY DISPATCH ROUT I NES

V/

DIG I TAL CONSOLE MESSAGE PROCESS I NG OUTPUT TEXT GENERATION FOR TASK 2 REMOTE CARD I NPUT PROCESSOR

TASK-TO-TASK COMMUNICATIONS MONITORING

~:::

OFFL I NE MISCELLANEOUS USES

(TASK B)

V/

OPERATING SYSTEM CONSISTING OF:

SUPERY I SORY, DATA MANAGEMENT, PRIORITY SCHEDULER ROUTINES, ETC.

V/

Figure I-Initial memory configuration with task functional descriptions and relative locations shown

Task 6 (core requirement == 96K)

72K

6K

961t

This task is the off-line* task and is dedicat.ed for miscellaneous uses such as compiles, assemblies, ac-counting routines, etc. which do not directly operate within the real-time environment.

This use is similar to the term "background" which the re9.der may have previously encountered.

The dispatching function consists of allocating the

Inter partition communication

The subject real-time system requires that oper-ational tasks be able to communicate for the purpose of exchanging information such as live data, requests to run various subtask routines, etc. Tasks which communicate with other tasks are equipped with inter-task communication routines which are considered the highest priority routines within the individual task. In this fashion, when the task is dispatched, the internal task priority scheme allows the communication routines to be processed first. Furthermore, any task can be interrupted to allow its communication routines to operate. Thus tasks can communicate at any time (asynchronously) .

Partition sharing

The Partition Share Supervisor (PSS) is required to be able to handle three basic functions:

1. Suspend processing of the off -line task when required.

2. Load and process the lowest priority on-line task (LPOL).

3. Upon completion of (2) above, be able to restore and restart the off-line task.

There are two conditions under which PSS suspends off-line processing. One is when the previously set real-time clock causes an interrupt. This interrupt is recognized as indicating the LPOL is to be recycled for a periodic run. The other is when a communication is received' from another task indicating that one of the routines within the LPOL task is to be executed.

Figure 1 shows the computer configuration in the are operational. There are now three problem program

An Operational Memory Share Supervisor 53

HIGH

Figure 2-Showing memory configuration when low priority on line (LPOL) task is active

partitions and the area dedicated to the PSS and LPOL tasks is one contiguous partition.

Detailed discussion

The following description details the operations in-volved in reconfigurating the system from that of LPOL task for time dependent programs.

2. External interrupt triggered by communication from another task indicating a need to process a requested program.

Prior to either type of interrupt, the PSS task is in a wait state (i.e., the task cannot be dispatched until the completion of one of the above two events).

E4 Fall Joint Computer Conference, 1969

Upon being initiated, PSS takes the following steps:

1. Places its own task in the supervisor state in order to allow execution of privileged instructions required to modify system control blocks in the nucleus, override the storage protection feature, and disable system interrupts at critical times.

2. Allows all outstanding I/O to complete in the off-line partition (quiescing the partition).

3. Erases the boundary between the PSS task and off-line task.

4. Deletes reference to the now non-existent off-line task from operating system control blocks.

5. Writes a copy of the off-line partition, which is now an extension of the memory area of the PSS task, on a disc file.

6. ~eads the LPOL task into the vacated area.

7. Executes the LPOL task.

At this point, we have gone from the configuration shown in Figure 1 to that of Figure 2 and the LPOL task is now able to process its requests. Upon com-pletion by the LPOL task of all required processing, the following steps are taken by PSS to return to the off-line configuration:

8. Writes the LPOL task on a disc file.

9. Reads the off-line task into the vacated area.

10. Re-establishes task boundaries erased in 3.

11. Restores system reference to the off-line task.

12. Places the PSS task in a "wait state" awaiting an interrupt which will cause a recycle.

At thi'3 point, the off-line task is fully restored to the system and in a "ready state". It will then be red is-patched by the task dispatching routines on a priority basis.

System 'control blocks

Prior to a detailed discussion of PSS mechanics, we will discuss relevant system control blocks utilized in effecting partition sharing.

Task Control Block (TCB)

There is a TCB associated with each task. Contained in the TCB are various boundaries, indicators, etc., used in performing task controL Figure 3 shows those fields (with references labeled as used in this paper) which are accessed or modified by PSS.

TCB List (TCBLIST)

The TCBLIST is located in the nucleus and is a list of TCB 10cationR in ord~r of task priority. There

FIELD C(I.ENTS TCBTAHB PO I NTEfI TO TASK

MSS (B(JUNDARY BOX-SEr: FIG.5) TCBPKE CONTA HIS STORAGE

PROTECTION KEY FOR THlt TASK

TCBIDF TASK I DIENTI F I cn I ON

NUMBER TCBTCB PO I NTEFI TO NEXT

LOIER F'R I OR I TV TASK T(:B

Figure 3~Task control block (TCB)

is an entry in the list for each task in the system (see Figure4).

Task Area Boundary Block (T ABB)

There is a TABB associated with each task. The TABB contains addresses defining the upper and lower boundaries of the task region and also has a pointer to the first free area label within the task. The format of a TABB is shown in Figure 5.

Free Area Label (FAL)

There is an F AL which is an integral part of every available free storage area in memory. An F AL is

Im Dokument FALL JOINT COMPUTER CONFERENCE (Seite 59-62)