




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)驗(yàn)一時(shí)鐘中斷事件模擬實(shí)習(xí)目的模擬時(shí)鐘中斷的產(chǎn)生及設(shè)計(jì)一個(gè)對時(shí)鐘中斷事件進(jìn)行處理的模擬程序。通過實(shí)習(xí)了解中斷及中斷處理程序的作用。本實(shí)習(xí)模擬“時(shí)鐘中斷事件”的處理,對其它中斷事件的模擬處理,可根據(jù)各中斷事件的性質(zhì)確定處理原則,制定算法。實(shí)習(xí)內(nèi)容現(xiàn)代計(jì)算機(jī)系統(tǒng)的硬件部分都設(shè)有中斷機(jī)構(gòu),它是實(shí)現(xiàn)多道程序設(shè)計(jì)的基礎(chǔ)。中斷機(jī)構(gòu)能發(fā)現(xiàn)中斷事件,且當(dāng)發(fā)現(xiàn)中斷事件后迫使正在處理器上執(zhí)行的進(jìn)程暫時(shí)停止執(zhí)行,而讓操作系統(tǒng)的中斷處理程序占有處理器去處理出現(xiàn)的中斷事件。對不同的中斷事件,由于它們的性質(zhì)不同,所以操作系統(tǒng)應(yīng)采用不同的處理。實(shí)習(xí)原理及編程思想(1)出現(xiàn)中斷事件,硬件就把它記錄在中斷寄存器中。中斷寄存器的每一位可與一個(gè)中斷事件對應(yīng),當(dāng)出現(xiàn)某中斷事件后,對應(yīng)的中斷寄存器的某一位就被置成“1”本實(shí)習(xí)中,用從鍵盤讀入信息來模擬中斷寄存器的作用,用計(jì)數(shù)器加1來模擬處理器執(zhí)行了一條指令當(dāng)讀入信息=0時(shí),表示無中斷事件發(fā)生,繼續(xù)執(zhí)行指令;當(dāng)讀入信息=1時(shí),表示發(fā)生了時(shí)鐘中斷事件,轉(zhuǎn)時(shí)鐘中斷處理程序。(2)計(jì)算機(jī)系統(tǒng)有一時(shí)鐘,按電源頻率(50Hz)產(chǎn)生中斷請求信號(hào),即每隔20毫秒產(chǎn)生一次中斷請求信號(hào),稱時(shí)鐘中斷信號(hào),時(shí)鐘中斷的間隔時(shí)間(20毫秒)稱時(shí)鐘單位。我們可用自己確定的頻率在鍵盤上鍵入“0”或“1(3)中斷處理程序應(yīng)首先保護(hù)被中斷的現(xiàn)行進(jìn)程的現(xiàn)場(通用寄存器內(nèi)容、斷點(diǎn)等),現(xiàn)場信息可保存在進(jìn)程控制塊中;然后處理出現(xiàn)的中斷事件,根據(jù)處理結(jié)果修改被中斷進(jìn)程的狀態(tài);最后轉(zhuǎn)向處理器調(diào)度,由處理器調(diào)度選擇可運(yùn)行的進(jìn)程,恢復(fù)現(xiàn)場使其運(yùn)行。本實(shí)習(xí)主要模擬中斷事件的處理,用打印相應(yīng)的字符代替保護(hù)現(xiàn)場和處理器調(diào)度的工作。(4)為模擬時(shí)鐘中斷的處理,先分析一下時(shí)鐘中斷的作用。利用時(shí)鐘中斷可計(jì)算日歷時(shí)鐘,也可作定時(shí)鬧鐘等。定時(shí)鬧鐘——對需要定時(shí)的場合,例如,處理器調(diào)度采用“時(shí)間片輪轉(zhuǎn)”策略調(diào)度時(shí),可把輪到運(yùn)行的進(jìn)程的時(shí)間片值(以時(shí)鐘單位計(jì)算)送到稱為“定時(shí)鬧鐘”的工作單元中,每產(chǎn)生一次時(shí)鐘中斷就把定時(shí)鬧鐘值減1,當(dāng)該值為“0”時(shí),表示確定的時(shí)間已到,起到定時(shí)的作用。(5)本實(shí)習(xí)的模擬程序可由兩部分組成,一部分是模擬硬件產(chǎn)生時(shí)鐘中斷,另一部分模擬操作系統(tǒng)的時(shí)鐘中斷處理程序。模擬程序的算法如圖其中,保護(hù)現(xiàn)場和處理器調(diào)度的工作在編程序時(shí)可省去。約定處理器調(diào)度總是選擇被中斷進(jìn)程繼續(xù)執(zhí)行。(6)按模擬算法設(shè)計(jì)程序,要求顯示或打印開機(jī)時(shí)間、定時(shí)鬧鐘初值、定時(shí)鬧鐘為“0”時(shí)的日歷時(shí)鐘。確定三個(gè)不同的定時(shí)鬧鐘初值,運(yùn)行設(shè)計(jì)的程序,觀察得到的結(jié)果。實(shí)習(xí)原代碼及注釋#include<time.h>#include<stdio.h>#include<stdlib.h>voidmain(){ doublep; inta,m,r,n,e,o,u;structtm*local; char*st,s[27];time_tt;t=time(NULL);local=localtime(&t);st=asctime(local);//記錄初試時(shí)間 for(inti=0;i<27;i++) { s[i]=*st; st++; } printf("當(dāng)前系統(tǒng)時(shí)間為:\n"); for(i=4;i<27;i++) { printf("%c",s[i]); }printf("這里!\n"); //設(shè)置為時(shí)鐘鬧鈴為8,每個(gè)時(shí)鐘間隔為2秒 intcount=0,count1=0,k=8,w; while(k!=0) { do{ printf("已執(zhí)行完一條指令!\n"); count++; printf("請輸入一個(gè)數(shù)字(1表示中斷,0表示無中斷):\n"); scanf("%d",&w);//讀取鍵盤輸入 }while(w==0);//如果w一直為0,則程序一直在此循環(huán)執(zhí)行 if(w==1)printf("現(xiàn)場保存完畢!\n"); count1++; k--;//對k--,當(dāng)出現(xiàn)8次中斷時(shí) if(k!=0) printf("處理器完成調(diào)度!\n"); } p=count1*2;a=(int)count1*2; if((p-a)>=0.5) p=a+1; elsep=a;//這段代碼是對硬件的模擬,就是當(dāng)count1出現(xiàn)偏差時(shí)的處理 m=(int)p; printf("現(xiàn)在已過時(shí)間為:%d\n",m); r=s[17]-48; n=s[18]-48; e=r*10+n;p=p+e;//下面部分代碼為ASCII碼的轉(zhuǎn)換 if(p<60) { s[17]=((int)p/10)+48; s[18]=((int)p%10)+48; for(i=4;i<27;i++) { printf("%c",s[i]); else { s[14]=s[14]-48; s[15]=s[15]-48; o=s[14]*10+s[15]; o=o+(int)p/60; if(o<60) { s[14]=(o/10)+48;s[15]=(o%10)+48; s[17]=((int)p%60)/10+48;s[18]=((int)p%60)%10+48; for(i=4;i<27;i++) { printf("%c",s[i]); } } else { s[11]=s[11]-48; s[12]=s[12]-48;u=s[11]*10+s[12]; u=u+o/60; if(u<24) { s[11]=u/10+48; s[12]=u%10+48; s[14]=(o%60)/10+48;s[15]=(o%60)%10+48;s[17]=((int)p%60)/10+48;s[18]=((int)p%60)%10+48; for(i=4;i<27;i++) { printf("%c",s[i]);模擬程序運(yùn)行結(jié)果截圖打印當(dāng)前時(shí)間并顯示,然后輸入1作為中斷執(zhí)行八次中斷后,時(shí)鐘鬧鈴到,打印出當(dāng)前時(shí)間:=初試時(shí)間+8*2截圖中可以看出結(jié)果正確??偨Y(jié)與體會(huì)開始接觸實(shí)習(xí)部分的文檔時(shí),不知道在l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國鍍硅鋼卷行業(yè)運(yùn)行狀況及發(fā)展前景分析報(bào)告
- 2025-2030年中國鋰電池鋁塑膜行業(yè)運(yùn)營狀況及發(fā)展前景分析報(bào)告
- 2025-2030年中國鈾資源產(chǎn)業(yè)運(yùn)行動(dòng)態(tài)及發(fā)展趨勢分析報(bào)告
- 2025-2030年中國輕鋼結(jié)構(gòu)行業(yè)十三五規(guī)劃及發(fā)展策略分析報(bào)告
- 2025-2030年中國航空保險(xiǎn)行業(yè)市場深度調(diào)查及投資前景預(yù)測報(bào)告
- 2025-2030年中國羊毛衫市場十三五規(guī)劃及發(fā)展趨勢分析報(bào)告
- 2025-2030年中國稀釋劑市場運(yùn)行狀況及前景趨勢分析報(bào)告
- 2025山西省安全員《C證》考試題庫
- 河北石油職業(yè)技術(shù)大學(xué)《舞弊審計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年重慶市建筑安全員考試題庫
- 人力資源外包合同范本
- 成人重癥患者顱內(nèi)壓增高防控護(hù)理專家共識(shí)2024
- 110KV送出線路工程施工組織設(shè)計(jì)方案和對策
- 城市交通系統(tǒng)中的空間正義問題-深度研究
- 2024年03月江蘇2024年中國工商銀行蘇州分行社會(huì)招考筆試歷年參考題庫附帶答案詳解
- 2024年青島職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫含答案解析
- TSDLPA 0001-2024 研究型病房建設(shè)和配置標(biāo)準(zhǔn)
- 《職業(yè)道德與法治》開學(xué)第一課(導(dǎo)言)(課件)-【中職專用】中職思想政治《職業(yè)道德與法治》高效課堂課件+教案(高教版2023·基礎(chǔ)模塊)
- (正式版)JBT 10437-2024 電線電纜用可交聯(lián)聚乙烯絕緣料
- PI形式發(fā)票范文模板
- 黃岡市2021-2022高一上學(xué)期期末考試數(shù)學(xué)試題及答案
評論
0/150
提交評論