操作系统实验报告----进程管理 本实验报告的主要目的是掌握 Linux 中进程的创建方法及执行情况,深入理解进程、进程树等概念,并掌握系统调用 exit() 和 _exit() 的使用。此外,还将分析进程竞争资源的现象,并学习解决进程互斥的方法。 一、进程管理实验目的 1. 掌握 Linux 中进程的创建方法及执行情况 2. 加深对进程、进程树等概念的理解 3. 掌握 Linux 中如何加载子进程自己的程序 4. 掌握父进程通过创建子进程完成某项任务的方法 5. 掌握系统调用 exit() 和 _exit() 的使用 6. 分析进程竞争资源的现象,学习解决进程互斥的方法 二、实验内容 (一)进程的创建 1. 编写一段程序,使用系统调用 fork() 创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符。 (二)进程树的创建 1. 运行以下程序,分析程序执行过程中产生的进程情况。 #include main(){ int p,x; p=fork(); if (p>0) fork(); else{ fork(); fork(); } sleep(15); } 实验步骤: 1. 编译连接:gcc –o forktree forktree.c 2. 后台运行:./forktree & 3. 使用 pstree –h 查看进程树 运行结果: ├─gnome-terminal─┬─bash─┬─forktree─┬─forktree─┬─forktree───forktree │ │ │ │ └─forktree │ │ │ └─forktree │ │ └─pstree 分析:程序运行,系统首先创建一个进程 forktree,执行到 p=fork() 创建一个子进程 forktree,子进程获得处理机优先执行,父进程等待;执行 else,当执行到第一个 fork() 函数时,子进程创建了一个进程 forktree,称之为孙进程,孙进程获得处理机往下执行,子进程等待;执行到第二个 fork() 函数时,孙进程又创建一个进程 forktree,称之为重孙进程,重孙进程很快执行完,将处理机还给孙进程,孙进程很快执行完,将处理机还给子进程;子进程继续往下执行,执行到第二个 fork() 函数,又创建一个进程 forktree,称之为第二孙进程,并获得处理机执行,此进程很快执行完,将处理机还给子进程,子进程也很快执行完,将处理机还给父进程,父进程 P>0 执行 if 语句,运行 fork() 函数,又创建一个进程 forktree,称之为第二子进程,此进程获得处理机执行很快运行完,将处理机还给父进程,父进程运行 sleep(15) 语句,休眠 15 秒,用 pstree 命令查询进程树。 (三)进程之间的关系 1. 运行程序,分析运行结果。 #include main(){ int p,x,ppid,pid; x=0; p=fork(); if(p>0) { printf("parent output x=%d\n",++x); ppid=getpid(); printf("This id number of parent is:ppid=%d\n",ppid); } else { printf("child output x=%d\n",++x); pid=getpid(); printf("This id number of child is:pid=%d\n",pid); } } 运行结果: Parent output x=1 This id number of parent is:ppid=3110 Child output x =1 This is number of child is:pid=3111 分析:fork 创建进程的时候子进程与父进程共享代码区,子进程复制父进程的数据区,所以,两个进程中的数据互不影响都是 1。 (四)进程的竞争资源 1. 编写一个死循环程序,观察进程的行为。 #include main(){ while(1){ } } 实验步骤: 1. 编译:gcc loop.c –o loop 2. 运行:./loop & 本实验报告旨在让学生掌握 Linux 中进程的创建方法及执行情况,深入理解进程、进程树等概念,并掌握系统调用 exit() 和 _exit() 的使用。此外,还将分析进程竞争资源的现象,并学习解决进程互斥的方法。
2025-10-14 17:10:57 51KB 文档资料
1
(1) 用C语言实现对N个进程采用某种进程调度算法(如先来先服务调度、时间片轮转调度、动态优先级调度)的调度。 (2) 为了清楚地观察每个进程的调度过程,程序应将每个进程的被调度情况显示出来。 (3) 分析程序运行的结果,谈一下自己的收获。
1
操作系统实验报告-进程管理实验-时间片轮转调度算法模拟 时间片轮转调度算法模拟
1
实验项目名称: 进程管理
2021-06-27 11:00:54 753KB 操作系统 实验报告 进程管理
1