CA2095191C - Telephonic switching system with a user controlled data memory access system and method - Google Patents

Telephonic switching system with a user controlled data memory access system and method Download PDF

Info

Publication number
CA2095191C
CA2095191C CA002095191A CA2095191A CA2095191C CA 2095191 C CA2095191 C CA 2095191C CA 002095191 A CA002095191 A CA 002095191A CA 2095191 A CA2095191 A CA 2095191A CA 2095191 C CA2095191 C CA 2095191C
Authority
CA
Canada
Prior art keywords
access
data
special process
shifting
special
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 - Fee Related
Application number
CA002095191A
Other languages
French (fr)
Other versions
CA2095191A1 (en
Inventor
Darryl P. Hymel
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.)
Boeing North American Inc
Original Assignee
Rockwell International Corp
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
Application filed by Rockwell International Corp filed Critical Rockwell International Corp
Publication of CA2095191A1 publication Critical patent/CA2095191A1/en
Application granted granted Critical
Publication of CA2095191C publication Critical patent/CA2095191C/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • H04Q3/54508Configuration, initialisation
    • H04Q3/54533Configuration data, translation, passwords, databases

Abstract

A telephonic switching system (11) with a switch (10) controlled by a central processing unit (12) to interconnect interior communication units (14) and exterior telephonic units (16) in accordance with data in a shared data memory (18) with data that is alterable in response to signals generated by the communication units. A data memory access system (23) periodically shifts access to the data memory (18) from one special process to another successive special process in a process memory (20). The data memory access system (23) prevents the normal periodic shifting of access to the data memory (18) during a period when the special process with access is enabled to access and alter shared data.

Description

