欢迎来到天天文库
浏览记录
ID:37697225
大小:258.59 KB
页数:21页
时间:2019-05-29
《中科大操作系统原理与实现课件4_Threads2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、操作系统原理与设计第4章Threads2(线程2)陈香兰中国科学技术大学计算机学院December20,2009......提纲OSExamplesforThreadThreadSchedulingOSExamplesforThreadScheduling小结和作业......OutlineOSExamplesforThreadThreadSchedulingOSExamplesforThreadScheduling小结和作业......WindowsXPThreadsIIAnWindowsXPapplicat
2、ionrunsasaseperateprocess,andeachprocessmaycontainoneormorethreads.IImplementstheone-to-onemappingIeachuser-levelthreadmapstoanassotiatedkernelthreadIanythreadbelongingtoaprocesscanaccesstheaddressspaceoftheprocessIEachthreadcontainsIAthreadidIRegistersetISe
3、parateuserandkernelstacksIPrivatedatastorageareaITheregisterset,stacks,andprivatestorageareaareknownasthecontextofthethreads......WindowsXPThreadsIIITheprimarydatastructuresofathreadinclude:IETHREAD(executivethreadblock)IKTHREAD(kernelthreadblock)ITEB(thread
4、environmentblock)......WindowsXPThreadsIII......LinuxThreadsILinuxreferstothemastasksratherthanthreadsIThreadcreationisdonethroughclone()systemcallIclone()allowsachildtasktosharetheaddressspaceoftheparenttask(process)Iclone()VS.fork()......JavaThreadsIJava在语
5、言级提供线程创建和管理支持功能IJavathreadsaremanagedbytheJVM,notuser-levellibraryorkernelIJavathreadsmaybecreatedby:IExtendingThreadclassIImplementingtheRunnableinterfaceJava......ThreadStates......OutlineOSExamplesforThreadThreadSchedulingOSExamplesforThreadScheduling小结和作
6、业......ThreadSchedulingIuser-levelthread:kernel-levelthread(orLWP)ILocalScheduling–HowthethreadslibrarydecideswhichthreadtoputontoanavailableLWPImany-to-one,many-to-manymodelsIprocess-contentionscope,PCSIGlobalScheduling–Howthekerneldecideswhichkernelthreadt
7、orunnextImany-to-one,many-to-many&one-to-onemodelsIsystem-contentionscope,SCS......PthreadSchedulingAPIIIPOSIXPthreadAPIallowsspecifyingeitherPCSorSCSduringthreadcreationIPTHREADSCOPEPROCESS,many-to-manyIPTHREADSCOPESYSTEM,one-to-oneIcreateandbindanLWPforeac
8、huser-levelthreadIexample#include#include#defineNUMTHREADS5intmain(intargc,char*argv[])finti;pthreadttid[NUMTHREADS];pthreadattrtattr;pthreadattrinit(&attr);/*getthedefaultatt
此文档下载收益归作者所有