处理器管理的学习教案_第1页
处理器管理的学习教案_第2页
处理器管理的学习教案_第3页
处理器管理的学习教案_第4页
处理器管理的学习教案_第5页
已阅读5页,还剩180页未读, 继续免费阅读

下载本文档

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

文档简介

处理器管理的学习教案第1页/共185页2023/3/142第二章处理器管理寄存器:

处理器含有一组寄存器,其个数根据机型的不同而不同,它们构成了一级存储,比主存容量小,但访问速度快。这组寄存器所存储的信息与程序的执行有很大关系,构成了处理器现场。寄存器的种类:通用寄存器、数据寄存器、基地址寄存器、I/O地址寄存器、I/O缓冲寄存器、控制寄存器和其他寄存器。特权指令与非特权指令:计算机基本功能:被执行的目标程序是存储在内存中的机器指令程序。处理器根据程序计数器(PC)从内存中取指令到指令寄存器并执行它,PC将自动增长或改变为转移地址指明下条执行的指令。第2页/共185页2023/3/143第二章处理器管理

机器指令类型的集合称指令系统,反映了一台机器的功能和处理能力。指令分为以下五类:

(1)数据处理类指令;

(2)转移类指令;

(3)数据传送类指令;

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

(5)I/O类指令。从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分作两部分:特权指令和非特权指令。特权指令:指只能提供给操作系统的核心程序使用的指令,如启动I/O设备、设置时钟、控制中断屏蔽位、清内存、建立存储键,加载PSW等。用户只能使用非特权指令,只有OS才能使用所有指令(包括特权指令)。第3页/共185页2023/3/144第二章处理器管理处理器状态:中央处理器怎么知道当前是操作系统还是一般用户程序在运行呢?通过处理器状态标志将处理器设置成不同状态。处理器的状态:管理状态(特权状态、系统模式、特态或管态)和用户状态(目标状态、用户模式、常态或目态)。处于管理状态时,程序可以执行全部指令,使用所有资源,具有改变处理器状态的能力。处于用户状态时,程序只能执行非特权指令。如果程序在执行时,企图访问OS所在的区域或想使用某个特权指令(如改变指令计算器的内容),就立即被捕俘,而被迫中止的执行,然后,由OS处理这一事件,这样保证了OS的权利并使程序不会被破坏。IntelPentium的处理器状态有四种,支持4个保护级别,0级权限最高,3级权限最低。第4页/共185页2023/3/145第二章处理器管理程序状态字寄存器:计算机如何知道当前处于何种工作状态?这时能否执行特权指令?通常操作系统都引入程序状态字PSW来区别不同的处理器工作状态。PSW用来控制指令执行顺序并保留和指示与程序有关的系统状态,主要作用是实现程序状态的保护和恢复。每个程序都有一个与其执行相关的PSW,每个处理器都设置一个PSW寄存器。程序被处理器执行时,它的PSW将占有PSW寄存器。PSW寄存器的内容:程序基本状态:(1)程序计数器;(2)条件码;(3)处理器状态位。第5页/共185页2023/3/146第二章处理器管理中断码:保存程序执行时当前发生的中断事件。中断屏蔽位:指明程序执行中发生中断事件时,是否响应出现的中断事件。IntelPentium的PSW:由标志寄存器EFLAGS和指令指针寄存器EIP组成,均为32位。EFLAGS的低16位称FLAGS,标志可划分为三组:状态标志、控制标志、系统标志。状态标志:使得一条指令的执行结果影响后面的指令。算术运算指令使用溢出标志,符号标志,结果为零标志,辅助进位标志,进位标志,奇偶校验标志;串扫描、串比较、循环指令使用ZF通知其操作结束。控制标志:串指令操作方向标志。虚拟86方式标志(为1时,从保护模式进入虚拟8086模式)。步进标志(为1时,使处理器执行单步操作)。陷阱标志(为1时,允许第6页/共185页2023/3/147第二章处理器管理

响应中断,否则关中断)。系统标志:与进程管理有关---I/O特权级标志、嵌套任务标志和恢复标志,被用于保护模式。指令指针寄存器低16位(保护模式使用32位)。第7页/共185页2023/3/148第二章处理器管理2.2中断技术中断定义:指程序执行过程中,当发生某个事件时,中止CPU上现行程序的运行,转到处理该事件的程序执行的过程。中断需求:请求系统服务;实现并发工作;处理突发事件;满足实时要求。中断源:引起中断的事件,例如,时钟、串口、DMA、外部设备、软件等。中断机制的共性:当中断事件发生后,它能改变处理器内操作执行的顺序,所以,中断是现代操作系统实现并发性的基础之一。中断的作用:

第8页/共185页2023/3/149第二章处理器管理能充分发挥处理机的使用效率:输入输出设备可以用中断的方式同CPU通讯,报告其完成CPU所要求的数据传输的情况和问题,这样可以免除CPU不断地查询和等待,从而大大提高处理机的效率。提高系统的实时处理能力:具有较高实时处理要求的设备,可以通过中断方式请求及时处理,从而使处理机立即运行该设备的处理程序(也是该中断处理程序)。从中断事件的性质和激活的手段来说,中断源可以分成两类:

强迫性中断事件:不是正在运行的程序所期待的中断事件,而是由于某种事故或外部请求信息所引起的,分为:机器故障中断事件;程序性中断事件;外部中断事件;输入输出中断事件。第9页/共185页2023/3/1410第二章处理器管理自愿性中断事件:是正在运行的程序所期待的中断事件。正在运行的程序对操作系统有某种需求,一旦机器执行到一条访管指令时,便自愿停止现行程序的执行而转入访管中断处理程序处理。按照中断信号的来源,可把中断分为外中断和内中断两类:

