999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于龍芯多路處理器平臺的操作系統(tǒng)實驗課程改革

2017-06-24 09:17:09景維鵬雷海軍楊昆楊烜董本志
計算機教育 2017年6期
關鍵詞:實驗

景維鵬 雷海軍 楊昆 楊烜 董本志

摘 要:操作系統(tǒng)是計算機科學與技術專業(yè)重要的主干課程,隨著微處理器技術的不斷發(fā)展,如何在操作系統(tǒng)層次發(fā)揮多核處理器的性能成為近年來的研究熱點。文章從操作系統(tǒng)原理實驗課程出發(fā),以龍芯多路處理器平臺為載體,提出分層次的操作系統(tǒng)實驗改革方案,闡述如何通過不同層次、不同考核目標的實踐教學方案,強化學生的動手能力和系統(tǒng)層軟件開發(fā)能力,對提高學生對操作系統(tǒng)運行機理理解有重要意義。

關鍵詞:操作系統(tǒng)原理; 多核; 龍芯多路處理器; 實驗

0 引 言

操作系統(tǒng)是計算機科學與技術專業(yè)必修的一門基礎課程,其培養(yǎng)目標是使學生掌握操作系統(tǒng)的基本原理和系統(tǒng)級開發(fā)能力,并通過對操作系統(tǒng)運行機理的認知全面提高學生的計算機素養(yǎng),使學生建立起對操作系統(tǒng)的直觀認識,為今后從事相關工作打下堅實基礎[1]。

操作系統(tǒng)實驗教學不但需要學生理解操作系統(tǒng)的概念、原理與方法,還需要提高學生的系統(tǒng)編程能力,只有這樣才能讓學生真正理解操作系統(tǒng)的精髓[2]。傳統(tǒng)的操作系統(tǒng)課程實驗主要基于不同內核的開源系統(tǒng)完成[3],例如哥倫比亞大學使用Linux系統(tǒng)進行實驗,MIT使用ATHENA開源系統(tǒng)作為實驗平臺[4],清華大學使用XV6(UNIXV6的X86版)的擴展設計型方案開展操作系統(tǒng)實驗[5]。這些實驗內容在一定程度上滿足了學生對操作系統(tǒng)運行機理的理解,提高了學生對操作系統(tǒng)運行機理的認識。

然而,隨著多核技術的不斷發(fā)展,基于多處理器的分布式計算環(huán)境已經(jīng)成為云計算和大數(shù)據(jù)平臺的主流[6]。傳統(tǒng)的單核或單CPU上的操作系統(tǒng)實驗不能滿足學生在多處理器環(huán)境下系統(tǒng)內核運行機制的認知需要。為了更直觀地加深學生對這兩部分知識的理解,需建立計算機組成原理、匯編語言、C語言、操作系統(tǒng)等連貫的知識體系。文獻[7]對操作系統(tǒng)內核的伙伴算法提出改進,采用了反轉的思想,但其方法過于繁瑣,不適于課堂實驗,實驗結果無法通過直觀的方式展現(xiàn)。文獻[8]使用Heartbeat作為基礎的心跳檢測模型,但該方法不能直觀反映進程遷移狀況,實驗效果不明顯。龍芯多路處理器的實驗系統(tǒng)是由龍芯3A處理器構成的4單元對稱多處理平臺,通過HT總線互聯(lián)為CC-NUMA架構,可以模擬多路處理器平臺。利用該實驗平臺,可以設計符合現(xiàn)有主流多處理環(huán)境的操作系統(tǒng)實驗教學方案。

1 基于龍芯處理器的實驗教學改革

1.1 由淺入深,多層次掌握Linux操作系統(tǒng)

在實驗方案中我們選擇Linux 2.6.30版的穩(wěn)定內核作為實驗環(huán)境的操作系統(tǒng)內核。由于大部分學生對Linux系統(tǒng)接觸不多,更缺乏在Linux系統(tǒng)上獨立開發(fā)程序的能力,因此要采用從淺入深、層層深入的實驗教學模式。

(1)第一層次,熟練掌握Linux操作系統(tǒng)命令和Shell編程,設計Linux基礎實驗,在掌握Linux基本工作方式和使用方式的前提下,使學生熟練完成Tomcat、NFS、LVS、DNS、FTP等常用服務搭建,配置Hadoop、Spark、Storm集群,熟練撰寫Shell腳本,提高學生在Linux應用層的開發(fā)能力。

