欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

操作系統(tǒng)的重啟動方法

文檔序號:6414398閱讀:409來源:國知局
專利名稱:操作系統(tǒng)的重啟動方法
技術領域
本發(fā)明涉及操作系統(tǒng)的重啟動方法,特別涉及操作系統(tǒng)因軟件故障而中斷時的操作系統(tǒng)重啟動方法。
在現(xiàn)有的各種操作系統(tǒng)中,從核心程序分離出用于控制與計算機相連接的硬件的設備驅動程序模塊。而且,從磁盤裝置等次級存儲裝置裝入核心程序需要的設備驅動程序并利用。在具有上述功能的操作系統(tǒng)中,采用利用從操作系統(tǒng)中奪取時鐘插入并進行管理的實時處理驅動程序,在計算機中執(zhí)行嚴格時間限制的系統(tǒng)控制的方式。通過這種方式,實時處理驅動程序奪取原來操作系統(tǒng)應接收的時鐘插入優(yōu)先于操作系統(tǒng)處理執(zhí)行實時處理。然后使控制返回操作系統(tǒng)。
這樣的實例在“The RTX Real-Time Subsystem for Windows NT”(USENIXWindows NT Workshop-August 11-13,1997,pp33-37)中予以描述。在此文獻中,通過0S的一部分模塊的變更和特殊的設備驅動程序,從OS奪取作為實時控制對象的設備的插入,并由與OS無關的程序執(zhí)行插入處理。由此,能夠與OS處理無關地處理插入并提高實時性。
在實時處理中,確保可靠性是一個大問題。在上述方式中,實時處理模塊不依賴于操作系統(tǒng)的核心程序。由此,即使操作系統(tǒng)因軟件故障而中斷,也能夠繼續(xù)進行實時處理。而且在操作系統(tǒng)因故障而中斷時,會通知實時處理模塊。由此,在實時處理模塊一側,能夠執(zhí)行與操作系統(tǒng)的中斷相對應的處理。在上述實例中,對作為實時控制對象的設備的插入處理進行控制,以便于即使在OS因故障而中斷時也繼續(xù)進行該處理。
但是,在現(xiàn)有方式中,在重啟動因軟件故障而中斷的操作系統(tǒng)時,實時處理驅動程序也會中斷。即,存在不能同時執(zhí)行操作系統(tǒng)的重啟動處理和實時處理的問題。這是由于為了在操作系統(tǒng)重啟動時對處理器復位而丟失了用于實時處理模塊工作的虛擬存儲的內容和插入處理用的信息。該問題是因為當具有在非常短的周期內不能中斷而必須控制的硬件的情況下,在重啟動操作系統(tǒng)時其控制中斷。在現(xiàn)有技術中,不管時鐘插入,在操作系統(tǒng)的重啟動中,操作系統(tǒng)不能接收硬件產生的外部插入。
例如在由多個計算機構成的簇結構計算機系統(tǒng)中,相隔預定時間詢問其它的計算機是否正在工作,如果在預定時間沒有回答,則判斷為該計算機中斷執(zhí)行,從而執(zhí)行變更系統(tǒng)結構的處理。在這種情況下,為了做出計算機是否中斷的判斷,必須等待一段時間。如果在操作系統(tǒng)的重啟動中不能進行插入處理,則需要把判斷為計算機中斷的預定等待時間設定為較長的時間。為此,而產生了開始系統(tǒng)再構成之前的時間的問題。如果在操作系統(tǒng)的重啟動中也接收到響應該詢問的外部插入并能夠返回回答,則能夠縮短上述的預定時間。從而,能夠縮短開始再構成之前的時間。
在現(xiàn)有的重啟動方法中,存在為了執(zhí)行存儲器檢測和硬件構成識別等處理而使操作系統(tǒng)啟動之前的時間變長的問題。
本發(fā)明的目的是在操作系統(tǒng)重啟動時,能夠執(zhí)行獨立于操作系統(tǒng)而執(zhí)行處理的外部插入處理。
為了達到上述目的,本發(fā)明在操作系統(tǒng)檢測出軟件故障并進行重啟動時,將在重啟動過程中被操作的裝入模塊保存到存儲器中,使這個裝入模塊所處理的外部插入成為可接收的狀態(tài),并在上述外部插入以外的插入禁止的狀態(tài)下,裝入上述裝入模塊以外的裝入模塊。
圖1是適用于本發(fā)明實施例的計算機構成圖。
圖2是用于管理裝入模塊及空的存儲器空間的數(shù)據結構圖。
圖3是用于管理硬件占用資源的數(shù)據結構圖。
圖4是頁面表及插入處理程序表的數(shù)據結構圖。
圖5是用于管理非中斷模塊的數(shù)據結構圖。
圖6是模塊構成文件。
圖7是用于存儲模塊的裝入模塊文件。
圖8是檢測出軟件故障時的處理流程圖。
圖9是操作系統(tǒng)重啟動處理的第一流程圖。
圖10是操作系統(tǒng)重啟動處理的第二流程圖。
圖11是非中斷模塊的初始化順序流程圖。
圖12是重啟動裝入程序的處理流程圖。
圖13是本發(fā)明第二實施例的計算機啟動順序的處理流程圖。
圖14是本發(fā)明第二實施例的操作系統(tǒng)重啟動處理的流程圖。
下面,參照


本發(fā)明的第一及第二實施例。
(1)第一實施例圖1是本發(fā)明第一實施例中所使用的計算機的構成圖。計算機100由處理器101、主存儲器102、只讀存儲器103、磁盤105、外部設備106和107、插入控制器104、連接各構成部件的總線108以及插入信號總線109構成。
在只讀存儲器103中,存有執(zhí)行計算機初始化處理的程序,初始化程序被配置在在處理器101為復位狀態(tài)時控制轉移的地址上。存在只讀存儲器103中的程序在主存儲器102中建立表示硬件結構的數(shù)據。而且處于磁盤105上的預定區(qū)域中的數(shù)據被裝入到主存儲器102中,并被作為程序傳送到控制中。在此例中,裝入程序114位于磁盤105的預定區(qū)域,并被裝入主存儲器102中而被執(zhí)行。
繼承了處理的裝入程序114將核心程序111裝入主存儲器中,設定處理器101的虛擬地址變換機構,將處理器轉換到虛擬地址模式,并執(zhí)行核心程序111。此時,裝入程序將硬件結構數(shù)據傳送到核心程序111中。核心程序111參照硬件結構數(shù)據,執(zhí)行核心程序111所管理的硬件設備的初始化處理,并按照模塊結構文件110的內容將從核心程序111中分離出的程序模塊裝入主存儲器102中,執(zhí)行各個模塊的初始化處理。例如,如果模塊結構文件110的內容是裝入重啟動裝入程序113、設備驅動程序112,則核心程序111將這些內容裝入主存儲器并執(zhí)行各自的初始化程序。圖1示出了核心程序111、重啟動裝入程序113及設備驅動程序112被裝入主存儲器中。最后,核心程序111生成初始進程,結束計算機的啟動過程。
在這樣的計算機系統(tǒng)中,當在操作系統(tǒng)核心程序111因軟件故障而中斷并對處理器復位及按照上述過程重啟動操作系統(tǒng)時,在重啟動期間,虛擬地址模式被解除且不能接收來自外部設備106及107的插入。這里,說明了外部設備106所產生的插入是核心程序111因軟件故障而中斷并進行重啟動期間必須處理的插入,由設備驅動程序112來進行管理的。本發(fā)明在進行核心程序111的重啟動處理期間能夠持續(xù)接收特定的插入并提供可以執(zhí)行插入處理的重啟動過程。
設備驅動程序112是被編程為不利用核心程序111提供的服務來處理外部設備106的插入的模塊。這里,設備驅動程序112作為非中斷模塊被登錄到重啟動裝入程序113的非中斷模塊管理表500中。重啟動裝入程序113是在核心程序111因軟件故障而中斷并進行核心程序111的重啟動時所執(zhí)行的模塊,執(zhí)行原樣維持作為非中斷模塊而被登錄到管理表500中的模塊的處理環(huán)境的核心程序111的重啟動處理。
所謂的非中斷模塊的處理環(huán)境,是指配置非中斷模塊的虛擬地址、與其對應的地址轉換表、存儲模塊的物理存儲器、非中斷模塊應處理的插入的插入處理程序的設定。地址轉換表被設定在頁面表410,插入處理程序被設定在插入處理程序表430中。地址空間信息和硬件資源信息被存儲在資源管理數(shù)據115中。
重啟動裝入程序113參照非中斷模塊管理表500,原樣保持非中斷模塊確保的地址區(qū)域和插入處理程序的設定,進行核心程序111的重新裝入和執(zhí)行。由此,能夠保證非中斷模塊插入處理的連續(xù)性。
圖2示出了表示本發(fā)明的操作系統(tǒng)核心程序111的地址空間的數(shù)據結構。
200是記錄裝入到核心程序111的地址空間中的模塊的裝入模塊管理表。各個模塊作為文件被存儲到磁盤等次級存儲裝置中,并由操作系統(tǒng)裝入程序或核心程序111裝入到主存儲器中。裝入模塊管理表200包含被裝入到主存儲器中的各個模塊的模塊名稱201、模塊代碼區(qū)域起始虛擬地址202、代碼區(qū)域大小203、數(shù)據區(qū)域起始虛擬地址204、數(shù)據區(qū)域大小205及模塊接口信息206。
模塊接口信息206是被裝入的模塊提供給核心程序111的接口程序的起始地址。通過登錄接口程序206,核心程序111能夠利用被裝入的模塊的功能。
圖2的207至211存有模塊名稱為設備驅動程序#1的模塊的代碼起始地址、大小、數(shù)據起始地址、大小及接口程序信息。在此圖的裝入模塊管理表200中,示出了核心程序111、重啟動裝入程序113、設備驅動程序#1及設備驅動程序#2被裝入核心空間。
220是表示核心程序111的虛擬地址空間的空區(qū)域的核心虛擬空間空區(qū)域列表。列表220指出表示空區(qū)域的空數(shù)據塊結構230??諗?shù)據塊結構230包含空區(qū)域的起始虛擬地址232、該空區(qū)域的大小233及指向表示下一個空區(qū)域的空數(shù)據塊結構的指針231。231存有下一個空數(shù)據塊結構240的地址。此圖的220中,示出了核心程序111的虛擬地址空間中分別從地址232、242開始、大小為233、243的2個空區(qū)域。
250是表示物理存儲器的空區(qū)域的物理存儲器空區(qū)域列表。物理存儲器空區(qū)域列表250的結構與核心程序虛擬空間空區(qū)域列表220的結構相同。空數(shù)據塊結構260及270分別表示物理存儲器的空區(qū)域。此圖中的列表250與220一樣,表示2個空的物理存儲器區(qū)域。
下面說明管理與計算機相連的外部設備的數(shù)據結構。
圖3示出了表示本發(fā)明與計算機相連的外部設備所占用的資源的數(shù)據結構。300是表示用于控制外部設備的寄存器所存在的地址范圍的設備占用地址列表。設備占用地址列表300由表示1個地址范圍的設備占用地址結構構成,在圖3中,由3個設備占用地址結構310、320和330構成。設備占用地址結構310包含設備控制寄存器起始地址312、大小313、用于管理在該地址范圍內被控制的設備的模塊的模塊編號314及用于構成設備占用地址列表300的鏈路311。
模塊編號314是對圖2的裝入模塊管理表200的索引。例如,設備占用地址結構310表示核心程序111所管理的外部設備的占用資源時,在314的模塊編號中存入表200中核心程序111的索引“0”。如果是設備驅動程序#1管理的設備,則在該模塊編號中存入表200中設備驅動程序#1的索引“2”。對裝入模塊管理表200的索引從0開始計數(shù)。
340是記錄外部設備所占用的插入編號的設備占用插入表。設備占用插入表340用于記錄處理器識別的插入編號被哪個模塊管理的硬件設備占用。例如,如果核心程序111管理的時鐘插入用設備占用了插入編號0,則將核心程序111的模塊編號0存入設備占用插入表的第0項341中。
下面,說明處理器直接利用的數(shù)據結構。圖4示出了處理器利用的虛擬地址轉換表及插入處理用表的數(shù)據結構。410是用于規(guī)定從處理器的虛擬地址到物理地址的地址轉換的頁面表。頁面表410的項存有處理器規(guī)定的每一頁面。每一項包含表示該項關于虛擬地址空間內的各虛擬頁面是否有效的標記411、表示該頁面是否可以寫入的標記412和該項對應于虛擬頁面的物理頁面的起始地址413。
處理器的寄存器400存儲頁面表410的起始地址。處理器在虛擬地址模式下工作時,參照頁面表寄存器400,從虛擬地址中生成進行實際的存儲器訪問時所必需的物理地址。430是插入處理程序表,用于規(guī)定關于進入處理器的插入的每個插入編號的插入處理程序。在插入中對每個要素進行編號。插入控制器104從外部設備接收插入請求,轉換到插入編號并通知處理器。插入處理程序表430存儲各個插入編號下的每個插入處理程序的起始地址。例如,如果時鐘插入利用第0個插入,則在插入處理程序表的第0項431中插入時鐘插入處理程序的地址。
處理器的寄存器400存有插入處理程序表430的起始地址。處理器參照插入處理程序表寄存器420,在檢測出插入時將控制轉移到每個要素的插入處理程序。例如,在處理器檢測出時鐘插入,即第0個插入時,處理器將控制轉移到存在插入處理程序表寄存器420所指向的表430的第0項431中的處理程序。
下面說明重啟動裝入程序113所管理的數(shù)據結構。重啟動裝入程序113是在操作系統(tǒng)的核心程序111因軟件故障發(fā)生中斷而進行操作系統(tǒng)的重啟動時,將操作系統(tǒng)核心程序111裝入主存儲器中并執(zhí)行核心程序111的模塊。
圖5示出了重啟動裝入程序113所管理的數(shù)據結構。500是非中斷模塊管理表,并是管理非中斷模塊信息的數(shù)據結構,該非中斷模塊是在由重啟動裝入程序113進行核心程序111的再裝入和重啟動過程中也從硬件設備接收插入并執(zhí)行處理的模塊。非中斷模塊管理表500包含非中斷模塊名501、非中斷模塊的代碼區(qū)域起始地址502、代碼區(qū)域的大小503、數(shù)據區(qū)域的起始地址504、數(shù)據區(qū)域的大小505、非中斷模塊所管理的外部設備占用的資源信息506及非中斷模塊再初始化程序的地址。
在利用硬件信息506中,記錄非中斷模塊管理的外部設備控制所占用的地址和占用插入編號。在再初始化程序507中,存有核心程序111重啟動時所執(zhí)行的程序的地址。再初始化程序執(zhí)行什么取決于模塊所管理的硬件,但至少要執(zhí)行向裝入模塊管理表200登錄接口程序206。由此核心程序111能夠再次利用非中斷模塊所提供的功能。
在圖5所示的非中斷模塊管理表500中,重啟動裝入程序113及設備驅動程序#1作為非中斷模塊被登錄。而且在508至513中,存有設備驅動程序#1的占用地址、外部設備信息、在初始化程序地址。重啟動裝入程序113利用非中斷模塊管理表500的信息,建立操作系統(tǒng)核心程序111重啟動時的核心空間及外部設備結構信息,并將其發(fā)送到核心程序111中。通過參照這些信息決定啟動過程,即使在核心程序重啟動中沒有發(fā)生中斷,核心程序111也可以執(zhí)行來自外部設備的插入處理。利用重啟動裝入程序113的數(shù)據區(qū)域中所設置的數(shù)據結構,由重啟動裝入模塊來管理非中斷模塊管理表500。重啟動裝入模塊在對模塊進行初始化時使重啟動裝入程序113的數(shù)據區(qū)域為禁止寫入,從而防止了軟件故障對非中斷模塊管理表500的破壞。通過將對應于包含數(shù)據區(qū)域的虛擬頁面的頁面表410的各項中的可寫入標記復位,來實現(xiàn)使數(shù)據區(qū)域為禁止寫入。
下面,說明定義核心程序111啟動時的所讀入的裝入模塊的文件形式。圖6示出了定義裝入模塊的數(shù)據結構。110是示了模塊結構文件的內容。模塊結構文件110的各項包含核心程序111所裝入的模塊的名稱601、存儲模塊的文件名602及表示該模塊是否為非中斷模塊的標記603。在圖6所示的例子中,核心程序111按照重啟動裝入程序113、設備驅動程序1、設備驅動程序2的順序將模塊讀入主存儲器中。若存儲設備驅動程序1的文件名為driverl,則表示設備驅動程序是非中斷模塊。模塊結構文件110被存儲在操作系統(tǒng)中具有預定名稱的文件中,所以核心程序111能夠容易地發(fā)現(xiàn)這個文件。
圖7示出了存儲裝入模塊的文件形式。存儲裝入模塊的文件700保存表示模塊執(zhí)行代碼的存儲位置的代碼起始偏移地址701、執(zhí)行代碼的大小702、表示數(shù)據存儲位置的數(shù)據起始偏移地址703、數(shù)據區(qū)域的大小704、模塊初始化程序的執(zhí)行代碼被存儲的初始化程序偏移地址705、模塊的再配置信息起始偏移地址706、再配置信息的大小707、執(zhí)行代碼708及數(shù)據709。
模塊再配置信息710是將模塊裝入主存儲器中時所利用的數(shù)據,也是用于根據模塊代碼及數(shù)據區(qū)域被裝入的地址來變更模塊代碼的數(shù)據。由此,也可以改變裝入的模塊的結構或模塊被裝入的地址。
下面,說明本發(fā)明的操作系統(tǒng)重啟動過程。圖8是示出了重啟動操作系統(tǒng)時執(zhí)行的重啟動裝入程序113的處理過程的流程圖。首先,在步驟801檢查重啟動裝入程序113是否被裝入核心程序空間。在沒有裝入重啟動裝入程序113或不能判斷是否裝入了重啟動裝入程序113的情況下,進入步驟802。在步驟802,復位處理器并執(zhí)行計算機的重啟動。
在多臺計算機中處理器處于復位狀態(tài)時,虛擬地址轉換變?yōu)闊o效,插入處理程序的設定也變?yōu)闊o效,控制被轉移到處理器規(guī)定的物理地址。通常,這個物理地址與存儲計算機啟動過程的讀入專用存儲器103相映射。這個啟動過程是對與計算機相連的硬件設備復位。其目的是為了在執(zhí)行操作系統(tǒng)的核心程序111時使外部設備處于已知狀態(tài)。由于這個啟動過程,特別是由于處理器被復位,使得在原來計算機的操作系統(tǒng)重啟動期間,不能接收來自外部設備的插入處理。
另一方面,在步驟801判斷為裝入了重啟動裝入程序113的情況下,不對處理器復位而進行步驟803。從步驟803開始是執(zhí)行實際的重啟動裝入程序113的處理過程。在步驟803,檢查登錄在裝入模塊管理表200中的模塊是否帶有硬件復位程序,如果該程序被登錄,則調用該復位程序。特別是在硬件復位是對不必要的設備的情況下,也可以不登錄復位程序。
接著在步驟804,參照非中斷模塊管理表500中各項的利用硬件信息506,使關于非中斷模塊所接收的插入以外的插入的插入處理程序無效。具體地說,就是將插入處理程序430的各項設定為只接收插入的插入處理程序的地址。接著在步驟805,將準備用于以后向非中斷模塊的數(shù)據區(qū)域的數(shù)據存儲的、重啟動裝入處理的數(shù)據區(qū)域中所存儲的頁面設定為可寫入狀態(tài)。具體地說,就是使頁面表410中對應于非中斷模塊數(shù)據區(qū)域的項的可寫入標記412被設定為可寫入狀態(tài)。
在步驟806中,生成虛擬空間空區(qū)域列表及物理存儲器空區(qū)域列表。在步驟806,參照非中斷模塊管理表500,在重啟動裝入程序113的數(shù)據區(qū)域內生成以非中斷模塊、重啟動裝入程序113及核心程序堆棧116利用的地址區(qū)域以外的地址區(qū)域為空區(qū)域的空區(qū)域列表??諈^(qū)域列表具有和操作系統(tǒng)管理的空區(qū)域列表220及250相同的數(shù)據結構。
在步驟807,生成設備占用地址列表。在步驟807,與步驟806相同,參照非中斷模塊管理表500,在重啟動裝入程序113的數(shù)據區(qū)域內生成以非中斷模塊利用的地址區(qū)域以外的地址區(qū)域為空區(qū)域的設備占用地址列表。這里所生成的設備占用地址列表的數(shù)據結構雖然與操作系統(tǒng)管理的設備占用地址列表300的數(shù)據結構大致相同,但在設備占用地址結構的模塊編號中,存儲的不是模塊編號而是模塊名稱。
在步驟808,生成設備占用插入表。與步驟807相同,在重啟動裝入程序113的數(shù)據區(qū)域內生成以非中斷模塊利用的插入編號以外的編號為未使用編號的設備占用插入表。此處與步驟807一樣,在設備占用插入表的各項中,存儲的不是模塊編號而是模塊名稱。步驟806至808中所生成的數(shù)據結構不會在核心程序111重啟動時將非中斷模塊管理的硬件設備資源錯誤地分配給其他模塊。
最后,重啟動裝入程序113將操作系統(tǒng)核心程序111裝入主存儲器中(步驟809)并將重啟動裝入程序113的再初始化程序的地址添加到參數(shù)中,執(zhí)行核心程序111(步驟810)。
圖9是示出了本發(fā)明實施例的操作系統(tǒng)核心程序111的初始化處理過程的流程圖。
首先,判斷核心程序111在啟動時是由重起動裝入程序113啟動還是進行常規(guī)啟動(步驟901)。這是很容易判斷的,因為在由重啟動裝入程序113進行的啟動中需要將重啟動裝入程序113的再初始化程序的地址作為參數(shù)傳送給核心程序111。
在不是由重啟動裝入程序113進行啟動的情況下,按照常規(guī)過程執(zhí)行核心程序111(步驟902)。這里所謂的常規(guī)過程是指總線及插入控制器的初始化、核心程序管理的硬件設備的初始化、模塊結構文件中記載的模塊裝入主存儲器的初始化、初始進程的執(zhí)行。
在由重啟動裝入程序113啟動的情況下,進入步驟903。在步驟903,向重啟動裝入程序模塊分配裝入模塊管理表200的項。接著在步驟904,根據作為參數(shù)傳遞的重啟動裝入程序模塊的再初始化程序地址執(zhí)行再初始化程序。重啟動裝入程序113的再初始化程序執(zhí)行與非中斷模塊的再初始化程序相同的處理。在這個再初始化程序中,執(zhí)行裝入模塊管理表200的設定。特別是,設定管理表200的模塊接口206,從核心程序111中調用重啟動程序提供的接口程序。
接著,在步驟905復制硬件結構信息。在步驟906和907中將重起動裝入程序113在核心程序啟動前建立的空區(qū)域列表、設備占用地址列表及設備占用插入表復制到核心程序111的數(shù)據空間。由重啟動裝入程序113提供的接口程序執(zhí)行這些處理。
在常規(guī)啟動中,生成以裝有核心程序111的存儲器區(qū)域以外的區(qū)域為空區(qū)域的空區(qū)域列表、空的設備占用地址列表及全部插入項均為未使用的設備插入表,并執(zhí)行后面的處理。
相應地,在由重啟動裝入程序113啟動時,利用重啟動裝入程序113生成的空區(qū)域列表、設備占用地址列表及設備占用插入表。由此,避免了非中斷模塊數(shù)據區(qū)域的初始化和外部設備的初始化,保持了與非中斷模塊的外部設備相關的處理的連續(xù)性。
接著步驟908至912是對核心程序111管理的總線及插入制器以外的全部外部設備進行的初始化處理。首先,在步驟908,判斷是不是核心程序111管理的硬件設備,如果不是,則進入步驟1001。在步驟909,檢查外部設備利用的地址區(qū)域及插入編號是否已經被使用。如果初始化處理中的外部設備所利用的地址和插入編號已經被登錄在設備占用地址列表300及設備占用插入表340中,則不執(zhí)行步驟910和911而進入步驟912。如果初始化處理中的外部設備所利用的地址或插入編號還沒有被登錄在設備占用地址列表300及設備占用插入表340中,則意味著著是非中斷模塊利用的設備。由此,避免了非中斷模塊管理的外部設備的初始化,保持了與非中斷模塊的設備相關的處理的連續(xù)性。
如果外部設備使用的地址區(qū)域及插入編號不是未被使用的,則將該地址區(qū)域及插入編號與核心程序111的模塊編號同時登錄到設備占用地址列表300和設備占用插入表340中(步驟910)。
通過檢索裝入模塊管理表200得到核心程序111的模塊編號。執(zhí)行作為對象的外部設備的初始化(步驟911),并進入步驟912。在步驟912,設定其他設備為處理對象設備,進入步驟908。如果沒有剩余的處理對象設備,則從步驟908的檢查進入到步驟1001。
圖10示出了從步驟1001開始的處理流程圖。圖10的流程圖主要與模塊的裝入處理相關。
在步驟1001,將模塊結構文件110讀入存儲器中。接著步驟1002至1011執(zhí)行模塊結構文件中所登錄的各個模塊。步驟1002至1008構成了執(zhí)行每個模塊處理的循環(huán)。
在循環(huán)內的開始步驟1003,參照模塊結構文件110的非中斷標記603,檢查作為處理對象的模塊是不是非中斷模塊。不是非中斷模塊的情況下,進入步驟1004。
從步驟1004開始,執(zhí)行模塊向主存儲器的裝入。首先,在步驟1004獲得必要的存儲器區(qū)域。這是通過參照空區(qū)域列表220及物理存儲器空區(qū)域列表250,尋找存儲模塊所必需的足夠空區(qū)域,并從這些空區(qū)域列表中取出找到的區(qū)域而實現(xiàn)的。參照存儲模塊的文件前面的部分702及704求出存儲模塊所必需的區(qū)域。在存儲器的分配中,也進行頁面表410的設定。對與分配的地址區(qū)域相對應的頁面表410的各項設置有效標記411,并將所分配的物理頁面的起始地址存入413中。而且,還設置了可寫入標記412。在裝入代碼區(qū)域后設置存有代碼區(qū)域的頁面的可寫入標記412。
接著在步驟1005,將以模塊結構文件110中的文件名602表示的文件裝入在步驟1004中分配的區(qū)域。裝入后,利用存儲在文件中的再配置信息706、707及710來修正代碼區(qū)域。而且,分配裝入模塊管理表200中用于被處理的模塊的項,并設定該項的地址及大小信息(步驟1006)。
接著,這些模塊的初始化程序(步驟1007)。模塊的初始化程序至少設定裝入模塊管理表200的模塊接口206。如果需要執(zhí)行其他模塊的初始化處理,也會執(zhí)行該處理。在模塊接口被設定時,核心程序111能夠知道模塊所提供的處理程序的地址,并能夠執(zhí)行模塊所提供的處理。
接著在步驟1008,將處理對象模塊設定為模塊結構文件的下一項,然后返回步驟1002。下面對處理對象模塊為非中斷模塊的情況進行說明。在步驟1003,判斷為處理對象模塊為非中斷模塊時,進入步驟1009。在步驟1009,進行裝入模塊管理表200的更新處理。首先,分配裝入模塊管理表200中存儲處理中的模塊數(shù)據的項。應存入分配的項中的裝入模塊管理表200的202至205的地址及大小信息被存入重啟動裝入程序113的數(shù)據區(qū)域內的非中斷模塊管理表500的502至505中,將這些信息復制到所分配的項中并更新裝入模塊管理表200。
接著執(zhí)行非中斷模塊的再初始化程序(步驟1010)。再初始化程序的地址被存儲在非中斷模塊管理表500的再初始化程序507中,通過非中斷模塊名稱可以得到再初始化程序。非中斷模塊的再初始化程序至少執(zhí)行裝入模塊管理表200的接口程序206的設定。如果需要,還進行硬件設備的設定等其他處理。此時,由于非中斷模塊是新的并且沒有被裝入,在此之前的數(shù)據區(qū)域被保存,從而保持了與非中斷模塊的設備相關的處理的連續(xù)性。
接著在步驟1011,在設備占用地址列表300及設備占用插入表340內關于表示作為處理對象的非中斷模塊所管理的地址區(qū)或及插入編號的項的模塊編號欄中存入在步驟1009中分配的裝入模塊管理表200的項的編號。通過非中斷模塊管理表500的利用硬件信息506得到非中斷模塊管理的設備的地址區(qū)域和插入編號。對于空區(qū)域列表220和250,由于重啟動裝入程序113從空列表中取出了非中斷模塊具有的地址區(qū)域,所以不需要特別的處理。進行進入步驟1008進行下一個裝入模塊的處理。
在步驟1002,如果判斷為裝入了全部模塊,就進入步驟1012。步驟1012不生成和執(zhí)行初始進程,就完成了操作系統(tǒng)的啟動。
下面,說明非中斷模塊的初始化程序。模塊的初始化程序是全部模塊必須具有的程序,在核心程序111啟動時被執(zhí)行。圖11是表示本發(fā)明實施例的非中斷模塊的初始化程序處理的流程圖。這里說明對模塊結構文件110中設定的設備驅動程序#1的初始化程序的處理。
首先,作為設備驅動程序#1與核心程序111的接口的模塊接口被存儲在裝入模塊管理表200中用于設備驅動程序#1的分配項211中(步驟1101)。
在下面的步驟1102,分配設備驅動程序1的設備占用地址結構,設定起始地址、大小和模塊編號,并將其追加到設備占用地址列表300中。而且還在設備占用插入表340中設備驅動程序1管理的插入編號項中存入設備驅動程序1的模塊編號。由此,將設備驅動程序#1利用的設備地址區(qū)域及插入編號登錄到設備占用地址列表300及設備占用插入表340中。
接著,進行向模塊的非中斷模塊管理表500的登錄(步驟1103)。在非中斷模塊管理表中分配用于正在處理的模塊的項,并設定地址、大小信息、利用硬件信息及再初始化程序的地址。由重啟動裝入程序113提供的接口程序來實現(xiàn)上述設定過程。在更新非中斷模塊管理表500時,由于非中斷模塊管理表500中的頁面被設定為禁止寫入,所以在更新前后要對頁面表410中的可寫入標己進行操作。然后,設定硬件設備(步驟1104)。
下面說明重啟動裝入程序113提供的接口程序。重啟動裝入程序113本身是非中斷模塊,它提供了初始化程序、再初始化程序、硬件結構數(shù)據復制程序、非中斷模塊登錄程序。
首先,說明重啟動裝入程序113的初始化程序處理。圖12是表示重啟動裝入程序113的處理過程的流程圖。
重啟動裝入程序113是非中斷模塊,重啟動裝入程序113的初始化程序只在啟動計算機時被調用。首先,在重啟動裝入程序113的初始化程序中,將為以后的重啟動處理準備的、存在讀入專用存儲器103中的初始化程序所生成的硬件結構信息復制到重啟動裝入程序113的數(shù)據區(qū)域中(步驟1201)。接著執(zhí)行非中斷模塊管理表500的初始化(步驟1202)和向重啟動裝入程序113本身的非中斷模塊管理表的登錄(步驟1203)。最后,將分配在存有非中斷模塊管理表及硬件結構數(shù)據的重啟動裝入程序113的數(shù)據區(qū)域中的頁面設定為禁止寫入(步驟1204)。
再初始化程序執(zhí)行向裝入模塊管理表登錄接口程序的處理。這與其他非中斷模塊的情況相同。硬件結構數(shù)據復制程序將存在重啟動裝入程序113的數(shù)據區(qū)域中的硬件結構數(shù)據復制到核心程序111的數(shù)據區(qū)域中。非中斷模塊登錄程序將與非中斷模塊相關的數(shù)據登錄到非中斷模塊管理表500中。通常,由于重啟動裝入程序113的數(shù)據區(qū)域由虛擬地址機構設定為禁止寫入,所以登錄程序一旦解除禁止寫入,就將非中斷模塊數(shù)據寫入表500中,然后再次使數(shù)據區(qū)域為禁止寫入。
通過本實施例,即使在操作系統(tǒng)核心程序111因軟件故障而中斷并執(zhí)行重啟動處理時,也不中斷非中斷模塊利用并登錄的外部設備的插入處理并能夠繼續(xù)執(zhí)行處理。而且還避免了在處理器復位時執(zhí)行的硬件結構識別處理,縮短了到重啟動的時間。
下面說明以執(zhí)行以時鐘插入為例的外部設備控制的模塊為非中斷模塊的實施例。時鐘插入通常是由核心程序111本身管理的插入。在執(zhí)行時間限制嚴格的處理的情況下,采取利用在將時鐘插入傳送到核心程序111之前進行奪取、優(yōu)先于帶有時間限制的處理而執(zhí)行的模塊的方式。所謂的奪取插入,就是變更插入處理程序的設定。對于這樣的時間限制嚴格的控制,在時間限制嚴格的同時還不允許中斷與時鐘插入相應的處理。
通過本發(fā)明,使奪取時鐘插入的模塊為非中斷模塊,即使在核心程序111因軟件故障而中斷并執(zhí)行重啟動時,也不會中斷與時鐘插入相應的處理,并能夠繼續(xù)執(zhí)行。
在將時鐘插入處理模塊作為非中斷模塊登錄時,將時鐘插入的插入編號及時鐘插入的控制地址作為模塊占用的資源和設備登錄到非中斷模塊管理表500中。由此,在核心程序111重啟動的前后,時鐘插入的處理環(huán)境是連續(xù)的。而且在核心程序111重啟動時,通過識別作為核心程序111自己管理的設備的時鐘插入被其他模塊占用,而無須變更時插入的相關設定而進入啟動處理。
由此,實現(xiàn)了即使在操作系統(tǒng)核心程序111因軟件故障而中斷并被重啟動時,也不中斷時鐘插入處理、可靠性高且可用性高的控制系統(tǒng)。
(2)第2實施例對本發(fā)明的第二實施例進行說明。
圖13是表示本實施例中的計算機啟動過程的流程圖。
首先執(zhí)行作為常規(guī)核心程序初始化處理的核心程序數(shù)據初始化(步驟1301)、外部設備初始化(步驟1302)及核心程序模塊的裝入和初始化(步驟1303)。象第一實施例一樣,如果模塊是非中斷模塊,則模塊的初始化將其利用地址信息登錄到非中斷模塊管理表500中。
在下面的步驟1304中,主存儲器102內裝有核心程序111及其他模塊的區(qū)域中,將非中斷模塊的數(shù)據區(qū)域以外的區(qū)域記錄到磁盤105的重啟動文件中。而且,在步驟1305,將頁面表寄存器及核心程序堆棧的堆棧指針值保存到磁盤105的重啟動文件中。
這里所生成的重啟動文件是為了在核心程序111因軟件故障而重啟動時再現(xiàn)核心程序111的軟件結構。在步驟1307生成和執(zhí)行初始進程。
圖14是表示本發(fā)明第二實施例的操作系統(tǒng)核心程序111的重啟動過程的流程圖。
由作為非中斷模塊登錄的重啟動裝入程序113執(zhí)行此重啟動過程。依圖說明重啟動過程。首先,將頁面表寄存器400所指的頁面表410復制到重啟動裝入程序113的數(shù)據區(qū)域中(步驟1401),然后進行變更使頁面表寄存器400指向被復制一方的頁面表(步驟1402)。
接著,將記錄在磁盤105的重啟動文件中的核心程序啟動時的主存儲器102的內容復制到主存儲器102中(步驟1403)。接著,從磁盤105的重啟動文件中取得頁面表寄存器和堆棧指針遺跡步驟1307的地址(步驟1404、1405)。在步驟1406,將所取得的頁面寄存器值和堆棧指針值設定到寄存器中并轉移到步驟1307的處理(步驟1407)。
在第二實施例中,由于磁盤105的重啟動文件中不包含作為非中斷模塊登錄的模塊數(shù)據區(qū)域,所以在核心程序重啟動的前后,非中斷模塊的數(shù)據區(qū)域被保存在主存儲器102中。由此,能夠維持非中斷模塊的外部插入處理的連續(xù)性。在本實施例中,主存儲器102的內容被保存在設備105中,但也可以保存在主存儲器的其他區(qū)域。
在核程序111檢測出軟件故障時,將插入處理中使用的主存儲器的內容維持在主存儲器中以便于不進行處理器復位而能夠執(zhí)行核心程序重啟動中的特定插入處理。并且也可以將插入處理程序的設置維持在主存儲器中并中斷核心程序111的處理。
在操作系統(tǒng)的核心程序111檢測出軟件故障而重啟動時,通過參照非中斷模塊管理表500設計出核心程序重啟動時的外部設備初始化過程和決定裝入的模塊結構的過程,能夠在核心程序111的重啟動處理中不中斷與特定外部設備發(fā)生的插入相對應的處理而繼續(xù)執(zhí)行該處理。
而且,通過不對處理器復位而執(zhí)行操作系統(tǒng)的重啟動,能夠避免在處理器復位時執(zhí)行更件結構檢查等處理,縮短了到操作系統(tǒng)重啟動的時間。
權利要求
1.由多個裝入模塊構成的操作系統(tǒng)在一臺計算機中的重啟動的方法,包括下列步驟將上述操作系統(tǒng)重啟動過程中被操作的上述多個裝入模塊中的一個保存到存儲器中;使上述一個裝入模塊處理的插入成為可接收狀態(tài);將上述一個裝入模塊以外的裝入模塊裝入上述計算機的存儲器中。
2.如權利要求1所述的重啟動方法,其特征在于上述重啟動在上述操作系統(tǒng)接收軟件故障時執(zhí)行。
3.如權利要求1所述的重啟動方法,其特征在于上述插入為外部插入。
4.如權利要求1所述的重啟動方法,其特征在于在上述操作系統(tǒng)的重啟動中,執(zhí)行由上述一個裝入模塊所進行的上述插入的接收。
5.如權利要求1所述的重啟動方法,其特征在于還包括步驟在上述操作系統(tǒng)的重啟動過程中,使上述一個裝入模塊所在的上述存儲器區(qū)域為禁止寫入狀態(tài)。
6.通過網絡連接第一計算機和第二計算機的計算機系統(tǒng),其特征在于,上述第一計算機向上述第二計算機傳送請求;具有由多個裝入模塊構成的操作系統(tǒng)的上述第二計算機將用于在該操作系統(tǒng)重啟動過程中接收上述請求的上述多個裝入模塊中的一個保存到存儲器中,成為可接收上述一個裝入模塊處理的插入的狀態(tài),通過將上述一個裝入模塊以外的裝入模塊裝入到上述計算機的存儲器中進行重啟動,并通過上述插入,上述一個裝入模塊接收上述重啟動過程中從上述第一計算機傳送的上述請求。
全文摘要
在計算機中使由多個裝入模塊構成的操作系統(tǒng)重啟動的方法,首先,將此操作系統(tǒng)重啟動過程中被操作的一個裝入模塊保存到存儲器中。使這一個裝入模塊處理的插入為可接收狀態(tài)。然后將這一個裝入模塊以外的裝入模塊裝入上述計算機的存儲器中。由此,在操作系統(tǒng)的重啟動過程中,使這個裝入模塊的插入處理成為可能。
文檔編號G06F1/00GK1208890SQ9811785
公開日1999年2月24日 申請日期1998年7月2日 優(yōu)先權日1997年7月2日
發(fā)明者關口知紀, 新井利明 申請人:株式會社日立制作所
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
永吉县| 二手房| 牙克石市| 台北县| 安多县| 和田市| 松潘县| 静海县| 泸州市| 阳信县| 蒙阴县| 汾阳市| 雷波县| 绿春县| 肥城市| 中卫市| 盖州市| 丹阳市| 思茅市| 怀来县| 长垣县| 宾阳县| 盐源县| 盐池县| 浦县| 吴桥县| 潢川县| 林甸县| 谷城县| 巴里| 东兴市| 诏安县| 武清区| 武清区| 石泉县| 改则县| 恩施市| 云林县| 延长县| 环江| 普定县|