外中断(又称中断):指来自处理器和主存之外的中断。外中断包括电源故障中断、时钟中断、控制台中断、它机中断和I/O中断等。不同的中断具有不同的中断优先级,处理高一级中断时,往往会屏蔽部分或全部低级中断。内中断(又称异常):指来自处理器和主存内部的中断。内中断包括:通路校验错、主存奇偶错、非法操作码、地址越界、页面失效、调试指令、访管中断、算术操作溢出等各种程序性中断。异常是不能被屏蔽的,一旦出现应立即响应并加以处理。第10页/共185页2023/3/1411第二章处理器管理中断和异常的区别:中断是由与现行指令无关的中断信号触发的(异步的),且中断的发生与CPU处在用户模式或内核模式无关,在两条机器指令之间才可响应中断,一般来说,中断处理程序提供的服务不是为当前进程所需的,如时钟中断、硬盘读写服务请求中断;异常是由处理器正在执行现行指令而引起的,一条指令执行期间允许响应异常,异常处理程序提供的服务是为当前进程所用的。异常包括很多方面,有出错(fault),也有陷入(trap)。出错和陷入的区别:它们发生时保存的返回指令地址不同,出错保存指向触发异常的那条指令,而陷入保存指向触发异常的那条指令的下一条指令。第11页/共185页2023/3/1412第二章处理器管理从异常返回时,出错会重新执行那条指令,而陷入就不会重新执行那条指令。如缺页异常是一种出错,而陷入主要应用在调试中。硬中断和软中断:中断和异常要通过硬件设施来产生中断请求,可看作硬中断。不必由硬件发信号而能引发的中断称软中断,软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。软中断是由内核或进程对某个进程发出的中断信号,可看作内核与进程或进程与进程之间用来模拟硬中断的一种信号通信方式。中断装置:发现中断源并产生中断的硬件称中断装置。第12页/共185页2023/3/1413第二章处理器管理所有计算机系统都采用硬件和软件结合的方法实现中断处理。中断处理程序:处理中断事件的程序称为中断处理程序。它的主要任务是处理中断事件和恢复正常操作。不同中断源对应不同中断处理程序,故快速找到中断处理程序的入口地址是一个关键问题。中断处理程序的四项工作:保护未被硬件保护的一些必需的处理状态—保护现场。识别各个中断源,分析产生中断的原因。处理发生的中断事件。恢复正常操作---恢复现场。第13页/共185页2023/3/1414第二章处理器管理中断事件的处理:硬件故障中断事件的处理:事件是由硬件故障(例如,电源故障、主存储器故障)产生的,排除故障须进行人工干预。中断处理能做的工作是:保护现场,防止故障蔓延,报告给操作员并提供故障信息以便维修和校正,对程序中所造成的破坏进行估价和恢复。程序性中断事件的处理:采用中断续元处理来进行程序性中断事件的处理。中断续元处理需要的设施:调试语句和中断续元入口表。调试语句:

on<条件><中断续元入口>

表示指定条件的中断发生时,由中断续元进行处理。第14页/共185页2023/3/1415第二章处理器管理中断续元入口表的形式如下:外部中断事件的处理:时钟是操作系统进行调度工作的重要工具,例如让分时进程作时间片轮转、让实时进程

中断条件0

中断条件1

0

0

中断续元入口0·

中断续元入口1·

中断续元入口n第15页/共185页2023/3/1416第二章处理器管理

定时发出或接收控制信号、系统定时唤醒或阻塞一个进程、对用户进程进行记账。(1)绝对时钟和间隔时钟:绝对时钟:系统设置绝对时钟寄存器,定时把该寄存器的内容加1。如果开始时这个寄存器的内容为0,那么,只要操作员告诉系统开机时的年、月、日、时、分、秒,以后就可推算出当前的年、月、日、时、分、秒。计算当前时间时,只要按时钟中断的次数和绝对时钟寄存器的内容推算就可得到。间隔时钟:定时将一个间隔时钟寄存器的内容减1,当间隔时钟寄存器的内容为0时,产生一个间隔时钟中断,起到闹钟的作用,意味着预定的时间到了。操作系统经常利用间隔时钟作控制调度。(2)时钟中断的处理:第16页/共185页2023/3/1417第二章处理器管理维护绝对日期和时间;防止进程的运行时间超出其允许值,发现陷入死循环的进程;对使用CPU的用户进程记账;处理进程的间隔时钟(闹钟);对系统的功能或部件提供监视定时器。控制台中断事件的处理:操作员可以利用控制台开关请求操作系统为其工作,当使用控制台开关后,就产生一个控制台中断事件通知操作系统。操作系统处理这种中断就如同接受一条操作命令一样,转向处理操作命令的程序执行。I/O中断的处理:(1)I/O操作正常结束后的处理:把正在等待输入输出操作完成的进程设置为可执行的状态,然后,要查看是否第17页/共185页2023/3/1418第二章处理器管理

有等待该设备的其他进程,若有则释放。(2)I/O操作发生故障后的处理:设备本身的故障,可先向相应设备发命令索取状态字节,进行分析就可知道故障的确切原因。如果该设备的控制器有复执功能,就组织复执。如果没有,对某些故障,可组织软复执。对不能复执或复执多次仍不能克服的故障,系统向操作员报告,请求人工干预。(3)I/O操作发生异常后的处理:设备在操作中发生了某些特殊事件,操作结束发生中断时,要将这个情况向系统报告。系统从设备状态字节中的设备特殊位为1,可判知设备在操作中发生了某个特殊事件。(4)设备报到或设备结束的处理:如果是设备上来的“设备报到”或“设备结束”等异步信号,表示有设备接入可供使用或断开暂停使用,操作系统应修改系统表第18页/共185页2023/3/1419第二章处理器管理

格中相应设备的状态。自愿中断事件的处理:系统程序或用户程序执行访管指令而引起的中断,它表示运行程序对操作系统功能的调用,所以,也称系统调用,可以看作是机器指令的一种扩充。系统调用通过特殊中断实现的处理流程:用户程序执行n号系统调用通过中断系统进入访管中断处理,保护现场通过系统调用入口表,按功能号跳转找到相应功能入口地址执行相应例行程序,恢复现场,返回系统调用的下一条指令执行。

中断优先级和多重中断:中断的优先级:计算机执行的每一瞬间,可能有几个中断事件同时发生,中断装置如何来响应同时发生的中断第19页/共185页2023/3/1420第二章处理器管理

