linux操作系统实验五
- 格式:pdf
- 大小:164.43 KB
- 文档页数:2
实验五进程管理子系统——进程控制
实验类别:设计型实验时数:6学时
开课单位:计算机学院实验地点:健翔校区计算中心
一、实验目的
掌握进程的概念,深入理解进程的含义。认识并理解并发环境中进程执
行的实质问题,了解构成并发机制的进程创建过程。能够使用系统调用
完成进程创建,形成多个进程并发的环境。
了解在进程创建后通过对进程控制的系统调用,可实现对进程的有效控
制。掌握在进程执行中对进程进行睡眠、同步、撤销等控制方法。
进一步认识并发执行的实质,分析进程竞争资源的现象,学习解决进程
互斥的方法。
二、实验环境
操作系统:任何Unix/Linux及Sun Solaris 或windows 系列
应用系统:gcc编译器。若OS为windows系列,则还需相应的模拟环境
三、预备知识
1、LINUX系统中进程的含义
在LINUX中,进程既是一个独立拥有资源的基本单位,又是一个独立调
度的基本单位。进程是并发环境中的实体,每个进程用一个task_struct的数据
结构来表示,用来管理系统中的进程,因而task_struct就是LINUX系统中的
PCB。另外,系统内核中还有一个task向量表,是指向系统中每一个task_struct
数据结构的指针的数组,因而task向量表就是LINUX系统中的PCB表。
2、LINUX中的进程创建
除了init进程外,LINUX中的所有进程都是由其他进程创建的。LINUX
中提供了系统调用fork和clone,可被进程用来创建子进程。但系统调用fork
和clone其实都是调用内核函数do_fork(),通过克隆当前进程来创建子进程的。
四、实验内容
本实验要求在LINUX/UNIX环境下用C语言编写三个多进程并发执行
的程序,基本涉及了LINUX/UNIX进程管理子系统中较为常用的有关进程
控制的系统调用。实验内容如下:
(1)使用fork()系统调用创建进程,使父、子进程分别运行不同的代码(要
求子进程在父进程之前运行):
子进程:①以长格式显示当前目录的情况;②分屏显示file1的内容。
父进程:①对1—100之间的自然数求和;②分屏显示file2的内容。
程序可能涉及到的系统调用:fork(), exec(), wait()
#include