实验一进程管理一、实验目的:1
加深对进程概念的理解,明确进程和程序的区别;2
进一步认识并发执行的实质;3
分析进程争用资源的现象,学习解决进程互斥的方法;4
了解Linux系统中进程通信的基本原理;二、实验预备容:1
阅读Linux的sched
h源码文件,加深对进程管理概念的理解;2
阅读Linux的fork()源码文件,分析进程的创建过程;三、实验环境说明:1
此实验采用的是Win7(32bit)下虚拟机VMware-workstation-10
4build-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)修改已经编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因
程序设计说明:将第一个程序中输出字符的语句改为输出parentprocess和childprocess1&2的语句
源代码:iii
运行结果:iv
分析:发现在结果中