




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、作為計算機專業(yè)的核心課程之一,計算機操作系統(tǒng)課程主要講授現(xiàn)代操作系統(tǒng)經(jīng)典的實現(xiàn)原理、方法、算法和相關(guān)數(shù)據(jù)結(jié)構(gòu),幫助學(xué)生建立系統(tǒng)級概念,并將操作系統(tǒng)的實現(xiàn)原理用于應(yīng)用軟件和系統(tǒng)軟件的設(shè)計與開發(fā)。我校計算機操作系統(tǒng)教學(xué)除了注重知識和專業(yè)能力培養(yǎng),還注重培養(yǎng)學(xué)生的學(xué)術(shù)研究能力和科學(xué)思維能力,以幫助學(xué)生從思維訓(xùn)練的角度學(xué)習(xí)操作系統(tǒng)的設(shè)計原理和實現(xiàn)技術(shù)。作為計算機資源的管理者,操作系統(tǒng)負責(zé)管理計算機中的各類軟硬件資源,保障計算機系統(tǒng)有效且高效地運行。課程教學(xué)中從兩個角度剖析計算機操作系統(tǒng),一方面,從管理學(xué)的角度,把操作系統(tǒng)看作計算機資源的管理器,分析操作系統(tǒng)如何有效且高效地管理處理器、存儲器、I/O設(shè)備
2、和文件等軟硬件資源;另一方面,從軟件工程的角度,將計算機操作系統(tǒng)看作一種大型系統(tǒng)軟件,按照模塊化的思想,將其劃分為處理器管理子系統(tǒng)(即進程管理子系統(tǒng))、存儲管理子系統(tǒng)、I/O設(shè)備管理子系統(tǒng)和文件管理子系統(tǒng)等幾個較小的子系統(tǒng)。再分別研究各子系統(tǒng)的設(shè)計與實現(xiàn)技術(shù)。上述兩個角度可以交替進行,不妨可以將操作系統(tǒng)比擬為一個公司的財務(wù)總監(jiān),其主要責(zé)任即準確實時登記公司的各類資產(chǎn)情況,以確保公司各部門能高效運轉(zhuǎn)。同時,培養(yǎng)學(xué)生的軟件工程設(shè)計能力,以操作系統(tǒng)設(shè)計者的身份,與老師一道共同設(shè)計實現(xiàn)操作系統(tǒng)的各功能模塊。計算機操作系統(tǒng)中包含若干工程訓(xùn)練和計算思維訓(xùn)練的實例。希望同學(xué)們在學(xué)習(xí)過程中認真體會:(1)化繁
3、為簡:模塊化設(shè)計作為一個大型復(fù)雜的系統(tǒng)軟件,操作系統(tǒng)的設(shè)計和開發(fā)必須遵循化繁為簡的思想,采用模塊化設(shè)計方法,將一個復(fù)雜的大系統(tǒng)劃分為幾個較簡單的、相對獨立的子系統(tǒng)。一般地,根據(jù)操作系統(tǒng)管理的計算機資源類型不同,可以將操作系統(tǒng)劃分為處理機管理子系統(tǒng)(常稱為進程管理子系統(tǒng))、存儲管理子系統(tǒng)、I/O設(shè)備管理子系統(tǒng)和文件管理子系統(tǒng)等幾個獨立的子系統(tǒng)。其中,進程管理子系統(tǒng)主要實現(xiàn)進程的并發(fā)控制、處理器的有效競爭使用(進程調(diào)度)、多進程并發(fā)潛在引起的死鎖問題的解決等功能。存儲管理子系統(tǒng)實現(xiàn)內(nèi)存的劃分、為進程分配存儲空間并實時回收可用空間、虛擬存儲技術(shù)的實現(xiàn)等功能。I/O設(shè)備管理子系統(tǒng)實現(xiàn)外部設(shè)備的分配與回
4、收、緩沖存儲的實現(xiàn)、多進程對磁盤I/O訪問的請求與服務(wù)等功能。文件管理子系統(tǒng)實現(xiàn)文件的組織、文件目錄管理、為文件分配磁盤存儲空間等功能。上述諸功能的實現(xiàn)依賴各類數(shù)據(jù)結(jié)構(gòu),例如進程控制塊PCB、進程頁表、設(shè)備分配表、文件分配表等,以及大量算法,如進程調(diào)度、頁面置換、磁盤調(diào)度等算法。模塊化思想是計算思維的基本要素之一。以操作系統(tǒng)的設(shè)計與實現(xiàn)為例,訓(xùn)練學(xué)生如何將一個大型軟件劃分為若干較小的模塊,再對各模塊進行需求分析和功能設(shè)計。隊列與調(diào)度 超市結(jié)賬、銀行辦理業(yè)務(wù)、乘車排隊等生活中的排隊現(xiàn)象司空見慣。一般地,按照約定俗成,排在隊首者優(yōu)先獲得服務(wù),這其實就是一種調(diào)度算法先來先服務(wù)。計算機中存在很多隊列,
5、如進程隊列(阻塞隊列、就緒隊列、I/O等待隊列等)、作業(yè)隊列等。凡是存在隊列的地方,都需要某種調(diào)度策略,以服務(wù)于隊列中的各對象。因此,操作系統(tǒng)中需要講解進程調(diào)度、作業(yè)調(diào)度、磁盤調(diào)度等調(diào)度算法。如何更好地講解各種調(diào)度算法,訓(xùn)練學(xué)生的計算思維呢?筆者認為,操作系統(tǒng)中出現(xiàn)的各類調(diào)度算法本身不難,重點是通過學(xué)習(xí),讓學(xué)生學(xué)會如何研究算法、評價其性能,并進行改進,在這樣的學(xué)習(xí)過程中訓(xùn)練學(xué)生的科研能力和計算思維。因此,此類內(nèi)容適合于讓學(xué)生預(yù)習(xí)自學(xué),完成相關(guān)模擬實驗,并組織學(xué)生互動討論,啟發(fā)學(xué)生從日常生活中提出簡單的調(diào)度算法,再逐步改進完善,進行研究性學(xué)習(xí)。歷經(jīng)數(shù)年的教學(xué)改革實踐證明,該方法切實可行,部分學(xué)生
6、完全有能力通過自學(xué),以研究方式設(shè)計、改進調(diào)度算法,完成模擬實驗。通過互動討論交流,其學(xué)習(xí)經(jīng)驗對其他同學(xué)亦具有激勵和示范作用。多道程序設(shè)計技術(shù):并發(fā)與并行現(xiàn)代計算機系統(tǒng)一般都支持多道程序設(shè)計技術(shù),即允許多道程序(進程)同時駐留內(nèi)存,在單處理器系統(tǒng)中,某時刻只允許一道程序運行(稱為多任務(wù)并發(fā))。當正在運行的那道程序(進程)因為某種原因(比如等待輸入或輸出數(shù)據(jù))暫時不能繼續(xù)運行時,系統(tǒng)將自動地啟動另一道程序(進程)運行;一旦原因消除(比如數(shù)據(jù)已經(jīng)到達或數(shù)據(jù)已經(jīng)輸出完畢),暫時停止運行的那道程序(進程)在將來某個時候還可以被調(diào)度繼續(xù)運行。在多處理器系統(tǒng)中,某時刻允許多個任務(wù)同時運行,稱為多任務(wù)并行。與
7、傳統(tǒng)的支持單道程序設(shè)計技術(shù)的系統(tǒng)相比,支持多道程序設(shè)計技術(shù)的計算機系統(tǒng)能顯著提高效率。單處理器系統(tǒng)中的并發(fā)實質(zhì)上是一種串行技術(shù),通過進程調(diào)度實現(xiàn)處理器的快速切換,在一段時間內(nèi)完成多個任務(wù)??梢?,在個人計算機中同時打開多個QQ窗口、播放音樂、收發(fā)電子郵件等任務(wù),都是通過CPU快速切換執(zhí)行各應(yīng)用程序完成的。多道程序設(shè)計技術(shù)是現(xiàn)代操作系統(tǒng)的核心技術(shù)之一,也是一種非常重要的計算思維。教學(xué)中,首先分析多道程序設(shè)計技術(shù)的概念,剖析其實現(xiàn)技術(shù),區(qū)分單處理器和多處理器系統(tǒng)中的實現(xiàn)差異。要求學(xué)生掌握單處理器多道程序系統(tǒng)中,如何控制進程并發(fā)執(zhí)行,如何實現(xiàn)進程同步與互斥。操作系統(tǒng)課程將進程的同步與互斥抽象成生產(chǎn)者/
8、消費者、讀者/寫者以及哲學(xué)家進餐三類經(jīng)典問題,以此為例,訓(xùn)練學(xué)生如何實現(xiàn)多進程同步與互斥的計算思維能力。緩沖與多級存儲體系人們外出時,通常會攜帶一個隨身包,其中裝有一些日常必備用品,或裝一些外出辦事臨時的資料用品等,這就是一種緩沖技術(shù)。緩沖技術(shù)是現(xiàn)代計算機系統(tǒng)中常用的技術(shù),它利用多余的空間存儲一些最近常用的數(shù)據(jù),以加速數(shù)據(jù)的訪問速率。計算機中存在各種各樣的緩沖區(qū),例如,由于CPU的處理速度比訪問內(nèi)存的速度快,在CPU中配置高速寄存器,存儲CPU最近經(jīng)常處理的數(shù)據(jù)和指令,避免每次訪問內(nèi)存而降低計算機的效率。再如,由于內(nèi)存的訪問速率比磁盤的訪問速率快,在內(nèi)存配置緩沖區(qū),用于存儲輸出到磁盤或從磁盤輸
9、入內(nèi)存的數(shù)據(jù)。由于本地磁盤的訪問速率比網(wǎng)絡(luò)存儲訪問速率快,在本地磁盤中配置緩沖區(qū),存儲最近訪問網(wǎng)絡(luò)的數(shù)據(jù)等。利用緩沖技術(shù),用多余的空間換取時間,可以構(gòu)建計算機的多極存儲體系。下圖示意了現(xiàn)代計算機金字塔結(jié)構(gòu)的多級存儲體系,即以容量小、價格昂貴、訪問速度快的寄存器為塔尖,以容量大、價格便宜、訪問速度慢的外部存儲器(如磁盤)為塔基,塔身由存儲容量、價格、訪問速率等逐步變化的各級緩存和物理內(nèi)存構(gòu)成。圖 現(xiàn)代計算機的多級存儲體系操作系統(tǒng)負責(zé)管理計算機系統(tǒng)中的各類緩沖存儲區(qū),包括緩沖區(qū)的分配與回收、緩沖區(qū)內(nèi)容的更新與置換等。該部分教學(xué)主要訓(xùn)練學(xué)生理解緩沖技術(shù)的基本原理、緩沖技術(shù)的應(yīng)用、緩沖區(qū)內(nèi)容的置換算法
10、等計算思維能力和方法,并啟發(fā)學(xué)生將緩沖技術(shù)從單機系統(tǒng)拓展到網(wǎng)絡(luò)環(huán)境,將緩沖技術(shù)提升為一種計算思維。中斷技術(shù)現(xiàn)代計算機利用中斷技術(shù),支持多任務(wù)并發(fā)執(zhí)行。當前正在執(zhí)行的任務(wù)因為某種原因被中斷,計算機必須保存中斷時的所有信息(稱為中斷現(xiàn)場),以便恢復(fù)中斷執(zhí)行。例如,當CPU執(zhí)行到某程序的一條數(shù)據(jù)輸入指令時,程序執(zhí)行被中斷,CPU保存該任務(wù)的中斷現(xiàn)場,并給相應(yīng)的輸入設(shè)備發(fā)出數(shù)據(jù)輸入命令,CPU調(diào)度另外一個任務(wù)執(zhí)行。當指定設(shè)備完成數(shù)據(jù)輸入,向CPU發(fā)送一個中斷信號,告知其數(shù)據(jù)輸入完畢。CPU將在適當時候,恢復(fù)被中斷任務(wù)的現(xiàn)場,繼續(xù)其執(zhí)行。中斷技術(shù)也屬于計算思維訓(xùn)練的核心技術(shù)之一。正是基于中斷技術(shù),現(xiàn)代計
11、算機系統(tǒng)才能支持多道程序設(shè)計技術(shù),才能實現(xiàn)處理器與I/O設(shè)備并行工作,以及多任務(wù)并發(fā)執(zhí)行。本部分應(yīng)訓(xùn)練學(xué)生掌握中斷處理技術(shù),比較Windows和Linux操作系統(tǒng)的中斷技術(shù)異同,理解為什么Linux操作系統(tǒng)改進中斷接收和處理方式以后能快速響應(yīng)實時任務(wù)。索引與冗余文件是計算機系統(tǒng)中常用的數(shù)據(jù)組織形式,文件管理子系統(tǒng)負責(zé)文件的創(chuàng)建、查找、分配存儲空間等功能。一個大文件包含大批量數(shù)據(jù),若順序查找或插入某條記錄,效率非常低。因此,必須采用某種技術(shù)加快查找速度。一般,可以采用折半查找、冒泡查找等技術(shù),也可以為源數(shù)據(jù)建立索引。相對于源數(shù)據(jù),索引數(shù)據(jù)屬于冗余信息。若考慮計算機的存儲成本,冗余數(shù)據(jù)需要額外的存
12、儲空間。然而,冗余的索引數(shù)據(jù)有利于提高檢索速率。此外,有時為了確保數(shù)據(jù)安全,需要增加數(shù)據(jù)備份,或保存源數(shù)據(jù)的校驗信息,這些也是冗余數(shù)據(jù),但同樣有益??梢?,操作系統(tǒng)既追求提高資源利用率,也會利用冗余信息提高檢索速率或增加數(shù)據(jù)可靠性等,這就需要在存儲空間利用率和檢索效率或可靠性等性能之間尋找一種平衡。事實上,討論操作系統(tǒng)原理與實現(xiàn)技術(shù)時,很多地方都需要考慮理論與工程實現(xiàn)之間的折中與平衡,這屬于典型的計算思維。虛擬技術(shù)虛擬技術(shù)是一種對計算機資源進行抽象模擬的技術(shù)。它可以在已有計算機硬件資源的基礎(chǔ)上,抽象化模擬出一整套或一部分虛擬的硬件資源,如 CPU、內(nèi)存、I/O 設(shè)備等。一個多用戶多任務(wù)的單機系統(tǒng)
13、中,物理上只裝配了一個CPU,通過多進程并發(fā),讓每個用戶感覺到獨占了一個CPU。這樣,CPU被虛擬了?;谔摂M技術(shù),可以將外存的一部分虛擬為內(nèi)存使用,讓用戶感覺擴大了內(nèi)存空間,這就是虛擬存儲技術(shù)。同理,基于虛擬和網(wǎng)絡(luò)技術(shù),一臺打印機也可以被虛擬為多臺打印機。從計算思維的角度,不僅需要綜合講解操作系統(tǒng)中的虛擬技術(shù),還應(yīng)該進行思維拓展,將虛擬技術(shù)延伸到網(wǎng)絡(luò)環(huán)境,結(jié)合云計算、虛擬現(xiàn)實等其它相關(guān)領(lǐng)域,開拓學(xué)生的思維,激發(fā)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)其解決工程、科學(xué)等實際問題的能力。計算機操作系統(tǒng)屬于理論與工程實踐并重的課程。目前呈現(xiàn)兩大類教學(xué)方式,一類鑒于實踐環(huán)境搭建困難或深入操作系統(tǒng)內(nèi)核的難度等因素阻礙,偏
14、向于理論講授,導(dǎo)致很多學(xué)生感覺這是一門偏文科類課程,抽象且難以掌握。另一類教學(xué)注重工程實踐,要求學(xué)生進行某操作系統(tǒng)源碼分析、改寫或補充部分功能模塊,這對實踐環(huán)境、教師和學(xué)生都有非常高的要求,很多學(xué)生難以完成任務(wù)。我校計算機操作系統(tǒng)課程組注重計算思維訓(xùn)練,以理論講授為主,配套不同層次和難度的實驗和課程設(shè)計。要求全體學(xué)生掌握操作系統(tǒng)中的部分關(guān)鍵技術(shù)、原理及其實現(xiàn),規(guī)定難度適中的課程實驗和課程設(shè)計題目,并鼓勵少數(shù)對操作系統(tǒng)感興趣的優(yōu)秀學(xué)生攻克難度較高的工程和科研任務(wù)。歷經(jīng)數(shù)年的教學(xué)改革實踐,獲得了同行和廣大學(xué)生的一致認可和好評。當然,計算思維訓(xùn)練是一個系統(tǒng)工程,不僅僅屬于某一門課程的責(zé)任,需要貫穿于
15、計算機基礎(chǔ)、專業(yè)、學(xué)科的各門課程和各個環(huán)節(jié)。在計算機類課程教學(xué)中,教師應(yīng)將計算思維訓(xùn)練作為教學(xué)的主要目的之一,并以此深化教育教學(xué)改革,幫助學(xué)生提升計算思維能力。而且,不僅計算機專業(yè)的學(xué)生,非計算機專業(yè)的學(xué)生也同樣需要提升計算思維能力。下面按照課程章節(jié)分模塊列舉各部分的重點和難點,以及操作系統(tǒng)中若干經(jīng)典問題的有效解決辦法。期望有助于幫助同學(xué)們學(xué)習(xí)該課程。第一章 計算機操作系統(tǒng)概述重點難點學(xué)習(xí)指南1、重點與難點概念理解與區(qū)別,包括并發(fā)與并行、多道程序設(shè)計技術(shù)、操作系統(tǒng)的功能與性能要素、執(zhí)行模式(雙模式)等。2、解決辦法反復(fù)揣摩、理解、結(jié)合實際應(yīng)用,如將多道程序設(shè)計技術(shù)與Web服務(wù)器的工作方式,或個
16、人PC機可以同時播放音樂、打印文檔、上網(wǎng)聊天等操作關(guān)聯(lián)起來,形象實在,從日常應(yīng)用的直觀感受,逐漸建立起操作系統(tǒng)的抽象概念,樹立系統(tǒng)觀和工程觀。第二章 進程管理重點難點學(xué)習(xí)指南1、重點與難點本章是該課程最重要,也是難度最大的部分,占用了最多的學(xué)時。重點與難點:概念理解與區(qū)別進程狀態(tài)轉(zhuǎn)換、進程切換與模式切換、進程與線程、同步與互斥。問題與解決并發(fā)控制是多道程序系統(tǒng)的難點,操作系統(tǒng)中有一系列的解決方法,如硬件方法、信號量方法、管程方法和消息傳遞方法等。課程通過經(jīng)典進程同步與互斥問題:生產(chǎn)者消費者問題、讀者寫者問題以及哲學(xué)家進餐問題等,生動呈現(xiàn)多進程并發(fā)執(zhí)行過程中遇到的同步與互斥問題,借助經(jīng)典問題的解
17、決,學(xué)會實現(xiàn)進程的并發(fā)控制;多進程并發(fā)的另一問題即死鎖問題,課程系統(tǒng)介紹了如何預(yù)防死鎖、如何避免死鎖、及如何檢測和解除死鎖的具體方法。2、解決辦法反復(fù)體會教學(xué)錄像內(nèi)容、結(jié)合操作系統(tǒng)實例分析,體會案例教學(xué)。親身感受(建議自己寫程序?qū)崿F(xiàn))多進程并發(fā)執(zhí)行、動態(tài)演示進程狀態(tài)轉(zhuǎn)換的過程,不同狀態(tài)進程排隊的過程;進程調(diào)度算法;銀行家算法;將進程死鎖與交通阻塞聯(lián)系起來,將進程調(diào)度與超市排隊結(jié)賬聯(lián)系起來,將信號量方法與交通燈聯(lián)系起來等等,有望收到理想的效果。進程調(diào)度問題相對獨立,但非常重要。建議采用研究性學(xué)習(xí)方法,通過現(xiàn)實生活中的排隊問題解決方案,提出多進程調(diào)度算法,并評價算法性能,再逐步改進。課程錄像中展示
18、了我校學(xué)生如何研究性學(xué)習(xí)該部分內(nèi)容,供學(xué)生們參考借鑒。第三章 存儲管理重點難點學(xué)習(xí)指南本模塊的重要程度和難度與進程部分相當,也占用了較多的學(xué)時。重點與難點原理理解與應(yīng)用局部性原理的深入理解及其在各級存儲體系中的應(yīng)用(data cache, TLB, disk cache, I/O buffer)。問題與解決分區(qū)/分頁/分段/段頁式存儲管理技術(shù)及實現(xiàn)、虛擬分頁系統(tǒng)的實現(xiàn)、頁面置換算法。解決辦法重點講解局部性原理,作為理解現(xiàn)代操作系統(tǒng)存儲體系架構(gòu),提高系統(tǒng)效率的重要的原理基礎(chǔ)。它在計算機網(wǎng)絡(luò)、Internet中也廣泛采用,也是虛擬存儲技術(shù)實現(xiàn)的理論基礎(chǔ)。通過動態(tài)演示存儲分區(qū)、分葉、分段技術(shù),以及相
19、應(yīng)的地址轉(zhuǎn)換技術(shù)使學(xué)生理解。第四章 設(shè)備管理重點難點學(xué)習(xí)指南本章因為計算機外部設(shè)備的多樣性、復(fù)雜性,而顯得缺乏邏輯性與系統(tǒng)性。課程主要講授與操作系統(tǒng)相關(guān)的部分,如設(shè)備管理子系統(tǒng)的結(jié)構(gòu)、緩沖存儲技術(shù)、操作系統(tǒng)與設(shè)備驅(qū)動程序之間的接口、磁盤調(diào)度算法等,而非具體設(shè)備的管理與I/O實現(xiàn)細節(jié)。1、 重點與難點問題與解決OS設(shè)備管理模塊的結(jié)構(gòu)、I/O緩沖技術(shù)、SPOOLing技術(shù)及其應(yīng)用。算法與實現(xiàn)各類磁盤調(diào)度算法的實現(xiàn)。解決辦法從系統(tǒng)(子系統(tǒng))設(shè)計的角度分析操作系統(tǒng)設(shè)備管理子系統(tǒng)的結(jié)構(gòu),從個人PC機及計算機網(wǎng)絡(luò)環(huán)境等講解緩沖技術(shù)的實現(xiàn)與應(yīng)用,從局域網(wǎng)環(huán)境中的打印機共享講解SPOOLing技術(shù),及多種方式
20、的磁盤調(diào)度技術(shù)??梢姡碚撀?lián)系實際是本模塊講授的主要策略。第五章 文件管理重點難點學(xué)習(xí)指南本章介紹操作系統(tǒng)的軟件資源管理功能,內(nèi)容量不如進程和存儲管理模塊部分,重點與難點在于講解文件的邏輯組織結(jié)構(gòu)、文件在外存的分配技術(shù)、索引結(jié)點的使用與好處、文件共享的實現(xiàn)、文件目錄的組織與管理等。本模塊因為需要介紹文件在外部存儲空間的存儲管理,故與存儲管理模塊有很多共性。我們將此部分與存儲管理結(jié)合、對比講解,如磁盤整理與動態(tài)分區(qū)緊湊技術(shù),外存空間分配管理與內(nèi)存分配管理技術(shù)對比介紹;將文件管理系統(tǒng)與數(shù)據(jù)庫管理系統(tǒng)比較講解,效果顯著。第六章 操作系統(tǒng)安全重點難點學(xué)習(xí)指南本章簡要概述計算機操作系統(tǒng)安全的概念、安全機
21、制的實施:文件保護機制、訪問矩陣、訪問矩陣的修改、訪問矩陣的實現(xiàn)。主要了解安全系統(tǒng)的模型、設(shè)計、可信度驗證。理解:操作系統(tǒng)安全的概念、安全機制的實施。掌握:文件保護、訪問矩陣、訪問矩陣的修改、訪問矩陣的實現(xiàn)。實踐教學(xué)與學(xué)習(xí)指南計算機操作系統(tǒng)課程是一門理論和實踐并重的課程,必須配備相應(yīng)的實驗環(huán)節(jié)。該門課程的實驗環(huán)節(jié)由兩部分構(gòu)成:課內(nèi)實驗和課外實驗。目前我們的配備情況是64學(xué)時課堂講授+8學(xué)時課內(nèi)實驗+8學(xué)時課外實驗+若干學(xué)時的課程設(shè)計。當然,如果將小項目類型的作業(yè)計算在內(nèi),實驗數(shù)應(yīng)當更多。為了在實踐過程中充分發(fā)揮師生互動作用,課程組充分利用“實驗室課堂”和“案例庫”,完成相應(yīng)實踐過程,達到能力訓(xùn)
22、練和啟發(fā)創(chuàng)新的目的。本課程的實踐教學(xué)環(huán)節(jié)包括三個大的部分,即:課程實驗、應(yīng)用實驗和綜合實驗,并分成高、中、低幾個層次。其中,課程實驗主要解決計算機操作系統(tǒng)學(xué)習(xí)后對原理、算法的理解和設(shè)計能力。應(yīng)用實驗主要介紹現(xiàn)代主流操作系統(tǒng)(如UNIX/Linux等)及其系統(tǒng)編程技術(shù),訓(xùn)練學(xué)生在操作系統(tǒng)平臺下的動手能力。綜合實驗(含課程設(shè)計)。主要促使學(xué)生理解操作系統(tǒng)內(nèi)核,開源碼分析,內(nèi)核和應(yīng)用模塊設(shè)計等。是難度較大的實踐環(huán)節(jié),通過案例復(fù)現(xiàn)和模塊替換實驗等,掌握技術(shù)實現(xiàn)和模塊設(shè)計的方法與技巧。為有能力和有興趣的同學(xué)提供了技術(shù)提高環(huán)節(jié)。實驗課程與計算機操作系統(tǒng)課堂教學(xué)有機結(jié)合,相輔相成。在課堂教學(xué)中,比較全面、概
23、括性地講述操作系統(tǒng)基本概念,以及進程管理、處理機調(diào)度與死鎖、存儲器管理、設(shè)備管理、文件管理等知識。課程實驗要求完成并發(fā)程序設(shè)計、進程同步與死鎖、存儲器分配與回收以及文件管理方法等,在計算機上模擬實現(xiàn),使學(xué)生能夠達到以下教學(xué)目標:掌握計算機操作系統(tǒng)管理進程、處理機、存儲器、文件系統(tǒng)的基本方法。了解進程的創(chuàng)建、撤消和運行,進程并發(fā)執(zhí)行;自行設(shè)計解決哲學(xué)家就餐問題的并發(fā)線程,了解線程(進程)調(diào)度方法;掌握內(nèi)存空間的分配與回收的基本原理;通過模擬文件管理的工作過程,了解文件操作命令的實質(zhì)。了解現(xiàn)代計算機操作系統(tǒng)的工作原理,具有初步分析、設(shè)計操作系統(tǒng)的能力。通過在計算機上編程實現(xiàn)操作系統(tǒng)中的各種管理功能
24、,在系統(tǒng)程序設(shè)計能力方面得到提升。根據(jù)實驗教學(xué)目標,我們將實驗題目分為三類:驗證性(例如上述第一類)、設(shè)計性(例如上述第二類)、綜合性(例如上述后兩類)。由于驗證性實驗題目比較簡單,一般由學(xué)生獨立完成;設(shè)計性題目有一定的靈活性,一般安排2-3協(xié)作完成;對于綜合性題目,由于工作量較大,具有較高的難度和靈活性,因此我們安排2-4人合作完成。圍繞課程大綱,設(shè)計了驗證性、設(shè)計性和綜合性三大類實驗任務(wù),具體描述如下:驗證性:. 實驗項目名稱:進程調(diào)度算法設(shè)計實踐實驗項目的目的和任務(wù):通過該實驗,加深對多道系統(tǒng)中調(diào)度算法的認識。實現(xiàn)FIFO,RR(q=1),SPN, SRT, HRRN, FB六種調(diào)度算法
25、。并通過輸入一組進程序列計算出每種算法的輸出進程序列。上機實驗內(nèi)容:1)實現(xiàn)主程序及六種調(diào)度算法。2)輸入一組進程序列,對序列中的每一個進程,定義不同的優(yōu)先級、總執(zhí)行時間,用六種調(diào)度算法輸出調(diào)度最終的排序結(jié)果。序列例;進程號12345678優(yōu)先級42213343運行時間206036597182345. 實驗項目名稱:線程間同步與互斥實驗項目的目的和任務(wù):通過多線程并發(fā)程序設(shè)計,掌握同步與互斥的設(shè)計方法。實現(xiàn)一個生產(chǎn)者、消費者的兩線程同步算法。上機實驗內(nèi)容:1)申請10個緩沖區(qū)。2)編制生產(chǎn)者線程:首先產(chǎn)生一個隨機數(shù),寫入到一個緩沖區(qū)中。其次將該緩沖區(qū)置“滿”標志。3)編制消費者線程:取一個“滿
26、”標志的緩沖區(qū)中數(shù)據(jù),打印輸出,然后將該緩沖區(qū)置“空”標志。4)添加相應(yīng)的同步互斥控制代碼。. 實驗項目名稱:內(nèi)存分配與回收設(shè)計實驗項目的目的和任務(wù):學(xué)習(xí)內(nèi)存管理的實現(xiàn)原理。實現(xiàn)一個基于伙伴算法的內(nèi)存分配回收算法,并通過輸入一組內(nèi)存請求與回收序列驗證該算法執(zhí)行情況。上機實驗內(nèi)容:1)實現(xiàn)主程序及伙伴算法(設(shè)內(nèi)存總量為1M)。2)用如下請求和釋放序列驗證該算法執(zhí)行情況。請求100k請求240k請求64k請求256k釋放240k釋放100k請求75k釋放64k釋放75k釋放256k試輸出每次請求和釋放動作產(chǎn)生后的內(nèi)存狀態(tài)。. 實驗項目名稱:文件復(fù)制實驗項目的目的和任務(wù):掌握文件系統(tǒng)的系統(tǒng)調(diào)用的使用
27、。產(chǎn)生兩個文件A和B,并將這兩個文件內(nèi)容交叉復(fù)制到文件C中,并輸出文件C的結(jié)果。上機實驗內(nèi)容:1)產(chǎn)生一個1k的文件A,其內(nèi)容為數(shù)字。2)產(chǎn)生一個1k的文件B,其內(nèi)容為字母。3)以100字節(jié)為單位,將A、B兩文件的內(nèi)容交替復(fù)制到文件C中。最后輸出C的結(jié)果。設(shè)計性:. 實驗項目名稱:Linux系統(tǒng)調(diào)用分析與實現(xiàn)實驗項目的目的和任務(wù):理解操作系統(tǒng)內(nèi)核與應(yīng)用程序的接口關(guān)系;加深對內(nèi)核空間和用戶空間的理解;學(xué)會增加新的系統(tǒng)調(diào)用。上機實驗內(nèi)容:1)增加系統(tǒng)調(diào)用函數(shù)直接在原有程序文件中增加,減少修改Makefile文件的麻煩。該函數(shù)的名稱應(yīng)該是新的系統(tǒng)調(diào)用名稱前面加上sys_標志。例如新加的系統(tǒng)調(diào)用為my
28、call(int number),在/usr/src/linux/kernel/sys.c文件中添加源代碼,如下所示:asmlinkage int sys_mycall(int number) printk(“call number is %dn”,number);return number; 2)連接新的系統(tǒng)調(diào)用添加新的系統(tǒng)調(diào)用后,下一個任務(wù)是使Linux內(nèi)核的其余部分知道該系統(tǒng)調(diào)用的存在。為了從已有的內(nèi)核程序中增加到新的系統(tǒng)調(diào)用函數(shù)的連接,需要編輯兩個文件。第一個要修改的文件是:/usr/src/linux/include/asm-i386/unistd.h 該文件中包含系統(tǒng)調(diào)用清單,用來
29、給每個系統(tǒng)調(diào)用分配一個唯一的號碼。將新增的系統(tǒng)調(diào)用名稱加到清單最后,并給它分配號碼序列中下一個可用的系統(tǒng)調(diào)用號。例如:#define _NR_mycall 239系統(tǒng)調(diào)用號為239,之所以系統(tǒng)調(diào)用號是239,是因為內(nèi)核自身的系統(tǒng)調(diào)用號碼已經(jīng)用到238。第二個要修改的文件是:/usr/src/linux/arch/i386/kernel/entry.S該文件中有類似如下的清單:long SYMBOL_NAME()該清單用來對sys_call_table數(shù)組進行初始化。該數(shù)組包含指向內(nèi)核中每個系統(tǒng)調(diào)用的指針。這樣就在數(shù)組中增加了新的內(nèi)核函數(shù)的指針。在清單最后添加一行:long SYMBOL_NAM
30、E(sys_mycall)3)重建新的Linux內(nèi)核,作以下命令make menuconfig配置內(nèi)核選項make dep生成依賴關(guān)系make clean清除舊的編譯結(jié)果make bzImage-new編譯內(nèi)核映象make modules編譯內(nèi)核模塊make modules_install安裝內(nèi)核模塊4) 用新的內(nèi)核啟動系統(tǒng)修改/etc/lilo.conf文件,添加新的引導(dǎo)內(nèi)核:image=/boot/bzImage-new label=linux-new root=/dev/hdb1 read-only 添加完畢后,為了使用新的lilo.conf配置文件,還應(yīng)執(zhí)行下面的命令:#cp /usr
31、/src/linux/arch/i386/boot/zImage /boot/bzImage-new其次配置lilo:# /sbin/lilo當重新引導(dǎo)系統(tǒng)時,在boot:提示符后面有三種選擇:linux-new、linux、dos。選擇 linux-new即可以新內(nèi)核啟動。用新內(nèi)核啟動后則可使用新的系統(tǒng)調(diào)用。5)使用新的系統(tǒng)調(diào)用編寫應(yīng)用程序使用新添加的系統(tǒng)調(diào)用mycall。綜合性. 實驗項目名稱:內(nèi)核模塊機制和新模塊編寫實驗項目的目的和任務(wù):理解Linux操作系統(tǒng)模塊機制,學(xué)會使用模塊設(shè)計系統(tǒng)的方法,學(xué)習(xí)編寫一個新的內(nèi)核模塊。上機實驗內(nèi)容:1) 設(shè)計一個在/proc中實現(xiàn)clock文件的模塊
32、,該文件只支持文件的read()操作。當調(diào)用read()操作時,返回一個單一的ASCII字符串,其中包括用一個空格分開的兩個數(shù)字子串。例如,若系統(tǒng)時間變量xtime設(shè)置為:xtime.tv_sec=923264577 xtime.tv_usec=234438,則該模塊必須返回如下形式的一個字符串:923264577 2344382) 寫一個空內(nèi)核模塊,編譯測試。編輯:編輯:#include #include int init_module()printk(“It is a null kernel modulen”);return 0;void cleanup_module()printk(“I
33、 am exiting nown”);編譯:編譯:gcc c Wall D_KERNEL_ -DMODULE testmodule.c運行:insmod testmodule.o/裝入模塊lsmod/檢查裝入是否成功rmmod testmodule/卸載模塊lsmod/檢查卸載是否成功3) 生成一proc文件,以用于讀取系統(tǒng)時鐘。在模塊中使用proc_register()和proc_unregister()注冊和注銷。它們引用一個struct proc_dir_entry數(shù)據(jù)結(jié)構(gòu),將該結(jié)構(gòu)中g(shù)et_info指針指向自己構(gòu)造的讀函數(shù)。模版如下:#include #include int test_read(char*, char *, off_t, ini, int) struct proc_dir_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年生物可降解塑料項目建議書
- 二零二五年度借調(diào)人員職業(yè)發(fā)展與離職交接協(xié)議
- 信息技術(shù)助力農(nóng)村發(fā)展合作合同書
- 某業(yè)務(wù)模塊操作指南
- 三農(nóng)科技示范推廣項目實施方案
- 小鴨子游泳故事解讀
- 2025年磷酸氧鈦鉀晶體(KTP)合作協(xié)議書
- 中學(xué)生課外閱讀經(jīng)驗交流征文
- 小公主童話故事解讀征文
- 文化藝術(shù)品保護及版權(quán)授權(quán)合同
- 2025國家電投集團資本控股限公司本部招聘11人高頻重點模擬試卷提升(共500題附帶答案詳解)
- 2025年山東司法警官職業(yè)學(xué)院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 2024年05月湖南招商銀行長沙分行長期社會招考筆試歷年參考題庫附帶答案詳解
- 鐵路信號基礎(chǔ)設(shè)備維護(第二版) 課件 項目一 信號繼電器檢修
- 江蘇省南京市2024年中考英語試題(含解析)
- 2025年匯成集團招聘筆試參考題庫含答案解析
- 《礦山機械》課件
- 湖南長沙自貿(mào)投資發(fā)展集團有限公司招聘筆試沖刺題2024
- 電力安全工作規(guī)程考試試題題庫
- 2024年抗菌藥物培訓(xùn)試題及答案
- UL1026標準中文版-2019家用電飯煲和食品服務(wù)用具第六版
評論
0/150
提交評論