您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统原理实验报告
操作系统原理实验报告一、课程设计的题目:根据“操作系统原理”课程的课堂教学内容,结合自己的知识积累情况,题目可从下述拟题中选择,亦可自定。二、实验设计的内容:在Linux或Windows操作系统下,用C语言进行操作系统相关的设计开发,内容可关于“并发程序设计”、“处理机管理”、“用户接口”、“存储管理”、“文件系统管理”、“设备管理”等等。三、参考资料:1、清华大学出版,张尧学《计算机操作系统教程》配套的《习题解答与实验指导书》中范例;2、清华大学出版,任爱华《操作系统实用教程》中的实例设计;3、《Linux下C语言编程入门教程》、《Linux软件工程师(C语言)实用教程》等;4、网上与操作系统设计与开发相关的文献资料。四、重要操作环节1、步骤:选题(2~3人一小组)--→提交小组名单--→分析、编写程序--→上机调试--→分析结果--→评价结果--→写出设计报告2、设计报告的主要内容:①、设计说明:设计主要完成的任务、解决的主要问题;②、工作原理:找出教材中的相关工作原理并简要说明;③、详细设计:包括调用的主要系统函数说明、程序流程图、程序代码、关键语句注释;④、运行结果:要求写出运行结果或抓图给出;⑤、分析结果:要求用操作系统原理有关理论解释说明;⑥、调试步骤以及调试过程中出现的问题及解决方法;⑦、参考文献:5篇以上;⑧、以学年论文格式提交文档资料,要有统一的封面和实验心得体会。五、成绩评定1、各小组轮流演示小组作品,演示完毕,由其他小组的同学提2个以上问题,回答完毕打分;3、打分遵循原则如下:注意:①以下必做实验每小组都要做②以下选做实验,1个实验题目至多允许2个小组选,各小组也可以自拟题目必做实验(四个,都要做)实验一1.实验名称:Linux登录、注销、关机和基本操作一。2.实验要求:掌握Linux系统的登录、注销、关机方法;掌握列出文件清单命令的使用方法:ls;掌握目录的切换命令的使用:cd;掌握目录的建立、删除命令的使用:mkdir、rmdir;掌握文件的拷贝、删除、移动命令的使用:cp、rm、mv。3.实验仪器:安装有Linux操作系统的微机。4.实验内容:(1)登录Linux系统,注销、关机;(2)按不同方式列出当前目录下的文件清单;(3)目录的切换;(4)目录的建立、删除;(5)文件拷贝、删除、移动。5.实验重点:掌握Linux的常用命令。实验二1.实验名称:Linux基本操作二2.实验要求:掌握文件内容查询命令的使用:grep;掌握文件查找命令的使用:find;掌握文件的建立和内容输入命令的使用:cat;掌握查看用户和设置口令命令的使用:who、passwd;掌握显示进程命令和终止进程命令的使用:ps、kill。3.实验仪器:安装有Linux操作系统的微机。4.实验内容:(1)按条件查找文件的操作;(2)建立和查看文件内容;(3)查看用户和设置密码;(4)进程的显示和终止。5.实验重点:掌握Linux的常用命令。实验三1.实验名称:文件权限及用户管理2.实验要求:掌握修改文件权限命令的使用:chmod;掌握改变文件属主命令的使用:chown;掌握用户的创建和删除方法:adduser、userdel;掌握组的创建和删除方法:groupadd、groupdel。3.实验仪器:安装有Linux操作系统的微机4.实验内容:(1)文件权限的修改;(2)改变文件属主;(3)创建用户和用户组。5.实验重点:掌握Linux的常用命令。实验四1.实验名称:Linux系统用户接口和编程界面实验2.实验要求:1)熟悉使用Linux字符界面、窗口系统的常用命令。2)熟悉运用Linux常用的编程工具。3)熟悉运用Linux的在线求助系统。4)掌握在Linux操作系统环境上编辑、编译、调试、运行一个C语言程序的全过程。3.实验仪器:安装有Linux操作系统的微机。4.实验内容1)熟悉开机后登录Linux系统和退出系统的过程;2)熟悉Linux字符界面——虚拟终端窗口和shell,以及图形界面——X-Window(如gnome或KDE):练习并掌握常用的Linux操作命令,如ls、cat、ps、df、find、grep、cd、more、cp、rm、kill、at、vi、cc、man、help、control+d/c、等;熟悉常用shell的提示符;熟悉字符窗口与图形界面之间的切换。3)学习使用Linux的在线求助系统,如man和help命令等。4)掌握一种Linux的编辑器,特别是字符界面的vi工具的使用。5)用vi编辑一个打印“Hello,IamaCprogram”字串的C语言程序,然后编译并运行它,记下整个过程。熟悉gcc、gdb等编译器、调试器的使用。选做实验(2~3人一小组,每小组选一个选题(也可自拟题目),以下每一选题最多只能有两个小组选)实验一进程管理一1.实验要求:(1)了解系统调用fork()、exec()、exit()等功能和实现过程;(2)编写一段程序,使用系统调用fork()创建两个子进程,由父进程重复显示字符串parent,子进程重复显示字符串child;(3)编写一段程序,使用系统调用fork()创建一个子进程,子进程通过系统调用exec()更换自己的执行代码,显示新的代码newprogram;然后调用exit()结束。(4)修改已编写的程序,将每一个进程输出的字符改为一句话,观察程序执行时屏幕上出现的现象,并分析原因。如果在程序中使用系统调用lockf()来给每一个进程加锁,可以实现进程的互斥,观察并分析出现的现象。2.实验内容通过编程实现进程的创建、撤销和运行,加深对进程概念和并发执行的理解,明确进程与程序之间的区别。3.实验目的熟练掌握进程并发执行的特点。实验二进程管理二1.实验目的:(1)加深对进程概念的理解,明确进程和程序的区别(2)进一步认识并发的本质(3)分析进程争用资源的现象,学习解决进程互斥的方法(4)了解Linux系统中进程通信的基本原理2.实验内容:编写一段程序,实现进程的软中断通信3.实验要求:使用系统调用fork()创建两个子进程,再调用系统调用signal()让父进程捕捉键盘上来的中断信号(即按住DEL键);当捕捉到中断信号后,父进程用系统调用Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:ChildProcess1iskilledbyparent1ChildProcess2iskilledbyparent1ParentProcessiskilled在上面的程序中增加语句signal(SIGINT,SIG-IGN)和signal(SIGQUIT,SIG-IGN),观察执行结果并分析原因。实验三观察内存分配结果1.实验目的:学习如何利用Linux的malloc函数动态申请一段内存空间。2.实验内容(1)了解malloc函数的功能和Linux虚拟内存管理的原理。(2)编写一C语言程序,用malloc函数申请一段存储空间,并在终端上显示起始地址。(3)运行该程序,观察、记录其运行结果,并分析说明结果的地址是否为物理地址。实验四进程间的通信1.实验目的了解和熟悉LINUX支持的消息通信机制,共享存储区以及信号量机制2.实验预备内容阅读LINUX系统的mdg.c,sem.c和shm.c等源码文件,熟悉LINUX的三种通信机制。3.实验主要内容(消息的创建,发送和接收)(1)使用系统调用msgget(),msgsnd(),msgrev(),以及msgctl()编制一长度为1k的消息发送和接收程序;(2)观察上面程序,说明控制消息队列的系统调用msgctl()在此起什么作用。实验五进程调度实验一、实验目的和要求进程调度是处理机管理的核心内容。本实验要求用C语言编写和调试一个简单的进程调度程序。通过本实验可以加深理解有关进程控制块、进程队列的概念,并体会和了解优先数和时间片轮转调度算法的具体实施办法。二、实验主要内容1、设计进程控制块PCB表结构,分别适用于优先数调度算法和循环轮转调度算法。PCB结构通常包括以下信息:进程名,进程优先数(或轮转时间片),进程所占用的CPU时间,进程的状态,当前队列指针等。根据调度算法的不同,PCB结构的内容可以作适当的增删。2、建立进程就绪队列。对两种不同算法编制入链子程序。3、编制两种进程调度算法:1)优先度调度;2)循环轮转调度。4、本程序用两种算法对五个进程进行调度,每个进程可有三个状态,并假设初始状态为就绪状态。5、为了便于处理,程序中的运行时间以时间片为单位计算,各进程的优先数或轮转时间数以及进程需要运行的时间片数的初值与算法均由用户给定。要求:进程在就绪队列呆一个时间片,优先数增加1,进程每运行一个时间片,优先数减3。实验六请求调页存储管理方法的模拟实验一、实验目标和要求存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。本实验要求用C/C++语言编写和调试一个简单的存储管理程序。二、实验内容(1)假设每个页面中可存放10条指令,分配给一作业的内存块数为4。(2)用C语言模拟一作业的执行过程。该作业共有320条指令,即它的地址空间为32页,目前它的所有页都还未调入内存。在模拟过程中,如果所访问的指令已在内存,则显示其物理地址,并转入下一条指令。如果所访问的指令还未装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。如果4个内存块中均已装入该作业,则需进行页面置换。最后显示其物理地址,并转下一条指令。在所有320条指令执行完毕后,请计算并显示作业运行过程中发生的缺页率。(3)先进先出算法(FIFO)、最近最少使用算法(LRU)。(4)作业中指令的访问次序按下述原则生成:●50%的指令是顺序执行的●25%的指令是均匀分布在前地址部分●25%的指令是均匀分布在后地址部分(4)具体实施方法①在[0,319]之间随机选取一条起始执行指令,其序号为m②顺序执行下一条指令,即序号为m+1的指令③通过随机数,跳转到前地址部分[0,m-1]中的某条指令处,其序号为m1④顺序执行下一条指令,即序号为m1+1的指令⑤通过随机数,跳转到后地址部分[m1+2,319]中的某条指令处,其序号为m2⑥顺序执行下一条指令,即序号为m2+1的指令重复跳转到前地址部分、顺序执行、跳转到后地址部分、顺序执行的过程,直到执行320条指令实验七进程同步实验(生产者与消费者问题算法实现)一、实验目标和要求进程的同步是操作系统处理机管理的重要内容,本实验要求学生理解生产者与消费者问题模型,掌握解决该问题的算法思想,学会使用同步机制。二、实验内容一组生产者向一组消费者提供消息,它们共享一个有界缓冲池,生产者向其中投放消息,消费者从中取得消息。假定这些生产者和消费者互相等效,只要缓冲池未满,生产者可将消息送入缓冲池;只要缓冲池未空,消费者可从缓冲池取走一个消息。根据进程同步机制,编写一个解决上述问题的可视化程序,可显示缓冲池状态、放数据、取数据等过程。三、实验方法或步骤1.给出所采用的同步方法;2.写出数据定义和详细说明;有3个生产者进程,分别为P1、P2和P3;......PQ放消息取消息nn个缓冲区(Buffer)ij有4个消费者进程,分别是C1、C2、C3和C4;缓冲区单元个数N=15;不同的生产进程可生产不同的产品(比如字母、数字、符号);不同的消费进程可有不同的消费方式(比如“显示”、“打印”、“拼接成字符串”、“改变大小写”等)。自己可任意定义。3.调试完成源程序;4.屏幕观察运行结果。实验八Linux进程的异步并发执行一.实验目的1.了解进程与程序的区别,加深对进程概念的理解;2.掌握进程并发执行的原理,理解进程并发执行的特点,区分进程并发执行与串行执行;3.了解fork()系统调用的返回值,掌握用fork()创建进程的方法;4.熟悉wait、exit等系统调用。二.实验内容1.编写一C语言
本文标题:操作系统原理实验报告
链接地址:https://www.777doc.com/doc-3361980 .html