呢?它按照预定顺序来响应,这个预定顺序称中断的优先级,首先响应优先级高的中断事件。计算机系统中,各中断源的优先顺序是根据某个中断源或中断级若得不到及时响应,造成计算机出错的严重性程度来定。中断的屏蔽:主机可允许或禁止某类中断的响应,如允许或禁止所有的I/O中断、外部中断以及某些程序性中断。有些中断是不能被禁止的,例如,计算机中的自愿性访管中断就不能被禁止。多重中断事件的处理:中断正在进行处理期间,这时CPU又响应了新的中断事件,于是暂时停止正在运行的中断处理程序,转去执行新的中断处理程序,这就叫多重中断(又称中断嵌套)。对于多个中断,可能是同一中断类型的不同中断源,也可能是不同类型的中断。对于前者,一般由同一个中断处理程序按预定的次序分别处理之;对于多个不同类型的中断,区别不同情况作如下处理:第20页/共185页2023/3/1421第二章处理器管理(1)禁止再发生中断:运行中断处理程序时,对任何新产生的中断不予理睬,这可以通过屏蔽某些中断来实现。(2)高优先级中断的处理:对必须处理且优先级更高的中断源,允许在运行中断例行程序时,可响应这些中断,系统负责保护被中断的中断处理例行程序的现场,再转向处理新中断的例行程序。(3)优先响应并进行程序性中断处理:运行中断处理例行程序时,如果出现任何程序性中断,一般情况下,表明这时中断处理程序有错误,应立即响应并进行处理。中断处理程序的PSW中,应屏蔽哪些中断源,将由系统设计而定,需要考虑的情况有硬件中断优先级、应用的需要、软件处理所希望的优先级、可能丢失的中断源及其对系统的影响等。第21页/共185页2023/3/1422第二章处理器管理2.3时钟时钟的作用:解决计算机程序中的死循环,中断处理,记录设备使用情况,分时系统的时间片,实时系统的实时控制等。时钟是操作系统运行的必不可少的硬件设施,所以现在的微型机系统中均有时钟。在微型机系统中,通常只有一个时钟(也称作绝对时钟),在大型机中时钟类型通常要多些。时钟的分类:(1)绝对时钟(系统时钟):开机后自动修改初值由用户输入,停机后时钟仍自动修改。(2)间隔时钟:相对时钟,初始值由用户设定,触发中断等,停机后不再被修改。时钟队列:由于时钟数少和程序需要,我们可以通过软件为每个进程提供其需要的软时钟。第22页/共185页2023/3/1423第二章处理器管理2.4进程概念2.4.1进程的引入进程的概念是操作系统中最基本、最重要的概念。它是在多道程序设计出现后,为了刻划系统内部出现的情况,描述系统内部各作业的活动规律而引进的一个新的概念。所有多道程序设计操作系统都建立在进程的基础上。

顺序程序:(1)程序:指令或语句序列,体现了某种算法,所有程序是顺序的(2)顺序环境:在计算机系统中只有一个程序在运行,这个程序独占系统中所有资源,其执行不受外界影响。第23页/共185页2023/3/1424第二章处理器管理(3)特征:1.程序执行的顺序性;2.程序执行的封闭性:独占资源,执行过程中不受外界影响。3.程序结果的可再现性:程序运行结果与程序执行速度无关,只要初始状态相同,结果应相同。并发程序:(1)并发环境:在一定时间内物理机器上有两个或两个以上的程序同处于运行但尚未结束的状态,并且次序不是事先确定的。(2)特征:第24页/共185页2023/3/1425第二章处理器管理1.程序结果的不可再现性:并发程序执行的结果与其执行的相对速度有关,是不确定的。2.在并发环境下程序的执行是间断性的:执行——停——执行。3.资源共享:系统中资源被多个进程使用。4.独立性和制约性:独立的相对速度、起始时间,进程之间可相互作用(相互制约),可分为直接作用和间接作用。5.程序和计算不再一一对应(计算:一个程序的执行)。6.引入并发的目的:为了提高资源利用率,从而提高系统效率。第25页/共185页2023/3/1426第二章处理器管理(1)考虑的因素:在多道程序环境下如何向用户提供服务;在并发程序之间如何正确传递消息(通讯);如何对CPU进行调度,保证每个用户相对公平地得到CPU(CPU是一个只可调度,不可分配的资源。)如何管理其它资源:当各用户对资源使用上发生冲突时,如何处理竞争。对CPU只能通过调度来解决竞争问题,而对于其它资源通过申请—分配—使用—回收的办法进行管理,当且仅当占有CPU的时候才可以申请,否则要排队等候。第26页/共185页2023/3/1427第二章处理器管理(2)多道程序设计造成程序概念不确切:由于在多道程序设计带来的更为复杂的环境中,使程序具有了并发、制约和动态的特征,使得原有的程序概念已难以刻划和反映系统中的情况了。1.程序是一个静态的:程序只是完成某个功能的指令的集合,而系统中各程序实际上处于不断变化的状态中,程序概念反映不了这种动态性

(有时要等待某种共享资源,或某些信息而暂时运行不下去,而当使之暂停的因素消失后,程序又可恢复运行)。2.程序概念已不能反映了系统中的并发特性;3.必须引入进程的概念。第27页/共185页2023/3/1428第二章处理器管理2.4.2进程的定义和属性:进程(Linux中称任务)定义:是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。描述进程的三个方面:进程是程序的一次运行活动;进程的运行活动是建立在某个数据集合之上的;进程在获得资源的基础上从事自己的运行活动。看待进程的角度:从理论角度看,是对正在运行的程序过程的抽象;从实现角度看,是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统内存运行的程序。第28页/共185页2023/3/1429第二章处理器管理程序与进程之间的区别:1.“进程”是一个动态的概念:进程强调的是程序的一次“执行”过程,程序是一组有序指令的集合,在多道程序设计环境下,它不涉及“执行”,因此,是一个静态的概念;2.不同的进程可以执行同一个程序:即使多个进程执行同一个程序,只要它们运行在不同的数据集合上,它们就是不同的进程;3.每一个进程都有自己的生命期:当系统要完成某一项工作时,它就“创建”一个进程,程序执行完毕,系统就“撤销”这个进程,收回它所占用的资源。第29页/共185页2023/3/1430第二章处理器管理进程的特征:1.进程之间具有并发性:在一个系统中,同时会存在多个进程。于是与它们对应的多个程序同时在系统中运行,轮流占用CPU和各种资源。2.进程间会相互制约:由于进程是系统中资源分配的单位,因此在对资源共享和竞争中,必然会相互制约,影响了各自向前推进的速度。进程的分类和区别:在多道程序设计系统中,既运行着操作系统程序,又运行着用户程序,因此整个系统中存在着两类进程,一类是系统进程,一类是用户进程。(系统进程优先于用户进程)。这两类不同性质的进程主要区别是系统进程之间的相互关系由操作系统负责协调,而用户进程之间的相互关系要由用户第30页/共185页2023/3/1431第二章处理器管理

