文章目录
一、操作系统基础概念
1. 操作系统功能
- 管理计算机硬件
- 提供应用程序基础
- 硬件与用户的中介
2. 计算机系统组成部分
- 硬件
eg: CPU, Memory, I/O devices - 操作系统
特点: 控制协调用户的应用程序对硬件的使用 - 应用程序
特点: 规定了用户按何种方式访问计算机资源 - 用户
3. 用户角度对操作系统的需求
不同类型用户对不同场景下的操作系统有不同需求:
- 个人计算机: 使用方便 > 性能,不在乎资源利用率
- 大型机或小型机:多用户在终端对其控制,资源利用率希望得到最大化,能够限制用户操作资源
- 工作站:工作站与其它工作站或服务器相连,使用专用资源和共享资源,此时操作系统设计目的是个人可用性与资源利用率进行折衷。
4. 系统角度
对于计算机而言,操作系统是资源分配器,需要决定程序和用户的资源,强调对各种I/O设备的控制与满足用户的需求。控制和分配资源的功能集合组成了一个软件模块:操作系统。
操作系统的主要目的是方便用户和高效执行。
一个更加常见的定义是,操作系统是一个时刻运行的程序,它经常被称为内核,伴随着内核概念,有两种类型的程序分别为系统程序,它与操作系统相关,但并不非要属于内核。另一类就是用户程序,包含与操作系统操作无关的程序。
这里结合阅读CSAPP的经历,需要注意内核的本质不是一个进程,而是系统管理全部进程所用的代码和数据结构的集合。错误的表述例如:
错误:“内核态与用户态的交互类似CS,BS架构一样”
解释:这个严重误导,内核可能就是一些代码库,比如printf就是一个系统调用,其内部继续调用内核的代码,而不是像发送请求一样,请求返回。所以,很多书中也讲程序陷入内核态,而不是请求内核的意思。<