清華計(jì)算機(jī)操作系統(tǒng):第13章ppt課件.ppt

清華計(jì)算機(jī)操作系統(tǒng):第13章ppt課件.ppt

ID:59037016

大小:380.00 KB

頁(yè)數(shù):67頁(yè)

時(shí)間:2020-09-26

清華計(jì)算機(jī)操作系統(tǒng):第13章ppt課件.ppt_第1頁(yè)
清華計(jì)算機(jī)操作系統(tǒng):第13章ppt課件.ppt_第2頁(yè)
清華計(jì)算機(jī)操作系統(tǒng):第13章ppt課件.ppt_第3頁(yè)
清華計(jì)算機(jī)操作系統(tǒng):第13章ppt課件.ppt_第4頁(yè)
清華計(jì)算機(jī)操作系統(tǒng):第13章ppt課件.ppt_第5頁(yè)
資源描述:

《清華計(jì)算機(jī)操作系統(tǒng):第13章ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、第13章一個(gè)小型操作系統(tǒng)的實(shí)現(xiàn)本章知識(shí)點(diǎn):13.1MINIX概述13.2進(jìn)程13.3I/O任務(wù)13.4內(nèi)存管理13.5文件系統(tǒng)1在本章中,為了使讀者了解到一個(gè)“真正”的操作系統(tǒng)是怎樣一步步構(gòu)造出來(lái)的,我們將以MINIX操作系統(tǒng)為例,對(duì)其設(shè)計(jì)方法進(jìn)行介紹,并對(duì)其源代碼進(jìn)行簡(jiǎn)單分析。因?yàn)镸INIX的源代碼是公開(kāi)的,有興趣的讀者還可以自己動(dòng)手加以改造。213.1MINIX概述MINIX操作系統(tǒng)最早出現(xiàn)于20世紀(jì)80年代,由美國(guó)著名學(xué)者A.S.Tanenbaum用c語(yǔ)言編制。它從外部看來(lái)和UNIX非常相似,但實(shí)際上,MINIX的內(nèi)部完全是經(jīng)過(guò)重新設(shè)計(jì)的。它的主體部分設(shè)

2、計(jì)為幾個(gè)相對(duì)獨(dú)立的模塊,模塊間依賴消息進(jìn)行通訊,這樣的模塊化結(jié)構(gòu)使得對(duì)它的理解和修改都更方便。本章中將介紹基于POSIX(國(guó)際標(biāo)準(zhǔn)9945-1)的MINIX2.0版本,它可以運(yùn)行于基于80x86結(jié)構(gòu)的兼容機(jī)系列。313.1.1MINIX的組成結(jié)構(gòu)1.MINIX的四層結(jié)構(gòu)MINIX的整個(gè)系統(tǒng)被分為4個(gè)層次:413.1.1MINIX的組成結(jié)構(gòu)需要特別介紹的是位于用戶進(jìn)程層次的MINIX的命令解釋器shell。命令解釋器并不是操作系統(tǒng)的一部分,它本身就是一個(gè)計(jì)算機(jī)程序,用C語(yǔ)言編寫(xiě),為協(xié)助用戶與操作系統(tǒng)之間通訊而設(shè)計(jì),管理用戶與核心(kernel)之間的對(duì)話,并把操

3、作系統(tǒng)指令換成機(jī)器代碼。513.1.1MINIX的組成結(jié)構(gòu)Shell通常利用終端作為標(biāo)準(zhǔn)輸入輸出設(shè)備。但是我們也可以利用以下的命令改變輸入輸出:verfileb,這條命令的意思是調(diào)用程序ver,從filea文件取輸入,送輸出到fileb文件。如果再利用管道,則可以將一個(gè)程序的輸出作為另一個(gè)程序的輸入,例如:ver>/dev/lp,是將執(zhí)行ver程序的結(jié)果從/dev/lp文件上輸出。啟動(dòng)shell將首先顯示系統(tǒng)提示符$,然后等待,假設(shè)用戶輸入命令move,shell讀取該命令后,自動(dòng)創(chuàng)建一個(gè)新進(jìn)程來(lái)執(zhí)行這個(gè)命令。命令執(zhí)行完畢后,它再執(zhí)行一個(gè)系統(tǒng)調(diào)用