自己(在程序中)安排,不过操作系统会向用户提供申请,由系统统一调度与分配;系统进程与用户进程都需要使用系统中的各种资源,它们都是资源分配与运行调度的独立单位,但系统进程的使用级别,应该高于用户进程。进程的属性:结构性,共享性,动态性;独立性;制约性,并发性。2.4.3进程的状态与转换一个进程从创建而产生至撤销而消亡的整个生命周期,可用一组状态加以刻划,按进程在执行过程中的状况至少可定义三种不同的进程状态。运行状态:获得CPU的进程处于此状态,它正在处理机上运行着;第31页/共185页2023/3/1432第二章处理器管理就绪状态:已具备运行所需的一切条件,只是由于别的进程占用处理机而暂时无法运行,一旦得到处理机即可运行,称此进程处于就绪状态;等待(或阻塞或睡眠或封锁或冻结)状态:一个进程正在等待某一事件发生而暂时停止运行,即使这时把处理机分配给此进程也无法运行。进程状态转换:一般来说,处理机的数目一般总是少于进程数,在单处理机系统中,只有一个进程可真正获得处理。一个进程的状态,可以随着自身的推进和外界环境的变化而变化,从而可从一种状态变迁到另一种状态。进程的这三种基本状态可以依据一定的条件相互之间进行转换。第32页/共185页2023/3/1433第二章处理器管理1.就绪状态的进程被进程调度程序选中后,就分配到处理机来运行,进入运行状态。2.运行状态的进程时间片用完不得不让出处理机,变为就绪状态。RunningReadyBlocked等待事件

(系统服务请求,如请求I/O))被调度或分派时间片用完事件发生第33页/共185页2023/3/1434第二章处理器管理3.运行状态的进程需等待某一事件发生后,才能继续运行,变为等待状态。4.等待状态的进程若其等待的事件已发生,变为就绪状态。5.一个进程从运行状态变为就绪状态,一定会引起另一个进程从就绪状态变为运行状态。6.一个进程从运行状态变为阻塞状态,一定会引起另一个进程从就绪状态变为运行状态。7.一个进程从阻塞状态变为就绪状态,一定会引起一个进程从就绪状态变为运行状态。第34页/共185页2023/3/1435第二章处理器管理其它状态及转换:1.新建态:进程刚被创建的状态。它为一个新进程创建必要的管理信息,它并没有被提交执行,而是在等待操作系统完成创建进程的必要操作。2.终止态:进程的终止,首先,等待操作系统进行善后,然后,退出主存。进入终止态的进程不再执行,但依然临时保留在系统中等待善后。一旦其他进程完成了对终止态进程的信息抽取之后,系统将删除该进程。3.NULL→新建态:创建一个子进程。

4.新建态→就绪态:系统完成了进程创建操作,且当前系统的性能和内存的容量均允许。第35页/共185页2023/3/1436第二章处理器管理5.运行态→终止态:一个进程到达自然结束点,或出现了无法克服的错误,或被操作系统所终结,或被其他有终止权的进程所终结。6.终止态→NULL:完成善后操作。7.就绪态→终止态:某些操作系统允许父进程终结子进程。8.等待态→终止态:某些操作系统允许父进程终结子进程。五状态转换图见下页。进程的挂起:由于进程的不断创建,系统资源已不能满足进程运行的要求,就必须把某些进程挂起(suspend),对换到磁盘镜像区中,暂时不参与进程调度,起到平滑系统操作负荷的目的。(1)系统中的进程均处于等待状态,需要把一些阻塞进程对换出去,腾出足够内存装入就绪进程运行。第36页/共185页2023/3/1437第二章处理器管理

五状态模型及转换运行态就绪态等待态选中落选出现等待事件等待事件结束新建态终止态第37页/共185页2023/3/1438第二章处理器管理(2)进程竞争资源,导致系统资源不足,负荷过重,需要挂起部分进程以调整系统负荷,保证系统的实时性或让系统正常运行。(3)定期执行的进程(如审计、监控、记账程序)对换出去,以减轻系统负荷。(4)用户要求挂起自己的进程,以便进行某些调试、检查和改正。(5)父进程要求挂起后代进程,以进行某些检查和改正。(6)操作系统需要挂起某些进程,检查运行中资源使用情况,以改善系统性能或当系统出现故障或某些功能受到破坏时,需要挂起某些进程以排除故障。

第38页/共185页2023/3/1439第二章处理器管理(7)增加的两个新状态:1.挂起就绪态(readysuspend):表明进程具备运行条件但目前在二级存储器中,当它被对换到主存才能被调度执行。2.挂起等待态(blockedsuspend):表明进程正在等待某一个事件且在二级存储器中。3.等待态→挂起等待态:当前不存在就绪进程,至少一个等待态进程将被对换出去成为挂起等待态;4.挂起等待态→挂起就绪态:引起进程等待的事件发生之后,相应的挂起等待态进程将转换为挂起就绪态。5.挂起就绪态→就绪态:内存中没有就绪态进程,或挂起就绪态进程具有比就绪态进程更高的优先级,将把挂起就绪态进程对换到主存中,并转换成就绪态。第39页/共185页2023/3/1440第二章处理器管理7.就绪态→挂起就绪态:系统根据当前资源状况和性能要求,决定把就绪态进程对换出去成为挂起就绪态。8.挂起进程具有的特征:该进程不能立即被执行;挂起进程可能会等待事件,但所等待事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件;进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行;结束进程挂起状态的命令只能通过操作系统或父进程发出。七状态模型及转换见下页。2.4.4进程的描述

