版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统原理实验报告一、课程设计的题目:根据“操作系统原理”课程的课堂教学内容,结合自己的知识积累情况,题目可从下述拟题中选择,亦可自定。二、实验设计的内容:在Linux或Windows操作系统下,用C语言进行操作系统相关的设计开发,内容可关于“并发程序设计”、“处理机管理”、“用户接口”、“存储管理”、“文件系统管理”、“设备管理”等等。三、参考资料:1、清华大学出版,张尧学计算机操作系统教程配套的习题解答与实验指导书中范例;2、清华大学出版,任爱华操作系统实用教程中的实例设计;3、Linux下C语言编程入门教程、Linux软件工程师(C语言)实用教程等;4、网上与操作系统设计与开发相关的文
2、献资料。四、重要操作环节1、步骤:选题(23人一小组)-提交小组名单-分析、编写程序-上机调试-分析结果-评价结果-写出设计报告2、设计报告的主要内容:、设计说明:设计主要完成的任务、解决的主要问题;、工作原理:找出教材中的相关工作原理并简要说明;、详细设计:包括调用的主要系统函数说明、程序流程图、程序代码、关键语句注释;、运行结果:要求写出运行结果或抓图给出;、分析结果:要求用操作系统原理有关理论解释说明;、调试步骤以及调试过程中出现的问题及解决方法;、参考文献:5篇以上;、以学年论文格式提交文档资料,要有统一的封面和实验心得体会。五、成绩评定1、各小组轮流演示小组作品,演示完毕,由其他小组
3、的同学提2个以上问题,回答完毕打分;3、打分遵循原则如下:注意:以下必做实验每小组都要做以下选做实验,1个实验题目至多允许2个小组选,各小组也可以自拟题目必做实验(四个,都要做)实验一 1. 实验名称:Linux登录、注销、关机和基本操作一。2. 实验要求:掌握Linux系统的登录、注销、关机方法;掌握列出文件清单命令的使用方法:ls;掌握目录的切换命令的使用:cd;掌握目录的建立、删除命令的使用:mkdir、rmdir;掌握文件的拷贝、删除、移动命令的使用:cp、rm、mv 。3. 实验仪器:安装有Linux操作系统的微机。4. 实验内容:(1)登录Linux系统,注销、关机;(2)按不同方
4、式列出当前目录下的文件清单;(3)目录的切换;(4)目录的建立、删除;(5)文件拷贝、删除、移动。5. 实验重点:掌握Linux的常用命令。实验二1. 实验名称:Linux基本操作二2. 实验要求:掌握文件内容查询命令的使用:grep;掌握文件查找命令的使用:find;掌握文件的建立和内容输入命令的使用:cat;掌握查看用户和设置口令命令的使用:who、passwd;掌握显示进程命令和终止进程命令的使用:ps、kill 。3. 实验仪器:安装有Linux操作系统的微机。4. 实验内容:(1)按条件查找文件的操作;(2)建立和查看文件内容;(3)查看用户和设置密码;(4)进程的显示和终止。5.
5、实验重点:掌握Linux的常用命令。实验三1. 实验名称:文件权限及用户管理2. 实验要求:掌握修改文件权限命令的使用:chmod;掌握改变文件属主命令的使用:chown;掌握用户的创建和删除方法:adduser、userdel;掌握组的创建和删除方法:groupadd、groupdel 。3. 实验仪器:安装有Linux操作系统的微机4. 实验内容:(1)文件权限的修改;(2)改变文件属主;(3)创建用户和用户组。5. 实验重点:掌握Linux的常用命令。实验四1. 实验名称:Linux系统用户接口和编程界面实验2. 实验要求:1)熟悉使用Linux字符界面、窗口系统的常用命令。2)熟悉运用
6、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的提示符;熟悉字符窗口与图形界
7、面之间的切换。3) 学习使用Linux的在线求助系统,如man和help命令等。4) 掌握一种Linux的编辑器,特别是字符界面的vi工具的使用。5) 用vi编辑一个打印“Hello,I am a C program”字串的C语言程序,然后编译并运行它,记下整个过程。熟悉gcc、gdb等编译器、调试器的使用。选做实验(23人一小组,每小组选一个选题(也可自拟题目),以下每一选题最多只能有两个小组选)实验一 进程管理一1. 实验要求:(1)了解系统调用fork()、exec()、exit()等功能和实现过程;(2)编写一段程序,使用系统调用fork()创建两个子进程,由父进程重复显示字符串par
8、ent,子进程重复显示字符串child ;(3)编写一段程序,使用系统调用fork()创建一个子进程,子进程通过系统调用exec()更换自己的执行代码,显示新的代码new program;然后调用exit()结束。(4)修改已编写的程序,将每一个进程输出的字符改为一句话,观察程序执行时屏幕上出现的现象,并分析原因。如果在程序中使用系统调用lockf( )来给每一个进程加锁,可以实现进程的互斥,观察并分析出现的现象。2. 实验内容通过编程实现进程的创建、撤销和运行,加深对进程概念和并发执行的理解,明确进程与程序之间的区别。3. 实验目的熟练掌握进程并发执行的特点。实验二 进程管理二1. 实验目的
9、:(1)加深对进程概念的理解,明确进程和程序的区别(2)进一步认识并发的本质(3)分析进程争用资源的现象,学习解决进程互斥的方法(4)了解Linux系统中进程通信的基本原理2. 实验内容:编写一段程序,实现进程的软中断通信3. 实验要求:使用系统调用fork( )创建两个子进程,再调用系统调用signal( ) 让父进程捕捉键盘上来的中断信号(即按住DEL键);当捕捉到中断信号后,父进程用系统调用Kill( )向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child Process1 is killed by parent1 Child Process2 is killed
10、 by parent1Parent Process is killed 在上面的程序中增加语句signal(SIGINT, SIG-IGN)和signal(SIGQUIT,SIG-IGN),观察执行结果并分析原因。实验三 观察内存分配结果1. 实验目的:学习如何利用Linux的malloc函数动态申请一段内存空间。2. 实验内容(1)了解malloc函数的功能和Linux虚拟内存管理的原理。(2)编写一C语言程序,用malloc函数申请一段存储空间,并在终端上显示起始地址。(3)运行该程序,观察、记录其运行结果,并分析说明结果的地址是否为物理地址。实验四 进程间的通信1. 实验目的了解和熟悉L
11、INUX支持的消息通信机制,共享存储区以及信号量机制2. 实验预备内容阅读LINUX系统的mdg.c,sem.c和shm.c等源码文件,熟悉LINUX的三种通信机制。3. 实验主要内容(消息的创建,发送和接收)(1)使用系统调用msgget( ),msgsnd( ),msgrev( ),以及msgctl( )编制一长度为1k的消息发送和接收程序;(2)观察上面程序,说明控制消息队列的系统调用msgctl( )在此起什么作用。实验五 进程调度实验一、实验目的和要求进程调度是处理机管理的核心内容。本实验要求用C语言编写和调试一个简单的进程调度程序。通过本实验可以加深理解有关进程控制块、进程队列的概
12、念,并体会和了解优先数和时间片轮转调度算法的具体实施办法。二、实验主要内容1、设计进程控制块PCB表结构,分别适用于优先数调度算法和循环轮转调度算法。 PCB结构通常包括以下信息:进程名,进程优先数(或轮转时间片),进程所占用的CPU时间,进程的状态,当前队列指针等。根据调度算法的不同,PCB结构的内容可以作适当的增删。2、建立进程就绪队列。对两种不同算法编制入链子程序。 3、编制两种进程调度算法:1)优先度调度;2)循环轮转调度。4、本程序用两种算法对五个进程进行调度,每个进程可有三个状态,并假设初始状态为就绪状态。5、为了便于处理,程序中的运行时间以时间片为单位计算,各进程的优先数或轮转时
13、间数以及进程需要运行的时间片数的初值与算法均由用户给定。要求:进程在就绪队列呆一个时间片,优先数增加1,进程每运行一个时间片,优先数减3。实验六 请求调页存储管理方法的模拟实验一、实验目标和要求存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。本实验要求用C/C+语言编写和调试一个简单的存储管理程序。二、实验内容(1)假设每个页面中可存放10条指令,分配给一作业的内存块数为4。(2)用C语言模拟一作业的执行过程。该作业共有320条指令,即它的地址空间
14、为32页,目前它的所有页都还未调入内存。在模拟过程中,如果所访问的指令已在内存,则显示其物理地址,并转入下一条指令。如果所访问的指令还未装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。如果4个内存块中均已装入该作业,则需进行页面置换。最后显示其物理地址,并转下一条指令。在所有320条指令执行完毕后,请计算并显示作业运行过程中发生的缺页率。(3)先进先出算法(FIFO)、最近最少使用算法(LRU)。(4)作业中指令的访问次序按下述原则生成: 50%的指令是顺序执行的 25%的指令是均匀分布在前地址部分 25%的指令是均匀分布在后地址部分(4)具体实施方法在0,319之间随机选取一
15、条起始执行指令,其序号为m顺序执行下一条指令,即序号为m+1的指令通过随机数,跳转到前地址部分0,m-1中的某条指令处,其序号为m1顺序执行下一条指令,即序号为m1+1的指令通过随机数,跳转到 后地址部分m1+2,319中的某条指令处,其序号为m2顺序执行下一条指令,即序号为m2+1的指令重复跳转到前地址部分、顺序执行、跳转到后地址部分、顺序执行的过程,直到执行320条指令实验七 进程同步实验(生产者与消费者问题算法实现)一、实验目标和要求进程的同步是操作系统处理机管理的重要内容,本实验要求学生理解生产者与消费者问题模型,掌握解决该问题的算法思想,学会使用同步机制。二、实验内容一组生产者向一组
16、消费者提供消息,它们共享一个有界缓冲池,生产者向其中投放消息,消费者从中取得消息。假定这些生产者和消费者互相等效,只要缓冲池未满,生产者可将消息送入缓冲池;只要缓冲池未空,消费者可从缓冲池取走一个消息。根据进程同步机制,编写一个解决上述问题的可视化程序,可显示缓冲池状态、放数据、取数据等过程。三、实验方法或步骤1.给出所采用的同步方法;2.写出数据定义和详细说明;有3个生产者进程,分别为P1、P2和P3;有4个消费者进程,分别是C1、C2、C3和C4;缓冲区单元个数N=15;不同的生产进程可生产不同的产品(比如字母、数字、符号);不同的消费进程可有不同的消费方式(比如“显示”、“打印”、“拼接
17、成字符串”、“改变大小写”等)。自己可任意定义。3.调试完成源程序;4.屏幕观察运行结果。实验八 Linux进程的异步并发执行一实验目的1.了解进程与程序的区别,加深对进程概念的理解;2.掌握进程并发执行的原理,理解进程并发执行的特点,区分进程并发执行与串行执行;3.了解fork( )系统调用的返回值,掌握用fork()创建进程的方法; 4.熟悉wait、exit等系统调用。二实验内容1编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏
18、幕显示“I am daughter”。2多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。记下这种情况,试简单分析其原因。3修改程序,利用nice ( ) 改变各进程的优先级,观察不同情况下进程调度效果的区别。4修改程序,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推进,多次反复运行改进后的程序,观察并记录运行结果。实验九 读者-写者问题实验一、实验目标和要求读者-写者问题是经典的进程同步问题之一。本实验要求学生掌握进程同步的基本概念,体会同步信号量的作用,加深对信号量机制实现进程同步与互斥的理解。二、实验内容在Windows操作环境下,创建一个包
19、含n个线程的控制台进程。用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件的要求进行读写操作。用信号量机制实现读者-写者的进程同步问题。问题描述如课堂讨论内容。 运行结果显示要求:要求在每个线程创建、发出读写操作申请、开始读写操作和结束读写操作时分别显示一行提示信息,以确信所有处理都遵守相应的读写操作限制。三、实验方法或步骤读者-写者问题的读写操作限制:1)写-写互斥;2)读写互斥;3)读读允许。实验十 在Linux中使用优盘一实验目的1了解mount和umount命令的功能;2了解Linux设备文件的命名;3用上述所了解的内容解决在Linux中使用优盘的问题。二实验内容1用moun
20、t命令把优盘的设备文件安装到/mnt目录(可能需要root用户口令,请勿乱用)。2进入/mnt目录,使用优盘(比如,往里拷贝一个文件)。3退出/mnt目录,用umount命令把优盘从系统中卸载掉。4按ctrl+d组合键,退出超级用户模式。5总结在Linux中使用优盘的过程。实验十一 Linux进程间的通信一、实验目的学习如何利用管道机制、消息缓冲队列、共享存储区机制进行进程间的通信,并加深对上述通信机制的理解。二、实验内容1了解系统调用pipe()、msgget()、msgsnd()、msgrcv()、msgctl()、shmget()、shmat()、shmdt()、shmctl()的功能和
21、实现过程。2编写一C语言程序,使其用管道来实现父子进程间通信。子进程向父进程发送字符串“is sending a message to parent!”;父进程则从管道中读出子进程发来的消息,并将其显示到屏幕上,然后终止。3运行该程序,观察、记录并简单分析其运行结果。实验十二 动态内存分配一、实验目标与要求学习动态分区分配方式中的数据结构和分配算法首次适应算法。对各种存储算法进行分析比较,评测其性能优劣,加深理解。二、实验内容(1)掌握动态内存分配过程alloc( )和回收过程free( );(2)在给定初始状态下,采用首次适应算法和最佳适应算法(应有两种选择)进行内存块的分配和回收,要求每次分配和回收后显示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川省什邡市职业中专学校(什邡市综合高级中学)教师招聘人备考题库及完整答案详解
- 2025秋季广西北海市中日友谊中学学期教师招聘备考题库有答案详解
- 2026广西南宁市横州市总工会招聘社会化工会工作者8人备考题库及1套参考答案详解
- 2026南京大学YJ20260139天文与空间科学学院博士后招聘1人备考题库(含答案详解)
- 2025云南昭通市文联招聘城镇公益性岗位工作人员1人备考题库参考答案详解
- 2026年南平武夷山职业学院1月人才增补招聘1人备考题库及答案详解(考点梳理)
- 2026四川绵阳市江油市社会治安综合治理中心招聘5人备考题库及完整答案详解一套
- 2026安徽黄山新城区投资有限公司及权属子公司招聘14人备考题库及完整答案详解1套
- 2026广东深圳福田区第一幼教集团招聘备考题库及完整答案详解一套
- 2026内蒙古敕勒川名医堂中医门诊部招聘27人备考题库有答案详解
- 医疗机构抗菌药物临床应用分级管理目录(2024年版)
- 无人机培训计划表
- 我和我的祖国混声四部合唱简谱
- (正式版)JTT 1218.6-2024 城市轨道交通运营设备维修与更新技术规范 第6部分:站台门
- 2023年美国专利法中文
- 电气防火防爆培训课件
- 彝族文化和幼儿园课程结合的研究获奖科研报告
- 空调安装免责协议
- 湖北省襄樊市樊城区2023-2024学年数学四年级第一学期期末质量检测试题含答案
- 新北师大版八年级数学下册导学案(全册)
- cimatron紫藤教程系列gpp2运行逻辑及block说明
评论
0/150
提交评论