全球旧事资料 分类
软件学院操作系统实验报告
实验题目:
实验二、线程和进程线程管道通信实验学号:201100300124日期:2013年04月19日班级:5班姓名:韩俊晓Email:ha
ju
xiao188gmailcom
实验目的:
通过Li
ux系统中线程和管道通信机制的实验加深对于线程控制和管道通信概念的理解观察和体验并发进线程间的通信和协作的效果练习利用无名管道进行进线程间通信的编程和调试技术。实验要求:设有二元函数fxyfxfy其中:fxfx1xx1fx1x1fyfy1fy2y2fy1y12请编程建立3个并发协作进程(或线程),它们分别完成fxy、fx、fy其中由父进程(或主线程)完成:fxyfxfy由子进程1(或线程1)完成:fxfx1xx1fx1x1
f由子进程2(或线程2)完成:fyfy1fy2y2fy1y12硬件环境:实验室计算机软件环境:Ubu
tu084-Li
ux操作系统BASH_VERSION32331releasegccversio
412gedit2182Ope
Office23实验步骤:1实验说明:1)与线程创建、执行有关的系统调用说明线程是在共享内存中并发执行的多道执行路径它们共享一个进程的资源如进程程序段、文件描述符和信号等但有各自的执行路径和堆栈。线程的创建无需像进程那样重新申请系统资源线程在上下文切换时也无需像进程那样更换内存映像。多线程的并发执行即避免了多进程并发的上下文切换的开销又可以提高并发处理的效率。Li
ux利用了特有的内核函数__clo
e实现了一个叫phread的线程库__clo
e是fork函数的替代函数通过更多的控制父子进程共享哪些资源而实现了线程。Pthread是一个标准化模型用它可把一个程序分成一组能够并发执行的多个任务。phread线程库是POSIX线程标准
f的实现它提供了C函数的线程调用接口和数据结构。线程可能的应用场合包括在返回前阻塞的IO任务能够使用一个线程处理IO同时继续执行其他处理。需要及时响应多个前台用户界面操作同时后台处理的多任务场合。在一个或多个任务受不确定事件影响时能够处理异步事件同时继续进行正常处理。如果某些程序功能比其他功能更重要可以使用线程以保证所有功能都出现但那些时间密集型的功能具有更高优先级。
2)下面介绍pthread库中最基本的调用。pthread_create系统调用语法i
cludepthreadhI
tpthread_createpthread_tthreadpthread_attr_tattrvoidstart_routi
evoidVoidargpthread_create函数创建一个新的线程。pthread_create在thread中保存新线程的标识符。Attr决定了线程应用那种线程属性。使用默认可给定参数NULLstart_routi
e是一个指向新线程中要执r
好听全球资料 返回顶部