操作系统实验报告[材料]由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“实验报告操作系统”。
计算机学院实验报告
课 程实验名称
专 业班 级学 号学生姓名
操作系统 进程的控制 计算机操作系统 131110196 邹明镇 嘉应学院计算机学院
1305
一、实验目的熟悉进程的睡眠、同步、撤消等进程控制方法 利用 wait()来控制进程执行顺序
二、实验原理
1.sleep()使当前的进程睡眠,即当前的进程进入阻塞态。2.wait()等待子进程运行结束。如果子进程没有完成,父进程一直等待。wait()将调用进程挂起,直至其子进程因暂停或终止而发来软中断信号为止。如果在wait()前已有子进程暂停或终止,则调用进程做适当处理后便返回。系统调用格式:
int wait(int *status);其中,status是用户空间的地址。它的低8位反应子进程状态,为0表示子进程正常结束,非0则表示出现了各种各样的问题;高8位则带回了exit()的返回值。exit()返回值由系统给出。
核心对 wait()作以下处理:
(1)首先查找调用进程是否有子进程,若无,则返回出错码;
(2)若找到一处于“僵死状态”的子进程,则将子进程的执行时间加到父进程的执行时间上,并释放子进程的进程表项;
(3)若未找到处于“僵死状态”的子进程,则调用进程便在可被中断的优先级上睡眠,等待其子进程发来软中断信号时被唤醒。3.exit()终止进程的执行。系统调用格式:
void exit(int status);其中,status是返回给父进程的一个整数,以备查考。
为了及时回收进程所占用的资源并减少父进程的干预,UNIX/LINUX利用exit()来实现进程的自我终止,通常父进程在创建子进程时,应在进程的末尾安排一条exit(),使子进程自我终止。exit(0)表示进程正常终止,exit(1)表示进程运行有错,异常终止。
如果调用进程在执行exit()时,其父进程正在等待它的终止,则父进程可立即得到其返回的整数。核心须为exit()完成以下操作:(1)关闭软中断(2)回收资源(3)写记帐信息
(4)置进程为“僵死状态”
/* 父进程 */ int status;wait(&status);/*同步*/ printf(“Child proce completed: %dn”, status);} else { /* 子进程 */ printf(“Hello child!n”);return 0;} } 思考:这个程序中,子进程的退出状态值是多少? 5)利用 exit()设定子进程的退出状态 #include #include #include
main(){ int pid = fork();/*创建子进程*/
if(pid > 0){ /* 父进程 */ int status;wait(&status);/*同步*/ printf(“Child proce completed: %d(%d, %d)n”, status, status/256, status%256);} else { /* 子进程 */ printf(“Hello child!n”);exit(2);} } 思考:这个程序中,子进程的退出状态值是多少?如何获得其低8位和高8位? 思考与练习:
试回答每个程序后面的思考题。
四、实验环境
本次实验所使用的系统平台Linux(Ubuntu)和相关软件GCC。
3)同步
5)利用 exit()设定子进程的退出状态
许昌学院《操作系统》实验报告书学号:姓名:闫金科班级:成绩: 5006140057 14物联网工程 2016年02月实验一 Linux的安装与配置一、实验目的1.熟悉Linux系统的基本概念,比如Linux......
实验项目二 进程管理一、实验目的1.理解进程的概念,掌握父、子进程创建的方法。2.认识和了解并发执行的实质,掌握进程的并发及同步操作。二、实验内容1.编写一C语言程序,实现在......
实验二进程调度1.目的和要求通过这次实验,理解进程调度的过程,进一步掌握进程状态的转变、进程调度的策略,进一步体会多道程序并发执行的特点,并分析具体的调度算法的特点,掌握对......
DOS操作系统实验报告(2)班级_____________姓名_____________学号_____________一、写出下列命令(设当前目录为C:\):1、将c盘windows目录中主名长度为1-4个字符的所有文件拷贝到d......
实验报告一一、实验目的通过本实验,掌握Linux的基本操作以及Linux的文本编辑,对Linux有一个基本的了解。 二、实验任务1、Linux的基本操作1) 在图形交互方式下实现对用户、用户......