kl800.com省心范文网

信息技术学院 第三第四次操作系统 实验报告

操作系统课程实验报告

姓名 任课教师
实验地点

学号 贺辉
综合楼 B102

系 贺辉 评阅教师

计算机 贺辉

指导教师

实验时间 出勤和个人表现 Q1(15+15 (组长 评分)=30 分) 实验完成情况 Q2(60 分) 体会 实验过程中遇到的问题解决办 法与实验体会 Q3(10 分) 得分: 得分: 得分: 实验 总分 (Q1+Q2+Q3)

实验课表现

实验编号与实验名称: 实验目的:

1) 2) 3) 4)

回顾系统进程的概念,加深对 Linux / UNIX 进程管理的理解。 回顾 ps 命令和选项。 列出当前 shell 中的进程。 列出运行在系统中的所有进程。

实验内容及要求(详见实验讲义与实验指导书) :

实验一:使用此前的信息,完成以下填空:
步骤 1:登录进入 Linux。 步骤 2:访问命令行。 单击“系统工具”-“终端”命令,打开“终端”窗口。 步骤 3:回顾系统进程概念。
1) Linux 系统中,几乎每一个启动的进程,都会由内核分配一个唯

一的__________PID_____,用于跟踪从进程启动到进程结束。 当启动新进程的时候,内核也给它们分配系统资源,如__内存 ______和___CPU_____。
2) 3) 4)

永远不向父进程返回输出的进程叫做______僵进程________。 由父进程派生出来的进程叫做_________子_________进程。

5) ________父________进程是一个派生另一个进程的进程。

运行用于提供服务的 Linux 系统进程是______ sched (调度) 和 init (初始化)_________。
6) 7)

如果父进程在子进程之前结束, 它创建了一个___孤儿___进程。

步骤 4:回顾 ps 命令和信息。 步骤 5:列出系统中运行的所有进程。 输入 ps -ef 命令,显示运行在系统中的各个进程的完全信息。执 行该命令,并与 ps –f 命令的输出结果对照,一致吗?有何不同?
不一致: Ps –ef:

Ps –f:

Ps ef 表示的是所有进程的完整列表,而 ps –f 表示的是一个进程的完整列表。 在范围上不一样。

注意分析当前终端窗口中的输出结果:
a.

显示了多少个进程?

___________________144______________________________________ __________ b. PID 是什么?
进程的进程标识号。PID 可以用来杀死进程

______________________________________________________________ c.


启动进程的命令 (CMD) 是什么?
名 守 护 进 程 执 行 的 程 序 的 名 字



_____________________________________________ d.

请观察,什么命令的 PID 号是 1?

__________sbin/init____________________________________________ ______

再次运行 ps -ef | wc -l 命令,计算进程的数目并把输出结果 输入到 wc 命令中:
e.

____________144_____________________________________________ ___________

执行 man ps 命令,可以打开 Linux 用户命令手册,了解 ps 命令的 用法,输入 wq 命令可退出用户手册的阅读。man 命令可以执行吗? 结果如何?

可执行
试调试下二段代码。并写明结果(考虑 fork 与 sleep 是什么函数) 1.int main()
{ int p1,i; while ((p1=fork())==-1); if (p1>0) for (i=0;i<5;i++) { printf("I am parent.\n"); sleep(1); } else for (i=0;i<5;i++) { printf("I am child.\n"); sleep(1); } return 0;

}

结果:

2、 int main() { int p1,i; while ((p1=fork())==-1); if (p1>0) { wait(0); for (i=0;i<5;i++) { printf("I am parent.\n"); sleep(1); } } else

{ for (i=0;i<5;i++) { printf("I am child.\n"); sleep(1); } exit(0); } return 0; }
结果:

代码一结果:

代码二结果:

2 进程互斥实验

1.

修改以下代码,用 lockf( )来给每一个进程加锁,以实现进程之 间的互斥

//======================================= #include <stdio.h> main( ) { int p1,p2; while((p1=fork( ))= = -1); if (p1= =0) putchar('b'); else /*创建子进程 p1*/

{ while((p2=fork( ))= = -1); if(p2= =0) putchar('c'); else putchar('a'); } } 答案: /*创建子进程 p2*/

循环十次: 答案:

很容易看出答案不一样了,bc 的顺序倒过来了! 没有加锁的答案:

2、 #include <stdio.h> main( ) { int p1,p2,i; while((p1=fork( ))= = -1); if (p1= =0) for(i=0;i<10;i++) printf("daughter %d\n",i); else { while((p2=fork( ))= = -1); if(p2= =0) for(i=0;i<10;i++) printf("son %d\n",i); else /*创建子进程 p2*/ /*创建子进程 p1*/