(2)第二層次,熟練掌握Linux進程、線程的創(chuàng)建方式以及通信方式,熟練使用如fork、exec、wait等API函數(shù),分析其運行機理。另外,利用多路處理器平臺構建分布式并行計算環(huán)境,設計KMP算法的OpenMP實現(xiàn)和計算π值的OpenMP這兩個設計性實驗。兩個實驗既考查了學生的數(shù)學邏輯能力,又提高了學生的并行編程能力,同時加深了學生對進程、線程、內存管理的理解,使學生掌握并行計算、高性能計算等系統(tǒng)層開發(fā)技術,更好地理解和掌握進程通信的基本方法。

(3)第三個層次,針對多路處理器環(huán)境,優(yōu)化Linux系統(tǒng)的內核模塊,對Linux進程遷移和共享內存進行優(yōu)化。實驗引導學生自主閱讀Linux源代碼,并根據(jù)相關需求進行源代碼的優(yōu)化,提高學生閱讀代碼的能力,激發(fā)學生的自主創(chuàng)新能力。

通過上述的實驗過程,可以大大激發(fā)學生的學習興趣,使學生對開源軟件、系統(tǒng)層開發(fā)有深入的理解,另外采用分組合作模式,也增強了學生團隊協(xié)作的能力。第三個實驗通過復雜的內核模塊設計,引導學生走入內核開發(fā)的神秘殿堂,全面提高學生在多路處理器環(huán)境下進行系統(tǒng)層軟件開發(fā)的能力。

1.2 化難為易,從主觀和客觀兩方面進行引導

(1)在學習的主動性方面,要潛移默化地消除學生的畏難情緒,在第一層次上下功夫。該部分以講解為主,通過大量的網(wǎng)絡服務配置、Shell腳本編寫,結合操作系統(tǒng)的原理性知識,布置大量的實踐練習,并有意識地從應用及工程實踐角度,用案例的方式對實驗內容加以多角度描述,從而使學生明確實驗目的并激發(fā)其學習興趣。

(2)在客觀上化難為易,分層次引導。從第一層次的操作系統(tǒng)應用層提高開發(fā)能力,第二層加強系統(tǒng)層進程、內存管理及并行程序設計,第三層內核模塊實驗通過設計性的進程遷移和內存優(yōu)化內容培養(yǎng)學生的創(chuàng)新能力、獨立分析問題、解決問題能力。表1為3個層次培養(yǎng)過程及目標。

(3)針對不同層次,設計完全不同的講授方式,具體見表2,有針對性地分析并提出解決方案,以幫助學生全面提高自身能力。

另外,在整個實驗的過程中,培養(yǎng)學生獨立分析問題、解決問題的能力,尤其是在第二、第三層次,引導學生通過分析,自行尋找解決方案并驗證。

3 改進的實驗教學實例

本文使用的實驗環(huán)境為龍芯多路處理器系統(tǒng),包括4個處理器,每個處理單元包括一顆龍芯3A 四核處理器、 DDR2內存以及RTL8110千兆以太網(wǎng)卡芯片,實驗平臺見圖1。

1)基于Linux并行程序設計。

實驗目的是使學生掌握Linux系統(tǒng)上的進程管理、進程通信以及并行編程的基本理論和方法,使用OpenMP技術實現(xiàn)KMP字符串匹配算法,從而達到理解多核編程和KMP算法并行實現(xiàn)的目的。KMP算法是一種改進的字符串匹配算法。實驗中假設文本是一個長度為n的數(shù)組T [1…n],模式串是一個長度為m≤n的數(shù)組P[1…m],字符串匹配是指找出文本串T中與模式串P所有精確匹配的子串的起始位置,KMP算法的時間復雜度為O(strlen(T)+strlen(P))。

實驗要求學生能夠在Linux下使用GCC編譯器或make工具完成KMP算法,查找模式串P[1…m]在文本串T [1…n]中的所有匹配位置,并在龍芯實驗平臺上編譯、運行、調試此OpenMP并行程序,觀察不同處理器核數(shù)對性能的影響。對長度為100 000 000的文本串、長度為100的模式串進行匹配,期望運行結果至少達到表3的數(shù)值。

可以直觀看到,程序開啟1~4線程時,運行時間隨線程數(shù)的增加同比例減小。增大運算規(guī)模,降低SMP模式下各內核訪問主存I/O資源的時間比例,采用4~16線程運行本程序,運行時間同樣隨線程數(shù)的增加同比例減小。

