欢迎来到天天文库
浏览记录
ID:48442329
大小:232.00 KB
页数:10页
时间:2020-01-28
《linux操作系统实验五.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.word可编辑.实验五进程管理子系统——进程控制实验类别:设计型实验时数:6学时开课单位:计算机学院实验地点:健翔校区计算中心一、实验目的u掌握进程的概念,深入理解进程的含义。认识并理解并发环境中进程执行的实质问题,了解构成并发机制的进程创建过程。能够使用系统调用完成进程创建,形成多个进程并发的环境。u了解在进程创建后通过对进程控制的系统调用,可实现对进程的有效控制。掌握在进程执行中对进程进行睡眠、同步、撤销等控制方法。u进一步认识并发执行的实质,分析进程竞争资源的现象,学习解决进程互斥的方法。二、实验环境操作系统:任何Unix/Linux及S
2、unSolaris或windows系列应用系统:gcc编译器。若OS为windows系列,则还需相应的模拟环境三、预备知识1、LINUX系统中进程的含义在LINUX中,进程既是一个独立拥有资源的基本单位,又是一个独立调度的基本单位。进程是并发环境中的实体,每个进程用一个task_struct的数据结构来表示,用来管理系统中的进程,因而task_str.专业.专注..word可编辑.uct就是LINUX系统中的PCB。另外,系统内核中还有一个task向量表,是指向系统中每一个task_struct数据结构的指针的数组,因而task向量表就是LINU
3、X系统中的PCB表。1、LINUX中的进程创建除了init进程外,LINUX中的所有进程都是由其他进程创建的。LINUX中提供了系统调用fork和clone,可被进程用来创建子进程。但系统调用fork和clone其实都是调用内核函数do_fork(),通过克隆当前进程来创建子进程的。四、实验内容本实验要求在LINUX/UNIX环境下用C语言编写三个多进程并发执行的程序,基本涉及了LINUX/UNIX进程管理子系统中较为常用的有关进程控制的系统调用。实验内容如下:(1)使用fork()系统调用创建进程,使父、子进程分别运行不同的代码(要求子进程在父
4、进程之前运行):子进程:①以长格式显示当前目录的情况;②分屏显示file1的内容。父进程:①对1—100之间的自然数求和;②分屏显示file2的内容。程序可能涉及到的系统调用:fork(),exec(),wait().专业.专注..word可编辑.#include#include#include#include#includeintmain(){intp1,p2;.专业.专注..word可编辑.inti,n=0;p1=fork();if(p
5、1==0){//system("more-dcfile1");execl("/bin/ls","ls","-l",0);exit(1);}elseif(p1>0){wait(NULL);//system("more-dcfile2");p2=fork();if(p2==0){execl("/bin/cat","cat","file1",0);}elseif(p2>0){.专业.专注..word可编辑.wait(NULL);for(i=1;i<=100;i++){n=n+i;}printf("theaddof1-100is:%d",n);exe
6、cl("/bin/cat","cat","file2",0);exit(1);}}elseprintf("forkfailed.");return0;}(1)编程实现三个进程的并发执行(即父进程同其分别创建的两个子进程同时运行),此程序运行使系统中有三个活动进程存在。控制让每个进程在屏幕上显示一个字符串(为了便于理解,可以是有意义的一句话)。比如子进程显示”daughter…”及”son…”,父进程显示”parent…”。试观察屏幕上的显示结果,并对输出结果进行分析。.专业.专注..word可编辑.程序可能涉及到的系统调用及函数:fork()
7、,printf()#include#includeintmain(){intp1,p2;p1=fork();if(p1==0){printf("子进程:son");.专业.专注..word可编辑.}elseif(p1>0){p2=fork();if(p2==0){printf("子进程:daughter");}elseif(p2>0){printf("父进程:parent");}}elseprintf("forkfailed.");return0;}(1)编程实现并发执行的父子进程通过管道实现
8、通信。要求父进程通过读标准输入,将读入的内容写入管道;子进程通过读管道,将读取的内容写到标准输出。.专业.专注..word可编辑.程序可
此文档下载收益归作者所有