




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验五 进程管理子系统进程控制实验类别:设计型 实验时数:6学时开课单位:计算机学院 实验地点:健翔校区计算中心一、实验目的u 掌握进程的概念,深入理解进程的含义。认识并理解并发环境中进程执行的实质问题,了解构成并发机制的进程创建过程。能够使用系统调用完成进程创建,形成多个进程并发的环境。u 了解在进程创建后通过对进程控制的系统调用,可实现对进程的有效控制。掌握在进程执行中对进程进行睡眠、同步、撤销等控制方法。u 进一步认识并发执行的实质,分析进程竞争资源的现象,学习解决进程互斥的方法。二、实验环境操作系统:任何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的内容。 父进程:对1100之间的自然数求和;分屏显示file2的内容。程序可能涉及到的系统调用:fork(), exec(), wait()#include #include #include #include #include int main()int p1,p2;int i,n=0;p1 = fork();if(p1 = 0)/system(more -dc file1);execl(/bin/ls,ls,-l,0);exit(1);else if(p1 0)wait(NULL);/system(more -dc file2);p2 = fork();if(p2 = 0)execl(/bin/cat,cat,file1,0);else if(p2 0)wait(NULL);for(i = 1 ; i = 100 ; i+)n = n + i ;printf(the add of 1-100 is:%dn,n);execl(/bin/cat,cat,file2,0);exit(1);elseprintf(fork failed.n);return 0;(2) 编程实现三个进程的并发执行(即父进程同其分别创建的两个子进程同时运行),此程序运行使系统中有三个活动进程存在。控制让每个进程在屏幕上显示一个字符串(为了便于理解,可以是有意义的一句话)。比如子进程显示”daughter”及”son”,父进程显示”parent”。试观察屏幕上的显示结果,并对输出结果进行分析。 程序可能涉及到的系统调用及函数:fork(), printf()#include#includeint main()int p1,p2;p1 = fork();if(p1 = 0)printf(子进程:sonn); else if(p1 0)p2 = fork();if(p2 = 0)printf(子进程:daughtern);else if(p2 0)printf(父进程:parentn); elseprintf(fork failed.n);return 0;(3) 编程实现并发执行的父子进程通过管道实现通信。要求父进程通过读标准输入,将读入的内容写入管道;子进程通过读管道,将读取的内容写到标准输出。 程序可能涉及到的系统调用及函数:fork(),pipe(),read(),write(),close()#include #include #include #include #include /char parent=A message to pipecommunication.n;int main()int pid,fd2;char buf100;char parent100;pipe(fd);pid=fork();read(STDIN_FILENO,parent,100);if(pid 0)close(fd0);printf(parent process sends a message to child.n);write(fd1,parent,sizeof(parent);close(fd1);printf(parent process waits the child to terminate.n);wait(0);printf(parent process terminate.n);else if(pid = 0)close(fd1);read(fd0,buf,100);printf(The message read b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【语文】天津市二年级上册期末复习试题
- 【语文】河北省唐山市路北区荣华道小学小学一年级上册期末试题(含答案)
- 六年级下册期末数学综合测试试题(比较难)及答案解析
- 校园安全知识竞赛题库及答案
- 2025年监理工程师考试案例分析真题及答案完整版
- 中心静脉导管维护考试题及答案
- 全国监理工程师执业资格考试考点模拟试卷及答案
- 2025年审计类考试题库及答案
- 专题07 压强和浮力(第02期)-2016年中考物理试题分项版解析汇编(解析版)
- 2025年医疗质量安全核心制度考核试题及答案
- 2025四川能投合江电力有限公司员工招聘11人笔试备考题库及答案解析
- 2026届广州市高三年级阶段训练(8月市调研摸底) 数学试卷(含答案解析)
- 医院非暴力沟通小讲课
- 2025至2030年中国山西省房地产行业发展监测及投资前景展望报告
- 第4课洋务运动与边疆危机(任务型导学案)(原卷版)
- 创建文明班级班会课件
- 2025年新修订治安管理处罚法课件
- 社会渠道支撑管理制度
- DBJ50-T-047-2024 建筑地基基础设计标准
- 呼吸科出科小讲课
- 2025年中国红富士苹果市场深度调研研究报告
评论
0/150
提交评论