GB1484459A - Data processing system including semaphores - Google Patents

Data processing system including semaphores

Info

Publication number
GB1484459A
GB1484459A GB5213074A GB5213074A GB1484459A GB 1484459 A GB1484459 A GB 1484459A GB 5213074 A GB5213074 A GB 5213074A GB 5213074 A GB5213074 A GB 5213074A GB 1484459 A GB1484459 A GB 1484459A
Authority
GB
United Kingdom
Prior art keywords
semaphore
link
waiting
message
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
GB5213074A
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SA
Original Assignee
Bull SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from FR7342696A external-priority patent/FR2253423A5/fr
Priority claimed from FR7342712A external-priority patent/FR2253414A5/en
Priority claimed from FR7342697A external-priority patent/FR2253420A5/fr
Priority claimed from FR7342691A external-priority patent/FR2253418A5/fr
Application filed by Bull SA filed Critical Bull SA
Publication of GB1484459A publication Critical patent/GB1484459A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Abstract

1484459 Data processing system COMPAGNIE HONEYWELL BULL 2 Dec 1974 [30 Nov 1973 (4)] 52130/74 Heading G4A A data processing system includes in its main memory, semaphores for storing data or processes requesting data, a first instruction P, performed when data is requested, addressing a semaphore data structure, if the data is not available the process being placed in its wait state and a second instruction V, performed when data is delivered, addressing a semaphore data structure, a process tied to the semaphore (i.e. waiting for the data) being transferred from the wait state to the ready state when the data is available. A semaphore is consequently a data structure used to link a process and an event that do not occur simultaneously. Each process has an area of main storage assigned to it for storing a process control block, system base holding the address of the currently running process and the address of a G0 segment which contains queues of ready processes (in order of priority) and queues of waiting processes with an associated semaphore pointing to the head of the queue. The system base also includes a pointer to the head of the ready queue to indicate the process to be run when a current process is put into its wait state (e.g. when it is waiting for an event, e.g. a resource to become available) it being then inserted in a queue of processes awaiting the event. Since the number of processes ready or waiting varies dynamically the number of process links varies which causes a memory management problem. This is solved by also forming a free process link queue linking all processes not ready or waiting. This queue can then be used to extend a particular queue of ready or waiting processes. Semaphores are addressed either directly or logically using a segment number and a relative location within the segment. A G table word in the system base is used to access a table of G segment descriptors which is used to access a system segment for storing semaphores. A word in the process control block contains the logical address of a semaphore to which the process is linked (if waiting) or was linked (if suspended when waiting). The G0 segment is used to store a plurality of process links PL and a process link semaphore PLS. Each process link contains (1) the number of the process, (2) the priority of the process, (3) a link to the next entry and (4) a segment relative address, each process occurring in only one link and a link being in only one queue at a time. Other G segments Gl-Gn have the format not shown in Fig. 15 and are utilized when the gating indicator G5 in the G segment descriptor giving the base address in the main store of the segment is set to 01. The first 32 bit word of the segment has a 2 bit tag field, a 2 bit ring number VR (for protection purposes when performing a V instruction), a 2 bit ring number PR (for protection when performing a P instruction), a 2 bit maximum ring number IR (these ring numbers referring to semaphore descriptors in the segment and consequently may refer to semaphores not in the segment), 8 zero bits and 16 free link semaphore pointer bits FLSP pointing to free link semaphore FLS 1504. Further space is assigned to the table of semaphore descriptors 1502, semaphores 1506, message and free message links 1508. Each message link comprises a 48 bit message header including the relative address of the next message link, a reason field, a priority field, a tag and sender's name and an 84 bit message. Semaphores 1600, 1602 may be of four types: (1) without a message-a 2 word structure with 4 tag bits, (bits 0-3) a 12 bit maximum counter field SMC (bits 4-15), a 16 bit semaphore count field SCT (bits 16-31) indicating the actual number of processes waiting on the semaphore or the number of resources waiting on the semaphore, a 16 bit process queue head pointer PQHP (bits 32-47) pointing to the head of the process link associated with the semaphore and a 16 bit field TEP bits (48-63) giving the name of the last process to have performed a successful P operation on the semaphore. The semaphore count field is decremented by each P operation and incremented by each V operation. (2) With a message-a 2 word structure in which bits 32-47 point to either a process queue head pointer or a message queue head pointer and bits 48-63 point to a message tail queue pointer. (3) A process link semaphore-a 2 word structure in which bits 48-63 represent the relative address of the first process link queue head point giving the address of the first link in relation to the T0 segment. (4) A free link semaphore-a 3 word structure in which bits 16-31 represent a free link semaphore count (the number of processes waiting for a free message link), bits 32-47 represent a process queue head pointer, bits 48-63 represent a free message link queue pointer, bits 64- 71-are zero, bits 72-79 represent the name of the free link semaphore and bits 80-95 indicate the number of channels waiting for a free message link. Addressing a semaphore.-This is effected by a P or V instruction having a 20 bit address syllable AS. Using a J table pointer in system base a J table 503 (Fig. 17) is accessed to derive a P pointer which is used to access a P table to derive the address of the process control block 400 of the associated process. Using a ASW word stored in the block a table of segment descriptors 1700 is accessed and using the segment relative address in the address syllable the segmented address of the descriptor of the semaphore on which the P or V instruction is to execute is found. A check is then made as to whether the semaphore segment number is held in an associative memory (used for storing recently accessed numbers) or not. If it is not it is fetched from main memory. When the semaphore is accessed its SCT field is tested. If it is greater than 0 the semaphore indicates for example that a particular resource is available and the process takes the resource, decrementing the SCT field and entering its name in the TEP field. If it is less than or equal to 0 the resource is unavailable and the process enters the queue of waiting processes, ties itself to the semaphore i.e. enters the queue of processes linked to the semaphore and decrements the SCT field. If a process then finishes with the resource it increments the SCT field and if the field is then less than zero the first process waiting on the resource is transferred from a waiting queue to the ready queue where it is inserted in priority order. For semaphores with messages, when a message is delivered by a process it is written into the process control block of a process waiting on the message, this process then passing into the ready queue. If no processes are waiting on the message the message is inserted in a free message link and tied to the semaphore, the count field SCT being incremented. Consequently when the count field is positive messages of resources are waiting for processes and when it is negative processes are waiting for messages or resources. When the count field SCT exceeds the SMC value an exception occurs. This prevents one semaphore from using up all the free message links. If no free message links exist the process delivering the message has to be put into its wait state. The routines effected when particular P and V instructions are executed on the various types of semaphores are described in detail.
GB5213074A 1973-11-30 1974-12-02 Data processing system including semaphores Expired GB1484459A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR7342696A FR2253423A5 (en) 1973-11-30 1973-11-30
FR7342712A FR2253414A5 (en) 1973-11-30 1973-11-30 Semaphore arrangement for multi-programme data-processing system - with exchange of data between processes
FR7342697A FR2253420A5 (en) 1973-11-30 1973-11-30
FR7342691A FR2253418A5 (en) 1973-11-30 1973-11-30

