中科大操作系统原理与实现课件4_Threads2.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:21 大小:258KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

中科大操作系统原理与实现课件4_Threads2.pdf

中科大操作系统原理与实现课件4_Threads2.pdf

预览

免费试读已结束,剩余 11 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

操作系统原理与设计第4章Threads2(线程2)陈香兰中国科学技术大学计算机学院December20,2009......提纲OSExamplesforThreadThreadSchedulingOSExamplesforThreadScheduling小结和作业......OutlineOSExamplesforThreadThreadSchedulingOSExamplesforThreadScheduling小结和作业......WindowsXPThreadsIIAnWindowsXPapplicationrunsasaseperateprocess,andeachprocessmaycontainoneormorethreads.IImplementstheone-to-onemappingIeachuser-levelthreadmapstoanassotiatedkernelthreadIanythreadbelongingtoaprocesscanaccesstheaddressspaceoftheprocessIEachthreadcontainsIAthreadidIRegistersetISeparateuserandkernelstacksIPrivatedatastorageareaITheregisterset,stacks,andprivatestorageareaareknownasthecontextofthethreads......WindowsXPThreadsIIITheprimarydatastructuresofathreadinclude:IETHREAD(executivethreadblock)IKTHREAD(kernelthreadblock)ITEB(threadenvironmentblock)......WindowsXPThreadsIII......LinuxThreadsILinuxreferstothemastasksratherthanthreadsIThreadcreationisdonethroughclone()systemcallIclone()allowsachildtasktosharetheaddressspaceoftheparenttask(process)Iclone()VS.fork()......JavaThreadsIJava在语言级提供线程创建和管理支持功能IJavathreadsaremanagedbytheJVM,notuser-levellibraryorkernelIJavathreadsmaybecreatedby:IExtendingThreadclassIImplementingtheRunnableinterfaceJava......ThreadStates......OutlineOSExamplesforThreadThreadSchedulingOSExamplesforThreadScheduling小结和作业......ThreadSchedulingIuser-levelthread:kernel-levelthread(orLWP)ILocalScheduling–HowthethreadslibrarydecideswhichthreadtoputontoanavailableLWPImany-to-one,many-to-manymodelsIprocess-contentionscope,PCSIGlobalScheduling–HowthekerneldecideswhichkernelthreadtorunnextImany-to-one,many-to-many&one-to-onemodelsIsystem-contentionscope,SCS......PthreadSchedulingAPIIIPOSIXPthreadAPIallowsspecifyingeitherPCSorSCSduringthreadcreationIPTHREADSCOPEPROCESS,many-to-manyIPTHREADSCOPESYSTEM,one-to-oneIcreateandbindanLWPforeachuser-levelthreadIexample#include<pthread.h>#includ