另外,可使用OpenMP編程技術實現(xiàn)π值的計算,從而達到理解多核編程和并行分解法計算π值的目的。

本實驗計算π值利用割圓法計算,如公式(1),公式每計算一項可以得到1.4位的十進制精度。在循環(huán)疊加的運算過程中,開設THREAD_NUMS數(shù)量的線程,以線程數(shù)為間隔,每個線程計算對應分量,最后累加所有分量,得到π值,并使π值滿足設定的精確度。實驗的運行結果見表4。

通過龍芯多路處理器平臺,可以看到隨著處理器路數(shù)的增多,其處理能力逐漸變強,大致隨著線程數(shù)量以2的冪次方增長,整體運行時間呈等比例減小,預期實驗結果見表4。以上兩個實驗可提高學生在Linux環(huán)境利用并行編程方式解決實際問題的能力。

2)共享內存優(yōu)化。

為了更好地提高學生在分布式環(huán)境下數(shù)據(jù)處理分析的能力,在系統(tǒng)層對操作系統(tǒng)內存管理進行優(yōu)化是目前提高性能的主要因素。因此,在實驗中應采用延遲策略或其他策略進行算法優(yōu)化Buddy的實例,能培養(yǎng)學生使用相關的閱讀代碼工具(如Sourceinsight等)進行輔助閱讀代碼。同時應重點分析內存管理模塊的代碼,提升學生對系統(tǒng)的理解。運用學過的數(shù)據(jù)結構和算法基礎對伙伴算法進行優(yōu)化,提升了學生整體的數(shù)據(jù)結構和算法設計能力,從而真正使學生對操作系統(tǒng)的內存管理機制有深入的理解。

3)進程遷移優(yōu)化。

本實驗要求針對現(xiàn)有的故障檢測技術進行分析,對已有應用層檢測方法進行改進,使故障檢測技術能夠在單獨的網(wǎng)絡協(xié)議層運行,將原有的進程遷移算法做進一步的優(yōu)化,利用Linux內核的dev_add_pack函數(shù)將心跳檢測器接收函數(shù)注冊到數(shù)據(jù)鏈路層,得到新的算法。改進算法可以讓源節(jié)點直接將地址空間傳送到目的節(jié)點,不經(jīng)過文件服務器。在發(fā)送缺頁時,直接向源節(jié)點請求調頁,一旦整個地址空間傳送到目的節(jié)點,將徹底消除對源節(jié)點的剩余依賴性;同時,引入一個virtual進程,負責進程遷移通信的處理。

本實驗同樣需要閱讀Linux源代碼,并在故障檢測模塊和進程遷移模塊中進行相關算法的優(yōu)化,主要提升學生用科學的思想進行問題分析,并根據(jù)相關文獻進行算法的優(yōu)化,最終提高學生綜合解決問題的能力。

4)Linux內核的定制。

在源代碼中針對以上兩個模塊進行優(yōu)化后,需要重新編譯優(yōu)化后的內核,以此構建一個能夠滿足應用的新Linux內核。該部分首先需要學生能夠掌握Linux內核啟動的順序,學生可根據(jù)自身能力選擇是否進入源代碼閱讀Linux的啟動流程;然后,通過相關指令生成配置文件,同時根據(jù)自己的需要對內核進行定制;最后通過編譯,生成自己定制成功的操作系統(tǒng)。

在實驗中,學生需要自主尋找內核編譯過程的方式,理解操作系統(tǒng)運行原理,并通過前面學到的Linux命令執(zhí)行編譯,這樣可以提高學生活學活用的能力,將理論知識與實際操作相結合,增強自主學習的能力。

5 結 語

該實驗改革方案在東北林業(yè)大學計算機科學技術專業(yè)2013級、2014級進行了推廣教學,實驗內容得到不斷地豐富和完善。學生通過3個層次的訓練,在操作系統(tǒng)考試中成績普遍有所提高。在今后的教學實踐中我們還會進行一些優(yōu)化和調整,如加強模擬實驗專題與實際環(huán)境的相似度,利用龍芯多路處理器平臺在設備管理和系統(tǒng)調用的實驗方面進行一些新的嘗試,以便更加全面地覆蓋操作系統(tǒng)理論知識。

參考文獻:

[1] 孫述和, 謝青松, 董付國. 操作系統(tǒng)實驗教學研究與探索[J]. 計算機教育, 2010(1): 93-96.

