1.1 操作系统的概念
操作系统(Operating System)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
1.2 操作系统的特征
- 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
- 共享:即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。有互斥共享方式和同时共享方式。
- 虚拟:把一个物理上的实体变为若干个逻辑上的对应物,物理实体是实际存在的,而逻辑上的是用户感受到的。虚拟技术分为空分复用技术(如虚拟存储器技术)和时分复用技术(如虚拟处理器)
- 异步:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
单核CPU同一时刻只能执行一个程序 ,各个程序只能并发地执行;
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行。
1.3 操作系统的体系结构和运行机制
1.3.1 操作系统的层次结构
1.3.2 操作系统的内核
根据操作系统内核设计的不同方式,内核分为大内核和微内核。
1.3.3 内核优缺点
1.3.4 两种程序
- 内核程序:内核是操作系统的内部核心程序,是最接近硬件的部分,是它向外部提供了对计算机设备的核心管理调用。内核程序运行在
内核态,执行特权指令和非特权指令。 - 应用程序:是安装在操作系统上的软件,应用程序
只能执行非特权指令,运行在用户态。
1.3.5 两种指令
- 特权指令:指令影响重大,只允许操作系统的
内核(kernel)来执行,如内存清零指令。 - 非特权指令:由
应用程序调用的指令,如加法指令、减法指令。
p1:CPU是如何区分特权指令和非特权指令的?(1.3.6内容处查看回答)
1.3.6 两种处理器状态
内核态又叫核心态、管态;用户态又叫目态
- 内核态:CPU处于内核态时,说明此时正在运行的是内核程序,此时
可以执行特权指令。 - 用户态:CPU处于用户态时,说明此时正在运行的是应用程序,此时
只能执行非特权指令。
问:CPU是如何区分特权指令和非特权指令的?
答: CPU中有一个寄存器叫
程序状态字寄存器(PSW),其中有个二进制位,1表示“内核态”,0表示“用户态”。p2:CPU怎么从内核态切换到用户态?
内核态--->用户态:执行一条
特权指令---修改PSW的标志位为“用户态”,这个动作意味着操作系统将主动让出CPU使用权。用户态--->内核态:由“
中断”引发,CPU检测到中断信号后,会立即变为“内核态”,并停止运行当前的应用程序,转而处理中断信号的内核程序。触发中断信号意味着操作系统将强行夺回CPU的使用权。
1.4 中断和异常
1.4.1 中断的作用
中断是计算机自动响应一个中断请求信号,暂时停止当前程序的执行,转而执行与外部事件相关的特殊任务或处理程序,并且在执行完服务程序后自动返回原程序执行的过程。
发生中断,就意味着需要操作系统介入开展管理工作,CPU会立即进入核心态作用;“中断”是CPU从用户态进入内核态的唯一途径。
初衷是为了提高多道程序运行环境中汇总cpu的利用率;后成为操作系统各操作的基础,例如:键盘或鼠标信息的输入,进程的管理和调度,系统功能的调用、设备驱动、文件访问等。
1.4.2 中断的分类
1.4.3 中断的基本原理
不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。中断处理程序是内核程序。
1.5 系统调用
1.5.1 什么是系统调用
“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。
系统调用与库函数的区别?
什么时候使用到系统调用?
应用程序通过
系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
1.5.2 系统调用分类
1.5.3 系统调用过程
1.6 操作系统引导(开机过程)
操作系统引导:
- CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
- 将磁盘的第一块---主引导记录读入内存,执行磁盘引导程序,扫描分区表
- 从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
- 从根目录下找到完整的操作系统初始化程序(即启动管理器)并执行,完成“开机”的一系列动作
尝试在电脑上找到完整的操作系统初始化程序(即根目录下的启动管理器)
在活动分区(安装操作系统的磁盘分区)的Windows>Boot目录下。