操作系统第5章课件_第1页
操作系统第5章课件_第2页
操作系统第5章课件_第3页
操作系统第5章课件_第4页
操作系统第5章课件_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

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

文档简介

第五章设备管理设备管理设备管理的主要功能:缓冲区管理设备分配设备处理虚拟设备实现设备独立性I/O系统实现信息输入、输出和存储的系统。包括:I/O设备总线设备控制器I/O通道I/O处理机大、中型机按设备的使用特性分类存储设备又称后备存储器、辅助存储器。存取速度较内存慢,但容量比内存大得多,价格相对便宜;输入/输出设备可分为输入设备、输出设备和交互式设备;低速设备——传输速率仅为每秒钟几个字节至数百个字节的一类设备。如:键盘、鼠标器、语音的输入和输出等;中速设备——传输速率在每秒钟数千个字节至数万个字节的一类设备。如:行式打印机、激光打印机等。高速设备——传输速率在数百千个字节至数十兆字节的一类设备。如:磁带机、磁盘机、光盘机等。按设备的传输速率分类块设备用于存储信息,属于有结构设备。典型的块设备是磁盘,盘块的大小为512B~4KB;磁盘设备的基本特征是其传输速率较高,通常每秒钟为几兆位;另一特征是可寻址,即对它可随机地读/写任一块;磁盘设备的I/O常采用DMA方式。按信息交换的单位分类字符设备用于数据的输入和输出,其基本单位是字符,属于有结构类型;种类多,如交互式终端、打印机等;基本特征是其传输速率较低,通常为几千个字节至数千字节;另一特征是不可寻址,即输入/输出时不能指定数据的输入源地址及输出的目标地址;输入/输出时,常采用中断驱动方式;设备与控制器之间的接口数据信号——用于在设备和设备控制器之间传送数据信号。对输入输出设备,是由设备发送给设备控制器的;对输出设备,是将设备控制器所接收的数据经转换,逐个输出;控制信号——是设备控制器发送给设备的,用于规定设备执行、读或写操作的信号;状态信号——用于指示设备的当前状态设备控制器是CPU与I/O设备的接口;分成两大类:用于控制字符设备的控制器;用于控制块设备的控制器微型机和小型机中的控制器常做成印制电路卡形式,称接口卡;设备控制器的组成设备控制器与处理机接口三类信号线:数据线、地址线、控制线;两类寄存器:数据寄存器、控制/状态寄存器;设备控制器与设备接口一个接口连接一台设备;每个接口中含有数据、地址、控制信号;I/O逻辑根据CPU发的地址信号选择设备接口;I/O逻辑实现对设备的控制;通过一组控制线与处理机交互;处理机利用它向控制器发出I/O命令;I/O逻辑对收到的命令进行译码;数据寄存器控制/状态寄存器数据线I/O逻辑…控制器与设备接口1控制器与设备接口i数据状态控制数据状态控制…地址线控制线CPU与控制器接口控制器与设备接口I/O通道I/O通道是特殊的处理机。它具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作;与一般处理机不同,表现在两个方面:指令类型单一、即由于通道硬件比较简单,其所能执行的指令主要是与I/O有关的指令;通道没有自己的内存,与CPU共享内存;通道类型根据信息交换方式分为三种类型:字节多路通道数组选择通道数组多路通道字节多路通道的工作原理控制器A控制器B控制器C控制器D控制器N…A1A2A3…子通道AB1B2B3…子通道BC1C2C3…子通道CN1N2N3…子通道NA1B1C1…A2B2C2设备…数组选择通道可以连接多台高速设备;只含有一个分配型子通道;在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允许其它设备使用该通道,直至该设备传送完毕释放该通道;利用率很低;“瓶颈”问题I/O性能经常成为系统的瓶颈CPU性能不等于系统性能,响应时间也是一个重要因素;CPU性能越高,与I/O差距越大弥补:更多的进程进程的切换多,系统开销大;通道价格昂贵,使机器中的通道数量势必较少,这往往使它成了I/O的瓶颈;解决瓶颈问题的最有效地的方法,便是增加设备到主机间的通路,而不增加通道;“瓶颈”问题多通路I/O系统I/O设备控制器1控制器2通道1通道2存储器I/O设备I/O设备I/O设备交叉连接总线系统CPU存储器磁盘控制器打印机控制器…其它控制器磁盘驱动器打印机系统总线将计算机系统中的各个子系统(CPU、内存、外设等)相互连接,且连接是共享的;优点:低成本(一线多用);灵活性(易于增加设备,便于两个系统间共享外设);缺点:本身形成了通讯瓶颈,限制I/O吞吐量;总线系统ISA总线EISA总线VESA总线PCI总线PCI总线支持64位系统;CPU和外设间插入一复杂的管理层,用于协调数据传输和提供一致的接口;管理层中有数据缓冲,将线路的驱动能力放大,使PCI最多能支持10中外设,并使高时钟频率的CPU能很好地运行;程序I/O方式中断驱动I/O控制方式直接存储器访问(DMA)I/O控制方式I/O通道控制方式I/O控制方式程序I/O方式程序I/O方式,CPU的高速性和I/O设备的低速性,使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。CPU要不断地测试I/O设备的状态,因为在CPU中无中断机构,使I/O设备无法向CPU报告它已完成了一个字符的输入操作。中断驱动I/O控制方式在I/O设备输入每个数据的过程中,无须CPU干预,可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。直接存储器访问(DMA)I/O控制方式数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;数据传送是从设备直接送入内存的,或者相反;仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成。DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。I/O通道控制方式I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。缓冲的引入缓和CPU与I/O设备间速度不匹配的矛盾。(2)减少对CPU的中断频率,放宽对CPU中断响应时间的限制。(3)提高CPU和I/O设备之间的并行性。缓冲区设置硬缓冲:在设备中设置缓冲区,由硬件实现;软缓冲:在内存中开辟一个空间,用作缓冲区;缓冲区管理单缓冲双缓冲循环缓冲缓冲池单缓冲块设备工作过程:用户发出I/O请求;OS在主存中分配一缓冲区;从磁盘把一块数据输入到缓冲区的时间为T,OS将该缓冲区中的数据传送到用户区的时间为M,CPU对这一块数据处理的时间为C,T和C是可以并行的,系统对每一块数据的处理时间表示为:Max(C,T)+M单缓冲工作示意图工作区处理(C)缓冲区传送(M)输入(T)I/O设备(a)T1M1C1T2M2C2T3M3C3T4t(b)用户进程单缓冲字符设备的工作过程:用户发出I/O请求;OS在主存中分配一缓冲区用于暂存用户输入的一行数据;输入期间,用户进程被挂起以等待数据输入完毕;输出时,用户进程将一行数据输入到缓冲区后,继续执行处理,当户用已有第二行数据输出时,如果第一行数据尚未被提取完毕,则用户进程阻塞;双缓冲也称缓冲对换输入时,将数据送入第一缓冲区,装满后便转向第二缓冲区。同时,从第一缓冲区中移出数据,并送入用户进程,接着由CPU对数据进行计算;双缓冲,系统处理一块数据的时间可以粗略地认为是Max(C,T)。如果C<T,可使块设备连续输入;如果C>T,则可使CPU不必等待设备输入;对于字符设备,若采用行输入方式,则采用双缓冲通常能消除用户的等待时间,即用户在输入完第一行之后,在CPU执行第一行中的命令时,用户可继续向第二缓冲区输入下一行数据;双缓冲工作示意图工作区用户进程缓冲区1缓冲区2I/O设备T1(缓冲1)M1C1M2C2M3C3T2(缓冲2)T3M4C4T4(a)(b)(缓冲3)(缓冲4)双机通信时缓冲区的设置缓冲区缓冲区A机B机(a)单缓冲发送缓冲区接收缓冲区接收缓冲区发送缓冲区A机B机(b)双缓冲循环缓冲的组成多个缓冲区;多个指针;多个缓冲区每个缓冲区的大小相同;作为输入的多缓冲区可分为三种类型:用于装输入数据的空缓冲区R;已装满数据的缓冲区G;计算进程正在使用的现行工作缓冲区C;RGGGRG165423NextiNextg多个指针用于指示计算进程下一个可用缓冲区G的指针Nextg;指示输入进程下次可用的空缓冲区R的指针Nexti;以及用于指示计算进程正在使用的缓冲区C的指针Current;RGGGRC165423NextiNextgcurrent循环缓冲区的使用Getbuf过程。(2)Releasebuf过程。Getbuf过程当计算进程要使用缓冲区中的数据时,可调用Getbuf过程;将指针Nextg所指示的缓冲区提供给进程使用;把它改为现行工作缓冲区,并令Current指针指向该缓冲区的第一个单元,同时将Nextg移向下一个G缓冲区;每当输入进程要使用空缓冲区来装入数据时,也调用Getbuf过程,由该过程将指针Nexti所指示的缓冲区提供给输入进程使用,同时将Nexti指针移向下一个R缓冲区;Releasebuf过程计算进程把C缓冲区中的数据提取完毕时,便调用Releasebuf过程,将缓冲区C释放;把该缓冲区由当前(现行)工作缓冲区C改为空缓冲区R;当输入进程把缓冲区装满时,也调用Releasebuf过程,将该缓冲区释放,并改为G缓冲区。缓冲池组成对于既可用于输入又可用于输出的公用缓冲池,其中至少应含有以下三种类型的缓冲区:①空(闲)缓冲区;②装满输入数据的缓冲区;③装满输出数据的缓冲区。为了管理上的方便,可将相同类型的缓冲区链成一个队列,于是可形成以下三个队列:空缓冲队列emq。由空缓冲区所链成的队列。输入队列inq。由装满输入数据的缓冲区所链成的队列。输出队列outq。由装满输出数据的缓冲区所链成的队列。具有四种工作缓冲区:①用于收容(接收)输入数据的工作缓冲区;②用于提取输入数据的工作缓冲区;③用于收容(接收)输出数据的工作缓冲区;④用于提取输出数据的工作缓冲区。收容输入。在输入进程需要输入数据时,从空缓冲队列的队首摘下一空缓冲区,把它作为收容输入工作缓冲区。然后,把数据输入其中,装满后,将该缓冲区挂在输入队列上。提取输入。当计算进程需要输入数据时,从输入队列的队首取得一个缓冲区,作为提取输入工作缓冲区,计算进程从中提取数据。计算进程用完该数据后,将该缓冲区挂到空缓冲队列上。收容输出。当计算进程需要输出时,从空缓冲队列的队首取得一个空缓冲区,作为收容输出工作缓冲区。当其中装满输出数据后,将该缓冲区挂在末尾。提取输出。由输出进程从输出队列的队首取得一装满输出数据的缓冲区,作为提取输出工作缓冲区。在数据提取完后,将该缓冲区挂在空缓冲队列末尾。缓冲区的工作方式hinsoutsinhout收容输入提取输出用户程序提取输入收容输出缓冲池I/O软件大部分I/O软件都包含在操作系统中,在I/O软件中普遍采用了层次式结构,每一层都利用其下层提供的服务,完成输入、输出功能中的某些子功能,并屏蔽这些功能实现的细节,向高层提供服务。用户层软件设备独立性软件设备驱动程序中断处理程序硬件I/O应答产生I/O请求、格式化I/O、Spooling映射、保护、分块、缓冲、分配设置设备寄存器,检查寄存器状态执行I/O操作中断处理程序一旦CPU响应中断,转入中断处理程序。中断处理程序首先检查响应中断的条件是否满足,如果响应,则关中断,保存被中断进程现场,分析中断原因,调用并执行中断处理子程序,最后退出中断,恢复现场,开中断。中断处理层的主要工作有:进行进程上下文的切换,对处理中断信号源进行测试,读取设备状态和修改进程状态等;中断处理程序的处理过程:1.唤醒被阻塞的驱动进程2.保护被中断进程的CPU环境3.转入相应的设备处理程序4.中断处理5.恢复被中断进程的现场设备驱动程序设备驱动程序通常又称为设备处理程序,与硬件直接相关,负责具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序;它是I/O进程与设备控制器之间的通信程序;主要任务是接收上层软件发来的抽象I/O要求,在把它转换为具体要求后,发送给设备控制器,启动设备去执行;将由设备控制器发来的信号传送给上层软件。由于驱动程序与硬件密切相关,故应为每一类设备配置一种驱动程序;设备独立性软件应用程序独立于具体使用的物理设备,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称;系统须具有将逻辑设备名称转换为某物理设备名称的功能;为了实现设备独立性,必须再在驱动程序之上设置一层软件,称为设备独立性软件。所有设备所需要的I/O功能在与设备独立的软件中实现,这类软件面向应用层并提供一个统一的应用编程接口(API),它提供了一组功能函数,程序员能够通过调用它们管理设备。与设备无关的系统软件实现的功能有:设备驱动程序的统一接口,设备命名,设备保护,提供一个与设备无关的逻辑块,缓冲,存储设备的块分配,独占设备的分配和释放,错误处理等。逻辑设备表为了实现设备的独立性,系统必须设置一张逻辑设备表(LUT),用于将应用程序中所使用的逻辑设备名映射为物理设备名。逻辑设备名物理设备名驱动程序入口地址/dev/tty/dev/printer3510242046………逻辑设备名/dev/tty/dev/printer…系统设备表指针35(a)(b)整个系统中只有一张LUT每个用户设置一张LUT用户层的I/O软件实现与用户交互的接口,用户可直接调用在用户层提供的、与I/O操作有关的库函数,对设备进行操作。用户层软件必须通过一组系统调用来取得操作系统服务。设备分配当进程向系统提出I/O请求时,设备分配程序按一定策略分配设备、控制器和通道,形成一条数据传输通路,以供主机和设备间信息交换;设备分配中的数据结构设备控制表(DCT)控制器控制表(COCT)通道控制表(CHCT)系统设备表(SDT)设备控制表DCT设备类型type设备标识符:deviceid设备状态:等待/不等待忙/闲指向控制器表的指针重复执行次数或时间设备队列的队首指针DCT1DCT2DCTn设备控制表集合系统为每个设备都配置一张设备控制表,用于记录本设备的情况。控制器控制表(COCT)系统为每一个控制器都设置了一张用于记录本控制器情况的控制器控制表。控制器标识符:controllerid控制器状态:忙/闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针控制器表COCT通道控制表(CHCT)每个通道都配有一张通道控制表。通道标识符:channelid通道状态:忙/闲与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针通道表CHCT系统设备表(SDT)系统设备表(SDT)表目1…表目i…设备类设备标识符DCT驱动程序入口这是系统范围的数据结构,其中记录了系统中全部设备的情况。根据用户请求的I/O设备的逻辑名,查找到逻辑设备和物理设备的映射表(LUT);以物理设备位索引号,查找SDT;找到该设备所连接的DCT;继续查找与该设备链接的COCT和CHCT,就找到了一条通路。表目1……表目i……设备类型设备标识符进程标识符DCT表指针驱动程序入口地址表目1……表目i……设备类型设备标识符设备状态(等待/不等待,忙/闲)COCT表指针重复执行的次数或时间设备队列的队首指针设备队列的队尾指针表目1……表目i……控制器标识符控制器状态(忙/闲)CHCT表指针控制器队列的队首指针控制器队列的队尾指针表目1……表目i……通道标识符通道状态(忙/闲)COCT表指针通道队列的队首指针通道队列的队尾指针系统设备表(SDT)设备控制表DCT控制器控制表(COCT)通道控制表(CHCT)设备分配时应考虑的因素由于在多道程序系统中,进程数多于资源数,可能引起资源的竞争,因此,要有一套合理的分配原则;分配时,应考虑的几个因素:设备的固有属性设备分配算法设备分配时的安全性设备独立性独占设备应采用独享分配策略,即将一个设备分配给某进程后,便由该进程独占,直至该进程完成或释放该设备,然后,系统才能再将该设备分配给其他进程使用;这种分配策略的缺点是,设备得不到充分利用,而且还可能引起死锁;共享设备对于共享设备,可同时分配给多个进程使用,且访问频繁,就会影响整个设备的使用效率,影响系统效率;此时须注意对这些进程访问该设备的先后次序进行合理的调度,使平均服务时间越短越好;可虚拟设备由于可虚拟设备是指一台物理设备在采用虚拟技术后,可变成多台逻辑上的所谓虚拟设备;一台可虚拟设备是可共享的设备,可以将它同时分配给多个进程使用,并对这些访问该(物理)设备的先后次序进行控制;设备分配算法先来先服务根据诸进程对某设备提出请求的先后次序,将这些进程排成一个设备请求队列,设备分配程序总是把设备首先分配给队首进程。(2)优先级高者优先。在进程调度中的这种策略,是优先权高的进程优先获得处理机。如果对这种高优先权进程所提出的I/O请求也赋予高优先权,显然有助于这种进程尽快完成。在利用该算法形成设备队列时,将优先权高的进程排在设备队列前面,而对于优先级相同的I/O请求,则按先来先服务原则排队。设备分配中的安全性安全分配方式每当进程发出I/O请求后,便进入阻塞状态,直到其I/O操作完成时才被唤醒;这种分配方式已经摒弃了造成死锁的四个必要条件之一的“请求和保持”条件,从而使设备分配是安全的;其缺点是进程进展缓慢,即CPU与I/O设备是串行工作的;2)不安全分配方式进程在发出I/O请求后仍继续运行,需要时又发出第二个I/O请求、第三个I/O请求等;仅当进程所请求的设备已被另一进程占用时,请求进程才进入阻塞状态;这种分配方式的优点是,一个进程可同时操作多个设备,使进程推进迅速;其缺点是分配不安全,因为它可能具备“请求和保持”条件,从而可能造成死锁;独占设备的分配程序分配设备2)分配控制器3)分配通道是SimultaneousPeripheralOperationOn-Line(即外部设备联机并行操作)的缩写,是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。SPOOLing技术SPOOLing系统的组成输入井和输出井。这是在磁盘上开辟的两个大存储空间;输入缓冲区和输出缓冲区。在内存中要开辟两个缓冲区;输入进程SPi和输出进程SPo。这里利用两个进程来模拟脱机I/O时的外围控制机;SPOOLing系统的组成输入进程SPi输入进程SPo输入缓冲区Bi输出缓冲区Bo输入井输出井磁盘输入设备输出设备共享打印机当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,而只为它做两件事:①由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中;②输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。SPOOLing系统的特点提高了I/O的速度。(2)将独占设备改造为共享设备。(3)实现了虚拟设备功能。磁盘设备可包括一个或多个物理盘片,每个磁盘片分为一个或两个存储面;每个盘面被组织成若干个同心环,称为磁道,也称柱面;各磁道之间留有必要的空隙;每条磁道被逻辑上划分成若干个扇区,一个扇区称为一个盘块或数据块;磁盘存储器的管理磁道(柱面)扇区磁臂磁头盘面5.6.1磁盘性能简介磁道间隔扇区扇区间隔低级格式化将空白的磁盘划分出柱面和磁道,再将磁道划分为若干个扇区,每个扇区又划分出标识部分ID、间隔区GAP和数据区DATA等。低级格式化只能针对一块硬盘而不能支持单独的某一个分区。每块硬盘在出厂时,已由硬盘生产商进行低级格式化,通常无需再进行低级格式化操作。对于硬盘上出现逻辑坏道或者软性物理坏道,可以使用低级格式化来达到屏蔽坏道的作用;低级格式化就是和操作系统无关的格式化。

