admin管理员组文章数量:1534198
课程为山东大学软件学院人工智能专业2020年大二下学期“操作系统”课程
我会根据课程进度更新,一直到2020年6月10日前更新结束
文章目录
- 一. 配置问题
- 二. 实验报告
- 第一部分 操作系统命令实验
- 第二部分 操作系统算法实验
- 三. 推荐博客和教程
“推荐博客和教程”虽然放到了最后面,是为了前面的简洁。实际上,我认为这个对于学习有很大的帮助
一. 配置问题
我的系统是Ubuntu18.04
-
在做实验时需要打开Windows中的docx文档
关于Ubuntu安装WPS教程
https://blog.csdn/ErMiaoYY/article/details/82782433 -
我的Windows一直用搜狗输入法,登录账号可以关联,而且自带的输入法不好用
搜狗输入法下载安装教程
https://blog.csdn/areigninhell/article/details/79696751#commentBox -
操作系统实验需要在linux环境下采用C/C++编程
关于C/C++的配置
主要的是:sudo apt-get install build-essential -
采用的IDE是CodeBlocks,关于CodeBlocks的使用教程
https://blog.csdn/wushirenfeig/article/details/72487280#commentBox
也使用了Geany,安装:Ubuntu软件->开发工具->Geany,点击安装 -
实验中的运行结果需要截屏保存,关于截屏设置,我习惯QQ的 ctr l+ alt + a
在Ubuntu中可以自己设置
设置 -> 设备 -> 键盘 -> 截图,找到对应的截屏方案,输入快捷键即可
二. 实验报告
分为两大部分,分别是包含5个实验的操作系统命令实验和包含10个实验的操作系统算法实验
第一部分5个实验写在一个实验报告中,第二部分每个实验都单独写一个实验报告,每个实验报告都在对应的百度网盘链接中
第一部分 操作系统命令实验
1. 系统的注册与注销
2. 文件系统主要命令
3. 进程管理主要命令
4. Shell命令控制符
5. 常用软件开发工具
链接:https://pan.baidu/s/19TygR5lsmRv_9u0qC_mESw
提取码:bq98
包含:9张实验截图、1份实验报告
第二部分 操作系统算法实验
注:示例实验代码为 Exp_Code_Example,独立实验代码为 Exp_Code。示例实验是老师的“实验指导书”中的示例实验,独立实验是要求做的实验
1. 进程控制实验
链接:https://pan.baidu/s/1YOuZESMjMRNaaRU2Mk_5aw
提取码:blzr
包含:1张实验截图、1份实验报告、完整代码(独立实验)
2. 进程通信实验
链接:https://pan.baidu/s/1P9Uocw8CiS39_DSYshXJtw
提取码:zhaz
包含:2张实验截图(示例实验、独立实验)、1份实验报告、完整代码(示例实验、独立实验)、ReadMe.txt
更新:很抱歉,由于实验要求没看清楚,f(x)的式子中是乘号,我在代码中写成加号,在第139行。而且在测试数据时,很意外地加号和乘号的结果是一样的,导致没有发现错误。而且,本实验最好还是用4个管道,父进程与两个子进程各两个管道,而不是像我总共用两个管道,虽然结果都是一样的,但改完后更保险一些。实验报告中的截图仍是正确的不需要更改,只需将代码由加号改为乘号。
3. 进程调度算法实验
链接:https://pan.baidu/s/1s45a6k_iM37Yk26ZfiRQsw
提取码:hcm3
包含:2张实验截图(示例实验、独立实验)、1份实验报告、完整代码(示例实验、独立实验)
4. 进程同步实验
链接:https://pan.baidu/s/1bnXTabW1Ndu5SEqQ_lHfwQ
提取码:zep7
包含:5张实验截图(示例实验、独立实验)、1份实验报告、完整代码(示例实验、独立实验)
注:运行可以按照实验截图Exp4_独立实验.png 执行,先执行"./producer 3",接着立刻执行"./producer 5",参数3和5是睡眠时间。如果只启动一个生产者,程序也会正常运行,只是这一个生产者会干两个生产者的活。启动两个生产者,就会是实验所要求的。
5. 进程互斥实验
链接:https://pan.baidu/s/1L45lQ1iHwdvTCXiPn47I8g
提取码:40yi
包含:3张实验截图(独立实验)、1份实验报告、完整代码(示例实验、独立实验)
注:这个实验程序还是有些问题,但少数顾客理发还是没有问题的。先运行理发店控制程序barberShop,再运行3个理发师程序hairCutter,接着运行顾客程序customer
6. 死锁问题实验
2020年6月4日左右
7. 内存页面置换算法实验
8. 磁盘移臂调度算法实验
9. 文件系统接口实验
10. 分布式系统实验(由于课程设置原因,该实验不做)
三. 推荐博客和教程
班级同学zzx小姐姐的博客操作系统实验问题解决,很不错,大家可以参考一下
下面推荐的博客和教程,我按照实验进行的时间顺序排序,都是看过的且很有收获的博客
-
后面的一些实验需要使用makefile
推荐几个博客:
Makefile入门教程
Makefile简易教程
Makefile教程(强烈推荐) -
gcc的各种参数可以参考下面的教程
https://www.runoob/w3cnote/gcc-parameter-detail.html -
fork()和父子进程的理解
https://blog.csdn/tong_xin2010/article/details/38469471?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5 -
Linux中的fork()—子进程从哪里开始执行?(里面有关printf的问题,很不错)
https://blog.csdn/koches/article/details/7787468 -
管道—pipe函数实例讲解
http://control.blog.chinaunix/uid-28549627-id-3956896.html -
struct sched_param结构体结构
https://blog.csdn/weixin_38239856/article/details/82117600 -
Linux的进程优先级 (推荐)
https://blog.csdn/weixin_33804582/article/details/86456030?depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1&utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1 -
进程优先级之getpriority系统调用
https://blog.csdn/pk_20140716/article/details/77484521 -
进程优先级之setpriority系统调用 (只有root用户才能降低参数prio)
https://blog.csdn/pk_20140716/article/details/77484691 -
struct sembuf结构体
https://blog.csdn/u013408061/article/details/77883848 -
struct msqid_ds结构体
https://blog.csdn/qq_41453285/article/details/90575054
版权声明:本文标题:山东大学操作系统实验 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1725195612a1012395.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论