第40页/共185页2023/3/1441第二章处理器管理活动挂起事件发生事件发生等待事件挂起调度超时释放活动挂起第41页/共185页2023/3/1442第二章处理器管理操作系统的控制结构:(1)操作系统核心控制结构是进程结构,资源管理的数据结构将围绕进程结构展开。(2)操作系统的控制表分为四类:进程控制表,存储控制表,I/O控制表和文件控制表。(3)进程控制表管理进程及其相关信息。(4)存储控制表管理一级(主)存储器和二级(虚拟)存储器,内容包括:主存储器的分配信息,二级存储器的分配信息,存储保护和分区共享信息,虚拟存储器管理信息(5)I/O控制表管理系统的I/O设备和通道,包括:I/O设备和通道是否可用,I/O设备和通道分配信息,I/O操作的状态和进展,I/O操作传输数据所在主存区。(6)文件控制表管理文件,包括被打开文件的信息,文件在主存储器和二级存储器中的位置信息,被打开文件第42页/共185页2023/3/1443第二章处理器管理

的状态和其他属性信息。进程映像:(1)操作系统中把进程物理实体和支持进程运行的环境合称为进程上下文(context)。(2)当系统调度新进程占有处理器时,新老进程随之发生上下文切换。进程的运行被认为是在上下文中执行。进程上下文组成:(1)用户级上下文:由用户程序块、用户数据块和用户堆栈组成的进程地址空间。(2)系统级上下文:包括进程的标识信息、现场信息和控制信息,进程环境块,及系统堆栈等组成的进程地址空间。(3)寄存器上下文:由PSW寄存器和各类控制寄存器、地址寄存器、通用寄存器组成。第43页/共185页2023/3/1444第二章处理器管理进程的四要素:(1)进程程序块(2)进程数据块(3)系统堆栈(4)用户堆栈用户进程在虚拟内存中的组织:进程标识信息进程现场信息进程控制信息用户堆栈用户私有地址空间(程序、数据)进程控制块共享地址空间第44页/共185页2023/3/1445第二章处理器管理进程的组成:程序、数据和进程控制块(PCB)。进程控制块:(1)为了描述一个进程和其它进程及系统资源的关系以及刻画一个进程在各个不同时期所处的状态,人们采用了一个与进程相联系的数据结构---进程控制块PCB,用它来记录进程的外部特征,描述进程的动态变化过程以及控制和管理进程。(2)当系统创建一个进程时,必须为它设置一个PCB,然后根据PCB的信息对进程实施控制管理,进程任务完成时,系统收回它的PCB,进程也随之消亡。所以,PCB是系统感知进程存在的唯一标志,两者是一一对应的。(3)进程控制块包含的信息:标识信息,现场信息,控制信息。1.标识信息:用于唯一地标识一个进程,包括用户使用的外部标识符和被系统使用的内部标识号。例如,进程名、进程内部标识、用户名、父进程标识符等。第45页/共185页2023/3/1446第二章处理器管理2.现场信息:保留进程运行时存放在处理器现场中的各种信息,进程让出处理器时必须把处理器现场信息保存到PCB中,当该进程重新恢复运行时也应恢复处理器现场。例如,通用寄存器内容、控制寄存器内容、用户堆栈指针、系统堆栈指针以及(虚)时钟等。3.控制信息:进程调度信息,如进程状态、等待事件和等待原因、进程优先级、队列指针等;进程组成信息,如正文段指针、数据段指针;进程间通信信息,如消息队列指针、信号量等互斥和同步机制;进程在二级存储器内的地址信息;CPU资源的占用和使用信息,如时间片余量、进程己占用时间、进程己执行时间总和,记帐信息;进程特权信息,如在内存访问和处理器状态方面的特权;资源清单,如进程所需全部资源、已分配的资源(如主存资源、I/O设备、打开文件表等)。PCB内容见下页。第46页/共185页2023/3/1447第二章处理器管理第47页/共185页2023/3/1448第二章处理器管理(4)PCB的组织方式:1.PCB表:系统把所有PCB组织在一起,并把它们放在内存的固定区域,就构成了PCB表。2.PCB表的数目决定了系统中最多可同时存在的进程个数,称为系统的并发度。3.链接结构:同一状态进程的PCB组成一个链表,不同状态对应多个不同的链表,就绪链表、阻塞链表。4.索引结构:对具有相同状态的进程,分别设置各自的PCB索引表,表明PCB在PCB表中的地址5.进程队列:不同状态进程分别组成队列,运行队列、就绪队列、等待队列。第48页/共185页2023/3/1449第二章处理器管理第49页/共185页2023/3/1450第二章处理器管理索引表就绪队列等待队列1等待队列2PCB1PCB2PCB3PCB4PCB5PCB6PCB7…PCBnPCB表第50页/共185页2023/3/1451第二章处理器管理

队列管理和状态转换示意图处理器调度提交完成超时事件1等待队列事件2等待队列事件n等待队列就绪队列……等待事件1等待事件2等待事件n事件1出现事件2出现事件n出现第51页/共185页2023/3/1452第二章处理器管理2.4.5进程切换和控制进程切换:让处于运行态的进程中断运行,让出处理器,这时要做一次进程上下文切换,即保存老进程状态而装入被保护了的新进程的状态,以便新进程运行。进程切换的步骤:(1)保存被中断进程的处理器现场信息。(2)修改被中断进程的进程控制块的有关信息,如进程状态等。(3)把被中断进程的进程控制块加入有关队列。(4)选择下一个要占有处理器运行的进程。(5)修改被选中进程的进程控制块的有关信息。第52页/共185页2023/3/1453第二章处理器管理(6)根据被选中进程设置操作系统用到的地址转换和存储保护信息。(7)根据被选中进程恢复其处理器现场。调度和切换时机:(1)请求调度的事件发生后,就会运行低级调度程序,低级调度程序选中新的就绪进程后,就会进行上下文切换。实际上,由于种种原因,并不一定能一气呵成。(2)例1,运行内核中断处理例程期间,发生了更高优先级的I/O中断的情况;(3)例2,若正在运行操作系统内核临界区程序,如果时钟中断导致请求低级调度的事件发生的情况;(4)在各种各样的原子操作,如原语操作、现场保护和恢复等过程中,发生了请求调度的事件的情况。

