第一章 计算机系统概述
操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理的组织、调度计算机的工作与资源的分配,进而为用户和其它软件提供方便接口与环境的程序集合。
操作系统的基本特征:并发、共享、虚拟、异步。
并发是指两个或多个事件在同一时间间隔内发生
并行是指系统据有同时进行运算或操作的特性,在同一时刻能完成两种或两种以上的工作。
共享:系统中的资源可供内存中多个并发执行的进程共同使用。(1、互斥共享方式 2、同时访问方式)
虚拟:把一个物理上的实体变为若干逻辑上的对应物。
异步:多道程序环境下,系统允许多个进程并发执行。
i.由于资源等因素的限制,使进程的执行通常都不能一气呵成,而是采用走走停停的方式运行。
ii.进程是以人们不可预知的速度向前推进的,即进程的异步性。
并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件:1、资源共享是以程序的并发为条件的,若系统不允许程序并发执行,则自然不存在资源共享的问题;2、若系统不能对资源共享实施有效的管理,则必将影响到程序的并发执行,甚至根本无法并发执行。
操作系统的主要目标是:方便性,有效性,可扩充性,开放性。
方便性是配置了OS使计算机变得易学易用。
有效性:提高系统资源利用率,提高系统吞吐量。
可扩充性:从无结构到模块化结构,又到层次化结构
开放性:兼容。能遵循世界标准规范。
操作系统的主要功能:
处理机管理功能
(1)创建和撤销进程,对进程的运行进行协调,实现进程之间的信息交换,按照一定的算法把处理机分配给进程。
①进程控制
②进程同步
③进程通信
④调度
1)作业调度
2)进程调度
存储器管理功能
(1)为多道程序的运行提供良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内存,具有内存分配和回收,内存保护,地址映射,内存扩充的功能
设备管理功能
(1)完成用户进程提出的I/O请求,为用户进程分配所需要的I/O设备,完成指定的I/O操作
(2)提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备
①缓冲管理
②设备分配
③设备处理
文件管理功能
(1)对用户文件和系统文件进行管理以方便用户使用,保证文件的安全性
①文件存储空间管理
②目录管理
③文件的读/写管理和保护
操作系统与用户之间的接口
(1)用户接口
(2)程序接口
操作系统用作扩充机器
操作系统的发展:
单批道处理系统 20世纪50年代中期
处理过程:内存中始终保持一道作业。
特征:自动性、顺序性、单道性
解决人机矛盾和CPU与I/O设备速度不匹配,提高系统资源利用率和系统吞吐量(单位时间系统完成作业的数目)
缺点:系统中的资源得不到充分利用。
多批道处理系统 20世纪60年代
特点:1.多道性2.成批处理交互性3.无序性4.调度性
优点:1.资源利用率高,CPU处于忙碌状态2.系统吞吐量大3.提高I/O设备的利用率
缺点:1.平准周转时间长2.无交互能力
待解决的问题:1.处理机争用问题2.内存分配问题3.I/O设备分配问题4.文件的组织和管理问题5.作业管理问题6.用户与系统的接口问题
分时系统 60年代中期
a.提高资源利用率
b.提高系统吞吐量
表现:1.人机交互2.共享主机3.便于用户上机
分时系统的特征:1.多路性2.独立性3.及时性4.交互性
实时系统 60年代中
特点:及时性要求高,系统可靠性高(时间是关键参数)
实时任务类型:
(1).周期性实时任务和非周期性实时任务
(2)硬实时任务和软实时任务
优点:
实时系统必须和先进的技术装备相结合
a.对外部请求在严格时间范围内做出反应
b.高可靠性
c.安全性
d.完整性
系统调用按功能大致分为:
设备管理、文件管理、进程控制、进程通信、内存管理(系统调用运行在核心态)
注:若程序的运行由用户态转到核心态,则会用到访管指令,访管指令是在用户态使用的,所以它不可能是特权指令。
第二章 进程控制
前趋图:有向无环图
程序的顺序执行
特征
(1)顺序性:
①指处理机严格地按照程序所规定的顺序执行,每一操作必须在下一个操作之前结束
(2)封闭性:
①程序在封闭的环境下运行,运行时独占全机资源
②资源的状态(初始状态除外)只有本程序才能改变它
③一旦程序开始执行,其执行结果不受外界因素的影响
(3)可再现性:
①只要程序执行时的环境和初始条件相同,当程序重复执行时,不论如何都可获得相同的结果
程序的并发执行
对于不存在前趋关系的程序之间才有可能并发执行
特征:
(1)间断性
(2)失去封闭性
(3)不可再现性
进程的描述
1.定义和特征
(1)由程序段,相关的数据段和PCB构成进程实体(进程映像)简称进程。
(2)PCB是OS种最重要的记录型数据结构
(3)定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
(4)特征:程序段+数据段+PCB
①动态性,是进程的基本特征
②并发性,指多个进程实体同存于内存中,且能在一段时间内同时运行
③独立性,指进实体是一个独立运行,独立获得资源和独立接受调度的基本单位
④异步性,按照各自独立,不可预知的速度向前推进,其产生的结果不可再现。
PCB的作用
为了便于系统描述和管理进程的进行,在OS核心为每个进程专门定义了一个数据结构——PCB
作用是使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的过程
①作为独立运行基本单位的标志(PCB已成为进程存在于系统中的唯一标志)
②能实现间断性运行方式
③提供进程管理所需要的信息
④提供进程调度所需要的信息
⑤实现与其他进程的同步与通信
进程块中的信息
①进程标识符
1)外部标识符
2)内部标识符
②处理机状态
1)通用寄存器
2)指令计数器
3)程序状态字PSW
4)用户栈指针
处理机状态信息都必须保存于相应的PCB中
③进程调度信息
1)进程当前状态
2)进程优先级
3)进程调度所需其他信息
4)事件(阻塞原因)
④ 进程控制信息(管理协调)
1)程序和数据地址
2)进程同步和通信机制
进程控制块的组织方式
①线性方式(将该表的首址存放在内存的一个专用区域中,适合进程数目不多的系统)
②链式方式(适用广泛,具有相同状态的链接字链接成一个队列)
1)处于阻塞状态进程的PCB根据其阻塞原因的不同,排列成多个阻塞队列
(阻塞队列原因是挂在阻塞资源上)
③索引方式
1)即系统根据所有状态的不同,建立几张索引表,并把各索引表在内存的首地址记录在内存的一些专用单元中
2)每个索引表的表目中,记录具有相应状态的某个PCB在PCB表中的地址
3)索引表是队列的一种形式
进程控制一般是由OS内核中的原语来实现
原语:由若干条机器指令构成,用以完成特定功能的一段程序
操作系统内核
通常将一些与硬件紧密相关的模块,常用设备的驱动程序以及运行频率较高的模块,将他们常驻内存,即被称为OS的内核
目的:
一方面便于对这些软件进行保护,放置遭受其他应用程序的破坏
另一方面可以提高OS的运行效率
为了防止OS本身以及关键数据被破坏,通常将处理机的执行状态分为系统态和用户态,一般情况应用程序只在用户态运行,防止应用程序对OS的破坏
功能:
①支撑功能
1)中断处理
2)时钟管理
3)原语操作(在系统态下执行,常驻内存)
②资源管理功能
1)进程管理
2)存储器管理
3)设备管理
进程的创建
进程的层次结构
允许一个进程创建另一个进程的叫父进程,被创建的叫子进程,子进程可以创建更多的孙进程。
进程图——进程树
引起创建进程的事件
为使程序之间并发执行,先分别为他们创建进程。典型事件四类:
① 用户登录
② 作业调度
③ 提供服务
④ 应用请求
进程的创建
OS调用进程原语Creat 创建一个新进程
①申请空白PCB,并获得唯一数字标识符,从PCB集合中索取一个空白PCB
②为新进程分配其所需要的物理和逻辑资源,如内存,文件,I/O设备和CPU空间等
③初始化进程控制块
④如果进程就绪队列能够接纳新进程,便将新进程插入就绪队列
进程的终止
引进进程终止的事件
引起原因:
①正常结束,表示进程的任务已经完成,准备退出运行,terminal指令
②异常结束,进程在运行时发生了某种异常事件,使程序无法继续运行
1)越界错
2)保护错
3)非法指令
4)特权指令错
5)运行超时
6)算数运算错
7)I/O故障
③外界干预 进程应外界请求而终止运行
1)操作员或操作系统干预
2)父进程请求
进程的终止过程
系统中发生了要求终止进程的某事件,OS便调用进程终止原语
PCB从所在队列(链表)中移出
进程的阻塞与唤醒
引起进程阻塞或被唤醒的事件:
1.向系统请求共享资源失败
2.等待某种操作的完成
3.新数据尚未到达
4.等待新任务的到达
进程同步
进程同步基本概念:
是对多个相关进程在执行次序上进行协调,使并发执行的诸进程之间能按照一定的规则(时序)共享系统资源,并相互合作,使程序的执行具有可再现性。
间接相互制约:由于共享系统资源,多个进程互斥访问。
直接相互制约:就是同步,一些进程像“前趋图”一样相互合作。
临界资源:
共享的外设,内存表格,硬件等都属于临界资源
临界区:
每个进程中访问临界资源的那段代码称为临界区。
(如果某一临界资源正在被某一进程访问,则本进程不能进去临界区)
同步机制应遵循的原则(临界区调用原则):
①空闲让进
②忙则等待
③有限等待
④让权等待