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

基于Linux內核的操作系統進程調度教學方法研究

2019-09-10 07:22:44邱煜炎
赤峰學院學報·自然科學版 2019年1期
關鍵詞:教學方法

邱煜炎

摘要:進程管理是操作系統課程的核心,而進程調度是進程管理理論的教學重點.如果不能將理論與真實操作系統相結合,學生很難掌握各種調度算法的應用背景和運行原理.筆者通過剖析Linux內核源碼,采用探索啟發式教學方法,引入進程調度應用于Linux操作系統的真實案例,使學生真切感知實際操作系統中進程調度的運行機理.并且通過修改內核源代碼改進調度算法,使學生加強對調度算法理論的深入理解,從而提高學生對操作系統課程學習的積極性及分析解決問題的能力.

關鍵詞:操作系統;進程調度;Linux內核;教學方法

中圖分類號:G642.0? 文獻標識碼:A? 文章編號:1673-260X(2019)01-0063-03

1 引言

操作系統是計算機科學與技術專業的專業核心課,該課程對其他專業課程起著承上啟下的作用.課程主要內容涵蓋進程管理、進程調度與死鎖、存儲器管理、設備管理、文件管理、操作系統接口等[1].由于操作系統課程理論性強,知識點龐雜從而導致學生對本門課程的學習熱情明顯不高.基于此,筆者嘗試通過剖析Linux內核源碼去闡述進程調度的運行機制[2],采用探索啟發式教學方法,讓學生充分感知真實操作系統軟件的設計思路,真正讓理論落地于實際,從而提高學生對操作系統課程的學習熱情.

在Linux內核版本的選擇上,最新穩定版(4.15.15)由于代碼量太過龐大(1400萬行)[3],學生很難梳理其架構與脈絡,對代碼剖析更是無從下手,由此產生了畏懼和排斥.0.11版發行于20世紀90年代,雖年代久遠但具備了現代操作系統的基本功能,如多用戶多任務、中斷并發、同步互斥等,而代碼量也只有一萬四千行(不包含注釋).為了深入理解進程調度算法以及增強學生對內核源碼解讀的代入感,筆者最終選擇0.11版Linux內核作為操作系統課程的教學資源.

針對課程設置,筆者結合多年的操作系統教學經驗,將進程調度教學環節規劃為四大部分:一、進程調度概述,讓學生對進程調度概念有一個大致的了解;二、進程調度步驟宏觀解讀,通過引入Linux實例展示其進程調度的基本步驟;三、進程調度機制微觀探索,通過分析schedule函數源代碼,讓同學了解真實操作系統中進程調度算法的核心內容;四、調度算法優化實踐,通過改進源代碼,提升操作系統內核多進程調度質量,使學生對進程調度算法的解讀得到升華.

2 進程調度概述

進程調度的基本內容,包括進程調度的基本概念、進程調度的目標、進程調度算法以及各種算法的應用場景.進程調度的主要算法有:先來先服務算法、短作業優先算法、靜/動態優先級算法、時間片輪轉法等.評估算法的指標有CPU的運行效率、進程運行公平性、響應及時性、內存吞吐量等幾方面因素.

上述提及的這些目標不可兼備,在講授這些指標性能取舍問題時,筆者利用各種真實操作系統進行列舉,如UNIX采用動態優先數調度、BSD采用多級反饋隊列調度、Windows采用搶先式多任務調度等[4].通過舉例,讓學生對調度算法不同的應用場景有一個感性的認識.

3 進程調度步驟宏觀解讀

為了讓同學了解0.11版Linux內核進程調度的運行機理,在宏觀上筆者基于主要源文件對進程調度的步驟進行解讀,如圖1所示:

通過此結構圖,學生可以了解到主程序文件(main.c)對進程調度進行了初始化操作,即執行shed_init()函數.而調用的sched_init()函數來自進程調度程序文件(sched.c),此時筆者要強調sched.c文件的重要作用,因為這是進程調度的核心.同時,作為進程調度的依據,進程控制塊PCB源自頭文件sched.h中的task_struct結構體.操作系統利用中斷使用戶態切換至內核態,因此要設置中斷門(set_intr_gate),執行時鐘中斷處理指令(_timer_interrupt).在中斷處理指令中調用了do_timer函數,此函數執行時間片輪轉.最后,利用sched.c文件中的進程調度函數schedule(),引出進程調度的核心算法.

經過以上步驟的解讀,學生大致了解了0.11版Linux內核進程調度的基本流程,即操作系統通過時間片時鐘中斷語句,以進程調度算法為依據對下一個進程進行調度處理.

4 進程調度機制微觀探索

進程調度的實現應具備三個基本機制,分別是進程隊列,進程分派程序和上下文切換機制[5].筆者分別針對三大模塊實現的核心代碼,引導學生進行逐層剖析.

4.1 進程隊列

首先將調度進程頭文件sched.h作為切入點,此文件主要包含進程控制塊task_struct結構體.而進程隊列的實現是由結構體數組構成,通過剛才提及的進程調度核心文件sched.c中第65行代碼可以進行例證,核心代碼如下:

struct task_struct *task[NR_TASKS];

4.2 進程分派程序