for(i=0;i<10;i++) printf("parent %d\n",i); } }
答案:这个程序和上面的程序是一样原理的,没有什么可比性,循环输出也在上面的程序执 行了!

(四)分析以下程序的输出结果【写进实验报告】:
#include<stdio.h> #include<unistd.h> main() { int p1,p2,i; int *fp; fp = fopen("to_be_locked.txt" ,"w+"); if(fp==NULL) { printf("Fail to create file"); exit(-1); } while((p1=fork( ))== -1); if (p1==0) { lockf(*fp,1,0); for(i=0;i<10;i++) fprintf(fp,"daughter %d\n",i); /*加锁*/ /*创建子进程 p1*/

lockf(*fp,0,0); } else {

/*解锁*/

while((p2=fork( ))==-1); /*创建子进程 p2*/ if (p2==0) { lockf(*fp,1,0); for(i=0;i<10;i++) fprintf(fp,"son %d\n",i); lockf(*fp,0,0); } else { wait(NULL); lockf(*fp,1,0); for(i=0;i<10;i++) fprintf(fp,"parent %d\n",i); lockf(*fp,0,0); } } fclose(fp); } 答案: /*解锁*/ /*加锁*/ /*解锁*/ /*加锁*/

分析: 程序开始定义了文件读写指针用于打开指定的文件, 当文件不存在时则自动创建。 然后有 创建了一个进程 p1,p1 获得处理机执行,给文件读写指针加锁,这样,即使 p1 失去处理 机,其他获得处理机的进程也无法访问文件指针指向的文件,当 p1 再次获得处理机后继 续执行直至进程 p1 结束并解锁;p1 结束后父进程获得处理机执行又创建了进程 p2,p2 获得处理机执行,也给文件指针加锁,同理直至 p2 运行完解锁;p2 结束后父进程获得处 理机,父进程也给文件指针加锁,直至父进程执行完毕解锁,程序结束。

3 进程的控制实验

实验内容
1、 fork( )创建一个进程, 用 再调用 exec( )用新的程序替换该子进
程的内容 2、利用 wait( )来控制进程执行顺序

(1)如何更新子进程内容? 答案:系统调用 exec( )将一个可执行的二进制文件覆盖在新进程的用户级上
下文的存储空间上,改变调用进程的执行代码,从而形成新进程。用 fork( )建立子进程, 然后在子进程中使用 exec( ),这样就实现了父进程与一个与它完全不同子进程的并发执 行。
(2)可执行文件加载时进行了哪些处理?

答案:可执行文件加载时首先是创建一个新进程的 fork 系统调用,然后用
于实现进程自我终止的 exit 系统调用;改变进程原有代码的 exec 系统调用;用 于将调用进程挂起并等待子进程终止的 wait 系统调用; 获得进程标识符的 getpid 系统调用等处理过程。

(3)什么是进程同步?wait( )是如何实现进程同步的?
答案:把异步环境下的一组并发进程因直接制约而互相发送消息而进行互相合 作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步 。 (百科 的)

进程同步:首先程序在调用 fork()机那里了一个子进程后,马上调用 wait(),使父进
程在子进程调用之前一直处于睡眠状态,这样就使子进程先运行,子进程运行 exec()装入 命令后,然后调用 wait(0),使子进程和父进程并发执行,实现进程同步。

实验用到的软件(: )http://hi.baidu.com/nanjingtianzi/item/5bc594d09ed90d342a35c76b

实验内容及关键步骤(代码)Q2(60 分)

实验过程中遇到的问题解决办法与实验体会 Q3(10 分)

得分:

在这次的实验中我遇到不少的问题: 1.在第二个实验中的最后一个程序,没有<stdlib.h>这个头文件,所以运行起来的时候有错误, 而且还有些代码符号写成了中文形式,最后运行不了,经过多番审查和百度和问同学,终于 解决了这个问题 2.通过这次实验我会有 lockf(0,0,0)加锁这个函数了,还有解锁,对进程互斥有了一个大 概的了解。

3.在最后一个实验中,主要是看 exec( )、wait( )和 exit()的介绍,从中了解到了另 外一种创建子进程的函数和了解了 wait()的一些信息和 exit()的执行过程!
4、对于进程的东西,还是不太很懂,希望能多看书补充一下知识盲点。 评阅教师特殊评语:

评阅教师: 日 期:


操作系统第四次实验报告.doc

