專利名稱:操作系統(tǒng)的重啟動(dòng)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及操作系統(tǒng)的重啟動(dòng)方法,特別涉及操作系統(tǒng)因軟件故障而中斷時(shí)的操作系統(tǒng)重啟動(dòng)方法。
在現(xiàn)有的各種操作系統(tǒng)中,從核心程序分離出用于控制與計(jì)算機(jī)相連接的硬件的設(shè)備驅(qū)動(dòng)程序模塊。而且,從磁盤裝置等次級(jí)存儲(chǔ)裝置裝入核心程序需要的設(shè)備驅(qū)動(dòng)程序并利用。在具有上述功能的操作系統(tǒng)中,采用利用從操作系統(tǒng)中奪取時(shí)鐘插入并進(jìn)行管理的實(shí)時(shí)處理驅(qū)動(dòng)程序,在計(jì)算機(jī)中執(zhí)行嚴(yán)格時(shí)間限制的系統(tǒng)控制的方式。通過這種方式,實(shí)時(shí)處理驅(qū)動(dòng)程序奪取原來操作系統(tǒng)應(yīng)接收的時(shí)鐘插入優(yōu)先于操作系統(tǒng)處理執(zhí)行實(shí)時(shí)處理。然后使控制返回操作系統(tǒng)。
這樣的實(shí)例在“The RTX Real-Time Subsystem for Windows NT”(USENIXWindows NT Workshop-August 11-13,1997,pp33-37)中予以描述。在此文獻(xiàn)中,通過0S的一部分模塊的變更和特殊的設(shè)備驅(qū)動(dòng)程序,從OS奪取作為實(shí)時(shí)控制對(duì)象的設(shè)備的插入,并由與OS無關(guān)的程序執(zhí)行插入處理。由此,能夠與OS處理無關(guān)地處理插入并提高實(shí)時(shí)性。
在實(shí)時(shí)處理中,確??煽啃允且粋€(gè)大問題。在上述方式中,實(shí)時(shí)處理模塊不依賴于操作系統(tǒng)的核心程序。由此,即使操作系統(tǒng)因軟件故障而中斷,也能夠繼續(xù)進(jìn)行實(shí)時(shí)處理。而且在操作系統(tǒng)因故障而中斷時(shí),會(huì)通知實(shí)時(shí)處理模塊。由此,在實(shí)時(shí)處理模塊一側(cè),能夠執(zhí)行與操作系統(tǒng)的中斷相對(duì)應(yīng)的處理。在上述實(shí)例中,對(duì)作為實(shí)時(shí)控制對(duì)象的設(shè)備的插入處理進(jìn)行控制,以便于即使在OS因故障而中斷時(shí)也繼續(xù)進(jìn)行該處理。
但是,在現(xiàn)有方式中,在重啟動(dòng)因軟件故障而中斷的操作系統(tǒng)時(shí),實(shí)時(shí)處理驅(qū)動(dòng)程序也會(huì)中斷。即,存在不能同時(shí)執(zhí)行操作系統(tǒng)的重啟動(dòng)處理和實(shí)時(shí)處理的問題。這是由于為了在操作系統(tǒng)重啟動(dòng)時(shí)對(duì)處理器復(fù)位而丟失了用于實(shí)時(shí)處理模塊工作的虛擬存儲(chǔ)的內(nèi)容和插入處理用的信息。該問題是因?yàn)楫?dāng)具有在非常短的周期內(nèi)不能中斷而必須控制的硬件的情況下,在重啟動(dòng)操作系統(tǒng)時(shí)其控制中斷。在現(xiàn)有技術(shù)中,不管時(shí)鐘插入,在操作系統(tǒng)的重啟動(dòng)中,操作系統(tǒng)不能接收硬件產(chǎn)生的外部插入。
例如在由多個(gè)計(jì)算機(jī)構(gòu)成的簇結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)中,相隔預(yù)定時(shí)間詢問其它的計(jì)算機(jī)是否正在工作,如果在預(yù)定時(shí)間沒有回答,則判斷為該計(jì)算機(jī)中斷執(zhí)行,從而執(zhí)行變更系統(tǒng)結(jié)構(gòu)的處理。在這種情況下,為了做出計(jì)算機(jī)是否中斷的判斷,必須等待一段時(shí)間。如果在操作系統(tǒng)的重啟動(dòng)中不能進(jìn)行插入處理,則需要把判斷為計(jì)算機(jī)中斷的預(yù)定等待時(shí)間設(shè)定為較長的時(shí)間。為此,而產(chǎn)生了開始系統(tǒng)再構(gòu)成之前的時(shí)間的問題。如果在操作系統(tǒng)的重啟動(dòng)中也接收到響應(yīng)該詢問的外部插入并能夠返回回答,則能夠縮短上述的預(yù)定時(shí)間。從而,能夠縮短開始再構(gòu)成之前的時(shí)間。
在現(xiàn)有的重啟動(dòng)方法中,存在為了執(zhí)行存儲(chǔ)器檢測(cè)和硬件構(gòu)成識(shí)別等處理而使操作系統(tǒng)啟動(dòng)之前的時(shí)間變長的問題。
本發(fā)明的目的是在操作系統(tǒng)重啟動(dòng)時(shí),能夠執(zhí)行獨(dú)立于操作系統(tǒng)而執(zhí)行處理的外部插入處理。
為了達(dá)到上述目的,本發(fā)明在操作系統(tǒng)檢測(cè)出軟件故障并進(jìn)行重啟動(dòng)時(shí),將在重啟動(dòng)過程中被操作的裝入模塊保存到存儲(chǔ)器中,使這個(gè)裝入模塊所處理的外部插入成為可接收的狀態(tài),并在上述外部插入以外的插入禁止的狀態(tài)下,裝入上述裝入模塊以外的裝入模塊。
圖1是適用于本發(fā)明實(shí)施例的計(jì)算機(jī)構(gòu)成圖。
圖2是用于管理裝入模塊及空的存儲(chǔ)器空間的數(shù)據(jù)結(jié)構(gòu)圖。
圖3是用于管理硬件占用資源的數(shù)據(jù)結(jié)構(gòu)圖。
圖4是頁面表及插入處理程序表的數(shù)據(jù)結(jié)構(gòu)圖。
圖5是用于管理非中斷模塊的數(shù)據(jù)結(jié)構(gòu)圖。
圖6是模塊構(gòu)成文件。
圖7是用于存儲(chǔ)模塊的裝入模塊文件。
圖8是檢測(cè)出軟件故障時(shí)的處理流程圖。
圖9是操作系統(tǒng)重啟動(dòng)處理的第一流程圖。
圖10是操作系統(tǒng)重啟動(dòng)處理的第二流程圖。
圖11是非中斷模塊的初始化順序流程圖。
圖12是重啟動(dòng)裝入程序的處理流程圖。
圖13是本發(fā)明第二實(shí)施例的計(jì)算機(jī)啟動(dòng)順序的處理流程圖。
圖14是本發(fā)明第二實(shí)施例的操作系統(tǒng)重啟動(dòng)處理的流程圖。
下面,參照
本發(fā)明的第一及第二實(shí)施例。
(1)第一實(shí)施例圖1是本發(fā)明第一實(shí)施例中所使用的計(jì)算機(jī)的構(gòu)成圖。計(jì)算機(jī)100由處理器101、主存儲(chǔ)器102、只讀存儲(chǔ)器103、磁盤105、外部設(shè)備106和107、插入控制器104、連接各構(gòu)成部件的總線108以及插入信號(hào)總線109構(gòu)成。
在只讀存儲(chǔ)器103中,存有執(zhí)行計(jì)算機(jī)初始化處理的程序,初始化程序被配置在在處理器101為復(fù)位狀態(tài)時(shí)控制轉(zhuǎn)移的地址上。存在只讀存儲(chǔ)器103中的程序在主存儲(chǔ)器102中建立表示硬件結(jié)構(gòu)的數(shù)據(jù)。而且處于磁盤105上的預(yù)定區(qū)域中的數(shù)據(jù)被裝入到主存儲(chǔ)器102中,并被作為程序傳送到控制中。在此例中,裝入程序114位于磁盤105的預(yù)定區(qū)域,并被裝入主存儲(chǔ)器102中而被執(zhí)行。
繼承了處理的裝入程序114將核心程序111裝入主存儲(chǔ)器中,設(shè)定處理器101的虛擬地址變換機(jī)構(gòu),將處理器轉(zhuǎn)換到虛擬地址模式,并執(zhí)行核心程序111。此時(shí),裝入程序?qū)⒂布Y(jié)構(gòu)數(shù)據(jù)傳送到核心程序111中。核心程序111參照硬件結(jié)構(gòu)數(shù)據(jù),執(zhí)行核心程序111所管理的硬件設(shè)備的初始化處理,并按照模塊結(jié)構(gòu)文件110的內(nèi)容將從核心程序111中分離出的程序模塊裝入主存儲(chǔ)器102中,執(zhí)行各個(gè)模塊的初始化處理。例如,如果模塊結(jié)構(gòu)文件110的內(nèi)容是裝入重啟動(dòng)裝入程序113、設(shè)備驅(qū)動(dòng)程序112,則核心程序111將這些內(nèi)容裝入主存儲(chǔ)器并執(zhí)行各自的初始化程序。圖1示出了核心程序111、重啟動(dòng)裝入程序113及設(shè)備驅(qū)動(dòng)程序112被裝入主存儲(chǔ)器中。最后,核心程序111生成初始進(jìn)程,結(jié)束計(jì)算機(jī)的啟動(dòng)過程。
在這樣的計(jì)算機(jī)系統(tǒng)中,當(dāng)在操作系統(tǒng)核心程序111因軟件故障而中斷并對(duì)處理器復(fù)位及按照上述過程重啟動(dòng)操作系統(tǒng)時(shí),在重啟動(dòng)期間,虛擬地址模式被解除且不能接收來自外部設(shè)備106及107的插入。這里,說明了外部設(shè)備106所產(chǎn)生的插入是核心程序111因軟件故障而中斷并進(jìn)行重啟動(dòng)期間必須處理的插入,由設(shè)備驅(qū)動(dòng)程序112來進(jìn)行管理的。本發(fā)明在進(jìn)行核心程序111的重啟動(dòng)處理期間能夠持續(xù)接收特定的插入并提供可以執(zhí)行插入處理的重啟動(dòng)過程。
設(shè)備驅(qū)動(dòng)程序112是被編程為不利用核心程序111提供的服務(wù)來處理外部設(shè)備106的插入的模塊。這里,設(shè)備驅(qū)動(dòng)程序112作為非中斷模塊被登錄到重啟動(dòng)裝入程序113的非中斷模塊管理表500中。重啟動(dòng)裝入程序113是在核心程序111因軟件故障而中斷并進(jìn)行核心程序111的重啟動(dòng)時(shí)所執(zhí)行的模塊,執(zhí)行原樣維持作為非中斷模塊而被登錄到管理表500中的模塊的處理環(huán)境的核心程序111的重啟動(dòng)處理。
所謂的非中斷模塊的處理環(huán)境,是指配置非中斷模塊的虛擬地址、與其對(duì)應(yīng)的地址轉(zhuǎn)換表、存儲(chǔ)模塊的物理存儲(chǔ)器、非中斷模塊應(yīng)處理的插入的插入處理程序的設(shè)定。地址轉(zhuǎn)換表被設(shè)定在頁面表410,插入處理程序被設(shè)定在插入處理程序表430中。地址空間信息和硬件資源信息被存儲(chǔ)在資源管理數(shù)據(jù)115中。
重啟動(dòng)裝入程序113參照非中斷模塊管理表500,原樣保持非中斷模塊確保的地址區(qū)域和插入處理程序的設(shè)定,進(jìn)行核心程序111的重新裝入和執(zhí)行。由此,能夠保證非中斷模塊插入處理的連續(xù)性。
圖2示出了表示本發(fā)明的操作系統(tǒng)核心程序111的地址空間的數(shù)據(jù)結(jié)構(gòu)。
200是記錄裝入到核心程序111的地址空間中的模塊的裝入模塊管理表。各個(gè)模塊作為文件被存儲(chǔ)到磁盤等次級(jí)存儲(chǔ)裝置中,并由操作系統(tǒng)裝入程序或核心程序111裝入到主存儲(chǔ)器中。裝入模塊管理表200包含被裝入到主存儲(chǔ)器中的各個(gè)模塊的模塊名稱201、模塊代碼區(qū)域起始虛擬地址202、代碼區(qū)域大小203、數(shù)據(jù)區(qū)域起始虛擬地址204、數(shù)據(jù)區(qū)域大小205及模塊接口信息206。
模塊接口信息206是被裝入的模塊提供給核心程序111的接口程序的起始地址。通過登錄接口程序206,核心程序111能夠利用被裝入的模塊的功能。
圖2的207至211存有模塊名稱為設(shè)備驅(qū)動(dòng)程序#1的模塊的代碼起始地址、大小、數(shù)據(jù)起始地址、大小及接口程序信息。在此圖的裝入模塊管理表200中,示出了核心程序111、重啟動(dòng)裝入程序113、設(shè)備驅(qū)動(dòng)程序#1及設(shè)備驅(qū)動(dòng)程序#2被裝入核心空間。
220是表示核心程序111的虛擬地址空間的空區(qū)域的核心虛擬空間空區(qū)域列表。列表220指出表示空區(qū)域的空數(shù)據(jù)塊結(jié)構(gòu)230??諗?shù)據(jù)塊結(jié)構(gòu)230包含空區(qū)域的起始虛擬地址232、該空區(qū)域的大小233及指向表示下一個(gè)空區(qū)域的空數(shù)據(jù)塊結(jié)構(gòu)的指針231。231存有下一個(gè)空數(shù)據(jù)塊結(jié)構(gòu)240的地址。此圖的220中,示出了核心程序111的虛擬地址空間中分別從地址232、242開始、大小為233、243的2個(gè)空區(qū)域。
250是表示物理存儲(chǔ)器的空區(qū)域的物理存儲(chǔ)器空區(qū)域列表。物理存儲(chǔ)器空區(qū)域列表250的結(jié)構(gòu)與核心程序虛擬空間空區(qū)域列表220的結(jié)構(gòu)相同??諗?shù)據(jù)塊結(jié)構(gòu)260及270分別表示物理存儲(chǔ)器的空區(qū)域。此圖中的列表250與220一樣,表示2個(gè)空的物理存儲(chǔ)器區(qū)域。
下面說明管理與計(jì)算機(jī)相連的外部設(shè)備的數(shù)據(jù)結(jié)構(gòu)。
圖3示出了表示本發(fā)明與計(jì)算機(jī)相連的外部設(shè)備所占用的資源的數(shù)據(jù)結(jié)構(gòu)。300是表示用于控制外部設(shè)備的寄存器所存在的地址范圍的設(shè)備占用地址列表。設(shè)備占用地址列表300由表示1個(gè)地址范圍的設(shè)備占用地址結(jié)構(gòu)構(gòu)成,在圖3中,由3個(gè)設(shè)備占用地址結(jié)構(gòu)310、320和330構(gòu)成。設(shè)備占用地址結(jié)構(gòu)310包含設(shè)備控制寄存器起始地址312、大小313、用于管理在該地址范圍內(nèi)被控制的設(shè)備的模塊的模塊編號(hào)314及用于構(gòu)成設(shè)備占用地址列表300的鏈路311。
模塊編號(hào)314是對(duì)圖2的裝入模塊管理表200的索引。例如,設(shè)備占用地址結(jié)構(gòu)310表示核心程序111所管理的外部設(shè)備的占用資源時(shí),在314的模塊編號(hào)中存入表200中核心程序111的索引“0”。如果是設(shè)備驅(qū)動(dòng)程序#1管理的設(shè)備,則在該模塊編號(hào)中存入表200中設(shè)備驅(qū)動(dòng)程序#1的索引“2”。對(duì)裝入模塊管理表200的索引從0開始計(jì)數(shù)。
340是記錄外部設(shè)備所占用的插入編號(hào)的設(shè)備占用插入表。設(shè)備占用插入表340用于記錄處理器識(shí)別的插入編號(hào)被哪個(gè)模塊管理的硬件設(shè)備占用。例如,如果核心程序111管理的時(shí)鐘插入用設(shè)備占用了插入編號(hào)0,則將核心程序111的模塊編號(hào)0存入設(shè)備占用插入表的第0項(xiàng)341中。
下面,說明處理器直接利用的數(shù)據(jù)結(jié)構(gòu)。圖4示出了處理器利用的虛擬地址轉(zhuǎn)換表及插入處理用表的數(shù)據(jù)結(jié)構(gòu)。410是用于規(guī)定從處理器的虛擬地址到物理地址的地址轉(zhuǎn)換的頁面表。頁面表410的項(xiàng)存有處理器規(guī)定的每一頁面。每一項(xiàng)包含表示該項(xiàng)關(guān)于虛擬地址空間內(nèi)的各虛擬頁面是否有效的標(biāo)記411、表示該頁面是否可以寫入的標(biāo)記412和該項(xiàng)對(duì)應(yīng)于虛擬頁面的物理頁面的起始地址413。
處理器的寄存器400存儲(chǔ)頁面表410的起始地址。處理器在虛擬地址模式下工作時(shí),參照頁面表寄存器400,從虛擬地址中生成進(jìn)行實(shí)際的存儲(chǔ)器訪問時(shí)所必需的物理地址。430是插入處理程序表,用于規(guī)定關(guān)于進(jìn)入處理器的插入的每個(gè)插入編號(hào)的插入處理程序。在插入中對(duì)每個(gè)要素進(jìn)行編號(hào)。插入控制器104從外部設(shè)備接收插入請(qǐng)求,轉(zhuǎn)換到插入編號(hào)并通知處理器。插入處理程序表430存儲(chǔ)各個(gè)插入編號(hào)下的每個(gè)插入處理程序的起始地址。例如,如果時(shí)鐘插入利用第0個(gè)插入,則在插入處理程序表的第0項(xiàng)431中插入時(shí)鐘插入處理程序的地址。
處理器的寄存器400存有插入處理程序表430的起始地址。處理器參照插入處理程序表寄存器420,在檢測(cè)出插入時(shí)將控制轉(zhuǎn)移到每個(gè)要素的插入處理程序。例如,在處理器檢測(cè)出時(shí)鐘插入,即第0個(gè)插入時(shí),處理器將控制轉(zhuǎn)移到存在插入處理程序表寄存器420所指向的表430的第0項(xiàng)431中的處理程序。
下面說明重啟動(dòng)裝入程序113所管理的數(shù)據(jù)結(jié)構(gòu)。重啟動(dòng)裝入程序113是在操作系統(tǒng)的核心程序111因軟件故障發(fā)生中斷而進(jìn)行操作系統(tǒng)的重啟動(dòng)時(shí),將操作系統(tǒng)核心程序111裝入主存儲(chǔ)器中并執(zhí)行核心程序111的模塊。
圖5示出了重啟動(dòng)裝入程序113所管理的數(shù)據(jù)結(jié)構(gòu)。500是非中斷模塊管理表,并是管理非中斷模塊信息的數(shù)據(jù)結(jié)構(gòu),該非中斷模塊是在由重啟動(dòng)裝入程序113進(jìn)行核心程序111的再裝入和重啟動(dòng)過程中也從硬件設(shè)備接收插入并執(zhí)行處理的模塊。非中斷模塊管理表500包含非中斷模塊名501、非中斷模塊的代碼區(qū)域起始地址502、代碼區(qū)域的大小503、數(shù)據(jù)區(qū)域的起始地址504、數(shù)據(jù)區(qū)域的大小505、非中斷模塊所管理的外部設(shè)備占用的資源信息506及非中斷模塊再初始化程序的地址。
在利用硬件信息506中,記錄非中斷模塊管理的外部設(shè)備控制所占用的地址和占用插入編號(hào)。在再初始化程序507中,存有核心程序111重啟動(dòng)時(shí)所執(zhí)行的程序的地址。再初始化程序執(zhí)行什么取決于模塊所管理的硬件,但至少要執(zhí)行向裝入模塊管理表200登錄接口程序206。由此核心程序111能夠再次利用非中斷模塊所提供的功能。
在圖5所示的非中斷模塊管理表500中,重啟動(dòng)裝入程序113及設(shè)備驅(qū)動(dòng)程序#1作為非中斷模塊被登錄。而且在508至513中,存有設(shè)備驅(qū)動(dòng)程序#1的占用地址、外部設(shè)備信息、在初始化程序地址。重啟動(dòng)裝入程序113利用非中斷模塊管理表500的信息,建立操作系統(tǒng)核心程序111重啟動(dòng)時(shí)的核心空間及外部設(shè)備結(jié)構(gòu)信息,并將其發(fā)送到核心程序111中。通過參照這些信息決定啟動(dòng)過程,即使在核心程序重啟動(dòng)中沒有發(fā)生中斷,核心程序111也可以執(zhí)行來自外部設(shè)備的插入處理。利用重啟動(dòng)裝入程序113的數(shù)據(jù)區(qū)域中所設(shè)置的數(shù)據(jù)結(jié)構(gòu),由重啟動(dòng)裝入模塊來管理非中斷模塊管理表500。重啟動(dòng)裝入模塊在對(duì)模塊進(jìn)行初始化時(shí)使重啟動(dòng)裝入程序113的數(shù)據(jù)區(qū)域?yàn)榻箤懭?,從而防止了軟件故障?duì)非中斷模塊管理表500的破壞。通過將對(duì)應(yīng)于包含數(shù)據(jù)區(qū)域的虛擬頁面的頁面表410的各項(xiàng)中的可寫入標(biāo)記復(fù)位,來實(shí)現(xiàn)使數(shù)據(jù)區(qū)域?yàn)榻箤懭搿?br>
下面,說明定義核心程序111啟動(dòng)時(shí)的所讀入的裝入模塊的文件形式。圖6示出了定義裝入模塊的數(shù)據(jù)結(jié)構(gòu)。110是示了模塊結(jié)構(gòu)文件的內(nèi)容。模塊結(jié)構(gòu)文件110的各項(xiàng)包含核心程序111所裝入的模塊的名稱601、存儲(chǔ)模塊的文件名602及表示該模塊是否為非中斷模塊的標(biāo)記603。在圖6所示的例子中,核心程序111按照重啟動(dòng)裝入程序113、設(shè)備驅(qū)動(dòng)程序1、設(shè)備驅(qū)動(dòng)程序2的順序?qū)⒛K讀入主存儲(chǔ)器中。若存儲(chǔ)設(shè)備驅(qū)動(dòng)程序1的文件名為driverl,則表示設(shè)備驅(qū)動(dòng)程序是非中斷模塊。模塊結(jié)構(gòu)文件110被存儲(chǔ)在操作系統(tǒng)中具有預(yù)定名稱的文件中,所以核心程序111能夠容易地發(fā)現(xiàn)這個(gè)文件。
圖7示出了存儲(chǔ)裝入模塊的文件形式。存儲(chǔ)裝入模塊的文件700保存表示模塊執(zhí)行代碼的存儲(chǔ)位置的代碼起始偏移地址701、執(zhí)行代碼的大小702、表示數(shù)據(jù)存儲(chǔ)位置的數(shù)據(jù)起始偏移地址703、數(shù)據(jù)區(qū)域的大小704、模塊初始化程序的執(zhí)行代碼被存儲(chǔ)的初始化程序偏移地址705、模塊的再配置信息起始偏移地址706、再配置信息的大小707、執(zhí)行代碼708及數(shù)據(jù)709。
模塊再配置信息710是將模塊裝入主存儲(chǔ)器中時(shí)所利用的數(shù)據(jù),也是用于根據(jù)模塊代碼及數(shù)據(jù)區(qū)域被裝入的地址來變更模塊代碼的數(shù)據(jù)。由此,也可以改變裝入的模塊的結(jié)構(gòu)或模塊被裝入的地址。
下面,說明本發(fā)明的操作系統(tǒng)重啟動(dòng)過程。圖8是示出了重啟動(dòng)操作系統(tǒng)時(shí)執(zhí)行的重啟動(dòng)裝入程序113的處理過程的流程圖。首先,在步驟801檢查重啟動(dòng)裝入程序113是否被裝入核心程序空間。在沒有裝入重啟動(dòng)裝入程序113或不能判斷是否裝入了重啟動(dòng)裝入程序113的情況下,進(jìn)入步驟802。在步驟802,復(fù)位處理器并執(zhí)行計(jì)算機(jī)的重啟動(dòng)。
在多臺(tái)計(jì)算機(jī)中處理器處于復(fù)位狀態(tài)時(shí),虛擬地址轉(zhuǎn)換變?yōu)闊o效,插入處理程序的設(shè)定也變?yōu)闊o效,控制被轉(zhuǎn)移到處理器規(guī)定的物理地址。通常,這個(gè)物理地址與存儲(chǔ)計(jì)算機(jī)啟動(dòng)過程的讀入專用存儲(chǔ)器103相映射。這個(gè)啟動(dòng)過程是對(duì)與計(jì)算機(jī)相連的硬件設(shè)備復(fù)位。其目的是為了在執(zhí)行操作系統(tǒng)的核心程序111時(shí)使外部設(shè)備處于已知狀態(tài)。由于這個(gè)啟動(dòng)過程,特別是由于處理器被復(fù)位,使得在原來計(jì)算機(jī)的操作系統(tǒng)重啟動(dòng)期間,不能接收來自外部設(shè)備的插入處理。
另一方面,在步驟801判斷為裝入了重啟動(dòng)裝入程序113的情況下,不對(duì)處理器復(fù)位而進(jìn)行步驟803。從步驟803開始是執(zhí)行實(shí)際的重啟動(dòng)裝入程序113的處理過程。在步驟803,檢查登錄在裝入模塊管理表200中的模塊是否帶有硬件復(fù)位程序,如果該程序被登錄,則調(diào)用該復(fù)位程序。特別是在硬件復(fù)位是對(duì)不必要的設(shè)備的情況下,也可以不登錄復(fù)位程序。
接著在步驟804,參照非中斷模塊管理表500中各項(xiàng)的利用硬件信息506,使關(guān)于非中斷模塊所接收的插入以外的插入的插入處理程序無效。具體地說,就是將插入處理程序430的各項(xiàng)設(shè)定為只接收插入的插入處理程序的地址。接著在步驟805,將準(zhǔn)備用于以后向非中斷模塊的數(shù)據(jù)區(qū)域的數(shù)據(jù)存儲(chǔ)的、重啟動(dòng)裝入處理的數(shù)據(jù)區(qū)域中所存儲(chǔ)的頁面設(shè)定為可寫入狀態(tài)。具體地說,就是使頁面表410中對(duì)應(yīng)于非中斷模塊數(shù)據(jù)區(qū)域的項(xiàng)的可寫入標(biāo)記412被設(shè)定為可寫入狀態(tài)。
在步驟806中,生成虛擬空間空區(qū)域列表及物理存儲(chǔ)器空區(qū)域列表。在步驟806,參照非中斷模塊管理表500,在重啟動(dòng)裝入程序113的數(shù)據(jù)區(qū)域內(nèi)生成以非中斷模塊、重啟動(dòng)裝入程序113及核心程序堆棧116利用的地址區(qū)域以外的地址區(qū)域?yàn)榭諈^(qū)域的空區(qū)域列表??諈^(qū)域列表具有和操作系統(tǒng)管理的空區(qū)域列表220及250相同的數(shù)據(jù)結(jié)構(gòu)。
在步驟807,生成設(shè)備占用地址列表。在步驟807,與步驟806相同,參照非中斷模塊管理表500,在重啟動(dòng)裝入程序113的數(shù)據(jù)區(qū)域內(nèi)生成以非中斷模塊利用的地址區(qū)域以外的地址區(qū)域?yàn)榭諈^(qū)域的設(shè)備占用地址列表。這里所生成的設(shè)備占用地址列表的數(shù)據(jù)結(jié)構(gòu)雖然與操作系統(tǒng)管理的設(shè)備占用地址列表300的數(shù)據(jù)結(jié)構(gòu)大致相同,但在設(shè)備占用地址結(jié)構(gòu)的模塊編號(hào)中,存儲(chǔ)的不是模塊編號(hào)而是模塊名稱。
在步驟808,生成設(shè)備占用插入表。與步驟807相同,在重啟動(dòng)裝入程序113的數(shù)據(jù)區(qū)域內(nèi)生成以非中斷模塊利用的插入編號(hào)以外的編號(hào)為未使用編號(hào)的設(shè)備占用插入表。此處與步驟807一樣,在設(shè)備占用插入表的各項(xiàng)中,存儲(chǔ)的不是模塊編號(hào)而是模塊名稱。步驟806至808中所生成的數(shù)據(jù)結(jié)構(gòu)不會(huì)在核心程序111重啟動(dòng)時(shí)將非中斷模塊管理的硬件設(shè)備資源錯(cuò)誤地分配給其他模塊。
最后,重啟動(dòng)裝入程序113將操作系統(tǒng)核心程序111裝入主存儲(chǔ)器中(步驟809)并將重啟動(dòng)裝入程序113的再初始化程序的地址添加到參數(shù)中,執(zhí)行核心程序111(步驟810)。
圖9是示出了本發(fā)明實(shí)施例的操作系統(tǒng)核心程序111的初始化處理過程的流程圖。
首先,判斷核心程序111在啟動(dòng)時(shí)是由重起動(dòng)裝入程序113啟動(dòng)還是進(jìn)行常規(guī)啟動(dòng)(步驟901)。這是很容易判斷的,因?yàn)樵谟芍貑?dòng)裝入程序113進(jìn)行的啟動(dòng)中需要將重啟動(dòng)裝入程序113的再初始化程序的地址作為參數(shù)傳送給核心程序111。
在不是由重啟動(dòng)裝入程序113進(jìn)行啟動(dòng)的情況下,按照常規(guī)過程執(zhí)行核心程序111(步驟902)。這里所謂的常規(guī)過程是指總線及插入控制器的初始化、核心程序管理的硬件設(shè)備的初始化、模塊結(jié)構(gòu)文件中記載的模塊裝入主存儲(chǔ)器的初始化、初始進(jìn)程的執(zhí)行。
在由重啟動(dòng)裝入程序113啟動(dòng)的情況下,進(jìn)入步驟903。在步驟903,向重啟動(dòng)裝入程序模塊分配裝入模塊管理表200的項(xiàng)。接著在步驟904,根據(jù)作為參數(shù)傳遞的重啟動(dòng)裝入程序模塊的再初始化程序地址執(zhí)行再初始化程序。重啟動(dòng)裝入程序113的再初始化程序執(zhí)行與非中斷模塊的再初始化程序相同的處理。在這個(gè)再初始化程序中,執(zhí)行裝入模塊管理表200的設(shè)定。特別是,設(shè)定管理表200的模塊接口206,從核心程序111中調(diào)用重啟動(dòng)程序提供的接口程序。
接著,在步驟905復(fù)制硬件結(jié)構(gòu)信息。在步驟906和907中將重起動(dòng)裝入程序113在核心程序啟動(dòng)前建立的空區(qū)域列表、設(shè)備占用地址列表及設(shè)備占用插入表復(fù)制到核心程序111的數(shù)據(jù)空間。由重啟動(dòng)裝入程序113提供的接口程序執(zhí)行這些處理。
在常規(guī)啟動(dòng)中,生成以裝有核心程序111的存儲(chǔ)器區(qū)域以外的區(qū)域?yàn)榭諈^(qū)域的空區(qū)域列表、空的設(shè)備占用地址列表及全部插入項(xiàng)均為未使用的設(shè)備插入表,并執(zhí)行后面的處理。
相應(yīng)地,在由重啟動(dòng)裝入程序113啟動(dòng)時(shí),利用重啟動(dòng)裝入程序113生成的空區(qū)域列表、設(shè)備占用地址列表及設(shè)備占用插入表。由此,避免了非中斷模塊數(shù)據(jù)區(qū)域的初始化和外部設(shè)備的初始化,保持了與非中斷模塊的外部設(shè)備相關(guān)的處理的連續(xù)性。
接著步驟908至912是對(duì)核心程序111管理的總線及插入制器以外的全部外部設(shè)備進(jìn)行的初始化處理。首先,在步驟908,判斷是不是核心程序111管理的硬件設(shè)備,如果不是,則進(jìn)入步驟1001。在步驟909,檢查外部設(shè)備利用的地址區(qū)域及插入編號(hào)是否已經(jīng)被使用。如果初始化處理中的外部設(shè)備所利用的地址和插入編號(hào)已經(jīng)被登錄在設(shè)備占用地址列表300及設(shè)備占用插入表340中,則不執(zhí)行步驟910和911而進(jìn)入步驟912。如果初始化處理中的外部設(shè)備所利用的地址或插入編號(hào)還沒有被登錄在設(shè)備占用地址列表300及設(shè)備占用插入表340中,則意味著著是非中斷模塊利用的設(shè)備。由此,避免了非中斷模塊管理的外部設(shè)備的初始化,保持了與非中斷模塊的設(shè)備相關(guān)的處理的連續(xù)性。
如果外部設(shè)備使用的地址區(qū)域及插入編號(hào)不是未被使用的,則將該地址區(qū)域及插入編號(hào)與核心程序111的模塊編號(hào)同時(shí)登錄到設(shè)備占用地址列表300和設(shè)備占用插入表340中(步驟910)。
通過檢索裝入模塊管理表200得到核心程序111的模塊編號(hào)。執(zhí)行作為對(duì)象的外部設(shè)備的初始化(步驟911),并進(jìn)入步驟912。在步驟912,設(shè)定其他設(shè)備為處理對(duì)象設(shè)備,進(jìn)入步驟908。如果沒有剩余的處理對(duì)象設(shè)備,則從步驟908的檢查進(jìn)入到步驟1001。
圖10示出了從步驟1001開始的處理流程圖。圖10的流程圖主要與模塊的裝入處理相關(guān)。
在步驟1001,將模塊結(jié)構(gòu)文件110讀入存儲(chǔ)器中。接著步驟1002至1011執(zhí)行模塊結(jié)構(gòu)文件中所登錄的各個(gè)模塊。步驟1002至1008構(gòu)成了執(zhí)行每個(gè)模塊處理的循環(huán)。
在循環(huán)內(nèi)的開始步驟1003,參照模塊結(jié)構(gòu)文件110的非中斷標(biāo)記603,檢查作為處理對(duì)象的模塊是不是非中斷模塊。不是非中斷模塊的情況下,進(jìn)入步驟1004。
從步驟1004開始,執(zhí)行模塊向主存儲(chǔ)器的裝入。首先,在步驟1004獲得必要的存儲(chǔ)器區(qū)域。這是通過參照空區(qū)域列表220及物理存儲(chǔ)器空區(qū)域列表250,尋找存儲(chǔ)模塊所必需的足夠空區(qū)域,并從這些空區(qū)域列表中取出找到的區(qū)域而實(shí)現(xiàn)的。參照存儲(chǔ)模塊的文件前面的部分702及704求出存儲(chǔ)模塊所必需的區(qū)域。在存儲(chǔ)器的分配中,也進(jìn)行頁面表410的設(shè)定。對(duì)與分配的地址區(qū)域相對(duì)應(yīng)的頁面表410的各項(xiàng)設(shè)置有效標(biāo)記411,并將所分配的物理頁面的起始地址存入413中。而且,還設(shè)置了可寫入標(biāo)記412。在裝入代碼區(qū)域后設(shè)置存有代碼區(qū)域的頁面的可寫入標(biāo)記412。
接著在步驟1005,將以模塊結(jié)構(gòu)文件110中的文件名602表示的文件裝入在步驟1004中分配的區(qū)域。裝入后,利用存儲(chǔ)在文件中的再配置信息706、707及710來修正代碼區(qū)域。而且,分配裝入模塊管理表200中用于被處理的模塊的項(xiàng),并設(shè)定該項(xiàng)的地址及大小信息(步驟1006)。
接著,這些模塊的初始化程序(步驟1007)。模塊的初始化程序至少設(shè)定裝入模塊管理表200的模塊接口206。如果需要執(zhí)行其他模塊的初始化處理,也會(huì)執(zhí)行該處理。在模塊接口被設(shè)定時(shí),核心程序111能夠知道模塊所提供的處理程序的地址,并能夠執(zhí)行模塊所提供的處理。
接著在步驟1008,將處理對(duì)象模塊設(shè)定為模塊結(jié)構(gòu)文件的下一項(xiàng),然后返回步驟1002。下面對(duì)處理對(duì)象模塊為非中斷模塊的情況進(jìn)行說明。在步驟1003,判斷為處理對(duì)象模塊為非中斷模塊時(shí),進(jìn)入步驟1009。在步驟1009,進(jìn)行裝入模塊管理表200的更新處理。首先,分配裝入模塊管理表200中存儲(chǔ)處理中的模塊數(shù)據(jù)的項(xiàng)。應(yīng)存入分配的項(xiàng)中的裝入模塊管理表200的202至205的地址及大小信息被存入重啟動(dòng)裝入程序113的數(shù)據(jù)區(qū)域內(nèi)的非中斷模塊管理表500的502至505中,將這些信息復(fù)制到所分配的項(xiàng)中并更新裝入模塊管理表200。
接著執(zhí)行非中斷模塊的再初始化程序(步驟1010)。再初始化程序的地址被存儲(chǔ)在非中斷模塊管理表500的再初始化程序507中,通過非中斷模塊名稱可以得到再初始化程序。非中斷模塊的再初始化程序至少執(zhí)行裝入模塊管理表200的接口程序206的設(shè)定。如果需要,還進(jìn)行硬件設(shè)備的設(shè)定等其他處理。此時(shí),由于非中斷模塊是新的并且沒有被裝入,在此之前的數(shù)據(jù)區(qū)域被保存,從而保持了與非中斷模塊的設(shè)備相關(guān)的處理的連續(xù)性。
接著在步驟1011,在設(shè)備占用地址列表300及設(shè)備占用插入表340內(nèi)關(guān)于表示作為處理對(duì)象的非中斷模塊所管理的地址區(qū)或及插入編號(hào)的項(xiàng)的模塊編號(hào)欄中存入在步驟1009中分配的裝入模塊管理表200的項(xiàng)的編號(hào)。通過非中斷模塊管理表500的利用硬件信息506得到非中斷模塊管理的設(shè)備的地址區(qū)域和插入編號(hào)。對(duì)于空區(qū)域列表220和250,由于重啟動(dòng)裝入程序113從空列表中取出了非中斷模塊具有的地址區(qū)域,所以不需要特別的處理。進(jìn)行進(jìn)入步驟1008進(jìn)行下一個(gè)裝入模塊的處理。
在步驟1002,如果判斷為裝入了全部模塊,就進(jìn)入步驟1012。步驟1012不生成和執(zhí)行初始進(jìn)程,就完成了操作系統(tǒng)的啟動(dòng)。
下面,說明非中斷模塊的初始化程序。模塊的初始化程序是全部模塊必須具有的程序,在核心程序111啟動(dòng)時(shí)被執(zhí)行。圖11是表示本發(fā)明實(shí)施例的非中斷模塊的初始化程序處理的流程圖。這里說明對(duì)模塊結(jié)構(gòu)文件110中設(shè)定的設(shè)備驅(qū)動(dòng)程序#1的初始化程序的處理。
首先,作為設(shè)備驅(qū)動(dòng)程序#1與核心程序111的接口的模塊接口被存儲(chǔ)在裝入模塊管理表200中用于設(shè)備驅(qū)動(dòng)程序#1的分配項(xiàng)211中(步驟1101)。
在下面的步驟1102,分配設(shè)備驅(qū)動(dòng)程序1的設(shè)備占用地址結(jié)構(gòu),設(shè)定起始地址、大小和模塊編號(hào),并將其追加到設(shè)備占用地址列表300中。而且還在設(shè)備占用插入表340中設(shè)備驅(qū)動(dòng)程序1管理的插入編號(hào)項(xiàng)中存入設(shè)備驅(qū)動(dòng)程序1的模塊編號(hào)。由此,將設(shè)備驅(qū)動(dòng)程序#1利用的設(shè)備地址區(qū)域及插入編號(hào)登錄到設(shè)備占用地址列表300及設(shè)備占用插入表340中。
接著,進(jìn)行向模塊的非中斷模塊管理表500的登錄(步驟1103)。在非中斷模塊管理表中分配用于正在處理的模塊的項(xiàng),并設(shè)定地址、大小信息、利用硬件信息及再初始化程序的地址。由重啟動(dòng)裝入程序113提供的接口程序來實(shí)現(xiàn)上述設(shè)定過程。在更新非中斷模塊管理表500時(shí),由于非中斷模塊管理表500中的頁面被設(shè)定為禁止寫入,所以在更新前后要對(duì)頁面表410中的可寫入標(biāo)己進(jìn)行操作。然后,設(shè)定硬件設(shè)備(步驟1104)。
下面說明重啟動(dòng)裝入程序113提供的接口程序。重啟動(dòng)裝入程序113本身是非中斷模塊,它提供了初始化程序、再初始化程序、硬件結(jié)構(gòu)數(shù)據(jù)復(fù)制程序、非中斷模塊登錄程序。
首先,說明重啟動(dòng)裝入程序113的初始化程序處理。圖12是表示重啟動(dòng)裝入程序113的處理過程的流程圖。
重啟動(dòng)裝入程序113是非中斷模塊,重啟動(dòng)裝入程序113的初始化程序只在啟動(dòng)計(jì)算機(jī)時(shí)被調(diào)用。首先,在重啟動(dòng)裝入程序113的初始化程序中,將為以后的重啟動(dòng)處理準(zhǔn)備的、存在讀入專用存儲(chǔ)器103中的初始化程序所生成的硬件結(jié)構(gòu)信息復(fù)制到重啟動(dòng)裝入程序113的數(shù)據(jù)區(qū)域中(步驟1201)。接著執(zhí)行非中斷模塊管理表500的初始化(步驟1202)和向重啟動(dòng)裝入程序113本身的非中斷模塊管理表的登錄(步驟1203)。最后,將分配在存有非中斷模塊管理表及硬件結(jié)構(gòu)數(shù)據(jù)的重啟動(dòng)裝入程序113的數(shù)據(jù)區(qū)域中的頁面設(shè)定為禁止寫入(步驟1204)。
再初始化程序執(zhí)行向裝入模塊管理表登錄接口程序的處理。這與其他非中斷模塊的情況相同。硬件結(jié)構(gòu)數(shù)據(jù)復(fù)制程序?qū)⒋嬖谥貑?dòng)裝入程序113的數(shù)據(jù)區(qū)域中的硬件結(jié)構(gòu)數(shù)據(jù)復(fù)制到核心程序111的數(shù)據(jù)區(qū)域中。非中斷模塊登錄程序?qū)⑴c非中斷模塊相關(guān)的數(shù)據(jù)登錄到非中斷模塊管理表500中。通常,由于重啟動(dòng)裝入程序113的數(shù)據(jù)區(qū)域由虛擬地址機(jī)構(gòu)設(shè)定為禁止寫入,所以登錄程序一旦解除禁止寫入,就將非中斷模塊數(shù)據(jù)寫入表500中,然后再次使數(shù)據(jù)區(qū)域?yàn)榻箤懭搿?br>
通過本實(shí)施例,即使在操作系統(tǒng)核心程序111因軟件故障而中斷并執(zhí)行重啟動(dòng)處理時(shí),也不中斷非中斷模塊利用并登錄的外部設(shè)備的插入處理并能夠繼續(xù)執(zhí)行處理。而且還避免了在處理器復(fù)位時(shí)執(zhí)行的硬件結(jié)構(gòu)識(shí)別處理,縮短了到重啟動(dòng)的時(shí)間。
下面說明以執(zhí)行以時(shí)鐘插入為例的外部設(shè)備控制的模塊為非中斷模塊的實(shí)施例。時(shí)鐘插入通常是由核心程序111本身管理的插入。在執(zhí)行時(shí)間限制嚴(yán)格的處理的情況下,采取利用在將時(shí)鐘插入傳送到核心程序111之前進(jìn)行奪取、優(yōu)先于帶有時(shí)間限制的處理而執(zhí)行的模塊的方式。所謂的奪取插入,就是變更插入處理程序的設(shè)定。對(duì)于這樣的時(shí)間限制嚴(yán)格的控制,在時(shí)間限制嚴(yán)格的同時(shí)還不允許中斷與時(shí)鐘插入相應(yīng)的處理。
通過本發(fā)明,使奪取時(shí)鐘插入的模塊為非中斷模塊,即使在核心程序111因軟件故障而中斷并執(zhí)行重啟動(dòng)時(shí),也不會(huì)中斷與時(shí)鐘插入相應(yīng)的處理,并能夠繼續(xù)執(zhí)行。
在將時(shí)鐘插入處理模塊作為非中斷模塊登錄時(shí),將時(shí)鐘插入的插入編號(hào)及時(shí)鐘插入的控制地址作為模塊占用的資源和設(shè)備登錄到非中斷模塊管理表500中。由此,在核心程序111重啟動(dòng)的前后,時(shí)鐘插入的處理環(huán)境是連續(xù)的。而且在核心程序111重啟動(dòng)時(shí),通過識(shí)別作為核心程序111自己管理的設(shè)備的時(shí)鐘插入被其他模塊占用,而無須變更時(shí)插入的相關(guān)設(shè)定而進(jìn)入啟動(dòng)處理。
由此,實(shí)現(xiàn)了即使在操作系統(tǒng)核心程序111因軟件故障而中斷并被重啟動(dòng)時(shí),也不中斷時(shí)鐘插入處理、可靠性高且可用性高的控制系統(tǒng)。
(2)第2實(shí)施例對(duì)本發(fā)明的第二實(shí)施例進(jìn)行說明。
圖13是表示本實(shí)施例中的計(jì)算機(jī)啟動(dòng)過程的流程圖。
首先執(zhí)行作為常規(guī)核心程序初始化處理的核心程序數(shù)據(jù)初始化(步驟1301)、外部設(shè)備初始化(步驟1302)及核心程序模塊的裝入和初始化(步驟1303)。象第一實(shí)施例一樣,如果模塊是非中斷模塊,則模塊的初始化將其利用地址信息登錄到非中斷模塊管理表500中。
在下面的步驟1304中,主存儲(chǔ)器102內(nèi)裝有核心程序111及其他模塊的區(qū)域中,將非中斷模塊的數(shù)據(jù)區(qū)域以外的區(qū)域記錄到磁盤105的重啟動(dòng)文件中。而且,在步驟1305,將頁面表寄存器及核心程序堆棧的堆棧指針值保存到磁盤105的重啟動(dòng)文件中。
這里所生成的重啟動(dòng)文件是為了在核心程序111因軟件故障而重啟動(dòng)時(shí)再現(xiàn)核心程序111的軟件結(jié)構(gòu)。在步驟1307生成和執(zhí)行初始進(jìn)程。
圖14是表示本發(fā)明第二實(shí)施例的操作系統(tǒng)核心程序111的重啟動(dòng)過程的流程圖。
由作為非中斷模塊登錄的重啟動(dòng)裝入程序113執(zhí)行此重啟動(dòng)過程。依圖說明重啟動(dòng)過程。首先,將頁面表寄存器400所指的頁面表410復(fù)制到重啟動(dòng)裝入程序113的數(shù)據(jù)區(qū)域中(步驟1401),然后進(jìn)行變更使頁面表寄存器400指向被復(fù)制一方的頁面表(步驟1402)。
接著,將記錄在磁盤105的重啟動(dòng)文件中的核心程序啟動(dòng)時(shí)的主存儲(chǔ)器102的內(nèi)容復(fù)制到主存儲(chǔ)器102中(步驟1403)。接著,從磁盤105的重啟動(dòng)文件中取得頁面表寄存器和堆棧指針遺跡步驟1307的地址(步驟1404、1405)。在步驟1406,將所取得的頁面寄存器值和堆棧指針值設(shè)定到寄存器中并轉(zhuǎn)移到步驟1307的處理(步驟1407)。
在第二實(shí)施例中,由于磁盤105的重啟動(dòng)文件中不包含作為非中斷模塊登錄的模塊數(shù)據(jù)區(qū)域,所以在核心程序重啟動(dòng)的前后,非中斷模塊的數(shù)據(jù)區(qū)域被保存在主存儲(chǔ)器102中。由此,能夠維持非中斷模塊的外部插入處理的連續(xù)性。在本實(shí)施例中,主存儲(chǔ)器102的內(nèi)容被保存在設(shè)備105中,但也可以保存在主存儲(chǔ)器的其他區(qū)域。
在核程序111檢測(cè)出軟件故障時(shí),將插入處理中使用的主存儲(chǔ)器的內(nèi)容維持在主存儲(chǔ)器中以便于不進(jìn)行處理器復(fù)位而能夠執(zhí)行核心程序重啟動(dòng)中的特定插入處理。并且也可以將插入處理程序的設(shè)置維持在主存儲(chǔ)器中并中斷核心程序111的處理。
在操作系統(tǒng)的核心程序111檢測(cè)出軟件故障而重啟動(dòng)時(shí),通過參照非中斷模塊管理表500設(shè)計(jì)出核心程序重啟動(dòng)時(shí)的外部設(shè)備初始化過程和決定裝入的模塊結(jié)構(gòu)的過程,能夠在核心程序111的重啟動(dòng)處理中不中斷與特定外部設(shè)備發(fā)生的插入相對(duì)應(yīng)的處理而繼續(xù)執(zhí)行該處理。
而且,通過不對(duì)處理器復(fù)位而執(zhí)行操作系統(tǒng)的重啟動(dòng),能夠避免在處理器復(fù)位時(shí)執(zhí)行更件結(jié)構(gòu)檢查等處理,縮短了到操作系統(tǒng)重啟動(dòng)的時(shí)間。
權(quán)利要求
1.由多個(gè)裝入模塊構(gòu)成的操作系統(tǒng)在一臺(tái)計(jì)算機(jī)中的重啟動(dòng)的方法,包括下列步驟將上述操作系統(tǒng)重啟動(dòng)過程中被操作的上述多個(gè)裝入模塊中的一個(gè)保存到存儲(chǔ)器中;使上述一個(gè)裝入模塊處理的插入成為可接收狀態(tài);將上述一個(gè)裝入模塊以外的裝入模塊裝入上述計(jì)算機(jī)的存儲(chǔ)器中。
2.如權(quán)利要求1所述的重啟動(dòng)方法,其特征在于上述重啟動(dòng)在上述操作系統(tǒng)接收軟件故障時(shí)執(zhí)行。
3.如權(quán)利要求1所述的重啟動(dòng)方法,其特征在于上述插入為外部插入。
4.如權(quán)利要求1所述的重啟動(dòng)方法,其特征在于在上述操作系統(tǒng)的重啟動(dòng)中,執(zhí)行由上述一個(gè)裝入模塊所進(jìn)行的上述插入的接收。
5.如權(quán)利要求1所述的重啟動(dòng)方法,其特征在于還包括步驟在上述操作系統(tǒng)的重啟動(dòng)過程中,使上述一個(gè)裝入模塊所在的上述存儲(chǔ)器區(qū)域?yàn)榻箤懭霠顟B(tài)。
6.通過網(wǎng)絡(luò)連接第一計(jì)算機(jī)和第二計(jì)算機(jī)的計(jì)算機(jī)系統(tǒng),其特征在于,上述第一計(jì)算機(jī)向上述第二計(jì)算機(jī)傳送請(qǐng)求;具有由多個(gè)裝入模塊構(gòu)成的操作系統(tǒng)的上述第二計(jì)算機(jī)將用于在該操作系統(tǒng)重啟動(dòng)過程中接收上述請(qǐng)求的上述多個(gè)裝入模塊中的一個(gè)保存到存儲(chǔ)器中,成為可接收上述一個(gè)裝入模塊處理的插入的狀態(tài),通過將上述一個(gè)裝入模塊以外的裝入模塊裝入到上述計(jì)算機(jī)的存儲(chǔ)器中進(jìn)行重啟動(dòng),并通過上述插入,上述一個(gè)裝入模塊接收上述重啟動(dòng)過程中從上述第一計(jì)算機(jī)傳送的上述請(qǐng)求。
全文摘要
在計(jì)算機(jī)中使由多個(gè)裝入模塊構(gòu)成的操作系統(tǒng)重啟動(dòng)的方法,首先,將此操作系統(tǒng)重啟動(dòng)過程中被操作的一個(gè)裝入模塊保存到存儲(chǔ)器中。使這一個(gè)裝入模塊處理的插入為可接收狀態(tài)。然后將這一個(gè)裝入模塊以外的裝入模塊裝入上述計(jì)算機(jī)的存儲(chǔ)器中。由此,在操作系統(tǒng)的重啟動(dòng)過程中,使這個(gè)裝入模塊的插入處理成為可能。
文檔編號(hào)G06F1/00GK1208890SQ9811785
公開日1999年2月24日 申請(qǐng)日期1998年7月2日 優(yōu)先權(quán)日1997年7月2日
發(fā)明者關(guān)口知紀(jì), 新井利明 申請(qǐng)人:株式會(huì)社日立制作所