進程分派的核心是選擇進程,而選擇的依據是task_struct結構體,涉及counter和priority兩個元素,分別表示任務運行時間片和運行優先數.當定義好結構體后,程序又以宏定義的方式對結構體元素進行了初始化操作(#define INIT_TASK),其中counter和priority的初始值都設置為15.基于以上的描述,學生意識到0.11版Linux內核對每個新進程都以相同的時間片和優先數進行初始化配置.

其次,要深入解讀sched.c文件的scedule()函數,這是進程調度的核心.這部分代碼根據進程的時間片和優先權調度機制,來選擇隨后要執行的任務.它首先循環檢查進程控制塊數組中的所有進程,根據每個就緒態任務剩余執行時間的值counter,選取該值最大的一個任務,并利用switch_to()函數切換到該任務[6].核心代碼如下:

每當選擇出一個新的可運行進程時,schedule()函數就會調用定義在include/asm/system.h中的switch_to()宏執行實際進程切換操作.該宏利用匯編語句把CPU的當前進程狀態(上下文)替換成新進程的狀態.筆者通過圖的方式對其過程進行了解讀,學生對操作系統控制CPU進行進程切換有了直觀的認識,如圖2所示:

5 調度算法優化實踐

現代分時操作系統中,目前公認的一種較好的進程調度算法是采取多級反饋隊列調度算法,如圖3所示.

基于此,筆者優化了0.11版Linux內核調度算法,即將授課過程中涉及的程序文件進行代碼修改,并編譯運行內核,達到進程調度的預期效果.在此教學過程中,學生們即感受到多級反饋調度的優勢,也加強了解讀內核源代碼的能力.

6 小結

進程調度是操作系統課程的重點和難點,筆者嘗試通過解讀Linux內核源代碼,并運用探索啟發式教學方法,讓學生生動理解操作系統進程調度的過程.在操作系統課程體系的其他環節,也可以嘗試引入Linux內核源代碼作為教學參考資料,真正做到理論聯系實際,從而提高學生主動實踐、積極探索、終身學習的能力.

參考文獻:

〔1〕羅嬌敏.操作系統進程同步和互斥教學方法研究[J].教育教學論壇,2017(44):255-256.

〔2〕吳淑泉.高校“Linux操作系統”課程教學研究與探索[J].教育理論與實踐,2017(33):57-58.

〔3〕Latest Stable Kernel.[EB/OL].https://www.kernel.org/pub.

〔4〕陳莉君,康華.Linux操作系統原理與應用(第2版)[M].北京:清華大學出版社,2016.64-65.

〔5〕湯小丹,梁紅兵.計算機操作系統(第3版)[M].陜西:西安電子科技大學出版社,2012.86-87.

〔6〕趙炯.Linux內核完全注釋[M].北京:機械工業出版社,2017.92-97.

〔7〕趙炯.Linux內核完全剖析[M].北京:機械工業出版社,2017.130.

猜你喜歡
教學方法
初中英語寫作教學方法初探
甘肅教育(2020年2期)2020-09-11 08:01:42
教學方法與知識類型的適宜
數學復習教學方法
高中體育教學方法初探
學周刊(2016年23期)2016-09-08 08:57:30
淺談高等數學中教學方法的創新
實用型中醫人才培養中慕課教學方法的探討
文言文教學方法實踐初探
中學語文(2015年21期)2015-03-01 03:52:15
高中文言文教學方法之我見
中學語文(2015年21期)2015-03-01 03:52:15
初中數學教師不可忽視的幾種教學方法
散文百家(2014年11期)2014-08-21 07:17:18
語文閱讀教學方法略談
主站蜘蛛池模板: 天天躁日日躁狠狠躁中文字幕| 无码福利视频| 国产福利一区在线| 国产成年女人特黄特色毛片免 | 国产一区二区免费播放| 亚洲精品动漫| 人人澡人人爽欧美一区| 国产一区二区人大臿蕉香蕉| 91福利免费| 无码内射中文字幕岛国片| 亚洲色图欧美在线| 国产极品美女在线播放| 中字无码av在线电影| 影音先锋丝袜制服| 午夜无码一区二区三区| 欧美成人a∨视频免费观看| 少妇被粗大的猛烈进出免费视频| 国内熟女少妇一线天| 又黄又湿又爽的视频| 亚洲黄色激情网站| 91精品情国产情侣高潮对白蜜| 欧美成人影院亚洲综合图| 精品一區二區久久久久久久網站| 91青青草视频| 亚洲精品视频免费| 欧美一道本| 久久频这里精品99香蕉久网址| 一本综合久久| 成人字幕网视频在线观看| 亚洲天堂视频在线播放| 久久久久人妻精品一区三寸蜜桃| 久久96热在精品国产高清| 99re热精品视频中文字幕不卡| a级毛片免费看| 夜精品a一区二区三区| 国产麻豆aⅴ精品无码| 青青国产视频| a亚洲视频| 国产激情第一页| 一级毛片a女人刺激视频免费| 天堂网亚洲综合在线| 在线欧美国产| 香蕉精品在线| 国产成人成人一区二区| 在线a视频免费观看| 在线免费看片a| 欧美色图第一页| 亚洲系列无码专区偷窥无码| 国产欧美日韩va| 国产精品男人的天堂| 国产精品区网红主播在线观看| 欧美国产在线一区| 97精品久久久大香线焦| 中文字幕自拍偷拍| 免费午夜无码18禁无码影院| 国产亚洲高清在线精品99| 在线欧美a| 久久亚洲国产一区二区| 国产美女精品在线| 亚洲三级色| 亚洲无码高清免费视频亚洲| 国产黑丝一区| 亚洲高清在线天堂精品| 久久成人18免费| 免费人成在线观看成人片| 亚洲AⅤ波多系列中文字幕| 亚洲午夜福利精品无码| 欧美a级完整在线观看| 成人在线观看不卡| 九九热在线视频| 亚洲欧美在线综合一区二区三区| 久久a毛片| 国产精品精品视频| 在线无码私拍| h视频在线播放| 高清国产在线| 福利视频一区| 国产精品无码在线看| 强乱中文字幕在线播放不卡| 99精品热视频这里只有精品7| 国产91无码福利在线| 国产女人18毛片水真多1|