1. 操作系统的目标
方便性、有效性、可扩充性、开放性
①方便性:易学易用
②有效性:提高系统资源利用率、提高系统吞吐量
③可扩充性:易于添加新的功能和模块,对原有的功能和模块进行修改
④开放性:制定软、硬件标准,遵循世界标准规范,彼此兼容实现互连
2. 操作系统的作用
①OS作为用户与计算机硬件系统之间的接口【用户通过OS来使用计算机、从下向上看】
②OS作为计算机系统资源的管理者
- 资源:处理机、存储器、I/O设备、文件【数据和程序】
- 处理机管理:分配和控制处理机
- 存储器管理:内存的分配与回收
- I/O设备管理:负责I/O设备的分配回收与操纵
- 文件管理:实现对文件的存取、共享和保护
③OS实现了对计算机资源的抽象【从上向下看、最接近硬件】
实现对硬件机器的扩展、对计算机硬件操作的第一个层次的抽象
把裸机上覆盖了一层I/O设备管理软件的机器称为扩充机器,又称虚拟机
3. 操作系统推动的动力
不断提高计算机资源利用率
方便用户
器件的不断更新换代
计算机体系结构的不断发展
不断提出新的应用需求
4. 操作系统发展阶段
- 1手工操作:输入输出速度慢、处理速度快、效率低 用户独占全机,人机速度矛盾导致资源利用率极低
- 2批处理阶段——单道批处理:脱机输入输出技术【磁带】,并监督程序负责控制作业的输入输出【监督程序是操作系统的雏形】【CPU和I/O设备串行工作】
优点:缓解了一定的人机速度矛盾,资源利用率有所提升
缺点:内存中仅有一道程序运行,该程序运行结束后才能进入下一程序,CPU有大量的时间实在空闲等待I/O完成,资源利用率低
作业
概念:用户定义的、由计算机完成的一个工作单位,作业由不同的顺序相连的作业步组成
组成:作业 = 程序+数据+作业说明书 - 3批处理阶段——多道批处理:每次往内存中存入多道程序,操作系统诞生并引入中断技术,由操作系统负责管理程序运行,各程序并发执行【相互穿插的运行】
优点:多道程序并行执行,共享计算机资源,资源利用率大幅提升,CPU和其他资源保持忙碌状态,系统吞吐量增大
缺点:用户响应时间低,没有人机交互功能(用户提交作业后只能等待计算机处理完成,中间不能控制作业执行)
单道批处理特点:单道性、顺序性、自动性
多道批处理特点:多道性、无序性、调度性 - 4分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机交互【一台主机上连接了多个终端,同时允许多个用户通过自己的终端,以交互的方式使用计算机,共享主机中的资源系统】
时间片:每个终端用户的作业能连续使用CPU的最长时间
优点:用户请求可以被及时响应,解决人机交互问题,允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到其他用户的存在
缺点:不能优先处理一些紧急任务,操作系统对各个用户/作业都是完全公平的,循环的为每个用户/作业服务一个时间片,不区分任务的紧急性。 - 5实时系统:系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的进行
应用需求:
实时控制:生产过程控制、武器控制
实时信息处理:订票系统、情报检索系统
多媒体系统、嵌入式系统
截止时间:开始截止时间、完成截止时间
实时系统与分时系统的比较:
设计目标不同
多路性和独立性:都有
及时性:实时系统更高
交互性:分时系统更强
可靠性:实时系统要求高度可靠【任何差错都可能带来无法预料的灾难性后果(武器控制系统) - 6微机操作系统
单用户单任务操作系统(MS-DOS)
单用户多任务操作系统(OS/2、Windows)
多用户多任务操作系统(Unix、Linux) - 7网络操作系统
计算机网络定义:由线路将一些独立自治的计算机相互连接形成的一个集合体称为计算机网络
计算机网络的特点:多个独立计算机、无公共内存、具备消息通信机制
网络操作系统除了具备一般操作系统具有的功能模块外,还有网络通信模块,该模块由通信接口中断处理程序、通信控制程序以及各级网络协议软件组成
局限性:不能支持透明的资源存取;不能对网络资源进行有效、统一的管理;不能支持合作计算 - 8分布式系统
包含多个分布的通用资源部件,并经过通信网络相互作用;有一个分布式操作系统对资源进行全局和动态的管理控制;系统对用户是透明的;任务可以分布处理
特点:可扩展性、增加性能、高可靠性 - 9嵌入式操作系统EOS
将应用程序和OS与计算机硬件集成在一起的系统,负责嵌入式系统的全部软、硬件资源的分配、调度工作、控制协调并发活动等
手机操作系统、VxWorks
5. 操作系统的特征
并发:两个或多个事件在同一时间间隔内发生
并行:两个或多个事件在同一时刻发生
并发宏观上同一时间段内同时运行,微观上交替执行【同时存在多个运行的程序,WeChat、QQ、音乐并行 多核CPU】
进程:是指在系统中能独立运行并作为资源分配的基本单位,是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。
共享:指系统中的资源可供内存中多个并发执行的进程共同使用
互斥共享方式:【QQ微信视频摄像头不可同时使用】
在一段时间内只允许一个进程访问资源;
临界资源【独占资源】:在一段时间内只允许一个进程访问的资源
同时访问方式:【QQ微信同时读取并发送文件】
宏观上一段时间内允许多个进程“同时”访问某些资源
微观上“轮流”(交替访问)
处理机、内存、磁盘、可重入代码
虚拟:是指通过某种技术把一个物理实体变为若干个逻辑上的对应物【物理实体是实际存在的,后者是用户感受到的
异步(不确定性):进程是以人们不可预知的速度向前推进的
导致的原因:竞争资源
6. 操作系统的功能
处理机管理:对处理机进行分配——进程和线程的管理和调度
进程:一个程序 线程:程序里的一个函数
存储器管理:对内存进行分配、保护、扩充及地址映射
设备管理:接收用户程序的I/O请求,分配设备,启动设备
文件管理:文件的存取、信息的共享与保护、文件存储空间管理
提供用户接口:命令接口、图形接口、程序接口
7. 操作系统的用户接口
命令接口
作业控制语言、键盘命令
在终端中使用;Unix/Linux有多种Shell(sh/bash/ksh/csh)
普通用户、系统管理员
程序接口:应用程序以函数调用的方式来使用系统服务的接口,在Unix/Linux系统中也称为系统调用(system call)
系统调用:系统功能调用是用户在程序一级请求操作系统服务的一种手段,它是带有一定功能号的“访管指令”。其功能由操作系统中的程序完成【软件方法】
图形接口GUI
更加友好的交互型用户接口
直观
指令:CPU能识别、执行的最基本命令
8. 操作系统的内核
内核是计算机配置的底层软件,是操作系统最基本、最核心的部分
1时钟管理:实现计时功能
2中断处理:负责实现终端机制
3原语:
是一种特殊的程序
处于操作系统最底层,是最接近硬件的部分
这种程序运行具有原子性——其运行只能一气呵成,不可中断
运行时间较短、调用频繁
4对系统资源进行管理功能【有的操作系统不归为内核功能】
进程管理、存储器管理、设备管理
操作系统体系结构【因为操作系统内核功能的划分不同不同的体系结构:大内核、微内核
大内核:将操作系统的主要功能模块都作为系统内核,运行在核心态
优点:高性能
缺点:内核代码庞大,结构混乱,难以维护
微内核:只把最基本的功能保留在内核
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁地在核心态和用户态之间切换,性能低
判断CPU当前是否可以执行特权指令
🌟操作系统的处理器状态:
管态【用户态】:此时CPU只能执行非特权指令
目态【核心态】:特权指令、非特权指令都可执行
特权指令-内核程序-核心态 应用程序-用户态
1特权指令只能在核心态下执行
2内核程序还能在核心态下执行
3核心态、用户态之间的切换
陷入指令是唯一一个只能在用户态执行而不可在核心态执行的指令
系统调用发生在用户态,对系统调用的处理发生在核心态执行陷入指令会产生内中断,使处理器从用户态进入核心态
9. 操作系统的内核结构
-
整体结构:操作系统是一组过程的集合,每个过程有接口定义,包括入口参数和返回值,过程间可任意调用
设计重点:功能的实现和高效率
缺点:缺乏清晰的程序结构、错误多、难易维护
实例:AT&T SystemV、BSD UNIX -
模块化结构:操作系统按功能划分模块和设计,模块需要封装,相关模块间具有良好定义的接口,模块间可以任意调用
优点:有利于系统设计和扩展
缺点:模块间存在复杂的依赖关系,OS结构不清
实例:Choices系统【该结构处于实验性质】 -
层次结构:把OS的功能模块划分为若干层,每层之间的模块只能单向调用
优点:易保证系统的正确性、易扩充和易维护性
缺点:系统效率低
实例:Dijkstra的THE系统 -
微内核结构:
系统内核
1基础核心
进程管理(线程)
低级存储器管理
中断和陷入处理
基础通信:消息传递
2其他核心:文件管理、设备驱动、内存管理、网络管理等
特点:采用面向对象技术、基于客户/服务器模式
运行在核心态的微内核;运行在用户态的并以客户/服务器方式活动的进程层
10. 系统的中断和异常
中断机制的引入:早期计算机程序只能串行执行,系统资源利用率低,引入中断机制,实现了多道程序并发执行【本质:发生中断意味着需要操作系统介入,开展管理工作,需要使用特权指令,因此CPU要从用户态转为核心态,中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权】
中断是CPU从用户进入核心态的唯一途径
1当中断发生时,CPU立即进入核心态
2当中断发生后,当前运行程序暂停,并由操作系统内核对中断进行处理
3对不同的中断信号,会进行不同的处理
中断的分类
内中断【异常、例外、陷入】:信号来源CPU内部,与当前执行的指令有关
自愿中断——指令中断
强迫中断——硬件故障【缺页】、软件中断【抛出异常,整数除0】
外中断【狭义的中断】:信号来源CPU外部,与当前执行的指令无关
外设请求【I/O操作完成发出中断信号】
人工干预【用户强行终止一个进程】
外中断的处理过程
1【用户程序,用户态】执行完每个指令后,CPU都要检查当前是否有外部中断信号
2检测到外部中断信号,需要保护被中断进程的CPU环境【程序状态字PSW、程序计数器PC、通用寄存器】
3根据中断信号类型转入相应的中断处理程序
4恢复原进程的CPU环境并退出中断,返回原进程继续往下执行