【操作系统】第一章:操作系统概述
章节纲要:
- 操作系统的概念,特征,功能和提供的服务
- 操作系统的发展和分类
- 操作系统的运行环境
-
- 内核态和用户态
-
- 中断和异常
-
- 系统调用
- 操作系统的体系结构
1. 操作系统的本质和特点
你必须认知到操作系统的角色:资源的管理者,管理用户程序的程序,系统程序
(1)我们的电脑开机之后,操作系统就会被加载到RAM里面,本质上操作系统也是程序
(2)顺序性是单道程序设计的特点
(3)编译器的本质是用户程序指令,因此操作系统并不关心
1.1 发生的概念
- 并发:同一段时间内同时发生,但不一定同时进行(强调的是事件发生在同一个研究的时间域内)
- 异步:不同步进行。(强调的事件发生的相互独立性)
- 并行:同时进行(强调的是事件的同步)
- 同步:在某一个时间点同步(强调的是在某个时间点大家的步调必须一致)
- 共享:互斥共享,同时共享(分时共享)
在单处理机下,进程不可并行,但设备和设备,处理机和通道,处理机和设备可以并行。判断是不是可以并行,我们看对这个东西相关的处理单元数量,比如你看,单处理机,就是说这个CPU只能同时跑一个进程,那你怎么并行,对吧,但设备的处理的是独立的,比如我们的IO设备,我们的主存这些,和处理机就不冲突了,设备和设备为毛可以并行?那你可以有多个IO啊,对吧
1.2 操作系统是资源管理者的角色
- 处理机的管理(CPU资源):我们以进程作为单位进行管理
- 存储器的管理(主存资源):内存分配,地址映射
- 文件的管理(外存):读写
- IO管理(设备):处理IO请求
1.3 操作系统是用户和硬件的接口
命令接口分为联机和脱机
- 联机:(典型的分时系统),交互型,随叫随做
- 脱机:(批处理系统),给出一组作业命令,提前写好再执行
程序接口由 系统调用(一种能使用系统内核服务的广义指令) 组成。
系统调用是系统提供给用户应用程序使用系统内核服务的接口。
2. 操作系统的发展和分类
操作系统的发展一致都在为了解决:响应速度和资源利用率和吞吐率的核心问题,说白了我们的程序做的事情又多又快。
2.1 操作系统的分类
批处理系统 → \rightarrow →分时操作系统 → \rightarrow →实时操作系统
- 批处理系统:分为单道批处理和多道批处理,没有交互能力的,通过脱机技术实现解决设备独占的问题 → \rightarrow →解决单机的资源利用率优化。通过多道程序设计技术解决系统吞吐率和资源利用率优化。
- 分时系统:可以较快的响应用户,而且可以提高资源利用率和系统吞吐率,并且允许交互。利用非抢占式优先策略。
- 实时系统:目标是即时响应和可靠性,响应速度优化了,但是系统的资源利用率就下降了。利用的是:抢占者优先策略。通俗一点就是:这种系统控制对象在规定时间内处理外部事件,比如订票系统,股票交易系统。
中断技术使得多道批处理系统能同时CPU和IO设备并行工作
3. 操作系统的机制和运行环境
3.1 用户态和系统态
操作系统既要执行内核程序,又要管理用户程序,因此他自己划分出两种工作状态:用户态(目态),核心态(管态)。
(执行访管指令)用户态 → \rightarrow →核心态(执行中断处理程序,再执行服务程序)
以上过程需要硬件完成的
我们需要引入:中断和异常的机制来实现两种机制的转化。
【1】中断:叫外中断
就是从外面传进来的中断,我们从用户态转成核心态
【2】异常:也叫内中断
CPU内部发生中断,我们从核心态转成用户态
什么时候会出现内中断呢?比如出现访存缺页,除0,非法操作码,算术溢出
- 核心态可以执行访管指令以外的所有指令
- 访管指令是用户态专属的哦
- 访管中断:由于用户在用户态使用特权指令所造成的中断
- 中断处理程序:在核心态下完成,会保存PC和PSW,如果是子程序调用就不保存PSW了。PC是一定保存的。
- 用户态 → \rightarrow →核心态的转换:由硬件完成的
- 保存PC的实现由硬件完成,由中断隐指令实现(硬件实现),保存通用寄存器就由操作系统完成(软件实现)
- 系统调用在:用户态下发生,在核心态下执行
发生和执行,这两个词的含义自己好好掂量一下,不同的。
- 进程调度不需要硬件支持,进程调度是通过调度算法转移CPU的使用权
这个你想:我们的CPU在执行指令的时候,他需要思考这条指令是来自哪里的吗?不需要吧,他只需要无脑执行就行了。因此我们的进程调度通过软件来实现就足够了。
- 程序设计无法做到屏蔽指令(意思是单靠软件无法完成),关中断指令:指的是能全局关闭(或禁止)所有中断事件的指令
- IO指令必须在核心态下执行
- 特权指令只允许操作系统使用
- 执行系统调用的过程:传参 → \rightarrow →执行中断指令 → \rightarrow →执行对应的服务 → \rightarrow →返回用户态
- 中断向量:中断服务程序的入口地址(向量本身就是一个地址)
- 中断向量地址:入口地址的地址(地址的地址)
- 在用户态可能发生的事件:系统调用,外部中断,缺页,读时钟,取数,处理寄存器,但像进程切换是一定在核心态完成的。