操作系统
一、基本概念
-
计算机软件通常分为系统软件和应用软件
-
计算机系统资源分为硬件资源(中央处理机、存储器和输入/输出设备等物理设备)和软件资源(以文件形式保存在存储器上的程序和数据等信息)
-
操作系统定义:能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口
-
作用:通过资源管理提高计算机系统的效率;改善人机界面向用户提供友好的工作环境
-
特征:并发性、共享性、虚拟性和不确定性
-
功能:进程管理;文件管理;存储管理;设备管理和作业管理
二、操作系统分类
-
批处理操作系统:
-
单道批处理(作业由用户程序、数据和作业说明书三部分组成)
-
多道批处理(允许多个作业装入内存执行,特点:多道,宏观上并行运行、微观上串行运行)
-
分时操作系统:将CPU的工时划分为许多个很短的时间片,轮流为各个终端的用户服务
- 特点:多路性、独立性、交互性和及时性
-
-
实时操作系统:
-
实时控制系统:用于生产过程的自动控制,例如数据自动采集
-
实时信息处理系统:用于对实时信息处理,例如飞机订票系统
-
操作系统分类 | 系统的设计目标 | 交互性的强弱 | 响应时间的敏感程度 |
---|---|---|---|
分时操作系统 | 多用户的通用系统 | 交互能力强 | 以用户能接受的等待时间为设计依据 |
实时系统 | 大多都是专用系统 | 仅操作并访问有限的专用程序 交互能力差 | 以被测物体所能接受的延迟为设计依据 更强 |
-
网络操作系统:是使联网计算机能方便而有效地共享网络资源,为网络用户提供各种服务的软件和有关协议的集合
-
功能:高效、可靠的网络通信;对网络中共享资源的有效管理;提供电子邮件、文件传输、共享硬盘和打印机服务;网络安全管理;提供互操作能力
-
特征:硬件独立性、多用户支持等
-
分类:集中模式(UNIX);客户端/服务器模式(客户端是用于本地处理和访问服务器的站点);对等模式(既可作为客户端去访问其他站点,又可作为服务器想其他站点提供服务)
-
-
分布式操作系统:为分布式计算机系统配置的操作系统
- 特性:透明性、可靠性和高性能等
-
微型计算机操作系统
- 常用:windows,mac os,Linux
-
嵌入式操作系统
- 特点:微型化;可定制;实时性(只要用于过程控制、数据采集、传输通信等,对实时性要求高);可靠性;易移植性
三、进程管理
1. 基本概念:
-
进程管理也称为处理机管理。进程是资源分配和独立运行的基本单位
-
程序与进程
- 程序顺序执行的特征:顺序性、封闭性和可再现性。例如 输入–>计算–>输出,输入是计算的前驱,输出是计算的后继。前驱图是一个有向无循环图
- 程序并发执行的特征:1. 失去了程序的封闭性;2.程序和机器的执行程序的活动不再一一对应;3.并发程序间的相互制约性
-
进程的组成:程序(描述了进程需要完成的功能)、数据(包括程序执行时所需的数据及工作区)和进程控制块(PCB,PCB是进程存在的唯一标志)
2. 进程的状态(三态模型):
-
运行
-
就绪
-
阻塞
-
状态转换
3. 进程的控制:
是对系统中的所有进程从创建到消亡的全过程实施有效地控制
4. 进程间的通信:
- 同步与互斥:同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题
- PV操作时实现进程同步与互斥的常用方法,P操作表示申请一个资源,V操作表示释放一个资源,属于低级通信方式(编程难度大,通信对用户不透明,效率低)
- 高级通信方式:共享存储模式、消息传递模式和管道通信
5. 管程:一种同步机制
- 基本思想:采用资源集中管理的方法,将系统中的资源用某种数据结构抽象地表示出来。
- 组成:由一些共享数据、一组能为并发进程所执行的作用在共享数据上的操作的集合、初始代码以及存储权组成。管程实现同步机制由“条件结构”所提供。
- 结构:每一个管程都要有一个名字以供标识
6. 进程调度
-
进程调度方式:是指当有更高优先级的进程到来时如何分配CPU。分为可剥夺和不可剥夺两种
-
三级调度:高级调度(长调度,作业调度或接纳调度。决定处于输入池中的哪个后备作业可以调入主系统成为就绪进程,系统中一个作业只需经过一次高级调度);中级调度(决定交换区中的哪个就绪进程可以调入内存);低级调度(决定内存中的哪个就绪金晨可以占用CPU,是操作系统中最重要的调度程序)
-
调度算法:先来先服务(FCFS)(主要用于宏观调度。有利于CPU繁忙不利于IO繁忙的作业);时间片轮转(主要用于微观调度,提高资源利用率;有固定时间片和可变时间片);优先级调度(静态优先级和动态优先级);多级反馈调度算法(时间片轮转和优先级算法的综合,优点如下:
- 照顾短进程提高系统吞吐量、缩短了平均周转时间;
- 照顾I/O型进程以获得较好的I/O设备利用率和缩短响应时间
- 不必估计进程的执行时间,动态调节优先级
-
进程优先级:
- 对于I/O型进程,让其进入最高优先级队列
- 对于计算型进程,每次都执行完时间片后进入更低级队列
- 对于I/O次数不多,主要是CPU处理的进程,在I/O完成后,返回优先I/O请求时离开的队列
- 为适应一个进程在不同时间段的运行特点,I/O完成时,提高优先级;时间片用完成,降低优先级
7. 死锁
- 定义:指两个以上的进程互相都要求对方已经占有的资源导致无法继续运行下去的现象
- 举例:进程推进顺序不当引起死锁;同类资源分配不当引起死锁(资源数小于进程所要求的总数;采用分配策略是轮流的为每个进程分配);PV操作使用不当引起死锁
- 产生原因:为竞争资源及进程推进顺序非法。
- 必要条件:互斥条件、请求保持条件、不可剥夺条件和环路条件
- 死锁处理:
- 鸵鸟策略(即不理睬策略)
- 预防策略:采用某种策略(预先静态分配法、资源有序分配法)限制并发进程对资源的请求,破坏死锁产生的必要条件之一
- 避免策略:银行家算法
- 检测与解除死锁:解除方法(资源剥夺发和撤销进程法)
8. 线程
- 线程是进程中的一个实体,作为调度和分配的基本单位,进程作为独立分配资源的单位。用户可以通过创建线程来完成任务,以减少程序并发执行时付出的时空开销
- 基本状态:就绪、运行和阻塞
- 分类:用户级线程(不利用系统调用来实现)和内核支持线程(利用系统调用来实现)
- 不论是系统进程还是用户进程,在进行切换时,都要依赖于内核中的进程调度