4、來(lái)終止這個(gè)進(jìn)程,繼續(xù)等待用戶的下一個(gè)輸入。613.1.1MINIX的組成結(jié)構(gòu)shell還可以用來(lái)進(jìn)行程序設(shè)計(jì),它定義了各種變量和參數(shù),并提供了包括循環(huán)與分支在內(nèi)的,許多在高級(jí)語(yǔ)言中才具有的控制結(jié)構(gòu)。使用shell編程類似于編輯DOS中的批處理文件,我們可以將一組我們想要執(zhí)行的命令放在一個(gè)文件中,然后像執(zhí)行其他程序一樣運(yùn)行這個(gè)文件。這個(gè)文件就被稱為shell程序或shell命令文件,又被稱為shellscript。當(dāng)這個(gè)文件被運(yùn)行時(shí),shell就會(huì)像執(zhí)行輸入命令那樣一條條的自動(dòng)執(zhí)行文件里保存的命令。713.1.1MINIX的組成結(jié)構(gòu)2.源代碼組織方式MINIX的

5、源代碼在邏輯上一般分為兩個(gè)目錄…/usr/include和…/usr/src/(為敘述方便,將簡(jiǎn)記為include/和src/)。813.1.1MINIX的組成結(jié)構(gòu)程序在內(nèi)存中運(yùn)行時(shí),各個(gè)模塊的分布情況:913.1.2頭文件在編程的過(guò)程中,有許多常量、宏以及結(jié)構(gòu)類型的定義會(huì)經(jīng)常被不同文件用到,通常把這些定義按照某種規(guī)則或需要組織在一起,于是就構(gòu)成了頭文件(header),以后綴.h標(biāo)識(shí)。1.公共頭文件在頭文件中,有一些是完全通用的,它們不是被源文件直接引用,而是被其它的頭文件引用。MINIX中的三個(gè)主要部分:內(nèi)核、文件系統(tǒng)和內(nèi)存管理分別對(duì)應(yīng)有三個(gè)主控頭文件sr

6、c/kernel/kernel.h、src/mm/mm.h和src/fs/fs.h。1013.1.2頭文件①在include/目錄下,有三個(gè)被主控目錄包含的頭文件:ansi.h:用來(lái)測(cè)試編譯器是否符合標(biāo)準(zhǔn)c的規(guī)定。整個(gè)文件的構(gòu)造以#ifndef_ANSI_H為開(kāi)始,并以#endif結(jié)束;limits.h:定義了一些基本的數(shù)據(jù)值的大小,比如:數(shù)據(jù)類型中的整形數(shù)所占位數(shù)的值等;errno.h:包含了全局變量errno返回的錯(cuò)誤碼,用于系統(tǒng)調(diào)用失敗時(shí)通知用戶程序。1113.1.2頭文件②下面來(lái)看看include/sys目錄下有哪些主要的頭文件。由于同一種數(shù)據(jù)類型在1

7、6位和32位處理器上所占的字長(zhǎng)可能存在差異,因而可能因錯(cuò)誤理解在特定情況下使用的基本數(shù)據(jù)結(jié)構(gòu)而引發(fā)問(wèn)題。在文件types.h中定義了許多MINIX使用的數(shù)據(jù)類型及其相關(guān)的數(shù)值,從而可以避免這種情況的發(fā)生。通常緊跟在types.h之后的是ansi.h頭文件,它們都被所有主控頭文件包含。1213.1.2頭文件2.專有頭文件除了公共頭文件之外,在include/minix中存放的是在任何平臺(tái)上實(shí)現(xiàn)MINIX都需要的頭文件,而include/ibm中則存放了在IBM兼容機(jī)上實(shí)現(xiàn)MINIX所需的數(shù)據(jù)結(jié)構(gòu)和宏的定義。在include/ibm目錄中主要有兩個(gè)文件:diskp

8、arm.h文件由軟盤系統(tǒng)任務(wù)使用;pa

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。