操作系统实验二(共5页).doc
《操作系统实验二(共5页).doc》由会员分享,可在线阅读,更多相关《操作系统实验二(共5页).doc(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上暨南大学本科实验报告专用纸一、实验目的通过进程的创建、撤销和运行加深对进程概念和进程并发执行的理解,明确进程与程序之间的区别。二、实验环境及设备(一)实验室名称:计算机实验室(二)主要仪器设备:PC机、Linux操作系统环境三、 实验内容(1)编写一段程序,使用系统调用fork()来创建两个子进程,并由父进程重复显示字符某字符串和自己的标识数,而子进程则重复显示某字符串和自己的标识数。(2)编写一段程序,使用系统调用fork()来创建一个子进程。子进程通过系统调用exec()更换自己的执行代码,显示新的代码后,调用exit()结束。而父进程则调用waitpid()等待
2、子进程结束,并在子进程结束后显示子进程的标识符,然后正常结束。四、 实验调试分析1、实验函数说明(1) fork()创建新进程要创建一个进程,最基本的系统调用是fork。系统调用fork用于派生一个进程,头文件:#include 函数定义:int fork( void ); 返回值:子进程中返回0,父进程中返回子进程ID,出错返回-1 函数说明:一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。子进程是父进程的副本,它将获得父进程数据空
3、间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间,它们之间共享的存储空间只有代码段。(2)exec函数族头文件:#include 函数族:int execl(const char *path, const char *arg, .);int execlp(const char *file, const char *arg, .);int execle(const char *path, const char *arg, const char *envp);int execv(const char *path, const char *ar
4、gv);int execve(const char *path, const char *argv, const char *envp;int execvp(const char *file, const char *argv);参数说明:execl的第一个参数是包括路径的可执行文件,后面是列表参数,列表的第一个为命令path,接着为参数列表,最后必须以NULL结束。execlp的第一个参数可以使用相对路径或者绝对路径。execle最后包括指向一个自定义环境变量列表的指针,此列表必须以NULL结束。execv,v表示path后面接收的是一个向量,即指向一个参数列表的指针,注意这个列表的最后 一
5、项必须为NULL。execve,path后面接收一个参数列表向量,并可以指定一个环境变量列表向量execvp,第一个参数可以使用相对路径或者绝对路径,v表示后面接收一个参数列表向量。exec被调用时会替换调用它的进程的代码段和数据段(但是文件描述符不变),直接返回到调用它的进程的父进程,如果出错,返回-1并设置errno。(3)exit()终止进程函数头文件:#include exit()函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核中的各种数据结构。(4) waitpid() 父进程等待子进程中等或结束后才执行头文件:#include 或 #include定义函数:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验
限制150内