教学课件:操作系统的原理与应用_第1页
教学课件:操作系统的原理与应用_第2页
教学课件:操作系统的原理与应用_第3页
教学课件:操作系统的原理与应用_第4页
教学课件:操作系统的原理与应用_第5页
已阅读5页,还剩468页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统原理Principles of Operating System 操作系统的原理是计算机专业学生必须学习和掌握的主干课程,是计算机水平考试和考研的必修课程。操作系统学习提示:结合性、先进性和实用性。操作系统提供了人使用计算机的工作环境,提供了各种应用软件的支撑平台。3教材:操作系统的原理与应用孔宪君 王亚东编著.高等教育出版社. 2008 .12教育部 “普通高等教育十一五国家级规划教材” .参考书:1 William Stailing.Operating Systems Internals and design Principles. Prentice Hall.19982 Abra

2、ham Silberschatz,Peter Baer Galvin,Greg Gagne.Operating System ConceptsJohn Wiley&Sonslnc20003 汤子瀛,哲凤屏,汤小丹编著计算机操作系统(修订版)西安电子科技大学出版社.20014 曾平,曾林编著.操作系统习题与解析(第二版).清华大学出版社.20045 梁红兵,汤小丹编著.计算机操作系统学习指导与题解.西安电子科技大学出版社.2003考试及成绩考试: 期末闭卷考试(笔试)总评成绩: 上课出勤、课外作业、平时测验、实验合占30% 期末闭卷考试占70%;课程形式: 主课、习题课、课堂讨论、作业、实验学习

3、要求: 1.按时上课,认真听讲,每次课班长考勤 2.整理笔记,认真思考,积极讨论,善于发现问题、提出问题并努力寻求问题的答案 3.结合操作系统课件和专题学习网站丰富的教学资源,努力寻求问题的答案,掌握基本原理,拓展知识,延伸视野,提高分析问题和解决问题的能力 。第一章 操作系统引论计算机系统由硬件和软件两部分组成。 硬件是指包括中央处理器(简称CPU)、内存、外围设备(包括外存和各类输入/输出设备)等的物理设备集合,硬件是计算机系统赖以工作的实体。 软件是指能提供所要求功能的程序与数据。软件又可以分为系统软件和应用软件,操作系统是系统软件的核心。1.1操作系统的概念 1.1.1操作系统和网络操

4、作系统操作系统的定义操作系统(Operating System,简称OS)是负责控制、管理和调度计算机系统软硬件资源的系统软件,控制并协调多个任务的活动,并向用户提供方便用户的接口、应用支撑平台和工作环境。9操作系统的工作与硬件相关、与应用无直接关系。给用户以方便、效率、安全,给系统以高效和稳定。操作系统是计算机系统必不可少的重要的软件。网络操作系统的定义网络操作系统(Network Operating System,简称NOS)就是具有网络功能的操作系统。用于管理网络通信和共享网络资源,协调各主机上任务的运行,并向用户提供统一的、有效的网络接口的软件集合。网络操作系统具有网络通信、资源管理、

5、网络服务、网络管理和相互操作能力等功能。网络操作系统包括客户端操作系统和服务器端操作系统。微型化和网络化是计算机技术发展的两个重要方向。 1.1.2操作系统的目标方便性用户便可通过操作系统所提供的各种命令来使用计算机系统,从而使计算机变得易学易用。 有效性操作系统的基本目标就是提高计算机系统中各种资源的利用率 。可扩充性操作系统必须具备很好的可扩充性来适应发展的要求。12开放性、标准化开放性、标准化是指操作系统遵守国际标准和规范,使不同计算机体系结构的系统之间可以相互数据通信。 可靠性可靠性包括正确性和健壮性。 可移植性可移植性是指把一个程序从一个计算机系统环境中移到另一个计算机系统环境中并能

6、正常执行的特性。 1.1.3操作系统的地位和作用1.操作系统是用户与计算机系统之间的接口命令行接口 图形用户接口程序接口2.操作系统是计算机系统资源的管理者和竞争资源的仲裁者操作系统的主要管理功能也正是针对这4类资源进行的。CPU管理;存储管理;设备管理;文件系统。监视资源。分配资源。回收资源。 3.操作系统是计算机系统功能的扩充每当人们在计算机系统上覆盖一层软件后,系统功能便增强一级。由于操作系统自身包含了若干层软件,因此当裸机上覆盖了操作系统后,便可获得一台功能显著增强,使用极为方便的多层虚拟机器。虚拟机的观点也是我们分析操作系统的基本出发点。虚拟CPU就是通过虚拟技术将一个物理CPU,变

7、为若干个逻辑层面的CPU。 1.1.4操作系统的层次模型操作系统对象(CPU、存储器、设备、文件)对对象操纵和管理的软件集合(CPU管理、存储管理、设备管理、文件管理)用户接口(命令行接口,图形用户接口,程序接口)1.2 操作系统的分类与形成1.2.1操作系统的分类按计算机体系结构的角度分类:单机操作系统、主从式多终端操作系统、多机操作系统、网络操作系统、分布式操作系统、嵌入式操作系统。按资源共享的级别分类:单任务操作系统、多任务操作系统、单用户操作系统、多用户操作系统、单道操作系统、多道操作系统。按操作系统工作的方式分类:批处理系统、分时系统、实时系统。1.2.2 操作系统的产生手工操作阶段

8、单道批处理阶段单道批处理系统的特点作业步之间不需要人的干预。监督程序常驻内存。专职操作员。单道。监督程序只为一个计算机系统设计。开发过程可以使用FORTRAN等高级语言,程序的最后一条指令是返回监督程序。1.2.3 操作系统的形成多道程序设计技术多道程序设计技术是指在计算机内存中可以同时装入多道程序运行,多道程序交替运行,合理搭配,共享系统中的各种硬件和软件资源,从而使系统资源得到充分利用。 多道程序设计技术示意图 2.多道批处理系统多道批处理系统的优缺点资源利用率高系统吞吐量大可提高内存和I/O设备利用率平均周转时间长无交互能力。 在多道程序系统中,多个作业共享计算机系统的硬件和软件资源,存

9、在对资源的竞争。因此,同步与互斥机制成为操作系统设计的重要问题。随着多道程序的增加,有可能出现内存不够用的问题,提高内存的使用效率成为关键。因此,出现了诸如覆盖技术、对换技术和虚拟存储技术等内存管理技术。由于多道程序在内存中,为保证系统程序存储区和各用户程序存储区的安全可靠,需要内存保护的技术。 3.作业作业由三部分组成:用户程序、数据和作业说明书,它适合于批处理系统处理。作业作为早期批处理操作系统中出现的概念,曾经是操作系统重要的概念之一。在其他计算机操作系统教材中,作业的概念仍然大量使用。由于现代操作系统已经很少使用作业,本教材讲授现代操作系统中的网络操作系统和微机操作系统的原理与应用,故

10、很少涉及作业的概念,仅在批处理系统和作业调度中涉及到作业,在其他部分一概不使用。作业的状态和状态转换当操作员把用户作业的全部信息利用输入设备输入到外存中的过程称为作业的提交状态;由“作业注册”程序为进入系统的作业建立作业控制块,并把它加入到后备作业队列中,随时等候作业调度程序调度,此时作业处于后备状态;作业调度程序从后备作业队列中选择若干个符合调度原则的作业,给他们分配内存等必要的资源,创建一组相应的进程,这些作业就进入了执行状态;经过CPU的执行,有些作业正常结束或因错误而终止,此时作业进入完成状态,其作业控制块由系统输出程序撤消,系统回收资源,将作业运行的结果信息加入输出井中,通过有关的输

11、出设备输出。 4.分时系统时间片将主机CPU的时间划分割成若干个片段,每个时间片段称为时间片(time slice)。时间片就是分时的时间单位,主计算机以时间片为单位,轮流为每个终端用户服务。 响应时间:如果系统中有n个同时性用户,每个用户终端轮转服务一次所需的时间为分时系统的响应时间t,t=nq 分时系统的设计思想分时系统就是采用分时技术,按时间片轮转的方法,同时为许多终端用户服务,对每个用户能保证足够快的响应时间,并提供交互会话的功能。设计目标:对用户的请求及时响应,并在可能条件下尽量提高系统资源的利用率。适合办公自动化、教学及事务处理等要求人机会话的场合。分时系统的特征同时性。独立性。及

12、时性。交互性。5.实时系统实时控制系统实时控制系统通常是以计算机为中心的过程控制系统,也称为计算机控制系统。它既用于生产过程中的自动控制,包括自动数据采集、生产过程监测、执行机构的自动控制等等。如武器装备的制导、自动驾驶与跟踪、导弹火箭与航空航天器的发射、钢铁冶炼和钢板轧制的自动控制、化工生产过程的自动控制等。实时信息系统实时信息系统通常指实时信息处理系统,它可以是主机型多终端的联机系统,也可以是远程在线(Online)式的信息服务系统,还可以是网络互联式的信息系统。作为信息处理的计算机接收终端用户或者远程终端用户发来的服务请求,系统分门别类地进行数据与信息的检索、查找和处理,并及时反馈给用户

13、。实时信息系统的开发都是与具体的应用领域分不开的。例如,航空订票系统、情报检索系统、信息查询系统、股市行情实时信息处理系统等。实时系统具有如下的特征及时性实时系统的及时性是非常关键的,主要反映在对用户的响应时间的要求上。交互性实时系统的交互性根据应用对象的不同和应用要求的不同,对交互操作的方便性和交互操作的权限性有特殊的要求。安全可靠性这是实时系统最重要的设计目标之一。多路性实时系统也具有多路性。1.3操作系统的发展不断提高计算机资源利用率的需要。方便用户使用计算机。器件的不断更新换代。计算机体系结构的不断发展。1.3.1微机操作系统按系统结构分为内在式和贴附式内在式(built-in)是指操

14、作系统开始设计就把多任务功能构筑。其中,如OS/2、Windows NT/2000/XP和UNIX操作系统。贴附式(bolt-on)是指把多任务功能附加到一个单任务操作系统中而形成,如WindowsX/9X/ME就是在DOS基础上加入多任务功能而构成的多任务操作系统。按任务调度方式分为先决式和协作式先决式(preemptive)是指由系统内部时钟来决定CPU由一个任务转移去执行另一个任务的时刻,转移时刻是系统以某种分配策略预先确定的,应用程序无权干预。如OS/2和UNIX都是先决式多任务操作系统。协作式(cooperative)是指多个任务联合动作,通过某种通信方式来分享CPU。Windows

15、和Novell公司的Netware网络操作系统是协作式的。 1.3.2多机操作系统多机操作系统的类型:主从模式,是一种非对称多处理模式,主CPU只有一个,从CPU可有多个。主从式系统是在主CPU上配备操作系统,它控制所有的系统资源,将整个任务分解成许多个子任务,并将这些子任务分配给其他的从CPU,让其执行,并且它还要协调这些从CPU的执行过程。对称模式:所有CPU都相同。对称式系统在每个CPU中都可配备操作系统,管理和控制系统资源和多任务的执行过程。1.3.3网络操作系统计算机网络操作系统的模式:客户/服务器模式(Client/Server),网络中的各个站点可以分为两大类:服务器:为客户提供

16、服务如文件服务、打印服务、数据库服务等。客户机:用户通过客户机访问服务器。对等模式(Peer-to-Peer),各个站点是对等的,它既可作为客户也可作为服务。常用的网络操作系统有Novell公司的Netware、Windows 98/ME、Windows 2000/XP/2003、Linux等。401.3.4分布式操作系统分布式操作系统是指为分布式系统配置的操作系统。在以往的系统中,其处理和控制功能都高度集中在一台主机上,所有的任务都由主机处理,这样的系统称为集中式处理系统。所谓分布式处理系统,是指由多个分散的处理单元经网络的连接而形成的系统。411.3.5嵌入式操作系统嵌入式系统是指在各种设

17、备、装置或系统中,完成特定功能的微型计算机软硬件系统。他们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是“计算机”。嵌入式系统通常工作在反应快或对处理时间有较严格要求环境中,由于他们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统。 421.4操作系统发展历史简述本节可供学生自学,目的是扩展学生的知识面。了解操作系统的发展历史,把握操作系统的发展方向。 1.5操作系统的功能1.5.1操作系统的功能 操作系统的功能主要包括:CPU管理存储管理设备管理文件系统网络功能 用户接口等六大功能。 1.5.2操作系统的特征1.并发性并发(Concurrence)是指两个或多个事件在同

18、一时间间隔内发生。并行是指两个或多个事件在同一时刻发生。并发与并行是有区别的。计算机内有多个进程并行执行,这只有在多CPU的系统中才能实现。在单CPU的计算机系统中,多个进程是不可能同时执行的。并发是从宏观上看多个进程的活动,这些进程在串行并交错的运行,由操作系统负责这些进程之间的运行切换。并发和共享是操作系统两个最基本的特征,这两者之间又是互为存在条件的。 2.共享性共享(Sharing)是指多个用户或进程共享系统的软硬件资源。因为操作系统向每一个用户分别提供所有的资源是非常浪费的,共享可以提高各种系统设备和系统软件的使用效率。共享方式可以分为互斥共享和同时共享。互斥共享的设备有打印机、磁带

19、机、绘图仪等,这些设备不允许两个以上进程同时访问,只有当一个进程使用完毕并释放了所占的资源后,才允许另一个进程访问。有些快速设备如磁盘,允许多个进程并发访问,但由于进程访问和释放该资源时间极短,在宏观上可以看做允许多个进程同时访问,这类设备的共享方式也称为是同时共享。3.虚拟性所谓虚拟(Virtual)是指把一个物理实体,变为若干个逻辑上的对应物。物理实体是实的,而后者是虚的,是逻辑上的。相应地,用于实现虚拟的技术,称为虚拟技术。在操作系统中利用了多种虚拟技术,分别用来实现虚拟CPU、虚拟内存、虚拟设备等。4.不确定性不确定性是指同一个程序在同样一个数据集下,在同样一个计算机环境下执行,每次执

20、行的次序和所需的时间都不相同。产生这种现象的原因是由于多道程序下的操作系统内部的活动是极其复杂的,这些活动之间又有错综复杂的联系。 1.5.3 研究操作系统的几种观点1.资源的观点操作系统作为计算机系统的资源管理者。一个计算机系统包含硬件资源和软件资源。归纳起来可以将资源分为四类:CPU、存储器、设备及文件(程序和数据)。相应地,操作系统的主要功能也正是针对这四类资源进行有效管理的。即CPU管理、存储器管理、设备管理和文件系统。2.虚拟机的观点操作系统是计算机系统功能的扩充,虚拟机的观点从功能分解的角度出发,将操作系统分成若干个层次,每一层次完成特定的功能,构成一个逻辑上的虚拟机,并为上层提供

21、服务支持,构成上层的运行环境。虚拟机(virtualmachine)是支持多任务并发运行在单个物理CPU上的一种系统,它能够提高硬件使用效率。50在真实计算机系统中,操作系统组成中的设备驱动控制硬件资源,负责将系统指令转化成特定设备控制语言。在假设设备所有权独立的情况下形成驱动,这就使得单个计算机上不能并发运行多个任务,虚拟机则包含了克服该局限性的技术。虚拟化过程引入了低层设备资源重定向交互作用,而不会影响高层应用层。通过虚拟机,用户可以在单个计算机上并发运行多个任务。当裸机上覆盖了操作系统后,便可获得一台功能强,使用极为方便的多层虚拟机器。 3.服务的观点操作系统的使命就是为用户服务,为计算

22、机系统服务。操作系统是服务的提供者,为用户提供一个良好的工作环境,向用户提供各种各样的服务,使得用户能够灵活、方便、有效的使用计算机,为计算机系统服务就是提高整个计算机系统资源利用率。操作系统原理Principles of Operating System 孔宪君1.6操作系统的用户接口1.6.1用户接口类型1.命令接口命令接口分为命令行接口和图形用户接口 命令接口有两种不同的控制方式: 联机命令接口。 脱机命令接口。 2.程序接口程序接口是由一组系统调用命令组成的。 541.6.2命令接口的功能命令接口的功能大致可分为:文件和目录的管理文件编辑和处理文件系统的管理权限管理的命令通信命令资源要

23、求命令个人工具1.6.2 命令接口命令行接口的一般格式是:command arg1,arg2 opt1,opt2optm其中command是命令名称,argi是参数,opti是可选项。 1.6.3 MS-DOS命令行接口内部命令:直接由本身完成,功能简单,使用频繁。例如:dir c:copy source.dat target.datcopy con temp.txtmd kkkcd kkk等。外部命令:通过运行相应的可执行文件来完成。例如:Fdisk、Format c:、debug等。输入/输出重定向和管道:、|“”为输入重定向。例如:find string temp.txt 将显示文件te

24、mp.txt中有string串的行。more”为输出重定向,“”为追加输出重定向。例如:dirtemp.txt 将把dir命令在屏幕上的输出保存在新文件temp.txt中。dirtemp.txt 将屏幕输出追加在文件temp.txt的结尾。type temp.txtlpt1管道“|”是将前一个命令的输出作为后一个命令的输入。例如:dir|sort 将dir命令的输出按行进行排序。581.6.4 WindowsXP命令行接口WindowsXP命令由两部分组成,一部分是CMD命令,大多数 CMD命令是继承MS-DOS的命令,CMD命令仅支持命令行接口。为了区分,由MS-DOS继承的命令我们用大写英

25、文字母表示;另一部分是WindowsXP命令,XP命令既支持命令行接口又支持图形接口。1.6.5 图形用户接口图形用户接口是通过鼠标对屏幕上的对象进行点击,以控制和操纵程序的运行或管理计算机系统。图形用户接口是当前流行的用户接口,是命令接口的图形化。典型的图形用户接口是Windows和X Window等,Linux可以选择两种桌面环境(KDE或者Gnome)。 1.7操作系统的程序接口程序接口(program interface)是操作系统为正在运行的应用程序服务并与之通信的一个设施。程序接口由一组系统调用(System Call)命令组成,所谓系统调用就是指用户在程序中调用操作系统提供的一些

26、子功能,是用户在程序级请求操作系统服务的一种手段。611.7.1程序的状态为了区分两类程序的执行:把运行系统程序的状态称为管态(或核心态);把运行用户程序的状态称为目态(或算态或者用户态)。特权指令是一类只能在管态下执行而不能在目态下执行的特殊的指令。 621.7.2系统调用系统调用命令是为了增强系统功能,方便用户的程序接口。 系统调用是一种特殊的过程调用,与程序中的过程调用的主要区别如下:执行在不同的系统状态一般的过程调用,其程序和被调用的过程,都执行在同一系统状态下,或管态或目态;系统调用在用户程序中,它执行在目态,其被调用过程是系统过程,执行在管态。通过软中断进入一般的过程调用可直接由调

27、用转向被调用过程。而系统调用,因为调用过程和被调用过程处于不同的系统状态,所以不允许由调用过程直接转向被调用过程,只能通过软中断(trap)机制,先进入操作系统内核,经内核处理后,才能转向相应的系统调用处理程序。631.7.3系统调用的功能系统调用功能是操作系统提供给程序设计人员的一种服务。程序设计人员在编写程序时,可以利用系统调用来请求操作系统的服务。Windows系统的应用程序接口(Application Programming Interface,API)就是典型的系统调用。 图1-10应用程序接口的示意图651.7.4系统调用的实现66本章重点和难点分析1.操作系统的形成2.操作系统的

28、基本特征和功能3.操作系统的用户接口操作系统原理Principles of Operating System 主讲:孔宪君第2章 进程管理 2.1 进程与任务CPU管理主要研究进程控制、进程和线程管理、提供进程同步机制和进程通信机制,进程调度和死锁等 。我们可以把进程理解为操作系统的工作单元,进程是正在执行的程序,进程的执行需要一定的资源。操作系统主要研究进程与资源的关系。 2.1.1 前趋图为了描述一个程序的各部分(程序段或语句)间的依赖关系 如图所示的前趋图中,P1为初始点,P7为终止点。前趋图存在下面的前趋关系:P1P2,P1P3,P1P4,P2P5,P3P5,P3P6,P4P6,P5P

29、7,P6P7。前趋图中有两种元素:节点。用圆圈表示,其内涵可以是一条语句、一个程序段或进程。有向边。用箭头表示,表示两个节点之间存在的偏序(Partial_Order)或前趋关系(Precedence_Relation)。PiPj表示在Pj开始前Pi必须完成,即Pi是Pj的直接前趋,Pj是Pi的直接后继,前趋图中不存在循环。 2.1.2 程序的顺序执行程序是指一个按严格次序执行的操作序列,执行的次序有顺序、分支和循环;操作是数据处理的一种规则,一经启动就需要在有限时间内完成。一个程序中包括三部分。I:输入操作,C:计算操作,P:打印操作。这样多个程序的顺序执行次序如图所示。顺序程序的特征如下:

30、顺序性:程序的执行是按照程序结构所指定的次序进行的。封闭性:程序在封闭的环境下执行,即程序执行时独占全部系统资源。程序一旦开始执行,其计算结果不受外界因素影响,计算机的状态完全由该程序的控制逻辑所决定。可再现性:只要程序执行时的环境和初始条件相同,当程序重复执行时,不论它是从头到尾不停顿地执行,还是“停停走走”地执行,都将获得相同的结果。程序的结果与它的执行速度无关,只要给定相同的输入,一定会得到相同的结果。2.1.3 程序的并发执行为提高系统资源的利用率和增强系统处理能力,在现代计算机中广泛采用并行操作技术和并发程序设计技巧。 每个程序的输入操作、计算操作和打印操作必须顺序执行。对一批程序进

31、行同时处理时,不同程序的各项操作可以并发执行。 如图2-3所示,存在以下的前趋关系:IiCi,CiPi,IiIi+1,CiCi+1,PiPi+1。故Pi-1和Ci以及Ii+1之间可以并发执行。 程序的并发执行的特征: 间断性:程序并发执行时,CPU交替执行多个程序,每个程序都是以“停停走走”的方式执行,可能走到中途停下来,而且程序无法预知每次执行和暂停的时间长度,失去原有的时序关系。失去封闭性:由于程序的并发执行,打破了由一程序独占系统资源的封闭性。多个程序共享一个计算机系统的多种资源,每个程序的执行都会受其他程序的影响。失去可再现性。程序并发执行时,由于失去了封闭性。由于程序每次执行的环境不

32、同,程序执行的速度具有不可再现性。如果不采取制约措施,在不同执行环境下的程序的执行结果也将失去可再现特征。76程序并发执行失去可再现性典型的例子一个飞机订票系统,两个终端,同时执行二个程序T1和T2。T1 : T2:. .read(x); read(x);if(x=1) -x; if(x=1) -x;write(x); write(x);. .程序执行是为了对输入信息进行处理,并得到相应的处理结果。为此,程序在并发执行时,必须保证程序执行结果可再现性。由于程序并发执行产生了一系列新特征,为了准确地描述程序的并发执行,必须引入进程的概念。2.1.4 进程进程是正在执行的程序, 进程是在并发环境下

33、一个程序在一个数据集合上的一次执行过程。传统进程的两个属性: 进程是操作系统进行资源分配和CPU调度的基本单位。现代操作系统引进线程之后,进程的两个属性发生分离,进程仅是操作系统进行资源分配基本单位,而线程是操作系统CPU调度的基本单位。引入进程对操作系统的影响为了准确地描述程序的并发执行,必须引入进程的概念。进程是计算机系统资源的使用主体,进程与CPU、存储器和外设等资源的分配和回收相对应。操作系统引入进程,可以实现多个进程的并发执行,提高了系统资源的利用率,提高了系统的吞吐量。但由于每个进程配备PCB,增加了内存的空间开销。进程之间的切换、同步等需付出时间开销,引入进程会带来额外的时空开销

34、,增加了操作系统的复杂性。进程的特征动态性并发性独立性异步性结构特征。进程的程序段描述了进程所要完成的功能。如果一个程序能够被多个进程同时共享执行,那么,这个程序段就是纯代码(pure code),即可重入代码(reentry code)形式编写的,它是指进程执行时不可修改的部分。数据段是指进程执行时用到的数据。用户程序在此数据集合上进行操作,得到相应的结果。82进程和程序的比较它们的主要区别如下:程序是有序代码的集合,是一个静态的概念。进程是程序的一次执行过程,是一个动态概念。进程不可以在计算机之间迁移,而程序通常对应着文件,可以复制。进程是一个状态变化的过程,是有生命期的。而程序是永久的,

35、可以长久保存。进程与程序的组成不同。进程由程序段、数据段和进程控制块组成,而程序仅是代码的有序集合。进程与程序是密切相关的。通过多次执行,一个程序可对应多个进程。但进程与它本身所执行的程序只能是一对一的关系。进程更能真实地描述并发,而程序不能。进程可创建其他进程,而程序并不能形成新的程序。832.2进程控制块与进程的状态2.2.1进程控制块进程控制块是由操作系统维护,用来记录进程相关信息的数据结构。每个进程在操作系统中都有对应的进程控制块。操作系统依据进程控制块对进程进行控制和管理,进程控制块中的内容会随进程的推进而动态改变。 通常进程控制块PCB包括以下信息:进程标识符: CPU状态保护区

36、进程调度信息 进程控制信息 2.2.2进程的基本状态进程在运行过程中主要是在就绪、执行和阻塞三种基本状态间进行转换 创建(new)状态。进程正在创建过程中,但还未将它送入就绪队列时的状态。就绪状态(Ready)。进程已得到必要的资源,唯缺CPU,等待CPU调度,一旦获得CPU便可立即执行。将处于就绪状态的那些进程排成队列就叫就绪状态队列。执行状态(Running)。进程占用CPU资源并正在CPU上执行,处于此状态的进程数目小于等于CPU的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。在多机系统中,可以有多个进程处于执行状态。而在单机系统中,仅有一个进程

37、处于执行状态。 等待状态(Waiting)。也称为阻塞(Blocked)状态,在执行过程中,因等待某一事件而暂时无法执行。将等待同一事件的阻塞进程排一个队列就叫该事件的等待队列。退出(exit)状态。当一个进程已经正常结束或异常结束,系统回收资源。操作系统已将它从就绪队列中移出,正在将它撤消。2.2.3进程的状态变迁机制 提交(Admit):完成一个新进程的创建过程,新进程进入就绪状态。由于性能、内存、进程总数等原因,系统会限制并发进程总数。调度(Dispatch):按调度算法从就绪进程队列中选择进程,进入执行状态。释放(Release):由于进程完成或异常终止进程运行,进入退出状态。状态变迁

38、图中只画出了执行状态到退出状态间的释放转换。但实际上,还存在从就绪状态或阻塞状态到退出状态的释放转换。执行到退出的转换可分为正常退出(exit)和异常退出(abort)。超时(Timeout):由于用完时间片或高优先级进程就绪等原因导致进程暂停执行。分配的时间片用完而发生时钟中断,或一个刚进入就绪队列的进程,其优先级高于处于执行状态的进程的优先级而抢占CPU,于是进程从执行状态到就绪状态的转变。等待事件(Event Wait):进程要求的事件未出现而进入阻塞。可能的原因包括:申请系统服务或资源、通信、I/O操作等。事件发生(Event Occurs):进程等待的事件发生。例如,操作完成、申请成

39、功等。进程从等待状态转变为就绪状态,重新等待CPU调度。89操作系统中多个进程的并发执行是通过两套循环完成。一是通过调度与超时二种状态变迁原因的循环。二是通过调度、等待事件和事件发生三种状态变迁原因的循环。 902.2.4具有挂起状态的进程 91挂起状态的进程模型中,产生了四种新意义的状态:就绪状态(Ready):进程在内存,等待CPU调度。阻塞状态(Blocked):进程在内存,等待某事件的发生。阻塞挂起状态(Blocked Suspend):进程在外存并等待某事件的发生。就绪挂起状态(Ready Suspend):进程在外存。等待被激活。在挂起进程模型中,操作系统用进程状态变迁机制来控制进

40、程的状态变化,进程状态变迁机制一共有提交和释放、调度和超时、挂起和激活、事件发生和等待事件等八种,其中挂起和激活是新引入的,内涵有变化的变迁机制为事件发生和提交。2.2.5进程之间的上下文切换在多进程并发执行中,将CPU切换到另一个进程需要保存原来进程的关联状态并装入新进程的关联状态。这一任务称为上下文切换当发生上下文切换时,内核会将旧进程的关联状态保存在其PCB中,然后装入经调度要执行的新进程的已保存的关联状态。上下文切换时间是系统额外开销,因为切换时系统并不能做什么有用的工作。操作系统越复杂,上下文切换所要做的工作就越多。上下文切换问题可能会成为操作系统性能的瓶颈,我们可以采用线程减少或避

41、免上下文切换时间,降低操作系统开销。932.3进程控制2.3.1进程家族 进程家族是一个树形体系结构,子进程被父进程创建,这是最普通的一种。还有一种进程是在系统生成时即被建立,直至系统关闭,这种进程一个系统中一般只有一或两个,如UNIX系统中有0#进程和1#进程。 2.3.2进程队列链接方式索引方式2.3.3 进程控制原语创建进程的典型事件批处理系统中的作业调度。用户登录。用户启动应用程序。由操作系统创建的系统服务。创建新的进程。撤消原语撤消进程的典型事件:正常结束:进程完成了程序的执行任务。异常结束:出错或故障结束,有算术运算出错、I/O故障等。被干预结束:包括操作员或操作系统干预结束、被父

42、进程请求结束、父进程本身要结束而其子孙进程跟随结束。阻塞原语阻塞原语具体的操作过程是:查找到该被阻塞进程的PCB,剥夺其CPU,将其状态改为阻塞状态,转进程调度。根据阻塞事件的类型将该阻塞进程插入到相应阻塞队列中。阻塞原语的算法描述:void block(WQr)i=*EP;/*取得调用者进程的PCB*/stop(i);/*剥夺CPU*/i.status=“blocked”/*将进程i的状态置为阻塞状态*/i.state=WQr;/*填入所在队列的首指针*/insert(WQr);/*插入相应阻塞队列*/scheduler;/*进程调度*/唤醒原语因事件发生,进程从阻塞状态转换到就绪状态,用唤

43、醒原语完成。唤醒原语对PCB进行修改来实现其功能,在被唤醒的阻塞队列中,找到队首进程。并将该进程从阻塞队列移出,插入到就绪队列中,再将该进程状态改为就绪状态。对于可抢占式进程调度,还可引起进程调度,以便让高优先权进程迅速进入执行状态。唤醒原语算法描述为:void wakeup(WQr)i=remove(WQr);/*查找并得到PCB(n),从阻塞队列wQr中移出n*/i.status=”ready”;/*置进程i的状态为就绪状态*/i.state=RQ;/*填入所在队列的首指针*/insert(RQ,i);/*插入就绪队列RQ*/scheduler;/*进程调度*/操作系统原理Principl

44、es of Operating System 主讲:孔宪君2.4 进程的同步机构2.4.1 进程与资源资源的概念 资源是计算机系统的基本结构元素。资源可以分为软件资源和硬件资源,程序和数据属于软件资源;CPU、内存、外设则属于硬件资源。在操作系统中一般把资源分为临界资源和共享资源,所谓的临界资源是指在一段时间内仅允许一个进程使用资源。如打印机、输入机、磁带机、信号量和指针等,临界资源可以互斥共享;所谓的共享资源是指允许多个进程同时访问的资源。如处理机、内存和硬盘等。 进程制约关系间接相互制约。这种制约主要源于资源共享,这是不相关的进程,由于共享同一资源而引起的,即共享某类资源的进程之间由操作系

45、统协调与控制使用该资源的次序而产生相互制约。这种制约是进程资源进程之间存在的约束,故称为间接制约。例如,有两个进程A和B,如果在进程A提出打印请求时,系统已将打印机分配给进程B,此时进程A阻塞。当进程B将打印机释放,进程A被唤醒,获得打印机,由阻塞状态转为就绪状态。直接相互制约。这是相关进程之间为完成同一任务,进程某些操作之间在次序上存在制约关系。如果协作进程的某个操作没有完成,那么进程就会在工作到某些点上等待这个动作的完成,之后才能继续执行下去。我们称这些并发执行的进程间存在着制约关系。这种制约是进程进程之间因共同目的而存在的直接约束,故称为直接制约。例如,输入进程A通过单缓冲向计算进程B提

46、供数据。当缓冲区空时,计算进程B因不能获得所需数据而阻塞,当进程A把数据送入缓冲时,便唤醒进程B;反之,当缓冲区满时,进程A因不能再向缓冲中投放数据而阻塞,当进程B将缓冲内数据取走时,便唤醒进程A。进程与资源的关系从这样一个简单系统的管理中我们得出一个结论:操作系统的任务是控制与管理进程和资源,必须提供一些机制来协调进程与进程之间、进程与资源之间的复杂关系。4.临界区设计原则我们对每个进程访问临界资源的那段程序从概念上分离出来,称之为临界区。 临界区设计原则如下:进入区(entry section)。申请临界资源,为了进入临界区使用临界资源,在进入区要检查可否进入临界区,如果可以进入临界区,通

47、常设置相应的“正在访问临界区”标志,以阻止其他进程同时进入临界区。访问区(critical section)。进程中访问临界资源的一段代码。退出区(exit section)。将“正在访问临界区”的标志清除,释放临界资源。2.4.2 进程同步机构进程同步与互斥的概念在系统中有一些需要相互合作、协同工作的进程,这些进程的某些操作存在某种次序上的制约关系,这种制约关系称为进程的同步。多个相关进程在访问临界资源在操作时间上相互排斥。这种相互排斥关系叫做进程的互斥。各个进程互斥使用临界资源,互斥的实质是互斥共享临界资源,也可以认为互斥是同步的一种特殊形式。同步机构应遵循的准则空闲让进。当无进程处于临界

48、区时,允许一个申请进入临界区的进程进入临界区。忙则等待。当一个进程进入临界区时,其他申请进入临界区的进程必须等待。有限等待。进程在临界区内仅停留有限的时间,对要求进入临界区的进程,应能在有限的时间内进入临界区。让权等待。处于等待状态的进程应放弃占用CPU,以使其他进程有机会得到CPU的使用权。上锁原语与开锁原语实现的方法:设置锁变量w,w=1表示上锁,w=0表示开锁。上锁原语void lock(w) while(w=1); w=1;开锁原语void unlock(w) w=0;请读者思考上锁原语与开锁原语是否符合同步机构应遵循的准则?信号量与P、V操作信号量的值仅能由P操作、V操作改变的结构体

49、变量。信号量的值大于等于零时代表一类可用资源个数,其值小于零时其绝对值代表被阻塞进程的个数。信号量的描述如下:struct semaphore int value; queue *WQr;wait操作描述和定义如下:semaphore s void wait(s) -s.value; if (s.value0) block(s. WQr);/*阻塞该进程*/V操作描述和定义如下:semaphore svoid signal(s) s.value+; if (s.value=0) wakeup(s. WQr);/*唤醒阻塞队列的对首进程*/2.5 经典进程同步问题2.5.1进程互斥利用wait操

50、作、signal操作设计出三个进程共享一台打印机的并发程序描述如下:semaphore mutex=2;void main() parbegin(P1,P2,P3,p4,p5);void Pi () /*i=1,2,3,4,5*/; wait(mutex); 使用打印机; signal(mutex); 2.5.2生产者与消费者问题设置信号量和变量如下:full:满缓冲区资源信号量,初值为0;empty:空缓冲区资源信号量,初值为n;in:生产者指针,初值均为0;out:消费者指针,初值均为0;mutex:缓冲区操作的互斥信号量,初值为1;生产者与消费者问题描述如下:semaphore empt

51、y=n;semaphore full=0;semaphore mutex=1;message buffern;int in=0;int out=0;void main() parbegin(proceducer,consumer);void proceducer() do produce a new message; wait(empty); wait(mutex); send a new message to bufferin; in=(in+1)%n; signal(mutex); signal(full); while(true);void consumer() do wait(full

52、); wait(mutex); get a message from bufferout; out=(out+1)%n; signal(mutex); signal(empty); consume a message; while(true);2.5.3哲学家进餐的问题分析:每个哲学家的行为是:思考,感到饥饿,拿到两只筷子,进餐,餐毕,放下两只筷子又继续思考。为了进餐,每个哲学家必须拿到两只筷子,并且每个人只能直接从自己的左边或右边去取筷子。但他可能一支都拿不到。只有在他拿到两支筷子时方能进餐。设置信号量如下:哲学家进餐信号量sm,初值为4;筷子信号量chopsticki,初值为1;哲学家进餐

53、问题描述如下:semaphore sm=4;semaphore chopstick5=1,1,1,1,1;void main() parbegin(philosopher0,philosopher1,philosopher2,philosopher3,philosopher4);void philosopheri () /*i=0,1,2,3,4*/ while (true) Thinking; wait(sm); wait(chopsticki); wait(chopstick(i+1)%5); Eating; signal(chopstick(i+1)%5); signal(chopsti

54、cki); signal(sm); 哲学家进餐的问题主要研究如果解决死锁与饥饿。在多进程并发系统中,多个进程共享资源的程度可以分成以下三个层次:互斥、死锁和饥饿。互斥是指多个相关进程中只允许一个进程访问临界资源,这是正确使用资源的最基本要求;某进程申请的资源被其他等待进程占有,如果该等待进程永远无法改变其阻塞状态,这种情况我们称为死锁;如果该等待进程长期无法改变其阻塞状态,这种情况我们称为饥饿。1191202.5.6管程机制管程(Monitors),其基本思想是将共享变量和对它们的操作集中在一个模块中,操作系统或并发程序就由这样的模块构成。这样模块之间联系清晰,便于维护和修改,易于保证正确性。

55、 管程作为一个模块,它的类型定义如下: monitor_name = MoNITOR; 共享变量说明; define本管程内部定义、外部可调用的函数名表; use本管程外部定义、内部可调用的函数名表; 内部定义的函数说明和函数体 共享变量初始化语句; 121管程具有以下特性:模块化。管程是一个基本程序单位,可以单独编译;抽象数据类型。管程是中不仅有数据,而且有对数据的操作;信息掩蔽。管程外可以调用管程内部定义的一些函数,但函数的具体实现外部不可见; 2.6 进程通信2.6.1进程通信概述我们可把进程间通信分成低级通信和高级通信:低级通信。进程间只能传递状态和整数值(控制信息),包括进程互斥和同

56、步所采用的信号量机制。它的优点是速度快,缺点是传送信息量小,通信效率低,编程复杂。由于每次通信传递的信息量固定,因此若传递信息较多则需要进行多次通信。用户直接实现通信的细节,编程复杂,容易出错。高级通信。进程间可传送大量的数据,通信效率高,减轻编程的复杂度。包括共享存储器通信、管道通信和消息传递通信等通信机制。进程通信分为直接通信和间接通信: 直接通信。是指发送方把信息直接传递给接收方。 间接通信。是指通信过程要借助收发双方进程之外的共享数据结构作为通信中转,如信箱。 进程的高级通信有三种方式:共享存储器通信方式。共享文件通信方式。消息传递通信方式。 2.6.2共享存储器通信方式基于共享存储区

57、通信方式基于共享数据结构的通信方式2.6.3共享文件通信方式管道通信方式就是利用共享文件实现进程间的通信。这种通信方式也叫管道通信。如图所示,所谓管道,是指用于连接一个读进程和一个写进程的文件,称pipe文件。向管道输入数据的进程称为写进程,而接受管道数据的进程称为读进程。该方式首创于UNIX,它能传送大量数据,被广泛采用。2.6.4消息传递通信方式消息传递通信方式不仅适合计算机内部通信,也支持计算机网络通信,消息传递通信方式得到广泛应用。消息传递通信一般分为消息缓冲通信、信箱通信和基于消息传递通信等三种。消息缓冲通信的实现发送原语和接收原语一般应用格式如下:send(receiver,mes

58、sage);receive(sender,message)或receive(message); 信箱通信的实现信箱通信方式中也使用原语操作,如发送原语与接收原语等。此外,许多时候都存在着多个发送进程和多个接收进程共享信箱的情况。信箱发送原语和接收原语一般应用格式如下:send(mailbox,message);receive(mailbox,message);3.基于消息传递通信的实现 基于消息传递的通信基于消息传递的通信方式,不仅适合计算机内部通信,也支持计算机网络通信,消息传递通信方式在现代操作系统中得到了广泛的应用。如图所示,在Internet上客户机/服务器的关系并不是一成不变的。当提

59、供服务时,该节点是服务器。当从其他节点获得服务时,该节点就是客户机。通信方式通信原语一般应用格式如下:客户机端:send(server-socket,&m1)receive(client-port,&m2)服务器端:receive(server-port,&m1)send(m1.source-socket,&m2)其中:&m1、&m2:请求包和应答包的地址;server-socket:服务器的套接字;server-port: 服务器的端口;client-port:客户机的端口;m1.source-socket客户机的套接字;。2.7网络通信2.7.1端口 端口(port)就是运输层服务访问点T

60、SAP。端口是用来标识应用层的进程。当客户机进程发出连接请求时,它被主机赋予一个端口。在运输层与应用层的接口上所设置端口是一个16bit的地址,并用端口号进行标识。端口就是一个抽象的定位符,可以理解为一种邮箱。熟知端口,其数值一般为01023。 一般端口,用来随时分配给请求通信的客户进程。该端口是大于1024的某个任意数。2.7.2套接字套接字(socket)可定义为通信的端点。一对通过网络通信的进程需要使用一对套接字。套接字由IP地址和端口号连接组成。 主机A某进程1可能被赋予端口1500。该连接有一对套接字组成:主机A上的套接字(3:1500),网络服务器上的套接字(:80);同样主机A某

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论