操作系统原理实验报告班级____________学号____________姓名____________浙江科技学院信息与电子工程学院2010-2011学年第2学期操作系统原理实验报告2010-2011学年第2学期第1页共17页操作系统原理实验报告班级____________学号____________姓名____________实验1进程管理一、实验目的1.弄清进程和程序的区别,加深对进程概念的理解。2.了解并发进程的执行过程,进一步认识并发执行的实质。3.掌握解决进程互斥使用资源的方法。二、实验内容1.管道通信使用系统调用pipe()建立一个管道,然后使用系统调用fork()创建2个子进程p1和p2。这2个子进程分别向管道中写入字符串:“Childprocessp1issendingmessage!”和“Childprocessp2issendingmessage!”,而父进程则从管道中读出来自两个子进程的信息,并显示在屏幕上。2.软中断通信使用系统调用fork()创建2个子进程p1和p2,在父进程中使用系统调用signal()捕捉来自键盘上的软中断信号SIGINT(即按Ctrl-C),当捕捉到软中断信号SIGINT后,父进程使用系统调用kill()分别向2个子进程发出软中断信号SIGUSR1和SIGUSR2,子进程捕捉到信号后分别输出信息“Childprocessp1iskilledbyparent!”和“Childprocessp2iskilledbyparent!”后终止。而父进程等待2个子进程终止后,输出信息“Parentprocessiskilled!”后终止。三、实验要求1.根据实验内容编写C程序。2.上机调试程序。3.记录并分析程序运行结果。操作系统原理实验报告2010-2011学年第2学期第2页共17页四、程序说明和程序流程图操作系统原理实验报告2010-2011学年第2学期第3页共17页五、程序代码操作系统原理实验报告2010-2011学年第2学期第4页共17页六、程序运行结果及分析操作系统原理实验报告2010-2011学年第2学期第5页共17页操作系统原理实验报告班级____________学号____________姓名____________实验2进程通信一、实验目的1.了解进程间通信IPC的三种方式:消息队列、共享内存和信号量。2.掌握使用消息队列进行进程间通信的有关系统调用和编程方法。3.掌握使用共享内存进行进程间通信的有关系统调用和编程方法。二、实验内容1.消息队列使用系统调用msgget()、msgsnd()、msgrcv()和msgctl(),用消息队列机制实现客户进程和服务器进程间的通信。客户进程首先建立一个描述符为msgqid的消息队列,接着向服务器进程发送一个消息正文为自己的进程标识pid且类型为1的消息,然后接收来自服务器进程的消息,并在屏幕上显示:“Clientreceivesamessagefromxxxx!”,其中“xxxx”为服务器进程的进程标识。服务器进程首先捕捉软中断信号(除不能捕捉的SIGKILL),若捕捉到时则调用函数cleanup()删除消息队列,终止服务器进程。否则重复下列操作:接收所有类型为1的消息,并在屏幕上显示:“Serverreceivesamessagefromxxxx!”,其中“xxxx”为客户进程的进程标识;然后服务器进程将客户进程的进程标识作为返回消息的类型,而将自己的进程标识作为消息正文发送给客户进程。2.共享内存使用系统调用shmget()、shmat()和shmctl(),用共享内存机制实现进程间的通信。其中一个进程向共享内存中写入数据,另一个进程从共享内存中读出数据并显示在屏幕上。操作系统原理实验报告2010-2011学年第2学期第6页共17页三、实验要求1.根据实验内容编写C程序。2.上机调试程序。3.记录并分析程序运行结果。四、程序说明和程序流程图操作系统原理实验报告2010-2011学年第2学期第7页共17页五、程序代码操作系统原理实验报告2010-2011学年第2学期第8页共17页六、程序运行结果及分析操作系统原理实验报告2010-2011学年第2学期第9页共17页操作系统原理实验报告班级____________学号____________姓名____________实验3存储管理一、实验目的1.了解虚拟存储管理技术的原理与特点。2.掌握请求页式存储管理的页面置换算法。二、实验内容1.通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成:(1)50%的指令是顺序执行的;(2)25%的指令均匀分布在前地址部分;(3)25%的指令均匀分布在后地址部分。实现方法:(1)在[0,319]的指令地址中随机选取一起点s;(2)执行指令s;(3)顺序执行一条指令,即执行地址为s+1的指令;(4)在前地址[0,s]中随机选取一条地址为m的指令执行;(5)顺序执行一条指令,即执行地址为m+1的指令;(6)在后地址[m+2,319]中随机选取一条指令s;(7)重复(2)—(6),直到执行320次指令。2.将指令序列变换为页地址流,设:(1)页面大小为1K;(2)用户内存容量为4—32页面(pageframe);(3)用户虚存容量为32K(即32页)。操作系统原理实验报告2010-2011学年第2学期第10页共17页若10条指令为1页,则320条指令在虚存中的存放方式为:第0页(虚存地址[0,9])——第0条~第9条指令;第1页(虚存地址[10,19])——第10条~第19条指令;••••••第31页(虚存地址[310,319])——第310条~第319条指令。3.计算并输出下列算法在不同内存容量下的命中率(命中率=1-缺页率)。(1)FIFO——FirstInFirstOutPageReplacementAlgorithm(2)LRU——LeastRecentlyUsedPageReplacementAlgorithm三、实验要求1.根据实验内容编写C程序。2.上机调试程序。3.记录并分析程序运行结果。四、程序说明和程序流程图操作系统原理实验报告2010-2011学年第2学期第11页共17页五、程序代码操作系统原理实验报告2010-2011学年第2学期第12页共17页六、程序运行结果及分析操作系统原理实验报告2010-2011学年第2学期第13页共17页操作系统原理实验报告班级____________学号____________姓名____________实验4文件系统一、实验目的1.了解文件系统的功能和内部实现。2.熟悉有关文件系统的系统调用。3.掌握简单文件系统的设计方法。二、实验内容1.使用有关文件系统的系统调用creat()、open()、close()、read()和write()将文件file1.c和file2.c合并为file3.c。2.为Linux系统设计一个二级目录结构的文件系统,要求具有下列功能:(1)向用户提供以下命令:login——用户登录dir——列文件目录create——创建文件delete——删除文件open——打开文件close——关闭文件read——读文件write——写文件(2)文件可进行读写保护。(3)列文件目录时须列出文件名、文件属性(保护信息)、文件长度和物理地址。操作系统原理实验报告2010-2011学年第2学期第14页共17页三、实验要求1.根据实验内容编写C程序。2.上机调试程序。3.记录并分析程序运行结果。四、程序说明和程序流程图操作系统原理实验报告2010-2011学年第2学期第15页共17页五、程序代码操作系统原理实验报告2010-2011学年第2学期第16页共17页六、程序运行结果及分析