操作系统原理武汉大学计算机多媒体课程1、《操作系统原理》教材2、《操作系统原理实验大纲》指导教材3、《操作系统课件》多媒体教案课程使用的媒体一、操作系统的有关概念二、进程管理三、存储器管理计算机发展简史操作系统的发展过程计算机发展简史按硬件发展划分为四代。对计算规律的模拟存储程序式计算机操作系统的发展过程按技术发展与分支划分类别操作系统的类型早期批处理执行系统多道成批系统分时、实时系统、个人机系统多处理机、分布式系统什么是操作系统操作系统的性质操作系统是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。以下软件哪些是操作系统?UNIXWordDOSVBOfficeFoxProWindows98WindowsNTLinuxPowerPoint以下软件是操作系统:UNIXDOSLinuxWindows98WindowsNT设置OS的目的扩充机器功能,方便用户使用。提高系统效率。操作系统的共同性质1、从功能上看具有五大功能----存储器管理、处理机管理、设备管理、文件管理、用户接口2、从层次上看是裸机之上的第一层软件,为其他软件的建立和运行提供基础。裸机操作系统其他软件...用户1。4节3、从服务上看提供众多基础服务,方便用户使用,构成软件平台。4、从内部特征上看---支持并发性---实现资源共享---完成进程的异步前进以多道成批系统为例并发共享不确定性1.3OS的服务功能程序执行I/O操作文件系统管理出错检测资源分配统计保护一系统调用是应用程序与OS的接口进程或作业控制:实现进程或作业的所有活动文件管理和设备管理信息维护:用户与系统交互信息二系统程序文件管理状态信息文件修改程序设计语言支持程序装入与执行工具性软件命令解释程序的实现方法1.5操作系统逻辑结构设计分层实现的软件设计方法1.5操作系统逻辑结构设计单块结构层次结构:分层实现的软件设计方法.虚拟机客户/服务器模型:再用户进程方式下实现系统的多数功能;核心只负责客户与服务器的通信;适用于分布式系统;注意对关键基础服务的处理.1。8UNIX系统的特点和结构UNIX的主要特点UNIX系统结构UNIX系统核心结构一、操作系统的有关概念二、进程管理三、存储器管理进程概念程序的顺序执行概念一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种程序执行的方式就称为程序的顺序执行。例如:程序顺序执行的特点1顺序性处理机严格按照程序所规定的顺序执行,即每个操作必须在下一个操作开始之前结束。2封闭性程序一旦开始执行,其计算结果不受外界的影响,当程序的初始条件给定之后,其后的状态只能由程序本身确定,即只有本程序才能改变它。3可再现性程序执行的结果与初始条件有关,而与执行时间无关。即只要程序的初始条件相同,它的执行结果是相同的,不论它在什么时间执行,也不管计算机的运行速度。程序的并发执行例:在系统中有n个作业,每个作业都有三个处理步骤,输入数据、处理、输出,即Ii,Ci,Pi(i=1,2,3,...,n)。这些作业系统中执行时是对时间的偏序,有些操作必须在其它操作之前执行,这是有序的,但有些操作是可以同时执行的。程序的并发执行例如:P1与I2,C1与I2,I3与P1是可以同时执行的。I1、C1、P1的执行必须严格按照I1,C1,P1的顺序。I1、I2、I3、I4轮流使用同一输入设备。时间资源程序的并发执行分析程序的并发执行提高了资源的利用率。限制规则:同一作业的处理步骤的执行必须严格按照规定的顺序;同一独占资源上的不同作业的处理步骤不能同时执行。程序的并发执行定义若干个程序段同时在系统中运行,这些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并发执行的。PQR并发执行区程序的顺序执行与并发执行假设有一个程序由S0~Sn+1个语句,先顺序执行S0,然后并发执行S1~Sn语句,最后顺序执行Sn+1。程序并发执行的特点一、失去了程序的封闭性程序A程序Bn:=0;……………打印nn:=n+1;K1K2S如果程序执行的结果是一个与时间无关的函数,即具有封闭性。程序B打印0程序B打印1程序并发执行的特点二、程序与计算不再一一对应在程序顺序执行时,一个程序总是对应一个具体的计算,但在程序的并发执行时,可能有多用户共享使用同一个程序,但处理(计算)的对象却是不同的,例如,在多用户环境下,可能同时有多个用户调用C语言的编译程序,这就是典型的一个程序对应多个用户源程序的情况。程序并发执行的特点程序与计算不再一一对应示例程序A程序B……CallC……CallC程序C…程序A和B在执行过程中都调用了程序C程序并发执行的特点三、程序并发执行可以相互制约在多道程序设计的环境下,程序是并发执行的。即系统中有多道程序在“同时”执行,这些程序之间要共享系统的资源,程序之间有合作(通信)的关系。合作与竞争产生一系列的矛盾,这些矛盾实际上是一种相互制约,有直接的,也有间接。注意区别不能同时与有先后次序两种制约。程序并发执行的特点程序并发执行的相互制约示例并发活动——进程的引人操作系统的特性之一是并发与共享,即在系统中(内存)同时存在几个相互独立的程序,这些程序在系统中既交叉地运行,又要共享系统中的资源,这就会引起一系列的问题,包括:对资源的竞争、运行程序之间的通信、程序之间的合作与协同等符。要解决这些问题,用程序的概念已经不能描述程序在内存中运行的状态,必须引人新的概念--进程。进程的定义行为的一个规则叫做程序,程序在处理机上执行时所发生的活动称为进程(Dijkstra)。进程是这样的计算部分,它是可以和其它计算并行的一个计算。(Donovan)进程(有时称为任务)是一个程序与其数据一道通过处理机的执行所发生的活动。(Alan.C.Shaw)进程是执行中的程序。(KenThompsonandDennisRitchie)进程,即是程序在并发环境中的执行过程。进程与程序的区别(1)进程是动态概念;程序是静态概念进程具有并发性,宏观上同时运行;程序本身具有顺序性,程序的并发执行是通过进程实现的进程具有独立性,是一个能独立运行的单位,是系统资源分配的基本单位,是运行调度的基本单位;程序本身没有此特性进程与程序的区别(2)进程和程序无一一对应关系,一个进程可顺序执行多个程序;一个程序可由多个进程共用进程异步前进,会相互制约;程序不具备此特性进程实体具有一定结构,组成进程映象;程序没有这种结构进程与程序的区别示例例子:光盘(CD、VCD、DVD)光盘(程序)-放光盘的活动(进程)理解进程概念进程的运行状态及其变迁进程的组成进程映像进程环境进程的运行状态及其变迁进程在系统中的活动规律是:执行-暂停-执行进程的运行状态反映进程的动态性。进程的三种基本状态:运行状态就绪状态封锁状态(又称不可运行、挂起)进程的三种基本状态运行状态:进程得到CPU控制权,它的程序正在运行。(在系统中,总只有一个进程处于此状态)就绪状态:已经准备就绪,一旦得到CPU,就立即可以运行。(有多个进程处于此状态)封锁状态:正在等待某个事件的发生(如等待I/O的完成),而暂停执行,这时,即使给它CPU时间,它也无法执行。进程的状态变化就绪运行挂起??PCB程序数据集合进程的组成基本内容的确定?进程与PCB的关系每个进程有唯一的PCB系统中所有进程都有自己的PCB操作系统依据PCB管理进程进程与PCB的关系操作系统利用PCB实现进程的动态和并发PCB是进程存在的唯一标志Pcb表组织a…b…-1…pcb1N个pcb2…………pcbiPcb-addr?空间大小??UNIX的进程映像进程状态变迁关系进程映像:PCB的实现、核心栈与用户栈(图2-10UNIX进程映像结构)进程环境用户级环境寄存器环境系统级环境1、进程与程序的区别2、进程的组成3、进程的同步与互斥进程控制原语Fork()Wait(stat_addr)Exitexec进程在活动中会相互制约所有进程都是相互独立的进程以异步方式并发执行同步同步是进程间共同完成一项任务时直接发生相互作用的关系——同步进程间具有合作关系——在执行时间上必须按一定的顺序协调进行互斥互斥是并发执行的多个进程由于竞争同一资源而产生的相互排斥的关系——互斥进程彼此在逻辑上是完全无关的——它们的运行不具有时间次序的特征——临界资源和临界区——信号量——P、V操作临界资源一次仅允许一个进程使用的共享资源如:打印机、内存单元、表格临界区在每个进程中访问临界资源的那段程序有限进入原则唯一原则有限离开原则进程间的通信——临界资源和临界区——信号量——P、V操作信号量信号量是一种数据结构一般由两个成员组成:数值指针?信号量一般说来,信号量的值与相应资源的使用情况有关信号量的值仅由P、V操作改变进程间的通信——临界资源和临界区——信号量——P、V操作P、V操作都是原语P:申请一个单位资源(P47)V:释放一个单位资源(P47)P操作P(s):若S0,入等待队列若S=0,继续取s值减1V操作V(s):若S=0,唤醒一等待队列进程若S0,继续取s值加1用P、V原语实现互斥例:打印机分配互斥信号量mutex(初值为1)Pa为分配进程Pb为释放进程Pa:...P(mutex)分配打印机(读写分配表)V(mutex)...Pb:...P(mutex)释放打印机(读写分配表)V(mutex)...用P、V原语实现简单同步例:供者和用者对单缓冲区的同步信号量:S1——缓冲区空否(初值为1)S2——缓冲区满否(初值为0)供者进程L1:P(S1)启动读卡机…收到输入结束中断V(S2)gotoL1用者进程L2:P(S2)从缓冲区取出信息…V(S1)gotoL2用P、V原语实现同步设上例中缓冲区容量为n,分析信号灯的设置与状态变化范围(生产者-消费者问题P49)其它进程通信方式信号量集方式管程消息缓冲通信UNIX中的进程通信Sleep和wakeup进程跟踪S_5的ipc:消息机制,共享内存,信号量。处理机管理目标:提高CPU的有效运行时间如何实现?根据CPU的特点和进程管理的需要来设计管理方法CPU资源的特点是一种时间资源具有唯一性与独占性影响系统效率的关键因素进程运行的必备资源CPU效率的影响因素并发总有请求CPU的进程CPU时间分片在效率与交互性上权衡现场交换代价只做必须做的工作处理机的二级调度宏观作业调度:算法复杂、间隔长、宏观环境微观进程调度:算法简单、调度频繁、微观状态作业调度作业调度的主要任务是完成作业从后备状态到执行状态和从执行状态到完成状态的转变。作业调度功能:记录已进入系统的各作业的情况(JCB,JobControlBlock);按一定的调度算法,从后备作业中选择一个或几个作业进入系统内存;为被选中的作业创建进程,并且为其申请系统资源;作业加束后作善后处理工作。作业控制块(JCB)每个作业进入系统时由系统为其建立一个作业控制块JCB(JobControlBlock),它是存放作业控制和管理信息的数据结构,主要信息见下图。调度性能的衡量作业调度算法规定了从后备作业中选择作业进入系统内存的原则,这些原则的性能如何,就是本节所讨论的问题。–确定调度算法时应考虑的因素应与系统的整体设计目标一致考虑系统中各种资源的负载均匀保证作业的执行对一些专用资源的使用特性的考虑调度性能的衡量调度性能的衡量–通常采用平均周转时间和带权平均周转时间作业的周转时间:–ti=tci-tsi–ti:作业周转时间–tci:作业完成时间–tsi:作业提交时间调度性能的衡量先来先服务调度算法和短作业优先调度算法进程调度调度与进程控制和进程通信的功能有密切的联系,当一个进程阻塞时,这种进程将进入相应的等待队列中,并让出CPU,调用