操作系统第四次实验报告_计算机软件及应用_IT/计算机_专业资料。西安邮电大学 (...信息技术学院 第三第四次... 16页 2下载券 操作系统第四次实验报告......

东北大学操作系统第四次试验报告.doc

东北大学操作系统第四次试验报告_计算机软件及应用_IT/计算机_专业资料。东北大学...('20121003','赵红','女',20,'信息学院') insert into Students(Sno,Sname...

操作系统第三次实验报告.doc

操作系统第三次实验报告 - 西安邮电大学 (计算机学院) 课内实验报告 实验名称

第四次实验报告模板_图文.doc

第四次实验报告模板_计算机软件及应用_IT/计算机_专业资料。操作系统实验报告 湖南科技学院计算机与通信工程系 《操作系统实验报告实验项目 课程名称 实验时间 姓名...

操作系统实验报告 2012508167 赵帝植.doc

石河子大学信息科学与技术学院 操作系统课程的实验报告 课题名称: 学生姓名: 学...第三个分区挂载点为空,文件系统类 型为 swap,大小为 1024MB;第四个分区挂载...

上海大学操作系统实验报告四.doc

SHANGHAI UNIVERSITY 《操作系统(一) 》实验报告学 姓院 计算机工程与科学学院 名 吴学辉 四 报告序号 实验题目 LINUX 进程调度与系统监视 日期 2016.11.1 《...

《操作系统》实验报告 生产者消费者.pdf

操作系统实验报告 生产者消费者 - 数学与信息技术学院 南京晓庄学院 《操作系统实验报告 指导老师: 专业班级: 学号 : 姓名 : 完成日期: 1 数学与...

操作系统实验报告..doc

学生学号 0121210680225 实验课成绩 武汉理工大学学 生实验报告书 实验课程名称 开课学院 指导老师姓名 学生姓名 学生专业班级 操作系统 计算机科学与技术学院 刘军 ...

操作系统存储管理实验报告课案.doc

河南师范大学计算机与信息技术学院实验报告 实验五 存储管理一、实验目的 1 、加深对操作系统存储管理的理解 2 、能过模似页面调试算法,加深理解操作系统对内存的...

操作系统存储管理实验报告.doc

河南师范大学计算机与信息技术学院实验报告 实验五 存储管理一、实验目的 1 、加深对操作系统存储管理的理解 2 、能过模似页面调试算法,加深理解操作系统对内存的...

操作系统第三次实验报告.doc

操作系统第三次实验报告 - 操作系统实验报告 实验名称: 实现 ls 命令实验 计算机科学与技术学院 目录 一、实验目的和要求 ......

四川大学操作系统课程设计第四次实验程序report (2).doc

四川大学操作系统课程设计第四次实验程序report (2)_工学_高等教育_教育专区。实验报告实验名称: 作业调度系统 实验时间: 2013 年 5 月 20 日 实验人员:_ ...

操作系统实验报告一.doc

成绩: 实验报告 课程名称: 实验项目: 姓专班学名: 业: 级: 号: 操作系统 进程创建与控制 计算机科学与技术学院 2017 年 04 月 11 日 哈尔滨理工大学计算机...

山东大学操作系统实验报告_图文.doc

1564人阅读|26次下载 山东大学操作系统实验报告_工学_高等教育_教育专区。山东大学计算机科学与技术学院操作系统上学期实验报告及截图完整版 操作...

操作系统实验报告.doc

操作系统实验报告_电脑基础知识_IT/计算机_专业资料。安徽工业大学计算机科学与技术学院 操作系统教程 实验指导书 姓名: 学号: 班级:软 124 班 指导老师:郭玉华 ...

山东大学操作系统实验报告4进程同步实验.doc

计算机科学与技术学院实验报告实验题目:实验四、进程...假设一个系统中有三个抽烟者进程, 每个抽烟者不断...体会和收获: 经过本实验,初步了解操作系统的进程...

南京邮电大学-操作系统实验报告_图文.doc

南京邮电大学-操作系统实验报告_工学_高等教育_教育专区。南邮管院大三上操作...信息系统 二○一六至二○一七 年度 第一 学期 南京邮电大学 经济与管理学院 ...

华科操作系统实验报告.doc

华科操作系统实验报告_其它_高等教育_教育专区。课程实验报告课程名称: 操作系统原理 专业班级: 学姓号: 名: 指导教师: 报告日期: 计算机科学与技术学院 目录目录...

管道通信 操作系统实验报告.doc

管道通信 操作系统实验报告_IT/计算机_专业资料。实验目的 1、了解什么是管道 2、熟悉UNIX/LINUX支持的管道通信方式 计算机与信息技术学院综合性、 计算机与信息技术...

操作系统实验二(3)实验报告.doc

烟台大学 烟台大学计算机学院 操作系统 实验报告书班级:计 114-3 班姓名:刘镇...操作系统实验报告3 4页 1下载券 操作系统第三次实验报告 9页 1下载券 ...