第53页/共185页2023/3/1454第二章处理器管理(5)通常的做法是:由内核设置请求调度标志,延迟到上述工作完成后再进行调度和进程上下文切换。CPU模式切换:(1)当中断发生时,暂时中断正在执行的用户进程,把进程从用户状态切换到内核状态,去执行操作系统例行程序以获得服务,这就是一次模式切换。(2)内核在被中断了的进程的上下文中对这个中断事件作处理,即使该中断可能不是此进程引起的。被中断进程可以是正在用户态下执行的,也可以是正在核心态下执行的,内核都要保留足够信息以便在后来能恢复被中断了的进程执行。模式切换的步骤:第54页/共185页2023/3/1455第二章处理器管理(1)保存被中断进程的处理器现场信息。(2)根据中断号置程序计数器。(3)把用户状态切换到内核状态,以便执行中断处理程序。(4)模式切换不同于进程切换,它并不引起进程状态变化,也不一定引起进程的切换,在完成了中断调用之后,完全可以再通过一次逆向的模式切换来继续执行用户进程。进程的控制:原语:(1)处理器管理的一个主要工作是对进程的控制,包括:创建进程、阻塞进程、唤醒进程、挂起进程、激活第55页/共185页2023/3/1456第二章处理器管理

进程、终止进程和撤销进程等。(2)这些控制和管理功能是由操作系统中的原语来实现的。(3)原语(Primitive):在管态下执行、完成系统特定功能的过程。(4)原语和机器指令类似,其特点是执行过程中不允许被中断,是一个不可分割的基本单位,原语的执行是顺序的而不可能是并发的。(5)一种原语的实现方法是以系统调用方式提供原语接口,且采用屏蔽中断的方式来实现原语功能,以保证原语操作不被打断的特性。如进程创建、阻塞、唤醒、撤销、挂起、激活、解挂、改变优先级等原语。

第56页/共185页2023/3/1457第二章处理器管理进程创建:(1)进程创建来源于以下事件:1.提交一个批处理作业。2.在终端上交互式的登录。3.操作系统创建一个服务进程。4.存在的进程孵化(spawn)新的进程。(2)生成进程称父进程(ParentProcess),被生成进程称子进程(ChildProcess)、即一个父进程可以创建子进程,从而形成树形结构。进程创建过程:1.在进程表中增加一项,并从PCB池中取一个空白PCB。第57页/共185页2023/3/1458第二章处理器管理2.为新进程的进程映像分配地址空间。传递环境变量,构造共享地址空间。3.为新进程分配资源,除内存空间外还有其他各种资源。4.查找辅存,找到进程正文段并装到正文区。5.初始化进程控制块,为新进程分配进程标识符,初始化PSW。6.加入就绪进程队列,或直接将进程投入运行。7.通知操作系统某些模块,如记账程序、性能监控程序。进程阻塞:(1)停止进程执行,保存现场信息。(2)修改PCB有关内容,如进程状态由运行改为等待等。第58页/共185页2023/3/1459第二章处理器管理(3)把修改状态后的PCB加入相应等待进程队列。进程唤醒:(1)从相应等待进程队列中取出PCB。(2)修改PCB有关信息,如进程状态等。(3)把修改后PCB加入有关就绪进程队列。进程撤销:(1)进程撤销的主要原因:1.进程正常运行结束。2.进程执行了非法指令。3.进程在常态下执行了特权指令。4.进程运行时间超越了分给的最大时间段。第59页/共185页2023/3/1460第二章处理器管理5.进程等待时间超越了设定的最大等待时间。6.进程申请的内存超过了系统能提供最大量。7.越界错误。8.对共享内存区的非法使用。9.算术错误,如除零和操作数溢出。10.严重的输入输出错误。11.操作员或操作系统干预。12.父进程撤销其子进程。13.父进程撤销。14.操作系统终止。(2)撤销原语终止进程的步骤:第60页/共185页2023/3/1461第二章处理器管理1.根据撤销进程标识号,从相应队列中找到它的PCB;2.将该进程拥有的资源归还给父进程或操作系统;3.若该进程拥有子进程,应先撤销它的所有子孙进程,以防它们脱离控制;4.撤销进程出队,将它的PCB归还到PCB池。进程挂起:1.检查要被挂起进程的状态,若处于活动就绪态就修改为挂起就绪,若处于阻塞态,则修改为挂起阻塞。2.被挂起进程PCB的非常驻部分要交换到磁盘对换区。进程激活:1.把进程PCB非常驻部分调进内存,修改它的状态,挂起第61页/共185页2023/3/1462第二章处理器管理

等待态改为等待态,挂起就绪态改为就绪态,排入相应队列中。2.挂起原语既可由进程自己也可由其他进程调用,但激活原语却只能由其他进程调用。2.4.6进程间的相互作用(互斥与同步)进程间的联系(1)相交进程:指多个并发进程在逻辑上有某种联系。(2)无关进程(不相交进程):在逻辑上无任何联系的进程。(3)直接作用:进程间的相互联系是有意识的安排的,直接作用只发生在相交进程间。第62页/共185页2023/3/1463第二章处理器管理(4)间接作用:进程间要通过某种中介发生联系,是无意识安排的,可发生在相交进程之间,也可发生在无关进程之间。(5)进程的同步(直接作用):系统中一些进程需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态。(6)进程的互斥(间接作用):由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥第63页/共185页2023/3/1464第二章处理器管理进程的互斥(1)临界资源:系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源。例如,打印机、变量、表格、队列等,非临界资源,例如,硬盘等。(2)临界区(互斥区):一个程序片段的集合,这些程序片段分散在不同的进程中,对某个共享的数据结构(共享资源)进行操作。在进程中访问临界资源的程序段叫临界区。(3)访问互斥区的原则:“空进忙等,不空等不死等”。1.有空让进:当无进程在临界区时,任何有权使用临界区的进程可进入。2.无空等待:不允许两个以上的进程同时进入临界区。3.多中择一:当没有进程在临界区,而同时有多个进程要求进入临界区,只能让其中之一进入临界区,其第64页/共185页2023/3/1465第二章处理器管理a:=a-1print(a)a:=a+1print(a)P1互斥P2互斥Ifa<0thena:=a+1elsea:=a-1P3互斥

进程互斥(间接作用)第65页/共185页2023/3/1466第二章处理器管理第66页/共185页2023/3/1467第二章处理器管理

