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上的开发才称为可能. 和上篇类似,这里先列举出具体步骤,个人可以根据自己的情 ...
随机推荐
- KMP 算法 再次学习
c++ 版后面再补 package cn.kbug.dynamic; import java.util.Arrays; /** * KMP 算法本质上是对 搜索的字符串做优化,然后在匹配的时候,能做到 ...
- 使用vscode调试ros
https://blog.csdn.net/u012254599/article/details/106143540/ CMakeLists.txt set(CMAKE_BUILD_TYPE &quo ...
- 交叉熵损失CrossEntropyLoss
在各种深度学习框架中,我们最常用的损失函数就是交叉熵,熵是用来描述一个系统的混乱程度,通过交叉熵我们就能够确定预测数据与真实数据的相近程度.交叉熵越小,表示数据越接近真实样本. 1 分类任务的损失计算 ...
- 【TS】any和void
any类型 any类型,在ts中是一个万能类型,它可以替代所有类型,也就是说定义了any类型,就不用担心ts的类型束缚,但如果所有的类型都使用any那么ts就失去了它的作用,我们使用ts就是为了规范类 ...
- CodeArts Snap:辅助你编程的神器
摘要:通过将自然语言转化为规范可阅读.无开源漏洞的安全编程语言,提升开发者编程效率,助力企业快速响应市场需求. 本文分享自华为云社区<华为云发布智能编程助手 CodeArts Snap!> ...
- 【NOIP2013提高组】华容道
分析 一个比较显然的方式是 设 \(f_{i,j,x,y}\) 表示达到空格所处位置为 \((i,j)\) 且特殊格位置为 \(x,y\) 的状态的最少步数 一次可以交换空格和相邻格,代价为 \(1\ ...
- Hexo系列(四):Hexo写文章
作者:独笔孤行 官网: http://anyamaze.com 公众号:云实战 可以执行下列命令来创建一篇新文章或者新的页面. $ hexo new [layout] <title&g ...
- GPIO 和中断控制 LED 的状态
中断的概念 中断是 MCU 强行从正常的主任务切换到由某些内部或外部条件的紧急任务.中断的优先程度远远高于主任务,MCU 会暂时把主任务挂起,转而处理中断任务,之后再执行主任务. 引起中断的外部条件来 ...
- JAVA快速获取网络图片或者URL图片并保存到本地
JAVA快速获取网络图片或者URL图片并保存到本地,直接上代码: package com.xh.service;import org.springframework.stereotype.Servic ...
- ASP动态网页(网站)设计教程
ASP动态网页(网站)设计教程 文件名 大小 ASP获取时间函数大全 35KB 项目6 ASP数据表数据操作功能设计.pptx 3.34 MB 项目5 WEB数据库与数据库管理.pptx 3.34 M ...