- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华南理工大学操作系统课程实验报告实验题目: 进程管理实验概述【实验目的】掌握进程的概念,深入理解进程的含义。认识并理解并发环境中进程执行的实质问题,了解构成并发机制的进程创建过程;了解在进程创建后通过对进程控制的系统调用,可实现对进程的有效控制。掌握在进程执行中对进程进行睡眠、同步、撤消等控制方法;分析进程竞争资源的现象,学习解决进程互斥的方法。【实验内容】1、创建新的进程;查看运行进程;换出某个进程;杀死运行进程。2、采用写者优先重写P94的读者-写者问题,并通过一个读写序列,将算法与读者优先算法进行比较。3、P98的53题的上机作业。【实验原理】回答以下问题:简述调用fork创建新进程的过程一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程(child process)。fork函数被调用一次但返回两次。两次返回的唯一区别是子进程中返回0值而父进程中返回子进程ID。fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值: 1)在父进程中,fork返回新创建子进程的进程ID; 2)在子进程中,fork返回0; 3)如果出现错误,fork返回一个负值;在fork函数执行完毕后,如果创建新进程成功,则出现两个进程,一个是子进程,一个是父进程。在子进程中,fork函数返回0,在父进程中,fork返回新创建子进程的进程ID。我们可以通过fork返回的值来判断当前进程是子进程还是父进程。子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间。UNIX将复制父进程的地址空间内容给子进程,因此,子进程有了独立的地址空间。由于在复制时复制了父进程的堆栈段,所以两个进程都停留在fork函数中,等待返回。因此fork函数会返回两次,一次是在父进程中返回,另一次是在子进程中返回,这两次的返回值是不一样的。简述信号量的作用及使用方法信号量的作用:多进程资源共享时,使用信号量,避免产生死锁。?使用方法:信号量是一个整数;大于或等于0时代表可供并发进程使用的资源实体数;小于0时代表正在等待使用临界区的进程数;用于互斥的信号量初始值应大于0;只能通过P、V原语操作而改变;【实验环境】?硬件环境和软件环境:笔记本电脑;麒麟版ubuntu14.0.4;实验内容【实验过程】(实验步骤、记录、数据、分析)1.按实验要求编写多进程程序2.按实验要求编写信号量程序3. 按实验要求编写多线程程序编写多进程程序:创建新的进程;查看运行进程源代码保存在procedure1.c#include stdio.h#include sys/types.h#include unistd.h#include errno.hint main(){int a=0;int b=0;pid_t pid; // C头文件中定义进程的id号为一结构pid_tpid = fork();if(pid == 0){ a=a+1;printf(创建了一个子进程,子进程中a+1,其中PID=%d,a:%d,b:%d.\n,pid,a,b);}else if(pid 0){ perror(fork);//用来将上一个函数发生错误的原因输出到标准设备(stderr)}else{b=b+1;printf(创建了一个父进程,父进程b+1,其中PID=%d,a:%d,b:%d\n,pid,a,b);}return 0;}杀死进程,进程切换源代码放在change_kill.c#include stdio.h#include stdlib.h#include unistd.h#include signal.hint main(){ int pid1,pid2; printf(父进程,进程号为:ppid=%d\n,getppid()); pid1 = fork(); printf(pid1=%d\n,pid1); if(pid1 0){ printf(无法创建子进程1!\n); return 1; } else if(pid1 == 0){ printf(子进程1,进程号为:pid1=%d\n,getpid()); return; } int r = kill(pid1,SIGKILL);//返回0,说明没有杀死进程1 if(r){ printf(无法杀死进程1!\n); } else { printf(进程为pid1=%d已经被杀死!\n,pid1); } pid2 = fork(); if(pid2 0){ printf(无法创建子进程2!\n); return 1; } else if (pid2 == 0){ printf(创建了子进程2,进
您可能关注的文档
- 编译原理精品教学课件(华南理工大学)第六章LR分析法.ppt
- 编译原理精品教学课件(华南理工大学)第七章语法制导的语义计算-3.ppt
- 编译原理精品教学课件(华南理工大学)第三章词法分析.pptx
- 编译原理精品教学课件(华南理工大学)第四章自顶向下语法分析方法.ppt
- 编译原理精品教学课件(华南理工大学)综述.ppt
- 编译原理精品教学课件(华南理工大学)第一章编译程序概论.ppt
- 编译原理精品教学课件(华南理工大学)第二章文法和语言.ppt
- 病理生理学精品课件(复旦大学)01 Introduction.ppt
- 病理生理学精品课件(复旦大学)02 Hemodynamic Disorders-1.ppt
- 病理生理学精品课件(复旦大学)02 Hemodynamic Disorders.ppt
最近下载
- 2025年纺织服装行业分析报告及未来五至十年行业发展报告.docx
- 2023年晋中信息学院计算机科学与技术专业《数据结构与算法》科目期末试卷B(有答案).docx VIP
- 计算机病毒说课稿.ppt
- 浙江省高中物理学业水平合格性考试知识点归纳总编.pdf
- 《政府预算》课程习题.pdf VIP
- C语言程序设计(2023年春季)学习通章节答案期末考试题库2023年.pdf
- 《汽车电气设备构造与维修》项目7辅助电气系统维护与检修.pptx
- 2025年中考物理总复习 专题二 作图题(含答案).docx VIP
- 4-12 论文 基于EET仿真系统的PLC电梯控制程序设计(1).doc VIP
- 《超重和失重》课件.pptx VIP
文档评论(0)