他进程必须等待。4.有限等待:任何进入临界区的要求应在有限的时间内得到满足。5.让权等待:处于等待状态的进程应放弃占用CPU,以使其他进程有机会得到CPU的使用权。6.前提:任何进程无权停止其它进程的运行,进程之间相对运行速度无硬性规定。7.进程互斥的解决方案:a.由竞争各方平等协商;b.引入进程管理者,由管理者来协调竞争各方对互斥资源的使用。(4)进程互斥的方法:1.软件:使用软件解决临界段互斥执行,将临界区用信号隔离开来,若要进入,先测信号。第67页/共185页2023/3/1468第二章处理器管理方法1:

free:表示临界区状态

true:无进程在临界区(初值)

false:有进程在临界区

....

L:iffreethen

begin

free:=false;

‘进入临界区’

end

elsegotoL;

free:=true

第68页/共185页2023/3/1469第二章处理器管理方法2:turn:true轮到P进入临界区

false轮到Q进入临界区

....P:repeatuntilturn;‘进入临界区’

turn:=flase;……Q:repeatuntilnotturn;‘进入临界区’

turn:=true;……第69页/共185页2023/3/1470第二章处理器管理方法3:pturn,qturn:初值为falseP进入临界区的条件:pturn∧notqturnQ进入临界区的条件:notpturn∧qturnP....Q.....pturn:=true;qturn:=ture;Repeatuntilnotqturn;repeatuntilnotpturn‘进入临界区’‘进入临界区’pturn:=false;qturn:=false;

......

第70页/共185页2023/3/1471第二章处理器管理方法4:Dekker算法:

在方法3基础上引入turn枚举类型初值任意P:Repeat

pturn:=true;

whileqturndo

ifturn=2thenbegin

pturn:=false;

whileturn=2do

pturn:=true

end;

'进入临界区'

turn:=2;

pturn:=false;

.....Untilfalse第71页/共185页2023/3/1472第二章处理器管理Q:Repeat

qturn:=true;

whilepturndo

ifturn=1thenbegin

qturn:=false;

whileturn=1do

qturn:=true

end;

'进入临界区'

turn:=1;

qtum:=false;

.....Untilfalse软件解法的缺点:1.用编程解决,但常常忙等待;第72页/共185页2023/3/1473第二章处理器管理2.实现过于复杂,需要高的编程技巧。2.硬件指令:许多大型机和微型计算机中都提供了专门的硬件指令,这些指令都允许对一个字中的内容进行检测和修改,或交换两个字的内容。我们可以用一条指令来完成检测和修改,这样中断和插入处理机的存储周期均不可能,所以,不会影响此公用变量数据的完整性。实现这种功能的硬件指令有两种:TS(Test-and-Set)指令。又称检测和设置指令,该指令的功能可用PASCAL语言描述如下:functionTest-and-Set(varflag:boolean):boolean

begin第73页/共185页2023/3/1474第二章处理器管理

Test-and-Set:=flag;

flag:=true;

end

这条指令在微型计算机Z-8000中称为TEST指令,在IBM370中称为TS指令。(2)Swap指令。又称交换指令,该指令的功能是交换两个字的内容,它可用PASCAL语言描述如下:

procedureSwap(vara,b:boolean)

vartemp:boolean;

begin

temp:=a;

a:=b;

b:=temp;

end第74页/共185页2023/3/1475第二章处理器管理

在微型计算机Intel8086或8088中,该指令称为XCHG指令。利用这二个硬件指令可以简单而有效地实现互斥。其方法是为每个临界段或其它互斥资源设置一个布尔变量,例如称为lock,当其值为false则临界段未被使用,反之则说明正有进程在临界段中执行。于是某进程用TS指令实现互斥的程序结构为(设为无限循环进程):用TS指令来实现互斥:repeat

whileTS(lock)doSkip;

进程的临界段代码CS;lock:=false;第75页/共185页2023/3/1476第二章处理器管理

进程的其它代码;Forever用Swap指令来实现互斥:repeat

key:=true

repeat

Swap(lock,key);

untilkey=false;

进程的临界段代码CS;

lock:=false;

进程的其它代码;forever第76页/共185页2023/3/1477第二章处理器管理

用上述硬件指令虽然可以有效地保证进程间互斥,但有一个缺点,就是当进程正在临界段中执行时,其它想进入临界段的进程必须不断地测试布尔变量lock的值,这就造成了处理机机时的浪费,我们常称这种情况为“忙等待”。进程间的同步:(1)同步机制:信号量及P、V操作;管程等。(2)同步机制应满足的基本要求:描述能力;可以实现;效率高;使用方便。(3)信号量:信号量是荷兰计算机科学家Dijkstra在1965年提出的,也是最早的同步方法。它是一个只能由同步原语对其进行操作的共享整型变量。信号量semaphore也是一个数据结构。定义如下:第77页/共185页2023/3/1478第二章处理器管理TYPEsemaphore=RECORD Value:integer Queue:Pointer_PCBEND信号量说明:

VAR:S:semaphore(4)P.V操作:1.P(S)操作:s.Value:=s.Value-1;IFs.Value<0then将该进程状态置为等待状态,然后,将该进程的PCB插入相应的等待队列末尾。2.V(s)操作:s.Value:=s.Value+1;IFs.Value<=0then唤醒相应等待队列中等待的一个进程,改变其状态为就绪态,并将其插入就绪队列。第78页/共185页2023/3/1479第二章处理器管理3.P、V操作是原语操作:P,V操作可用软件(或固件)和硬件来执行。无论P操作和V操作,它们的执行都必须是一个不可被中断的整体。4.信号量的使用:必须置一次且只能置一次初值,初值不能为负数,对信号量只能执行P、V操作。5.信号量和P、V操作的物理意义:S>0时,S为可用资源量;S=0时,可用资源量正好用完;S<0时,|S|为等待资源的队列长度,即还欠资源数(在

信号量上等待的进程数)。P(S):表示请求分配一个资源,若S>0,则P操作后立即

