操作系统(Operating System,OS
一.认识操作系统
1.1_1:操作系统的概念,功能和目标
- 概念:控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
- 补充:进程(processing):一个程序的执行过程。执行前需要将该程序放到内存中,才能被cpu处理。
1.1_2:操作系统的特征
- 四个特征:并发,共享,虚拟,异步;其中并发,共享是最基本的特征,二者互为存在条件
- 并发:指两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。
注意:并行:指两个或多个事件在同一时刻同时发生
- 操作系统的并发性:计算机系统中同时存在多个运行着的程序。
一个单核处理器(cpu)同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行(这些程序微观上是交替执行的,但宏观上看起来就像在同时执行)
- 共享:即资源共享,指系统中的资源可供内存中多个并发执行的程序共同使用。
- 两种资源共享的方式:互斥共享方式和同时共享方式
(1):互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源
例如:视频聊天,qq和微信。
(2):同时共享方式:系统中的某些资源,允许一个时间段内由多个进程**“同时”**对它们进行访问
例如:同时给qq和微信发文件注意:“同时”:往往是宏观的,微观上,这些进程可能是交替对该资源进行访问(即分时共享)
- 虚拟:指把一个物理上的实体变为若干的逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的。
- 两种虚拟技术:空分复用技术(虚拟存储器技术)和时分复用技术(虚拟处理器)
- 异步:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的。而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。
- 小结:
1.1_3 操作系统的分类与发展
- 手工操作阶段
- 批处理阶段:单道批处理,多道批处理(系统资源并行利用)。
- 分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可以通过终端与计算机进行交互。优点:用户请求可以被即时响应,解决人机交互问题。
- 实时操作系统:能优先响应一些紧急任务。分为硬实时系统和软实时系统。
- 其他操作系统。
- 小结:
1.1_4 操作系统的运行机制体系结构与
- 指令:处理器cpu能识别,执行的最基本的命令。如加法指令。
两种指令:特权指令;非特权指令
- 两种处理器状态 :(用程序状态字寄存器(PSW)中都某标志为来标识当前处理器状态)
用户态(目态):此时cpu只能执行非特权指令
核心态(管态):特权指令,非特权指令都可以执行
- 两种程序:
内核程序:操作系统的内核程序是系统的管理者,既可以执行特权指令也可以执行非特权指令,运行在核心态。
应用程序:为保证系统能安全运行,普通应用程序只能执行非特权指令,运行在用户态
- 操作系统的内核:是计算机上配置的底层软件,是操作系统最基本,最核心的部分。实现操作系统内核功能的那些程序就是内核程序。
操作系统内核图:
- 计算机系统的层次结构:
- 操作系统层次结构:
时钟管理:实现计时功能;
原语:一种特殊的程序。最接近硬件的部分,这种程序的运行具有原子性。
- 操作系统的体系结构:
大内核与微内核的区别:
注意:变态(cpu状态的转换)的过程是有成本的,要消耗不少时间,频繁地变态会降低系统性能
- 小结:
1.1_5: 中断和异常
-
中断机制的诞生:为解决串行程序执行的问题,引入中断机制,实现了多道程序并发执行。
-
本质:发生中断就意味着需要操作系统介入,开展管理工作 。由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要特权指令,因此cpu要从用户态转为核心态。中断可以使cpu从用户态切换为核心态,使操作系统获得计算机等控制权。有了中断,才能实现多道程序并发执行。
注意:
用户态到核心态的切换是通过中断实现的,且中断是唯一的途径
核心态到用户态到切换是通过执行一个特权指令,将PSW到标识设置为用户态。 -
中断的概念和作用
- 当中断发生时cpu会立即进入核心态
- 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
- 对于不同的中断信号,会进行不同的处理
-
中断的分类:内中断和外中断(本质区别:信号源)
内中断:也称异常、例外、陷入;信号来源于cpu内部,与当前执行的指令有关。
陷阱、陷入(trap):有意而为之的异常,如系统调用
故障(fault):由于错误条件引起的,可能被故障处理程序修复,如缺页
终止(abort):不可恢复的致命错误造成的结果,终止处理程序不再将控制返回给引发终止的应用程序,如除以0.外中断:中断;信号来源于cpu外部,与当前执行的指令无关。
I/O中断请求:
人工干预:外中断的处理过程:
Step1:执行完每个指令之后,cpu都要检查当前是否有外部中断信号
Step2:如果检测到外部中断信号,则需要保护被中断进程的cpu环境(如程序状态字PSW、程序计数器PC、各种通用寄存器)
Step3: 根据中断信号类型转入相应的中断处理程序
Step4:恢复原进程的cpu环境并退出中断,返回原进程继续往下执行
小结:
1.1_6:系统调用
- 系统调用:操作系统给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获取操作系统内核的服务。
- 应用程序通过系统调用请求操作系统的服务。而系统中的共享资源都由操作系统内核统一掌管,因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
- 系统调用的过程:传递系统调用参数->执行陷入指令(用户态)->执行相应内请求程序处理系统调用(核心态)->返回应用程序。
- 注意:
- 陷入指令(trap指令)是在用户态执行对,执行陷入指令之后立即引发一个内中断,使cpu进入核心态。
- 发出系统调用请求是在用户态,而对系统调用对相应处理在核心态下进行*。
- 小结:
第二章:进程管理
2.1.1:进程的概念、组成、特征
- 程序:是静态的,就是个存放在磁盘里的可执行文件,就是一系列的指令集合。
- 进程(Process)的概念:是动态的,是程序的一次执行过程。同一程序多次执行会对应多个进程。
- 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
- 进程是动态的,进程实体是静态的;进程实体反应了进程某一时刻的状态就像视频中的一帧。
- 进程,’‘用进程实体(进程映像)更准确’‘:由PCB,程序段(代码:指令序列),数据段(运行过程中产生当各种数据)。其中PCB是给操作系统用的,程序段和数据段是给进程自己用的。
- 操作系统对进程进行管理工作所需的信息都存在PCB中。
- PCB是进程存在的唯一标志,当进程被创建时,操作系统为其创建PCB,当进程结束时,会回收其PCB。
- 进程控制块(PCB):包括进程描述信息(PID,UID),进程控制和管理信息(CPU、磁盘、网络流量;进程当前状态:就绪态阻塞态/运行态),资源分配清单(正在使用哪些文件,I/O,内存),处理机相关信息(PSW各种寄存器用于实现进程切换)
- PID:当进程被创建时,操作系统会为该进程分配一个唯一的、不重复的“身份证号”。
- ID(UID):基本的进程描述信息,可以让操作系统区分各个进程。
程序的运行
小小结:
- 组成:
- 特征: