2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、同濟(jì)大學(xué)計(jì)算機(jī)軟件教研室《操作系統(tǒng)》UNIX時(shí)鐘中斷設(shè)備處理子程序源代碼分析時(shí)鐘中斷設(shè)備處理子程序源代碼分析1.基本概念基本概念1.1.相關(guān)全局變量相關(guān)全局變量unixsystm.h0212intlbolttimeofdayin60thnotintime記錄當(dāng)前的時(shí)鐘滴答,一般每到HZ就清零0213inttime[2]timeinsecfrom1970記錄系統(tǒng)時(shí)間,從1970.1.1以來的秒unixparam.h0147#defineH

2、Z60Tickssecondoftheclock,每秒鐘時(shí)鐘中斷的次數(shù)1.2.函數(shù)定義函數(shù)定義時(shí)鐘中斷的設(shè)備處理子程序?yàn)閏lock,是C語言編寫的,位于clock.c文件中。函數(shù)原型函數(shù)原型:voidclock(intdevintspintr1intnpsintr0intpcintps)功能描述功能描述:時(shí)鐘中斷的C語言處理函數(shù)。它的主要功能包括:(1)調(diào)度、觸發(fā)內(nèi)核定時(shí)器;(2)系統(tǒng)計(jì)時(shí);(3)如果睡眠時(shí)間已到,喚醒調(diào)用sleep進(jìn)入

3、睡眠的進(jìn)程;(4)每隔4秒,設(shè)置調(diào)度標(biāo)志runrun,并且喚醒掛起在lbolt上的進(jìn)程,實(shí)際就是調(diào)用紙帶打孔機(jī)初始化函數(shù)而沒有完成的進(jìn)程;(5)更新進(jìn)程駐留在內(nèi)存或磁盤上的時(shí)間;(6)更新進(jìn)程執(zhí)行時(shí)間;(7)調(diào)整進(jìn)程優(yōu)先數(shù)p_pri,如果有進(jìn)程優(yōu)先數(shù)被調(diào)后低于當(dāng)前進(jìn)程優(yōu)先數(shù),則設(shè)置調(diào)度標(biāo)志runrun;(8)更新進(jìn)程統(tǒng)計(jì)直方圖中的CPU使用信息;(9)最后判斷進(jìn)程是否接收到信號(hào)signal,如果接收到,則處理該信號(hào)。參數(shù)說明參數(shù)說明:(

4、1)dev:當(dāng)前ps的最后5位,它主要在trap函數(shù)中標(biāo)識(shí)自陷類型。對于本中斷并沒有作用。(2)sp:先前態(tài)下的棧指針。(3)r1:進(jìn)入中斷函數(shù)前寄存器r1的值。(4)nps:當(dāng)前ps寄存器的值(5)r0:進(jìn)入中斷函數(shù)前寄存器r0的值;(6)pc:中斷函數(shù)的返回地址(7)ps:中斷前ps寄存器的值2.代碼分析代碼分析3700#3701#include“..param.h“3702#include“..systm.h“3703#inclu

5、de“..user.h“3704#include“..proc.h“3705同濟(jì)大學(xué)計(jì)算機(jī)軟件教研室《操作系統(tǒng)》3776p2c_arg=p1c_arg3777p13778p237793780378137823783lightningbolttimeout3784timeofday378537863787out:3788if((ps用戶態(tài)下運(yùn)行時(shí)間(時(shí)鐘滴答數(shù))13790if(u.u_prof[3])當(dāng)前進(jìn)程用戶態(tài)代碼是否需要指令直方圖統(tǒng)

6、計(jì)3791incupc(psu.u_prof)如果需要,則調(diào)用incupc計(jì)算直方圖3792else如果中斷前為核心態(tài)3793u.u_stime核心態(tài)下運(yùn)行時(shí)間(時(shí)鐘滴答數(shù))13794pp=u.u_procppp指向當(dāng)前進(jìn)程的proc3795if(ppp_cpu==0)使p_cpu增1,其為字符型變量,最大值為255;若超出,3796ppp_cpu則減1維持在2553797if(lbolt=HZ)lbolt加1,記錄中斷次數(shù),若小于HZ

7、,即未到1秒,程序3979結(jié)束;否側(cè),進(jìn)行后續(xù)處理(后續(xù)操作1秒鐘執(zhí)行1次)3798if((ps3800lbolt=HZlbolt減去HZ3801if(time[1]==0)系統(tǒng)時(shí)間加1秒,如果低16位計(jì)數(shù)滿(time[1]==0)3802time[0]則高16位(time[0])加13803spl1()處理機(jī)優(yōu)先級降為1,即打開中斷3804if(time[1]==tout[1]喚醒因?yàn)檎{(diào)用sleep(intsec)而睡眠的進(jìn)程3806

8、if((time[1]每隔4秒強(qiáng)制進(jìn)行一次進(jìn)程調(diào)度3808wakeup(喚醒因lbolt睡眠的進(jìn)程(打開紙帶打孔機(jī)的進(jìn)程)38093810f(pp=ppp_stat)如果該進(jìn)程存在,則3812if(ppp_time!=127)p_time的值加13813ppp_time3814if((ppp_cpuelsep_cpu的值減去SCHMAG,否則3816ppp_cpu=0p_cpu清零3817if(ppp_priPUSER)如果進(jìn)程的p_p

9、ri的值大于PUSER(用戶態(tài)進(jìn)程)3818setpri(pp)則重新計(jì)算該進(jìn)程的優(yōu)先數(shù)38193820if(runin!=0)因?yàn)樗羞M(jìn)程的p_time都發(fā)生了變化,3820如果runin標(biāo)志位被設(shè)置的話,此處喚醒0#進(jìn)程進(jìn)行進(jìn)程3821runin=0圖象的內(nèi)外存交換3822wakeup(38233824if((ps把r0值所在的棧地址賦給u.u_ar03826if(issig())如果接收到信號(hào)3827psig()進(jìn)入信號(hào)處理382

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論