没有合适的资源?快使用搜索试试~ 我知道了~
操作系统进程管理实验报告
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 5 下载量 163 浏览量
2022-10-20
18:28:22
上传
评论 4
收藏 104KB DOC 举报
温馨提示
试读
11页
操作系统进程管理实验报告
资源推荐
资源详情
资源评论
1/11
操作系统进程管理实验报告
实验一 进程管理
1.实验目的:
(1)加深对进程概念的理解,明确进程和程序的区别;
(2)进一步认识并发执行的实质;
(3)分析进程争用资源的现象,学习解决进程互斥的方法;
(4)了解 Linux 系统中进程通信的基本原理。
2.实验预备内容
(1)阅读 Linux 的 sched.h 源码文件,加深对进程管理概念的理解;
(2)阅读 Linux 的 fork()源码文件,分析进程的创建过程。
3.实验内容
(1)进程的创建:
编写一段程序,使用系统调用 fork() 创建两个子进程。当此程序运行时,在系统中有
一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,
子进程分别显示字符“b”和“c”。试观察记录屏幕上的显示结果,并分析原因。
源代码如下:
#include<sys/types.h>
#include<stdio.h>
#include<unistd.h>
#include <fcntl.h>
#include <errno.h>
int main(int argc,char* argv[])
{
pid_t pid1,pid2;
pid1 = fork();
if(pid1<0){
fprintf(stderr,"childprocess1 failed");
exit(-1);
}
else if(pid1 == 0){
printf("b");
2/11
}
else{
pid2 = fork();
if(pid2<0){
fprintf(stderr,"childprocess1 failed");
exit(-1);
}
else if(pid2 == 0){
printf("c\n");
}
else{
printf("a\n");
sleep(2);
exit(0);
}
}
return 0;
}
结果如下:
分析原因:
pid=fork();
操作系统创建一个新的进程(子进程),并且 在进程表中相应为它建
立一个新的表项。新进程和原有进程的可执行程序是同一个程序;上下文和数
据,绝大部分就是 原进程(父进程)的拷贝,但它们是两个相互独立的进程!
因此,这三个进程哪个先执行,哪个后执行,完全取决于操作系统的调度,没
有固定的顺序。
(2)进程的控制
修改已经编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序
执行时屏幕上出现的现象,并分析原因。
3/11
将父进程的输出改为 father process completed
输出 b 的子进程改为输出 child process1 completed
输出 c 的子进程改为输出 child process2 completed
运行的结果如下:
理由同(1)
如果在程序中使用系统调用 lockf () 来给每一个进程加锁,可以实现进程之间的互斥,
观察并分析出现的现象。
加锁之后的代码:
#include<sys/types.h>
#include<stdio.h>
#include<unistd.h>
#include <fcntl.h>
#include <errno.h>
int main(int argc,char* argv[])
{
pid_t pid1,pid2;
pid1 = fork();
if(pid1<0){
fprintf(stderr,"childprocess1 failed");
exit(-1);
}
else if(pid1 == 0){
lockf(1,1,0);
printf("child process1 completed\n");
}
else{
pid2 = fork();
if(pid2<0){
fprintf(stderr,"childprocess1 failed");
exit(-1);
}
剩余10页未读,继续阅读
文档优选
- 粉丝: 88
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页