操作系统实验报告2doc.docx
- 文档编号:5389397
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:6
- 大小:17.72KB
操作系统实验报告2doc.docx
《操作系统实验报告2doc.docx》由会员分享,可在线阅读,更多相关《操作系统实验报告2doc.docx(6页珍藏版)》请在冰点文库上搜索。
操作系统实验报告2doc
操作系统实验报告2
篇一:
操作系统实验二实验报告
操作系统实验报告
——实验二:
线程和管道通信实验
一、实验目的
通过Linux系统中线程和管道通信机制的实验,加深对于线程控制和管道通信概念的理解,观察和体验并发进(线)程间的通信和协作的效果,练习利用无名管道进行进(线)程间通信的编程和调试技术。
二、实验说明
1)与线程创建、执行有关的系统调用说明
线程是在共享内存中并发执行的多道执行路径,它们共享一个进程的资源,如进程程序段、文件描述符和信号等,但有各自的执行路径和堆栈。
线程的创建无需像进程那样重新申请系统资源,线程在上下文切换时也无需像进程那样更换内存映像。
多线程的并发执行即避免了多进程并发的上下文切换的开销又可以提高并发处理的效率。
pthread库中最基本的调用。
1.pthread_create系统调用语法:
#include
Intpthread_create(pthread_t*thread,pthread_attr_t*attr,
void*(*start_routine)(void*)Void*arg);
pthread_create函数创建一个新的线程。
pthread_create在thread中保存新线程的标识符。
Attr决定了线程应用那种线程属性。
使用默认可给定参数NULL;(*start_routine)是一个指向新线程中要执行的函数的指针arg是新线程函数携带的参数。
Pthread_create执行成功会返回0并在thread中保存线程标识符。
执行失败则返回一个非0的出错代码
2.pthread_exit系统调用语法:
#include
voidpthread_exit(void*retval);
pthread_exit函数使用函数pthread_cleanup_push调用任何用于该线程的清除处理函数,然后中止当前进程的执行,返回retval。
Retval可以由父线程或其他线程通过pthread_join来检索。
一个线程也可以简单地通过从其初始化函数返回来终止。
3.pthread_join系统调用语法:
#include
intpthread_join(pthread_tth,void**thread_return);
intpthread_detach(pthread_tth);
函数pthread_join用于挂起当前线程,直到th指定的线程终止运行为止。
2)管道通信机制
管道pipe是进程间通信最基本的一种机制。
在内存中建立的管道称为无名管道,在磁盘上建立的管道称为有名管道。
无名管道随着进程的撤消而消失,有名管道则可以长久保存,shell命令符|建立的就是无名管道,而shell命令mkfifo建立的是有名管道。
两个进程可以通过管道一个在管道一端向管道发送其输出,给另一进程可以在管道的另一端从管道得到其输入.管道以半双工方式工作,即它的数据流是单方向的.因此使用一个管道一般的规则是读管道数据的进程关闭管道写入端,而写管道进程关闭其读出端。
管道既可以采用同步方式工作也可以采用异步方式工作。
三、实验内容
题目:
设有二元函数f(x,y)=f(x)+f(y)其中:
f(x)=f(x-1)*x(x>1)f(x)=1(x=1)f(y)=f(y-1)+f(y-2)(y>2)f(y)=1(y=1,2)
请编程建立3个并发协作进程,它们分别完成f(x,y)、f(x)、f(y)
(1)首先要创建三个线程,分别执行f(x)、f(y)和f(x,y)函数,通过pthread_create系统调用即可以创建相应的线程,若创建成功则返回0并保存线程标识符。
(2)线程之间的通信是通过管道实现,在内存中建立的管道称为无名管道,在磁盘上建立的管道称为有名管道。
无名管道随着线程的撤销而消失。
通过pipe系统调用即可创建相应的管道。
(3)管道通信的数据流是单方向的,管道的一端只能作为输入端或输出端,通过系统调用
read(intpipe_id,constvoid*buf,size_tcount)、
write(intpipe_id,constvoid*buf,size_tcount)即可实现管道的读出与写入。
(4)创建相应的线程和管道后,则要考虑相应线程的执行,这是要一个系统调用,
pthread_join(pthread_tth,void**thread_return)系统调用是将当前的线程挂起,直到线程th执行结束。
(5)线程运行结束,可以通过系统调用结束,
pthread_exit(void*retval)系统调用可以结束当前的线程。
四、实验结果
五、实验中遇到的错误:
编写完程序运行时,程序没有按照规定在限制的条件内结束,而是无限循环进行,由此可以判断出应该是有关循环的代码段出现错误,返回代码段,找到有循环的代码,仔细阅读将错误找到并改正,再次运行时,实验结果正确。
附:
实验代码
新建exp2.c文件并进入编辑
#include
#include
#include
intmain(intargc,char*argv[])
{
intpid1,pid2;//进程号
intpipe1[2];//存放第一个无名管道标号
intpipe2[2];//存放第二个无名管道标号
intx=1,y=1;
//使用pipe()系统调用建立两个无名管道。
建立不成功程序退出,执行终止if(pipe(pipe1)篇二:
操作系统实验报告二
武汉纺织大学《操作系统原理》课程实验报告
姓名:
班级:
学号:
实验时间:
XX年11月5日指导教师:
陈勇跃
实验名称:
进程调度与管理
篇三:
Windows操作系统实验二实验报告
Windows操作系统C/C++程序实验
姓名:
_____王晨璐_____学号:
____1131000046____班级:
____1班_____院系:
___信息工程学院___
__XX__年_10_月_26_日
实验二WindowsXX/xp进程控制
一、背景知识二、实验目的三、工具/准备工作四、实验内容与步骤
请回答:
Windows所创建的每个进程都是以调用CreateProcess()API函数开始和以调用TerminateProcess()或ExitProcess()API函数终止。
1.创建进程
步骤5:
编译完成后,单击“Build”菜单中的“Build2-1.exe”命令,建立2-1.exe可执行文件。
操作能否正常进行?
如果不行,则可能的原因是什么?
可以正常运行。
清单2-1展示的是一个简单的使用CreateProcess()API函数的例子。
首先形成简单的命令
行,提供当前的EXE文件的指定文件名和代表生成克隆进程的号码。
大多数参数都可取缺省值,但是创建标志参数使用了:
CREATE_NEW_CONSOLE
标志,指示新进程分配它自己的控制台,这使得运行示例程序时,在任务栏上产生许多活动标记。
然后该克隆进程的创建方法关闭传递过来的句柄并返回main()函数。
在关闭程序之前,每一进程的执行主线程暂停一下,以便让用户看到其中的至少一个窗口。
CreateProcess()函数有10个核心参数?
本实验程序中设置的各个参数的值是:
a.LPCSTRlpApplivetionNameszFllenameb.LPCSTRlpCommandLineszCmdLine
c.LPSECURITY_ATTRIBUTESlpProcessAttributesNULLd.LPSECURITY_ATTRIBUTESlpThreadAttributesNULLe.BOOLbInherithandleFalse
f.DWORDdwCreationFlageCREATE_NEW_CONSOLEg.LPVOIDipEnvironmentNULLh.LPCTSTRlpCurrentDirectoryNULLI.STARTUPINFOlpstartupinfo&si
J.LPPROCESS_INFORMATIONlpProcessInformation&
;pi程序运行时屏幕显示的信息是:
2.正在运行的进程
步骤10:
编译完成后,单击“Build”菜单中的“Build2-2.exe”命令,建立2-2.exe可执行文件。
操作能否正常进行?
如果不行,则可能的原因是什么?
可以正常运行
步骤11:
在工具栏单击“ExecuteProgram”(执行程序)按钮,执行2-2.exe程序。
运行结果:
当前PID信息:
3692当前操作系统版本:
5.1
系统提示信息:
taskmanagershouldnownowindicatethisprocessishighpriority.
清单2-2中的程序向读者表明了如何获得当前的PID和所需的进程版本信息。
为了运行这一程序,系统处理了所有的版本不兼容问题。
接着,程序演示了如何使用GetVersionEx()API函数来提取OSVERSIONINFOEX结构。
这一数据块中包括了操作系统的版本信息。
其中,“OS:
5.0”表示当前运行的操作系统是:
windowsXp5.0
5清单2-2的最后一段程序利用了操作系统的版本信息,以确认运行的是WindowsXX/xp。
代码接着将当前进程的优先级提高到比正常级别高。
步骤12:
单击Ctrl+Alt+Del键,进入“Windows任务管理器”,在“应用程序”选项卡中右键单击“2-2”任务,在快捷菜单中选择“转到进程”命令。
在“Windows任务管理器”的“进程”选项卡中,与“2-2”任务对应的进程映像名称是(为什么?
):
VCSPAWN.EXE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 报告 doc
![提示](https://static.bingdoc.com/images/bang_tan.gif)