软 件 学 院上 机 实 验 报 告课程名称: 操作系统原理 实验项目: 实验一 Linux 环境下的进程管理 实 验 室: 耘慧 402 姓 名: 王欣鸿 学 号: 1320010724 专业班级: 软件 13—7 实验时间 : 2024/12/06 实验成绩评阅老师一、 实验目的及要求1。加深对进程概念的理解,明确进程和程序的区别;2。进一步认识并发执行的实质;3。分析进程争用资源的现象,学习解决进程互斥的方法;4.了解 Linux 系统中进程通信的基本原理。二、 实验性质验证性三、 实验学时4 学时四、 实验环境 Linux 系统开发环境五、实验内容及步骤1.给出实验内容具体描述; 1)进程的创建 编写一段程序,使用系统调用 fork()创建两个子进程。当此程序运行时一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符;父进程显示字母子进程显示字母 b 和 c。 2)进程的控制 修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象。2.用适当形式表达算法设计思想及算法实现步骤。系统调用: fork() 创建一个新进程。系统调用格式: pid=fork()参数定义: Int fork()fork()返回值的意义如下: 0 :在子进程中,pid 变量保存的 fork()返回值为 0,表示当前进程是子进程。 >0:在父进程中,pid 变量保存的 fork()返回值为子进程的 id 值 —1:创建失败。 假如 fork()调用成功,它向父进程返回子进程的 pid,并向子进程返回调用了一次,但返回了两次。此时 OS 在内存中建立一个新进程,所建的新进程是调用fork()父进程的副本,称为子进程。子进程继承了父进程的许多特新,并具有与父进程完全相同的用户级上文。父进程与子进程并发执行. 核心为 fork()完成以下操作 1)为新进程分配一进程表项和进程标识符 进入 fork()后,核心检查系统是否有足够的资源来建立一个新进程.fork()系统调用失败;否则,核心为新进程表项和唯一的进程标识符. 2)检查同时运行规定的最大数目 超过预先规定的最大数目时,fork()调用失败。 3)拷贝进程表项中的数据 将父进程的当前目录和所有已打开的数据拷贝到子进程表项中,并置进程的状态为“创建”状态。 4)子进程继承父进程的所有文件 对父进程当前目录和所有以打开的文件表项中的引用计数加 1。 5)为子进程创建进程上下文 进程创建结束,设子进程状态为“内存中就绪”并返回子进程的标识符。 6)...