欢迎来到天天文库
浏览记录
ID:37139760
大小:194.50 KB
页数:9页
时间:2019-05-18
《线程的创建与撤销》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.师范大学操作系统(本科)实验报告院系:计算机科学技术学院班级:学生姓名:学号:20141602141041指导教师:教师评阅结果:教师评语:实验日期年月日..实验名称:实验二:线程的创建与撤销一、实验目的和要求:熟悉windows系统提供线程的创建与撤销系统调用。掌握windows系统环境下的线程的创建与撤销方法。二、实验内容:使用系统调用createthread()创建一个子线程,并在子线程中显示:threadisruning!,并使用sleep()使线程挂起5s之后使用exitthread(0)撤销线程。三、实验技术和方法:1.创建线程
2、2.撤销线程3.终止线程四、实验环境:使用vc++6.0五、实验步骤和结果:....实验代码:#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////TheoneandonlyapplicationobjectCWinApptheApp;usingnamespacestd;..v
3、oidThreadName1();staticHANDLEhHandle1=NULL;DWORDdwThreadID1;int_tmain(intargc,TCHAR*argv[],TCHAR*envp[]){intnRetCode=0;hHandle1=CreateThread((LPSECURITY_ATTRIBUTES)NULL,0,(LPTHREAD_START_ROUTINE)ThreadName1,(LPVOID)NULL,0,&dwThreadID1);Sleep(5000);CloseHandle(hHandle1);Exit
4、Thread(0);returnnRetCode;}voidThreadName1(){..printf("Threadisruning!");}六、结果分析:在主线程创建了子线程后,将主线程挂起5s以确保子线程运行完毕,之后调用exitthread()将所有子线程撤销。七、课后习题7、PCB的作用具体表现在哪几个方面,为什么说PCB是进程的唯一标志?1、进程控制块:进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(包含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。2、程序段:是进程中能被进程调度程序在C
5、PU上执行的程序代码段。3、程序段:是进程中能被进程调度程序在CPU上执行的程序代码段执行后产生的中间或最终数据。4、进程控制块(ProcessContro1B1ock,简称PCB)是用来记录进程状态及其他相关信息的数据结构,PCB是进程存在的唯一标志,PCB存在则进程存在。系统创建进程时会产生一个PCB,撤销进程时,PCB也自动消失。11.进程在三个基本状态之间转换的典型原因..(1)处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程就由就绪状态变为执行状态(2)正在执行的进程因发生某事件而无法执行,如暂时无法取得所需资源,则由执
6、行状态转变为阻塞状态。(3)正在执行的进程,如因时间片用完或被高优先级的进程抢占处理机而被暂停执行,该进程便由执行转变为就绪状态21.从调度、并发性、拥有资源、系统开销比较线程与进调度:在传统的操作系统中,CPU调度和分派的基本单位是进程。而在引入线程的操作系统中,则把线程作为CPU调度和分派的基本单位,进程则作为资源拥有的基本单位,从而使传统进程的两个属性分开,线程编程轻装运行,这样可以显著地提高系统的并发性。统一进程中线程的切换不会引起进程切换,从而避免了昂贵的系统调用。但是在由一个进程中的线程切换到另一进程中的线程,依然会引起线程切换。
7、并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个进程之间也可以并发执行,因而使操作系统具有更好的并发性,从而更有效地是有系统资源和提高系统的吞吐量。例如,在一个为引入线程的单CPU..操作系统中,若仅设置一个文件服务进程,当它由于某种原因被封锁时,便没有其他的文件服务进程来提供服务。在引入线程的操作系统中,可以在一个文件服务进程设置多个服务线程。当第一个线程等待时,文件服务进程中的第二个线程可以继续运行;当第二个线程封锁时,第三个线程可以继续执行,从而显著地提高了文件服务的质量以及系统的吞吐量。 系统开销:不论
8、是引入了线程的操作系统,还是传统的操作系统,进程都是拥有系统资源的一个独立单位,他可以拥有自己的资源。一般地说,线程自己不能拥有资源(也有一点必不可少的资源),但它
此文档下载收益归作者所有