操作系统教程第四版(孙钟秀)全部课件_第1页
操作系统教程第四版(孙钟秀)全部课件_第2页
操作系统教程第四版(孙钟秀)全部课件_第3页
操作系统教程第四版(孙钟秀)全部课件_第4页
操作系统教程第四版(孙钟秀)全部课件_第5页
已阅读5页,还剩961页未读 继续免费阅读

下载本文档

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

文档简介

第1章操作系统概论主要内容1.1操作系统概观1.2操作系统的形成和发展1.3操作系统提供的服务和用户接口1.4操作系统结构和运行模型1.5流行操作系统简介11.1操作系统概观1.1.1操作系统的定义和目标1.1.2操作系统的资源管理技术1.1.3操作系统的作用与功能1.1.4操作系统的主要特性21.1.1操作系统的定义和目标

操作系统是管理系统资源、控制程序执行,改善人机界面,提供各种服务,合理组织计算机工作流程和为用户有效使用计算机提供良好运行环境的最基本的一种系统软件。3操作系统的主要目标方便用户使用扩充机器功能管理系统资源提高系统效率构筑开放环境4计算机系统的层次结构(1)

财务系统航空订票上网浏览电子商务科学计算(应用软件)编译程序汇编程序数据库(支撑软件)操作系统(系统软件)操作系统(系统软件)计算机硬件………用户n用户4用户3用户2用户1实用程序5计算机系统的层次结构(2)

硬件层提供基本的可计算性资源,如处理器、寄存器、存储器及各种I/O设备。操作系统层负责管理和控制计算机硬件并对其做首次扩充和改造。系统程序层(支撑软件层)利用系统所提供的扩展指令集,实现编译、汇编等实用程序,支持应用软件的开发和运行。应用层解决用户特定的或不同应用所需要的信息处理问题。6操作系统与支撑软件及应用软件的区别程序意图不同,操作系统有权分配资源,而其它程序只能使用资源;操作系统是软件系统的核心,是各种软件的基础运行平台;通用操作系统提供共性功能支持,与硬件相关但和应用领域无关;支撑软件及应用软件不能直接而只能通过操作系统来使用计算机系统的物理资源。71.1.2操作系统的资源管理技术资源复用(解决物理资源数量不足)

资源虚化(解决物理资源数量不足,提高服务的能力和水平)资源抽象(处理系统的复杂性,解决资源的易用性)

1.资源管理技术81)资源复用(1)空分复用共享

--该资源可进一步分割成更多和更小的单位供进程使用。如内存、磁盘。(2)时分复用共享--并不把资源进一步分割成更小的单位,进程可在一个时间片内独占使用整个物理资源。如处理器。92)资源虚化是对资源进行转化、模拟或整合,把物理上的一个资源变成逻辑上的多个对应物的一类技术。虚化的例子—虚拟设备、虚拟存储器、虚拟屏幕(终端)、虚拟信道、虚拟文件。103)资源抽象资源抽象用于处理系统的复杂性,重点解决资源的易用性。资源抽象指通过创建软件来屏蔽硬件资源物理特性和接口细节,简化对硬件资源的操作、控制和使用的一类技术。单级资源抽象与多级资源抽象。114)组合使用抽象和虚化技术对于一类资源,操作系统往往同时实施抽象和虚化技术。例1,为打印机既配置“打印函数”(设备驱动程序),又实施虚拟设备,通过打印函数抽象隐蔽打印机动作细节,实施SPOOLing虚化“扩充”物理打印机数量。例2,窗口软件是对物理终端的虚化和抽象,能为用户提供虚拟终端和方便的I/O服务。122.操作系统中的基础抽象进程抽象是对已进入主存正在运行的程序在处理器上操作的状态集的抽象。虚存抽象是对物理主存的抽象,进程可获得一个硕大的连续地址空间来存放可执行程序和数据,可使用虚拟地址来引用物理主存单元。文件抽象是对磁盘之类存储设备的抽象。13文件抽象是操作系统对磁盘设备的多层次抽象第一层抽象,从磁盘到分区。第二层抽象,从分区到扇区。第三层抽象,从扇区到簇。第四层抽象,从簇到文件系统分区。14操作系统最基础抽象小结

文件抽象虚存抽象进程抽象

处理器

主存

设备153.虚拟计算机什么是虚拟计算机?虚拟计算机是一台抽象计算机,它在硬件的基础上由软件来实现,并且与物理计算机一样,具有指令集及可用的存储空间。什么是操作系统虚拟机?如果某台机器上配有操作系统,对于用户来说,就是一台以操作系统语言(系统调用)为机器语言的操作系统虚拟机。操作系统虚拟机的组成:1)虚处理器2)虚拟主存3)虚拟辅存4)虚拟设备16虚拟计算机操作系统资源管理(复用、虚化、主抽象)处II理//主辅器OO存存设设备备

物理计算机虚虚虚虚处主辅设理存存备器

虚拟机n进程Pn时分复用共享空分复用共享…虚虚虚虚处主辅设理存存备器虚拟机1进程P117

1.1.3操作系统的作用与功能操作系统的作用:对内是“管理员”,对外是“服务员”:OS作为用户接口和服务提供者OS作为作为扩展机或虚拟机OS作为资源管理者和控制者18OS作为用户接口和服务提供者操作系统提供友善的人机接口,使得用户能够方便、可靠、安全、高效地使用硬件和运行应用程序;操作系统对计算机硬件进行改造和扩充,为用户提供强有力的各种服务;19OS作为扩展机或虚拟机在计算机裸机上加上操作系统来组成整个计算机系统;操作系统把硬件的复杂性与用户隔离开来;操作系统与硬件组成一台功能显著增强,使用更加方便,安全可靠性更好的扩展机器或虚拟机。20操作系统作为计算机系统的资源管理者(1)操作系统中,能分配给用户使用的硬件和软件设施总称为资源,包括两类:硬件资源和信息资源。硬件资源又分:处理器、存储器、I/O设备等;信息资源又分:程序和数据等。也可把操作系统定义为:是能使诸用户有效、方便地共享一套计算机系统资源的一种系统软件。21操作系统作为计算机系统的资源管理者(2)操作系统的重要任务之一对资源进行抽象研究,找出各种资源共性和个性,有序地管理计算机中的硬件、软件资源,跟踪资源使用情况,监视资源的状态,满足用户对资源的需求,协调各程序对资源的使用冲突;研究使用资源的统一方法,让用户简单、有效的使用资源,最大限度地实现各类资源的共享,提高资源利用率,从而,使得计算机系统的效率有很大提高。22

操作系统的功能处理机管理存储管理设备管理文件管理网络与通信管理用户接口23处理机管理(1)进程控制和管理;(2)进程同步和互斥;(3)进程通信;(4)进程死锁;(5)线程控制和管理;(6)处理器调度,又分高级调度,中级调度和低级调度。24存储管理(1)主存分配;(2)地址转换与存储保护;(3)主存共享;(4)存储扩充。25设备管理(1)提供设备中断处理;(2)提供缓冲区管理;(3)提供设备独立性,实现逻辑设备到物理设备之间的映射;(4)设备的分配和回收;(5)实现共享型设备的驱动调度;(6)实现虚拟设备。26文件管理(1)提供文件的逻辑组织方法;(2)提供文件的物理组织方法;(3)提供文件的存取和使用方法;(4)实现文件的目录管理;(5)实现文件的共享和安全性控制;(6)实现文件的存储空间管理。27网络与通信管理(1)网络资源管理;(2)数据通信管理;(3)网络管理。用户接口(1)程序接口;(2)操作接口。281.1.4操作系统的主要特性第一个特性--并发性第二个特性--共享性第三个特性--异步性

29操作系统中的并发性(1)

并发性指两个或两个以上的事件或活动在同一时间间隔内发生。发挥并发性能够消除系统中部件和部件之间的相互等待,有效地改善系统资源的利用率,改进系统的吞吐率,提高系统效率。30

并发性使系统变得复杂化:如何从一个活动切换到另一个活动?怎样将各个活动隔离开来,使之互不干扰,免遭对方破坏?怎样让多个活动协作完成任务?怎样协调多个活动对资源的竞争?如何保证每个活动的资源不被其它进程侵犯?多个活动共享文件数据时,如何保证数据的一致性?操作系统中的并发性(2)

31采用并发技术的系统称多任务系统。并发的实质是一个物理CPU(也可以多个物理CPU)在若干道程序之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。结论:实现并发技术的关键之一是如何对系统内的多个活动(进程)进行切换的技术。操作系统中的并发性(3)32并行性两个或两个以上的事件或活动在同一时刻发生并行的事件或活动一定是并发的,但反之并发的事件或活动未必是并行的。并行性是并发性的特例,而并发性是并行性的扩展。操作系统中的并发性(4)33操作系统中的共享性共享指操作系统中的资源可被多个并发执行的进程所使用:透明资源共享:资源隔离与授权访问

显式资源共享:临界资源与独占访问与共享性有关的问题:资源分配、信息保护、存取控制等,必须要妥善解决好。34操作系统中的异步性(1)操作系统中的异步性处处可见:(1)进程何时执行?何时暂停?怎样的速度向前推进?都是异步(随机)的。(2)作业到达系统的类型和时间是随机的;(3)操作员发出命令或按按钮的时刻是随机的;(4)程序运行发生错误或异常的时刻是随机的;(5)各种各样硬件和软件中断事件发生的时刻是随机的。35操作系统中的异步性(2)

异步性给系统带来潜在危险,有可能导致与时间有关的错误。操作系统的一个重要任务是必须确保捕捉任何一种随机事件,正确处理可能发生的随机事件,正确处理任何一种产生的事件序列,否则将会导致严重后果。361.2操作系统的发展和形成1.2.1人工操作阶段1.2.2

管理程序阶段1.2.3多道程序设计与操作系统的形成1.2.4操作系统的分类371.2.1人工操作阶段人工把源程序用穿孔机穿制在卡片或纸带上将准备好的汇编解释程序或编译系统装入计算机汇编程序或编译系统读入人工装在输入机上的穿孔卡或穿孔带执行汇编过程或编译过程,产生目标程序,并输出目标卡片迭或纸带通过引导程序把装在输入机上的目标程序读入计算机启动目标程序执行,从输入机上读入人工装好的数据卡或数据带产生计算结果,执行结果从打印机上或卡片机上输出38人工操作阶段的缺点用户上机独占全机资源,造成资源利用率不高,系统效率低下手工操作多,浪费处理机时间,也极易发生差错数据的输入,程序的执行、结果的输出均联机进行,从上机到下机的时间拉得非常长391.2.2管理程序阶段(1)

工作流程如下:操作员集中一批用户提交的作业,由管理程序将作业从纸带或卡片机输入到磁带上,每当一批作业输入完成后,管理程序自动把磁带上的第一个作业装入主存,并把控制权交给作业。当该作业执行完成后,作业又把控制权缴回管理程序,管理程序再调入磁带上的第二个作业到主存执行40管理程序阶段(2)中断处理设备驱动作业定序命令和JCL语言解释器用户程序区管理程序的主存组织41管理程序阶段(3)管理程序的主要功能:自动控制和处理作业流提供一套操作命令提供设备驱动和I/O控制功能提供库函数和程序装配功能提供简单的文件管理功能42管理程序阶段(4)程序算题过程管理程序还有未处理作业取下一个作业步控制卡读Job卡登记新作业End作业卡回收资源撤离作业执行作业步作业步正常结束分析原因作相应处理作业继续执行转向某作业步SSSFFF结束43

1.2.3多道程序设计与操作系统形成1.

多道程序设计的概念中断与通道多道程序设计是指允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法从宏观上看是并行的从微观上看是串行的引入多道程序设计技术的目的:可以提高CPU的利用率,充分发挥计算机硬件的并行性。44多道程序设计例(1)78输入机处理器磁带机130150228280300378430450时间单道算题运行时处理器的使用效率

52/(78十52十20)≈35%45多道程序设计例(2)78输入机处理器磁带机1130150228280300378430450时间磁带机2打印机P1P2P1P2两道算题运行时处理器的使用效率(52+42)/150≈63%46多道程序设计的效果采用多道程序设计提高了系统效率,即增长了单位时间的算题量,但对每道程序来说,却延长了计算时间。多道程序设计技术提高资源利用率和系统吞吐率是以牺牲用户的响应时间为代价的。472.多道程序设计的道数问题程序等待I/O操作的时间占其运行时间的比例为p,当主存中有n道程序时,所有程序都等待I/O的概率是pn,那么,

CPU利用率=1-pnn称为多道程序的道数或度数,可见CPU的利用率是n的函数。48多道程序设计的优点与缺点提高了CPU的利用率提高了主存和I/O设备的利用率改进了系统的吞吐率充分发挥了系统的并行性其主要缺点是:作业周转时间延长49

3.多道程序设计系统与多重处理系统

多重处理系统是指配置了多个物理CPU,能真正同时执行多道程序的系统。要有效地使用多重处理系统,必须采用多道程序设计技术;反过来,多道程序设计不一定要求有多重处理系统支持。实现多道程序设计必须解决三个问题:存储保护与程序浮动;处理器的管理和调度;系统资源的管理和调度。50

操作系统资源管理水平和操作自动化程度进一步提高,表现在:(1)实现了计算机操作过程自动化。(2)资源管理水平有了提高。(3)提供虚存管理功能。(4)支持分时操作。(5)文件管理功能有改进。(6)多道程序设计趋于完善。511.2.4操作系统的发展与分类三种基本的操作系统类型:(1)批处理操作系统(2)分时操作系统

(3)实时操作系统52批处理操作系统何谓“批”?作业流与批处理作业是把程序、数据连同作业说明书组织起来的任务单位;批处理是把批中的作业预先输入作业队列,由操作系统按照作业说明书的要求来调度和控制作业的执行。批处理操作系统(BatchOS)采用批处理方式工作的操作系统批处理系统的主要特征:用户脱机工作成批处理作业多道程序运行作业周转时间长

53分时操作系统为什么要有分时操作系统?批处理用户不能干预自己程序的运行,无法得知程序的运行情况,不利于程序调试和排错。分时操作系统(TimeSharingOperatingSystem)允许多个联机用户同时使用一个计算机系统进行交互式计算的操作系统。分时系统的特征同时性独立性及时性交互性54分时与批处理操作系统的区别目标不同适应作业的性质不同资源使用率不同作业控制方式不同55实时操作系统(1)三种典型的实时系统:过程控制系统(生产过程控制)信息查询系统(情报检索)事务处理系统(银行业务)56实时操作系统(2)实时操作系统(RealTimeOS)处理流程数据采集加工处理操作控制反馈处理57操作系统的进一步发展操作系统发展的主要动力:(1)器件快速更新换代。(2)计算体系结构不断发展。(3)提高计算机系统资源利用率的需要。(4)让用户使用计算机越来越方便的需要。(5)满足用户新要求,提供给用户新服务。

58微机操作系统新一代微机操作系统具有以下功能:GUI、多用户和多任务、虚拟存储管理、网络通信支持、数据库支持、多媒体支持、应用编程支持API具有以下特点:(1)开放性(2)通用性(3)高性能(4)采用微内核结构59并行操作系统计算机的应用每前进一步都要求增加计算机的处理能力。为达到极高性能,除提高元器件速度外,必须改进计算机系统结构,这主要采用增加同一时间间隔内的操作数量,通过并行处理技术,研究并行计算机。60网络操作系统网络操作系统(NetworkOperatingSystem)网络操作系统应该具有的功能:(1)网络通信(2)资源管理(3)网络管理(4)网络服务61分布式操作系统分布式计算机系统由多台分散的计算机经互连网络连接而成,具备四项基本功能:(1)进程通信(2)资源共享(3)并行计算(4)网络管理分布式操作系统与单机集中式操作系统的主要区别在于:(1)资源管理(2)进程通信:(3)系统结构:62嵌入式操作系统(1)

3C(computer,communication,consumerelectronics)计算机是贯穿社会信息化的核心技术,网络和通信是社会信息化赖以存在的基础设施,电子消费产品是人与社会信息化的主要接口。嵌入式(计算机)系统的应用环境带来了对嵌入式系统软件(embeddedsoftware)的要求。63嵌入式操作系统(2)嵌入式OS指运行在嵌入式(计算机)环境中,对整个系统及所有操作的各种部件、装置等资源进行统一协调、处理、指挥和控制的系统软件嵌入式OS具有通常操作系统的功能,包括:与硬件相关的底层软件、操作系统核心功能,功能强大的还提供图形界面、通信协议、小型浏览器等设施64嵌入式操作系统特征微型化可定制实时性可靠性易移植性65嵌入式操作系统实例(1)VxWorks是美国WindRiver公司开发的嵌入式实时操作系统,可靠性高、性能卓越、界面友好,广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,在美国的F-16、FA-18战斗机、B-2隐形轰炸机、爱国者导弹,和火星探测器(97年4月在火星表面登陆)上使用。66嵌入式操作系统实例(2)WindowsCE是微软开发的,用于通信、娱乐和移动式计算设备的操作系统(平台),它是微软“维纳斯”计划的核心。CE是具有开放性的,32位多任务、多线程嵌入式操作系统。PersonalJava是SUN公司开发的用于家庭、办公室和移动信息电器创建连网应用的Java应用环境,适宜更新换代快的信息电器的应用开发。671.3操作系统提供的服务和用户接口1.3.1基本服务和用户接口1.3.2程序接口与系统调用1.3.3作业接口与操作命令681.3.1操作系统提供的基本服务创建程序执行程序数据I/O信息存取通信服务错误检测和处理还具有另外一些功能:资源分配,统计,保护。

691.3.2程序接口与系统调用

系统调用(程序接口)操作命令操作系统裸机

应用程序命令管理(作业接口)70操作系统提供的程序接口(1)什么是系统调用?系统调用把应用程序的请求传送至内核,调用相应的内核函数完成所需的处理,将处理结果返回给应用程序。系统调用的作用?内核可以基于权限和规则对资源访问进行裁决,保证系统的安全性;对资源进行抽象,提供一致性接口,避免用户在使用资源时发生错误,使编程效率提高。系统调用是应用程序获得操作系统服务的唯一途径。内核的主体是系统调用的集合,内核可以看成是特殊的公共子程序。71操作系统提供的程序接口(2)POSIX标准专门规定了内核的系统调用接口标准,操作系统若遵循此标准,应用程序就具有可移植性。API和库函数API是UNIX/Linux在标准C函数库中,将系统调用封装,使得应用程序能够直接使用的一种机制。库函数和系统调用一个API可能用到一个或多个系统调用若干API可能封装相同的系统调用也可能与系统调用无关(如strcpy())72操作系统提供的程序接口(3)调用fprintf()应用程序C函数库内核系统调用处理程序C库中的fprintf()封装程序C库中的write()封装程序用户态核心态sys_write()内核函数应用程序、库函数、系统调用的调用关系链73操作系统提供的程序接口(4)

用户

操作系统(进程管理、存储管理、文件管理、设备管理等)

标准库函数(打开、关闭、读、写、创建、撤销等)

标准系统程序(实用程序)(汇编、编译、编辑、Shell等)用户接口库函数接口系统调用接口

硬件

(处理器、存储器、磁盘、打印机、终端等)用户态核心态UNIX/Linux系统程序、库函数、系统调用分层关系74操作系统提供的操作接口操作接口又称作业级接口,操作系统为用户提供的操作控制计算机工作和提供服务手段的集合,通常有操作控制命令、图形操作界面(命令)、以及批处理系统提供的作业控制语言(命令)等等。75系统调用的分类(1)进程和作业管理(2)文件操作(3)设备管理(4)主存管理(5)信息维护(6)进程通信76系统调用的实现要点编写系统调用处理程序;设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理程序,有的系统还包含系统调用自带参数的个数;陷入处理机制需开辟现场保护区,以保存发生系统调用时的处理器现场。77系统调用的处理过程SystemCall用户程序A0SUB0SUB1SUBiSUBnA1AiAn……系统调用处理子程序取系统功能号找入口地址表相应入口地址结束处理恢复现场A0A1…Ai…An保护CPU现场陷入指令系统调用陷入机构入口地址表78系统调用的参数传递一是由访管指令或陷入指令自带参数,直接参数间接参数二是通过CPU的通用寄存器传递参数,或在主存的一个块或表中存放参数,其首地址送入寄存器,实现参数传递。三是在主存中开辟专用堆栈区域传递参数。79系统调用与函数调用的区别调用形式和实现方式不同。函数调用转向的地址固定,而系统调用按功能号进行;函数调用在用户态执行,只能访问用户栈,系统调用在核心态执行,访问核心栈。被调用代码的位置不同。函数调用是静态的,调用程序和被调用代码处于同一程序内;系统调用是动态的,系统调用的代码位于操作系统中。提供方式不同。函数由编程语言提供;系统调用由操作系统提供。801.3.3作业接口与操作命令操作接口又称作业级接口,是操作系统为用户操作控制计算机工作和提供服务的手段集合,通常可借助操作控制命令、图形操作界面(命令)、以及作业控制语言(命令)等来实现1、作业控制方式联机作业控制方式与作业控制语言脱机作业控制方式与操作控制命令

81联机用户接口—操作控制命令命令行方式批命令方式图形化方式

82脱机用户接口—作业控制语言批处理接口:作业控制语言JCL(JobControlLanguage)。用户使用JCL语句,把运行意图(需要对作业进行的控制和干予)写在作业说明书上,将作业连同作业说明书一起提交给系统。批处理作业的调度执行过程,系统调用JCL语句处理程序或命令解释程序。83IBM370

使用JCL

处理批作业的例子

//HAROLDJOB,WILSON,MSGLEVEL=(2,0),PRTY=6,CLASS=B//COMPEXECPGM=IEYFORT//SYSPRINTDDSYSOUT=A//SYSINDD/*··<SOURCEPROGRAMCARDS>··/*//GOEXECPGM=FORTLINK//SYSPRINTDDSYSOUT=A//FTOTF001DDUNIT=SYSCP//GOSYSINDD/*··<DATACARDS>··/*//842.命令解释程序接收用户所输入的命令,并解释执行命令。命令的实现方式:命令的解释程序包含命令的执行代码,一旦收到命令后,便转向相应的命令处理代码执行;由专门的“实用程序”实现,在执行时把命令所对应的命令处理文件装入主存。853.支撑程序(1)支撑程序又称标准程序或实用程序(Utilities),虽非操作系统的核心,但却必不可少,为用户程序的开发、调试、执行、和维护解决带有共性的问题或执行公共操作。操作系统以外部操作命令形式向用户提供实用程序。它的功能和性能很大程度上反映了操作系统的功能和性能。86

支撑程序(2)支撑程序的分类:文件管理状态信息程序设计语言支持程序的装入和执行支持通信其它软件工具

871.4操作系统结构和运行模型1.4.1操作系统的构件和结构1.4.2操作系统的运行模型1.4.3Windows2003客户/服务器结构881.4.1操作系统构件和结构操作系统设计呈现出以下特征:复杂程度高,生成周期长,正确性难保证。操作系统结构设计有三层含义:研究操作系统整体结构,如功能如何分块,相互如何交互,及考虑构造它的过程和方法;研究操作系统程序局部结构,包括数据结构和控制结构;操作系统运行时的组织,如系统是否组织成进程或线程?在系统空间还是在用户空间运行?89操作系统的构件内核进程线程类程管程901.操作系统的内核(1)

1)什么是内核?

内核是一组程序模块,作为可信软件来提供支持进程并发执行的基本功能和基本操作,通常驻留在内核空间,运行于核心态,具有访问硬件设备和所有主存空间的权限,是仅有的能够执行特权指令的程序。2)内核分类:微内核和单内核(整体、分层)。3)Linux是单内核操作系统,Mach是微内核操作系统,Windows2003是C/S结构操作系统。91操作系统的内核(2)

Linux单内核结构

用户态

系统库(函数库)应用程序

系统调用接口

模块内核(进程管理、存储管理、文件管理、设备管理、网络管理)

设备驱动

计算机硬件核心态单内核92操作系统的内核(3)

微内核结构操作系统服务进程客户进程1客户进程2文件服务器进程服务器主存服务器……

微内核(消息传递)

计算机硬件

用户进程用户态核心态客户通过微内核发送消息给文件服务器93操作系统的内核(4)微内核结构的实现思想(OS分成两部分):一是运行在核心态的内核,提供系统的基本功能;二是运行在用户态并以客户-服务器方式运行的进程层。微内核结构的优点:对进程的请求提供一致性接口;具有较好的可扩充性和易改性;可移植性好;对分布式系统提供有力的支撑。94内核的基本功能资源抽象资源分配资源共享

95内核的基本属性核是由中断驱动的内核是不可抢占的内核部分程序在屏蔽中断状态下执行内核可以使用特权指令96

内核是操作系统对裸机的第一次改造,内核和裸机组成的虚拟机具有以下特性:虚拟机没有中断;虚拟机为每个进程提供了一台虚拟处理器;虚拟机为进程或模块提供了功能较强的指令系统。虚拟机具有的特性97机制与策略分离(1)

在策略与机制分离的操作系统中,解决应用问题均可分成两部分:提供及实现确定的功能(机制),常常将机制作为系统的可信软件来实现;如何使用这些功能(策略),可在不可信的环境中定义策略。

98机制与策略分离(2)

例子:调度机制与调度策略的分离机制与策略分离的原则:

(1)机制由OS实现,策略留给用户完成;

(2)机制放在底层,策略放在高层;

(3)机制集中在少数模块,策略拟散布在多处。

992.进程进程使得操作系统的结构变得清晰:一个进程到另一个进程的控制转移由进程调度机制来统一管理;进程之间的交互由通信及同步机制完成,提高了系统的安全性和可靠性。3.线程线程可看做一种构件,是组成进程构件的更小的构件单位。进程是资源分配的基本单位;线程是系统调度的基本单位。1004.管程管程是管理共享资源的一种同步机制,对管程的调用表示对共享资源的请求与释放。管程可以被多个进程或管程嵌套调用,但是它们只能互斥的访问管程。管程应包含条件变量,对进程进行挂起和释放。5.类程类程用于管理私有资源,只能被进程及起源于同一进程的其它类程或管程嵌套调用链所调用。1011.4.2操作系统的运行模型操作系统本身是一组程序,也在处理器上运行,那么,操作系统程序是否组织成进程?它是如何控制的、怎样执行的呢?它在什么模式下运行呢?从操作系统的运行方式来看,可分成:

1)非进程内核模型

2)OS功能(函数)在用户进程内执行的模型

3)OS功能(函数)作为进程执行的模型102操作系统的运行模型(1)

1)非进程内核模型应用进程应用进程内核应用进程…核心态用户态103操作系统运行模型(2)

2)OS功能在用户进程内执行的模型核心态用户态内核函数内核函数内核函数应用进程应用进程…进程切换函数应用进程104

操作系统的运行模型(3)

3)OS功能作为独立进程执行的模型微内核(进程切换函数)应用进程…OS函数…用户态核心态应用进程OS函数应用进程OS函数1051.4.3Windows2000/XP客户/服务器结构

结构简框

系统进程服务进程应用程序环境子系统

子系统动态链接库用户态核心态

执行体核心设备驱动程序硬件抽象层图形引擎106Windows2000/XP客户/服务器结构(2)系统线程NTDLL.DLLService.exeRPCSpooler事件日志服务进程任务管理器IE浏览器用户程序子系统DLL应用程序POSIXOS2WIN32环境子系统服务管理器安全验证Win登录会话管理器系统进程核心态用户态Win32UserGDI图形驱动器硬件抽象层(HAL)设备驱动程序内核对象管理器核心态可调用接口(执行程序API)系统服务调度进程I/O管理器文件缓存管理

进程线程管理安全访问监视虚存管理局部过程调用注册表配置管理器电源管理器即插即用管理硬件接口(总线、I/O、时钟、计时器、中断、DMA、CACHE控制器)1071.5流行操作系统简介1.5.1Windows操作系统1.5.2UNIX操作系统家族1.5.3自由软件和Linux操作系统1.5.4IBM系列操作系统1.5.5其他流行操作系统1081.5.1Windows操作系统(1)

Windows操作系统概况(2)WindowsNT的技术特点(3)Windows2000/XP(4)WindowsServer2003WindowsXP64-BitEdition(5)

WindowsCE1091.5.2UNIX操作系统家族(1)1雏形阶段2成型阶段3商业化阶段

4标准化阶段110U

N

I

X

操作系统

家族(2)

V1(71年)V3(73年)V6(75年)V7、V8V9V10(89年)Plan91BSD(78年)2BSD(78年)3BSD(79年)4BSD(80年)4.2BSD4.3BSD4.4BSD(93年)2.9BSD2.10BSD2.11BSDV7(78年)PWBPWB2systemⅢsystemⅤⅤ.2(84年)Ⅴ.3(87年)Ⅴ.3.2SVR4(89)XenixXenix2SCOIBMAIXSUNOSSolarisOSF1MachDecOSFDigitalUNIXTur64UNIXHPUXLinux111UNIX操作系统(3)UNIX的体系结构包含四个基本成分:内核(Kernel)Shell文件系统公用程序112UNIX操作系统(4)UNIX的主要特点(8个P49)UNIX的发展趋势(标准)计算机发展史上,没有哪个程序设计语言像C那样得到如此广泛的流行,也没有哪个操作系统像UNIX那样获得普遍的青睐和应用,对整个软件技术和软件产业都产生了深远的影响。1983年Ritcchie和Thompson共同获得了ACM图灵奖和软件系统奖。113UNIX类操作系统Solaris操作系统FreeBSD操作系统1141.5.3自由软件和Linux操作系统商业软件共享软件自由软件自由软件是指遵循通用公共许可证GPL(GeneralpublicLicense)规则,保证您有使用上的自由、获得源程序的自由,可以自己修改的自由,可以复制和推广的自由,也可以有收费的自由的一种软件GNU的含义是GNUisnotUNIX的意思,由自由软件的倡导者Richardstallman先生指导并启动的一个组织成立了自由软件基金会GNU写出一套和UNIX兼容,但又是自由软件的UNIX系统,GNU完成了大部分外围工作,包括外国命令gcc/gcc++,shell等,最终Linux内核为GNU工程划上了一个完美句号115Linux操作系统Linux是由芬兰藉科学家LinusTorvalds于1991年编写完成的操作系统内核。许多人对Linux进行改进、扩充、完善,做出了关键性贡献。Linux由最初一个人写的原型变成在Internet上由无数志同道合的程序高手们参与的一场运动。Linux操作系统的技术特点。1161.5.4IBM系列操作系统RS/6000系列UNIX服务器及SP结点群集计算机,运行AIX操作系统S/390企业级服务器,运行OS/390、VM和DOS/VSE操作系统Definity通用服务器,运行基于Intel的WindowsNT、Netware等操作系统AS/400服务器首次采用64位RISC技术,运行OS400操作系统。PC微型机,运行Windows9x、OS2、MS-DOS等操作系统。1171.5.5其它流行的操作系统1.Mach操作系统Mach的发展历史Mach的设计目标为建造其它操作系统提供基础;支持大型稀疏地址空间;允许对网络资源的透明访问;从系统和应用两个方面开发并行性;可移植。Mach采用的主要技术微内核机构面向对象程序设计方法多处理器调度分页存储管理1182.Macintosh操作系统美国Apple公司推出Macintosh机操作系统。MAC是全图形化界面和操作方式的鼻祖。由于它拥有全新的窗口系统、强有力的多媒体开发工具和操作简便的网络结构而风光一时MAC操作系统的主要特点有

1)采用面向对象技术;

2)全图形化界面;

3)虚拟存储管理技术;

4)应用程序间的相互通信;

5)强有力的多媒体功能;

6)简便的分布式网络支持;

7)丰富的应用软件。1193.Netware操作系统Netware是Novell公司开发的网络操作系统。具有高性能文件系统、支持DOS、OS/2、MAC、及UNIX文件格式;具有三级容错,可靠性高;安全保密性好;提供开放的开发环境。Netwarelite是廉价点对点NOS,支持25个用户,每个结点可作为对等机。Netware2.2是为小单位和工作组开发的NOS,满足工作组用户的各种需要Netware3.1x是32位NOS,更能发挥高档PC的计算能力,支持用户可达256个,能支持DOS,Windows、Macintosh、OS/2和UNIX工作站访问Netware服务器。Netware4.xx是其NOS新版,增强了网络目录服务,支持用户数可达1000个。1204.MINIX操作系统荷兰Vrije大学计算机系教授AndrewS.Tanenbavm开发一个与UNIX兼容,然而内核全新的操作系统。Minix没有借用AT&T一行代码,学生可以通过它来剖析一个操作系统,研究其内部如何运作,其名称源于‘小UNIX’,因为它非常简洁,短小,故称MinixMinix用C语言编写,着眼于可读性好,代码中加入数千行注释。可运行在IBMPC,Macintosh,Sparc,Amiga,Atari等许多平台上Minix恪守“SmallisBeautiful”的原则,早期Minix没有硬盘就能运行。目前常用的是Minix2.0,具有多任务处理能力,可支持三个用户同时工作,支持TCP/IP,支持4GB主存。提供5个编辑器、200个实用程序121作业P58应用题1P59应用题7122第2章处理器管理主要内容中央处理器中断技术进程及其实现线程及其实现Linux进程与线程Windows2003进程与线程处理器调度处理器调度算法Linux调度算法Windows2003调度算法1232.1中央处理器2.1.1处理器2.1.2程序状态字寄存器1242.1.1处理器

1.单处理器和多处理器系统单处理器系统顺序处理流水线技术发射体系结构125多处理器系统共享存储(紧密耦合)多处理器系统共享所有处理器且平等的访问同一个物理主存主从式对称式分布存储(松散耦合)多处理器系统每个处理器均拥有自己的主存,处理器之间通过网络相连,在需要时通过网络交换数据。集群系统1262.寄存器(1)计算机系统的处理器包括一组寄存器,其个数根据机型的不同而不同,它们构成了一级存储,比主存容量小,但访问速度快。这组寄存器所存储的信息与程序的执行有很大关系,构成了处理器现场。127寄存器(2)通用寄存器--EAX,EBX,ECX和EDX指针及变址寄存器--ESP,EBP,ESI及EDI段选择符寄存器--CS、DS、SS、ES、FS、GS指令指针寄存器和标志寄存器--EIP、EFLAGS控制寄存器--CR0,CR1,CR2和CR3外部设备使用的寄存器—数据寄存器或缓冲区,状态寄存器,控制寄存器1283.特权指令与非特权指令(1)机器指令的集合称指令系统

(1)数据处理类指令;

(2)转移类指令;

(3)数据传送类指令;

(4)移位与字符串指令;

(5)I/O类指令。129特权指令与非特权指令(2)从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分作两部分:特权指令和非特权指令。特权指令是指只能提供给操作系统的核心程序使用的指令,如启动I/O设备、设置时钟、控制中断屏蔽位、清主存、建立存储键,加载PSW等。1304.处理器状态处理器怎么知道当前是操作系统还是一般用户程序在运行呢?处理器状态标志管理状态(特权状态、系统模式、特态或管态)用户状态(目标状态、用户模式、常态或目态)。处理器处于管理状态时,程序可以执行全部指令,使用所有资源,具有改变处理器状态的能力;处理器处于用户状态时,程序只能执行非特权指令Intelx86的处理器状态有四种,支持4个保护级别,0级权限最高,3级权限最低131处理器状态的转换用户态——核心态程序请求操作系统服务,执行系统调用;在程序运行时,产生中断或异常事件,运行程序被中断,转向中断处理程序或异常处理程序工作。核心态——用户态特权指令(加载程序状态字)1322.1.2程序状态字寄存器(1)计算机如何知道当前处于何种工作状态?这时能否执行特权指令?通常操作系统都引入程序状态字PSW(ProgramStatusWord)来区别不同的处理器工作状态。PSW用来控制指令执行顺序并保留和指示与程序有关的系统状态,主要作用是实现程序状态的保护和恢复。每个程序都有一个与其执行相关的PSW,每个处理器都设置一个PSW寄存器。程序占有处理器执行,它的PSW将占有PSW寄存器。133程序状态字寄存器(2)PSW寄存器包括以下内容:程序基本状态:

(1)程序计数器;

(2)条件码;

(3)处理器状态位。中断码:保存程序执行时当前发生的中断事件。中断屏蔽位:指明程序执行中发生中断事件时,是否响应出现的中断事件。134IBM360/370系列计算机-程序状态字的基本格式

XXXXXXXXXXXXXXXX8位系统屏蔽4位CMWP字段4位程序屏蔽4位保护键16位中断码字段指令长和条件码24位指令地址135Intelx86程序状态字Intelx86中,PSW由标志寄存器EFLAGS和指令指针寄存器EIP组成,均为32位。EFLAGS的低16位称FLAGS,标志可划分为三组:状态标志控制标志系统标志1362.2中断技术2.2.1中断概念2.2.2中断源分类2.2.3中断和异常的响应及服务2.2.4中断事件处理2.2.5中断优先级和多重中断2.2.6Linux中断处理2.2.7Windows2003中断处理1372.2.1中断的概念请求系统服务实现并行工作处理突发事件满足实时要求

都需要打断处理器正常的工作,为此,提出了中断概念。138中断的定义中断是指程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程。1392.2.2中断源分类1.按中断事件的性质和激活的手段分类:

强迫性中断事件:强迫性中断事件不是正在运行的程序所期待的,而是由于某种事故或外部请求信息所引起的,分为:机器故障中断事件程序性中断事件外部中断事件输入输出中断事件自愿性中断事件:自愿性中断事件是正在运行的程序所期待的事件。

140按中断事件的性质和激活方式划分图示运行程序中断处理程序中断装置中断处理程序中断装置机器故障中断事件程序性中断事件外部中断事件输入输出中断事件运行程序访管指令1412.按事件来源和实现手段分类硬中断软中断外中断(中断、异步中断)内中断(异常、同步中断)信号软件中断按事件来源和实现手段分类142硬中断外中断(中断或异步中断)--是指来自处理器之外的中断信号,包括时钟中断、键盘中断、它机中断和设备中断等;外中断又分可屏蔽中断和不可屏蔽中断,每个不同中断具有不同的中断优先级,表示事件的紧急程度,在处理高一级中断时,往往会屏蔽部分或全部低级中断。内中断(异常或同步中断)--是指来自处理器内部,通常由于程序执行中,发现与当前指令关联的、不正常的、或是错误的事件。143中断和异常的区别中断是由与现行指令无关的中断信号触发的(异步的),且中断的发生与CPU处在用户模式或内核模式无关,在两条机器指令之间才可响应中断,一般来说,中断处理程序提供的服务不是为当前进程所需的;异常是由处理器正在执行现行指令而引起的,一条指令执行期间允许响应异常,异常处理程序提供的服务是为当前进程所用的。异常包括很多方面,有出错(fault),也有陷入(trap)等。

144Linux异常Linux为例,异常按错误报告方式分四种:故障陷阱终止编程异常

故障发生时保存的返回指令地址指向触发异常的当前那条指令,故障处理后会重新执行。编程异常和陷阱是由于执行访管指令引起的同步操作,异常返回时,回到触发异常的下一条指令。

145硬中断与软中断中断和异常要通过硬件设施来产生中断请求,是硬中断。软中断是利用硬中断的概念,用软件方法对中断机制进行模拟,实现宏观上的异步执行效果。软中断分两种信号软件中断146中断的通常用法

“中断”(硬中断)用于外部设备对CPU的中断(中断的是正在运行的任何程序),转向中断处理程序上半部分执行;“异常”(硬中断)因指令执行不正常而中断CPU(中断的是正在执行这条指令的程序),转向异常处理程序;“软件中断”(软中断)用于硬中断服务程序对内核的中断,在上半部分中发出软件中断(即标记下半部分),使得中断下半部分在适当时刻获得处理;“信号”(软中断)用于内核或进程对某个进程的中断,通知进程某个特定事件发生或迫使进程执行信号处理程序。147中断机制与信号机制进行类比

相同点概念上是一致的两者都是“异步”的实现上均采用“向量表”均具有“屏蔽”设施。不同点中断机制由硬件与软件相结合来实现,而信号机制由软件实现;中断向量表和中断处理程序(由系统提供)均在系统空间,而信号向量表虽在系统空间,但信号处理程序由应用程序提供,并在用户空间执行。148硬中断与软中断BH进行类比

(1)数组bh_base[]相当于硬件中断机制中的数组irq_desc[];(2)bh_active在概念上相当于硬件的“中断请求寄存器”,而bh_mask相当于硬件中的“中断屏蔽寄存器”;(3)执行一个BH函数时,就通过mark_bh()将bh_active中的某位设成1,相当于中断源发出(软件)中断请求,所设置的具体标志位则类似于“中断向量”;(4)如果bh_mask中的相应位是l,就会在每次执行完do_IRQ()中的中断服务程序后,及每次系统调用结束后,在函数do_bottom_half()中执行相应BH函数,而do_bottom_half(),则类似于do_IRQ()。149硬中断或软中断处理延时问题

CPU接到和响应硬中断或异常后会立即调用中断或异常处理程序处理;对于接收到的信号或软件中断,此时由于进程未必占有处理器运行或内核正在执行敏感性操作,通常会有一定时间的延迟,在适当的时刻内核或相关进程才能加以处理。信号和软件中断虽然都由软件产生,并都由软件处理,但它们的中断来源、使用场合、实现手段并不相同。150中断/异常响应要做四件事发现中断源保护现场转向处理中断/异常事件的处理程序恢复现场2.2.3中断和异常的响应及服务151IBM中大型机中断响应过程

外中断旧PSW访管中断旧PSW程序中断旧PSW机器故障中断旧PSWI/O中断旧PSW外中断新PSW访管中断新PSW程序中断新PSW机器故障中断新PSWI/O中断新PSW18202830385860687078现行PSW②中断时保存现行PSW③中断时装入现行PSW④中断后恢复PSW主存专用双字单元

(16进制)①装配中断码外中断旧PSW访管中断旧PSW程序中断旧PSW机器故障中断旧PSWI/O中断旧PSW外中断新PSW访管中断新PSW程序中断新PSW机器故障中断新PSWI/O中断新PSW18202830385860687078现行PSW②中断时保存现行PSW③中断时装入现行PSW④中断后恢复PSW主存专用双字单元

(16进制)①装配中断码152IBMPC机中断的响应过程

IPCSPSW现行PSW

寄存器新IP新CS老IP老CS老PSW新栈顶主存新PSW1532.2.4中断事件处理1中断和异常的一般处理过程2硬件故障中断3程序性中断4I/O中断5访管中断6时钟中断

1541.中断和异常的一般处理过程执行中断处理程序关中断恢复被中断程序的现场开中断返回断点,继续执行设备发中断信号保存中断现场开中断根据中断向量表

设置新运行现场关中断CPU向设备发确认中断信号1552.硬件故障中断由硬件故障导致,排除需人工干预。中断处理程序保护现场停止设备工作停止处理器运行将故障信息向操作员报告对故障所造成的破坏进行估计和恢复1563.程序性中断应用程序的错误种类语法错误由编译程序发现并报错逻辑错误由测试程序发现并报错程序运行过程中所产生的异常定点溢出、除数为0等一般借助信号机制,OS将捕获的这类中断事件原封不动的转交给应用程序自行处理。1574.I/O中断处理原则I/O操作正常结束查看是否有其它进程等待设备或通道,若有则释放之。I/O操作发生故障先向设备发送命令索取状态字,然后分析产生故障的确切原因,再采用复执方式或请求人工干预。I/O操作发生异常分析情况,采取相应的措施,向操作员报告。设备报到或设备结束表示有设备接入可供使用或设备断开暂停使用,OS应修改系统数据中相应设备的状态。1585.访管中断由程序执行访管指令而引起,表示当前运行程序对操作系统功能的调用。访管指令操作码表示此指令是访管指令访管参数表示具体的访管要求1596.时钟中断(1)时钟是操作系统进行调度工作的重要工具,如让分时进程作时间片轮转、让实时进程定时发出或接收控制信号、系统定时唤醒或阻塞一个进程、对用户进程进行记账时钟可分成绝对时钟和间隔时钟两种160时钟中断(2)1)绝对时钟服务提供以下功能的函数:

①update_clock()更新当前时间;

②get_time()返回当前时钟值;

③set_clock()把当前时间设置为新值。161时钟中断(3)2)间隔定时器进程可被延迟、阻塞,直到被间隔定时器中断信号唤醒,应提供以下函数:delay(tdel)把调用进程阻塞由参数tdel指定的时间长度,进程保持阻塞直到本地时间到达进程阻塞时的当前时间+tdel的时刻。set_timer(tdel)硬件间隔定时器被设置为起始的递减值tdel,当该值达到0时,产生间隔时钟中断,调用timeout()函数进行处理。

162时钟中断(4)3)逻辑定时器需要提供函数:tn=creat_ltime():创建逻辑定时器,tn中存放返回标识符。destroy_ltime(tn):撤销tn标识的逻辑定时器。set_ltime(tn,tv):把tv值装到逻辑定时器tn中,当该值为0时,产生时间到中断。163时钟中断(5)(1)使用带有绝对唤醒定时器的优先级队列硬件时钟绝对时钟间隔时钟10312定时器队列P1115P2135P3140P41500定时器队列P1115P2135P5138P3140P41500164时钟中断(6)(2)使用带有时间差值的优先级队列硬件时钟间隔时钟12定时器队列P112P220P35P4100定时器队列P112P220P53P32P4100硬件时钟间隔时钟12定时器队列P112P220P35P4100定时器队列P112P220P53P32P4100硬件时钟间隔时钟12定时器队列P112P220P35P4100定时器队列P112P220P53P32P4100硬件时钟间隔时钟12定时器队列P112P220P35P4100定时器队列P112P220P53P32P41001652.2.5中断优先级和多重中断1中断优先级2中断屏蔽3多重中断事件的处理1661.中断优先级计算机执行的每一瞬间,可能有几个中断事件同时发生,中断装置如何来响应同时发生的中断呢?以不发生中断丢失为前提,把紧迫程度相当的中断源归在同一级,紧迫程度差别大的中断源归在不同级,级别高的有优先获得响应的权力,中断装置预定的这个响应顺序称为中断优先级。1672.中断屏蔽主机可允许或禁止某类中断的响应,如允许或禁止所有的I/O中断、外部中断、及某些程序性中断。有些中断是不能被禁止的,例如,计算机中的自愿性访管中断就不能被禁止。1683.多重中断事件的处理中断正在进行处理期间,CPU又响应新的中断事件,于是暂时停止正在运行的中断处理程序,转去执行新的中断处理程序,就叫多重中断(又称中断嵌套)。处理方法:

(1)串行处理

(2)嵌套处理

(3)即时处理

1692.2.6Linux中断处理1.Linux内核处理流程中断

自陷慢中断快中断

进程正在运行

用户态

核心态

上半部分处理

返回原进程运行

排队下半部分

快中断处理

系统调用处理从系统调用返回ret_from_sys_call

调用schedule()

调度新进程运行运行

用户态

调度下半部分do_bottom_half()/do_softirq()

处理积累的信号do_signal()restore_all中断170快中断与慢中断Linux中,区分快中断和慢中断两类中断事件。处理慢中断前需保存所有寄存器的内容,而快中断处理仅要保存被常规C函数修改的寄存器;慢中断处理时,不屏蔽其他中断信号,而快中断处理时会屏蔽所有其他中断;慢中断处理完毕后,通常不立即返回被中断的进程,而是进入调度程序重新调度,调度结果未必是被中断的进程运行(是抢先式调度)。而快中断处理完毕后,通常恢复现场返回被中断的进程继续执行(是非抢先式调度)。1712.下半部分处理概述中断处理程序的特点以异步方式运行;在屏蔽中断状态下运行;要对硬件进行操作,对于时限有很高的要求;在中断上下文中运行,故不能被阻塞。什么是下半部分处理?一种任务延迟处理机制。TophalfBottomhalf172Linux各种下半部分机制

bottomhalftaskqueuetaskletworkqueuesoftirq1733.下半部分(bottomhalf)实现原理

BH数组、函数入口指针bh_base、函数安装标志bh_mask、函数处理标志bh_activebh-mask310031··bh-active310bh-base下半部分处理函数174BH的缺点下半部分处理函数的数量限制为32个,且每个BH上只能挂接一个函数。-数目不够用。每个BH在全局范围内同步,即使属于不同的处理器,也不允许任何两个BH同时执行。-使用方便但不灵活,安全简单但存在性能瓶颈。开发V2.5内核时,BH被抛弃。1754.任务队列(taskqueue)实现原理内核定义一组队列,每个队列包含一个由等待调用的函数组成的链表,不同队列中的函数在某个时刻会被触发执行。实现对各种任务的延迟执行。预定任务队列:定时器队列(TQ_TIMER)即时队列(TQ_IMMEDIATE)进程调度队列(TQ_SCHEDULE)磁盘队列(TQ_DISK)定时器Tophalf与bottomhalf协调工作的例子(自学)任务队列的缺点灵活性较差,无法胜任对性能要求较高的子系统在V2.5中已删掉1765.小任务(tasklet)tasklet能更好支持SMP,它基于软中断来实现,但比软中断接口简单,锁保护要求低;softirq保留给执行频率及时间要求特高的下半部分使用(如网络和SCSI),多数场合下可使用tasklet。使用tasklet的步骤:声明;编写处理程序;调度。BH全局串行处理,不适应SMP环境,而不同tasklet可同时运行于不同CPU上,当然,系统保证相同tasklet不会同时在不同CPU上运行,在这种情形下,tasklet就不需要是可重入的。在新版Linux中,tasklet是建议的异步任务延迟执行机制。1776.工作队列workqueueLinux2.5内核引入工作队列,它把一个任务延迟,并交给内核线程去完成,且该任务总是在进程上下文中执行,通过工作队列执行的代码能占尽进程上下文的优势,最重要的是工作队列允许重新调度及阻塞。如果延迟执行的任务需要阻塞,需要获取信号量或需要获得大量主存时,那么,可选择工作队列,否则可使用tasklet或softirq。1787.软中断softirqLinux沿用最早BH思想,已实现了庞大和复杂的软中断子系统-softirq,它是一种软中断机制,又是一个框架,包括tasklet,及为网络操作专门设计的软中断。最多可注册32个软中断,目前版本预定义六个元素,

enum{HI_SOFTIRQ,//高优先级taskletTIMER_SOFTIRQ,//定时器下半部分

NET_TX_SOFTIRQ,//发送网络数据包

NET_RX_SOFTIRQ,//接收网络数据包

SCSI_SOFTIRQ,//SCSI下半部分

TASKLET_SOFTIRQ,//公共tasklet};179软中断使用步骤:声明一个softirq;注册softirq处理函数;触发软中断softirq;处理softirq。软中断执行时机:从系统调用中返回时;从异常中返回时;在调度程序中以及处理完硬件中断之后。V2.6中软中断执行时机:在处理完硬件中断之后;在ksoftirqd内核线程中;在显式检查和执行待处理的软中断的代码中。1802.2.7Windows2003中断处理Window2003中断类型中断有I/O设备、处理器时钟或定时器等,可以启用或禁用。中断是异步事件,可能随时发生,与处理器正在执行的内容无关。异常是同步事件,它是某一个特定指令执行的结果。异常的例子是主存访问错误、调试指令及被零除。内核也将系统服务调用视作异常。硬件和软件都可以产生中断和异常,如总线出错异常由硬件造成,而被零除异常是由软件引起的;同样,I/O设备可产生中断,而内核自身也可以发出中断。

1811.Windows2000/XP陷阱调度中断服务例程中断服务例程中断服务例程异常调度器虚存管理的页面管理器中断调度器系统服务调度器异常调度器陷阱处理程序异常帧虚拟地址异常硬件异常软件异常系统服务调用中断182

2.Windows2000/XP中断请求级

系统关闭高31掉电30处理器内的中断29时钟28配置文件设备n………设备1Dispatch/DPC2APC1低0硬件中断软件中断正常的线程执行183Windows2000/XP中断屏蔽

高掉电处理器内的中断时钟配置文件设备n………设备1在处理器A上被屏蔽的中断Dispatch/DPCAPC低IRQL=时钟处理器A在处理器B上被屏蔽的中断IRQL=Dispatch/DPC处理器B1843.Windows2000/XP硬件中断处理

低(无)………高掉电处理器间的中断时钟设备n………设备1②中断调度程序接收到中断源的IRQL,用作查询IDT的索引Dispatch/DPCAPC①有中断产生线程调度程序/DPC处理程序系统关闭例程系

温馨提示

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

评论

0/150

提交评论