IES960262A2 - Computer System - Google Patents
Computer SystemInfo
- Publication number
- IES960262A2 IES960262A2 IES960262A IES960262A2 IE S960262 A2 IES960262 A2 IE S960262A2 IE S960262 A IES960262 A IE S960262A IE S960262 A2 IES960262 A2 IE S960262A2
- Authority
- IE
- Ireland
- Prior art keywords
- messages
- message
- queue
- module
- primary
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000000034 method Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 230000009471 action Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Landscapes
- Digital Computer Display Output (AREA)
Abstract
A computer system comprises a display unit 10 and a plurality of primary processing modules 13, 19, 20 divided into groups and a monitor unit 12 coupled to respective portions 10B, 10A of the display unit, and a mouse 14 and a keyboard 15 coupled to a control unit 11. The primary processor modules and the control means generate messages which are passed to the monitor unit which generates messages which are passed to the primary processing modules. The monitor unit includes a message processing subsystem comprising a message processor 25, a plurality of input queue registers 26,27-1, 27-2 for receiving messages of different priorities, and a plurality of output queue registers 29-1, 29-2, 29-3 for storing messages to the different groups of primary processing modules. One of the input queue registers, 26, is a fast queue fed by messages from more than one group of messages to the input queues. <Fig.4>
Description
The present invention relates to computer systems, and more specifically to systems for presenting a variety of information blocks.
It is a commonplace that a computer system consists of hardware and software (programs), with both being equally essential for the system to do useful work. A program (in the loose sense) will often be very large, eg some tens of Megabytes. The program in this loose sense is more usually termed a package, which will consist broadly of a number of program modules (including in particular modules termed executable) and a number of data-type files (for data, graphics, and so on). This breaking down or modularization of the package helps to make its design and development more manageable.
If a software package consists of a number of distinct program modules, however, there is a need for communication mechanisms between the modules. (The program modules can be regarded as being, or running on, respective processors.) One type of communication mechanism which is often required is messaging, ie the passing of messages between the modules. It is possible to do this by using a data-type file for the purpose, with each module writing its messages to other modules in that file and inspecting the file for any messages from other modules to itself. However, this technique is extremely cumbersome. A system has therefore been developed which provides a queue unit for such messages; the queue unit provides a considerably quicker and more efficient method for different program modules to pass messages to each other.
We have realized, however, that this known queue mechanism has certain limitations. Essentially, with the known queue mechanism, messages emerge from the queue in the order in which they are entered into it. Thus different messages cannot be given different priorities.
It would be possible to provide a plurality of queues each with a different priority, with each processor (program module) sending its messages to the !>
'Htteg different queues in accordance with the different priorities of those messages and taking messages from the queues in accordance with the priorities of those queues. However, this technique requires a substantial elaboration of every processor. The general object of the present invention is to provide an improved system for organizing the sending of messages with different priorities between different processors.
Accordingly the present invention provides a computer system comprising a display unit, a primary processor module and a monitor unit coupled to respective portions of the display unit, and control means comprising manual control elements and a control unit coupled to the display unit, the primary processor module and control means generating messages which are passed to the monitor unit and the monitor unit generating messages which are passed to the primary processing module, the monitor unit including a message processing subsystem comprising a message processor, a plurality of input queue registers for receiving messages of different priorities, and an output queue register for storing messages to the primary processing module.
A computer system embodying the invention will now be described, by way of example, with reference to the drawings, in which:
Fig. 1 is a general simplified block diagram of the system;
Fig. 2 is a more detailed block diagram of the monitor unit of the system of Fig. 1;
Fig. 3 is a general block diagram of a more elaborate system; and Fig. 4 is a more detailed block diagram of the message processing subsystem in the monitor unit of the system of Fig. 3.
Referring to Fig. 1, the system comprises a display unit 10, a control unit 11, a monitor unit 12, and a course module 13. The course module is designed to display a course of instruction to the user, the course consisting of a sequence of screen displays. A mouse 14 is coupled to the control unit 11, and operates in the conventional manner. (That is, movement of the mouse causes a corresponding pointer to move on the display 10, the control unit 11 identifies particular areas of the display as having particular
-3L06O262 significances; and when the mouse is clicked, the control unit generates a particular signal associated with the area pointed to by the mouse. This process can be referred to generally as simply generating the signal by the mouse.) A keyboard 15 is also coupled to the control unit 11, and also operates in the conventional manner.
In each screen display, various items of information are displayed, various questions are asked, and various answers are to be entered. Answers can be entered in two ways; some can be entered by means of the mouse 14, and others by means of the keyboard 15. The mouse is generally used to generate Yes/No answers, selections from multiple choice displays, etc, and the keyboard is generally used to generate alphanumeric answers (text, numbers, etc). The various answers can be generically described as messages.
The screen display in fact consists of two portions, an upper portion 10A and a lower portion 10B. The course unit effectively controls or generates only the lower portion 10B of the display. When the mouse is used to generate such messages, the areas pointed to by the mouse will all be in that lower portion.
The monitor unit 12 is used to perform general system-related functions, such as switching between different processes, forcing jumps between different stages or screens of the course, etc. The upper portion 10A of the display is effectively controlled by this monitor unit, and the areas generated in that upper area are used to display items of information representing various more general control actions. The selection and clicking onto these by the mouse causes the control unit 11 to generate messages representing these control actions.
The control unit 11 therefore generates messages corresponding to both areas or portions of the display, ie to both the monitor unit 12 and the course module 13; these messages are passed over link 16 to the monitor unit. Further, the course unit may also generate messages, which are passed to the monitor unit over a link 17. The monitor unit processes all these messages. Some messages are directed to the monitor unit itself,
-4900202 which naturally takes the appropriate action. Others are directed to the course unit, and are passed to that module by the monitor unit over a link 18.
The messages may arrive too fast for them all to be processed immediately; also, different messages may have different priorities. The monitor unit therefore contains a message processing subsystem, shown in Fig. 2. Briefly, this subsystem comprises a message processor 25 to which is coupled a fast queue register 26 and an incoming message queue register 27. Incoming messages are fed to a switch 28 which passes them to the appropriate one of the two queues 26 and 27 according to their priority. (Each message is generated to include a priority, which in this case can have one of two values.)
The message processor is also coupled to an outgoing message queue register 29. A gate 30 at the output of the queue 29 performs two functions; it signals to the message processor 25 whether or not there are any messages waiting in the queue 29, and can be controlled by the message processor 29 to release the next message (if any) waiting in the queue 29.
The message processor 29 is also coupled to a database memory unit 31. Further, the message processor 29 can send messages to itself; such a message is sent over link 32 to the switch 28.
The operation of the message processing subsystem can most easily be explained by considering a typical sequence of operations. For a simple situation, a typical sequence is as follows.
When the user selects the course module 13, a play message is sent to the message processing subsystem. This subsystem receives this message and places it on the incoming queue 27. The message processor 25 takes the messages from the incoming queue 27 in the sequence in which they were placed on the queue, and processes those messages. In due course, it reaches the play message, and it starts to process the message. (This assumes that there are no messages outstanding on the fast queue.
-5960262
Messages on the fast queue 26 take priority over messages on the incoming queue, and messages on the latter queue are only dealt with after all messages on the fast queue have been dealt with.)
The message processor 25 decides what action to take in response to the message. For the present play message, the action is simply to place the message on the outgoing queue 29 to go to the course module 13. (If there are any more messages to the course module, they will also be placed on the outgoing queue 29; all the messages to the course will then be sent in sequence.)
The course module 13 receives the message, does some processing on it and sends a ready message to the message processing subsystem in response.
The message processing subsystem receives this ready message and places it on the fast queue 26. Assuming that there are no earlier messages still on the fast queue, the message processor processes this message immediately. The message informs the message processor that the course module is ready for the next message from the outgoing queue 29. If there is a message on that queue the message processor enables gate 30 to send it. In the present case, however, there is no message following the ready message to the course module, so no message to the course module was placed on the outgoing queue. The message processor therefore takes no further action on the ready message. It proceeds to deal with the next matter, ie dealing with the next message (if any) on the incoming queue.
In a simple situation, this may be the end of the particular sequence. However, the sequence may be more complicated if, for example, the course module encounters an end-of-screen situation as a result of the user selecting the course module (and the play message was sent as above). In this situation, when the course module receives the play message, it reaches the end of the current screen. It therefore sends an end of screen message to the message processor before it sends the ready message.
The message processing subsystem receives the two messages, end of
-696026 2 4 screen and ready, and places them both on its fast queue 26. Since the end of screen message precedes the ready message, the message processor 25 processes the end of screen message, with the ready message being left on the fast queue to be dealt with later. In response to the end of screen message, the message processor looks at the database memory 31 to determine what should follow that situation. The end of screen situation should be followed by the display of the next screen, so the message processor 25 places two messages on the outgoing queue 29, a next screen message and a play message.
The message processor 25 next takes the ready message from the fast queue 26. In response to this, it checks the outgoing queue 29, finds that there is a message on it, and sends that message. (In fact, there are two messages on the outgoing queue; the one at the head of the queue, the next screen message, is the one sent.)
The course module 13 receives this message: it duly displays the next screen on the lower portion 10B of the display 10, and having done so, sends a ready message to the message processing subsystem. The subsystem receives this message on its fast queue 26 and responds to it by checking its outgoing queue 29. Since there is still a message on that queue (the play message), that message is sent. The course module 13 receives that message and duly performs the appropriate action, and having done so, sends a ready message to the message processing subsystem. That subsystem receives this message (on its fast queue 26), and checks the outgoing queue 29. The outgoing queue is now empty and there are no more messages to be sent, so the message processor 25 (assuming that there are no more messages on the fast queue) now takes the next message off the incoming queue 27 and processes it. If there are no messages on the incoming queue, the message processor 25 waits for further messages to arrive.
It will be noted from this that the message processor's knowledge of the state of the course module may lag behind the actual state of the course module. For example, just before the message processor takes the first ready message off the fast queue, as far as the message processor is
-Ί 960262 concerned the course module is busy. However, the queueing of the messages ensures that this does not lead to malfunction.
Fig. 3 is a general block diagram of a more elaborate system, using corresponding references. In this system, there is a plurality of course modules 12A, 12B, etc, and two further modules, a topic module 19 and a backdrop module 20. These modules, which may together be referred to as primary modules, are all coupled to the display 10 and to the message links 17 to the message processing subsystem and 18 from that subsystem. These primary modules are all independently executable; that is, each can perform or execute its program independently of the others.
The course modules will normally define and run courses which are independent of each other but all relate to a common general field. Thus if the field is finance, for example, there may be courses relating to banking, foreign exchange, bonds, and so on. The topic module is intended to operate as a kind of index, so that a specific subject can be looked up in the topic module, which will then provide references to the occurrences of that subject in the various topic modules. (The topic module can conveniently be interactive, so that the user can for example combine terms logically to narrow down an initial wide range of references.) The background module is intended to provide, as its name implies, background and overview functions, enabling the user to see the logical structure of and relationships between the various courses, the components (eg successive screen displays) of individual courses, etc.
At any particular time, only one of the course modules will be active. The active course module will control the lower portion 12B of the display and send messages to the message processing subsystem and receive messages from that subsystem. As discussed above, the user can use the mouse and pointer to select operations in the lower portion 10B of the display 10 relating to the various functions available in the active primary module, and to use operations in the upper portion 10A of the display to select more general system-type control operations.
Fig. 4 is a more detailed block diagram of the message processing
-896 028 2 » subsystem in the monitor unit of the system of Fig. 3. It will be seen that this subsystem has the same general organization as the subsystem shown in Fig. 2, but there are two major differences.
First, the single output queue register 29 is replaced by a set of three output queue registers 29-1 to 29-3 for the three types of primary module, a course queue (or, more accurately, a course module queue) 29-1, a topic module queue 29-2, and a background module queue 29-3. The message processor 25 generates messages to all three different types of primary module, and posts them to the appropriate output queues. This means that the different types of primary module can proceed with their operations with a high degree of independence; each type can proceed to respond to its messages without having to wait for preceding messages to the other two types of module to be dealt with first.
Second, the single input queue register 27 is replaced by a set of two input queue registers 27-1 and 27-2. Queue 27-1 is for messages from the course modules and the topic module; queue 27-2 is for messages from the background module. This reflects the fact that messages relating to the background module have a low degree of urgency, while messages from the course modules and the topic module have broadly similar degrees of urgency.
The input queues (including the fast queue 26 have a strict priority ordering. The message processor 25 looks at the fast queue 26 first, and processes any messages on that queue; if there are no messages on the fast queue, it looks at the course and topic queue 27-1, and processes any messages on that queue; and if there are no messages on either the fast queue or the course and topic queue, it looks at the background queue 27-2 and processes any messages on that queue. Messages from the three different kinds of primary module will of course normally each carry an indication of their origin, so that the switch 28 can pass each to the appropriate input queue.
The operation of this system is essentially similar to that of the system of Figs. 1 and 2, subject of course to the facts that incoming messages to the
-9L 960262 message processing sub-system are ordered among the three incoming queues according to their degree of urgency or priority, and outgoing messages are placed on the appropriate ones of the three outgoing queues according to their destinations. It will be noted that the priority ordering resulting from the three incoming queues is distinct from the ordering resulting from the three outgoing queues. (In principle, each primary module could send different kinds of messages to the two different queues 27-1 and 27-2.) Further, the input queues are associated with an ordering according to priority, controlling the sequence in which messages are dealt with, while the outgoing queues reduce the ordering or sequencing of outgoing messages by allowing different types of outgoing message to be dealt with in parallel rather then in strict sequence.
Claims (5)
1. A computer system comprising a display unit, a primary processor module and a monitor unit coupled to respective portions of the display unit, and control means comprising manual control elements and a control unit coupled to the display unit, the primary processor module and control means generating messages which are passed to the monitor unit and the monitor unit generating messages which are passed to the primary processing module, the monitor unit including a message processing subsystem comprising a message processor, a plurality of input queue registers for receiving messages of different priorities, and an output queue register for storing messages to the primary processing module.
2. A computer system according to claim 1 including a plurality of primary processing units and wherein the message processing subsystem includes a plurality of output queues associated with different ones of the primary processing units.
3. A computer system according to claim 2 wherein the primary processing units are divided into groups, and the output registers of the message processing subsystem consist of one register for each group.
4. A computer system according to claim 3 wherein at least one of the input queue registers is fed by messages from more than one group.
5. A computer system according to any previous claim wherein the message processing subsystem includes a link from the message processor to the input queue register(s).
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IES960262 IES68927B2 (en) | 1996-03-28 | 1996-03-28 | Computer system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IES960262 IES68927B2 (en) | 1996-03-28 | 1996-03-28 | Computer system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| IES960262A2 true IES960262A2 (en) | 1996-07-24 |
| IES68927B2 IES68927B2 (en) | 1996-07-24 |
Family
ID=11041136
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| IES960262 IES68927B2 (en) | 1996-03-28 | 1996-03-28 | Computer system |
Country Status (1)
| Country | Link |
|---|---|
| IE (1) | IES68927B2 (en) |
-
1996
- 1996-03-28 IE IES960262 patent/IES68927B2/en not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| IES68927B2 (en) | 1996-07-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5877764A (en) | Graphical user interface for managing text i/o between a user and a parallel program | |
| US6256659B1 (en) | System and method for performing hybrid preemptive and cooperative multi-tasking in a computer system | |
| EP0437441B1 (en) | Workstation and method of operating it | |
| US5592657A (en) | Console simulator, multi-console management system, and console management distribution system | |
| US5721850A (en) | Method and means for navigating user interfaces which support a plurality of executing applications | |
| EP0349458B1 (en) | Method of dynamic actuation of background windows for priority applications | |
| CA2462379C (en) | System and method for monitoring software queuing applications | |
| HK1000077B (en) | Workstation and method of operating it | |
| EP0463252B1 (en) | Message handling in data processing apparatus | |
| US5550962A (en) | System for selectively performing parallel or sequential drawing processing | |
| US5534887A (en) | Locator icon mechanism | |
| EP0601579A2 (en) | Client server system and control method thereof | |
| CA1277771C (en) | Method and apparatus for computation stack recovery in a calculator | |
| EP0137189A2 (en) | A method and an apparatus for outputting an operation guidance message to terminals in a computer system | |
| IES960262A2 (en) | Computer System | |
| US7013467B1 (en) | System and method for managing computer system resources using command control vectors | |
| US4868782A (en) | Display terminal | |
| Cotton | Languages for graphic attention-handling | |
| JPS5856025A (en) | Common control system for output display sentence | |
| KR950015191B1 (en) | Multiprocessor debugging device and method | |
| Billard et al. | A GUI for a manager of lightweight processes | |
| JPS5852765A (en) | Collecting and controlling system for statistical information | |
| GB2310937A (en) | Monitoring the execution of modular programs | |
| JPH06332724A (en) | Mounting system and execution muliplicity control system and execution priority control system for logical unit for object directing type system | |
| JPH01282665A (en) | On-line control system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Patent lapsed |