操作系統(tǒng)中線程概念的教學(xué)方法研究_第1頁
操作系統(tǒng)中線程概念的教學(xué)方法研究_第2頁
操作系統(tǒng)中線程概念的教學(xué)方法研究_第3頁
操作系統(tǒng)中線程概念的教學(xué)方法研究_第4頁
操作系統(tǒng)中線程概念的教學(xué)方法研究_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、操作系統(tǒng)中線程概念的教學(xué)方法研究操作系統(tǒng)中線程概念的教學(xué)方法研究1.引言在?操作系統(tǒng)?課程中,線程是非常重要的概念之一,但由于其抽象性,學(xué)生在掌握理解時(shí)有一定難度,歷論文聯(lián)盟.Ll.來都是教學(xué)難點(diǎn)。我在參加全國高校操作系統(tǒng)課程培訓(xùn)交流時(shí),發(fā)現(xiàn)很多授課教師對(duì)線程的概念很模糊,解釋不清為何線程切換付出的時(shí)空代價(jià)比進(jìn)程切換小,學(xué)生更是一頭霧水。本文有針對(duì)性地采用實(shí)例教學(xué)和原理比擬教學(xué),注重對(duì)學(xué)生興趣的培養(yǎng),采用將理論與理論相結(jié)合的教學(xué)方法,翻開學(xué)生的謎團(tuán),徹底理解線程的概念。授課中先以生活中生動(dòng)的實(shí)例解釋概念,使學(xué)消費(fèi)生最直觀的認(rèn)識(shí)和理解,然后從原理出發(fā),揭開線程的面紗。理解線程,必須首先掌握程序、

2、進(jìn)程的概念,本文首先介紹程序、進(jìn)程和線程的關(guān)系與區(qū)別,其次進(jìn)一步從原理出發(fā)解釋進(jìn)程和線程切換過程及切換中系統(tǒng)付出的代價(jià),最后提出通過線程仿真編程使學(xué)生徹底掌握線程的概念。2.程序、進(jìn)程和線程的關(guān)系與區(qū)別2.1程序和進(jìn)程程序Prgra是為實(shí)現(xiàn)特定目的或解決特定問題而用計(jì)算機(jī)語言編寫的命令序列的集合,是存儲(chǔ)在外存儲(chǔ)器的,是靜態(tài)的。而進(jìn)程Press那么是程序的一次執(zhí)行過程,是動(dòng)態(tài)的。對(duì)此概念的理解可以使用例子:可以把一首歌曲的曲譜看成是程序,根據(jù)曲譜演奏音樂就是進(jìn)程,曲譜可以長期保存,而演奏是個(gè)動(dòng)態(tài)的過程,同一個(gè)曲譜可以屢次演奏,一次演奏也可以綜合多個(gè)曲譜。關(guān)于進(jìn)程的進(jìn)一步講解如下。程序在運(yùn)行過程中

3、需要占有計(jì)算機(jī)的各種資源才能運(yùn)行。假如任一時(shí)刻,系統(tǒng)中只有一道程序,即單道程序系統(tǒng),程序那么在整個(gè)運(yùn)行過程中獨(dú)占計(jì)算機(jī)全部資源,整個(gè)程序運(yùn)行的過程就非常簡單,管理起來也非常容易。比方說當(dāng)今的房價(jià)和租金都非常高,假如一個(gè)職員A單獨(dú)租了一套房子,他想看電視就看電視,想去衛(wèi)生間就去衛(wèi)生間,就沒人和他搶占資源。但為了進(jìn)步資源利用率和系統(tǒng)處理才能,現(xiàn)代計(jì)算機(jī)系統(tǒng)都是多道程序系統(tǒng),即多道程序并發(fā)執(zhí)行。程序的并發(fā)執(zhí)行帶來了一些新的問題,如資源的共享與競爭,它會(huì)改變程序的執(zhí)行速度。好比上例中由于租金過高,A經(jīng)濟(jì)壓力過大,只好和B合租一套,當(dāng)A想去衛(wèi)生間的時(shí)候,假如此時(shí)B在使用衛(wèi)生間,那么A只得等待,影響了A的

4、節(jié)奏。假如程序執(zhí)行速度不當(dāng),就會(huì)導(dǎo)致程序的執(zhí)行結(jié)果失去封閉性和可再現(xiàn)性,這是我們不希望看到的。因此應(yīng)該采取措施制約、控制各并發(fā)程序段的執(zhí)行速度。由于程序是靜態(tài)的,我們看到的程序是存儲(chǔ)在存儲(chǔ)介質(zhì)上的,它無法反映出程序執(zhí)行過程中的動(dòng)態(tài)特性,而且程序在執(zhí)行過程中不斷申請(qǐng)資源,程序作為共享資源的根本單位是不適宜的,需要引入一個(gè)概念,它能描繪程序的執(zhí)行過程而且可以作為共享資源的根本單位,這個(gè)概念就是進(jìn)程。2.2進(jìn)程和線程在操作系統(tǒng)中引入進(jìn)程的目的是使多個(gè)程序并發(fā)執(zhí)行,改善資源利用率及進(jìn)步系統(tǒng)的吞吐量;再引入線程Thread那么是為了減少程序并發(fā)執(zhí)行時(shí)付出的時(shí)空開銷,使操作系統(tǒng)具有更好的并發(fā)性。線程其實(shí)并

