欢迎来到天天文库
浏览记录
ID:22669065
大小:139.24 KB
页数:10页
时间:2018-10-30
《操作系统b2-上机实验-进程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验二Linux进程实验姓名:段叶叶班级:信息1302学号:07131052地点:东区实验室FF109时间:2014年10月13日星期一成绩:一、实验内容1.创建进程的系统调用fork();2.创建进程的系统调用vfork();3.执行新程序的系统调用exec();4.等待进程结束的系统调用wait()或waitpid()。前三题必做,最后一题选做。二、实验目的熟悉进程的系统调用。三、实验环境登陆Linux虚拟机,进入Linuxshell,提示符为$,表示普通用广提示符。四、实验题目1.【题目I:编写程序forkgrand
2、child.c,用来创建孙子进程。【要求】:在读懂程序forktestx的基础上,编写程序forkgrandchild.c(forkgrandchild.c创建狂用广1名(如wm)目录下的process目录下),所创建的程序forkgrandchild.c可实现创建孙子进程,并显示孙子进程的pid,其父进程的pid,forkgrandchild.c要求可读性好,用广界面友好。【预备知识】:1)Linux进程状态•运行状态:程序正在运行或在运行队列中等待运行。•可中断等待状态:进程正在等待某个事件完成,等待过程可被信号或定时
3、器唤醒。•不可中断等待状态:进程正在等待某个事件完成,不可被信号或定时器唤醒,必须等待事件的发生,才可唤醒。•僵死状态:进程己终止,但进程描述符依然存在,直到父进程调动wait()函数后释放。•停止状态:进程因收到SIGSTOPSIGSTPSIGTINSIGTOU信号后停止运行或该进程正在被跟踪(调式程序时)。2)ps命令•ps命令可查看进程的当前状态。*如psaux(相关命令参数自学)•对ps命令结果字符的解释<(高优先级进程)、N(低优先级进程)、L(
4、Aj存锁页,即页不可被换出内存)、s(该进程为会话首进程)、1(多
5、线程进程)、+(进程位于前台进程组)、R(运行状态)、Z(僵死状态)、D(不可中断等待状态)、S(可中断等待状态)、T(停止状态)。3)fork()函数fork()是创建一个新进程的唯一方法,子进程可以继承其父进程几乎所有的资源。在命令行T使用man2fork可获得该函数的函数声明。fork()有两个返回值。成功调用fork后,当前进程实际上己经分裂为两个进程,一个是原来的父进程,男一个是刚刚创建的子进程。父子进程在调用fork地方分开,一个是父进程调用fork的返回值,返回值为刚刚创建的子进程的pid;另一个是子进程中f
6、ork函数的返回值,为0。fork返回两次的前提是进程创建成功,若失败返回为-1。用返回值可区分父子进程。fork之后是父还是子进程先运行是不确定的,这取决于内核所使用的调度算法,一般是交替执行,使进程享有同等执行权。forktest.c源代码#include#include#includeintmain(void){pid_tpid;printff’processcreationstudy’’);pid=fork();switch(pid){case0:
7、printff’childprocessisrunning,curpidis%d,parentpidis%d",pid,getppid());break;case-1:printf(nprocesscreationfailed’’);break;default:printf(nparentprocessisrunning,childpidis%d,parentpidis%d",pid,getpid());break;}exit(0);}【问题】:1)解释stdio.h、unistd.h、sys/types.h头
8、文件的作用?2)getpid()、getppid()、fork()的功能是什么?3)写出forkgrandchild.c的源代码。(1)a.stdio.h头文件的作用是:就是指“standardinput&output"意思就是说标准输入输出头文件。所以,用到标准输入输出函数时,就要调用这个头文件!原程序为:〈stdio.h〉;b.nuistd.h头文件的作用是:是1inux/unix的系统调用,包含了许多unix系统服务的函数原型,例如read(),writeO和getpid()函数;c.sys/types.h头文件的作
9、用是:在应用程序源文件中包含〈sys/types.h〉以访问一LP64和_ILP32的定义。此头文件还包含适当时应使用的多个基2^派生类型,尤其是以下类型更为重要:clock_t表示系统吋间(以吋钟周期为单位)。dcv_t用于设备号;off_t用于文件大小和偏移量;ptrdiff_t是一种带符号整型,用
此文档下载收益归作者所有