1、操作系统实验报告实验报告册班级: 学号: 姓名: 教师: 褚华 目 录实验阐明重要提示实验1 Linux(虚拟机)安装及Linux惯用命令使用实验2 makefile编写及Linux内核编译 实验3 Linux进程和线程实验4 同步与互斥实验5 文献系统实验阐明1 实验做为学习重要增进手段,是为了深化对理论理解,锻炼实践动手能力。2 实验同步也作为考核手段。3 实验内容会在课程进行中下达,并且会分次地、某些地被抽查。4 课程结束时,规定把所有实验整顿成一种完整电子文档并上交,做为最后成绩评估根据。5 如果有兴趣适当题目,也可自己选题目。格式阐明1 本文档文献名命名为“学号-姓名”,如“1307
2、1000_小王”。2 留白某些局限性自己调节长度,也可加页(增长内容应在表格内)。3 每次实验报告都要在这个文献中(按照实验顺序依次)增长,而不是每次一种新word文献。4 本文档保存为doc格式( 请勿用Worddocx格式)。重要提示:1 实验正文建议使用小四号或五号宋体。2 若附加图形,则请直接嵌入到实验手册相应位置。3 各实验源程序,请按实验分目录存储,如第一种实验源程序存储在目录lab1下,第二个实验源程序存储在目录lab2下等等,依次类推。4 可互相讨论,但禁止抄袭网络或同窗实验成果。实验编号1题目Linux(虚拟机)安装及Linux惯用命令使用实验目1. 安装虚拟机2. 学习li
3、nux基本操作实验内容1. 安装虚拟机2. 熟悉linux操作报告内容规定(1) 实现办法和思路(2) 测试及成果报 告 正 文实验一:安装虚拟机由于我始终使用linux物理机在本系列实验中我将使用是我自己linux物理机,因此就不用安装虚拟机了实验二:熟悉linux操作Linux基本操作有一:目录操作ls pwd mkdir rmdir其中1. ls是查看当前目录内容用法ls -l ls -al2. pwd是显示当前所在目录绝对途径用法 pwd3. mkdir是创立一种新目录用法mkdir dirname4. rmdir是删除一种空目录用法 rmdir dirname 注意dirname一定
4、要是空目录才行二:文献操作 touch 用法 touch filename 如果文献不存在则新建文献,否则不解决cp 用法 cp oldfilename newfilename 拷贝oldfilename为newfilenamerm 用法 rm filename 删除filename文献mv 用法 mv oldfilename newfilename 将oldfilename移动到newfilenamefind用法 find pathname -name filename 在pathname途径下寻找文献filename三:文本文献查看命令 cat 用法 cat filename 查看file
5、name文献more 用法 more filename 也是查看filename但是不是一次将文献所有显示less 用法 less filename head -n n filename 查看filename文献前n行tail 用法 tail -n n filename 查看filename文献后n行实验编号2题目makefile编写及Linux内核编译 实验目1. 通过自己编译linux内核过程,理解并掌握linux内核编译办法,以及linux启动过程2. 理解linuxmakefile文献编写,明白make在linux工程中重要作用实验内容1. 自己用源代码编译linux内核2. 学习并熟
6、悉linuxmakefile语法及编写办法报告内容规定(1) 实现办法和思路(2) 测试及成果报 告 正 文内容一:编译linux内核Ubuntu 版本号 12.04当前linux内核版本 3.11.26待编译内核版本 3.17.11. 一方面解压内核源码压缩包2. cd进入内核源码所在目录3. make menuconfig进入图形配备界面4. 在图形配备界面并设立版本号5. 执行make 进入编译环节,等待不短时间直到编译完毕6. 执行make module进行内核模块编译7. 执行make install安装内核8. 执行make modules_install安装内核模块9. 执行 s
7、udo mkinitramfs -o /boot/initrd.img-3.17.1xianb10. 更新grub执行update-grub211. 重启即可实验编号3题目Linux进程和线程实验目1. 通过自己动手编写进程创立等函数,理解linux中进程概念以及基本用法2. 通过自己动手编写线程一系列函数,连接linux中线程概念以及基本用法实验内容1. 掌握惯用进程函数 fork wait signal pause kill exit等2. 理解进程3. 理解线程与进程区别和联系4. 掌握惯用线程函数5. 学会线程创立,同步,互斥,退出报告内容规定(1) 实现办法和思路(2) 测试及成果报
8、 告 正 文1. 通过几种示例程序来掌握linux进程概念以及基本进程函数示例一:通过这个示例进程可以懂得如何获得进程号,父进程号以及群组号运营成果为示例二:通过这个例程,明白如何运用创立一种子进程,并且如何区别两个进程同步理解了僵尸进程概念,并且懂得父进程和子进程运营顺序是不拟定,也明白了wait函数用法以及作用运营成果如下可以看到父子进程运营是没有特定先后顺序,而由于wait函数父进程要等待子进程结束才干结束,否则子进程也许成为僵尸进程示例三:运营成果如下通过了这个程序,明白了linux如何通过注册信号句柄来实现信号机制先通过signal函数注册句柄,但是此时句柄函数不会运营,懂得本进程接
9、受到了在signal中指定信号才会执行该句柄函数在本例中信号是外部键盘中断,也就是Ctrl + C示例四:这个示例程序也是阐明linux信号机制运作方式,本程序通过调用fork函数,创立出一种子进程,随后在父进程中注册了一种接受SIGUSR1信号函数,usr1_handler,接着休眠,直到接受到信号然后在子进程中使用kill函数向父进程发送一种SIGUSR1信号,唤醒父进程随后父进程醒来,并由于wait函数等待子进程结束运营成果如下示例五:本示例通过函数pthread_create()函数创立了一种线程,这个函数节后一种pthread_t线程号类型,以及函数名作为参数,执行完该函数后myTh
10、read函数就作为一种新线程开始执行了,但是要注意,线程开始要有一段时间,而不是及时结束,因此如果进程中没有用join或者sleep一段时间话,也许会看不到线程开始实验编号4题目同步与互斥实验目为Linux内核增长一种系统调用,并编写顾客进程程序来测试。规定该系统调用可以完毕如下功能:1. 该系统调用有1个int型参数,返回值为int。2. 若参数不不大于0,则返回自己学号最后一位。如学号为13091434,则返回4。3. 若参数不大于或等于0,则返回自己学号后三位。如学号为13091434,则返回434。 实验内容1、 系统调用实现2、 增长系统调用3、 Linux内核构建报告内容规定(1) 实现办法和思路(2) 测试及成果报 告 正 文实验编号5题目文献系统实验目为Linux内核增长一种系统调用,并编写顾客进程程序来测试。规定该系统调用可以完毕如下功能:1. 该系统调用有1个int型参数,返回值为int。2. 若参数不不大于0,则返回自己学号最后一位。如学号为13091434,则返回4。3. 若参数不大于或等于0,则返回自己学号后三位。如学号为13091434,则返回434。 实验内容4、 系统调用实现5、 增长系统调用6、 Linux内核构建报告内容规定(1) 实现办法和思路(2) 测试及成果报 告 正 文