5、不是一個(gè)新的概念,實(shí)際上它是進(jìn)程概念的延伸。假如一個(gè)程序只有一個(gè)進(jìn)程就可以處理所有的任務(wù),它就是單一線程的。假如一個(gè)程序可以被分解為多個(gè)進(jìn)程共同完成程序的任務(wù),這個(gè)程序被分解的不同進(jìn)程就叫做線程如圖1,也叫輕量級(jí)進(jìn)程LightEightPresses。線程有幾種形式,如單線程、單元線程形式和自由線程形式。為了使學(xué)生理解線程概念,可以將程序比喻成一個(gè)搬家的過程:將所有物品從一所房子搬到另外一所房子。假如采用單線程方法,就需要你自己完成從打包到扛箱子、運(yùn)輸再到拆包的所有工作。假如使用多線程的單元形式,表示邀請(qǐng)了幾位朋友來幫助,每個(gè)朋友都負(fù)責(zé)一個(gè)單獨(dú)的工作,并且不能幫助其別人,他們各自負(fù)責(zé)自己空間內(nèi)

6、的物品搬運(yùn)。假如采用自由線程形式,邀請(qǐng)來的所有朋友就可以隨時(shí)在任何一個(gè)房間工作,共同打包物品。例子中搬家就是運(yùn)行所有線程的進(jìn)程,參與搬家的每個(gè)朋友所承當(dāng)?shù)墓ぷ鞫际且粋€(gè)線程。顯然使用線程可以更有效、更迅速地執(zhí)行程序。3.對(duì)線程的進(jìn)一步理解線程為輕量級(jí)進(jìn)程,也是PU調(diào)度和分派的根本單元,線程不可以獨(dú)立執(zhí)行,必須依存在某個(gè)進(jìn)程中;進(jìn)程那么被稱為重量級(jí)進(jìn)程,它是系統(tǒng)分配資源的單位,可擁有多個(gè)線程,能同時(shí)執(zhí)行多個(gè)任務(wù),他們之間的關(guān)系可以簡單地由圖2表示。線程和進(jìn)程的關(guān)系如下:線程是屬于進(jìn)程的,線程運(yùn)行在進(jìn)程空間內(nèi),同一進(jìn)程產(chǎn)生的線程共享同一內(nèi)存空間,當(dāng)進(jìn)程退出時(shí)該進(jìn)程產(chǎn)生的線程都會(huì)被強(qiáng)迫退出并去除。線程

7、可與屬于同一進(jìn)程的其他線程共享進(jìn)程擁有的全部資源,但是其本身根本上不擁有系統(tǒng)資源,只擁有一些在運(yùn)行中必不可少的信息如程序計(jì)數(shù)器、一組存放器和棧。此外,由于一個(gè)進(jìn)程中的多個(gè)線程具有一樣的地址空間,在同步和通信的實(shí)現(xiàn)方面線程也比進(jìn)程容易。在一些操作系統(tǒng)中,線程的切換、同步和通信都無須操作系統(tǒng)內(nèi)核的干預(yù)。由于進(jìn)程是一個(gè)資源的擁有者,因此在創(chuàng)立、撤銷和切換中,系統(tǒng)必須為之付出較大的時(shí)空開銷。在系統(tǒng)中設(shè)置的進(jìn)程,其數(shù)目不宜過多,進(jìn)程切換的頻率也不宜過高,這就限制了并發(fā)程度的進(jìn)一步進(jìn)步。引入線程后,因線程根本不攜帶資源,切換時(shí)系統(tǒng)付出的時(shí)空代價(jià)遠(yuǎn)小于進(jìn)程的切換,在這點(diǎn)上,很多教師講解不清為何線程攜帶資源少

