一、 操作系统的概念
(一)什么是操作系统
操作系统(Operating System,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境;它是计算机系统中最基本的系统软件。
操作系统的功能:
作为系统资源的管理者,提供的功能:
1、处理机管理
2、存储器管理
3、文件管理
4、设备管理。
操作系统的目标:
1、安全
2、高效
操作系统向上层提供方便易用的服务(封装思想,将一些丑陋的硬件封装成简单易用的服务,GUI:图形化用户接口)。
命令接口:
1、联机命令接口=交互式命令接口(写一句系统运行一句)
2、脱机命令接口=批处理命令接口(写一堆,系统一条一条运行)
程序接口:
可以在程序中进行系统调用来使用程序接口,普通用户不能直接使用程序接口,只能通过程序代码间接使用 。
(二)操作系统的特征
并发:指两个或者多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,但是微观上是交替发生的——并行:指两个或多个事件在同一时刻同时发生
(单核CPU同一时刻只能执行一个程序,各程序只能并发的执行,多核CPU同一时刻可以执行多个程序,多个程序可以并行的执行)
共享:即资源共享,指系统内的资源可供内存中多个并发执行的进程同时使用
(互斥共享:一个时间段只允许一个进程访问该资源,同时共享:允许一个时间段由多个进程“同时”访问)
并发与共享互为存在条件:失去并发性共享就没有意义,失去共享性无法并发执行
虚拟:指把物理上的实体变成若干个逻辑上的对应物
虚拟技术:
1、空分复用技术(如虚拟存储器技术)
2、时分复用技术(如虚拟处理器)
异步:是指,多道程序环境下,允许多程序并发执行,但由于资源有限,进程执行不少一贯到底,而是走走停停,以不可预知的速度向前推进。
(三)操作系统的发展与分类
一、手工操作阶段
主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低
二、批处理阶段
1、单道批处理系统:引入脱机输入/输出技术(用外围机和磁带),并由监督程序负责输入输出作业
2、多道批处理系统(操作系统的诞生):用于多道程序的并发运行
主要优点:多道程序并发执行,共享计算机资源,资源利用率大幅度提升
主要缺点:用户响应时间长,没有人机交互,作业提交后就无法修改,只能等待计算机处理结束
3、分时操作系统:以时间片为单位轮流的为各个用户/作业服务
主要优点:用户请求可以被即时响应,解决了人机交互问题,允许多个用户同时使用一台计算机,用户之间相互独立
4、实时操作系统:在严格的时限内完成作业处理,主要特点:及时性和可靠性
主要优点:能够紧急响应紧急任务
(四)操作系统的运行机制
指令:就是处理器(CPU)能够识别、执行的最基本的命令(这里指二进制的机器指令)win+r中的命令是交互式命令接口
操作系统的内核作为“管理者”有时会让CPU执行一些特权指令:内存清零指令,这些指令影响重大,只允许“管理者使用”——操作系统的内核
CPU有两种状态“内核态”和“用户态”
处于内核态(管态),说明此时执行的是内核程序,可以执行特权指令
用户态(目态),说明此时执行的是应用程序,只能执行非特权指令
内核态=>用户态 操作系统让出CPU的使用权
用户态=>内核态 由中断引发,硬件自动变态,操作系统强行夺回CPU使用权。(但凡需要操作系统介入的地方,都会出发中断信号)
(五)中断和异常
CPU会运行两种程序:
1、操作系统的内核程序
2、应用程序
“中断”是操作系统抢回CPU使用权的唯一途径
一、内中断(也称异常、例外)(中断信号来自CPU内部)
执行指令中指令错误就会引起中断(故障)
程序主动请求操作系统内核服务,执行陷入指令,会引起中断信号,由用户态转变内核态(陷入) 致命错误(终止)
二、外中断(狭义的中断)(中断信号来自CPU外部,跟当前执行指令无关)
作业任务完成I/O中断请求
时钟中断
三、中断机制基本原理
不同的中断信号,用不同的中断处理程序处理,CPU根据不同中断信号,查询中断向量表,找到处理方式
(六)系统调用
系统调用:可供应用程序调用的特殊函数,通过系统调用来获得操作系统内核的服务
系统调用(功能分类):设备管理、文件管理、进程控制、进程通信、内存管理
凡是对共享资源的使用,都需要通过系统调用,来请求资源的使用,保证系统的稳定性安全性
(七)操作系统的结构
1.操作系统的内核
原语是特殊的程序,具有原子性,该程序的运行不可被中断
内核是操作系统最核心,最基本的部分
实现操作系统内核功能的那些程序就是内核程序
操作系统的内核需要在内核态运行
操作系统的非内核态功能运行在用户态
大内核:操作系统的所有功能都作为系统内核,运行在核心态
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
微内核:保留最基本的操作在内核态
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁的切换用户态和核心态,性能低
2.分层结构
内核分多层,每层可单向调用低一层提供的接口
优点:便于调试和验证,自底向上逐层调试验证,易扩充和易维护,各层接口清晰稳定
缺点:仅可以调用相邻低层,难以合理调用各层边界,效率低,不可跨层调用,执行时间长
3.模块化:
内核=主模块+可加载内核模块,可动态加载新模块道内核
优点:逻辑清晰易维护,可同时多模块开发,支持动态加载新模块,任何模块都可直接调用其他接口,效率高
缺点:模块之间相互依赖,不方便调试验证,模块间定义未必合理、实用
(八)虚拟机
虚拟机:使用虚拟技术,将一台物理机器虚拟化为多个虚拟机器,每个虚拟机都可以独立运行一个操作系统
第一类虚拟机,直接运行在硬件上
第二类虚拟机,运行在宿主操作系统上