本节重点
- 操作系统的目标
- 操作系统的类型(批处理、实时、分时系统的特征)
- 操作系统的特征和功能
- 多道程序设计的概念、优点
- 脱机输入输出的概念、优点
- 并发和共享的关系
目录
操作系统的基本概念
没有操作系统的计算机称作裸机。
操作系统的定义
操作系统是计算机硬件和应用之间的一层软件,是控制和管理计算机的软硬件资源、合理地组织和管理计算机的工作流程来方便用户使用的程序和数据的集合。
计算机系统的组成部分:裸机-core-操作系统 -应用程序
操作系统的目标和作用
侧重目标
方便性、有效性、可扩展性、开放性
操作系统的作用
1.方便用户使用,提供接口:命令方式、系统调用方式、图形、窗口方式等
2.资源管理:管理存储器、处理器、I/O设备
3.实现对计算机资源的抽象,实现用户和计算机硬件进行交互
操作系统能方便用户使用硬件,能够提高系统使用效率。
CPU管理 内存管理 终端管理 磁盘管理 文件管理 网络管理 电源管理 多核管理
操作系统的基本类型
人工操作方式
缺点:
人机矛盾、CPU和I/O速度矛盾;
系统资源利用率极低
批处理操作系统
联机
I/O设备与主机直接相连
脱机输入/输出方式
程序和数据的输入输出都是由外围机控制的,脱离主机完成;
优点:减少了CPU的空闲时间;提高了I/O速度
单道批处理系统
特征:自动性 顺序性 单道性
缺点:
资源利用率低;
CPU和I/O设备忙闲不均:计算为主的作业外设空闲;输入输出为主的作业,CPU空闲;
多道批处理系统
先把作业排队,放入外存的后备队列中,安装作业调度算法选择若干个作业调入内存中,让他们共享CPU和系统中的各种资源;
需要的硬件基础:中断系统和通道
优点:资源利用率高 系统吞吐量大
缺点:平均周转时间长、无交互能力
分时系统
分时:把计算机的系统资源进行时间上的分割,每个时间段称为一个时间片,每个用户依次轮流使用时间片 核心是任务切换 多终端 前后端交互
特点:多路性、及时性、独立性、交互性
实时系统
实时操作系统
在限定的时间内对输入进行快速处理并做出响应的计算机处理系统。
主要用于进程控制、事务处理等有实时要求的领域
特征:实时性、可靠性、在限时时间内处理计算机的任务
实时系统 | 分时系统 | |
设计目标 | 多是专用系统,像是工业控制、信息查询、多媒体系统、嵌入式系统都用实时系统 | 通常是通用系统 |
交互性强弱 | 实时系统是特殊的专用系统,外界操作是严格控制的,所以交互性较弱 | 分时系统一般都是通用性很强的系统,允许系统和用户之间有较强的会话能力,交互性较强 |
响应时间长短 | 实时系统以控制过程中信息处理能接受的延迟为标准 | 分时系统以用户能接受的等待时间为标准 |
微机操作系统的发展
单用户单任务:80386、80486
单用户多任务:95、8、XP、win7、win8
多用户多任务:UNIX、Linux
其他类型的操作系统
网络OS:计算机网络配置
分布式OS:分布计算系统配置
嵌入式OS:手机IOS、andriod、传感器OS
人工智能OS:具有通用操作系统所具备的所有功能 语音识别、机器视觉、执行器系统、认知行为系统
操作系统的基本特征
并发性 共享性 虚拟 异步性
并发concurrence
并行与并发
并发:在一个时间间隔内,宏观上有多个程序同时运行 单处理机
并行:两个或多个事件(进程)在同一时刻发生
在单处理机系统中,每一时刻只有一道程序运行;
在微观上这些程序是分时交替进行的;
在多处理机系统中,程序可以实现并行;
进程和线程
程序:静态的、不能独立运行,长久存在
进程:有一组机器指令、数据和堆栈组成,能独立运行的资源分配的基本单位。短暂的、有生命期。动态的。
创建进程之后,才能实现并发。共享内存共享CPU,提高系统资源利用率,提高吞吐量。
线程:比进程更小的单位,通常把进程作为分配资源的基本单位,把进程作为独立运行和调度的基本单位。
引入线程之后,并发性能大大提高,资源利用率进一步提高。
共享sharing
系统中有限的资源不再被某个用户独占,就可以提供给多个用户共享;
共享方式:互斥共享、非互斥共享
互斥共享
一段时间内某一资源只允许一个用户使用,当使用后,其他用户才可使用。 比如打印机、扫描仪。
临界资源:在一段时间内只允许一个进程访问的资源。
非互斥共享
一个资源在一段时间内可以提供多个用户同时使用,宏观上的并行,微观上的串行。例如:CPU、内存。
并发和共享的关系
先并发,后共享。
资源共享是以并发执行为条件的,如果系统不允许并发执行,就不存在资源共享。
如果系统不对资源实施有效管理,协调好进程对共享资源的访问,就会影响程序的并发执行程度。
虚拟virtual
一个物理实体映射为若干个对应的逻辑实体
虚拟是操作系统管理系统的重要资源,可提高资源利用率
时分复用
在虚拟机处理技术中,通过多道程序设计技术,让多道程序并发执行,来分时使用处理机,此时虽然只有一个处理机但是这个处理机可以同时被多个用户使用,使得每个用户都认为有一个CPU专门为他服务。
多道程序设计技术就是把一台物理上的CPU虚拟成多个逻辑上的CPU,逻辑上的CPU我们称之为虚拟处理机;我们也把用户能感知到的CPU 称为虚拟处理机。
空分复用
空分复用技术就是通过虚拟存储技术,将一台机器的物理存储器变为虚拟存储器,以便在逻辑上扩充存储器的容量。此时,虽然物理意义上的容量可能不会很大,但是可以运行比存储容量大很多的用户程序;这种技术使得用户能感知到的内存容量比实际容量大很多,但是这是用户能感知到的内存容量是虚拟的,我们把用户能感知到的存储器称为虚拟存储器。
异步性asynchronism
异步性是指并发环境下程序的执行顺序、开始时间和执行时间是不确定的。
但是计算机的进程同步性保证无论程序的执行顺序如何、何时开始、执行时间长短多少,只要输入相同,结果相同。
操作系统的主要功能
处理机管理、存储器管理、设备管理、文件管理、用户接口
处理机管理
处理机管理的功能
完成处理机资源的分配、调度、回收等功能。
处理机调度单位为线程或进程。
由于处理机调度策略不同,出现不同类型的操作系统,比如批处理系统、分时系统、实时系统。
存储器管理
存储器管理的目标
提高内存利用率、方便用户使用、提供足够的存储空间、方便进程并发运行、完成内存的分配、保护和扩充。
存储器管理的功能
- 存储器的分配与回收
- 地址映射:逻辑地址到内存物理地址的映射
- 存储保护:保护进程间互不干扰、相互保密
- 内存扩充:通过覆盖、交换和虚拟存储的方式来提高内存利用率、扩大进程的内存空间
设备管理
设备管理的目标
方便设备使用、提高CPU与I/O设备利用率
设备管理的功能:
- 设备操作:利用设备驱动程序完成对设备的操作
- 设备独立性:提供统一的I/O设备接口,是应用程序独立于物理设备,提高可适应性,在同样的接口和操作下完成不同的内容
- 设备分配与回收:在多用户共享I/O设备资源
- 缓存区管理:匹配CPU和外设的速度,提高两者的利用率,实现主机与外设的并行。
文件(信息)管理
文件(信息)管理的目标:
解决软件资源的存储、共享、保密和保护问题。
文件(信息)管理的功能:
-
集中存储,统一的文档共享
-
权限管理,可针对用户、部门及岗位进行细粒度的权限控制,控制用户的管理、浏览、阅读、编辑、下载、删除、打印、订阅等操作。
-
锁定保护,文档作者和管理权用户可将文档锁定,确保文档不被随意修改。当文档需要修改或删除时,可以解锁,保证文档的正常操作。
-
存储加密,文件采用加密存储,防止文件扩散,全面保证企业级数据的安全性和可靠性。
-
数据备份,支持数据库备份和完整数据备份双重保护,全面保障系统内部数据安全性。用户可自行设定备份时间及位置,到达指定时刻,系统自动执行备份操作。
用户接口
用户接口的目标:
提供一个友好的用户访问操作系统的窗口
操作系统提供的两种接口:
- 系统命令接口:为用户组织和控制自己的作业运行。比如:命令行、命令脚本脱机、菜单式联机、GUI(图形用户接口)联机
- 编程接口:为用户程序和系统程序提供调用操作系统功能,涉及系统调用和高级语言库函数
操作系统的结构
模块化结构
含义
整个系统分成若干功能各异的模块,模块预先定义有接口,各模块之间只能通过这些接口进行通信,模块可以自由调用。
优点
灵活性强、运行效率高、开发过程快
缺点
- 功能划分和模块接口难以保证正确和合理,连接上有一定困难
- 模块之间的依赖关系复杂,降低了模块之间的相对独立性,可能会造成循环依赖,不利于修改,具有高耦合性。
模块的独立性
在划分模块是,要注意模块的独立性。
评判模块独立性的两个标准:
内聚性,指模块内部各部分间联系的紧密程度。内聚性越高,模块的独立性越强。
耦合度,指模块间相互联系和相互影响的程度。显然,耦合度越低,模块的独立性越好。
典型的模块化操作系统:UNIX系统
分层式结构
含义
将系统按照层次结构划分为若干“层”。某一层次上代码只能调用低层次的代码,使模块间的调用有序化。系统每加一层,就构成一个比原来功能更强的虚拟机。
优点
- 功能明确,调用关系清晰(高层对低层单向依赖),有利于保证设计和实现的正确性
- 低层和高层可分别实现(便于扩充),高层的错误不会影响到低层,可以避免递归调用(不会死锁)
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
缺点
降低了运行效率,各系统对具体划分了多少层有不同看法
微内核OS
微内核:内核尽量保持小,只实现操作系统的基本功能
基本思想
将更多的操作系统功能放在核心之外,作为独立的服务进程运行
典型应用
客户机模式/服务器模式
优点
- 良好的扩充性:只需添加支持新功能的服务进程即可
- 可靠性好:模块相互隔离,调用关系明确,执行转移不易混乱
- 便于网络服务,实现分布式处理:以同样的调用形式,在下层可通过核心中的网络传送到远方服务器上
缺点
消息传递比直接调用效率要低一些(但可以通过提高硬件性能来补偿)