一、操作系统定义及概念
1、操作系统的概念及定义
1.1 操作系统的层次结构
从上至下,用户——应用程序——操作系统——裸机(纯硬件)。

操作系统OS(Operating System)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配(从当前层次结构中间往两边看),提供用户和其他软件方便的接口和环境(当前层次结构从下往上看),同时它是计算机系统中最基本的系统软件(层次结构从上往下看)。
1.2 操作系统的功能和目标
- 操作系统作为系统资源的管理者(包括软件、硬件、文件等),需要提供什么功能
 - 操作系统作为用户和计算机硬件之间的接口,要为其上层的用户、应用程序提供简单易用的服务
 - 操作系统作为最接近硬件的层次,需要在纯硬件的基础上实现什么功能
 

1.2.1、系统资源的管理者

1.2.2、作为用户与计算机硬件之间的接口

常考命令接口和程序接口,GUI了解即可
命令接口:

- 
联机命令接口(交互式命令接口):
类比cmd窗口,输入一句指令,计算机处理一句指令
 - 
脱机命令接口(批处理命令接口):
类比C盘内*.bat文件
 
程序接口(系统调用):

易混概念:系统调用 = 系统调用命令 = 广义指令
1.2.3、作为最接近硬件的层次

1.3 操作系统的四个特征
四大特征:并发、共享、虚拟、异步

1.3.1 并发
并发和并行的区分
- 并发
- 之两个或多个事件在同一时间间隔内发生。这些事件在宏观上是同时发生的,但微观上是交替发生的
 
 - 并行
- 指两个或者多个事件在同一时刻同时发生
 
 
理解:

操作系统的并发性指的是计算机系统中同时存在着多个运行的程序
事实上,操作系统就是”伴随多道程序技术“而出现的,因此,操作系统和程序并发是一起诞生的
虽然当今计算机一般是多核CPU,但并发性依然必不可少
1.3.2 共享
共享即资源共享,是指系统中资源可供内存众多个并发执行的进程共同使用。
分为互斥共享和同步共享

所谓“同时”,往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问(即分时共享)
例子:

并发和共享地关系
两者互为存在条件
- 如果失去了并发性,共享性就失去了意义
 - 如果失去共享性,并发性也无法实现
 

1.3.3 虚拟
虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体实际存在,而逻辑对应物使用户感受到的。
- 
公分复用技术

 - 
时分复用技术(时间片)

 
并发性是虚拟性地前提

1.3.4 异步
异步是指多到程序环境下,允许多个程序并发执行,但资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性
1.4 操作系统的发展和分类

- 
手工操作阶段
- 用户独占全机,人机速度矛盾导致资源利用率极低
 
 - 
批处理阶段:脱机输入/输出技术 (用磁带完成) 监督程序负责控制作业的输入、输出
- 
单道批处理系统:

 - 
多道批处理系统:

 
 - 
 - 
分时操作阶段
 - 
实时操作系统
- 硬实时系统:必须在绝对严格地规定时间内完成处理
 - 软实时系统:能接受偶尔违反是时间规定
 

 
1.5 操作系统的运行机制和体系结构

1.5.1 运行机制

- 
两种指令:
- 
指令的概念:指令就是CPU能识别的最基本的命令
一条高级语言(如C)翻译过来可能会对应多条指令
 - 
特权指令
 - 
非特权指令
 

 - 
 - 
两种处理器状态
CPU判断当前是否可以执行特权指令
- 
用户态(目态)
 - 
核心态(管态)

 
 - 
 - 
两种程序
- 
内核程序
 - 
应用程序

 
 - 
 
1.5.2 操作系统内核
内核是计算机上配置的底层软件,是操作系统最基本最核心的部分。实现操作系统内核功能的那些程序就是内核程序。


1.5.3 操作系统体系结构

- 
大内核

 - 
微内核

 
1.6 中断和异常
1.6.1 中断机制的诞生
早期计算机个程序只能串行执行,系统资源利用率低,为了解决该问题,人们发明了操作系统,引入了中断机制,实现了多道程序并发执行。
发生中断就意味着需要操作系统介入,开展管理工作
中断是CPU从用户态进入核心态的唯一途径

1.6.2 中断的分类

1.6.3 外中断的处理过程

1.7 系统调用

1.7.1 什么是系统调用、作用?
系统调用会使处理器从用户态进入核心态
操作系统,面向用户是命令接口,面向应用程序是程序接口(由一组系统调用组成)
概念:“系统调用”是操作系统提供给应用程序(程序员)使用的接口,可以理解为可供应用程序调用的一种特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。
系统调用的目的:

系统调用按功能分类

注意:系统调用相关处理涉及到对系统资源的管理、对进程的控制,这些功能需要执行一些特权指令才能完成,因此系统调用的相关处理需要在核心态下进行。
1.7.2 系统调用和库函数的区别

1.7.3 系统调用背后的过程
过程;
传递系统调用参数 -> 执行陷入指令(用户态)-> 执行系统调用相应服务程序(核心态)-> 返回用户程序

注意点:
- 陷入指令是在用户态执行的,执行陷入指令之后立即引发一个内中断,从而CPU进入核心态
 - 发出系统调用请求是在用户态,而对系统调用的相应处理是在核心态下进行
 - 陷入指令是唯一一个只能在用户态执行,而不能在核心态执行的指令
 


                
            
        
浙公网安备 33010602011771号