IT8224362A1 - Procedimento e apparecchiatura per introdurre variazioni di programma in sistemi controllati a programma - Google Patents

Procedimento e apparecchiatura per introdurre variazioni di programma in sistemi controllati a programma Download PDF

Info

Publication number
IT8224362A1
IT8224362A1 IT1982A24362A IT2436282A IT8224362A1 IT 8224362 A1 IT8224362 A1 IT 8224362A1 IT 1982A24362 A IT1982A24362 A IT 1982A24362A IT 2436282 A IT2436282 A IT 2436282A IT 8224362 A1 IT8224362 A1 IT 8224362A1
Authority
IT
Italy
Prior art keywords
function
sequential
program
version
decision
Prior art date
Application number
IT1982A24362A
Other languages
English (en)
Other versions
IT1153094B (it
IT8224362A0 (it
Original Assignee
Western Electric Co
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 Western Electric Co filed Critical Western Electric Co
Publication of IT8224362A0 publication Critical patent/IT8224362A0/it
Publication of IT8224362A1 publication Critical patent/IT8224362A1/it
Application granted granted Critical
Publication of IT1153094B publication Critical patent/IT1153094B/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23327Modification of program in real time
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23329Modification, correction entered values

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Selective Calling Equipment (AREA)
  • Circuits Of Receivers In General (AREA)

Description

"PROCEDIMENTO E APPARECCHIATURA PER INTRODURRE VARIAZIONI DI PROGRAMMA IN SISTEMI CONTROLLATI A PROGRAMMA" .
RIASSUNTO
Disposizione per impiegare o un programma originale (132) oppure una versione modificata (142) del programma in un sistema controllato da programma. Ogniqualvolta una versione modificata (142) di una funzione di programma selezionata viene memorizzata nel sistema, essa ? etichettata con un numero sequenziale di funzione (14-3) e la funzione di programma originale ? ritenuta nel sistema? Ogniqualvolta viene avviato un processo di programma, esso ? etichettato con un numero di sequenza di processo (111). I due tipi di numeri di sequenza sono assegnati da una sorgente comune (100). Ogni qualvolta la finizione di programma selezionata ? richiesta da un processo di programma, viene eseguita una comparazione (144 ) fra il numero di sequenza di processo (ni) e il numero di sequenza di funzione (143). Se la comparazione indica che il processo ? stato iniziato prima della memorizzazione nel sistema della modifica, allora viene eseguita la versione originale della funzione di programma selezionata; in caso contrario viene eseguita la versione modificata del programma selezionato. Perci?, la versione originale oppure la versione modificata risulta coerentemente disponibile durante tutta la durata attiva di un processo
DESCRIZIONE
La presente invenzione riguarda un procedimento per introdurre variazioni in un sistema controllato dal programma memorizzato, senza richiedere arresto parziali o totale del sistema e successiva inizializzazione?
I sistemi controllati da programma sono stati applicati ad un'ampia gamma di applicazioni di elaborazione e controllo di dati. La flessibilit? funzionale di questi sistemi deriva dal programma, memorizzarlo nella manorie di questi sistemi, che controlla il loro funzionamento.
In sistemi o impianti controllati da programma,? frequentemente necessario introdurre variazioni di programma dopo l'installazione iniziale per l'adattamento di nuovi servizi e/o nuovo hardware. Il modo pi? comune per introdurre questi cambiamenti ? quello di arrestare il sistema e inizializzarlo completamente. Sfortunatamente, ci? rende il sistema incapace di fornire servizio per l'intervallo di inizializzazione, solitamente un per?odo di vari minuti o anche ore. In aggiunta, l'inizializzazione distrugge frequentemente alcune porzioni di dati di pi? lungo termine che possono influenzare le prestazioni successive del sistema; ad esempio, essa pu? azzerare dati fomiti da un utente telefonico definenti un certo aspetto del proprio servizio. L* inizializzazione ? particolarmente indesiderabile se il sistema controllato da programma controlla processi continui, come ad esempio processi chimici; piani accurati devono essere eseguiti per introdurre tale inizializzazione in corrispondenza di un momento in? oui i processi chimici controllati sono stati tutti arrestati o hanno raggiunto un certo equilibrio.
" Un metodo meno drastico per introdurre cambiamenti di programma con inizializzazione parziale ? attuato, ad esempio f in impianti di commutazione telefonica, come ad esempio l'Impianto di Commutazione Elettronico Kd. 1 descritto nel Bell System Technical Journal, Settembre, Edizione 1964 e nel brevetto statunitense N. 3*570. 008. Le caratteristiche speciali di questi sistemi ..hanno .reso possibile introdurre variazioni senza disturbare quegli utenti che sono gi? collegati ad altri utenti.
Ritti i dati relativi a connessioni completate e a servizi di utente .sono isolati e trattati in modo speciale tramite programmi di inizializzazione. Questi sistemi hanno processori duplicati, uno dei quali ? del tipo "in linea" e l'altro dei quali ? un'unit? di riserva pronta per assumere il controllo. Una versione modificata di un programma viene caricata in uno dei processori, mentre il processore ai trova nel modo a riposo. Esso vie ne quindi commutato "in linea" e esegue un programma di inizializzazione che non modifica nessuno dei dati associati con connessioni completate o servizi di utente. La versione modificata del programma ? quindi pure caricata nell'altro processore, ed il sistema si trova in uno stato stabile. Utenti che stavano eseguendo una connessione non avranno le loro chia? mate completate, e perci? questo tipo di cambiamento viene. attuato durante ore di attivit? molto ridotta dell'impianto o sistema per minimizzare i disturbi? Questo metodo di introdurre variazioni non e applic?bile ai sistemi controllati da programma moderni pi? sofisticati. Questi sistemi sono normalmente fatti funzionare sotto il controllo di un programma complesso chiamato "sistema operativo" che avvia altri programmi chiamati "processi". L'esecuzione effettiva dei compiti del sistema o dell'impianto ? normalmente attuata tramite i processi tramite l'esecuzione di una serie di seguenti di programma chiamati "funzioni" di programma. L'esecuzione delle funzioni di programma pu? essere avviata mediante una chiamata di funzione da un qualsiasi processo nel sistema. Le funzioni di programma accedono ad una base di dati comune, grandi porzioni della quale sono controllate da molti processi, in cui i concatenamenti fra i vari elementi di dati associati sono molteplici e complessi. Queste strutture di dati complesse rendono drasticamente complicato il tipo di trattamento speciale di una porzione selezionata di dati impiegata nei sistemi della tecnica nota summenzionati? In tal modo, l'inizializzazione di taluni processi e nel contempo la ritenzione ?i altri, mantenendo al tempo stesso una base di dati coerente, ? estremamente difficoltosa. E' inoltre impossibile prevedere la natura delle variazioni del programma e pianificare queste variazioni nella progettazione della base di dati. Per tutte le ragioni preceden ti, si ? rivelato difficile introdurre tutte le variazioni di programma, tranne quelle secondaria, nei sistemi o impianti controllati da programma moderni pi? sofisticati senza inizializzazione massiccia.
Questo problema ? stato risolto dalla presente invenzione, il cui metodo comprende le fasi di generare un numero sequenziale di sistema che ? variato solo in modo monotono in una data direzione, assegnare il numero sequenziale di sistema ad un processo con un numero sequenziale di processo in corrispondenza del momento in cui il processo viene avviato, memorizzate una versione modificata di una funzione di programma selezionata nella memoria del programma, ritenendo al tempo stesso una versione attuale della funzione di programma selezionata, registrare un numero di sequenza di funzione i il numero di sequenza di funzione decisio? naie essendo oltre il numero sequenziale o .di sequenza del sistema nella data direzione o dato senso, variare il numero sequenziale del sistema nella data direzione in modo tale che esso abbia a raggiungere un valore progredito almeno nella data direzione come il numero sequenziale di funzione decisionale, e eseguire la versione attuale se il numero di sequenza o sequenziale di processo ? prima del numero sequenziale di funzione decisionale nella data direzione, e eseguire la versione modificata se il numero sequenziale di processo ? almeno progredito come il numero se? quenziale di funzione decisionale nella data direzione.
Uno scopo della presente invenzione ? quello di consentire la introduzione di variazioni di programma in sistemi controllati da programma senza interferire con i processi in corso di esecuzione, anche mentre il sistema sta funzionando con carico normale.
Secondo la presente invenzione, cambiamenti sono introdotti nel programma di un sistema o impianto controllato da programma memorizzando tma versione modificata di tma funzione di programma, ritenendo nel contempo la versione attuale e facendo quindi s? che tutti i processi av viati prima della variazione abbiano ad eseguire la versione attuale di tale funzione, e facendo in modo che tutti i processi avviati dopo la variazione abbiano ad eseguire la versione modificata di detta funzione.
Secando forma di realizzazione, ci? viene attuato con l'ausilio di un numero sequenziale di sistema, mantenuto dal sistemaiUn numero sequenziale di sistema viene variato solo in modo monotono in una direzione.o dato senso, e viene variato almeno ogni volta che ima funzione di programma modificata viene introdotta nel sistema. Il valore attuale del numero sequenziale del sistema viene registrato con un processo ogniqualvolta il processo viene avviato. Ogniqualvolta una versione modificata di una funzione di programma viene memorizzata nel sistemai un numero sequenziale di funzione decisionale viene assegnato alla funzione modificata! avente un valore il quale ? oltre nella data direzioner rispetto al valore del numero sequenziale di processo di un qualsiasi processo attualmente attivo che impiega tale funzione di programma. Il numero sequenziale di sistema viene successivamente modificato, in modo tale che esso abbia a trovarsi nella data direzione almeno progredito come il numero sequenziale di funzione decisionale. Successivamente, ogni qualvolta un processo ri? chiede la funzione che ? stata modificata, il numero sequenziale di funzione decisionale viene comparato con il numero di processo. Se il .risultato della comparazione indica che la versione modificata ? stata memorizzata nel sistema prima dell'inizo del processo di chiamata,allora viene ese? guita la versione modificata della funzione di programma; in caso contrario viene eseguita la funzione attuale.
In una forma di realizzazione specifica dell*invenzione, funzioni di programma possono essere richieste da un processo tramite l'impi^ go di un vettore in una tabella vettoriale di trasferimento memorizzata, che normalmente punta direttamente alla funzione di programma desiderata. Se viene introdotta una funzione di programma modificata nel sistema, allorailvettore, invece punter?adunafunzionedecisionale.Lafun? zionedecisionaleesegue quindi-ladecisionerelativaalfatto se-deve essereeseguita laversioneattualeoppurelaversionemodificatadella funzionediprogramma.Sedeveessereeseguita laversioneattuale,allora vieneeseguitaunadiramazione diprogrammaallaversioneattuale|incasocontrariovieneeseguitaunadiramazionediprogrammaallaversionemodificata.Vantaggiosamente,lafunzionedecisionalepu?precederedirettamentelaversionemodificata,.semplificandocos?ilprocessodi recupero di spaziodimemorizzazionequandoversionivecchiedi funzionedi programmanon sonopi?necessarie.
Periodicamente,un programma diauditpu?essereeseguitoperda terminareseun qualsiasiprocessoattivoriguardanteunafunzionediprogramma,che?statamodificata,haunnumerosequenzialeche?, nelladatadirezione,primadiquellodellaversionemodificatadellafunzione diprogramma.Senonvisonoprocessidiquestotipo,alloralaversione attualedellafunzionediprogrammapu?esserecancellata,ilvettorepu? puntaredirettamenteallaversionemodificatadella funzioneinvecedi pun tareallafunzionedecisionale ,eil"bloccodimemoriaoocapatodalla versioneattualedellafunzionediprogrammadivienespaziodisponibile peraltrefunzionidiprogrammanuoveomodificate.
Vantaggiosamente,inumerisequenzialipossonoesserecostitu?? tidaqualsiasinumeroagruppodinumerichevarianoinmodomonotono, otramiteincrementazione,oppuretramitedecrementazione,percui?possibileindicareseundatonumerosequenzialeeraassegnatoprimadiun altronumerosequenziale. Numeri sequenzialidevonovariareconunafrequenza almeno pari a quella con cui sono introdotte le variazioni di pr?gramma e possono variare molto pi? frequentemente. Ad esempio, ? possibile impiegare una quantit? rappresentante data e ora come un numero sequenziale, poich? questa quantit? si mantiene variabile in modo monotono tramite incrementazione positiva. Ci? presenta l'ulteriore vantaggio di ilapiegare un numero sequenziale che pu? avere impiego aggiuntivo, ad esempio per rivelare processi che sono stati in stato attivo per un periodo di tempo eccessivo. Inoltre, se ? desiderato caricare una modifica un certo tempo prima che la modifica debba essere attivata, allora il numero sequenziale di funzione decisionale pu? essere preimpostato ad tuia quantit? rappresentante il tempo di attivazione; la modifica non sar? in tal calo impiegata prima del citato tempo di attivazione.
L?invenzione sar? meglio compresa dalla seguente descrizione particolareggiata, quando letta in unione ai disegni in cui:
lafigura 1 ? una disposizione di memoria di una forma di realizzazione illustrativa dell?invenzione, rappresentante le relazioni di indirizzamento fra versioni attuale e modificata di una funzione di programma;
la figura 2 ? uno schema -a blocchi di un processore di un sistema o impianto controllato da programmai
la figura 3 ? un diagramma di flusso di un programma di audit per recuperare memorizzazione di una versione vecchia di un programma quando non pi? richiesta
di sistema o impianto controllato da programma ha due tipi di informazionememorizzata nella sua memoria e cio?: programmi e dati. Un programma comprende uninsieme di istruzioni basilari, di un processore, ciascuna delle quali istruzioni dirige una certa fase elementare, per cui un insieme quando eseguitorealizza un qualche compito pi?. ampio del sistema o serie di compiti. I .dati comprendono informazione relativa allo stato attuale di un compito, informazione ottenuta da sorgenti esterne e preliminarmente o precedentemente memorizzata nel sistema, e informazione generata per eseguire i compiti funzionali del sistema. I programmi eseguono i loro compiti elaborando dati e controllando sistemi di ingresso/uscita in conformilacon i valori attuali dei dati.
In sistemi controllati da programma moderni, il controllo basilare del sistema risiede in un programma principale il quale, assieme ai dati associati, viene chiamato il sistema operativo. Il sistema operativo dirige l'esecuzine.dei co piti del sistema creando e attuando processi.
Un processo ? un programma pi? memoria di dati di controllo associata,chiamato blocco di controllo di processo. Il blocco di controllo di processo mantiene traccia o registrazione del contesto di ciascun processo includente informazione come ad esempio l'identificazione del processo, lo stato corrente del processo, la priorit? di processo, il tempo del sistema in corrispondenza dell'inizio del processo, ecc. I processi, a loro volta, eseguono i loro compiti richiedendo l'esecuzione di una serie di funzioni di programma.
Funzionando normalmente, un sistema controllato da programma avr? solitamente alcuni processi che sono attivi e alcuni che sono a riposo. Un processo ? considerato come attivo durante il periodo in cui esso sta attivamente eseguendo un compito, attendendo un blocco o periodo di tempo per la continuazione della propria esecuzione di un compito, o attendendo dispositivi di ingresso oppure di uscita. In seguito al completamento di un compito, o gruppo di compiti, esso assume lo stato di riposo e rimane in questo stato finch? esso non viene nuovamente avviato per eseguire un altro compito o gruppo di compiti. Quando un processo entra in uno stato di riposo, un minimo di dati viene riportato per l?impiego successivo al riavviamento del processo. Nessun riferimento di programma diretto ? ritenuto quando un processo passa a riposo.
In corrispondenza di uno stadio qualsiasi, nella vita di un processo, una variazione di programma pu? essere introdotta memorizzando u? na funzione di programma modificata in un certo spazio disponibile in me? moria. Tuttavia, risultati non corretti possono essere generati se una funzione di programma modificata viene impiegata da un processo che era gi? attivo prima della introduzione della variazione. Al fine di garantire che ciascun processo abbia ad impiegare la medesima funzione di prograrama durante tutto il tempo in cui esso rimane attivo, funzioni decisionali sono associate con ciascuna versione modificata di una funzione di programma. Le funzioni decisionali sono brevi programmi che determinano qualido il processo cheharichiesto la funzionediprogramma?stato iniziato ? prima o dopo del caricamento nel sistema o impianto della versione modificata della funzione di programma. Se lafunzione modificata ? stata carricata prima dell'avviamento del processo, allora viene impiegata la versione modificata stessa; se la versione modificata ? stata caricata dopo -l'avviamento del processo, allora vieneImpiegata la versione attuale.
On numero sequenziale del sistema ? mantenuto per tener trac? eia e registrazione dell'ordine di eventi, cio? se un processo ? stato iniziato prima o dopo il caricamento nel sistema di unaversione modificata di una funzione di programna Un numero sequenziale di sistema pu? essere costituito da una qualsiasi quantit? variata in modo monotono, in modo tale che pu? essere stabilito l'ordinamento nel tempo tra due numeri sequenziali diversi. Ad esempio, se un numero sequenziale di sistema ? sempre incrementato in modo positivo, allora un numero sequenziale di sistema maggiore ? associato con un istante temporale maggiormente posteriore che non un numero sequenziale di sistema inferiore.11 tempo, comprendente data e tempo del giorno viene impiegato come un numero sequenziale di sistema in questa formadi realizzazione
Nella figura 1? il blocco 100 contiene il numero sequenziale del sistema, il tempo, aggiornato automaticamente dal sistema operativo impiegando l'orologio del sistema. L'orologio del sistema costituisce parte del processore 200. Esso ? ben noto nella tecnica e non ? rappresentato nel disegno. Il meccanismo per aggiornare una entrata temporale in memoria ? pure noto, e non sar? ulteriormente descritto nel presente contesto
Un numero sequenziale di processo rappresentante tempo viene memorizzato nel blocco di controllo di processo di un processo ogniqualvolta esso viene avviato. Il blocco 110 di controllo di processo contiene l'informazione di controllo di processo associata con un processo tipico. Come si ? detto precedentemente, il blocco di controllo di processo include vari elementi di informazione associati col processo. La posizione 111 del blocco 110, contiene il numero sequziale di processo che indica il momento in corrispondenza del quale ? stato avviato il processo associato. Ogniqualvolta un processo diviene attivo, il valore attuale del numero sequenziale del sistema viene posto nella posizione 111. Un numero sequenziale di funzione decisionale, rappresentante il tempo at? tuale incrementato di un secondo, viene assegnato alla funzione decisionaie in corrispondenza del momento in cui una funzione di programma modificata viene caricata nella memoria Ciascuno dei blocchi funzionali 130, 140 e 150 di figura 1 rappresenta un'area di memoria per memorizzare un programma. Ciascuno ha un'area per memorizzare una funzione decisionale (131, 141 e 151) e un'area per memorizzare una funzione di programma (132, 142 e 152). Le funzioni di programma rappresentano una versione attuale, F, (132), unaversione modificata, F?, (142) ed una seconda modifica, F" (152). Il blocco 141 di funzione decisionale comprende un programma 144 di funzione decisione le e un numero sequenziale 143 di funzione decisionale identificato come m. Il programma di funzione decisionale pu? essere rappresentato come segue: se il numero sequenziale di processo, n(pc), ? inferiore al numero sequenziale di funzione decisionale, ni, allora il programma passa a f (2) (blocco 132); in caso contrario va a f'(2) (blocco 142). In altre parole, se il processo ? stato avviato prima della introduzione della variazione alloraviene impiegata la versione attuile della funzione di programma, F; in caso contrario'impiega la versione modificata della funzione di programma, F'.
I programmi sonoassegnati a qualsiasi segmento disponibile di memoria. Funzioni di programma individuali possono essere impiegate da molti processi, ma memorizzate solo una volta per risparmiare spazio di memoriautile. Poich? molti programmi possono richiamare tuiafunzionedi programma, ? mantenuta ima lista degli indirizzi attuali di tutte le funzioni di programma ed essa ? resa disponibile per tutti i programmi chiamanti. Questa listaviene chiamata tabellavettoriale di trasferimento. Quando una variazione viene caricatanel sistema, l'indirizzo della tabe!? lavettoriale di trasferimento viene aggiornato per puntare alla funzione decisionale associata con la versione modificata. Quando un processo richiede la funzione di programma che ? stata modificata, la funzione decisionale puntata dalla tabellavettoriale di trasferimento determiner? se deve essere impiegata laversione attuale o modificata della funzione di programma. Nella tabella vettoriale di trasferimento 120, l?entrata 121 punta all?indirizzo della funzione di programma o funzione decisionale esem plificativq. Se solo tuiaversione di un programmaviene caricata nel sisterna, allora l'entrata 121 rappresenta l'indirizzo della funzione di pr?gradina. Se pi? di una versione viene caricata nel sistema, allora l'entrata 121 rappresenta l'indirizzo di una funzione decisionale che consentir? la selezione dellaversione corretta del programma. Quando laversione mo? dificata della funzione di programma F? viene caricata nella memoria del Bistema, l'entratadella tabella vettoriale in corrispondenzadi 121 viene variata da f(2) che ? l'indirizzo dellaversione attuale della funzione di programma, a f'(l), che ? l?indirizzo della funzione decisionale associata con F'. Come risultato, prima che sia eseguita l'una o l'altra vers?one della funzione di programma, la funzione decisionale compara i numeri sequenziali di processo e funzione decisionale per decidere se il processo ? ^tato iniziato prima o dopo l'introduzione della variazione. Se il processo ? stato avviato prima della variazione, allora si verifica una diramazione alla versione attuale Fj in caso contrario viene eseguita la versione modificata F*.
Se sussiste una qualche necessit? di avere tuia modifica addizionale, allora deve essere introdotta una seconda modifica rappresentata da F" nel"blocco 150. Quando F" viene caricata nel sistema, l'entrata 121 nella tabella vettoriale di trasferimento viene variata per puntare a f"(1), che ? la funzione decisionale associata con F", Il blocco 150 comprende la funzione decisionale, blocco 151;e la funzione di programma, F", blocco 152. Il blocco della funzione decisionale comprende il numero sequenziale 153 di funzione decisionale, rappresentato da p, ed il programma 154 di funzione decisionale. Il programma 154 di funzione decisionale pu? essere dichiarato come segue: se il numero sequenziale di processo n(pc), ? inferiore al numero sequenziale di funzione decisionale, p, allorava a f(l); in caso contrario va a f"(2). In altre parole, se il processo ? stato avviato prima del caricamento di F", allora viene eseguito un salto al programma 144 di funzione decisionale associato con la versione F'; in caso contrario viene eseguita F". Il risultato del programma 144 di funzione decisionale ? un salto alla funzione originale, F, se il numero sequenziale di processo, n(pc) ? inferiore al numero sequenziale di funzione decisionale m; in caso contrario viene eseguita la funzione di programma F'. In questo esempio, i processi impiegano le funzioni di programma F, F', o F". I processi pi? vecchi impiegano F, i processi intermedi impieganaF* e i processi avviati pi? recentemente impiegano F". Se ? necessario o desiderato modificare simultaneamente un gruppo di funzioni, allora una funzione decesionale viene inserita per ciascuna di queste funzioni di programma, ~e il medesimo numero sequenziale viene assegnato a tutte le funzioni decisionali associate con tale gruppo. E' pure possibile attivazione ritarda^-ta di una modifica di programma. Il numero sequenziale di funzione decisionale associato con tale modifica sarebbe il tempo di attivazione ritardato. La modifica non avrebbe quindi effetto sino al tempo di attivazione.
Questa descrizione ? stata fornita nei termini di una modificadi una funzione di programma singola. Manifestamente, molte funzioni di programma possono essere modificate impiegando le tecniche della presente invenzione. Modificazioni di programma per molte funzioni di programma diverse, caricate in corrispondenza di momenti diversi, ciascuna funzione di programma modificata avendo la sua propria funzione decisionale associata, possano esistere contemporanesamente nel sistema.
La figura 2 illustra tre componenti principali di un sistema controllato da programma, e cio? il processore centrale 202, la memoria principale 201 e l?apparecchiatura di ingresso/uscita 203. L'unit? di elaborazione centrale e la sua memoria associata possono essere uno qualsiasi di una pluralit? di moderni processori ben noti nella tecnica. L'apparecchiatura di ingresso/uscita pu? includere dispositivi di memoria supplementare come ad esempio unit? a nastro magnetico e dischi a testine fisse oppure mobili. L'unit? di elaborazione centrale esegue processi e funzioni di programma che sono memorizzati in memoria. Bell'eseguire questi processi e funzioni di programma, l'unit? di elaborazione centrale accede e mo? difica dati memorizzati nella memoria. L'unit? di elaborazione centrale esegue semplici passi come ad esempio la comparazione di due numeri, l'esecuzione di un ramo condizionato basato su tale comparazione, l'incrementazione di una quantit? nella memoria, lo spostamento di quantit? memorizzate in memoria da una posizione all'altra, la diramazione incondizionata ad un indirizzo indicato direttamente oppure indirettamente. L'unit? di elaborazione centrale ? pure in grado di caricare una versione modificata di ima funzione di programma dalla apparecchiatura di ingresso/uscita 203 nella memoria principale 201.
Periodicamente, vengono eseguiti programmi di audit sia per recuperare spazio di memoria occupato da versioni vecchie delle funzioni di programma che non sono pi? impiegate sia per aggiornare la tabella vettoriale di trasferimento con indirizzi di versioni modificate di funzioni di programma, al fine di bipassare la funzione decisionale non pi? richiesta. La figura 3 ? un diagramma di flusso di un programma di auditcheesami na processi che potrebbero impiegare o la funzione di programma vecchia P oppure la versione modificata F'. In questo esempio si suppone che il programma di audit eia eseguito dopo l'introduzione della modifica F? nel sistema e prima che abbia a verificarsi la modifica F".
Il programma di audit pu? essere considerato come suddivision in tre parti e cio?: passi iniziali (300-302), ciclo (303?306) e recupero memoria (307-308). Il-progranma diauditviene avviato tramiteilsistema operativo. Il programma di audit deve leggere il numero sequenziale m di funzione decisionale che deve essere comparato col numero sequenziale di processo di tutti i processi attivi che potrebbero impiegare la versione attuale o modificata della finizione di programma. Viene quindi fatto acoesso al primo processo. La serie di passi del ciclo inizia con un controllo per determinare se il processo ? in stato di riposo o inattivo. Se il processo non ? in stato inattivo, allora il numero sequenziale di processo viene comparato col numero sequenziale di funzione decisionale. Se il numero sequenziale di processo non ? almeno pari al numero sequenziale di funzione decisionale, allora il programma di audit viene terminato; ci? significa che un qualche processo attivo sta ancora impiegando la versiohe attuale della funzione di programma. In caso contrario, il processo ciclico continua finch? tutti i processi appropriati non sono stati esaminati. Se il programma di audit non ? stato terminato dopo che tutti i processi appropriati sono stati esaminati, allora il programma diauditpu? procedere per recuperare memoria. Esso fa ci? variando l?entrata della tabella vettoriale in modo che punto direttamente alla versione modificata,erendendo disponibile lo spazio di memoria occupato dalla versione corrente per il sistema operativo per la riassegnazione per altri scopi.
Come ? illustrato nel blocco 300 del diagramma di flusso di figura 3, il programma diauditinizal'esecuzionedopo essere stato avviato dal sistema operativo. Il numero sequenziale di funzione decisionale, mf associato con P?, viene letto dal programma di audit in301?In3021il programmadiauditaccedealprimoprocesso che impiega F o F*. Quindi,in corrispondenza dei punti decisionali 303 e 304? rispettivamente, il programma diauditdeterminaseil processo ? inattivo e se il suo numero sequen ziale, n(pc), ? maggiore del o uguale al numero sequenziale di funzione decisionale associato con F'. Se entrambe queste decisioni sono negative, allora il programma di audit conclude che il processo ? attivo e impiega F, .la versione attuale della funzione di programma. Poich? F ? ancora impiegata da un processo attivo, essa non pu? essere cancellata. Conseguentemente, il programma di audit termina in corrispondenza di 309.
Se l'una o l'altra decisione ? positiva, allora il programma di audit conclude ohe il processo ? o a riposo o inattivo e preparato per impiegare la versione modificata della funzione di programma F' quando essa viene avviata, oppure sta gi? impiegando F* ? Il programma di audit proce -de al punto decisionale 305 ove esso determina se vi sono ulteriori processi che impiegano F o F' . Se vi sono altri di questi processi, allora il programma di audit accede al processo successivo nel blocco 306, e cicla attraverso i punti decisionali 303, 304 e 305 nuovamente.
Il programma.4i audit ripete il ciclo finch? tutti i processi che impiegano le funzioni F o F' non sono stati esaminati. Se non sono stetti scoperti processi attivi impieganti F, allora non vi ? ragione di conservare l?indirizzo della funzione decisionale nella tabella vettoriale di trasferimento. Perci?, nel blocco 307, il programma di audit cambia l'en trata 121 nella tabella di trasferimento per puntare direttamente all?indirizzo f ' (2) della nuova funzione di programma F* .
Poich? la funzione di programma F non ? pi? puntata da alcun processo e non pu? pi? essere indirizzata dalla funzione decisionale, essa occupa spazio sprecato in memoria. Poich? questo spazio pu? essere impiegato per un qualche altro scopo, il programma ' di audit cancella la funzione "di programma F, rilascia il blocco 130 come imo spazio di memoria libero in corrispondenza di 308 e termina in corrispondenza di 309? Si deve notare che il hlocoo 130 include pure lo spazio precedentemente occupato da una funzione decisionale guando F ? stata introdotta come una modifica del programma Ritendend o assicura la modifica e la sua funzione decisionale associataf l 'interblocco di memoria pu? essere reso disponibile quando F non ? pi? richiesta?
In taluni sistemi pu? essere difficile che il programma di audit possa determinare se un processo ? attivo o inattivo. In questo caso, il controllo del blocco 303 pu? essere bipassato. Pu? pure essere pi? conveniente esaminare tutti i processi indipendentemente dal fatto 3e essi impieghino o no F o F*? Gli unici risultati nocivi di tale semplificazione sono che la funzione decisionale rimane attiva per un periodo maggiore
di quello necessario, e che lo spazio di memorizzazione occupata dalla versione attuale della funzione di programma non pu? essere altrettanto rapidamente recuperato.
Una grande classe di modifiche di programma possono essere introdotte impiegando le tecniche della presente invenzione,fra cui modifiche in programmi che avviano e eseguono processi. In linea generale, questi programmi sono finizioni di programma richieste dal sistema operativo che ? pure un gruppo di funzioni di programma. Qualsiasi programma richiesto indirettamente pu? in linea di pr \incipio, essere variato impiegando le tecniche della presente invenzione. Tuttavia, talune restrizioni sorgono nell' eseguire modificazioni a funzioni di programma che impiegano dati interpretati differentemente dalle versioni attuale e modificata di una funzione di programma, in particolare quando questi dati sono conservati durante un intervallo inattivo di un processo oppure quando questi dati sono

Claims (8)

R I V E N D I C A Z I O N I
1. Procedimento per introdurre variazioni in un sistema o impianto controllato da programma senza richiedere arresto parziale o totale del sistema e successiva inizializzazione, comprendente le fasi di generare un numero sequenziale di sistema il (piale viene varriato solo in modo monotono in ima data direzione o in un dato senso;
assegnare il numero sequenziale di sistema ad un processo come un numero sequenziale di processo in corrispondenza del momento in cui il processo viene avviato;
memorizzare una versione modificata di una funzione di programma selezionata nella memoria di programma, conservando al tempo stesso versione attuale della funzione di programma selezionata;
registrare -un numero sequenziale di funzione decisionale, il numero sequenziale di funzione decisionale essendo oltre il numero sequenziale di sistema o dell'impianto-nella data direzione;
variare il numero sequenziale del sistema nella data direzione in maniera tale che esso abbia a raggiungere un valore almeno progredito nella data direzione come il numero sequenziale di funzione decisionale;e eseguire la versione attuale se il numero sequenziale di processo precede il numero sequenziale di funzione decisionale nella data di iezione, e eseguire la versione modificata se il numero sequenziale di processo ? almeno progredito come il numero sequenziale di funzione de? cisionale nella data direzione
2. Procedimento secondo la rivendicazione 1, in cui la fase di esecuzione comprende inoltre le fasi di:
comparare il numero sequenziale di processo col numero sequen? ziale di funzione decisionale;
diramare alla versione attuale se il risultato della comparazione indica che il numero sequenziale di processo si trova prima del immelo di funzione decisionale nella data direzione; e
diramare alla versione modificata se il risultato della companazione indica che il numero sequenziale di processo si trova progredito almeno come il numero sequenziale di funzione decisionale nella data direzione
3 Procedimento secondo la rivendicazione 1, in cui la fase di assegnazione comprende la fase di:
memorizzare il numero sequenziale del sistema o dell'impianto in una posizione di memoria associata con il processo.
4 Procedimento secondo la rivendicazione 1, in cui detta versione attuale di detta funzione di programma selezionata comprende una versione intermedia ed una versione pi? vecchia di detta funzione di programma selezionato, e in cui detta fase di diramazione a detta versione attualet se risultato di detta comparazione? indica che detto numero sequenziale di processo ? prima di detto numero sequenziale di funzione decisionale in detta data direzione,comprende inoltre le fasi di:
eseguire una seconda comparazione fra detto numero sequenziale di processo e un secondo numero sequenziale di funzione decisionale associato con detta versione intermedia di detta funzione di programma selezionata;
'diramare a detta versione pi? vecchia se detta seconda comparazione indica che detto numero sequenziale di processo si trova prima di detto secondo numero sequenziale di funzione decisionale in detta da*? ta direzione; e
diramare a detta versione intermedia se detta seconda comparazio indicache detto numero sequenziale di processo ? almeno progredito come detto secondo numero sequenziale di funzione decisionale in detta data direzione*
5 Procedimento secondo le rivendicazioni 1, 2, 3 oppure 4 comprendente inoltre le fasi di:
ripetere detta fase di assegnazione per una pluralit? di pr?cessi, compresi tutti i processi che realizzano chiamate funzionali a detta funzione di programma selezionata;
eseguire periodicamente terze comparazioni fra il numero se??'\ quenziale di processo di almeno tutti i processi attivi inclusi in. detta pluralit? di processi e detto numero sequenziale di funzione decisionale;, e cancellare detta versione attuale se nessuno di detti numeri sequenziali di processo di almeno tutti i processi attivi inclusi in detta pluralit? di processi si trova prima di detto numero sequenziale di funzione decisionale in detta data direzione.
6 Sistema a processore controllato da programma comprendente: un?unit? di elaborazione centrale (202) ed una memoria di programma (201) caratterizzato dal fatto ohe la memoria di programma (201) contiene una versione attuale di una funzione di programma selezionata (132); e memorizza una versione modificata della funzione di programma selezionata (142);
l?unit? di elaborazione centrale (202) interroga la memoria di programma (201, 110, 111, 121, 141, 132, 142) e esegue la versione attuale di Una funzione di programma selezionata se un processo richiedente la funzione di programma selezionata ? stato avviato prima della memorizzazione della versione modificata nella memoria, e esegue la versione modificata se il processo richiedente la funzione di programma selezionata ? stato iniziato dopo la memorizzazione in ;memoria della versione modificata:
7. Sistema o impianto a processore controllato da programma secondo la rivendicazione 6, caratterizzato dal fatto che:
? memorizzato un numero sequenziale del sistema, il quale numero viene variato in un dato senso o data direzione;
il numero sequenziale del sistema ? memorizzato come un nume? ro sequeniziale di processo in corrispondenza dell'istante di inizio del processo;
un numero sequenziale di funzione decisionale ? memorizzato in corrispondenza del momento della memorizzazione della versione modificata, il numero sequenziale di funzione decisionale essendo oltre il numero sequenziale di processo nella data direzione;
il numero sequenziale di sistema essendo modificato in modo tale che esso abbia a raggiungere un valore almeno progredito nella data direzione come il numero sequenziale di funzione decisionale;
l'unit? di elaborazione centrale (202 ) esegue la versione modificata della funzione selezionata in risposta ad una chiamata di funzione ad una funzione selezionata se il numero sequenziale di processo ? prima del numero sequenziale di funzione decisionale nella data direzione ed esegue la versione attuale della funzione selezionata in risposta ad una chiamata di funzione alla funzione selezionata se il numero sequenziale di processo ? almeno progredito come il numero funzionale o di funzione decisionale nella data direzione
8 Sistema o impianto a processore controllato da programma secondo la rivendicazione 7? caratterizzato dal fatto che:
l'unit? di elaborazione centrale (202) ? atta a comparare il numero sequenziale di processo con il numero sequenziale di funzione decisionale e a diramare alla versione attuale se la comparazione indica che il numero sequenziale di processo ? prima del numero sequenziale di funzione decisionale nella data direzione e a diramare alla versione modificata se la comparazione indica che il numero sequenziale di processo ? almeno progredito come il numero sequenziale di funzione decisionale nella 'data direzione.
9, Sistema o impianto a processore controllato da programma secondo la rivendicazione 8, caratterizzato dal fatto che la memoria (201 ) del programma memorizza una versione intermedia della funzione di programma selezionata ed una versione pi? vecchia al posto della versione attua-
l?unit? di elaborazione centrale (202) dirama la versione at-Vuale se la comparazione indica che il numero sequenziale di processo si trova prima del numero sequenziale di funzione decisionale nella data direzione ed esegue una seconda comparazione frali numero sequenziale di proces, so e il secondo numero sequenziale di funzione decisionale associato con la versione intermedia della funzione di programma selezionata e dirama alla versione pi? vecchia se la seconda comparazione indica che il numero sequenziale di processo si trova prima del secondo numero sequenziale d? funzione decisionale nella data direzione e dirama alla versione intermedia se la seconda comparazione indica che il numero sequenziale di proces?? so s? trova almeno progredito come il secondo numero di funzione decisionale nella data direzione.
IT24362/82A 1981-11-23 1982-11-22 Procedimento e apparecchiatura per introdurre variazioni di programma in sistemi controllati a programma IT1153094B (it)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/323,812 US4425618A (en) 1981-11-23 1981-11-23 Method and apparatus for introducing program changes in program-controlled systems

Publications (3)

Publication Number Publication Date
IT8224362A0 IT8224362A0 (it) 1982-11-22
IT8224362A1 true IT8224362A1 (it) 1984-05-22
IT1153094B IT1153094B (it) 1987-01-14

Family

ID=23260828

Family Applications (1)

Application Number Title Priority Date Filing Date
IT24362/82A IT1153094B (it) 1981-11-23 1982-11-22 Procedimento e apparecchiatura per introdurre variazioni di programma in sistemi controllati a programma

Country Status (11)

Country Link
US (1) US4425618A (it)
EP (1) EP0094416B1 (it)
JP (1) JPS58502025A (it)
KR (1) KR880000338B1 (it)
AU (2) AU556190B2 (it)
CA (1) CA1175153A (it)
DE (1) DE3279423D1 (it)
ES (2) ES8402093A1 (it)
HK (1) HK4390A (it)
IT (1) IT1153094B (it)
WO (1) WO1983001847A1 (it)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2500659B1 (fr) * 1981-02-25 1986-02-28 Philips Ind Commerciale Dispositif pour l'allocation dynamique des taches d'un ordinateur multiprocesseur
US4979107A (en) * 1985-02-21 1990-12-18 International Business Machines Corporation Modification of device configuration wherein the system specifies and prompts the user with only parameters required to be changed
JPS6276954A (ja) * 1985-09-30 1987-04-09 Toshiba Corp 通信制御装置
US5133066A (en) * 1985-10-24 1992-07-21 International Business Machines Corporation Method for selecting multiple versions of data in a reduced record units text editing system
PH24865A (en) * 1987-03-24 1990-12-26 Ibm Mode conversion of computer commands
DE59108978D1 (de) * 1990-08-28 1998-06-10 Landis & Gyr Tech Innovat Verfahren zum Aendern einer in einem Computer eines Gerätes abgespeicherten Maschinensprachenfassung eines ersten Programms in eine Maschinensprachenfassung eines durch mindestens eine Aenderung vom ersten Programm abgeleiteten zweiten Programms
EP0472813B1 (de) * 1990-08-28 1998-12-16 Landis & Gyr Technology Innovation AG Verfahren zum Aendern eines in einer Computeranordnung eines Gerätes gespeicherten Computerprogramms in ein geändertes Computerprogramm und Anordnung zum Durchführen des Verfahrens
JP2886961B2 (ja) * 1990-09-19 1999-04-26 株式会社日立製作所 プログラム入替方法
US5579509A (en) * 1991-02-08 1996-11-26 International Business Machines Corporation Apparatus and method for verifying compatibility of system components
US5297285A (en) * 1991-07-23 1994-03-22 Telefonaktiebolaget L M Ericsson System for dynamically linking modular portions of computer software
EP0548869B1 (en) * 1991-12-23 2000-06-14 Microsoft Corporation Method for integrating a discrete subprogram into a main program
US5590347A (en) * 1992-12-07 1996-12-31 Microsoft Corporation Method and system for specifying alternate behavior of a software system using alternate behavior indicia
US5896531A (en) * 1993-02-26 1999-04-20 International Business Machines Corporation Method and system for managing environments with a data processing system
US5787444A (en) * 1993-03-15 1998-07-28 International Business Machines Corp. Method and apparatus for maintaining revision contol of a set of objects within a data processing system
US5590318A (en) * 1993-11-18 1996-12-31 Microsoft Corporation Method and system for tracking files pending processing
US5452339A (en) * 1994-02-09 1995-09-19 Harris Corporation Local/remote modification of electronically alterable operating system firmware resident in redundant flash memory of remote unit for testing/conditioning subscriber line circuits
US5862370A (en) * 1995-09-27 1999-01-19 Vlsi Technology, Inc. Data processor system with instruction substitution filter for deimplementing instructions
US5761677A (en) * 1996-01-03 1998-06-02 Sun Microsystems, Inc. Computer system method and apparatus providing for various versions of a file without requiring data copy or log operations
US6044477A (en) * 1996-01-31 2000-03-28 International Business Machines Corporation System and method for auditing buffer usage in a data processing system
US5938766A (en) * 1997-03-21 1999-08-17 Apple Computer, Inc. System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables
FR2764392B1 (fr) * 1997-06-04 1999-08-13 Sgs Thomson Microelectronics Procede d'identification d'un circuit integre et dispositif associe
US5896527A (en) * 1997-10-31 1999-04-20 Lucent Technologies Inc. Accessing data during the transition between program releases
US6289503B1 (en) * 1998-09-24 2001-09-11 International Business Machines Corporation System and method for trace verification
US6397385B1 (en) 1999-07-16 2002-05-28 Excel Switching Corporation Method and apparatus for in service software upgrade for expandable telecommunications system
US6857119B1 (en) * 2001-09-25 2005-02-15 Oracle International Corporation Techniques for modifying a compiled application
CA2379732A1 (en) * 2002-04-02 2003-10-02 Turbocor Inc. System and method for controlling an electric motor
US7657616B1 (en) 2002-06-10 2010-02-02 Quest Software, Inc. Automatic discovery of users associated with screen names
US20080196099A1 (en) * 2002-06-10 2008-08-14 Akonix Systems, Inc. Systems and methods for detecting and blocking malicious content in instant messages
US7428590B2 (en) 2002-06-10 2008-09-23 Akonix Systems, Inc. Systems and methods for reflecting messages associated with a target protocol within a network
US7818565B2 (en) * 2002-06-10 2010-10-19 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
US7707401B2 (en) * 2002-06-10 2010-04-27 Quest Software, Inc. Systems and methods for a protocol gateway
US7774832B2 (en) * 2002-06-10 2010-08-10 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
JP2005529409A (ja) 2002-06-10 2005-09-29 アコニクス・システムズ・インコーポレイテッド プロトコルゲートウェイのためのシステム及び方法
US7333992B2 (en) 2003-05-22 2008-02-19 Microsoft Corporation System and method for identifying and storing changes made to a table
CA2539470A1 (en) * 2003-09-11 2005-03-24 Akonix Systems, Inc. Systems and methods for dynamically updating software in a protocol gateway
US7200624B2 (en) * 2004-03-29 2007-04-03 Microsoft Corporation Systems and methods for versioning based triggers
WO2007056691A2 (en) 2005-11-03 2007-05-18 Akonix Systems, Inc. Systems and methods for remote rogue protocol enforcement
US20090076628A1 (en) * 2007-09-18 2009-03-19 David Mark Smith Methods and apparatus to upgrade and provide control redundancy in process plants
EP2329367B1 (en) * 2008-08-04 2014-06-11 Red Bend Ltd. Performing an in-place update of an operating storage device
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data
JP7499966B2 (ja) * 2021-06-23 2024-06-14 三菱電機株式会社 制御装置、及び、アドレス管理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3568157A (en) 1963-12-31 1971-03-02 Bell Telephone Labor Inc Program controlled data processing system
US3597739A (en) 1965-08-25 1971-08-03 Bell Telephone Labor Inc Method for operating a data processor
SE330455B (it) 1969-06-17 1970-11-16 Ericsson Telefon Ab L M
US3652804A (en) 1969-10-24 1972-03-28 Bell Telephone Labor Inc Maintenance busy link map marking in a stored program controlled switching system
US3772654A (en) 1971-12-30 1973-11-13 Ibm Method and apparatus for data form modification
US3723976A (en) 1972-01-20 1973-03-27 Ibm Memory system with logical and real addressing
US3969701A (en) 1973-04-09 1976-07-13 Telefonaktiebolaget L M Ericsson Function block oriented SPC system
US3909795A (en) 1973-08-31 1975-09-30 Gte Automatic Electric Lab Inc Program timing circuitry for central data processor of digital communications system
US3845474A (en) 1973-11-05 1974-10-29 Honeywell Inf Systems Cache store clearing operation for multiprocessor mode
US3969723A (en) * 1974-07-03 1976-07-13 General Electric Company On-line modification of computer programs
GB1548401A (en) 1975-10-08 1979-07-11 Plessey Co Ltd Data processing memory space allocation and deallocation arrangements
US4047161A (en) 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus

Also Published As

Publication number Publication date
AU1042082A (en) 1983-06-01
IT1153094B (it) 1987-01-14
ES8407347A1 (es) 1984-09-16
JPS58502025A (ja) 1983-11-24
KR840002548A (ko) 1984-07-02
ES527125A0 (es) 1984-09-16
AU556190B2 (en) 1986-10-23
EP0094416B1 (en) 1989-02-01
EP0094416A1 (en) 1983-11-23
DE3279423D1 (en) 1989-03-09
IT8224362A0 (it) 1982-11-22
ES517568A0 (es) 1984-02-01
ES8402093A1 (es) 1984-02-01
CA1175153A (en) 1984-09-25
WO1983001847A1 (en) 1983-05-26
US4425618A (en) 1984-01-10
HK4390A (en) 1990-01-25
KR880000338B1 (ko) 1988-03-20
EP0094416A4 (en) 1986-11-10

Similar Documents

Publication Publication Date Title
IT8224362A1 (it) Procedimento e apparecchiatura per introdurre variazioni di programma in sistemi controllati a programma
DE69424610T2 (de) Datenverarbeitungs-anlage und -verfahren
KR950012293B1 (ko) 정보처리장치 및 이를 이용한 정보처리방법
US8286154B2 (en) Apparatus and method for live loading of version upgrades in a process control environment
AU4275796A (en) Method of synchronization allowing state transfer
EP3401784A1 (en) Multicore processing system
US6757679B1 (en) System for building electronic queue(s) utilizing self organizing units in parallel to permit concurrent queue add and remove operations
CN111221650A (zh) 基于进程类型关联的系统资源回收方法及装置
McGee The information management system IMS/VS, Part V: Transaction processing facilities
WO2018096717A1 (ja) コントロールシステム及びコントロール方法
CN113778640A (zh) 任务执行方法、装置、电子设备及存储介质
CA1092714A (en) Extended interruption handling
KR940002275B1 (ko) 정보 처리 시스템에 로우딩된 프로그램의 실행의 관찰 방법 및 그 실행 장치
US20040181387A1 (en) Run-time node prefetch prediction in dataflow graphs
JPS6342293B2 (it)
JP2927102B2 (ja) 命令列切り替え方法及びそれを用いた演算プロセッサ
US20240070679A1 (en) Scheduling automated workflows to conserve computing resources
JP2003140899A (ja) コンピュータ装置及び動的dll使用時のクラスオブジェクト管理方法並びにdllを動的に用いるプログラム
CN117632236A (zh) 一种任务管理系统
JPS63106047A (ja) 動的サブル−チン呼び出し方式
CN110764880A (zh) 一种基于原子操作的三态控制方法
CN117271071A (zh) 一种基于定时器的异步方法、装置、设备和介质
JPH0827752B2 (ja) 資源ステータス保持装置
JPS58169268A (ja) グル−プ定義保存方式
JPH0421031A (ja) レジスタ再割付け方式