第1章操作系统引论参考书:操作系统——精髓与设计原理第五版WilliamStalling著操作系统原理与设计曹先彬陈兰香编操作系统第二版孟庆昌牛欣源编本章内容提要■计算机硬件结构■什么是操作系统●操作系统概念●操作系统的主要功能●操作系统的地位■操作系统的发展历程■操作系统的类型■操作系统的特征■操作系统结构设计1.1计算机硬件结构计算机系统是由硬件和软件组成的硬件是软件建立与活动的基础软件是对硬件进行管理和功能扩充计算机硬件结构由五大功能部件组成,即:运算器、控制器、存储器、输入设备和输出设备。它们经由系统总线连接在一起,实现彼此通信。现代计算机硬件结构1.1.1处理器■CPU工作的基本周期是:提取指令,译码分析,执行指令每个CPU可以执行的指令集是专用的■所有CPU都包含某些寄存器●通用寄存器●专用寄存器●程序计数器●栈指针●PSW(程序状态字)■两种处理机执行状态★核心态◎用户态1.1.2存储器寄存器高速缓存内存磁盘磁带1.1.3I/O设备通常由控制器和设备本身两部分组成控制器设备设备驱动程序1.1.4总线总线分类数据总线地址总线控制总线1.2什么是操作系统1.2.1操作系统概念1.操作系统作为扩展机器●把硬件细节与程序员隔离开,隐藏了底层硬件的特性●功能更强、使用更方便2.操作系统作为资源管理器监视各种资源,随时记录它们的状态;实施某种策略以决定谁获得资源,何时获得,获得多少;分配资源供需求者使用;回收资源,以便再分配。3.操作系统的用户观点和系统观点定义:操作系统是控制和管理计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。①操作系统是系统软件②基本职能是控制和管理系统内各种资源,有效地组织多道程序的运行③提供众多服务,方便用户使用,扩充硬件功能1.2.2操作系统的主要功能1.存储管理内存分配地址映射内存保护内存扩充1.2.2操作系统的主要功能2.作业和进程管理作业和进程调度进程控制进程通信1.2.2操作系统的主要功能3.设备管理缓冲区管理设备分配设备驱动设备无关性1.2.2操作系统的主要功能4.文件管理功能文件存储空间的管理文件操作的一般管理目录管理文件的读/写管理和存取控制1.2.2操作系统的主要功能5.用户接口●程序接口●命令行接口●图形用户接口(GUI)1.2.3操作系统的地位计算机系统的层次关系简言之,软件是计算机执行的程序软件通常可分为三大类●应用软件●支撑软件●系统软件操作系统是裸机之上的第1层软件,它只在核心态模式下运行。通常把经过软件扩充功能后的机器称为“虚拟机”1.3操作系统的发展历程1.3.1操作系统的形成1.手工操作阶段2.早期批处理阶段●早期联机批处理●早期脱机批处理3.多道批处理系统多道批处理系统●多道程序设计:在内存中同时存放多道程序,在管理程序的控制下交替地执行。这些作业共享CPU和系统中的其他资源。●并发:多道程序在CPU上交替运行●系统吞吐量:在一段给定的时间内,计算机所能完成的总工作量。1.3.2操作系统的发展1.3.3推动操作系统发展的动力硬件技术更新应用需求扩大1.4操作系统的类型5大基本类型批处理系统分时系统实时系统网络系统分布式系统1.4.1批处理系统1.作业是用户定义的、由计算机完成的工作单位。它通常包括一组计算机程序、文件和对操作系统的控制语句。作业步由作业控制语句明确标识的计算机程序的执行过程2.工作流程多道批处理系统中的作业流程批处理系统3.特点●多道:系统在内存中存放多个作业,并且在外存上还保存大量的后备作业。●成批:系统按批次调度作业,而在系统运行过程中不允许用户和机器之间发生交互作用。批处理系统的主要优点:①系统资源利用率高②系统吞吐量大明显缺点:①用户作业的等待时间长②没有交互能力1.4.2分时系统1.分时概念和分时系统的实现方法分时:广义上,是指对时间的共享。●在分时系统中,分时主要是指若干并发程序对CPU时间的共享并行:是指在同一时刻有两个或两个以上的活动发生。时间片分时系统2.分时系统的特征和优点基本特征●同时性●交互性●独立性●及时性主要优点●人机交互友好●应用方便●资源共享1.4.3实时系统1.实时系统的引入实时系统具有实时特性,能够支持实时控制系统工作的操作系统。●重要特征:对时间有严格限制和要求三种典型应用形式▲过程控制系统▲信息查询系统▲事务处理系统2.实时系统与分时系统的差别交互性实时性可靠性实时系统3.实现方式●硬式实时系统对时间严格约束●软式实时系统对时间限制稍弱一些1.4.4网络操作系统1.计算机网络的特征●分布性●自治性●互连性●可见性2.网络操作系统●服务器客户机●网络操作系统——实现网络通信、资源共享和保护,以及提供网络服务和网络接口等本地操作系统——完成本地资源的管理和服务功能●客户-服务器模式●Sun公司的NFSNovell公司的Netware5.0Microsoft公司的WindowsNTServer4.0IBM公司的LANServer4.0SCO公司的UNIXWare7.1自由软件Linux3.网络操作系统的特性接口一致性资源透明性操作可靠性处理自主性执行并行性1.4.5分布式操作系统分布式系统特点●透明性●灵活性●可靠性●高性能●可扩充性1.4.6其他操作系统1.个人机系统WindowsXP、WindowsVista、UNIX、Linux2.多处理器系统对称多处理(SMP)系统●增加吞吐量●提高性能/价格比●提高可靠性3.嵌入式系统1.5操作系统的特征(1)并发两个或多个活动在同一给定的时间间隔中进行。(2)共享计算机系统中的资源被多个进程所共用。(3)不确定性系统中各种事件发生顺序的不可预测性。1.6操作系统结构设计1.6.1整体系统●任意调用,耦合紧密,实现的效率高▲结构关系不清晰,系统的可靠性降低模块调用示意图1.6.2层次式系统THE操作系统的层次结构●具有整体系统的长处●新优点——结构关系清晰,提高系统的可靠性、可移植性和可维护性。1.6.3虚拟机结构带CMS的VM/370结构●通过共享物理机器资源来实现●主要优点★同时运行多个操作系统★系统安全,有效地保护系统资源★提供良好的工作环境★组建虚拟网络1.6.4客户-服务器系统客户-服务器系统模型●微内核客户-服务器系统●适于在分布式系统中应用分布式系统中的客户-服务器模型第2章进程和线程本章内容提要进程概念进程的状态和组成进程管理线程进程的同步和通信经典进程同步问题管程进程通信2.1进程概念2.1.1多道程序设计1.顺序程序活动的特点●顺序性●封闭性●可再现性2.多道程序设计■程序并发执行●提高系统资源利用率●增加作业吞吐量多道程序设计3.程序并发执行的特征①失去封闭性②程序与计算不再一一对应③并发程序在执行期间相互制约2.1.2进程概念1.进程概念的引入多道程序并发执行所引发的一系列新情况2.进程概念●进程最根本的属性是动态性和并发性进程定义:程序在并发环境中的执行过程进程和程序的区别(1)动态性(2)并发性(3)非对应性(4)异步性进程概念3.进程的基本特征(1)动态性(2)并发性(3)调度性2.2进程的状态和组成2.2.1进程的状态及其转换1.进程的基本状态●运行状态(Running)●就绪状态(Ready)●阻塞状态(Blocked)进程的5种基本状态及其转换2.进程状态的转换(1)新建→就绪(2)就绪→运行(3)运行→阻塞(4)阻塞→就绪(5)运行→就绪(6)运行→终止2.2.2进程描述1.进程映像进程映像通常就由程序、数据集合、栈和PCB等4部分组成进程映像模型进程描述2.进程控制块的组成进程控制块(PCB)也称进程描述块(ProcessDescriptor),它是进程组成中最关键的部分,其中含有进程的描述信息和控制信息,是进程动态特性的集中反映,是系统对进程施行识别和控制的依据。进程描述进程控制块应包含的主要内容:进程名特征信息进程状态信息调度优先权通信信息现场保护区资源需求进程实体信息族系关系其他信息进程描述3.进程控制块的作用每个进程有惟一的进程控制块操作系统根据PCB对进程实施控制和管理进程的动态、并发等特征是利用PCB表现出来的PCB是进程存在的唯一标识2.2.3进程队列1.线性方式PCB线性队列示意图进程队列2.链接方式PCB链接队列示意图PCB索引结构示意图3.索引方式进程队列2.3进程管理2.3.1进程图进程图(ProcessGraph)是描述进程族系关系的有向树进程创建的层次关系2.3.2进程创建引发创建进程的事件:调度新作业用户登录操作系统提供特定服务派生新进程进程创建●创建新进程时要执行创建进程的系统调用(如UNIX/Linux系统中的fork)●其主要操作过程有如下四步:(1)申请一个空闲的PCB(2)为新进程分配资源(3)将新进程的PCB初始化(4)将新进程加到就绪队列中#includeunistd.h#includesys/types.h#includestdio.hintmain(intargc,char*argv[]){intpid;pid=fork();/*创建一个子进程*/if(pid0){/*出现错误。进程ID号不可能小于0*/fprintf(stderr,ForkFailed);/*输出出错消息——ForkFailed*/exit(-1);/*程序终止,返回码-1*/}elseif(pid==0){/*下面是子进程执行*/execlp(/bin/ls,ls,NULL);/*执行目录/bin下面的ls命令*/}else{/*下面是父进程执行*/wait(NULL);/*父进程等待子进程完成*/printf(ChildComplete);/*输出子进程完成的信息*/exit(0);/*终止*/}}2.3.3进程终止导致进程终止的三种情况:正常终止异常终止外部干扰进程终止终止进程的主要操作过程如下:找到指定进程的PCB终止该进程的运行回收该进程所占用的全部资源终止其所有子孙进程,回收它们所占用的全部资源。将被终止进程的PCB从原来队列中摘走2.3.4进程阻塞进程阻塞的过程如下:立即停止当前进程的执行现行进程的CPU现场保存现行状态由“运行”改为“阻塞”转到进程调度程序2.3.5进程唤醒唤醒原语执行过程如下:把阻塞进程从相应的阻塞队列中摘下将现行状态改为就绪状态,然后把该进程插入就绪队列中如果被唤醒的进程比当前运行进程的优先级更高,则设置重新调度标志2.4线程2.4.1线程概念现代操作系统中,进程只作为资源拥有者,而调度和运行的属性赋予新的实体——线程。线程(Thread)是进程中实施调度和分派的基本单位线程概念1.线程的组成每个线程有一个thread结构,即线程控制块,用于保存自己私有的信息,主要由以下4个基本部分组成:一个唯一的线程标识符一组寄存器两个栈指针一个私有存储区thread结构示意图线程的组成线程必须在某个进程内执行一个进程可以包含一个线程或多个线程单线程和多线程的进程模型2.线程的状态运行状态就绪状态阻塞状态终止状态3.线程的管理线程创建线程终止线程等待线程让权4.线程和进程的关系①一个进程可以有多个线程,但至少要有一个线程;而一个线程只能在一个进程的地址空间内活动。②资源分配给进程,同一进程的所有线程共享该进程的所有资源。③处理机分配给线程,即真正在处理机上运行的是线程。④线程在执行过程中需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。5.引入线程的好处①易于调度②提高并发性③开销少④利于充分发挥多处理器的功能2.4.2线程的实现●在用户空间实现优点:切换速度快;调度算法可专用;可运行在任何操作系统上缺点:阻塞问题;多处理器利用问题●在核心空间实现优点:克服了用户级线程方式的两个主要