云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 操作系统实验报告进程的创建

操作系统实验报告进程的创建

  • 62 次阅读
  • 3 次下载
  • 2025/6/1 15:01:59

操作系统实验报告进程的创建

运行结果: 5、wait()函数与sleep()函数。 程序代码: #include main() { int pid1; if(pid1=fork()) { if(fork()) { printf(\ printf(\ wait(0); printf(\ wait(0); printf(\ exit(0); } else printf(\ sleep(5); printf(\ exit(0); } else { if(pid1==0) { printf(\ sleep(10); printf(\ exit(0); 操作系统实验报告进程的创建

} } } 运行结果: 6、编写一段程序,父进程使用fork()创建两个子进程,利用输出函数putchar父进程显示字符”a”,两个子进程分别显示“b”与“c”。 程序代码: #include #include #include int main() { int pid; if(pid=fork()) { if(fork()) { printf(\ putchar('A'); printf(\ } else { printf(\ putchar('C'); printf(\ } } else { if(pid==0) printf(\操作系统实验报告进程的创建

putchar('B'); printf(\ } } 运行结果: 四、实验过程与分析 1、在1例子中,调用正确完成时,给父进程返回的就是被创建子进程标识,给子进程自己返回的就是0;创建失败时,返回给父进程的就是-1。 2、在2例子中,vfork()调用后需要注意两点: (1)子进程先运行,父进程挂起。子进程调用exec()或exit()之后。父进程的执行顺序不再有限制。 (2)子进程在调用exec()或exit()之前。父进程被激活,就会造成死锁。 3、在6例子中,上述程序就是父进程先创建一个子进程,若成功,再创建另一个子进程,之后三个进程并发执行。究竟谁先执行,就是随机的。所以执行结果有多重种。 五、实验总结 操作系统实验报告进程的创建

1、一个进程调用exec()函数来运行一个新程序。之后该进程的代码段、数据段与堆栈段就被新程序的所代替。新程序从自己的main()函数开始执行。exec()函数有6种不同的形式,任何一个都可以完成exec()的功能,只就是调用参数不同。 2、在父子进程同步中,当一个进程结束时,产生一个终止状态字,然后核心发一个SIGCHLD信号通知父进程。因为子进程结束就是异步于父进程的,故父进程要结束之前,要同步等待子进程终止。这就是通过调用系统调用wait或waitpid来实现的。 当父进程通过调用wait或waitpid同步等待子进程结束时,可能有以下几种情况: (1)如果子进程还未结束,父进程阻塞等待; (2)如果子进程已经结束,其终止状态字SIGCHLD放在指定位置等待父进程提取,这时,父进程可立即得到终止状态字并返回; (3)如果没有子进程,父进程立即错误并返回。

搜索更多关于: 操作系统实验报告进程的创建 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

操作系统实验报告进程的创建 运行结果: 5、wait()函数与sleep()函数。 程序代码: #include main() { int pid1; if(pid1=fork()) { if(fork()) { printf(\ printf(\ wait(0); printf(\ wait(0); printf(\ exit(0); } else printf(\ sleep(5); printf(\ exit(0); } else { if(pid1==0) { printf(\ sleep(10);

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com