可获得资源,否则,阻塞调用P操作的进程,排队等待。V(S):表示释放一个资源。唤醒需要该资源的进程。第79页/共185页2023/3/1480第二章处理器管理(5)利用P.V操作解决进程间互斥问题:P(S)V(S)P(S)V(S)P(S)V(S)P1P2P2互斥区第80页/共185页2023/3/1481第二章处理器管理(6)经典的生产者─消费者的同步问题:消费者Q生产者P缓冲区第81页/共185页2023/3/1482第二章处理器管理同步问题:P进程不能往“满”的缓冲区中放产品,设置信号量为S1

,Q进程不能从“空”的缓冲区中取产品,设置信号量S2S1初值为1,S2初值为0,P:Q:RepeatRepeat生产一个产品;P(s2);P(s1);从缓冲区取产品;送产品到缓冲区;

V(s1);V(s2)消费产品Untilfalse;Untilfalse;第82页/共185页2023/3/1483第二章处理器管理(7)消息存放的同步问题:第83页/共185页2023/3/1484第二章处理器管理P:S1=nQ:S2=0

I:=1J:=1

REPEATREPEAT

生产产品;P(S2)

P(S1)从Buffer[J]取产品;

往Buffer[I]中放产品;V(S1)

V(S2)消费产品

I:=(I+1)modnJ:=(J+1)modn

UNTILfalseUNTILfalse(8)P.V操作讨论:1.P.V操作出现的规则:P.V操作必须成对出现,有一个P操作就一定有一个V操作。当为互斥操作时,它们同处于同一进程。当为同步操作时,则不在同一进程中出现。如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至关重要,一个同步P操作与一个互斥P操作在一起时同步P操作在互斥P操作前。而两个V操作无关紧要。第84页/共185页2023/3/1485第二章处理器管理2.P.V操作的优缺点:简单,而且表达能力强(用P.V操作可解决任何同步和互斥问题。)。但不够安全;P.V操作使用不当会出现死锁;遇到复杂同步和互斥问题时实现复杂。2.4.7经典的同步问题(1)读者写者问题:有两组并发进程:读者和写者,共享一组数据区,要求:允许多个读者同时执行读操作;不允许读者、写者同时操作;不允许多个写者同时操作。对于读者到来:1.无读者、写者,新读者可以读。2.有其它读者正在读,则新读者也可以读。3.有写者写,新读者等。第85页/共185页2023/3/1486第二章处理器管理如果写者到来:1)无读者,新写者可以写。2)有读者,新写者等待。3)有其它写者,新写者等待。读者:RepeatP(mutex);readcount:=readcount+1;ifreadcount=1thenP(w);V(mutex);读P(mutex);readcount:=readcount-1;ifreadcount=0thenV(w);第86页/共185页2023/3/1487第二章处理器管理V(mutex);Untilfalse写者:RepeatP(w);写V(w);Untilfalse(2)哲学家吃面条问题:有五个哲学家围坐在一圆桌旁,桌中央有一盘面条,每人面前有一只空盘于,每两人之间放一把叉子。每个哲学家思考、饥饿、然后吃面条。为了吃面条,每个哲学家必须获得两把叉子,且每人只能直接从自己左边或右边去取叉子。第87页/共185页2023/3/1488第二章处理器管理第88页/共185页2023/3/1489第二章处理器管理1.varforki:array[0..4]ofsemaphore;forki:=1;cobeginprocessPi//i=0,1,2,3,4,begin L1:思考;

P(fork[i]);

P(fork[(i+1)mod5]); 吃面条;

V(fork[i]);

V(fork[(i+1)mod5]);

gotoL1;end;同时拿左边的叉

Coend;就出现永远等待的情况---死锁。第89页/共185页2023/3/1490第二章处理器管理2.避免死锁的方法:•至多允许四个哲学家同时吃;•奇数号先取左手边的叉子,偶数号先取右手边的叉子;•每个哲学家取到手边的两把叉子才吃,否则一把叉子也不取。3.一种正确的解法:varforki:array[0..4]ofsemaphore;forki:=1;cobeginprocessPi//*i=0,1,2,3*/begin第90页/共185页2023/3/1491第二章处理器管理state:array[0..4]of(思考,饥饿,进食);ph:array[0..4]ofsemaphore;mutex:semaphore;i:0..4;Proceduretest(i:=0…4);beginif(state[i]=饥饿)And(state[(i-1)mod5]<>进食)And(state[(i+1)mod5]<>进食)thenbeginstate[i]=进食

V(ph[i])endend第91页/共185页2023/3/1492第二章处理器管理Procedurephilosopher(i:0~4)BeginRepeat

思考;

P(mutex);state[i]:=饥饿;

test(i);V(mutex);P(ph[i]);

拿左叉子;拿右叉子;进食;放左叉子;第92页/共185页2023/3/1493第二章处理器管理

放右叉子;

P(mutex)state[i]:=思考;

test([i-1]mod5);tset([i+1]mod5);V(mutex);untilfalesEnd初始化:state[i]=思考

ph[i]=0mutex=1(3)理发师的同步问题:1.理发店里有一位理发师、一把理发椅和n把供等候理发第93页/共185页2023/3/1494第二章处理器管理

的顾客坐的椅子;如果没有顾客,理发师便在理发椅上睡觉;一个顾客到来时,它必须叫醒理发师;如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,就坐下来等待,否则就离开。2.varwaiting:integer;/*等候理发的顾客数*/CHAIRS:integer;/*为顾客准备的椅子数*/customers,barbers,mutex:semaphore;customers:=0;barbers:=0;waiting:=0;mutex:=1;Procedurebarber;beginwhile(TRUE);/*理完一人,还有顾客吗?*/P(cutomers);/*若无顾客,理发师睡眠*/第94页/共185页2023/3/1495第二章处理器管理

P(mutex);/*进程互斥*/waiting:=waiting–1;/*等候顾客数少一个*/V(barbers);/*理发师可去为一个顾客理发*/V(mutex);/*开放临界区*/cut-hair();/*正在理发*/end;procedurecustomerbeginP(mutex);/*进程互斥*/ifwaiting<CHAIRSbegin/*看看有没有空椅子*/waiting:=waiting+1;/*等候顾客数加1*/V(customers);/*唤醒理发师*/第95页/共185页2023/3/1496第二章处理器管理V(mutex);/*开放临界区*/P(barbers

温馨提示

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

评论

0/150

提交评论