第一范文网 - 专业文章范例文档资料分享平台

操作系统实验一 Linux基本环境及进程管理(7)

来源:用户分享 时间:2021-06-02 本文由心溺深海 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

操作系统实验一 Linux基本环境及进程管理

daughter…等

分析:由于函数printf()输出的字符串之间不会被中断,因此,每个字符串内部的字符顺序输出时不变。但是 , 由于进程并发执行时的调度顺序和父子进程的抢占处理机问题,输出字符串的顺序和先后随着执行的不同而发生变化。这与打印单字符的结果相同。

〈程序2〉

#include<stdio.h>

#include<unistd.h>

main()

{

int p1,p2,i;

while((p1=fork())==-1);

if(p1==0)

{

lockf(1,1,0);

for(i=0;i<50;i++)

printf("child %d/n",i);

lockf(1,0,0);

}

else

{

while((p2=fork())==-1);

if(p2==0)

{

lockf(1,1,0);

for(i=0;i<50;i++)

printf("son %d/n",i);

lockf(1,0,0);

}

else

{

lockf(1,1,0);

for(i=0;i<50;i++)

printf("daughter %d/n",i);

lockf(1,0,0);

}

}

}

<运行结果〉

输出parent块,son块,grandchild块的顺序可能不同,但是每个块的输出过程不会被打断。 分析:因为上述程序执行时,lockf(1,1,0)锁定标准输出设备,lockf(1,0,0)解锁标准输出设备,在lockf(1,1,0)与lockf(1,0,0)中间的for循环输出不会被中断,加锁与不加锁效果不相同。

3.用fork( )创建一个进程,再调用exec( )用新的程序替换该子进程的内容;利用

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新小学教育操作系统实验一 Linux基本环境及进程管理(7)全文阅读和word下载服务。

操作系统实验一 Linux基本环境及进程管理(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1204046.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top