課件操作系統(tǒng)線程_第1頁
課件操作系統(tǒng)線程_第2頁
課件操作系統(tǒng)線程_第3頁
課件操作系統(tǒng)線程_第4頁
課件操作系統(tǒng)線程_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)操作系統(tǒng)教計(jì)算機(jī)操作系統(tǒng)教師:王助教:王振趙玉龍王宇王魯82316284,wanglei@,【案例】編寫一個MP3播放軟件。核心功能模塊有三個:(1)【案例】編寫一個MP3播放軟件。核心功能模塊有三個:(1)從MP3音頻文件當(dāng)中讀取數(shù)據(jù);(2)對數(shù)據(jù)進(jìn)行解壓縮;(3)把解壓縮后的音頻數(shù)據(jù)播放出來。問題:播放出來的問題:播放出來的聲音能否main(){Read();Play();}}Read(){…}Decompress(){…}Play(){…}?貫?線程需要提出一種新的實(shí)體,滿足以下特性:實(shí)線程需要提出一種新的實(shí)體,滿足以下特性:實(shí)體之間可以并發(fā)地執(zhí)行;實(shí)體之間共享相同的地址空間;北京航空航天大計(jì)算機(jī)學(xué)王進(jìn)程包含了兩個概念:資源擁有者和可執(zhí)行單元。現(xiàn)代操作系統(tǒng)將資源擁有者稱為進(jìn)程(process,可執(zhí)行單元稱為線程。進(jìn)程包含了兩個概念:資源擁有者和可執(zhí)行單元?,F(xiàn)代操作系統(tǒng)將資源擁有者稱為進(jìn)程(process,可執(zhí)行單元稱為線程。減小進(jìn)程切換的開銷提高進(jìn)程內(nèi)的并發(fā)程度共享資源減小進(jìn)程切換的開銷提高進(jìn)程內(nèi)的并發(fā)程度共享資源線程:進(jìn)程:線程:進(jìn)程:??撤消進(jìn)程進(jìn)程切換?????引入進(jìn)程好處?多個程序可以并引入進(jìn)程好處?多個程序可以并發(fā)執(zhí)行,改善資源使用率,提高系統(tǒng)效率引入線程好處減少并發(fā)程序執(zhí)行時所付出的時空開銷,使得并發(fā)粒?細(xì)、并發(fā)性更MSDOS是單進(jìn)程、單線程系統(tǒng);UNIX是多進(jìn)程系統(tǒng),但每個進(jìn)程一個線程;JAVAMSDOS是單進(jìn)程、單線程系統(tǒng);UNIX是多進(jìn)程系統(tǒng),但每個進(jìn)程一個線程;JAVA是單進(jìn)程、多線程系統(tǒng);NT、OS/2、SALORIS、MACH是多進(jìn)程和多線程系統(tǒng),每個進(jìn)程有多個線程。1:1(UNIX系統(tǒng)1:M(NT1:1(UNIX系統(tǒng)1:M(NT、OS/2、SALORIS、MACH)useruserkerneluserthreads是在使用者空間,透過library模擬的userthreads是在使用者空間,透過library模擬的switching比較快,因?yàn)椴挥酶膒agetable等等東西,使用起來較為輕便快速.userthreads提供操控視窗系POSIXMachC-kernelthreads就kernelthreads就是kernel有好幾個分身,一個分身可以處理一件事的意思.這用來處理非同步事件很有用,kernel可以對每個非同步事件生個分身來處理.kernelthreads的操作非常輕便,幾乎沒有負(fù)擔(dān),而對Kernel的結(jié)構(gòu)有幫助.支援kernelthreads的kernel稱作multithreadedkernel.Examples:Windows95/98/NT/2000,Solaris,Tru64UNIX,LinuxMultithreadingMany-to-One-to-MultithreadingMany-to-One-to-Many-to-OperatingMany-to-OneOperatingMany-to-OneOperatingOne-to-oneOperatingOne-to-oneOperatingMany-to-OperatingMany-to-Operating線程線程編aPOSIXstandard(IEEEaPOSIXstandard(IEEE1003.1c)APIforthreadcreationandsynchronization.APIspecifiesbehaviorofthethreadlibrary,implementationisuptodevelopmentofthelibrary.CommoninUNIXoperatingSolaris2Solaris2OperatingLinux并不確切區(qū)分進(jìn)程與線程,而將線程定義為“執(zhí)行上下文”,它實(shí)際只是同一個進(jìn)程的另外一個執(zhí)行上下文而已。對于調(diào)度,仍然可以使用進(jìn)程的調(diào)度程序。LinuxLinux并不確切區(qū)分進(jìn)程與線程,而將線程定義為“執(zhí)行上下文”,它實(shí)際只是同一個進(jìn)程的另外一個執(zhí)行上下文而已。對于調(diào)度,仍然可以使用進(jìn)程的調(diào)度程序。Linux的內(nèi)核進(jìn)程,使用kernel_thread創(chuàng)建,一般被稱作線程。有兩個系統(tǒng)有兩個系統(tǒng)調(diào)用可用以建立新的進(jìn)程:fork與clone。fork一般用以創(chuàng)建普通進(jìn)程,而clone可用以創(chuàng)建線程,kernel_thread便是通過sys_clone來創(chuàng)建新的內(nèi)核進(jìn)程。fork與clone都調(diào)用do_fork函數(shù)執(zhí)行創(chuàng)建進(jìn)程的操作。fork并不指定克隆標(biāo)志,而clone可由用戶指定克CLONE_VM、CLONE_FILESCLONE_SIGHANDCLONE_PID等,這些克隆標(biāo)志分別對應(yīng)相應(yīng)的進(jìn)程共享機(jī)制。而fork創(chuàng)建普通進(jìn)程則使用SIGCHLD標(biāo)志。CLONE_VM。父子進(jìn)程共CLONE_VM。父子進(jìn)程共享同一個mm_struct結(jié)構(gòu),這個克隆標(biāo)志用以創(chuàng)建一個線程。由于兩個進(jìn)程都使用同一個mm_struct結(jié)構(gòu),于是這兩個進(jìn)程的指令、數(shù)據(jù)都共享,也就

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論