操作系统是配置在计算机硬件上的第一次软件,是对硬件的首次扩充
OS是现代计算机系统中最基本和最重要的系统软件。
1.1.1操作系统的目标
实现:方便性有效性可扩充性开放性
有效性的两层含义:1.提高系统资源的利用率2.提高系统的吞吐量
方便性和有效性是设计OS时的最重要的两个目标
可扩充性:OS从早期的无结构发展成模块化结构,进而发展成分层式结构,近年来OS已广泛采用微内核结构
开放性:遵循开放系统互连参考模型
1.1.2操作系统的作用
1.OS作为用户与计算机硬件系统之间的接口
用户通过3种方式使用计算机:命令方式、系统调用方式 、图形/窗口方式来实现自身与OS的通信,并取得OS服务
OS作为计算机系统资源的管理者
在一个计算机系统中,通常含有多种硬件和软控资源,归纳起来分4类:
处理机、存储器、I/O设备以及信息
OS实现了计算机资源的抽象
对于一个完全无软件的计算机系统,它向用户提供的仅是硬件接口(物理接口),用户必须对物理接口的实现细节有冲分的了解,这使得这物理机器难以被用户方便调用
在裸机上铺设I/O软件,隐藏I/O设备的具体细节,把覆盖了上述软件的I/O设备称为扩充机器或虚机器
1.1.3推动操作系统发展的主要动力
不断提高计算机系统资源的利用率
方便用户
器件不断更新换代
计算机体系结构的不断发展
不断提出新的应用需求
1.2操作系统的发展过程
20世纪50年代中期,出现第一个批处理系统,
20时间60年代中期,开发出多道批处理系统
不久又推出了分时系统,同时用于工业控制和武器控制的实时系统也相继问世
20世纪70-90年代,是VLSI和计算机体系结构大发展的年代,开发出来微机OS、多处理机OS、网络OS和分布式OS。
1.2.1未配置操作系统的计算机系统
从1945年诞生的第一台计算机,到20世纪50年代中期所出现的计算机,都属于第一代计算机,此时还未有OS,对计算机的全部操作都是由用户采取人工操作方式进行。
1.人工操作方式
人工操作方式的两个缺点:
用户独占全机
CPU等待人工操作
人工操作方式严重降低了计算机资源的利用率,此即所谓的人际矛盾。
2.脱机I/O方式
为解决人机矛盾以及CPU和I/O设备之间速度不匹配的矛盾,20世纪50年代末出现了脱机I/O技术
主要优点:
减少了CPU的空闲时间
提高了I/O速度
1.2.2单道批处理系统
20世纪50年代中期,出现了第二代晶体管计算机,为了充分提高计算机的利用率,应尽量保持系统连续运行
缺点:系统中的资源得不到充分利用,此外,I/O设备的低速性也使CPU的利用率显著降低
1.2.3多道批处理系统
20世纪60年代中期,IBM公司生产了第一台小规模集成电路计算机IBM360(第三代计算机),并为它开发了OS/360,这是第一个能运行多道程序的批处理系统。
优缺点:
资源利用率高
系统吞吐量大(1 和2 是多道批处理系统形成和发展的主要动力)
平均周转时间长
无交互能力
多道批处理系统是一种十分有效但又非常复杂的系统,它必须解决下述一些列问题:
争用处理机问题
内存分配与保护问题
I/O设备分配问题
文件的组织与管理问题
作业管理问题
用户与系统的接口问题
OS:OS是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合
1.2.4分时系统
为了满足用户对人机交换的需求,具体表现为:1.人机交换 2.共享主机
其实现过程中的关键问题:1.及时接收 2.及时处理
分时系统的特征:
多路性
独立性
及时性
交互性
1.2.5实时系统
最主要的特征是将时间作为关键参数,对所接收的某些信号做出“及时”或“实时”的反应
实时系统的类型
工业控制系统
信息查询系统
多媒体系统
嵌入式系统
实时任务的类型
周期性实时任务和非周期性实时任务
硬实时任务和软实时任务
实时系统和分时系统特征的比较:
(1)多路性
(2)独立性
(3)及时性
(4)交互性
(5)可靠性
1.2.6微机操作系统
配置在微机(微型计算机的简称,也称作微型机、微电脑,是由大规模集成电路组成的、体积较小的电子计算机。它是以微处理器为基础)上的OS称为微机OS,使用者通常为个人,因此也被称为个人计算机。
微机OS可按微机的字长来分,例如16字长是指CPU一次能够并行处理16个二进制位
微机可按运行方式分
单用户单任务OS,如CP/M(8位)和MS-DOS(16位)
单用户多任务OS,如Windows 3.1 、Windows 95/98
多用户多任务OS,如UNIX系统,Windows NT/Sever系列的系统
1.2.7嵌入式操作系统
特点:
系统内核小
系统精简
实时性高
具有可配置性
1.2.8网络操作系统
网络OS的特征:
硬件独立性
接口一致性
资源透明性
系统可靠性
执行并行性
1.2.9分布式操作系统
分布式系统
是基于软件实现的一种多处理机系统
主要特征:分布性透明性同一性全局性
分布式OS处理涵盖单处理机OS的主要功能外,还应包括一下功能:
通信管理功能
资源管理功能
进程管理功能
1.3操作系统的基本特性:并发、共享、虚拟、异步
1.3.1并发
并行:两个或多个事件在同一时刻发生;
并发:两个或多个事件在同一时间间隔内发生
进程:是指在系统中能独立运行并能作为资源分配对象的基本单位,是由一组机器指令、数据和堆栈等组成。
进程和并发是现代OS中最重要的基本概念,也是OS运行的基础
1.3.2共享
互斥共享方式
同时共享方式
1.3.3虚拟
在OS中利用时分复用和空分复用技术来实现“虚拟”。
时分复用技术
在计算机领域,广泛利用时分复用技术来实现虚拟处理机、虚拟设备等,以提高资源的利用率,其根本原因在于,它会令设备在为一个用户服务的空闲时间转去为其他用户服务,进而使设备得到最充分的利用。
虚拟处理机技术
虚拟设备技术
空分复用技术
1.3.4异步
1.4操作系统的运行环境
1.4.2操作系统内核
技术
大多数OS内核包含以下两类功能:
支撑功能
中断处理:是内核最基本的功能,是整个OS赖以活动的基础
时钟管理
原语操作:所谓原语,就是由若干条指令组成,用于完成一定功能的一个过程。
资源管理功能
进程管理
存储器管理
设备管理
1.4.3处理机的双重工作模式
用户态和内核态
1.4.4中断与异常
现代OS是中断驱动的。
中断是硬件通过系统总线发送信号到CPU来触发的。
1.5操作系统的主要功能
1.5.1处理机管理功能
进程控制
进程同步:有两种协调方式:进程互斥方式、进程同步方式
进程通信
调度:作业调度和进程调度
1.5.2存储器管理功能
内存分配和回收:内存分配有两种方式:1.静态分配方式 2.动态分配方式
内存保护:确保每道用户程序都仅在自己的内存空间中运行和绝不允许用户程序访问OS的程序和数据
地址映射
内存扩充
1.5.3设备管理功能
缓冲管理
设备分配
设备处理
1.5.4文件管理功能
文件存储空间管理
目录管理
文件的读/写管理和保护
1.5.5接口管理
用户接口
程序接口
1.5.6现代操作系统的新功能
保障系统安全
支持用户通过互联网获取服务
可处理多媒体信息
1.6操作系统的结构
1.6.1简单结构
1.6.2模块化结构
1.6.3分层式结构
1.6.4微内核结构
1.6.5外核结构
1.7系统调用
进程控制类系统调用
文件操纵类系统调用
进程通信类系统调用
进程的描述与控制
在传统的OS中,资源的分配和独立运行的基本单位都是进程,OS所具有的四大特征也都是基于进程而形成的。
2.1前驱图
是指一个有向无环图,它用于描述进程之间执行的先后顺序
程序顺序执行时的特征:
顺序性
封闭性
可再现性
程序并发执行时的特征
间断性
失去封闭性
不可再现性
2.2进程的描述
为了使参与并发执行的每个程序(含数据)都能独立地运行,在OS中必须为之配置一个专门的数据结构,称之为进程控制块(PCB).
由程序段,相关的数据段和PCB这3部分便构成了进程实体(又称为进程映像)。
一般情况下,我们把进程实体简称为进程,例如,创建进程,实质上是创建进程的PCB;撤销进程,实质上是指撤销进程的PCB
进程的特征:
动态性(最基本的特征)
并发性
独立性
异步性
2.2.2进程的基本状态与转换
进程的3种基本状态(至少处于这3种状态之一):
就绪状态
执行状态
阻塞状态
进程3种基本状态间的转换
创建状态和终止状态
2.2.3挂起操作和进程状态的转换
挂起操作的引入
为了满足终端用户的需要
父进程的需要
负荷调节的需要
OS的需要
引入挂起操作后进程3个基本状态间的转换
引入挂起操作后进程5个基本状态间的转换
2.2.4进程管理中的数据结构
OS管理这些控制表一般可分为以下4类:内存表 设备表 文件表 和用于进程管理的进程表,通常进程表又称为PCB
PCB的作用:使一个多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位
作为独立运行基本单位的标志
实现间断性运行方式
提供进程管理所需要的信息
提供进程调度所需要的信息
实现与其他进程的同步与通信
PCB中的信息
进程标识符:用于唯一地标志一个进程,一个进程通常有两种标识符
外部标识符
内部标识符
处理机状态
进程调度信息
进程控制信息
PCB的组织方式
常用有以下3种:
线性方式
链接方式
索引方式
2.3进程控制(一般由os内核中的原语来实现的)
2.3.1进程的创建
1.在os中,允许一个进程创建另一个进程,通常把创建进程的进程称为父进程,而把被创建的进程称为子进程
2.进程图:用于描述进程间关系的一棵有向树
3.引起进程创建的事件:
用户登录
作用调度
提供服务
应用请求
4.进程的创建
(1)申请空白PCB
(2)为新进程分配其运行所需的资源
(3)初始化PCB
(4)如果进程就绪队列能够接纳新进程,就将新进程插入就绪队列
2.3.2进程的终止
引起进程终止的事件
正常结束
异常结束
外界干预
进程的终止过程
os调用进程终止原语
2.3.3进程的阻塞与唤醒
引起进程阻塞与唤醒的事件
向系统请求共享资源失败
等待某种操作的完成
新数据尚未到达
等待新任务的到达
进程阻塞过程
进程唤醒过程
2.3.4进程的挂起与激活
进程的挂起
OS利用挂起原语suspend
进程的激活
OS利用激活原语active
2.4进程通信
是指进程之间的信息交换,通常有低级和高级之分
2.4.1进程的通信类型
高级通信机制可归结4类:共享存储器系统 管道通信系统 消息传递系统 以及客户机-服务器系统
共享存储器系统
又可分为以下两种类型:
基于共享数据结构的通信方式
基于共享存储区的通信方式
管道通信系统
管道,是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件。又名pipe文件
管道机制必须提供以下3方面的协调能力:1互斥 2同步 3确定对方是否存在
消息传递系统
又分为两类:直接通信方式和间接通信方式
客户机-服务器系统
当前主流的通信机制,主要实现方法分为3类:套接字 远程过程调用和远程方法调用
2.4.2消息传递通信的实现方式
直接通信(直接消息传递系统)
直接通信原语
1对称寻址方式
2非对称寻址方式
消息的格式
进程的同步方式
通信链路:单向和双向
间接通信(信箱通信)
信箱的结构:信箱头信箱体
信箱通信原语
信箱的类型
1私用信箱
2公用信箱
3共享信箱
2.5线程的概念
如果说os中引入进程的目的是使多个程序能并发执行,以提高资源利用率和系统吞吐量
那么,在os中引入线程,则是为了减少程序在并发执行时所付出的时空开销,以使os具有更好的并发性
2.5.1线程的引入
1.进程的两个基本属性:进程是一个可拥有资源的独立单位 进程是一个可独立调度和分配的基本单位
2.进程是一个资源的拥有者,因而在创建 撤销和切换中,系统必须为之付出较大的时空开销
线程---作为调度和分派的基本单位
2.5.2线程与进程的比较
线程具有传统进程所具有的很多特征,因此又称为轻型进程或进程元;相应地,把传统进程称为重型进程
调度的基本单位
并发性
不仅进程之间可以并发执行,在一个进程中的多个线程之间也可并发执行
拥有资源
进程可以拥有资源,线程可以说几乎不拥有资源
独立性
同一进程中的不同线程之间的独立性,要比不同进程之间的独立性低得多
系统开销
线程的切换代价远低于进程
支持多处理机系统
2.5.3线程状态和线程控制块
线程执行的3个状态
执行状态
就绪状态
阻塞状态
线程控制块(TCB)
多线程os中的进程属性
进程是一个可拥有资源的基本单位
多个线程可并发执行
进程已不是可执行的实体
2.6线程的实现
2.6.1线程的实现方式
内核支持线程(KST)
用户级线程(ULT)
2.6.2线程的具体实现
2.6.3线程的创建与终止
处理机调度与死锁
当一个进程申请某个资源时,如果没有可用资源,那么该进程就会变成等待状态;若所有申请的资源被其他等待进程占有,那么该等待进程有可能再也无法改变状态,这种情况称为死锁。
3.1处理机调度概述
在多道程序系统中,调度的实质是一种资源分配,处理机调度是对处理机进行分配。
3.1.1处理机调度的层次
高级调度
又称为长程调度或作业调度,它的调度对象是作业;主要用于多道批处理系统中,而在分时系统和实时系统中,不设置高级调度
低级调度
又称为短程调度或进程调度,它的调度对象是进程;低级调度是最基本的一种调度,在多道批处理、分时和实时这3种系统种,都必须配置这种调度。
中级调度
又称为内存调度,引入它的目的是提高内存利用率和系统吞吐量
在上述3种调度中,低级调度的运行频率最高