




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實習一 中斷處理一、 實習內容模擬中斷事件的處理。二、 實習目的現代計算機系統的硬件部分都設有中斷機構,它是實現多道程序設計的基礎。中斷機構能發現中斷事件,且當發現中斷事件后迫使正在處理器上執行的進程暫時停止執行,而讓操作系統的中斷處理程序占有處理器去處理出現的中斷事件。對不同的中斷事件,由于它們的性質不同,所以操作系統應采用不同的處理。通過實習了解中斷及中斷處理程序的作用。本實習模擬“時鐘中斷事件”的處理,對其它中斷事件的模擬處理,可根據各中斷事件的性質確定處理原則,制定算法,然后依照本實習,自行設計。三、實習題目模擬時鐘中斷的產生及設計一個對時鐘中斷事件進行處理的模擬程序。提示:(1) 計
2、算機系統工作過程中,若出現中斷事件,硬件就把它記錄在中斷寄存器中。中斷寄存器的每一位可與一個中斷事件對應,當出現某中斷事件后,對應的中斷寄存器的某一位就被置成1。處理器每執行一條指令后,必須查中斷寄存器,當中斷寄存器內容不為0時,說明有 中斷事件發生。硬件把中斷寄存器內容以及現行程序的斷點存在主存的固定單元,且讓操作系統的中斷處理程序占用處理器來處理出現的中斷事件。操作系統分析保存在主存固定單元中的中斷寄存器內容就可知道出現的中斷事件的性質,從而作出相應的處理。本實習中,用從鍵盤讀入信息來模擬中斷寄存器的作用,用計數器加 1 來模擬處理器執行了一條指令。每模擬一條指令執行后,從鍵盤讀入信息且分
3、析,當讀入信息=0 時,表示無中斷事件發生,繼續執行指令;當讀入信息=1 時,表示發生了時鐘中斷事件,轉時鐘中斷處理程序。(2)假定計算機系統有一時鐘,它按電源頻率(50Hz)產生中斷請求信號,即每隔 20毫秒產生一次中斷請求信號,稱時鐘中斷信號,時鐘中斷的間隔時間(20 毫秒)稱時鐘單位。學生可按自己確定的頻率在鍵盤上鍵入0或1來模擬按電源頻率產生的時鐘中斷信號。(3) 中斷處理程序應首先保護被中斷的現行進程的現場(通用寄存器內容、斷點等),現場信息可保存在進程控制塊中;然后處理出現的中斷事件,根據處理結果修改被中斷進程的狀態;最后轉向處理器調度,由處理器調度選擇可運行的進程,恢復現場使其運
4、行。本實習主要模擬中斷事件的處理,為簡單起見可省去保護現場和處理器調度的工作。(4) 為模擬時鐘中斷的處理,先分析一下時鐘中斷的作用。利用時鐘中斷可計算日歷時鐘,也可作定時鬧鐘等。計算日歷時鐘把開機時的時間(年、月、日、時、分、秒)存放在指定的稱為日歷時鐘的工作單元中,用一計時器累計時鐘中斷次數。顯然,根據時鐘中斷的次數和時鐘單位(20 毫秒)以及開機時的日歷時鐘可計算出當前的精確的日歷時鐘(年、月、日、時、分、秒)。因此,可按需要計算出一個作業裝入時的時間,一個作業撤離時的時間,終端用戶使用終端的時間,以及其它場合需要確定的時間。定時鬧鐘對需要定時的場合,例如,處理器調度采用時間片輪轉策略調
5、度時,可把輪到運行的進程的時間片值(以時鐘單位計算)送到稱為定時鬧鐘的工作單元中,每產生一次時鐘中斷就把定時鬧鐘值減 1,當該值為0時,表示確定的時間已到,起到定時的作用。(5) 本實習的模擬程序可由兩部分組成,一部分是模擬硬件產生時鐘中斷,另一部分模擬操作系統的時鐘中斷處理程序。模擬程序的算法如圖 1-1。其中,保護現場和處理器調度的工作在編程序時可省去。約定處理器調度總是選擇被中斷進程繼續執行。(6) 按模擬算法設計程序,要求顯示或打印開機時間、定時鬧鐘初值、定時鬧鐘為0時的日歷時鐘。確定三個不同的定時鬧鐘初值,運行設計的程序,觀察得到的結果。四、思考題將進程調度策略結合到本實習中,可選用
6、時間片輪轉的調度策略。給每個進程分配一個相同的時間片,每產生一次時鐘中斷經處理后,被中斷進程時間片減 1,時間片值¹0時,該進程優先運行,若時間片值=0 且該進程尚未運行結束,則將它排入隊尾,再給它分配一個時間片,直到所有的進程運行結束。應怎樣設計進程控制塊?各進程的狀態怎樣變化?在本實習的程序中加入處理器調度程序。五、實習報告(1)實驗說明:首先獲取本機時間,并轉換成字符存儲起來:local = localtime(&t); st=asctime(local);之后記錄初始時間并輸出時間:設置三個定時鬧鐘:之后判斷,鍵盤輸入1則進行中斷處理,輸入0則不中斷處理:·
7、處理后要進行判讀那,三個定時鬧鐘是否到達,若到達,則調用函數display進行時間計算并顯示:Display函數如下:(2)實驗代碼:#include<time.h> #include<stdio.h> #include<stdlib.h>void displayTime(int Timer,char s);int main() struct tm *local; char *st,s27; time_t t; t=time(NULL); local = localtime(&t); st=asctime(local); int count=0,cl
8、ock_alarm3,Timer=0,clock_count,w; int i; /記錄初始時間for(i=0;i<27;i+)si=*st;st+;printf("star time:n");/時間存儲在數組中,從第5位開始為月份、時間、年份 for(i=4;i<25;i+)printf("%c",si); printf("set three time clock alarm:n"); /設置定時鬧鐘 for(int j=0;j<3;j+)scanf("%d",&clock_alarmj
9、);/設置為時鐘鬧鈴為8,每個時鐘間隔為2秒for(int j=0;j<3;j+)printf("the clock alarm is %d,timer is 0n",clock_alarmj);while(1)doprintf("A piece of order have been finishedn");count+;/模擬一條指令被執行,計數器加1 printf("input a number(1 means an interrupt,0 means no interruptn");scanf("%d"
10、,&w);/讀取鍵盤輸入while(w=0); /如果w一直為0,則程序一直在此循環執行if(w=1) printf(" the sport have been savedn");Timer+;/保護現場,計時器加1,定時鬧鐘減1,處理器調度 printf("processor finished assignmentn");/處理器完成調度!for(int j=0;j<3;j+)if(Timer=clock_alarmj)clock_count+;printf("nThe clock_alarm of %d get there:n
11、",j+1);displayTime( Timer,s);if (clock_count=3) break;void displayTime(int Timer,char s)int i;double p;int a,m,r,n,e,o,u;/計算當前日歷時間 p=Timer*2;/define the time unit is 2 a=(int)Timer*2;if(p-a)>=0.5)p=a+1;else p=a;/這段代碼是對硬件的模擬 ,就是當Timer出現偏差時的處理m=(int)p;printf("time have passed:%dn",m)
12、;/現在已過時間r=s17-48;/計算運行時間 n=s18-48;e=r*10+n;p=p+e;/下面部分代碼為ASCII碼的轉換if(p<60) s17=(int)p/10)+48;s18=(int)p%10)+48;for(i=4;i<27;i+)printf("%c",si);elses14=s14-48;s15=s15-48;o=s14*10+s15;o=o+(int)p/60;if(o<60)s14=(o/10)+48; s15=(o%10)+48;s17=(int)p%60)/10+48; s18=(int)p%60)%10+48; for(i=4;i<27;i+) printf("%c",si);elses11=s11-48;s12=s12-48; u=s11*10+s12;u=u+o/60;if(u<24)s11=u/10+48;s12=u%10+48;s14=(o%60)/10+48; s15=(o%60)%10+48; s17=(int)p%60)/10+48; s18=(int)p%60)%10+48; for(i=4;i<27;i+) printf("%c",si); (3)實驗結果 開機時間(2016年11月6日19時19分27秒)定時鬧鐘 鬧鐘
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高端社區停車位租賃服務協議書
- 互聯網產業園區廠房出租與運營管理合同
- 教學課件五年級上冊英語
- 2025至2030殺蛾產品行業發展趨勢分析與未來投資戰略咨詢研究報告
- 2025年陜西中考歷史試題及答案
- 2025至2030中國嬰幼兒儲霧罐行業市場深度調研及發展趨勢與投資前景預測報告
- 2025至2030中國圓沙發行業市場占有率及投資前景評估規劃報告
- 2025至2030中國園林綠化行業發展研究與產業戰略規劃分析評估報告
- 2025至2030中國危險品運輸車行業市場深度調研及競爭格局與投資報告
- 2025至2030中國衛生間圍框行業發展趨勢分析與未來投資戰略咨詢研究報告
- 安全生產月題庫-2025年安全生產月安全知識競賽題庫(附題目答案)
- 口腔正畸模型測量分析
- 機加工獎罰管理制度
- 2024年中汽中心招聘真題
- 2024年貴州省黔西縣教育局公開招聘試題含答案分析
- 集裝箱投資項目可行性研究報告
- 2025-2030中國農業電商行業經營規模及投資發展戰略研究報告
- 拆分合同:合伙企業解散及債務分擔協議
- 2025河北邯鄲市肥鄉區選聘農村黨務(村務)工作者100人筆試參考題庫完整參考答案詳解
- 酒店安保部管理制度
- T/SHPTA 069-2023汽車內飾用反應型聚氨酯熱熔膠
評論
0/150
提交評論