第一章 引论
什么是操作系统?对用户而言,操作系统是用户与硬件接口,它将硬件资源抽象出来,方便调用。对硬件而言,它是计算机资源的调度者。所以
操作系统:可以提供给其他程序方便编写并运行的程序。
由程序来运行程序,而不是程序自己来运行,这是操作系统提供的虚拟化的表现。
1.1 操作系统发展
1.1.1 单任务模式
计算机只能被一个程序独占。
1.1.2 OS的多任务模式
加电之后,首先运行OS,随时可以载入其他程序执行。执行完以后切换回OS本身。
但是每次还是要等待这个程序执行完毕,才能接着载入下个程序执行。任何中断事件,都会中断正在运行的程序。
程序执行完毕,会将CPU归还给OS。从而继续OS本身的运行。这种操作系统就是单任务操作系统,典型代表就是DOS。
批处理:OS将多个程序一个一个的排列起来。省去了人为载入的过程。所以批处理操作系统相对单任务来说又进了一步,但是本质仍然是一个程序独占资源。
再后来OS针对系统时钟中断开发了中断服务程序,也就是多任务OS中的调度程序。中断来临,CPU根据中断向量表的内容,指向调度程序所在的内存地址入口,执行调度程序的代码。调度程序将CPU的执行跳转到各个应用程序所在的内存地址入口。每次中断,调度程序以一定的优先级,指向不同程序的入口。如果还没执行完,会自动保存运行状态。从微观上看,每个应用程序独占CPU,但是时间非常小,10ms
多任务操作系统的关键就是有多任务调度程序。
1.1.3 虚拟化的好处
虚拟化的好处是,将下层复杂的逻辑转换为上层简单的逻辑,方便人类读懂。
1.2 操作系统的主要功能
操作系统的主要功能有:
- 进程的创建和调度
- 内存空间的管理
- 设备管理
- 文件系统管理
可以看出操作系统其实涵盖了计算机的CPU、内存、IO设备等最基本要素的管理。再一次印证了操作系统其实就是硬件与用户的接口,可以将下层复杂逻辑转换为用户易懂的逻辑。相当于用户的大管家。
1.3 操作系统的架构
操作系统是用户和硬件主机的接口,核心功能在于任务调度和硬件抽象,现有的操作系统之间的最大不同在于内核在总体代码里面的比重。
主要有单内核、混合内核、微内核、外内核这几种架构。