操作系统的引论
目录
1.并发:指两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生的,但微观上是交替发生的
2.共享:共享即资源共享,是系统中的资源可供内存中多个并发执行的进程共同使用
1.互斥共享:使用QQ和微信视频同一时间段内摄像头只能分配给其中一个进程
2.同时共享:使用QQ发送文件a同时使用微信发送文件b,宏观上看两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据,微观上看两个进程是交替着访问硬盘的
3.虚拟:是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的.
4.异步性:异步是指在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性
1.手工操作阶段:纸带机,用户独占全机人机速度矛盾导致资源利用率极低。
单道批处理系统:引入脱机输入/输出技术(外围机+磁带),并由监督程序负责控制作业的输入、输出
主要优点,用户请求可以被及时响应,解决了人机交互问题,允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立感受不到别人的存在
主要缺点,不能优先处理一些紧急任务,操作系统对各个用户作业都是完全公平的,循环的,为每个用户作业服务一个时间片不区分任务的紧急性
4.实时操作系统:能够优先响应一些紧急任务,某些紧急任务不需时间片排
1.1_1操作系统的概念,功能
熟悉的操作系统:
本节知识总览:
1. 计算机系统的层次结构
2.操作系统的概念
操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境。他是计算机系统中最基本的系统软件。
1.操作系统作为用户与计算机硬件系统之间的接口
2.操作系统作为计算机系统资源的管理者
3.操作系统实现了对计算机资源的抽象
3.操作系统的功能和目标
1.作为系统资源的管理者
功能:
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
目标:安全,高效
2.向上提供方便易用的服务
Gui:图形化用户接口
用户可以使用形象的图形界面进行操作,而不再需要记忆复杂的命令,参数
早期操作系统使用
联机命令接口实例(windows系统 )联机命令接口=交互式命令接口(用户说一句,系统跟着做一句)脱机命令接口实例(windows系统)脱机命令接口=批处理命令接口
程序接口:可以在 程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用
总结
3.作为最接近硬件的层次
知识回顾
1.1_2操作系统特征
特征
- 并发
- 共享
- 虚拟
- 异步
并发和共享是操作系统中的两个最基本的特征,二者互为存在条件
1.并发:指两个或多个事件在同一时间间隔内发生,这些事件宏观上是同时发生的,但微观上是交替发生的
常考易混概念 并行,指两个或多个事件在同一时刻同时发生
操作系统的并发性是计算机系统中同时运行着多个程序,这些程序宏观上看是同时运行着的,而微观上看是交替运行的
操作系统是伴随着多道程序技术而出现的,因此操作系统和程序并发是一起诞生的
单核CPU同时一时刻只能执行一个程序,各个程序只能并发的执行
多核CPU同一时刻可以同时执行多个程序,多个程序可以并行的执行
2.共享:共享即资源共享,是系统中的资源可供内存中多个并发执行的进程共同使用
所谓的同时,往往是宏观上的,而在微观上,这些进程可能是交替的对该资源进行访问的(即分时共享)
实例,
1.互斥共享:使用QQ和微信视频同一时间段内摄像头只能分配给其中一个进程
2.同时共享:使用QQ发送文件a同时使用微信发送文件b,宏观上看两边都在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据,微观上看两个进程是交替着访问硬盘的
3.虚拟:是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的.
1.空分复用技术(如虚拟存储器技术)
2.时分复用技术(如虚拟处理器)
显然,如果失去了并发性,则一个时间段内系统只运行一道程序,那么就失去了实现虚拟性的意义了,因此没有并发性就谈不上虚拟性
4.异步性:异步是指在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性
如果失去了并发性及系统,只能串行地运行各个程序,那么每个程序的执行会一贯到底,只有系统拥有并发性,才有可能导致异步性
总结
1.2操作系统的发展与分类
知识总揽
1.手工操作阶段:纸带机,用户独占全机人机速度矛盾导致资源利用率极低。
2.批处理阶段
单道批处理系统:引入脱机输入/输出技术(外围机+磁带),并由监督程序负责控制作业的输入、输出
多道批处理系统
主要优点,多道程序并发执行,共享计算机资源资源利用率大幅提升,CPU和其他资源更能保持忙碌状态。系统吞吐量大。
3.分时操作系统
分时操作系统:计算机以时间片为单位,轮流为各个用户作业服务,各个用户可通过终端与计算机进行交互
主要优点,用户请求可以被及时响应,解决了人机交互问题,允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立感受不到别人的存在
主要缺点,不能优先处理一些紧急任务,操作系统对各个用户作业都是完全公平的,循环的,为每个用户作业服务一个时间片不区分任务的紧急性
4.实时操作系统:能够优先响应一些紧急任务,某些紧急任务不需时间片排
在实时操作系统的控制下,计算机系统接收到外部信号后,及时进行处理,并且要在严格的时间线内处理完事件。实时操作系统的主要特点是及时性和可靠性
5. 其他操作系统
知识总结
1.3_1操作系统的运行机制
内核程序,我们普通程序员写的程序就是应用程序内
由很多内核程序组成了操作系统,简称内核,内核是操作系统最重要的核心部分,也就最接近硬件的部分,甚至可以说一个操作系统只要有内核就够了,操作系统的功能未必都在内核中,如图形化用户界面GUI
CPU有两种状态,内核态和用户态
处于内核态势,说明此时正在运行的是内核程序,此时可执行特权指令
处于用户态时说明,此时正在运行的是应用程序,此时只能执行非特权指令
1.内核态,用户态的切换
2.内核态到用户态
执行一条特权指令修改psw的标志位为用户态。这个动作意味着操作系统将主动让出CPU使用权
用户态到内核态
由中断引发,硬件自动完成变态过程,触发中断信号意味着操作系统将强行夺回CPU的使用权
除了非法使用特权指令之外,还有很多事件会触发中断信号。一个共性是,但凡需要操作系统介入的地方,都会触发中断信号
3.知识总结
1.3_2中断和异常
1.知识总揽
CPU上会运行两种程序,一种是操作系统的内核程序,一种是应用程序
操作系统的内核程序是整个系统的管理者
在合适的情况下,操作系统内核会把CPU的使用权主动让给应用程序,中断是让操作系统内核作为CPU使用权的唯一途径
中断,会使CPU由用户态变为内核态,使操作系统重新夺回CPU的控制权。
如果没有中断机制,一旦应用程序上CPU运行,CPU就会一直运行这个应用程序
2.中断的类型
内中断,与当前执行的指令有关,中断信号来源于CPU内部
陷入指令,执行陷入指令意味着应用程序主动的将CPU控制权还给操作系统内核,系统调用就是通过陷入指令完成的
外中断,与当前执行指令无关,中断信号来源于CPU外部
时钟中断,IO中断
3. 中断的分类
4.中断机制的基本原理
不同的中断信号需要用不同的中断处理程序来处理,当CPU检测到中断信号后,会根据中断信号的类型去查询中断向量表,以此来找到相应的中断处理程序,在内存中的存放位置
5.知识总结
1.3_3系统调用
操作系统作为用户与计算机硬件之间的接口,需要向上提供一些简单易用的服务,主要包括命令接口和程序接口,其中程序接口是由一组系统调用组成的
1.系统调用与库函数的区别
系统调用是操作系统提供给应用程序(程序员,编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务
2.为什么系统调用是必须的?
3.什么功能要用到系统调用?
4. 系统调用的过程
5.知识总结
1.4操作系统的体系结构
1.知识总揽
2.操作系统的内核
内核是操作系统最基本,最核心的部分。
实现操作系统内核功能的那些程序就是内核程序
操作系统内核需要运行在内核态
操作系统的非内核功能运行在用户态
变态(CPU转换)的过程是有成本的要消耗不少的时间,频繁的变态会降低系统性能。
3.知识回顾
4.知识总结
分层结构
优点:
便于调试和验证,自底向上逐层调试验证
易扩充和易维护,各层之间调用接口清晰固定
缺点:
仅可调用相邻低层,难以合理定义各层的边界
效率低,不可跨层调用,系统调用执行时间长
模块化
将内核分为多个模块,各模块之间相互协作
内核=主模块(进程,内存…)+可加载内核模块(驱动程序..)
主模块,只负责核心功能,如进程调度,内存管理
可加载内核模块,可以动态加载新模块到内核,而无需重新编译整个内核
优点:
逻辑清晰,易于维护,确定模块间接口后即可多模块同时开发
支持动态加载新的内核模块,增强os的适应性
任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高
缺点:模块间的接口定义未必合理,实用
模块间相互依赖,更难调试和验证
外核
内核负责进程调度,进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全
优点:外核可直接给用户进程分配不虚拟,不抽象的硬件资源,使用户进程可以更灵活的使用硬件资源
减少了虚拟硬件资源的映射层,提升效率
缺点:
降低了系统的一致性
使系统变得更复杂
1.5-操作系统的引导
操作系统的引导(开机过程)
1.6虚拟机
使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器,每个虚拟机器都可以独立运行一个操作系统