版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實習一 中斷處理一、 實習內容模擬中斷事件的處理。二、 實習目的現(xiàn)代計算機系統(tǒng)的硬件部分都設有中斷機構,它是實現(xiàn)多道程序設計的基礎。中斷機構能發(fā)現(xiàn)中斷事件,且當發(fā)現(xiàn)中斷事件后迫使正在處理器上執(zhí)行的進程暫時停止執(zhí)行,而讓操作系統(tǒng)的中斷處理程序占有處理器去處理出現(xiàn)的中斷事件。對不同的中斷事件,由于它們的性質不同,所以操作系統(tǒng)應采用不同的處理。通過實習了解中斷及中斷處理程序的作用。本實習模擬“時鐘中斷事件”的處理,對其它中斷事件的模擬處理,可根據各中斷事件的性質確定處理原則,制定算法,然后依照本實習,自行設計。三、實習題目模擬時鐘中斷的產生及設計一個對時鐘中斷事件進行處理的模擬程序。提示:(1) 計
2、算機系統(tǒng)工作過程中,若出現(xiàn)中斷事件,硬件就把它記錄在中斷寄存器中。中斷寄存器的每一位可與一個中斷事件對應,當出現(xiàn)某中斷事件后,對應的中斷寄存器的某一位就被置成1。處理器每執(zhí)行一條指令后,必須查中斷寄存器,當中斷寄存器內容不為0時,說明有 中斷事件發(fā)生。硬件把中斷寄存器內容以及現(xiàn)行程序的斷點存在主存的固定單元,且讓操作系統(tǒng)的中斷處理程序占用處理器來處理出現(xiàn)的中斷事件。操作系統(tǒng)分析保存在主存固定單元中的中斷寄存器內容就可知道出現(xiàn)的中斷事件的性質,從而作出相應的處理。本實習中,用從鍵盤讀入信息來模擬中斷寄存器的作用,用計數(shù)器加 1 來模擬處理器執(zhí)行了一條指令。每模擬一條指令執(zhí)行后,從鍵盤讀入信息且分
3、析,當讀入信息=0 時,表示無中斷事件發(fā)生,繼續(xù)執(zhí)行指令;當讀入信息=1 時,表示發(fā)生了時鐘中斷事件,轉時鐘中斷處理程序。(2)假定計算機系統(tǒng)有一時鐘,它按電源頻率(50Hz)產生中斷請求信號,即每隔 20毫秒產生一次中斷請求信號,稱時鐘中斷信號,時鐘中斷的間隔時間(20 毫秒)稱時鐘單位。學生可按自己確定的頻率在鍵盤上鍵入0或1來模擬按電源頻率產生的時鐘中斷信號。(3) 中斷處理程序應首先保護被中斷的現(xiàn)行進程的現(xiàn)場(通用寄存器內容、斷點等),現(xiàn)場信息可保存在進程控制塊中;然后處理出現(xiàn)的中斷事件,根據處理結果修改被中斷進程的狀態(tài);最后轉向處理器調度,由處理器調度選擇可運行的進程,恢復現(xiàn)場使其運
4、行。本實習主要模擬中斷事件的處理,為簡單起見可省去保護現(xiàn)場和處理器調度的工作。(4) 為模擬時鐘中斷的處理,先分析一下時鐘中斷的作用。利用時鐘中斷可計算日歷時鐘,也可作定時鬧鐘等。計算日歷時鐘把開機時的時間(年、月、日、時、分、秒)存放在指定的稱為日歷時鐘的工作單元中,用一計時器累計時鐘中斷次數(shù)。顯然,根據時鐘中斷的次數(shù)和時鐘單位(20 毫秒)以及開機時的日歷時鐘可計算出當前的精確的日歷時鐘(年、月、日、時、分、秒)。因此,可按需要計算出一個作業(yè)裝入時的時間,一個作業(yè)撤離時的時間,終端用戶使用終端的時間,以及其它場合需要確定的時間。定時鬧鐘對需要定時的場合,例如,處理器調度采用時間片輪轉策略調
5、度時,可把輪到運行的進程的時間片值(以時鐘單位計算)送到稱為定時鬧鐘的工作單元中,每產生一次時鐘中斷就把定時鬧鐘值減 1,當該值為0時,表示確定的時間已到,起到定時的作用。(5) 本實習的模擬程序可由兩部分組成,一部分是模擬硬件產生時鐘中斷,另一部分模擬操作系統(tǒng)的時鐘中斷處理程序。模擬程序的算法如圖 1-1。其中,保護現(xiàn)場和處理器調度的工作在編程序時可省去。約定處理器調度總是選擇被中斷進程繼續(xù)執(zhí)行。(6) 按模擬算法設計程序,要求顯示或打印開機時間、定時鬧鐘初值、定時鬧鐘為0時的日歷時鐘。確定三個不同的定時鬧鐘初值,運行設計的程序,觀察得到的結果。四、思考題將進程調度策略結合到本實習中,可選用
6、時間片輪轉的調度策略。給每個進程分配一個相同的時間片,每產生一次時鐘中斷經處理后,被中斷進程時間片減 1,時間片值¹0時,該進程優(yōu)先運行,若時間片值=0 且該進程尚未運行結束,則將它排入隊尾,再給它分配一個時間片,直到所有的進程運行結束。應怎樣設計進程控制塊?各進程的狀態(tài)怎樣變化?在本實習的程序中加入處理器調度程序。五、實習報告(1)實驗說明:首先獲取本機時間,并轉換成字符存儲起來:local = localtime(&t); st=asctime(local);之后記錄初始時間并輸出時間:設置三個定時鬧鐘:之后判斷,鍵盤輸入1則進行中斷處理,輸入0則不中斷處理:·
7、處理后要進行判讀那,三個定時鬧鐘是否到達,若到達,則調用函數(shù)display進行時間計算并顯示:Display函數(shù)如下:(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");/時間存儲在數(shù)組中,從第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+;/模擬一條指令被執(zhí)行,計數(shù)器加1 printf("input a number(1 means an interrupt,0 means no interruptn");scanf("%d"
10、,&w);/讀取鍵盤輸入while(w=0); /如果w一直為0,則程序一直在此循環(huán)執(zhí)行if(w=1) printf(" the sport have been savedn");Timer+;/保護現(xiàn)場,計時器加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出現(xiàn)偏差時的處理m=(int)p;printf("time have passed:%dn",m)
12、;/現(xiàn)在已過時間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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高速充電網絡建設與維護管理合同3篇
- 二零二五版新能源汽車打膠系統(tǒng)合作協(xié)議3篇
- 二零二四外墻真石漆涂裝勞務合同模板規(guī)范版9篇
- 2025年度廠房物業(yè)管理與資產管理合同3篇
- 2025年度新能源汽車關鍵零部件RoHS環(huán)保協(xié)議書3篇
- 二零二四女方提出離婚協(xié)議包含債權債務清算及資產評估合同3篇
- 2025年度差旅服務定制化解決方案合同4篇
- 專用硅酸鹽水泥購銷合同2024版版
- 二零二五年度道路安全標志牌維護與管理合同3篇
- 2025年度咖啡廳店鋪轉讓及飲品制作服務合同3篇
- 《沙盤技術》教學大綱
- (主城一診)重慶市2025年高2025屆高三學業(yè)質量調研抽測 (第一次)地理試卷(含答案)
- 職業(yè)培訓師培訓課件
- (新版)多旋翼無人機超視距駕駛員執(zhí)照參考試題庫(含答案)
- 哈利波特中英文全集
- DLT5210.1-電力建設施工質量驗收及評價規(guī)程全套驗評表格之歐陽法創(chuàng)編
- 500句漢語日常對話
- 《抽搐的鑒別與處理》課件
- 2024-2030年中國凈菜加工行業(yè)產能預測及投資規(guī)模分析報告版
- 自來水廠建設項目可行性研究報告
- 承諾保證協(xié)議
評論
0/150
提交評論