操作系统实验报告_Linux进程创建与通信

2011-2012学年第一学期

专 业:

班 级:

学 号:

姓 名:提交日期:2011年11月实验二 Linux进程创建与进程通信

【实验目的

1. 熟悉有关Linux系统调用;

2. 学习有关Linux的进程创建,理解进程创建后两个并发进程的执行;

3. 通过系统调用wait()和exit(),实现父子进程同步;

4. 掌握管道、消息缓冲等进程通信方法并了解其特点和使用限制。

实验内容

1. 父进程创建子进程

实现父进程创建一个子进程,返回后父子进程分别循环输出字符串“The parent process.”及“The child process.”5次,每次输出后使用sleep(1)延时一秒,然后再进入下一次循环。给出源程序代码和运行结果。程序代码:

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);

}

}

运行结果:

The parent process.

The child process.

The parent process.

The child process.

The parent process.

The child process.

The parent process.

The child process.

The parent process.

The child process.

2. 父子进程同步

修改上题程序,使用exit()和wait()实现父子进程同步,其同步方式为父进程等待子进程的同步,即:子进程循环输出5次,然后父进程再循环输出5次。给出源程序代码和运行结果。程序代码:

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);

}

}

运行结果:

I am parent.

I am parent.

I am parent.

I am parent.

I am parent.

I am child.

I am child.

I am child.

I am child.

I am child.3. Linux管道通信

编写一个程序,实现以下功能。给出源程序代码和运行结果。

(1)父进程使用系统调用pipe()创建一个无名管道;

(2)创建两个子进程,分别向管道发送一条信息后结束;

子进程1发送:Child 1 is sending a message to parent!

子进程2发送:Child 2 is sending a message to parent!

(3)父进程从管道中分别接收两个子进程发来的消息并显示在屏幕上,父进程结束。两个子进程发送信息没有先后顺序要求。

源程序代码:

#include

#include

#includemain()

{

int p1,p2,fd[2];

char outpipe[50];

char inpipe1[50]="Child1 is sending a message to parent!";

char inpipe2[50]="Child2 is sending a messege to parent!";

pipe(fd);

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

if (p1==0)

{

lockf(fd[1],1,0);

write(fd[1],inpipe1,50);

exit(0);

}

else

{

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

if (p2==0)

{

lockf(fd[1],1,0);

write(fd[1],inpipe2,50);

exit(0)

Linux进程的创建和父子进程同步,操作系统实验报告_Linux进程创建与通信.doc相关推荐

  1. linux编译错误 程序中有游离的,操作系统实验报告 附思考题(24页)-原创力文档...

    课程设计(综合实验)报告 ( 2015 -- 2016 年度第 1 学期) 名 称: 操作系统综合实验 题 目: oslab 综合实验 院 系: 计算机系 班 级: 学 号: 学生姓名: 指导教师: ...

  2. 山东大学linux实验四CSDN,山东大学操作系统实验报告材料4进程同步实验

    <山东大学操作系统实验报告材料4进程同步实验>由会员分享,可在线阅读,更多相关<山东大学操作系统实验报告材料4进程同步实验(15页珍藏版)>请在人人文库网上搜索. 1.实用标准 ...

  3. 操作系统实验报告5:进程的创建和终止

    操作系统实验报告5 实验内容 实验内容:进程的创建和终止. 编译运行课件 Lecture 06 例程代码:Algorithm 6-1 ~ 6-6. 实验环境 架构:Intel x86_64 (虚拟机) ...

  4. 进程同步算法实现实验报告Linux,进程同步:实验报告

    <进程同步:实验报告>由会员分享,可在线阅读,更多相关<进程同步:实验报告(9页珍藏版)>请在人人文库网上搜索. 1.1实验内容(进程的同步)(1) 阅读理解示例程序.(2) ...

  5. 进程同步c语言实验报告,操作系统实验报告实验3-1

    操作系统实验报告 操作系统实验报告 实验3-1: Linux进程的创建与父子进程同步 1. 实验目的 (1)熟悉在C语言源程序中使用Linux所提供的系统调用界面的方法: (2)掌握Linux中进程的 ...

  6. 操作系统实验报告15:进程同步与互斥线程池

    操作系统实验报告15 实验内容 实验内容:进程同步. 内容1:编译运行课件 Lecture18 例程代码. Algorithms 18-1 ~ 18-9. 内容2:在 Lab Week 13 的基础上 ...

  7. 实验报告Linux操作系统基本命令,linux操作系统实验报告全部.doc

    linux操作系统实验报告全部 计算机操作系统 实验报告 学 号:姓 名:提交日期:2014.12.15成 绩: 东北大学秦皇岛分校 [实验题目]熟悉Linux/UNIX操作系统[实验目的]1.熟悉L ...

  8. 操作系统 实验报告 linux 内核,linux操作系统内核实验报告.doc

    linux操作系统内核实验报告.doc linux操作系统内核实验报告 篇一:linux操作系统实验报告 LINUX操作系统实验报告 姓 名 班级学号 指导教师 2011 年 05月 16 日 实验一 ...

  9. 操作系统实验三、进程通信

    文章目录 操作系统实验三.进程通信 一.实验目的 二.实验内容 三.设计原理(或方案)及相关算法 四.结果分析 五.源代码 操作系统实验三.进程通信 一.实验目的 ​ 1.了解和熟悉Linux支持的消 ...

最新文章

  1. plt.scatter参数详解 s=25代表点的面积
  2. 【Linux】26.VScode安装、插件、快捷键等基本用法
  3. opengl es java_java – 在Android OpenGL ES App中加载纹理
  4. 使用.NET进行高效率互联网敏捷开发的思考和探索【一、概述】
  5. linux移植简介[MS2]
  6. 电商促销后台设计,写得太好了!
  7. [杂谈]逗比的语录?
  8. 计算机组成原理——微程序设计
  9. 编程机器人考级证书有用吗_机器人编程有等级考试吗?
  10. AD14一般使用流程
  11. java手机连点脚本_自动连点器app下载 自动连点器(屏幕点击器) for Android v1.0 安卓版 下载-脚本之家...
  12. Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands
  13. 设置gvim中横竖光标_VIM配置高亮光标所在行和所在列
  14. 密码学中Alice(爱丽丝)和鲍勃(Bob)的历史
  15. python如何求矩阵逆运算_Sympy复矩阵求逆/运算
  16. mac 下几款解压缩工具
  17. 《图神经网络综述》Graph Neural Networks: A Review of Methods and Applications
  18. NuGet基础连接已经关闭,发送时发生错误
  19. 团队项目之需求规格说明书
  20. 2021年焊工(初级)考试技巧及焊工(初级)作业考试题库

热门文章

  1. 报名啦!阿里云智能客服对话式AI算法大赛之知识图谱构建与问答
  2. 百度工程师亲授CCF BDCI解题思路,15万大奖等你来拿
  3. 拯救颓废假期!快来和我们一起刷论文写笔记
  4. 腾讯医疗AI实验室:3篇论文被国际顶尖会议收录
  5. 微服务架构与Spring Cloud Alibaba
  6. 查看swintransformer的网络结构.children()
  7. 华为内部存储转sd卡_高调谈洗牌 2019年中国存储市场下半场的关键词是“低调”吗?...
  8. mysql strstr_实现 strStr() 函数-算法刷题
  9. c语言 写出raw文件,求指导,如何用c语言实现读取*.raw格式图像
  10. Tensorflow——[Could not load dynamic library cudart64_101.dll]解决方案