Publications (1)

Publication Number Publication Date
GB1484459A true GB1484459A (en) 1977-09-01

Family

ID=27446249

Family Applications (1)

Application Number Title Priority Date Filing Date
GB5213074A Expired GB1484459A (en) 1973-11-30 1974-12-02 Data processing system including semaphores

Country Status (3)

Country Link
JP (1) JPS6112291B2 (en)
DE (1) DE2456534A1 (en)
GB (1) GB1484459A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2216306A (en) * 1988-02-29 1989-10-04 Ardent Computer Corp Load and synchronize computer architecture and process

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63128794U (en) * 1987-02-14 1988-08-23

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2216306A (en) * 1988-02-29 1989-10-04 Ardent Computer Corp Load and synchronize computer architecture and process

Also Published As

Publication number Publication date
JPS6112291B2 (en) 1986-04-07
JPS50117331A (en) 1975-09-13
AU7588074A (en) 1976-06-03
DE2456534C2 (en) 1988-05-05
DE2456534A1 (en) 1975-08-21

Similar Documents

Publication Publication Date Title
US4965716A (en) Fast access priority queue for managing multiple messages at a communications node or managing multiple programs in a multiprogrammed data processor
US4543626A (en) Apparatus and method for controlling digital data processing system employing multiple processors
US4807111A (en) Dynamic queueing method
US4173783A (en) Method of accessing paged memory by an input-output unit
US4769771A (en) Multiprocessor system comprising a plurality of data processors which are interconnected by a communication network
US4507760A (en) First-in, first-out (FIFO) memory configuration for queue storage
US4482956A (en) Parallel queueing method
US4499576A (en) Multiplexed first-in, first-out queues
US5073852A (en) Network protocol translator including method and apparatus for reducing interprocess communication and data exchange overhead
US4358829A (en) Dynamic rank ordered scheduling mechanism
US4320455A (en) Queue structure for a data processing system
US3599162A (en) Priority tabling and processing of interrupts
EP0651329A2 (en) Frame buffering of network packets
EP0113612A2 (en) Address conversion unit for multiprocessor system
GB1511281A (en) Trap semaphore in computer
US3984817A (en) Data processing system having improved program allocation and search technique
US3647348A (en) Hardware-oriented paging control system
US5594927A (en) Apparatus and method for aligning data transferred via DMA using a barrel shifter and a buffer comprising of byte-wide, individually addressabe FIFO circuits
GB1509393A (en) Method and device for communication of information
GB1242437A (en) Data processing system
GB1487078A (en) Buffered virtual storage and data processing system
US5287471A (en) Data transfer controller using direct memory access method
GB1142465A (en) Improvements in or relating to data processing systems
GB1151041A (en) Data Processing Systems.
US6185650B1 (en) High performance locking facility

Legal Events

Date Code Title Description
PS Patent sealed
PE20 Patent expired after termination of 20 years

Effective date: 19941201