一.什么是操作系统
计算机系统构成?
用户,应用程序,OS(操作系统),硬件(裸机)
OS是什么?特点是?
就是系统软件
1.与硬件交互
2.对资源共享进行调度管理
3.解决并发操作处理中存在的协调问题
4.数据结构复杂,外部接口多样化,便于用户反复使用
OS究竟有什么作用?
1.管理与配置内存
2.决定系统资源供需的优先次序
3.控制输入设备与输出设备
4.操作网络与管理文件系统等基本事务
5.提供一个让用户与系统交互的操作界面
总结
二.操作系统有哪些功能
在计算机上配置OS的目标
OS的功能
1.OS作为计算机系统资源的管理者
2.OS作为用户与计算机『硬件系统』之间的接口
3.OS实现了对计算机资源的抽象
OS作为计算机系统资源的管理者
处理机管理
1.进程控制
2.进程同步
3.进程通信
4.调度
存储器管理
1. 内存分配
2. 内存保护
3. 地址映射
4. 内存扩充
I/O设备管理
1. 缓冲管理
2. 设备分配
3. 设备处理
文件管理
1. 文件存储空间的管理
2.目录管理
3.文件的读/写管理和保护
OS作为用户与计算机硬件系统之间的接口
程序接口
命令接口
GUI/图形用户接口
OS实现了对计算机资源的抽象
1.将具体的计算机硬件资源抽象成软件资源,方便用户使用和扩展
2.开放了简单的访问方式,隐藏了实现细节
3.举例:使用浏览器进行搜索
三.操作系统有哪些特征
OS的基本四个特征
1.并发 3.共享 3.虚拟 4.异步
OS的并发性
概念:同一时间间隔内执行和调度多个程序的能力
特点:
1.宏观上,处理机同时执行多道程序
2.微观上,处理机在多道程序间高速切换(分时交替执行)
3.关注单个处理机同一时间段内处理任务数量的能力
相似的概念:并行
并发:指同一时间间隔(时间点)发生的事情数量。 即为在单核CPU中,利用一种算法将CPU资源合理地分配给多个任务,当一个任务执行 I/O 操作时,CPU 可以转而执行其它的任务,等到 I/O 操作完成以后,或者新的任务遇到 I/O 操作时,CPU 再回到原来的任务继续执行。
并行:同一时刻(时间点)发生的事件数量 多核CPU实现了真正的多个任务一起执行,多核 CPU 的每个核心都可以独立地执行一个任务,而且多个核心之间不会相互干扰。在不同核心上执行的多个任务,是真正地同时运行,这种状态就叫做并行。
OS的共享性
即资源共享,系统中的资源供多个『并发执行』的应用程序共同使用
同时访问方式:同一时段允许多个程序同时访问共享资源
互斥共享方式:也叫独占式,允许多个程序在同一个共享资源上独立而互不干扰的工作,当一者使用完后,后者才能继续使用资源
并发和共享互为存在条件
共享性要求OS中同时运行着多道程序
若只有单道程序正在运行,则不存在共享的可能
并发性难以避免的导致多道程序同时访问同一个资源
若多道程序无法共享部分资源(比如磁盘),则无法并发
OS的虚拟性
使用某种技术把一个物理实体变成多个逻辑上的对应物。
时分复用技术(TDM,Time Division Multiplexing)
例子:虚拟处理机技术:“四核八线程”
虚拟设备技术:虚拟打印机
空分复用技术(SDM,Space Division Multiplexing)
例子:虚拟磁盘技术:将一块硬盘虚拟出若干个卷(分盘)
虚拟存储器技术
OS的异步性
异步性是指进程以不可预知的速度向前推进。内存中的每个进程何时执行,何时暂停,以怎样的速度向前推进,每道程序总共需要多少时间才能完成等,都是不可预知的。
程序执行的不可预知性
1.获得运行的时机
2.因何暂停
3.每道程序需要多少时间
4.不同程序的性能,比如计算多少,I/O多少
宏观上“一气呵成”,微观上“走走停停”
总结
四.操作系统是怎么发展过来的
手工操作阶段
人工操作方式
脱机输入/输出方式
批处理阶段
单道批处理系统
多道批处理系统
分时操作系统
实时操作系统
- 微机操作系统的发展
手工操作系统阶段:无操作系统的计算机系统
人工操作系统方式:
缺点
1)用户独占全机,即一台计算机的全部资源由上机用户独占。
2)CPU等待人工操作。当用户进行装带(卡)、卸带(卡)等人工操作时,CPU及内存等资源是空闲的。
总结
人工操作方式严重降低了计算机资源的利用率,此即所谓的人机矛盾。
手工操作系统:
背景:为了解决人工操作方式中的CPU等待人工操作(及输入太慢),也就是CPU和I/O设备之间速度不匹配的矛盾,20世纪50年代末出现了脱机I/O技术。该技术是先将纸带上的孔转化成数据存入磁盘上(当然这里存储的数据是大量的,多个人的),当CPU需要这些程序时,再从磁盘上高速将数据调入内存。当然输出也是先输到磁盘进行存储,再到纸带。
**优点人际:
1)解决人机矛盾
2)减少CPU空闲时间
3)提高I/O效率
缺点:一次只能执行一个程序
单道批处理系统:
定义:为实现对作业的连续处理,需要先把一批作业以脱机方式输入到磁带上,并在系统中配上监督程序(Monitor),在它的控制下,使这批作业能一个接一个地连续处理。
特点:
1)自动性
2)顺序性
3)单道性
缺点 :内存中只有一道程序,I/O请求时,CPU处于空闲时期,利用率低
多道批处理系统:
定义: 系统内可同时容纳多个作业。这些作业放在外存中,组成一个后备队列,系统按一定的调度原则每次从后备作业队列中选取一个或多个作业进入内存运行,运行作业结束、退出运行和后备作业进入运行均由系统自动实现,从而在系统中形成一个自动转接的、连续的作业流。
优点:
1)提高CPU利用率
2)增加系统吞吐量
缺点:
1)平均周转时期长
2)无交互能力
分时操作系统:
定义:分时是指多个用户分享使用同一台计算机。多个程序分时共享硬件和软件资源。分时操作系统是指在一台主机上连接多个带有显示器和键盘的终端,同时允许多个用户通过主机的终端,以交互方式使用计算机,共享主机中的资源。
特点:
(1)同时性,计算机系统能被多个用户同时使用;
(2)独立性:用户和用户之间都是独立操作系统的,在同时操作时并不会发生冲突,破坏,混淆等现象;
(3)及时性:系统能以最快的速度将结果显示给用户;
(4)交互作用性:用户能和电脑进行人机对话。
缺点:作业或者用户优先级相同,不能优先处理紧急任务
实时系统:
定义:实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的操作系统。
特点:提供及时响应和高可靠性
微机系统:
单用户单任务:
CP/M、MS-DOS
单用户多任务:
Windows 1.0 - XP
多用户多任务:
UNIX OS:Solaris、Linux、Mac
MS-DOS:Windows 10
推动操作系统的发展动力
- 不断提高计算机资源的利用率
- 方便用户
- 器件的不断更新换代
- 计算机体系结构的不断发展
总结:
五.操作系统的运行机制是怎样的?
内核程序&应用程序
内核程序:实现操作系统的程序称为内核程序,许多内核程序结合在一起便组成了操作系统内核。
应用程序:普通程序员借助编程工具以及高级语言所完成的程序叫做应用程序。
特权指令&非特权指令
特权指令:作为系统资源的管理者,操作系统可以使用一些直接关系重大的指令(内存清零等),这些指令被称为特权指令,而且应用程序没有办法直接使用特权指令,这保证了操作系统的安全。
非特权指令:应用程序可以使用的指令,如加减乘除指令等。
内核态&用户态
CPU有两种状态:内核态(或称核心态,管态)以及用户态(目态)。当CPU处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令;当CPU处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令。在CPU中有一个寄存器叫做程序状态寄存器(PSW),该寄存器的01状态来表示此时处于内核态还是用户态。
内核的几个方面:
时钟管理:
在计算机的各种部件中,时钟是最关键的设备。时钟的第一功能是计时,操作系统需要通过时钟管理,向用户提供标准的系统时间。另外,通过时钟中断的管理,可以实现进程的切换。诸如,在分时操作系统中,釆用时间片轮转调度的实现;在实时系统中,按截止时间控制运行的实现;在批处理系统中,通过时钟管理来衡量一个作业的运行程度等。因此,系统管理的方方面面无不依赖于时钟。
中断机制:
引入中断技术的初衷是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的 (外中断)。后来逐步得到发展,形成了多种类型,成为操作系统各项操作的基础。例如,键盘或鼠标信息的输入、进程的管理和调度、系统功能的调用、设备驱动、文件访问等,无不依赖于中断机制。可以说,现代操作系统是靠中断驱动的软件。
内中断:中断机制中,只有一小部分功能属于内核,负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。
内中断的三种情况:
- 陷阱/陷入(Trap):由应用程序主动引发
- 故障(fault):由错误条件引发
- 终止(abort):由致命错误引发
原语:
按层次结构设计的操作系统,底层必然是一些可被调用的程序段,它们各自完成一个规定的操作。
特点:
- 它们处于操作系统的最底层,是最接近硬件的部分。
- 这些程序的运行具有原子性——其操作只能一气呵成(这主要是从系统的安全性和便于管理考虑的)。(执行不会被中断)
- 这些程序的运行时间都较短,而且调用频繁。
系统数据结构:
- 进程管理:作业控制块、进程控制块
- 存储器管理:存储器分配与回收
- 设备管理:缓冲区、设备控制块
系统调用:
- 由操作系统实现,给应用程序调用
- 是一套接口的集合
- 应用程序访问内核服务的方式
总结
六.操作系统的结构是怎样设计的?
第一代:无结构OS
- 一系列过程(程序)的集合,过程间可以相互调用
- 结构复杂且混乱,难以调试、阅读和维护
第二代:模块化结构OS
- 基于“分解”和“模块化”原则
- 按照功能划分模块/子模块,规定模块间的接口
- 模块独立性标准:高内聚、低耦合
优点:
- 提高OS设计的正确性、可理解性和可维护性;
- 增强OS的适应性;
- 加速开发过程;
缺点:
- 模块接口设计难以扩展后续需求
- 各模块设计没有统一的决策标准,导致模块接口设计不可靠
第三代:分层式结构OS
- 有序分层法,自顶向下依次依赖
- 设计时,自底向上:每一步建立在可靠的基础上
- 优缺点: 容易保证系统正确性 容易扩充和维护 自上而下的层次通信,导致系统效率降低
第四代:微内核OS结构
微内核的基本概念:
- 足够小的内核,只实现OS核心功能
- 与硬件处理紧密相关的部分,比如硬件处理、客户与服务器通信和其它基本功能
- 一些较基本的功能
- 客户和服务器之间通信(客户/服务器模式)
- 应用“机制与策略分离”原理
- 采用面向对象技术
微内核的OS的优点
- 提高OS的可扩展性、可靠性、可移植性
- 支持分布式系统
- 融入了面向对象技术
微内核的OS的缺点
相较早期OS,降低了一定的效率