2012级操作系统实验报告_第1页
2012级操作系统实验报告_第2页
2012级操作系统实验报告_第3页
2012级操作系统实验报告_第4页
2012级操作系统实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

哈尔滨学院实验报告课程名称:计算机操作系统专业:软件工程。班级: 12-8学号: 12031801名字:常燕如教务处制度实验1流程管理【实验的目的和要求】加深对流程概念的理解,明确流程和程序的差异。掌握Linux流程创建和取消的方法,进一步了解并行执行的本质。掌握在Linux系统上创建守护程序的方法。【实验原理】 Linux进程管理命令进程审查进程结束进程优先级设定 Linux过程控制函数建立和修改进程进程属性的设定取得进程属性进程的结束 Linux守护进程独立启动守护进程超级守护进程守护进程的建立过程守护进程的创建遵循由以下五个步骤组成的特定过程Step创建子进程并结束父进程Step在子进程中创建新会话Step!将当前目录更改为根目录Step重置文件权限掩码Step关闭文件描述符【实验的主要机器和材料】带Linux操作系统的电脑 GCC编译器【实验内容】工艺处理信息的获取管理命令用于获取系统当前正在运行的进程的信息,如进程名称和ID、PID、PGID等。制作流程编程程序实现父进程创建一个子进程,返回后,父进程分别输出5次字符串“I am parent .”或“imachild .”,每输出延迟1秒(sleep(1) ),前进到下一个循环。 观察并分析执行结果。 然后,将程序更改为父子进程同步执行。 子进程输出5次字符串“imachild .”,父进程输出5次字符串“imaparent .”。 再次观察并分析执行结果。【实验顺序和实验结果的分析】实验内容1用于通过进程实现和验证父进程和子进程的id号的命令PK系列实验内容2实现父进程来创建子进程,返回后,父进程分别重复5次字符串“I am parent .”或“imachild .”,每输出延迟1秒(sleep(1) ),进入下一个循环。#include#include#includeint main ()举止pid_t pt;打印机( hello world! )n );PS;pt=fork ();for(i=0; i5; PS )举止PS (K=-1 )打印( fork error. n );else if打印( I am a parent. n );睡眠(1)以下elseprintf(imachild.n );睡眠(1)以下以下返回0;以下父子进程同步执行:子进程输出5次字符串“imachild .”,父进程输出5次字符串“imaparent .”。#include#include#includeint main ()举止pid_t pt;打印机( hello world! )n );PS;pt=fork ();for(i=0; i5; PS )举止PS (K=-1 )打印( fork error. n );else if打印( I am a parent. n );以下elseprintf(imachild.n );以下以下返回0;以下【思考问题】程序和过程的差异。(1)程序是动态的,程序是静态的:程序是秩序代码的集合的过程是程序的执行。 流程通常无法在计算机之间迁移,程序通常支持文件、静态和可复制。(2)程序是暂时的,程序是永久性的:程序是状态变化的程序,程序可以长期保存。(3)进程和程序的构成不同:进程的构成是程序,数据和过程控制块(即进程状态信息)。(4)进程和程序的对应关系:通过多次运行,一个程序调用能够与多个进程对应的关系,一个程序能够包含多个程序。LinuxOS下的进程类型。对话处理批次处理守护程式进程创建函数fork和vfork的差异。(1)fork ()用于创建新流程。 fork ()创建的子进程是父进程的副本。 也就是说,子进程获取父进程的数据空间、堆和堆栈的副本。 这些存储空间的一部分不会在父子进程之间共享。 由vfork ()创建的进程不会将父进程的地址空间完全复制到子进程中。 子进程立即调用exec (或exit ),而不存储其地址空间。 相反,子进程在调用exec或exit之前,在父进程的空间中执行。(2)vfork ()和fork ()的另一个区别在于,vfork在执行子进程,在调用exec或exit之前与父进程的数据共享,并在调用exec或exit之后执行父进程。(3)vfork和fork的另一个区别在于,vfork确保子进程先执行,并可能在调用exec或exit后将父进程调度执行。 如果在调用这两个函数之前,子进程依赖于父进程的进一步行为,则会发生死锁。进程的结束函数是什么? 有什么区别?c程序是怎么结束的?exit函数return函数abort函数_exit函数。exit和_exit函数用于成功结束程序exit首先执行一些清除过程,然后进入内核清除过程,然后调用每个结束处理程序来结束所有标准I/O流_exit马上进入内核abort函数用于异常终止程序exit是一个函数,具有参数,并将控制权传递给系统return是执行函数后的返回,将控制权传递给调用函数实验2过程通信【实验的目的和要求】理解基于信号的过程通信机制。熟悉LINUX系统中进程间软件通信中断的基本原理。【实验原理】一、红绿灯信号的基本概念信号的发送对信号的处理二、有关的中断调用 kill () signal () wait () waitpid ()锁定()【实验的主要机器和材料】带Linux操作系统的电脑 GCC编译器【实验内容】使用创建程序: fork ()创建两个子进程,使用系统调用signal ()让父进程捕获来自键盘的中断信号(c键)捕获中断信号时,父进程使用系统调用kill ()childprocess1isusedbyparent!childprocess2isusedbyparent!父进程等待两个子进程结束,然后输出以下信息结束:parentprocessis被杀了!利用软中断通信分析实现过程同步的机制。【实验顺序和实验结果的分析】使用创建程序: fork ()创建两个子进程,使用系统调用signal ()捕获来自键盘的中断信号(c键)捕获中断信号时,父进程使用系统调用kill ()childprocess1isusedbyparent!childprocess2isusedbyparent!父进程等待两个子进程结束,然后输出以下信息结束:parentprocessis被杀了!软中断信号的处理分为以下三种情况进行(1)如果进程接收到的软件击穿是决定忽略的信号,则不处理而立即返回。(2)进程受到软件中断而结束。(3)执行用户设定的软中断处理程序。【思考问题】实验内容的参考顺序如下。 仔细阅读,调试,分析,然后回答以下问题#include#include#include#include#includevoidwaiting()stop ();int wait_mark;int main ()举止int p1、p2、stdout=1;while(p1=fork()=-1) /*创建子进程p1*/PS (PS 10 )举止while(p2=fork()=-1) /*创建子进程p2*/PS (PS 20 )举止wait_mark=1;信号(信号,停止)/*接收c信号,停止* /waiting ();向kill (p 1,16 )/* p 1发送软中断信号16*/到kill (p 2,17 )/* p 2的软中断信号17*/wait(0) /*同步*/wait(0)printf(parentprocessis被杀! n );exit(0)以下else举止wait_mark=1;接收信号(17,stop) /*软中断信号17,stop*/waiting ();锁定(stdout,1,0 )printf ( child process2is used by parent! n );锁定(stdout,0,0 )exit(0)以下以下else举止wait_mark=1;接收信号(16,stop) /*软中断信号16,stop*/waiting ();锁定(stdout,1,0 )printf ( child process1is used by parent! n );锁定(stdout,0,0 )exit(0)以下返回0;以下void waiting ()举止while(wait_mark!=0;以下void stop ()举止wait_mark=0;以下在参照段的前一部分使用了两个wait(0),如何工作?角色: wait(0)函数的角色是两个wait函数,因为父进程具有两个子进程,等待子进程结束。为什么在段内的各进程结束时使用了语句exit(0)?角色:用于成功地自我结束子进程,并成功地结束子进程。参考程序的执行结果是什么?parentprocessis被杀了!参考程序是否满足实验要求? 为什么?不一致。 原因: p1、p2捕捉中断信号。 在父进程中,当捕获中断信号时,转到指定函数stop ()的函数随后会启动父进程,并从中断位置继续执行。 由于子过程没有指定接收到中断信号之后的操作,所以执行默认操作并终止它自己。 因此,我们发出中断信号后,父进程按计划正常执行,p1、p2结束了自己,所以没有得到按计划的结果。参考程序为了得到正确的结果,需要如何修改?第一种方法:选择fork ()语句在创建子进程之前捕获信号(sigint,stop )。第二方法是在每个子进程之前添加忽略中断信号的语句(signal,si )的方法G_IGN; 的双曲正切值。第三种方法是打开两个接口,一个接口被成功编译,另一个接口执行如下操作PR PSps -a|grep a.outkill -s INT 11313实验3内存管理【实验的目的和要求】理解虚拟存储技术的特征。掌握请求基于页面的存储管理的页面替换算法。3 .理解页面大小和内存的实际容量对命中率的影响。【实验原理】分页存储管理将进程的逻辑地址空间划分为相同大小的片,并使其成为页面或页面。在进程执行中,如果内存中没有要访问的页面,则需要将它们存入存储器中,但如果存储器中没有空闲空间,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论