第1章 计算机系统的概述
1.1.1 操作系统的概念、功能和目标
1.操作系统的概念
操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机地工作和资源的分配,以提供给用户和其他软件方便的接口和环境,是计算机系统中最基本的系统软件
2.操作系统的功能和目标
- 系统资源的管理者:功能有文件管理、存储器管理、处理机(CPU)管理、设备管理,目标是安全高效
- 用户和计算机硬件之间接口:功能有命令接口(联机命令接口和脱机命令接口,区别在于用户说一句,os做一句(联机),用户说一堆,os做一堆(脱机))、程序接口(用户通过程序间接使用,等价于系统调用)、GUI,目标是方便用户使用
- 最接近硬件的层次:实现对硬件机器的扩展
3.总结
1.1.2 操作系统的特征
四大基本特征:并发、共享、虚拟、异步(其中并发和共享是最基本的特征,二者互为存在条件,没有并发和共享就没有虚拟和异步)
1.并发:
- 并发指多个事件在同一时间间隔内发生,宏观同时发生,微观交替发生(并行指多个事件在同一时刻同时发生)
- 操作系统的并发性指计算机系统中同时存在多个运行程序(4核CPU最多只能有4个程序并行执行,当程序大于4个时,并发必不可少)
2.共享
- 共享即资源共享,指系统资源可供内存多个并发进程共同使用
- 分为互斥共享和同时共享,区别在于一个时间段内能否允许多个进程访问资源(同时指的是宏观)
3.虚拟
- 背景知识:一个程序需要放入内存并分配CPU才能执行
- 虚拟是指把一个物理上的实体(实际)变为若干个逻辑上的对应物(用户感受)
- 虚拟分为空分复用技术(虚拟内存存储技术)和时分复用技术(虚拟处理器)
4.异步
- 异步指的是由于资源有限,进程的执行不是一贯到底的,而是走走停停
5.总结
1.1.3 操作系统的发展和分类
1.手工操作阶段
- 缺点:用户独占全机、人机速度矛盾导致资源利用率极低
2.单道批处理系统
- 引入脱机输入/输出技术(磁带完成),并监督程序(OS雏形)负责控制作业的输入输出
- 优点:解决了人机速度矛盾
- 缺点:内存仅有一道程序运行,程序运行结束后才能进入下一道程序,CPU大量时间在空闲等待I/O完成,资源利用率仍然很低
3.多道批处理系统(操作系统正式诞生)
- 优点:多程序并发执行,共享计算机资源,资源利用率大幅提升
- 缺点:用户响应时间长,没有人机交互功能
4.分时操作系统
- 计算机以时间片为单位轮流为各个用户/作业服务
- 优点:解决了人机交互问题
- 缺点:不能优先处理一些紧急任务
5.实时操作系统
- 优点:能够优先响应一些紧急任务,无需时间片排队,具有及时性和可靠性
- 分类:硬实时系统(必须在绝对严格的时间内完成)和软实时系统(接受偶尔违法时间规定)
6.总结
1.1.4 操作系统的运行机制和体系结构
1.运行机制
- 指令:指的是处理器(CPU)能试别、执行的最基本的命令(指令不是代码,而是代码翻译得到的机器语言指令),可以分为特权指令和非特权指令
- 处理器的运行状态:分为用户态(目态,只能执行非特权指令)和核心态(管态,两种指令都可执行),通过程序状态字寄存器(PSW)中的标志位决定。
- 程序:分为内核程序(系统的管理者,两种指令都可执行,运行在核心态)和应用程序(只能执行非特权指令,运行在用户态)
注:特权指令只能在核心态下执行,内核程序只能在核心态下执行。
2.内核
- 内核是计算机的底层软件,是操作系统最基本、最核心的部分,实现内核功能的程序就是内核程序
- 分为时钟管理、中断管理、原语、对系统资源进行管理的功能(有的内核没有)
3.内核体系结构
- 大内核:将os的主要功能模块都作为系统核心,包括上述的对系统资源进行管理的功能,运行在核心态,优点是高性能,缺点是结构混乱、难以维护
- 微内核:只把最基本的功能保留在内核,不包括上述的对系统资源进行管理的功能,优点是结构清晰、方便维护,缺点是需要频繁的在核心态和用户态之间切换,性能低
- 类比于企业管理
4.总结
1.1.5 中断和异常
1.中断
- 中断作用:当中断发生后,CPU立即进入核心态,使操作系统获得计算机的控制权,并且暂停当前运行的进程,由os内核对中断进行处理。有了中断,才能实现多道程序并发执行。此外用户态 → 核心态:只能通过中断实现,核心态 → 用户态:执行特权指令实现(将PSW的标志位设为用户态)
- 中断分类(依据:信号来源于CPU内部还是外部)
- 内中断(也称异常)
- 外中断(简称中断)
- 外中断的处理过程
- CPU执行用户程序的每个指令后,都需要检查当前是否有外部中断信号,如果有,则保护被中断进程的CPU环境并进入中断处理程序(核心态),执行完成之后再次回到用户程序(用户态)继续执行下面指令
2.总结
1.1.6 系统调用
1.概念和作用
- 回顾1.1.1:os作为用户和计算机硬件之间接口,有命令接口和程序接口,其中程序接口由一组系统调用组成
- 概念:系统调用是os提供给应用程序使用的接口,可以理解为一种特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务(一个应用场景见之前文章:Qt访问并口https://blog.csdn.net/weixin_52341045/article/details/124233969?spm=1001.2014.3001.5501)
- 作用:保证系统的稳定性和安全性,防止用户进行非法操作
2.系统调用与库函数的区别
- 系统调用相关处理在核心态进行
- 有的库函数是对系统调用的进一步封装,有的不是
- 不涉及系统调用的库函数:如取绝对值;涉及系统调用的库函数:如创建一个文件
3.系统调用背后的过程
- 类比:高级语言是C++,其编译后变为汇编指令,其中C++的系统调用库函数会变为汇编指令,当汇编指令出现int指令(陷入指令)之后立刻会引发内中断,CPU由用户态进入核心态,并执行中断程序,执行完之后再进入用户态,执行后续的用户指令。很重要的一点是发出系统调用的请求是在用户态,而对系统调用的处理在核心态,而且陷入指令是唯一一个只能在用户态执行的指令
4.总结