实验Linux进程的异步并发执行.docVIP

  • 27
  • 0
  • 约1.53千字
  • 约 5页
  • 2017-02-05 发布于北京
  • 举报
实验Linux进程的异步并发执行

电子信息学院 实验报告书 课程名:《操作系统原理实验》 题 目: 实验2 Linux进程的 异步并发执行 实验类别 【设计】 班 级: BX1010 学 号: 21 姓 名: 王丹丹 实验内容 1.编写一段程序,使用系统调用fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示a,子进程分别显示字符b和字符c。试观察记录屏幕上的显示结果,并分析原因。 2.修改上述程序,每一个进程循环显示一句话。子进程显示daughter …及son ……,父进程显示 parent ……,观察结果,分析原因。 掌握进程的概念,明确进程的含义 认识并了解并发执行的实质 Red Hat Linux 9;用户名:root,密码:123456 实验步骤 1、实验准备知识 fork( ) 创建一个新进程。 系统调用格式: pid=fork( ) 参数定义: int fork( ) fork( )返回值意义如下: 0:在子进程中,pid变量保存的fork( )返回值为0,表示当前进程是子进程。 0:在父进程中,pid变量保存的fork( )返回值为子进程的id值(进程唯一标识符)。 -1:创建失败。 如果fork( )调用成功,它向父进程返回子进程的PID,并向子进程返回0,即fork( )被调用了一次,但返回了两次。此时OS在内存中建立一个新进程,所建的新进程是调用fork( )父进程(parent process)的副本,称为子进程(child process)。子进程继承了父进程的许多特性,并具有与父进程完全相同的用户级上下文。父进程与子进程并发执行。 核心为fork( )完成以下操作: 为新进程分配一进程表项和进程标识符 进入fork( )后,核心检查系统是否有足够的资源来建立一个新进程。若资源不足,则fork( )系统调用失败;否则,核心为新进程分配一进程表项和唯一的进程标识符。 检查同时运行的进程数目 超过预先规定的最大数目时,fork( )系统调用失败。 拷贝进程表项中的数据 将父进程的当前目录和所有已打开的数据拷贝到子进程表项中,并置进程的状态为“创建”状态。 子进程继承父进程的所有文件 对父进程当前目录和所有已打开的文件表项中的引用计数加1。 为子进程创建进程上、下文 进程创建结束,设子进程状态为“内存中就绪”并返回子进程的标识符。 子进程执行 系统是怎样创建进程的? 2、当首次调用新创建进程时,其入口在哪里? 《操作系统原理实验》报告书 评语: 实验态度:认真( ) 一般( ) 差( ) 实验结果:正确( ) 部分正确( )错( ) 实验理论:掌握( ) 熟悉( ) 了解( ) 不懂( ) 操作技能:强( ) 一般( ) 差( ) 实验报告:好( ) 一般( ) 差( ) 成绩: 指导教师: 苏庆刚 批阅时间 2012年 10月20 日

文档评论(0)

1亿VIP精品文档

相关文档