~f~~i191 HIhCXc3ROUND Oh' THE IhIVENT~QN
~~eld c~f th~nvent~ia»
This invention relates generally to telephone switching systems and methods and more partiau~.arly to telephonic switching systems and methods in which access of different special processes t« a shared data memory is controlled to prevent access to strared data by one special process when the data is in the proc~as of being altered by another special process.
bescrintion ref the related a.r ineludina information disclosed unde,~~ 37 C;FR X1.97 - .1.99 In modexn computer controlled communication switching systems there are a plurality of different special functions whl.ch must be performed. While these special functions can each be performed b~~ separate devices ox by separate processes of a si»gle central processing unit. In either event, often a plurality of special. processes requiz~e access to a single data memory which is shazved on a time alic~.ng basis between all the special processes. In performing their special functions, some of the spec~.al processes alter the data which is shared with other special F>rocesser. zn known telephon3.c systems, the access to the shared data memory is automatically, periodically shifted successively from one special process to another without regard to whether the shared data is being altered and is i~ncomp~.ete at the time for the periodic shift in access. This d.i~~advantageously can result in erroneous reading ox storage cyf data and consequent malfunctions of the telephonic t~ystem.
This periodic soh.ifting of access is commonly known as "time slicing''. In a central processor based system, the concept of time sliC:ing relates to the allocation of central ~~~~1~~
processor unit time across a number of processes requesting CPU time. When a lime slice occurs, access to the data stared in a data memory tl~xaugh the CPU is shifted from the special process currently ~iccessing the data to another special process which has arequested access to the data. The operating system of the cent:oal processing unit allocates read lines to the ventral proces~~ing unit from the number of processes requesting access i~o data through the central processing unit.
As noted, the proceassing of an event: can require the updating of multiple pieces of data. If a time slice occurs in the middle of this upd<~ting interval, it is possible that another process cou~.d read this data erroneously after the occurrence of a time slice and cause a software failure.
The known solution to this problem in a CPU controlled telephonic switch ~Ls to administer data access flags to determine when a piece of data! can be accessed.
Disadvantageously, with this known approach to time slicing in a multiuser or mult:ipracess system, numerous extra data bits in the data itself are required as flags. When the operating system indicates ta!at time alloaat:ed to process time has lapsed and access t:o the CPU has shifted upC~n a time slice, these extra f lag bits a~'e needed to directs the special px'oaess to return to its last completed step when it is allowed to resume processing. These extra data bits, or semaphores, associated with the! accessed data are also used to inform other special procs;sses by signalling a flag tro indicate that the data involved cir associated with these data b~.ts are possibly in the a!ct; of being changed and that the other processes should not use the data as it .is not necessarily accuxat:e at that mciment;.
This known f l.aig technique disadvanfa,geously requ~.res the expenditure of a substantial amount of real--time overhead in administering semaphores for every access of data to prevent multiple accesses t:o the data as a result of time slicing.
This leads to unde~~irable real tame utilization. The known multiprocesses systems require the special processes to account for the pososibility of being time sliced at any paint ~~~I~~
in their execution i~hrough the use of software protocols between the process~as which access shared data. This makes the interaction between application processes which share d$ta more complex.
Referring to F:ig. l, a block diagram of the known method far multiple proces:aes to access data from the same data area.
In step 5, when a s3?ecial process attempts to access data, the special process wil=L ask if the data area of the data memory has been locked, be~rause data is being accessed by another process.
;rn step 6, if the d~~ta memory area is not locked by another process, the speaia:l process will begin execution by (first setting a data acce:as flag or locking the data area, itself.
In step 7, the special process will then access the data from the data area of the data memory. Finally, after the process has completed all tlnE accessing of its requested data, the flag associated with the data will be removed and the data area will be unlocked in step 8. Tf the data is being accessed by another special process, in step 9 a delay will result because the ;special process will read a flag associated with this data indi~~ating that the data is locked by another process and therefore no further aaGess to this data may result until the other process completes its access of the data and unlocks the data area. Therefore, if a tzme slice occurs while a special process is still accessing data thereby locking the data area, the next process which is allocated a read line through the CPU as a result of the time slice will not be able to access the data area because the originally accessing process which was time sliced has kept the data area locked.
As a result, all other successive special processes which desire to access the locked data have their execution delayed because they wixl not be able to access the data required to run the process until the system eventually gets back to the original accessing process and the special process completes its access from they data area~and finally unlocks the data area by removing it.s flag. Thus, in addition to the necessity ~~~I~~
.-. of needing a high r~3al-time overhead, the known method of Fig.
1 leade~ to long re~:~~onse t~.mes for real time events still due to the fact that wh~:n a process ~.s time sliced upon accessiryg data, access by no other process can occur until the process with access returns try execution and completes the access.
Since there is no ix~tegrat.io» of time slicing With the prevention of acces;;ing shared data, the time slicing of processes actually ~sdds to delays and long response times.
~BUMMARY OF THE INVENT~QN
It is thereforE! the principal object of the present invention to providf: a computEr controlled telephonic switching system with a system and method in which access to a shared memory is corytrolled to prevent time slicing at inappropriate times and thereby avoid the problems of delay, inefficiency and the~ zntroducti.on of error in known systems.
This objective is achieved in part through providing a telephonic switching system having a switch controlled by a central processing unit to interconnect interior communication units with exterior communication units in accordance with communicatiaxl data i.n a communication data memory which is alterable in respon~:e to signals initiated by sai8 communication units in accordance with an operating system having a plurality of special processes which share the data with a shared data memory access system, with means far periodically shifting access to shared data in the data memory successively between said plura7.ity of special processes and means for controlling the access shifting means to prevent said access shiftincl means from shifting access to the data memory from one of said plurality of special processes to another one of said plurality of spec~.al processes during a period when the one of said plurality of special processes with access tc~ the data memory is enabled to access shared data.
The objective is a~.so achieved by providing such a telephcanic switching system with a method of controlling ~ ~~~1~:~
access of the special processes to the shared data comprising the steps of normally periodically sh~.fting access to the alterable data memory between said plurality of spec3~a1 pracesse~; except when prevented, determining when one of said plurality of special processes has access to shared data in said alterable data mEmory and preventing periodic shifting of access away from the one of said plurality of special processes with access during a period when it is determined that shared data is being accessed by the one special process with access.
H~tTE1? DEBCRTBTION of THE DRAWING
The foregoing objects and advantageous features of the invention will be e~,:plained in greater detail and others will be made apparent frcym the detai~.ed dsscra.ption of the preferred embodiment: of the present .invention which is given with reference to the several f i.gures off' the drawing, in which:
F~.g. 1 is a flow chart illustrating the PRIOR ART method of time slicing access between a plurality of special.
processes;
Fig. 2 is a functional black diagram of a preferred ernbvdiment of the t~blephonie switching system with the shared data memory access system of the present invent~.on;
Figs. 3A, 3B and 3C are operating system f low charts of the preferred embodiment o~ the method for controlling access to a shared data me;moz'y of the telephonic switching system of Fig. 2;
Fig. 4 is a flow chart of the preferred embodiment illustrating the sequence of events for a special process controlling aGCess to a data memory of the telephonic switching system of Fig. 2; and Fig. 5 is a table illustrating an example of how the preferred embodiment of the telephonic switching system of Figs. 2, 3A, 3B, 3f and 4 functions ~.n different situations.

DESCRI~~TION OF THE PREFERRED EMBODIMENT
Referring now to Fig. 2, a block diagram of the preferred embodiment of the telephonic switching system 11 of the present invention is seen to include a multiport switch 10 which is controlled by a central processing unit 12 to interconnect a plurality of interior communication units 14 with a plurality of exterior communication units 16. An exterior communication unit 16 provides a signal to the switch 10 which directs this signal to the central processing unit 12. The central processing unit, or CPU, 12 accesses data in a data memory 18. The central processing unit 12 has associated with it a processes memory area 20 which contains control for a plurality of special processes and an operating system 21 which manages the amount of time which each special process has to access data from the data memory 18.
These special processes in the processes memory 20 are triggered by a signal either coming from the exterior telephonic or other communication units 16 or an interior telephonic or other communication unit 14. Upon being activated by a signal, the special processes of process memory 20 require access to the data in the data memory 18. Some special processes :require that the data be altered in order for the special process to carry out its particular function.
The data memory access system 23 associated with the operating system 21 of the CIPU 12 prevents a successive special process from accessing date which has been manipulated or altered by a special process with access when the operating system attempts to time slice the ;special process with access in order to allow access of this data to a successive waiting special ' ~U~~9~
process that request access to the data.
The data memory access system 23 includes means for periodically shifts»g access to the data in the data memory 18 from a plurality of special process requesting access tv this data. As seen in Fig. 3C, this access shifting means includes means for providing a periodic interrupt signal 40 which is generated by the operating system ~l. Commonly an interrupt signal 40 is generated every ten milliseconds, as in Fig. 3C, by the operating system ~1 to request a time slice. However, the operating system is enabled to be set to generate this interrupt signal 40 at any chosen periodic interval. Upon the triggering of each periodic interrupt signal 40, a time slice occurs and the operating system allocates CPU time to the next successive special process waiting to access data through the CPU 12 to the data memory 18.
The shared data memory access system 23 also has means for controlling the access shifting means; thus, time slicing is at certain times allowed and at other times is prevented by the controlling means. The periodic interrupt 40 will continue tv be signalled at each interval when the access surface 23 is operational. However, the access system 23 determines when a time slice occurs in response to a special process accessing data which is shared between more than one special process.
The data memory access system 23 modifies the code of the operating system 21 to include a utility routine which is called by the special process in memory 20 in response to the special process accessing data that is shared. When a special process accesses data that is enabled to be shared by other special processes, it has reached a critical section of the data memory 18. As seen in Fig. 4, in step 72, in response a special process entering a critical section, a subroutine is called, As seen in Fig. 3A and 4, this subroutine of the shared data memory access system 2~ in the operating system 21 is called e_set~nd~time_slice 30. Since the special process has entered into a critical section of the data, in step 72, Fig. 4, the process will request the routine to set the ~9~~191 __' no time-slice flag. In step 32, a determination is made whether a no~time slice flag ~.s being requested to be set in a first data bit of the request from the special process. In step 34, when this ielag ~a set, successive especial processes will not be permittead to be shifted iri Qrder to access shared data from the data memory I8 upon the generation of the interrupt signal 40 by the operating system. Thus, when the flag is set in step 34, a time slice will not automatically occur merely because: a ten millisecond interrupt 40 has occurred. The flag indicates to the other special processes that a special procESSS is accessing the shared data from the data memory 18, Fig,. 1, in a eritica~. section of the data memory X8 and thus i:he data has the possibility of being manipulated or chanced.
Tn o.rder to avoid successive processes from accessing data which is incomplete or inaccurate because the data is being manipulated b5~ the special process with access, the no time slice flag ~a set in step 34 to prevent an automatic time slice fxom occurring when the per~.odiG interrupt signal 44 is generated. Therefore, ~.n step 74, Fig. 4, the special process with access to the shared data i.n memory 18 continues to execute its programmed tasks and continues to access the data from the data memory 18. As a result of this, the response times for completing events within a process are greatly reduced. Asi seen in Fig. 3C, if in step 32 it is determined that the no_time- slice flag has not been set, then the special process with access is not accessing shared data and thus a time slice wi~.~. automatically occur in step 44.
The access to the data memory 18 will shift without long delays to the next ~cuccessive special process in response to the ten millisecond interrupt signal being generated in step 40 by the operating system and then return in step 52 to execute its assignee! task.
Each time the Freriodic interrupt signal 4o the operating system will ask if a~ t~o~time~slice flag has been set in step 42. If the no_time_alica flag is set in step 42, a counted tick value, also called the pros tick~cnt, is generated ire ~~J19~
another, ar second,, data bit of the special process will access data in ste~5 96. This proc~tick_ant value indicates the number of time:~ that the operating system has requested a time slice to occur but no time slice has taken place due to the no time slice flag being set in the first data element in step ~Z. The proc_tickrcnt is used far two purposes. First, the proc,tick cnt j~s used by the operating system 21 to determine how long a special process has prevented from time slicing. Tf a spec:iax process has prevented time slicing for more than a preselFleted number of counted ticks, such as twenty, in step 48 the operating system will trigger an override action andt abort the running of the special process in step 5U. This uses the pros tick~cnt as a check to see if there is an error i.n the process because the process has been running for too gr~:at a period of time without allowing for a time slice. The pnoc tick cnt is similarly used to signal that a warning message is to be printed if the proc_tick~cnt has reached a preselected value, such as three ticks.
As seen in Fig. 3B, the prno tick ant is also used by a utility routine 60 in the operating system ~l, called ESCHED CHECK, to determine if the process should voluntarily request a time slice. This is the second purpose for. which the prop tick cnt is used. In step 75, Fig. 4, when the special process is accessing the data from the data memory, the process calls the ESCHED~CHECK subroutine 64 iri the operating system 21 upon the special process reaching a safe point in the data.
~ safe point occurs when the speciax process determines through its code that an event within the process has been completed and that if a time slice were to occur, there would be no possibility of a subsequent special process accessing incomplete data. As seen in Fig. 3B, when the ESCHE~_CHECK
routine 60 is called, it reads the prat tick_cnt to determine if the value is equal to zero in step 62. Zf the proa~tick_cnt is equal to zero, then the operating system has not requested a time slice arid the ESCHED_CHECK routine will return in step 68. In such event, no time slice will occur ~~J19~
to and the special proc:ess will continue to access shared data in step 76, Fig. 4. A~: seen in Fig, 3B, if the proc tick cnt, is at a value not equal, to zexo, then the operating system will reset the pros tick_cnt value to aero in step 64 and a voluntary time slice. automatically results in step in step 66.
This results in providing a shifting of access to the data memory I8 from the special process with access to a successive special process waiting fpr access. This voluntary time slice 66 is allowed undex' these conditions because the data being accessed by the process is at a safe point. In other words, the process has finished a sequence of accesses and thereby aQmpleted an event of the process which leaves the accessed data in a fully updated state.
When the operating system also requests a time slice during the interim period which the no time_slice than has been set, the special process with access is aware that it is safe for a time slice to occur, so the process with voluntarily "gives itself up" in step 66 and allows the operating system to ahift access to the data memory to another special process before ESCHEb CHECK 6o returns in step 68.
Thus, the special pr~~cess, ox user, controls the access to the data in the data mem~~ry, since the special process with access is what calls the ESnHED CHECK utility xoutine 60 to determine if a voluntary time nlioe in step 66 is proper.
As seen in Fig. 4, in step 78, when a special process has completed accessing ~3hared data, and thus exits a critical section of data, the process calls the e~set~no_time_slice .routine 30, Fig. 3A, to reset the no time~slice flag.
Referring again to Fig. 3A, the a set_no time_slice utility routine 34 ax;sociated with thewoperating system 21 resets the no time s:Lice flag in the first data element bit of the special process when the critical section of the process has ended in step 36 if it is determined in step 32 that there is no time slice flag being requested to be set in step 32.
After resetting the x~o_time_slice flag in step 36, the a set no time~sliae a-outine 30 calls the E~CHED_CHECK utility routine 6U of Fig. 3~3 in step 37 to read the proc tick~cnt in m ~~~~~19~
step 62 in the othex- or second data element bit of the special process to determine; if a user controlled voluntary time slice is to occur. Since the ru»»ing process yr process with access, knows :tt is at a safe point at the end of the critical section, it is an a~>propriate time to call ESCHED CI3~CK 60 in step 37, Fig. 3A, and a time slice in step 66 automatically results if the proc_tick ent value read in step 62 is determined to have Ei vaXue other than zero.
After the no t3.me_slice flag has been reset in step 36, the state of the vaa.ue of the flag will be returned in step 38 to its prior value which the flag had before the no time slice flag was set. This is done because many special processes call other special F>rocesses as subroutines to execute their tasks. if the spec3_a~. process with access has entered a critical section, trwreby havi.»g a noTtime-slice flag value at an "on" state, when it calls another special process as a subroutine, the oths~r called special process will have to execute its own tasl~a. The called subrautxne process has its own a set no time s7.ice routine which turns on when it reaches its own critical section upon accessing potentially shared data and will then xrave a flag value, or state, of "off" at the end of the critj.cal section. However, when the called subroutine special ~rracess turns off, 3.ts e_set no~time~slice routine 3U will alscr turn oft the a set no time slice rout~.ne 3p for the original executing special process which called the subroutine process. Therefore, when a no time_slice flag is reset in step 3g at the end of the critical section, the value of the no time~slicE: flag will be returned in step 38 to its same prier state as existed before the flag was set. In this case the f lag value will be returned to an "on" state, since the no time slice f7.ag was originally' in an "on" state, since it had entered a critical section when the subroutine was first called. This is do»e to prevent the a set no_time~slice rout~.ne 3d from being blindly turned off by a aall.ed subroutine.
Referring to F3~g, 5, the. user contr411ed time slicing table 70 illustratef~ an example of a sequence of events that z~~~191.
iz shows how the process, also called the user, is uti.li.zed to control when time slices occur within its process. At the zero millisecond time the special process is~ activated by a signal from the exterior communication units 16 or interior communication units 14. The special process begins to execute its assigned tasks and will access data from the data memory 18 through the central processing unit 12. At the zero millisecond time the first data element bit, no time sl.i.ae flag is off and in a reset state, and the other or second data element bit, the proc ti.ak cnt, is assigned a zero vaxue.
At the ten millisecond time of Fxg. 5, the operating system will automatically time slice fn step 44 the special process with access in response to the trigger~.ng of the ten millisecond interrupt signal 40, since the no time slice flag has not been set. Therefore at th~.s time, the operating system will shift access to the memory 18 from the special process which was activated to the next successive special process which was waiting to obtain access to the data memory 18. No modification is made to the proc tick ant value or the no time_slice flag value upon the operating system generating the ten millisecond interrupt signal 4d.
At the twenty millisecond t~.me of Fig. 5, another periodic ten millisecond interrupt in step 40 occurs, and in step ~4 the process with access is time sliced. Then, the operating system returns execution to the original special process which was actitrated at the zero mill:~second time.
Thus, the original spec~.al process now returns to access data from the data memax~y 18. This sequence shown from zero millisecond to tweri:ty millisecond i.s a standard mode of operation for processes that do not utilize the user controlled time slice feature as seen in the known system illustrated in Fig. ~.. Again, the proc~tick~cnt value remains at zero, and the nc~_time"_slice flag has not been set.
As the specia7_ process continues to access data, at the twenty-five millisE;cond period o~ Fig. 5, the accessing process arrives at dada that is shared with one ar more other pxr~cesses. At thi.a point the accessing process has reached the beginning of t~ critical section and thus upon recognizing the possibility o1~ accessing shared data, the process in step 72, Fig. 4, calls the e~set_nc~_time~slice routine 30 in the operating systexa i~o set in step 34 the no_time slice flag in the first data element of the process. No time slice occurs due ira thi$ actir~n, and the pxQC tick~cnt value remains at zero, while the s~5ecial process continues to access data in step 74, Fig. 4.
When the spenial process is accessing data in the critical section, the process in time Domes to a safe point in the data. Upon cnming to a safe point, a point where the special process h~~s completed an event or series of events to fully update the ~~ccessed data, the process will call the ESCHED CHECK utility routine 64 which is a modification of the operating system .Z1. This is seen i.n the table 70 of Fig. 5 at the twenty-seven millisecond time. Since the process knows it is at a safe point in the access of the data, the ESCFiED CHECK routine 60 is called. 2'he ESCHED~CHECK routine 60 checks the pro~c tick~ent value to see it the operating system has requested a time slice 62, fox if the operating system has requested time slice by incrementing the proc tick cnt in ;step 46, the accessing special process will voluntarily "gi.ve itself up~~ 3.n step 66 and allow the operating system 'to initiate a, time sl~.oe. At the twenty-seven millisecond time orr the table 70, no user controlled time slice will omcur due to the operating system not requesting a time slice, as indicated by the pros tick cnt value being zero. Therefore, the user or special process will return in step 68 and thus continue to access data fn step 76, Fig. 4, from the ~~ata memory 18. The no time slice flag will remain set.
At the thirt~~ millisecond time of Fig. 5, another ten millisecond perio~~ic interrupt signal 40 is generated to determine if a time slice is tv occur. Since the no~time_slice flay is set, no automatic time slice occurs, but the pros tick_cnt value is incremented in step 46 to a value of one. This is d~~ne to ~.ndicate to the accessing special la process that a tinne s~.ice interval has e~.apsed. This is an advantageous feature aver the known time Slicing methods in that it avoids an automatic tame ss~.iae at the thirty millisecond time ~~hiah would have occurzed to cause a subsequent proGesf: to be delayed due to the data being lacked.
Upon reachincr the thirty,five miii.~secand time of dig. 5, the accessing process once again hass reached a safe point in the data and thus once aga.iri calls the ~SCHED CHECK routine 60 to see if a voluntary time slice is appropriate. At this time the proc tick cnt is at a non~e:ro value. Since the time slice fxag hays been set to request a time slice, a call to ~SCH~D CHECK does result in a time slice in step 66. The successive specia~_ process ~are then enabled to access the data without any type of delay or without any inaccuracies in the accessed data. Since a time slice has occurred, the proc tick~ant value is reset to a zero value in step 54.
At the forty millisecond time slice another pexiodic interrupt signal i,s generated and results in step ~6 in incrementing the yro~ tick cnt value to a count of one since the no~time~slice flag is set. Again, because the no time~slice flags is set, no automatic time slice occuxs.
Finally, at t:he forty--five millisecond time of Fi.g.
the special procesa with access comes to the end of i~tr critical section ~.nd in step 78 calls the a set na time slice rout~.ne to reset the noTtimewslice flag in step 36. Upon resetting the flags, the speGi~al process in step 37 will also call the ~SCH~O CHfECK routine 60 to see if the praae~sss should voluntarily "give itself up" and allow fox a time slice to occux. At the forty-five millisecond poi»t in the chart, in step 6fi a voluntary or user controlled time slice will result, since the proc~ti.c:k cnt value is at a value which is not equal to zero. The no x,ime slice flag value will be retuxned in step 38 to the prior value it had before the flag was set, which in this case: is the "off", or reset, state.
The method fc~x controlling access of a plurality of especial process tc~ a shaxed data memory in a telephonic switching system i,s done through the steps of t~armally, ~~~I~1 periodically shifiting access to art alterable data memozy between the plurality of special processes except when prevented; determining when one of said plurality of special processes has access to shared data in said alterable data memory arid preventing periodic shifting of access away from the one of said plurality of special processes with access during a period wl;~en it is determined that shared data is being accessed by the one special process with access.
This is done by g~inerating in step 40 a per~.odic interrupt signal fxom the o~peratirig system 21 to request a time slice.
The periodic shiflting of access to the data from an accessing special process with access to another successive process is also controlled when the special process with access is enabled to access shared data.
As seen in Figs. 3~A and 4, the controlling of the periodic shifting of access to the data is done in step 72 by the accessing spenial process calling the e~set no time slice routine 30, Fig. :3A, which is a modification of the operating system, to set a :plag in the no time slice bi'~ of the accessing special process in step 34. This a set no time sli~~e routine is asked to set a no time slice flag in step 32 im response to the process with access reaching a critical seat~:on of data which has the possibility of being data shared with other processes requesting access to the data. ~n steep 78, k~~,g. .4, at the end o~ the critical section, a set no time_slice routine 3D is called to reset the flag, since the special process with access is no longer accessing shared rata. After the no time s3.ice flag has been reset in step 36, Fig. 3A, the state of the flag value will be returned in step 38 to the same value which the flag had prier to the flag being set.
In Fig. 3C, it is seen that during the interim period from when the no~time sl~.ce flag was set until the flag was turned off, or reset, the controlling of the shifting of access to the data includes the step 4r~ of incrementing the counted tick value ar proc tick cnt in a second data element of the special process accessing data. This proc tick cnt is 16 2~~~~91 incremented upon each triggering of the periodic shifting of access to data or each time slice requested in step 40 by the operating system 21 when the flag i.s set. The step 46 of incrementing this. value is used to determine if the process has been running too long w~.thout allowing for a time st.~,ce.
Thus, when the px~oc~tick cnt reaches a preselected value, such as twenty, in step 48 t~he running of the special process will be aborted ~.n ste:p 50, so that any error can be corrected.
Additionally, if the proe tick cntr value has reached a preselected value, such as three ticks, the a warning message is generated to show t4at a potential error may be occurring.
The preventing of an automatic time slice upon a periodic interrupt signal from the operating system 21 is done by modifyi»g the operating system with the a setTno~time sl~.ce routine 30 such that the periodic shi.ft~.ng of access to the data memory 18 w3.11 be prevented when the no~time~slice f lag is set in the no time slice data element bit of t:he accessing ~tpecial process, as illustrated in F~.g. 3C. 1n Fig. 4, the method of having a special process accessing data from the data memory 18 ie~ shown to 3.nclude step 75 calling the ESCHED CHECK utility routine 60, which is a code modification of the operating system. As seen in Fig. 3B, when the ESCHED CHECK routine 60 is called, it reads in step 62 the prod ticky,cnt whenever the process reaches a safe point during its access of data from the data memory 18, if the prac tick cnt is a nonzero value, then the steps s4 and 66 of resetting the prc>cltick cnt to zero and voluntarily shifting access to the dat;s memory to the next successive special process waiting t:a access data automat~.cal.xy will be takEn.
The step of preys:sting a shifting of access to another process will be taken i~~f ESC~iED CHECK routine 60 reads a zero value in step 62. fn such event, no time slice will occur, and the special process j:n step 76 will continue to access shared data.
When the cr~Ltical section of data which the special process with accEas comes to an end, the step ~~ of resetting the no time slicEy fl8g is taken and the ESCHED~CHECK utility '~' ~~~a~~l routine 60 is called by the special process to see if a usex controlled time s:Lice is to be made. if the ESCHED_C~iECK
routine sp reads a nonzera value for the proc tick cnt, then in step 66 a voluntary shifting of access to the data memory 18 will be given i°rom the special process with aCCess to another successive: special process which is wa3t~.ng to access the data.
While a detailed description of the preferred embodiment of the invention has been given, it should be appreciated that many variations c~~n be made thereto without departing from the scope of the invention as set Earth in the appended c7.aims.

Claims (26)

I claim:
1. In a telephonic switching system having a switch controlled by a central processing unit to interconnect interior communication units with exterior communication units, said central processing unit controls the switch in accordance with communication data in a communication data memory which is alterable in response to signals initiated by said communication units in accordance with an operating system of the central processing unit having a plurality of special processes which share the data, the improvement being a shared data memory access system, comprising:
means for periodically shifting access to shared data in the data memory successively between said plurality of special processes;
means for controlling the access shifting means to prevent said access shifting means from shifting access to the data memory from one of said plurality of special processes to another one of said plurality of special processes during a period when the one of said plurality of special processes with access to the data memory is enabled to access shared data; and means for stopping the special process accessing data from continuing to access data after a preselected time period.
2. The telephonic switching system of claim 1 in which said access shifting means includes means associated with the operating system for generating a periodic interrupt signal; and means responsive to the interrupt signal to shift access to the data memory from one to another of a succession of the special processes.
3. The telephonic switching system of claim 1 in which the special process with access has a data element, and said means for controlling the access shifting means includes means associated with the operating system to set a flag in the data element of the special process with access which is enabled to access shared data.
4. The telephonic switching system of claim 3 in which said means for controlling the access shifting means includes means associated with the operating system to reset said flag in response to the special process accessing data from the data memory which is not shared data.
5. The telephonic switching system of claim 4 in which the access shifting controlling means includes means for returning the state of a flag value after the flag is reset to a same value which the flag had prior to the flag being set.
6. In a telephonic switching system having a switch controlled by a central processing unit to interconnect interior communication units with exterior communication units, said central processing unit controls the switch in accordance with communication data in a communication data memory which is alterable in response to signals initiated by said communication units in accordance with an operating system of the central processing unit having a plurality of special processes which share the data, the improvement being a shared data memory access system, comprising:

means for periodically shifting access to shared data in the data memory successively between the plurality of special processes; and means for controlling the access shifting means to prevent said access shifting means from shirting access to data memory from one of said plurality of special processes to another one of said plurality of special processes during a period when one of said plurality of special processes with access to the data memory having a data element and another data element is enabled to access shared data including means associated with the operating system to set a flag in the data element of the special process which is enabled to access shared data and means for generating a counted tick value in the other data element of the special process accessing data in response to the periodic access shifting means when the flag is set in the data element of the accessing special process with access.
7. The telephonic switching system of claim 6 in which said operating system includes means responsive to the counted tick value to stop the special process accessing data from continuing to access data in response to the counted tick value reaching a preselected value.
8. The telephonic switching system of claim 6 in which said operating system includes means responsive to the counted tick value reaching a preselected counted tick value to signal a warning message.
9. The telephonic switching system of claim 6 in which said access shifting controlling means includes means responsive to the flag for preventing the periodic shifting of access to the data memory from the special process with access to another special process in response to the flag being set in the data element of the special process with access.
10. The telephone switching system of claim 6 in which said means for controlling the access shifting means includes means associated with the special process with access to determine when reaching a safe point has been reached during the accessing of data, and means associated with the operating system and responsive to the special process with access to read the counted tick value in the other data element of the special process with access.
11. The telephonic switching system of claim in which said means associated with the operating system to read the counted tick value includes means for resetting the counter tick value to zero, and means for automatically shifting access to the data memory from the special process with access to another special process in response to an initial reading of the counted tick value being nonzero.
12. The telephonic switching system of claim 10 in which said means associated with the operating system to read the counted tick value includes means for preventing a shifting of access to the data memory from the special process with access to another special process in response to a reading of the counted tick value being zero.
13. The telephonic switching system of claim in which said means for controlling the access shifting means includes means associated with the operating system to reset said flag in response to the special process with access accessing nonshared data; and means associated with the operating system to read said counted tick value in response to said means associated with the operating system to reset said flag and means to automatically provide a shifting of access to the data memory from the special process with access to another special process in response to said tick value reading means reading a nonzero tick value.
14. In a telephonic switching system having a switch controlled by a central processing unit to interconnect communication units in accordance with entry in a data memory including shared data which is alterable in response to signals initiated by said communication units in accordance with an operating system of the central processing unit, the operating system having a plurality of special processes which share at least some of the data, the improvement being a method of controlling access of the special processes to the shared data comprising the steps of:
normally periodically shifting access to the alterable data memory between said plurality of special processes except when prevented;
determining when one of said plurality of special processes has access to shared data in said alterable data memory;
preventing periodic shifting of access away from the one of said plurality of special processes with access during a period when it is determined that shared data is being accessed by the one special process with access; and stopping the special process accessing data from continuing to access data after a preselected time period.
15. The shared data access controlling method of claim 14 in which the step of periodically shifting access to the data memory includes the steps of generating a periodic interrupt signal by means associated with the operating system, and normally shifting access to the data memory from one to the next of the plurality of special processes in response to the periodic interrupt signal.
16. The shared data access controlling method of claim 14 in which the special process with access has a data element and the step of controlling the periodic shifting of access includes the step of setting a flag in the data element of the special process which is accessing the data.
17. The shared data access controlling method of claim 16 in which the step of controlling the periodic shifting of access includes the step of resetting the flag in response to the special process accessing data from the data memory which is nonshared data.
18. The shared data access controlling method of accessing data of claim 17 in which the step of controlling the periodic shifting of access includes the step of returning the state of a flag value after the flag is reset to a same value which the flag had prior to the flag being set.
19. In a telephonic switching system having a switch controlled by a central processing unit to interconnect communication units in accordance with entry in a data memory including shared data which is alterable in response to signals initiated by said communication units in accordance with an operating system of the central processing unit, the operating system having a plurality of special processes which share at least some of the data, the improvement being a method of controlling access of the special processes to the shared data comprising the steps of:
normally periodically shifting access to the alterable data memory between said plurality of special processes except when prevented;
determining when one of said plurality of special processes has access to shared data in said alterable data memory in which the one special process with access has a data element and another data element;
and preventing periodic shifting of access away from the one of plurality of special processes with access during a period when it is determined that shared data is being accessed by the one special process with access by setting a flag in the data element of the special process which is accessing the data and incrementing a counted tick value in the other data element of the special process with access from said data memory in response to each periodic shifting of access to the data memory when the flag is set in the data element of the special process with access.
20. The shared data access controlling method of claim 19 in which the step of controlling the periodic shifting of access includes the step of aborting the running of the special process accessing data in response to the counted tick value reaching a preselected value.
21. The shared data access controlling method of claim 19 in which the step of controlling the periodic shifting of access includes the step of signalling a warning message in response to the counted tick value reaching a preselected value.
22. The shared data access controlling method of claim 19 in which the step of controlling the periodic shifting of access includes the step of preventing the periodic shifting of access to the data memory from the accessing special process to another successive special process in response to the flag being set in the data element of the accessing special process.
23. The shared data access controlling method of claim 19 in which the step of controlling the periodic shifting of access includes the step of causing the counted tick value in the other data element of the accessing special process to be read in response to the special process with access reaching a safe point during the access of data from the data memory.
24. The shared data access controlling method of claim 23 including the steps of resetting the counted tick value to zero, reading the control tick value, and automatically shifting access to the data memory from the special process with access to another successive special process when the counted tick value is read as being a value other than zero.
25. The shared data access controlling method of claim 23 including the steps of reading the counted tick value, and preventing a shifting of access to the data memory from the special process with access to another successive special process in response to the read tick value being zero.
26. The shared data access controlling method of claim 23 in which the step of controlling the periodic shifting of access includes the steps of resetting the flat in response to the accessing special process accessing nonshared data, and causing the counted tick value to be read in response to the resetting of the flag, and automatically shifting access from the special process with access to another successive special process in response to reading a nonzero counted tick value.
CA002095191A 1992-04-30 1993-04-29 Telephonic switching system with a user controlled data memory access system and method Expired - Fee Related CA2095191C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/876,535 US5353343A (en) 1992-04-30 1992-04-30 Telephonic switching system with a user controlled data memory access system and method
US876,535 1992-04-30

Publications (2)

Publication Number Publication Date
CA2095191A1 CA2095191A1 (en) 1993-10-31
CA2095191C true CA2095191C (en) 2000-01-11

Family

ID=25367952

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002095191A Expired - Fee Related CA2095191C (en) 1992-04-30 1993-04-29 Telephonic switching system with a user controlled data memory access system and method

Country Status (4)

Country Link
US (1) US5353343A (en)
EP (1) EP0569195B1 (en)
JP (1) JP2999651B2 (en)
CA (1) CA2095191C (en)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5559794A (en) * 1993-09-09 1996-09-24 Rockwell International Corporation Telecommunication system with selective remote interface assembly and method
US5533109A (en) * 1994-09-30 1996-07-02 Rockwell International Corporation Telecommunication system with user modifiable PBX terminating call feature controller and method
SE515259C2 (en) * 1995-04-24 2001-07-09 Ericsson Telefon Ab L M Method of controlling connections in a telecommunications system
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6421704B1 (en) 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6282652B1 (en) 1998-02-26 2001-08-28 Sun Microsystems, Inc. System for separately designating security requirements for methods invoked on a computer
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US6560656B1 (en) 1998-02-26 2003-05-06 Sun Microsystems, Inc. Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6247026B1 (en) * 1996-10-11 2001-06-12 Sun Microsystems, Inc. Method, apparatus, and product for leasing of delegation certificates in a distributed system
US6237024B1 (en) 1998-03-20 2001-05-22 Sun Microsystem, Inc. Method and apparatus for the suspension and continuation of remote processes
US6466947B2 (en) 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6832223B1 (en) 1996-04-23 2004-12-14 Sun Microsystems, Inc. Method and system for facilitating access to a lookup service
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6578044B1 (en) 1997-11-17 2003-06-10 Sun Microsystems, Inc. Method and system for typesafe attribute matching
US6226746B1 (en) 1998-03-20 2001-05-01 Sun Microsystems, Inc. Stack-based system and method to combine security requirements of methods
US6272559B1 (en) 1997-10-15 2001-08-07 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6938263B2 (en) 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6253256B1 (en) 1997-10-15 2001-06-26 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading in a distributed system
AU2787799A (en) 1998-02-26 1999-09-15 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
JP2002505465A (en) * 1998-02-26 2002-02-19 サンマイクロシステムズ インコーポレーテッド Method and system for leasing a storage area in a distributed processing system
AU2770499A (en) * 1998-02-26 1999-09-15 Sun Microsystems, Inc. Leasing for failure detection
WO1999044129A1 (en) * 1998-02-26 1999-09-02 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
US6862594B1 (en) 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US8082491B1 (en) 2000-05-09 2011-12-20 Oracle America, Inc. Dynamic displays in a distributed computing environment
US6934755B1 (en) 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US7779164B2 (en) * 2005-04-04 2010-08-17 Oracle America, Inc. Asymmetrical data processing partition

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58191045A (en) * 1982-04-30 1983-11-08 Fujitsu Ltd Control system of executing time
US4691280A (en) * 1982-06-28 1987-09-01 The Singer Company High performance multi-processor system
US4527012B1 (en) * 1983-01-31 1994-12-13 Redcom Laboraties Inc Communications switching system with modular switching communicatons peripheral and host computer
JPS59163647A (en) * 1983-03-09 1984-09-14 Hitachi Ltd Task control method
JPS60142696A (en) * 1983-12-28 1985-07-27 Fujitsu Ltd Timer monitor processing system
EP0194024B1 (en) * 1985-02-05 1992-09-09 Digital Equipment Corporation Apparatus and method for controlling access in a multi-cache data processing system
DE3842517A1 (en) * 1987-12-17 1989-06-29 Hitachi Ltd PIPELINE DATA PROCESSING SYSTEM
US4866704A (en) * 1988-03-16 1989-09-12 California Institute Of Technology Fiber optic voice/data network
US5093912A (en) * 1989-06-26 1992-03-03 International Business Machines Corporation Dynamic resource pool expansion and contraction in multiprocessing environments
US5051982A (en) * 1989-07-27 1991-09-24 Data General Corporation Methods and apparatus for implementing switched virtual connections (SVCs) in a digital communications switching system
JP2907886B2 (en) * 1989-09-14 1999-06-21 株式会社日立製作所 Switching system
US5127004A (en) * 1989-09-15 1992-06-30 Rockwell International Corporation Tone and announcement message code generator for a telephonic switching system and method
US5095505A (en) * 1990-02-28 1992-03-10 Mci Communications Corp. Efficient flexible special service call processing
US5201045A (en) * 1990-11-19 1993-04-06 Ag Communication Systems Corporation Arrangement and method of downloading data to a plurality of destinations in a digital telephone system
US5245702A (en) * 1991-07-05 1993-09-14 Sun Microsystems, Inc. Method and apparatus for providing shared off-screen memory

Also Published As

Publication number Publication date
US5353343A (en) 1994-10-04
JPH06284458A (en) 1994-10-07
JP2999651B2 (en) 2000-01-17
EP0569195A3 (en) 1995-06-07
EP0569195B1 (en) 2000-03-01
EP0569195A2 (en) 1993-11-10
CA2095191A1 (en) 1993-10-31

Similar Documents

Publication Publication Date Title
CA2095191C (en) Telephonic switching system with a user controlled data memory access system and method
EP0090302B1 (en) Programmable control apparatus and method
DE60127857T2 (en) SECURITY PROCEDURE WITH DETERMINISTIC REAL-TIME PERFORMANCE OF MULTITASK APPLICATIONS OF CONTROL AND COMMAND TYPE WITH ERROR CONTROL
CA2205481A1 (en) Method of synchronization allowing state transfer
US5768599A (en) Interrupt managing system for real-time operating system
DE3732808A1 (en) METHOD AND DEVICE FOR GENERATING AND EDITING INTERRUPT POINTS IN A MONITOR PROGRAM
DE2756762A1 (en) PROCEDURE AND ARRANGEMENT FOR ACCESS TO ANY BIT FIELDS IN THE MAIN MEMORY OF A DATA PROCESSING SYSTEM
EP0330425B1 (en) Symmetric multi-processing control arrangement
EP2084606B1 (en) Method for changing over a system having a plurality of execution units
DE4223454A1 (en) Digital signal processor with direct memory access controller - performs different transfers of data according to relationship of input-output period to task processing time
US5327419A (en) Communication system having a multiprocessor system serving the purpose of central control
DE10064025B4 (en) A method for booting a microprocessor and microprocessor with a conditional deterministic reset vector
CA2027770A1 (en) Emergency resumption processing apparatus for an information processing system
EP0499213A2 (en) Modular structured ISDN communication system
US5311461A (en) Programmable priority and selective blocking in a compute system
CA1280515C (en) Database system
Son et al. Replication Control for Distributed Real-Time Database Systems.
DE3603240C2 (en)
DE3843638A1 (en) INFORMATION PROCESSING DEVICE WITH ADDRESS EXTENSION FUNCTION
DE4236820C2 (en) Process for the safe operation of a process computer
EP0903910B1 (en) Method for managing a multilevel telephone directory
JPH04205231A (en) Program execution control system
EP0983545B1 (en) Risc processor
JPS60160406A (en) Control system of programmable controller
DE19929050C2 (en) Method for renaming condition code data in a superscalar processor system

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed