作业系统的修课经验

今天要来分享的是我最喜欢的一门学科 - 作业系统!

进入正题

作业系统是资讯学系中的一门进阶课程,内容会涵盖:

  • 作业系统简介与常见的类型
  • 中断、I/O、系统呼叫、OS 结构设计、虚拟机
  • 行程 Process
  • 多执行绪 Multithread Programming
  • 排程 CPU Scheduling
  • 同步问题 Synchronization
  • 死结 Deadlock
  • 记忆体管理 Memory Management
  • 虚拟记忆体 Virtual Memory
  • 档案系统 File System Interface
  • 档案系统实作 File System Implementation
  • 辅助储存系统 Secondary-Storage Systems

作业系统探讨的不仅仅是作业系统本身,其中的排程与同步问题都会出现在现今市面上的系统软件 (多数软件都借监了作业系统的概念与实作)。

第一次接触

第一次修作业系统已经是大四上学期了,可能因为我大学不是念资工系的关系,系上教的内容真的非常浅,大概只有:

  • 作业系统简介与常见的类型
  • 中断、I/O、系统呼叫
  • 行程 Process
  • 多执行绪 Multithread Programming
  • 排程 CPU Scheduling

所以整学期修完对作业系统这门课并没有太多的好感。

第二次接触

出於某些原因 (之後再谈),我有了接触作业系统的需要,所以我将交大 OCW 上的作业系统设计与实作看了一遍。
这门课在交大资工也是出了名的硬课,课程内容在这两年好像有调整,修课学生要在一学期内在树梅派上实作:

  • Lab 0: Environment Setup
  • Lab 1 : Hello World
  • Lab 2 : Bootloader
  • Lab 3 : Exception and Interrupt
  • Lab 4 : Multitasking
  • Lab 5 : Virtual memory
  • Lab 6 : Allocator
  • Lab 7 : Virtual File System
  • Lab 8 : File System Meets Hardware

自修这门课对於我撰写隔壁棚的铁人赛其实非常有帮助,虽然两边的 Target Machine 是完全不一样的架构,但是不考虑硬体的设定的话,很多观念也都是通用的。

补充: 在交大 OCW 已经搜寻不到这门课程了,有兴趣的朋友可以参考该连结

听完课程会发现原来自己什麽都不懂,理论跟实际下去设计还是有非常大的差别,网路上也可以找到很多修课学生的心得:

今天的分享就到这边结束,我们明天见~!


<<:  22 - Traces - 观察应用程序的效能瓶颈 (6/6) - 透过真实使用者监控 RUM 来改善使用者体验

>>:  DAY 25 『 WKWebView - 显示网页内容 』

[2021铁人赛 Day09] General Skills 06

引言 昨天的题目让大家知道可以做反组译这件事, 其实这是一个大主题,归在逆向工程中, 该分类会大量...

DAY 11- 区块操作模式

"什麽叫你只会加密128位元?" --- 花了不少篇幅介绍两中区块加密方式,DE...

Day4 横空出世的 kernel_clone

前言 昨天的最後提到建立user process的三个系统呼叫:fork(),vfork(),clo...

利用 Google App Script 将资料存到 Google Sheet(1)

昨天我们利用 GAS 读取了筛选邮件的内容 今天我们要进一步将资料存到 Google Sheet 以...

[ JS个人笔记 ] Promise —DAY9

Promise 是用来优化非同步的语法。 Promise 物件状态 pending: 初始状态 fu...