实验一 进程管理 一、 实验目的: 1
加深对进程概念的理解,明确进程和程序的区别; 2
进一步认识并发执行的实质; 3
分析进程争用资源的现象,学习解决进程互斥的方法; 4
了解Linux系统中进程通信的基本原理; 二、 实验预备内容: 1
阅读Linux的sched
h 源码文件,加深对进程管理概念的理解; 2
阅读Linux的fork()源码文件,分析进程的创建过程; 三、 实验环境说明: 1
此实验采用的是Win7(32bit)下虚拟机VMware-workstation-10
4 build-2249910; 2
ubuntu 版本3
直接编写c 文件在终端用命令行执行; 4
虚拟机分配8G 内存中的1024M; 5
虚拟机名称knLinux; 6
ubuntu 用户名kn; 四、 实验内容: 1
进程的创建: a) 题目要求: 编写一段程序,使用系统调用fork() 创建两个子进程
当此程序运行时,在系统中有一个父进程和两个子进程活动
让每一个进程在屏幕上显示一个字符:父进程显示字符“a”,子进程分别显示字符“b”和“c”
试观察记录屏幕上的显示结果,并分析原因
b) 程序设计说明: 一个父进程,两个子进程,分别输出显示a,b,c
c) 源代码: d ) 运行结果: e) 分析: 由输出结果可知,运行结果不唯一,可以是abc,acb,bca 等多种情况
因为在程序中,并没有三个进程之间的同步措施,所以父进程和子进程的输出顺序是随机的
在试验次数足够大的情况下,6 中顺序都有可能出现:abc, acb, bac, bca, cab, cba
进程的控制: a) 修改已经编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因
程序设计说明: 将第一个程序