1 / 3
文档名称:

山大操作系统实验1.docx

格式:docx   大小:79KB   页数:3页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

山大操作系统实验1.docx

上传人:雨林书屋 2024/3/23 文件大小:79 KB

下载得到文件列表

山大操作系统实验1.docx

相关文档

文档介绍

文档介绍:该【山大操作系统实验1 】是由【雨林书屋】上传分享,文档一共【3】页,该文档可以免费在线阅读,需要了解更多关于【山大操作系统实验1 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。操作系统原理实验报告—— 实验一张咪 软件工程四班一、 实验目的加深对于进程并发执行概念的理解。实践并发进 /线程的创建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。练****Linux系统中进/线程创建与控制有关的系统调用的编程和调试技术。二、 实验要求编写一个多进程并发执行程序。 父进程每隔 3秒重复建立两个子进程, 首先创建的让其执行ls命令,之后创建执行让其执行 ps命令,并控制 ps命令总在 ls命令之前执行。三、实验软硬件环境实验环境均为 Linux操作系统,开发工具为 gcc和g++。四、实验思路调用fock() 创建子进程。创建键盘中断信号后, 使用pause()可以暂停子进程执行, 继续创建新的子进程。子进程并发执行子进程可以首先通过键盘中断信号唤醒子进程。 通过exec()调用族装入一个新的执行程序。 在建立子进程 2并且唤醒子进程 1后子进程 sleep(seconds5)。这样就可以先执行ps后执行ls。。最后就是父进程的结束,程序结束。五、实验模型pid1=fork ()pid1=0子进程1 pid1>0父进程 pid1<0错误执行ps指令 pid2=fork ()pid2=0子进程b pid2>0父进程 pid2<0错误执行ls 每隔三秒重复建立两六、调试排错1、首先遇到的问题是,对 linux 的操作不熟悉,不太明白 makefile 怎么使用,直接用了gcc2、在创建多个子进程上遇到了问题,在 fock()后又直接跟了一个 fork(),这样创建的子进程是子进程的子进程,而不是父进程创建的第二个子进程。所以应该在 else 语句块后面,也就是主进程执行段继续创建。一般情况下, fork() 按如下规则编程:main(){pid_tpid;pid=fork();if(pid<0){n",getpid());}}}}}return (ESS);}#include<sys/>#include<>#include<>#include<>#include<>#include<>typedefvoid(*sighandler_t)(int);voidsigcat(){printf("Processcontinue\n");}