freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

操作系統(tǒng)課程設(shè)計(jì)實(shí)驗(yàn)大綱畢業(yè)論文-展示頁

2025-07-07 09:51本頁面
  

【正文】 序用它來讀取和修改寫在所有存儲(chǔ)設(shè)備上的文件。設(shè)備驅(qū)動(dòng)程序的API與文件管理程序的文件操作API相同?! ‘?dāng)機(jī)器引導(dǎo)時(shí),設(shè)備驅(qū)動(dòng)程序通常被注冊(cè)到操作系統(tǒng)中。緩沖被用于塊設(shè)備而不是字符設(shè)備。從碼(從設(shè)備號(hào))用于在使用特定設(shè)備驅(qū)動(dòng)程序的物理設(shè)備之間進(jìn)行區(qū)分?! ≡O(shè)備驅(qū)動(dòng)程序和設(shè)備通過使用主從碼字來引用。5.設(shè)備管理  在Linux中有兩種基本的設(shè)備管理方法可用:由于i386微處理器和兼容的MMU沒有足夠的硬件支持完整的三級(jí)變換過程,所以在這種體系結(jié)構(gòu)中只實(shí)現(xiàn)了兩級(jí)變換。頁表偏移,頁目錄偏移,在通用模型中,一個(gè)虛擬地址通過三級(jí)映射變換為物理地址。  地址變換。如果仍不能滿足塊請(qǐng)求,頁面管理程序就開始通過使用近似的全局最近最少使用(LRU)替代算法查看所有分配用于容納虛擬地址空間的用戶空間部分的頁框。如果沒有可用的塊,頁面管理程序試圖釋放空間。當(dāng)進(jìn)程引用一個(gè)缺頁時(shí),存儲(chǔ)管理程序?qū)⒃擁搹妮o存拷貝到主存中。如果進(jìn)程在用戶空間執(zhí)行,那么段選擇器被設(shè)置為user;如果在內(nèi)核段執(zhí)行,則選擇器被設(shè)置為kernel。每個(gè)內(nèi)核和用戶段又進(jìn)一步劃分為代碼段和數(shù)據(jù)段。通過內(nèi)存層次,在輔存和主存之間向前向后移動(dòng)頁面來自動(dòng)控制移動(dòng)。內(nèi)存共享基于頁。保護(hù)機(jī)制以單頁為基礎(chǔ)。以物理內(nèi)存頁框?yàn)閱挝贿M(jìn)行塊的分配和回收。內(nèi)核和硬件一起保證了虛擬內(nèi)存地址的內(nèi)容被放入到物理內(nèi)存,并且保證相應(yīng)的虛擬地址在被進(jìn)程引用時(shí)綁定到正確的物理內(nèi)存。在該模型中,每個(gè)進(jìn)程分配其自身的虛擬地址空間。  保護(hù)機(jī)制有兩種形式:地址空間隔離和文件保護(hù)。外部同步機(jī)制是基于事件模型?! inux中使用兩種不同的同步機(jī)制,一種在內(nèi)核代碼自身內(nèi)部,另一種為用戶進(jìn)程提供同步機(jī)制。Linux的調(diào)度程序負(fù)責(zé)在內(nèi)存中選擇處于TASK_RUNNING狀態(tài)的進(jìn)程,為之分配CPU。當(dāng)然,execve()系統(tǒng)調(diào)用也將極大的影響進(jìn)程描述符的內(nèi)容,因?yàn)檫@樣會(huì)加載進(jìn)程并執(zhí)行一個(gè)與調(diào)用execve()時(shí)所執(zhí)行程序不同的程序。  Linux內(nèi)核負(fù)責(zé)處理進(jìn)程調(diào)度的程序(像內(nèi)核中的所有其他部分一樣)只有在一個(gè)進(jìn)程或者因?yàn)橄到y(tǒng)調(diào)用或者因?yàn)橹袛嚅_始以管態(tài)執(zhí)行時(shí)才能執(zhí)行。類似的,資源管理程序涉及創(chuàng)建合適的抽象來代表一個(gè)進(jìn)程可能請(qǐng)求的實(shí)體(并在資源不可得時(shí)阻塞它們的執(zhí)行)。因此用戶進(jìn)程通過該shell數(shù)據(jù)段和堆棧段的唯一拷貝執(zhí)行一個(gè)shell程序。如果本次驗(yàn)證成功,那么login進(jìn)程改變當(dāng)前目錄到用戶主目錄并執(zhí)行指定的shell程序以便用戶通過shell直接與login進(jìn)程進(jìn)行交互。當(dāng)用戶開始使用該端口時(shí),getty運(yùn)行l(wèi)ogin程序,期望一個(gè)用戶標(biāo)識(shí)出現(xiàn)在第1行并且一個(gè)口令出現(xiàn)在第2行。這些進(jìn)程將運(yùn)行g(shù)etty程序的一個(gè)拷貝。初始進(jìn)程有時(shí)也稱為空閑進(jìn)程(idle process)。在內(nèi)核初始化完成以后,初始進(jìn)程的唯一職責(zé)就是使用空閑CPU時(shí)間。然后硬件進(jìn)程創(chuàng)建初始進(jìn)程(initial process)。計(jì)算機(jī)通過設(shè)置CPU為管態(tài)并轉(zhuǎn)移到在內(nèi)核中的主入口點(diǎn)準(zhǔn)備啟動(dòng)內(nèi)核。在這種情況下,LILO將會(huì)被載入到引導(dǎo)記錄中以使BIOS在POST之后運(yùn)行它。Windows操作系統(tǒng)可以通過標(biāo)識(shí)一個(gè)分區(qū)為活動(dòng)分區(qū)來處理多分區(qū)磁盤,系統(tǒng)總是從活動(dòng)分區(qū)引導(dǎo)。 引導(dǎo)過程  一臺(tái)i386計(jì)算機(jī)可以通過一張引導(dǎo)記錄包含Linux引導(dǎo)程序而不是Windows操作系統(tǒng)引導(dǎo)程序的Linux引導(dǎo)盤來引導(dǎo)Linux。習(xí)慣上,守護(hù)進(jìn)程是執(zhí)行名字以字符“d”結(jié)尾的程序。這類代碼可能在內(nèi)核中導(dǎo)致死鎖。競爭狀態(tài)不會(huì)發(fā)生。這種類型的內(nèi)核是單線程(singlethreaded)的,因?yàn)樵谌魏螘r(shí)刻(忽略ISR)在內(nèi)核中只允許一個(gè)執(zhí)行線程在執(zhí)行。利用陷阱指令和stub過程可以實(shí)現(xiàn)由用戶空間向內(nèi)核空間的安全轉(zhuǎn)換。stub被鏈接到用戶空間正調(diào)用的程序。陷阱指令并不是一條特權(quán)指令,因此任何程序都可以執(zhí)行一條陷阱指令。存在一個(gè)問題,如何由用戶進(jìn)程(處在用戶態(tài))切換到內(nèi)核代碼(處在管態(tài))?  具有模式位的CPU通常也具有硬件陷阱指令。在Linux中。 Linux的中斷機(jī)制  同i386體系結(jié)構(gòu)中的中斷機(jī)制,使用cli()和sti()兩個(gè)內(nèi)核函數(shù)來清除和設(shè)置中斷啟用標(biāo)志。硬件設(shè)備日益發(fā)展,不斷包括更新的設(shè)備,完全在一個(gè)設(shè)備驅(qū)動(dòng)程序中提供適當(dāng)?shù)膬?nèi)核支持變得日益困難。在一些情況下,兩個(gè)或更多進(jìn)程需要共享一個(gè)資源,Linux采用有控制的共享策略。Linux和其他現(xiàn)代操作系統(tǒng)用模式位來確保對(duì)系統(tǒng)資源,包括CPU、內(nèi)存和設(shè)備的獨(dú)占使用。操作系統(tǒng)必須包含一個(gè)部件來負(fù)責(zé)接收使用每個(gè)資源的請(qǐng)求、為一個(gè)進(jìn)程分配資源,以及當(dāng)一個(gè)進(jìn)程釋放資源時(shí)進(jìn)行回收。資源管理有兩個(gè)關(guān)鍵的方面:對(duì)獲得資源的競爭和對(duì)獨(dú)占使用的確保。UNIX試圖將除CPU和可執(zhí)行內(nèi)存之外的每一種資源視為一個(gè)文件。另一種系統(tǒng)資源是CPU。資源管理是創(chuàng)建資源抽象以及在進(jìn)程執(zhí)行時(shí)為它們分配和回收系統(tǒng)資源的過程。進(jìn)程抽象使得操作系統(tǒng)能夠控制一個(gè)程序中的每個(gè)實(shí)例的執(zhí)行。Linux將計(jì)算機(jī)部件抽象為進(jìn)程和資源。因?yàn)長inux實(shí)現(xiàn)的是一種UNIX方式的接口,資源抽象和共享模型的通用定義已經(jīng)被確定了。首先,內(nèi)核執(zhí)行時(shí)CPU處于管態(tài);其次,所有其他操作系統(tǒng)部件執(zhí)行時(shí)CPU處于用戶態(tài)。所有實(shí)驗(yàn)完成后,將在計(jì)算機(jī)上安裝一個(gè)可用的Linux操作系統(tǒng),并完成至少一個(gè)的可調(diào)試內(nèi)核。二、實(shí)驗(yàn)內(nèi)容  本實(shí)驗(yàn)側(cè)重于Linux操作系統(tǒng)的認(rèn)識(shí)、應(yīng)用,并對(duì)Linux內(nèi)核進(jìn)行初步探索。  編譯環(huán)境:伴隨著操作系統(tǒng)的默認(rèn)gcc環(huán)境?!恫僮飨到y(tǒng)課程設(shè)計(jì)》實(shí)驗(yàn)指導(dǎo)手冊(cè)蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2009年9月目 錄一、實(shí)驗(yàn)環(huán)境二、實(shí)驗(yàn)內(nèi)容三、準(zhǔn)備知識(shí)四、實(shí)驗(yàn)步驟 實(shí)驗(yàn)一 安裝Red Hat Linux 實(shí)驗(yàn)二 編譯Linux內(nèi)核 實(shí)驗(yàn)三 觀察Linux行為 實(shí)驗(yàn)四 系統(tǒng)調(diào)用一、實(shí)驗(yàn)環(huán)境  硬件平臺(tái):普通PC機(jī)硬件環(huán)境。  操作系統(tǒng):Linux環(huán)境,Red Hat Linux ,啟動(dòng)管理器使用LILO?! 」ぷ髟创a環(huán)境:一個(gè)調(diào)試的內(nèi)核源碼。實(shí)驗(yàn)分為四個(gè)部分,每個(gè)部分大約2次實(shí)驗(yàn)。1.安裝Red Hat Linux2.編譯Linux內(nèi)核3.觀察Linux行為4.系統(tǒng)調(diào)用三、準(zhǔn)備知識(shí)1.Linux的內(nèi)核  Unix操作系統(tǒng)家族將功能分為兩類。內(nèi)核負(fù)責(zé)抽象與管理一臺(tái)機(jī)器的硬件資源以及這些資源在執(zhí)行程序之間的共享?! ≠Y源抽象(Resource abstraction)是指編寫軟件(通常情況)來簡化必須應(yīng)用于硬件的操作以使該硬件能恰當(dāng)?shù)墓ぷ?。一個(gè)進(jìn)程是執(zhí)行一個(gè)目標(biāo)程序的CPU操作的一個(gè)抽象。操作系統(tǒng)中的所有執(zhí)行進(jìn)程抽象的所有方面稱為進(jìn)程管理。RAM是一種系統(tǒng)資源。內(nèi)核的其他資源包括系統(tǒng)的所有設(shè)備,它們具有各自的抽象模型?! inux中,一個(gè)進(jìn)程使用資源時(shí),通常需要對(duì)該資源的獨(dú)占使用。對(duì)資源的競爭由資源管理程序控制。如不能滿足進(jìn)程的資源請(qǐng)求,則阻塞該進(jìn)程。模式位使系統(tǒng)可以工作在管態(tài)(supervisor mode)或用戶態(tài)(user mode)。2.內(nèi)核的組織結(jié)構(gòu)  Linux內(nèi)核被設(shè)計(jì)和實(shí)現(xiàn)為單內(nèi)核。Linux通過一個(gè)新的“容器”,稱為模塊(module),來解決這個(gè)問題,在模塊中執(zhí)行內(nèi)核主要部分的擴(kuò)展。 使用Linux的內(nèi)核服務(wù)  用戶將內(nèi)核看作一個(gè)大的抽象數(shù)據(jù)類型(ADT),它保持狀態(tài)并在其公共接口——系統(tǒng)調(diào)用接口上提供大量函數(shù)。一個(gè)系統(tǒng)調(diào)用發(fā)生時(shí),用戶進(jìn)程執(zhí)行內(nèi)核代碼。陷阱指令(trap instruction)是一條用于將CPU轉(zhuǎn)移到一個(gè)預(yù)定地址(有時(shí)作為一個(gè)指令操作數(shù)的函數(shù))并將其自身切換為管態(tài)的指令。對(duì)于系統(tǒng)調(diào)用F,stub過程用于調(diào)用F。一個(gè)進(jìn)程在運(yùn)行期間執(zhí)行對(duì)F的調(diào)用,控制被轉(zhuǎn)換到stub過程而不是直接轉(zhuǎn)換到內(nèi)核。 串行執(zhí)行  Linux的內(nèi)核函數(shù)執(zhí)行時(shí)處在一個(gè)臨界區(qū),即,一旦進(jìn)程調(diào)用一個(gè)系統(tǒng)函數(shù),該函數(shù)通常要運(yùn)行到結(jié)束并在CPU分配給不同的進(jìn)程之前返回,但是中斷除外。這至少有兩個(gè)重要的意義:1.一個(gè)內(nèi)核函數(shù)可以更新各種內(nèi)核數(shù)據(jù)結(jié)構(gòu)而不用擔(dān)心另一個(gè)進(jìn)程會(huì)中斷它的執(zhí)行并改變相同的數(shù)據(jù)結(jié)構(gòu)。2.在編寫一個(gè)新的內(nèi)核函數(shù)時(shí),始終注意不能編寫可能阻塞并等待消息或其他只有某些另外的進(jìn)程才能釋放的資源的代碼。 守護(hù)進(jìn)程  當(dāng)一臺(tái)Linux機(jī)器啟動(dòng)時(shí),幾個(gè)稱作守護(hù)進(jìn)程(daemon)的對(duì)用戶透明的進(jìn)程也被啟動(dòng),并且它們的存在對(duì)操作系統(tǒng)的正確運(yùn)行是必需的。通過在shell里敲入以下命令來觀察哪些守護(hù)進(jìn)程正在Linux機(jī)器上運(yùn)行:    ps aux | more典型情況下,將發(fā)現(xiàn)syslogd、klogd、crond和lpd在系統(tǒng)上運(yùn)行。對(duì)于一個(gè)分區(qū)的硬盤來說,裝載處于不同分區(qū)的不同操作系統(tǒng)是可能的。Linux提供一個(gè)可以存放在系統(tǒng)引導(dǎo)記錄中的特殊Linux裝載程序(LILO)使用戶在引導(dǎo)時(shí)可以選擇活動(dòng)分區(qū)。  在POST之后,引導(dǎo)記錄已經(jīng)被讀取,并且裝載程序已經(jīng)將操作系統(tǒng)放入主存,引導(dǎo)過程開始運(yùn)行內(nèi)核代碼以初始化計(jì)算機(jī)硬件。內(nèi)核初始化陷阱列表、中斷處理程序、調(diào)度程序等,并初始化管理程序。初始進(jìn)程創(chuàng)建第一個(gè)有用的Linux進(jìn)程來運(yùn)行init程序并開始執(zhí)行一個(gè)空閑周期。也就是說,當(dāng)沒有其他進(jìn)程想要使用CPU時(shí)它將占用CPU。 登錄到機(jī)器  在初始化時(shí),內(nèi)核在每個(gè)可以用于支持用戶登錄的通信端口創(chuàng)建一個(gè)進(jìn)程。getty進(jìn)程初始化自身后等待用戶使用這個(gè)端口。一旦端口的login程序得到了標(biāo)識(shí)和口令,它通過系統(tǒng)的/etc/passwd文件確認(rèn)用戶的身份。一個(gè)登錄到UNIX機(jī)器的用戶只是使用一個(gè)在機(jī)器啟動(dòng)時(shí)創(chuàng)建的進(jìn)程。3.進(jìn)程與資源管理  進(jìn)程管理程序負(fù)責(zé)創(chuàng)建程序員使用的進(jìn)程抽象并提供措施以便一個(gè)進(jìn)程可以創(chuàng)建、銷毀、同步和保護(hù)其他進(jìn)程。除抽象外,資源管理程序必須提供一個(gè)進(jìn)程用來請(qǐng)求、獲得和釋放資源的接口。Linux中父進(jìn)程通過fork()系統(tǒng)調(diào)用創(chuàng)建一個(gè)新的任務(wù)/進(jìn)程。Linux內(nèi)核還包括一個(gè)系統(tǒng)調(diào)用clone()來支持線程。schedule()內(nèi)核函數(shù)可以通過中斷來調(diào)用,它也作為ret_from_sys_call代碼塊的一部分來調(diào)用,所以它總是作為一個(gè)與用戶進(jìn)程或中斷相關(guān)的任務(wù)來運(yùn)行。內(nèi)核中的同步主要是保證在當(dāng)前內(nèi)核代碼處于臨界部分時(shí)不會(huì)產(chǎn)生中斷。  用戶可以通過以下四種方式使用內(nèi)核來執(zhí)行IPC:管道(和命名管道),System V IPC,System V共享內(nèi)存,套接字。4.存儲(chǔ)管理  Linux使用請(qǐng)求分頁虛擬內(nèi)存模型作為內(nèi)存管理設(shè)計(jì)的基礎(chǔ)。進(jìn)程引用虛擬地址,系統(tǒng)在訪問內(nèi)存地址之前將每個(gè)這種引用映射成一個(gè)主(也稱為物理)內(nèi)存地址。內(nèi)存管理程序履行如下一些常見職責(zé):  虛擬地址空間被劃分成段:3GB的用戶段和1GB的內(nèi)核段。每當(dāng)進(jìn)程執(zhí)行時(shí),它的狀態(tài)包括一個(gè)段選擇器。  缺頁處理。裝入一頁到內(nèi)存頁框中時(shí),存儲(chǔ)管理程序首先試圖通過調(diào)用一個(gè)內(nèi)部內(nèi)核函數(shù)__get_free_pages()來為進(jìn)程獲得一塊新的頁框。首先是否存在可以從緩沖區(qū)中回收的塊,下一步試圖回收為System V共享內(nèi)存保留的頁框。從物理內(nèi)存中移出一個(gè)頁面時(shí),頁面管理程序需要查看它是否是臟(dirty)的。Linux超越當(dāng)今的CPU和內(nèi)存管理單元(MMU)定義了一個(gè)獨(dú)立于體系結(jié)構(gòu)的存儲(chǔ)模型,因此它包含沒有用于i386實(shí)現(xiàn)的部件。一個(gè)虛擬地址j被劃分為4個(gè)部分:頁中間目錄偏移,頁內(nèi)偏移,如果將一個(gè)頁面加載到物理內(nèi)存中,虛擬地址j對(duì)應(yīng)的物理地址i由下式?jīng)Q定:  i = PTE ( PMD ( PGD ( ) + ) + ) + 這里PTE代表頁表,PMD代表頁中間目錄表,PGD代表頁目錄表。這是通過將每個(gè)中間目錄減少到一個(gè)表項(xiàng)來實(shí)現(xiàn)的。采用輪詢判斷何時(shí)設(shè)備完成了一個(gè)操作。采用中斷。主碼(主設(shè)備號(hào))與每個(gè)Linux內(nèi)核將使用的設(shè)備驅(qū)動(dòng)程序相關(guān)聯(lián)。UNIX設(shè)備傳統(tǒng)上分成塊設(shè)備和字符設(shè)備。Linux保持了這種基本區(qū)別,但兩種設(shè)備類型API之間的差別比UNIX系統(tǒng)中要小得多。一個(gè)內(nèi)核函數(shù)被用于注冊(cè)設(shè)備。UNIX試圖將每一種設(shè)備視為一個(gè)文件。每類存儲(chǔ)設(shè)備在它的文件管理程序中實(shí)現(xiàn)相同的視圖。文件管理程序中一個(gè)與文件系統(tǒng)獨(dú)立的部分處理普通工作,如檢查訪問權(quán)限和決定何時(shí)需要讀寫磁盤塊。兩部分結(jié)合起來使得在處理磁盤上的文件時(shí),Linux在API級(jí)別提供了一組固定的操作,即使文件使用Windows OS、MINIX或其他操作系統(tǒng)寫入。VFS執(zhí)行與系統(tǒng)獨(dú)立的文件操作,操作系統(tǒng)設(shè)計(jì)人員對(duì)VFS提供了擴(kuò)展以完成所有需要的與文件系統(tǒng)相關(guān)的操作。轉(zhuǎn)換(switch)為用戶空間程序提供了標(biāo)準(zhǔn)文件管理程序API并建立內(nèi)部接口,該接口由支持MSDOS、MINIX、Ext2等文件的不同文件系統(tǒng)翻譯程序所使用?! ∫粋€(gè)VFS文件描述符稱為一個(gè)inode。相反,文件關(guān)閉時(shí),內(nèi)部inode的內(nèi)容被用于更新外部文件描述符?! ⊙b載文件系統(tǒng)。VFS采用傳統(tǒng)的UNIX機(jī)制,允許這些文件系統(tǒng)能結(jié)合到系統(tǒng)的目錄層次?! 〈蜷_文件。搜索可能是一個(gè)擴(kuò)展的過程。因此搜索可能從,如一個(gè)Ext2文件系統(tǒng)開始,但最終在一個(gè)MSDOS文件系統(tǒng)中找到文件。文件結(jié)構(gòu)表項(xiàng)在主存中創(chuàng)建以后,它引用VFS的inode。當(dāng)文件打開時(shí),創(chuàng)建struct file的一個(gè)實(shí)例。指定read()、write()、lseek()、select()等函數(shù)的入口點(diǎn),它們用于執(zhí)行與系統(tǒng)相關(guān)的文件I/O操作。這些實(shí)例的實(shí)質(zhì)目標(biāo)是在用戶空間和輔存之間移動(dòng)信息。Linux試圖使用最大限度的內(nèi)存來提供I/O緩沖區(qū)。下面列出一些可能對(duì)你有幫助的站點(diǎn):  學(xué)習(xí)Linux內(nèi)部結(jié)構(gòu)的人必須閱讀源代碼。另外,應(yīng)該在實(shí)驗(yàn)室的機(jī)器上有一份源代碼的拷貝。也就是說,linux是包含所有源代碼子樹的根目錄。 Linux的官方網(wǎng)站 永遠(yuǎn)的Unix Linux文檔項(xiàng)目 去搜索你要的東西吧:) 四、實(shí)驗(yàn)步驟實(shí)驗(yàn)一 安裝Red Hat Linux   本實(shí)驗(yàn)使用圖形化、基于鼠標(biāo)的安裝程序,
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1