作为一名非科班程序员,经常在碰到一些操作系统相关的概念时蒙逼。特别是看前段时间看nginx源码的时候,涉及到一些I/O多路复用的代码。碰到问题,碰到不懂的名词,去网上搜索,也就能了解个大概,一些系统性的东西还是很有必要去系统性的学习。于是购入了一本《操作系统:精髓与设计原理》,打算好好读一遍。至于为什么没有买传说中的龙书(深入理解计算机系统)。。。主要是当时不知道有龙书,买完才发现大多数都推崇龙书。
本文姑且作为学习《操作系统》这本书的学习大纲吧。下面先按着书的章节列一下大纲。以后分别出各个主题的博文。坚持!
Operating System lesson 101
- 操作系统概述
- 什么是操作系统,作用是什么
- 基本组成
- 总线周期,指令周期
- 进程
- 什么是进程
- 在操作系统中如何表示进程
- 线程,进程区别
- 并发
- 互斥(Mutex)
- 信号量(Semaphone)
- 管程(Monitor)
- 管道(Pipes)
- 自旋锁与互斥锁,busy-waiting与sleep-waiting
- 原子操作
- 在c#中同步相关的API
- 死锁与饥饿
- 内存管理
- 为什么要分页,分段
- 实存(main memory/primary memory)
- 虚拟内存的设计原因等
- I/O管理
- 同步I/O
- 异步I/O
- LINUX下I/O多路复用
- 文件系统