文章目录
1. 计算机系统的特征
四项特征导图
- 操作系统是管理计算机的硬件和软件的资源的程序,这些资源统称为计算机资源。
1. 并发
- 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,微观上是交替发生的。
- 并行:指两个或多个事件在同一时刻同时发生
单核CPU:同一时刻只能执行一个程序,各个程序只能并发地执行
多核CPU:同一时刻可以同时执行多个程序,多个程序可以并行地执行
2. 共享
共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
- 互斥共享方式:使用QQ和微信视频。同一时间段内摄像头只能分配给其中一个进程。
- 同时共享方式:使用QQ发送文件A,同时使用微信发送文件B。宏观上看,说明两个进程都在访问硬盘资源,两边都在同时读取并发送文件,从中读取数据。微观上看,两个进程是交替着访问硬盘的
并发和共享的关系
- 并发性:指计算机系统中同时存在着多个运行着的程序。
- 共享性:是指系统中的资源可供内存中多个并发执行的进程共同使用
操作系统最根本的特征就是并发和共享,二者互为存在条件。
3. 虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的
- 我们的计算机只有4G的内存,但是当我们运行的程序所期的内存超过4G时,程序依然能够运行。这时就是用到了虚拟技术中的“空分复用技术”
问题:既然一个程序需要被分配CPU才能正常执行,那么为什么单核CPU的电脑中能同时运行这么多个程序呢?
答:这是虚拟处理器技术。实际上只有一个单核CPU,在用户看来似乎有6个CPU在同时为自己服务
- 虚拟技术中的“时分复用技术”,微观上处理机在各个微小的时间段内交替着为各个进程服务
4. 异步
异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
- 如果失去了并发性,即系统只能串行地运行各个程序,那么每个程序的执行会一贯到底。只有系统拥有并发性,才有可能导致异步性
2. 操作系统对计算机系统的管理
1. 处理机管理
处理机的分配和运行都以进程为基本单位,因而对处理机的管理归纳为对进程的管理。
2.存储器管理
存储器管理是为了给 多道程序的运行 提供良好的环境,方便用户使用和提高内存的利用率。
3. 文件管理
计算机中的信息都是以文件形式存在的。
文件管理包括文件存储空间的管理、目录管理、文件读写管理和保护。
4. 设备管理
设备管理主要任务是完成用户的I/O请求,方便用户使用各种设备。
3. 操作系统与计算机硬件系统之间的接口
接口分类导图
系统调用
- 系统调用是操作系统为应用程序使用内核所提供的接口。
- 用户只能通过系统调用的方式来请求内核为其服务(操作系统不允许用户直接操作各种硬件资源)
- 系统调用的目的:是请求系统服务。
4. 操作系统发展和分类
操作系统基本分类主要有:批处理操作系统,分时操作系统,实时操作系统
- 分时操作系统:
- 计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
- 主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
- 主要缺点:不能优先处理一些紧急任务。
- 实时操作系统:
在实时操作系统的控制下,计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性- 主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。
- 主要追求的是资源利用率
5. 操作系统的运行体制核体系结构
两种指令
计算机由指令操作执行,指令就是计算机能够识别直行的最基本的命令。
两种状态
两种程序
操作系统的内核
计算机系统层次结构
大内核和微内核
- 操作系统的体系结构分为:大内核和微内核
类比:操作系统体系结构与企业管理很相似
- 内核——企业的管理层(管理才能执行特权指令,普通员工只能执行非特权指令。)
- 用户态与核心态之间的切换——普通员工和管理层之间的工作交接
- 大内核——初创企业,体积不大,管理层人员负责大部分事件
- 微内核——大型企业管理层只负责核心的工作。
中断和异常
- 本质:发生中断后,就需要操作系统介入管理。
- 当中断发生时,CPU进入核心态。
- 当中断发生后,当前运行的进程暂停,并由操作系统对中断进行处理。
- 对于不同的中断信号会进行不同的处理。
发生了中断就意味着操作系统介入,开展管理工作,由于操作系统的管理需要使用特权指令,因此CPU 由用户状态转为核心状态,中断可以使CPU由用户状态转为核心状态,使操作系统获得计算机的控制权。有了中断才能实现多道程序并发执行。
问题:用户态与核心态之间的切换怎样实现?
答:通过中断来实现并且中断是唯一的途径。
中断的分类
系统调用
操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。
“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务
-
系统调用与库函数的区别
普通程序可直接进行系统调用,也可使用库函数。
有的库函数涉及系统调用,有的不涉及 -
为什么需要系统调用?
场景举例:当多人使用打印机打印文件的时候,打印机会按顺序打印完成一个人的文件,再去打印下一个人的文件。
该方法是:由操作系统内核对共享资源进行统一的管理,并向上提供“系统调用” ,用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统内核发出请求。内核会对各个请求进行协调处理 -
什么功能要用到系统调用?
凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作
系统调用的过程
- 注意:
- 陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,使CPU进入核心态
- 发出系统调用请求是在用户态,而对系统调用的相应处理在核心态下进行
- 陷入指令是唯一一个只能在用户态执行,而不能在核心态执行的指令。