8、,切換時(shí)付出的時(shí)空代價(jià)也小,下面分別介紹進(jìn)程切換和線程切換的過程,以便幫助教師和學(xué)生理解線程切換的代價(jià)為何遠(yuǎn)小于進(jìn)程切換,進(jìn)而對(duì)線程有更深化的認(rèn)識(shí)。3.1進(jìn)程的切換過程進(jìn)展進(jìn)程切換就是從正在運(yùn)行的進(jìn)程中收回處理器,然后使待運(yùn)行的進(jìn)程占用途理器。這里所說的從某個(gè)進(jìn)程收回處理器,本質(zhì)上就是把進(jìn)程存放在處理器的存放器中的中間數(shù)據(jù)找個(gè)地方存起來,從而把處理器的存放器騰出來讓其他進(jìn)程使用,被中止運(yùn)行進(jìn)程的中間數(shù)據(jù)那么被存在進(jìn)程的私有堆棧中。讓進(jìn)程占用途理器,那么是把該進(jìn)程存放在私有堆棧中存放器的數(shù)據(jù)前一次本進(jìn)程被中止時(shí)的中間數(shù)據(jù)再恢復(fù)到處理器的存放器中,并把待運(yùn)行進(jìn)程的斷點(diǎn)送入處理器的程序指針P,于是待

9、運(yùn)行進(jìn)程就開場被處理器運(yùn)行了,也就是這個(gè)進(jìn)程已經(jīng)占有處理器的使用權(quán)了。這好比教室的切換,第一大節(jié)課完畢后,正在使用教室的教師和學(xué)生帶著自己的物品分開教室,教師會(huì)記住這堂課講到課本的第幾頁,然后第二大節(jié)課在該教室上課的教師和學(xué)生進(jìn)入該教室,開場上課,這就是教室使用權(quán)切換的過程。在切換時(shí),一個(gè)進(jìn)程存儲(chǔ)在處理器各寄論文聯(lián)盟.Ll.存器中的中間數(shù)據(jù)叫做進(jìn)程的上下文,所以進(jìn)程的切換本質(zhì)上就是被中止運(yùn)行進(jìn)程與待運(yùn)行進(jìn)程上下文的切換。在進(jìn)程未占用途理器時(shí),進(jìn)程的上下文是存儲(chǔ)在進(jìn)程的私有堆棧中的。在進(jìn)程切換時(shí),被中止進(jìn)程保護(hù)斷點(diǎn)和待運(yùn)行進(jìn)程恢復(fù)斷點(diǎn)的示意圖,見圖3,被終止進(jìn)程需將處理器P存放器、PS等存放器的

10、值保存至被中止進(jìn)程的私有堆棧,SP存放器等值那么保存至進(jìn)程控制塊;待運(yùn)行進(jìn)程那么從進(jìn)程控制塊和私有堆棧中取出P值、SP值、PS值等上次被中斷時(shí)各存放器的值并送入處理器的各個(gè)存放器。在該過程中,需要保存和恢復(fù)的數(shù)據(jù)很多,系統(tǒng)付出的時(shí)間和空間代價(jià)比擬大。3.2線程切換過程線程作為獨(dú)立調(diào)度和分派的根本單位,只擁有在運(yùn)行中必需的少量資源程序計(jì)數(shù)器,一組存放器和棧,它和同屬一個(gè)進(jìn)程的其他線程共享進(jìn)程擁有的全部資源。在進(jìn)程切換時(shí),涉及當(dāng)前進(jìn)程PU環(huán)境的保存及新被調(diào)度運(yùn)行進(jìn)程的PU環(huán)境的設(shè)置,需要保存和恢復(fù)大量的數(shù)據(jù)。而同一進(jìn)程的線程切換那么僅需保存和設(shè)置少量存放器內(nèi)容,程序和數(shù)據(jù)的地址空間不變,即不涉及存

11、儲(chǔ)器管理方面的操作,故其切換代價(jià)遠(yuǎn)低于進(jìn)程。但假如從一個(gè)進(jìn)程中的線程切換到另一個(gè)進(jìn)程中的線程,就會(huì)引起進(jìn)程的切換。4.通過仿真實(shí)驗(yàn)掌握線程的概念在深化理解線程的概念后,對(duì)于程序設(shè)計(jì)根底比擬好的學(xué)生,使用V或JAVA語言多線程技術(shù)編寫線程的同步與互斥程序,使他們通過學(xué)習(xí)和實(shí)際動(dòng)手編寫程序更好地掌握線程的概念,進(jìn)步考慮和編程才能。5.結(jié)語線程是操作系統(tǒng)非常重要的概念,但因其概念抽象,不易理解,一直是教學(xué)難點(diǎn)之一,本文的實(shí)例教學(xué)和原理比擬教學(xué),可以使學(xué)生在短時(shí)間內(nèi)深化理解線程的概念,理論證明了該方法的有效性,實(shí)例教學(xué)進(jìn)步了學(xué)生對(duì)操作系統(tǒng)學(xué)習(xí)的興趣,后期的編程仿真增強(qiáng)了學(xué)生的編程才能,教學(xué)效果顯著。參考文獻(xiàn):1湯子贏,哲鳳屏,湯小丹.計(jì)算機(jī)操作系統(tǒng).西安電子科技大學(xué)出版社,2022.2陳渝,操作系統(tǒng)精華與

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論