[2] 鄒恒明. 操作系統(tǒng)課程實驗中的五重奏哲學[J]. 計算機教育, 2009(20): 109-112.

[3] 盧國瀟. 無線自組織網(wǎng)絡路由協(xié)議測試平臺研究[D]. 成都: 電子科技大學, 2014.

[4] 閻巍, 嚴俊文. 美國知名大學本科“操作系統(tǒng)”課程設置情況的對比和分析[J]. 教學研究與教材建設, 2009(14): 20.

[5] 謝謙, 蔡坤, 沈夏炯. 一種面向應用的操作系統(tǒng)實驗設置[J].計算機教育, 2012(20): 107-110.

[6] 張玉宏, 張玉, 程紅霞. 操作系統(tǒng)課程設計的實踐教學嘗試[J].計算機教育, 2015(14): 19-20.

[7] 徐超群. 高可用集群系統(tǒng)關鍵技術的研究與實現(xiàn)[D]. 南京: 南京航空航天大學, 2014.

[8] Heekwon P, Jongmoo C, Donghee L. Inverse buddy for enhancing memory allocation/deallocation performance on multi-coreSystems[EB/OL]. [2017-01-19]. http://ieeexplore.ieee.org/document/6714431/?arnumber=6714431.

.

(編輯:孫怡銘)

猜你喜歡
實驗
我做了一項小實驗
記住“三個字”,寫好小實驗
我做了一項小實驗
我做了一項小實驗
記一次有趣的實驗
有趣的實驗
小主人報(2022年4期)2022-08-09 08:52:06
微型實驗里看“燃燒”
做個怪怪長實驗
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
主站蜘蛛池模板: 少妇精品网站| 亚洲精品色AV无码看| 国产成人区在线观看视频| 亚洲日韩在线满18点击进入| 99视频只有精品| 国产精品视频免费网站| 精品人妻一区二区三区蜜桃AⅤ | 国产一级妓女av网站| 亚洲欧美精品在线| 国产精品xxx| 五月天婷婷网亚洲综合在线| 亚洲欧洲日产无码AV| 美女视频黄频a免费高清不卡| 久久久久人妻精品一区三寸蜜桃| 高清色本在线www| 搞黄网站免费观看| 亚洲男人的天堂网| 亚洲AV无码一区二区三区牲色| 多人乱p欧美在线观看| AV无码国产在线看岛国岛| 亚洲免费三区| 四虎影视国产精品| 国产高清免费午夜在线视频| 凹凸国产分类在线观看| 在线无码九区| 狠狠色噜噜狠狠狠狠奇米777| 国产精品美人久久久久久AV| 国产成人麻豆精品| 免费无码网站| av午夜福利一片免费看| 国产免费久久精品99re丫丫一 | 亚洲国产综合精品中文第一| 老司机午夜精品网站在线观看| 国产精品极品美女自在线网站| 老司机精品久久| 久热这里只有精品6| 欧美精品高清| 91亚洲精选| 国产日韩欧美中文| 亚洲精品国产综合99| 国产精品一区在线麻豆| 九九热视频在线免费观看| 青青操国产| 露脸国产精品自产在线播| 黄色三级毛片网站| 狠狠色丁香婷婷综合| 中文精品久久久久国产网址 | 国产黑丝视频在线观看| 在线欧美一区| 国产99在线观看| 99精品热视频这里只有精品7| 国产91无码福利在线| 国产女人18毛片水真多1| 国产91麻豆视频| AV老司机AV天堂| 日本不卡在线视频| 色婷婷啪啪| 亚洲视频黄| 99九九成人免费视频精品| 欧美综合区自拍亚洲综合绿色| 亚洲性视频网站| 最新精品久久精品| 成年网址网站在线观看| 亚洲无码91视频| 国产中文在线亚洲精品官网| 97精品久久久大香线焦| 国产高潮流白浆视频| 91欧美亚洲国产五月天| 99精品伊人久久久大香线蕉| 91福利一区二区三区| 免费在线国产一区二区三区精品 | 久久一本日韩精品中文字幕屁孩| 四虎综合网| 国产黑丝一区| 国产高清不卡视频| 大陆精大陆国产国语精品1024| 91精品专区| 中国毛片网| 2020最新国产精品视频| 成人午夜天| 国产精品一区在线观看你懂的| 国产成人精品在线1区|