高级格式化就是清除硬盘上的数据、生成引导区信息、初始化FAT表、标注逻辑坏道等。高级格式化主要是对硬盘的各个分区进行磁道的格式化,在逻辑上划分磁道。长期以来,硬盘在储存数据时,都是以512B大小的扇区(Sector)为单位分割进行读写。随着硬盘容量的不断提升,这种分配标准已经越来越显的不合时宜。因此,将扇区容量扩大到4KB。高级格式化可以优化硬盘,从而最大限度地利用全新操作系统的功能。高级格式化就是和操作系统有关的格式化。磁盘的类型1)固定头磁盘这种磁盘在每条磁道上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。2)移动头磁盘每一个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。磁盘访问时间1)寻道时间Ts磁臂(磁头)移动到指定磁道上所经历的时间。该时间是启动磁臂的时间s与磁头移动n条磁道所花费的时间之和,即Ts=m×n+sm是一常数,与磁盘驱动器的速度有关;3)传输时间Tt

——数据从磁盘读出或向磁盘写入数据所经历的时间。

Tt的大小与每次所读/写的字节数b和旋转速度有关:2)旋转延迟时间Tr指定扇区移动到磁头下面所经历的时间。磁盘调度先来先服务(FCFS)算法最短寻道时间优先(SSTF)算法扫描(SCAN)算法循环扫描(CSCAN)算法N-Step-SCANFSCAN调度算法先来先服务算法按访问请求到达的先后次序服务优点:简单,公平;缺点:效率不高,相临两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利;假定最近的服务请求位于磁道100,且磁头正向磁道号增加的方向移动。现有以下按先来后到次序排列的磁道请求:55,58,39,18,90,160,150,38,184。利用FCFS磁盘调度算法计算平均寻道长度。183839555890100150160184(从100号磁道开始)被访问的下一个磁道号移动距离(磁道数)5545583391918219072160701501038112184146平均寻道长度:55.3最短寻道时间优先算法优先选择距当前磁头最近的访问请求进行服务,主要考虑寻道优先优点:改善了磁盘平均服务时间;缺点:造成某些访问请求长期等待得不到服务假定最近的服务请求位于磁道100,并且磁头正向磁道号增加的方向移动。现有以下的磁道请求:55,58,39,18,90,160,150,38,184。利用SSTF磁盘调度算法计算平均寻道长度。183839555890100150160184(从100号磁道开始)被访问的下一个磁道号移动距离(磁道数)9010583255339163811820150132160101842

温馨提示

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

评论

0/150

提交评论