OS复盘
OS复盘
OS课设已经结课一段时间了,我也从其他课程中抽身出来,有了一段能够好好反思的时光。
说实话,完成OS课设的过程是很痛苦的,指导书蜻蜓点水、注释模棱两可、各种函数和文件调用杂乱无章。每次在完成的时候都是向auser的博客(目前已经失效了)和github学习,之前的lab2和lab3都还比较清醒,即便借鉴了github,但整个过程还是理得清楚;到了lab4之后,函数调用开始变得复杂,我开始难以理解整个工程的结构和每个细节。到现在为止上过的专业课中,计组和OO难度同OS相仿,但这两门课我能够知晓每一个细节,整个代码的运行尽在掌握。OS工程体量庞大,加上是底层代码,整个理解起来并不是那么容易,要掌握所有的细节也比较困难,当时还在上课期间,要能够抽出时间整个理解每一个lab对我来说是不太可能的。这也一直让我很难受。
后来陆续发布了竞争性实验和挑战性任务,我因为冯如杯而放弃了竞争性实验。那就好好做一做挑战任务吧,结果等我把各种琐碎的事忙完,已经是期末,没有时间完成挑战性任务了。虽然OS写的过程很痛苦,我也并不太喜爱这门课,但没有能够去申优也让我感到有些失落。
最终我觉得即便不喜欢这门课,没有能够取得申优资格,也还是要给自己一个交代。作为计算机专业最重要的专业课之一,我认为学好操作系统是很有必要的,此外在读代码、理解大工程的方面也有所帮助。因此,我决定要做一个OS的复盘,重新去读一读当时困扰自己的代码,理解整个操作系统的架构,这门课也没有白上,心里也会感觉好一些。经过几天的努力,参考了指导书和我自己写的代码,写下这6篇复盘,算是给自己的一个交代,也希望能帮助到后辈学习OS。如果有问题欢迎在评论区指出,帮助我改正错误,正确理解代码。
OS-lab1
OS-lab2
OS-lab3
OS-lab4
OS-lab5
OS-lab6

OS复盘的更多相关文章
- 制作OS X 10.10.3启动安装U盘
http://www.cnblogs.com/Bob-wei/p/4471407.html 1.获得“Install OS X Yosemite.app” 2.准备一个8GB的U盘,用磁盘工具“抹掉” ...
- Linux设备上没有空间之复盘
某天前端在调接口的时候,发现登录页面得验证码接口居然没有响应数据,显示的是500响应码.于是我一路排查,首先排查验证码接口所属的微服务是否正常,通过lsof -i:服务端口进行排查,发现该微服务进程存 ...
- NodeJs之OS
OS Node.js提供了一些基本的底层操作系统的模块OS. API var os = require('os'); console.log('[arch] 操作系统CPU架构'+os.arch()) ...
- Node.js:OS模块
os模块,可以用来获取操作系统相关的信息和机器物理信息,例如操作系统平台,内核,cpu架构,内存,cpu,网卡等信息. 使用如下所示: const os = require('os'); var de ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
- Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)
Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...
- Mac OS、Ubuntu 安装及使用 Consul
Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStac ...
- java 利用ManagementFactory获取jvm,os的一些信息--转
原文地址:http://blog.csdn.net/dream_broken/article/details/49759043 想了解下某个Java项目的运行时jvm的情况,可以使用一些监控工具,比如 ...
- 让 ASP.NET vNext 在 Mac OS 中飞呀飞。。。
写在前面 阅读目录: 娓娓道来 Install ASP.NET vNext Command Line Tools 安装 Homebrew 使用 Homebrew,安装 KVM Install Subl ...
- Mac OS X 上编写 ASP.NET vNext (二) IDE配置
上一篇中介绍了如何在OS X上搭建.Net运行时.不过光有运行时还不够,还需要有一个好用的IDE,有了IDE的支持,OS X上的开发才称为可能. 和上篇类似,这里先列举出具体步骤,个人可以根据自己的情 ...
随机推荐
- 面向对象程序设计(三):new&deleet什么是动态内存
<C++ primer>中提到:在C++中,动态内存的管理是通过一对运算符来完成的: new 在内存池中为对象分配一块空间,并指向这个对象的指针,我们可以在这里对对象进行初始化: dele ...
- 2211-14MongoDB学习
学习资源来自菜鸟教程 MongoDB数据库 MongoDB概念解析 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档.集合.数据库,下面我们挨个介绍. 下表将帮助您更 ...
- 1 - 【RocketMQ 系列】CentOS 7.6 安装部署RocketMQ
一.前置准备工作 CentOS 7.6 安装 jdk1.8 openjdk 1.查看JDK版本 yum search java|grep jdk 2.安装jdk1.8,安装默认的目录为: /usr/l ...
- PID控制_位置式
位置式: 1. 位置式: pid.c: float PID_calculate( float dT_s, //周期(单位:秒) float in_ff, //前馈值 float expect, //期 ...
- 学习Java Day17
今天继续加强了一下类的联系,并学习了如何生成随机数
- Spring IOC官方文档学习笔记(十一)之使用JSR 330标准注解
1.使用@Inject和@Named进行依赖注入 (1) Spring提供了对JSR 330标准注解的支持,因此我们也可以使用JSR 330标准注解来进行依赖注入,不过,在此之前,我们得先使用mave ...
- CSS 页面整体变灰色
body {-webkit-filter: grayscale(100%) !important;-moz-filter: grayscale(100%) !important;-ms-filter: ...
- vue-element-admin 怎么改后端 可以调跳过登录并且发送接口请求
1.找到根目录的 vue.config.js 添加 proxy 内容 注释掉mock 2.清空 .env.development 里的 VUE_APP_BASE_API 路径 3.user.js 方 ...
- Python:Excel自动化实践入门篇 乙【送图书活动继续】
*以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s/y-npGelPJwmx3iNvHaXRTg 本文上接<Py ...
- MySQL 中的锁有哪些类型,MySQL 中加锁的原则
MySQL 中的锁理解 锁的类型 全局锁 缺点 适用范围 表级锁 表锁 元数据锁 意向锁 自增锁 行锁 Record Lock Gap Lock Next-Key Lock 插入意向锁 加锁的原则 1 ...