亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        操作系統實踐教學的探索

        2007-12-31 00:00:00鄧勝蘭
        計算機教育 2007年20期

        摘要:操作系統實踐教學應該為學生提供一個實驗環(huán)境,使學生能夠觸摸到真實的操作系統內部,幫助學生理解抽象的操作系統原理和機制;使學生能夠親身體驗操作系統功能的設計和實現過程,培養(yǎng)學生應用操作系統知識的能力。本文分析了操作系統實踐教學的目標,闡述了具體實驗項目及其設計理念。

        關鍵詞:操作系統;實踐教學;實驗設計

        中圖分類號:G642文獻標識碼:B

        文章編號:1672-5913 (2007) 20-0008-03

        1引言

        操作系統是計算機科學與技術專業(yè)的一門重要基礎課程,其教學目的使學生通過學習各種資源管理的原理和機制,建立起關于操作系統如何工作的理論知識基礎。但操作系統同時也是學生們認為比較難學的專業(yè)課程之一。其原因有二:一是操作系統課程講述的是計算機資源管理的原理和機制,其中包含了許多抽象的概念和算法;二是操作系統作為最底層的核心軟件,深藏于“用戶界面”之下,學生們難以找到學習內容的參照對象。因此,操作系統實踐教學作為教學輔助環(huán)節(jié)十分重要,它的作用在于通過動手做實驗,幫助學生解決從抽象理論到具體對象的認識問題,培養(yǎng)學生應用知識解決問題的能力。

        與程序設計、編譯原理和數據庫等軟件課程的實踐教學相比,操作系統課程的實踐教學有其特殊的地方。前者可以通過實現一個小型的應用程序或簡化的編譯器、數據庫來完成實踐教學,而后者不能這樣做。因為操作系統不僅與硬件平臺密切相關,而且內部結構非常復雜,即使讓學生實現一個最簡單的操作系統也是不現實的。近年來,我們以開源的Linux操作系統和WMware虛擬機作為實踐平臺,針對不同的教學對象和教學要求,精心設計了多種方式的實驗項目,在操作系統實踐教學上做了一些有益的探索。本文首先分析操作系統實踐教學的目標,然后說明如何具體設計實驗項目。

        2實踐教學目標

        我們認為,操作系統實踐教學作為輔助教學環(huán)節(jié),有兩個主要目標。

        (1) 幫助學生理解操作系統的基本概念、原理和機制

        操作系統包含了許多抽象的基本概念如進程、線程和虛存,也包含了復雜的資源管理算法和機制,如進程調度和頁式存儲管理。這些知識對于本科學生而言是比較難以理解的,因為他們平時使用的是操作系統的用戶界面,很少也很難窺視到操作系統的內部。操作系統的實踐教學應該讓學生了解一個真實操作系統的內部實現,從而幫助學生更好地理解操作系統的基本概念、原理和機制。

        我們采用開源的Linux操作系統作為實踐教學的教材,指導學生閱讀和分析Linux的部分源碼,將學生帶入一個真實而復雜的操作系統內部世界。在閱讀和分析源碼的過程中,學生能夠了解抽象的進程和線程所對應的具體數據結構,了解進程調度算法的實現過程,并應用所學的操作系統原理知識分析和討論Linux的調度策略。另外,我們要求學生在做每項實驗前自學Linux操作系統的相關知識,使學生清楚地看到操作系統的原理知識是如何體現在一個實際系統中的。

        (2) 培養(yǎng)學生應用操作系統知識的能力

        操作系統是計算機系統的核心軟件,從事計算機行業(yè)的專業(yè)人員都需要操作系統的原理知識,但他們擔任的角色不同,面臨的問題就不同,因而所具備的操作系統知識的應用能力也不同。系統管理員需要根據操作系統知識和用戶的需求,合理地配置系統資源,需要及時了解系統運行狀態(tài),調整資源管理策略,使系統性能達到最佳;系統程序員需要詳細了解操作系統的內核結構、資源管理機制和功能模塊接口,為操作系統添加新功能或編寫設備驅動程序;應用程序員則需要正確理解操作系統的功能和資源管理策略,編寫出高效率且安全的應用軟件。操作系統的實踐教學必須考慮到上述不同能力培養(yǎng)的特點,以滿足學生未來任職需要。

        我們以開源的Linux操作系統和WMware虛擬機作為實踐平臺,精心設計實驗項目,從多個方面培養(yǎng)學生應用操作系統知識的能力。例如,學習使用Linux的proc文件系統,對內核運行狀態(tài)、資源管理狀態(tài)和進程運行狀態(tài)進行動態(tài)查詢;學習Linux的系統調用機制和內核模塊動態(tài)加載機制,掌握為操作系統添加新功能的方法和過程;編寫進程通信應用程序,掌握各種進程通信、同步互斥機制的特點和使用方法。

        3實驗項目設計

        我們在上述的實踐教學目標的指導下,設計了多個實驗項目,內容涵蓋了操作系統的主要知識點,包括用戶界面、進程通信、proc文件系統、系統調用機制、進程調度、內核同步互斥機制、驅動程序接口等??紤]到學生的知識和經驗背景,實驗項目的安排從簡到難,從依靠指導到自主設計。除必做的實驗項目外,還設計了選做的實驗項目,為有能力的同學提供更多的學習空間。下面分別介紹我們設計的九個實驗項目。其中,前三個實驗項目是為應用程序員和系統管理員設計的,使學生掌握如何使用操作系統的命令界面、進程機制和系統性能管理工具;第4個實驗安排學生閱讀和分析源碼,理解操作系統原理在實際系統中的實現過程;后五個實驗項目是為系統程序員設計的,讓學生體驗操作系統內核編程的全過程。

        (1)Linux命令界面及shell編程

        該項實驗的目的是學習使用操作系統的命令用戶界面。實驗內容是:了解和使用Linux的常用命令,包括如何使用聯機幫助手冊和管道線命令;學習使用命令程序語言shell進行簡單的編程,從而理解命令解釋程序的工作過程。由于學生平時使用的是windows的圖形用戶界面,面對Linux的命令界面感到很陌生。所以,我們先給學生一個shell例子程序,讓學生按照說明步驟上機運行該程序,然后要求學生參照此程序實現一個應用管道線的shell程序。

        (2) 進程間通信

        該項實驗的目的是加強學生對進程概念的理解,使學生掌握不同的進程通信和同步互斥機制的特點和使用方法。實驗內容是:設計應用程序實現父、子進程之間的數據交換,可采用各種方法實現父子進程之間的通信(共享區(qū)、文件、消息傳遞、管道文件)和同步互斥控制(信號量、信號)。

        (3) 使用proc文件系統

        該項實驗的目的是學習如何使用Linux的proc文件系統,對內核運行狀態(tài)、資源管理狀態(tài)和進程運行狀態(tài)進行動態(tài)查詢。實驗內容有:先通過課堂講授讓學生了解proc文件系統的設計思想、工作原理和組織結構,然后要求學生利用proc文件系統中的數據來說明操作系統或進程的某些特性。例如,利用/proc/stat中的數據顯示CPU的使用情況——系統利用率和用戶利用率;利用/proc/intr中的數據顯示內存容量對缺頁異常次數的影響。

        (4) 分析進程調度算法和策略

        該項實驗的目的是幫助學生深入理解進程調度過程,培養(yǎng)學生分析和研究問題的能力。實驗內容是:閱讀和理解Linux的進程調度函數schedule()、進程數據結構task_struct等內核源碼,分析和研究Linux的進程調度算法和策略,寫出研究論文。要求學生在論文中討論以下問題:進程調度隊列是如何組織的;如何實現三種調度類型(SCHED_FIFO, SCHED_RR, SCHED_OHTER);進程的優(yōu)先級是如何定義和動態(tài)變化的;如何決定時間片的大小以及它與優(yōu)先級的關系;對實時進程和多CPU的支持;評價Linux的調度策略并提出改進意見。

        (5)Linux內核編譯

        該項實驗的目的是學習如何生成新內核,為后面進行操作系統內核編程的實驗做準備。實驗內容有:學習如何下載和解壓源碼,了解Linux內核源碼的組織結構,學習配置、編譯、安裝和啟動Linux新內核的全部過程。

        (6) 添加系統調用

        該項實驗的目的是讓學生理解操作系統的重要機制——系統調用機制的工作過程,學習如何添加系統調用。實驗內容是:閱讀源碼文件,分析系統調用表等內核數據結構;實現新的系統調用函數,添加新的系統調用,編譯和生成新內核;編寫應用程序,驗證新系統調用的功能。

        (7) 加載內核模塊

        該項實驗的目的是學習動態(tài)增加內核功能的方法。內核模塊動態(tài)加載/卸載是操作系統的另一重要機制,它使得用戶不僅能動態(tài)裁剪內核功能,還能通過自己編寫內核模塊或使用第三方軟件來動態(tài)增加內核功能。實驗內容有:首先通過課堂講授讓學生了解Linux模塊機制的工作原理、模塊的編程和編譯方法,然后要求學生采用內核模塊編程方法,為proc文件系統添加一個新文件。在該項實驗中,學生不僅要學習內核模塊的編程、編譯、加載和卸載全過程,還需要查找資料和閱讀源碼,搞清楚proc文件系統中關于創(chuàng)建文件、讀/寫文件和刪除文件的函數接口,以此鍛煉學生的自主動手的能力。

        (8) 實現同步事件原語

        該項實驗的目的是學習如何實現同步互斥機制。實驗內容是,實現一組同步事件原語:能夠使多個進程阻塞在某個特定的事件上,直到另一個進程產生該事件,從而喚醒所有在此事件上阻塞的進程。這是一項綜合的復雜實驗。實驗者需要分析清楚同步事件原語的語義以及進程同步過程中的所有細節(jié)問題,正確設計同步事件的數據結構和系統調用原型,分析Linux源碼中關于進程等待隊列和內核信號量的相關函數,并利用這些函數實現同步事件原語的系統調用。然后,采用內核模塊方法將新的系統調用添加到Linux內核中,并通過應用程序驗證其正確性。

        (9) 實現虛擬管道設備

        該項實驗的目的是學習如何編寫驅動程序。實驗內容是:使用內存區(qū)(例如2048字節(jié))實現一個虛擬的字符管道設備:允許多個進程向管道寫入數據,也允許多個進程從管道讀出數據,保證數據的寫入順序與讀出順序是一致的。這也是一項綜合的復雜實驗,實驗者需要分析研究讀/寫管道設備過程中的同步互斥問題,利用內核信號量函數和進程阻塞/喚醒函數解決同步互斥問題;分析研究Linux的字符設備驅動程序接口,學習如何編寫和注冊驅動程序的接口函數以及如何建立Linux設備文件。然后,采用內核模塊方法將新功能添加到Linux內核中,并通過應用程序驗證其正確性。

        4結束語

        操作系統實踐教學應該為學生提供一個實驗環(huán)境,使學生能夠觸摸真實的操作系統內核,從而更好地理解操作系統的基本概念、原理和機制;使學生能夠親身體驗操作系統功能的設計和實現過程,培養(yǎng)學生應用操作系統知識的能力。我們在操作系統實踐教學中做了一些有益的工作,教學效果也不錯,但還存在一些問題有待于進一步研究和探索。例如,如何與課堂教學互補,進一步激發(fā)學生學習操作系統的興趣;如何通過構建實驗平臺將操作系統中更多的內核機制(中斷機制、內存管理機制等)呈現給學生;如何設計更為實用的、學生自主性更強的實驗項目,等等。

        參考文獻

        [1] 羅宇. 操作系統課程設計[M]. 北京:機械工業(yè)出版社,2004.

        [2] 陳莉君. 深入理解Linux內核[M]. 北京:中國電力出版社,2004.

        [3] 李善平. 邊學邊干—Linux內核指導[M]. 浙江大學出版社,2002.

        作者簡介

        鄧勝蘭(1961-),國防科技大學計算機學院研究員,曾經多年從事巨型機操作系統的研制工作,目前主要從事操作系統的教學工作。

        寧洪(1961-),國防科技大學計算機學院教授,長期從事軟件工程和數據庫的教學科研工作,曾榮獲全軍優(yōu)秀教師稱號。

        97中文字幕精品一区二区三区 | 一区五码在线| 午夜亚洲精品一区二区| 国产综合精品久久99之一| 亚洲日韩一区二区三区| 一级做a爰片久久毛片| 99久久免费精品色老| 国产主播一区二区三区蜜桃| 亚洲国产天堂久久综合| 青青视频一区| 国产精品一区二区久久毛片| 蜜桃av噜噜一区二区三区9| 波多野42部无码喷潮| 欧美黑人性色黄在线视频| 国产成人综合亚洲国产| 国产精品蝌蚪九色av综合网| 国产一卡2卡3卡四卡国色天香 | 女人张开腿让男桶喷水高潮| 麻豆国产高清精品国在线| 亚洲一区二区精品在线看| 中文字幕av高清人妻| 97久久精品亚洲中文字幕无码 | av永远在线免费观看| 亚洲国产美女高潮久久久| 国产精品_国产精品_k频道w| 成人片99久久精品国产桃花岛| 美利坚亚洲天堂日韩精品| 国产freesexvideos中国麻豆| 久久久亚洲色| 亚洲国产视频精品一区二区| 人妻少妇精品视频一区二区三| 人妻夜夜爽天天爽| 久久se精品一区精品二区国产| 国产主播一区二区三区在线观看| 狠狠色丁香婷婷久久综合| 欧美日韩久久久精品a片| 中文字幕精品一区二区日本| 亚洲人成综合第一网站| 国产成人精品一区二区三区免费| 综合久久久久6亚洲综合| 成人免费av色资源日日|