购买

¥30.0

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 计算机系统结构教程:第08章

计算机系统结构教程:第08章.ppt

计算机系统结构教程:第08章

烟雨梦兮
2018-10-14 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《计算机系统结构教程:第08章ppt》,可适用于IT/计算机领域

*▲第章输入输出系统张晨曦刘依wwwGotoSchoolnetxzhangsohucom*▲IO系统的性能IO系统的可靠性、可用性和可信性廉价磁盘冗余阵列RAID总线通道处理机IO与操作系统*▲输入输出系统简称IO系统它包括:IO设备IO设备与处理机的连接IO系统是计算机系统中的一个重要组成部分完成计算机与外界的信息交换给计算机提供大容量的外部存储器按照主要完成的工作进行分类:存储IO系统(本章内容)通信IO系统IO系统的性能*▲IO系统的性能IO系统的性能对CPU的性能有很大的影响若两者的性能不匹配IO系统就有可能成为整个系统的瓶颈。系统的响应时间(衡量计算机系统的一个更好的指标)从用户输入命令开始到得到结果所花费的时间。由两部分构成:IO系统的响应时间CPU的处理时间多进程技术只能够提高系统吞吐率并不能够减少系统响应时间。*▲IO系统的性能评价IO系统性能的参数主要有:连接特性(哪些IO设备可以和计算机系统相连接)IO系统的容量(IO系统可以容纳的IO设备数)响应时间和吞吐率等另一种衡量IO系统性能的方法:考虑IO操作对CPU的打扰情况。即考查某个进程在执行时由于其他进程的IO操作使得该进程的执行时间增加了多少。*▲反映外设可靠性能的参数有:可靠性(Reliability)可用性(Availability)可信性(Dependability)系统的可靠性:系统从某个初始参考点开始一直连续提供服务的能力。用平均无故障时间MTTF来衡量。系统中断服务的时间用平均修复时间MTTR来衡量。IO系统的可靠性、可用性和可信性*▲IO系统的可靠性、可用性和可信性MTTF的倒数就是系统的失效率。如果系统中每个模块的生存期服从指数分布则系统整体的失效率是各部件的失效率之和。系统的可用性:系统正常工作的时间在连续两次正常服务间隔时间中所占的比率。MTTFMTTR:平均失效间隔时间MTBF(MeanTimeBetweenFailure)系统的可信性:服务的质量。即在多大程度上可以合理地认为服务是可靠的。(不可以度量)*▲IO系统的可靠性、可用性和可信性例假设磁盘子系统的组成部件和它们的MTTF如下:()磁盘子系统由个磁盘构成每个磁盘的MTTF为小时()个SCSI控制器其MTTF为小时()个不间断电源其MTTF为小时()个风扇其MTTF为小时()根SCSI连线其MTTF为小时。假定每个部件的生存期服从指数分布同时假定各部件的故障是相互独立的求整个系统的MTTF。*▲IO系统的可靠性、可用性和可信性解整个系统的失效率为:系统的MTTF为系统失效率的倒数即:即将近年。*▲IO系统的可靠性、可用性和可信性提高系统组成部件可靠性的方法有效构建方法(validconstruction)在构建系统的过程中消除故障隐患这样建立起来的系统就不会出现故障。纠错方法(errorcorrection)在系统构建中采用容错的方法。这样即使出现故障也可以通过容错信息保证系统正常工作。*▲磁盘阵列DA(DiskArray):使用多个磁盘(包括驱动器)的组合来代替一个大容量的磁盘。多个磁盘并行工作。以条带为单位把数据均匀地分布到多个磁盘上。(交叉存放)条带存放可以使多个数据读写请求并行地被处理从而提高总的IO性能。这里并行性有两方面的含义:廉价磁盘冗余阵列RAID*▲廉价磁盘冗余阵列RAID多个独立的请求可以由多个盘来并行地处理。减少了IO请求的排队等待时间如果一个请求访问多个块就可以由多个盘合作来并行处理。提高了单个请求的数据传输率问题:阵列中磁盘数量的增加会导致磁盘阵列可靠性的下降。如果使用了N个磁盘构成磁盘阵列那么整个阵列的可靠性将降低为单个磁盘的N。解决方法:在磁盘阵列中设置冗余信息盘当单个磁盘失效时丢失的信息可以通过冗余盘中的信息重新构建。*▲廉价磁盘冗余阵列RAID廉价磁盘冗余阵列RAIDRedundantArraysofInexpensiveDisks独立磁盘冗余阵列RedundantArraysofIndependentDisks大多数磁盘阵列的组成可以由以下两个特征来区分:数据交叉存放的粒度(可以是细粒度的也可以是粗粒度的)细粒度磁盘阵列是在概念上把数据分割成相对较小的单位交叉存放。*▲廉价磁盘冗余阵列RAID优点:所有IO请求都能够获得很高的数据传输率。缺点:在任何时间都只有一个逻辑上的IO在处理当中而且所有的磁盘都会因为为每个请求进行定位而浪费时间。粗粒度磁盘阵列是把数据以相对较大的单位交叉存放。多个较小规模的请求可以同时得到处理。对于较大规模的请求又能获得较高的传输率。冗余数据的计算方法以及在磁盘阵列中的存放方式*▲廉价磁盘冗余阵列RAID在磁盘阵列中设置冗余需要解决以下两个问题:如何计算冗余信息大多都是采用奇偶校验码也有采用汉明码(Hammingcode)或ReedSolomon码的。如何把冗余信息分布到磁盘阵列中的各个盘有两种方法:把冗余信息集中存放在少数的几个盘中。把冗余信息均匀地存放到所有的盘中。(能避免出现热点问题)*▲RAID的分级及其特性RAID级别可以容忍的故障个数以及当数据盘为个时所需要的检测盘的个数优点缺点公司产品非冗余条带存放个故障个检测盘没有空间开销没有纠错能力广泛应用镜像个故障个检测盘不需要计算奇偶校验数据恢复快读数据快。而且其小规模写操作比更高级别的RAID快检测空间开销最大(即需要的检测盘最多)EMCHP(Tandem)IBM存储器式ECC个故障个检测盘不依靠故障盘进行自诊断检测空间开销的级别是logm级(m为数据盘的个数)没有位交叉奇偶校验个故障个检测盘检测空间开销小(即需要的检测盘少)大规模读写操作的带宽高对小规模、随机的读写操作没有提供特别的支持外存概念*▲*▲廉价磁盘冗余阵列RAID有关RAID的几个问题关键问题:如何发现磁盘的故障在磁盘扇区中除了保存数据信息外还保存有用于发现该扇区错误的检测信息。设计的另一个问题如何减少平均修复时间MTTR典型的做法:在系统中增加热备份盘热交换技术与热备份盘相关的一种技术*▲廉价磁盘冗余阵列RAID非冗余磁盘阵列无冗余信息。严格地说它不属于RAID系列。把数据切分成条带以条带为单位交叉地分布存放到多个磁盘中。RAIDMNOIJKLEFGHABCD*▲廉价磁盘冗余阵列RAID镜像磁盘对所有的磁盘数据提供一份冗余的备份。每当把数据写入磁盘时将该数据也写入其镜像盘。在系统中所有的数据都有两份。RAIDDDHHCCGGBBFFAAEENNJOOKKPPLLJMMMII镜像镜像镜像镜像====*▲廉价磁盘冗余阵列RAIDRAID的特点能实现快速的读取操作。对于写入操作镜像的两个磁盘都要写入。但可并行进行而且不需要计算校验信息所以其速度比级别更高的RAID都快。可靠性很高数据的恢复很简单。实现成本最高。*▲廉价磁盘冗余阵列RAID存储器式的磁盘阵列(按汉明纠错码的思路构建)含个数据盘的RAIDRAIDDDDDCCCCBBBBAAAAECCBzECCBxECCByECCCzECCCyECCCx字A的ECC=Ax~Az字B的ECC=Bx~Bz字C的ECC=Cx~Cz字D的ECC=Dx~DzECCDzECCDyECCDxECCBx字A=A~A字B=B~B字C=C~C字D=D~DECCAzECCAyECCAx*▲廉价磁盘冗余阵列RAIDRAID的特点每个数据盘存放所有数据字的一位(位交叉存放)各个数据盘上的相应位计算汉明校验码编码位被存放在多个校验(ECC)磁盘的对应位上。冗余盘是用来存放汉明码的其个数为logm级。m:数据盘的个数(也就是数据字的位数)并未被广泛应用目前还没有商业化产品。*▲廉价磁盘冗余阵列RAID位交叉奇偶校验磁盘阵列RAIDDDDDCCCCBBBBAAAA的校验条带、、、条带条带Cparity条带条带DparityBparity产生器奇偶校验Aparity*▲廉价磁盘冗余阵列RAIDRAID的特点采用奇偶校验写数据时:为每行数据形成奇偶校验位并写入校验盘读出数据时:如果控制器发现某个磁盘出故障就可以根据故障盘以外的所有其他盘中的正确信息恢复故障盘中的数据。(通过异或运算实现)细粒度的磁盘阵列即采用的条带宽度较小。(可以是个字节或位)能够获得很高的数据传输率这种磁盘阵列对大数据量的读写具有很大的优越性。不能同时进行多个IO请求的处理。只需要一个校验盘校验空间开销比较小。*▲廉价磁盘冗余阵列RAID块交叉奇偶校验磁盘阵列采用比较大的条带以块为单位进行交叉存放和计算奇偶校验。实现目标:能同时处理多个小规模访问请求RAIDDDDDCCCCBBBBAAAA的校验块、、、块块Cparity块块DparityBparity产生器奇偶校验Aparity*▲廉价磁盘冗余阵列RAIDRAID读写特点读取操作每次只需访问数据所在的磁盘。仅在该磁盘出现故障时才会去读校验盘并进行数据的重建。写入操作假定:有个数据盘和一个冗余盘。写数据需要次磁盘读和次磁盘写操作。*▲廉价磁盘冗余阵列RAIDRAID能有效地处理小规模访问快速处理大规模访问校验空间开销比较小。但其控制比较复杂。写读写读++异或异或AAAAAparityA’parityAAAA’A’*▲廉价磁盘冗余阵列RAID块交叉分布奇偶校验磁盘阵列数据以块交叉的方式存于各盘无专用冗余盘奇偶校验信息均匀分布在所有磁盘上。RAIDABCDABDABCDABCD的校验ECB块C块ED块A块的校验E块EE的校验的校验的校验*▲廉价磁盘冗余阵列RAIDP+Q双校验磁盘阵列特点校验空间开销是RAID的两倍容忍两个磁盘出错RAIDABCQ校验Q校验P校验DAQ校验P校验DABQ校验P校验BC块D块C块B块AP校验DC*▲廉价磁盘冗余阵列RAIDRAID又称为RAID先进行镜像(RAID)再进行条带存放(RAID)RAID与RAIDMMNNIIJJEEFFAABBHHGLLKKPPOOGDMDCC镜像镜像镜像镜像====按条带存放*▲廉价磁盘冗余阵列RAIDRAID又称为RAID先进行条带存放(RAID)再进行镜像(RAID)MNOPIJKKLEFGHABCDHGFLKJIPONMEDMCBA镜像按条带存放按条带存放=*▲廉价磁盘冗余阵列RAID实现盘阵列的方式主要有三种:软件方式:阵列管理软件由主机来实现。优点:成本低缺点:过多地占用主机时间且带宽指标上不去。阵列卡方式:把RAID管理软件固化在IO控制卡上从而可不占用主机时间一般用于工作站和PC机。子系统方式:一种基于通用接口总线的开放式平台可用于各种主机平台和网络系统。RAID的实现与发展*▲在计算机系统中各子系统之间可以通过总线互相连接。优点:成本低、简单主要缺点:它是由不同的外设分时共享的形成了信息交换的瓶颈从而限制了系统中总的IO吞吐量。总线*▲总线总线设计存在很多技术难点一个重要原因:总线上信息传送的速度极大地受限于各种物理因素。如总线的长度、设备的数目、信号的强度等这些物理因素限制了总线性能的提高。另外我们一方面要求IO操作响应快另一方面又要求高吞吐量这可能造成设计需求上的冲突。总线的设计*▲总线设计总线时需要考虑的一些问题*▲总线分离事务总线(又称:流水总线、悬挂总线、包交换总线)在有多个主设备时可以通过包交换来提高总线带宽。基本思想将总线事务分成请求和应答两部分。在请求和应答之间的空闲时间内总线可以供其他的IO使用这样就不必在整个IO过程中都独占总线。工作过程的示意图*▲总线分离事务总线有较高的带宽但是它的数据传送延迟通常比独占总线方法大。*▲总线同步总线同步总线的控制线中包含一个时钟总线上所有设备的所有的通信操作都以该时钟为基准。优点:速度快、成本低。缺点由于时钟通过长距离传输后会扭曲因而同步总线不能用于长距离的连接。特别是对于高速同步总线来说更是如此。总线上的所有设备都必须以同样的时钟频率工作。CPU存储器总线通常是采用同步总线。*▲总线异步总线没有统一的参考时钟每个设备都有各自的定时方法。采用握手协议。不存在时钟扭曲和同步的问题传输距离可以比较长。很多IO总线都采用异步总线。同步总线通常比异步总线快。*▲总线IO总线标准:定义如何将设备与计算机进行连接的文档。常见IO总线的一些典型特征总线标准和实例*▲几种常用并行IO总线*▲总线在嵌入式系统中使用较多的种串行IO总线的一些典型特征*▲总线在服务器系统中使用的CPU存储器互连系统*▲总线IO总线的物理连接方式有两种选择连接到存储器上更常见连接到Cache上IO总线连接到存储器总线上的方式一种典型的组织结构与CPU的连接*▲CPUCache主存IO控制器图形输出IO控制器总线适配器网络CPU-主存总线IO总线总线适配器AGP总线PCI总线IO控制器IO控制器总线适配器磁盘磁盘CD*▲总线CPU对IO设备的编址有两种方式存储器映射IO(也称为IO设备统一编址)将一部分存储器地址空间分配给IO设备用load指令和store指令对这些地址进行读写将引起IO设备的数据传输。将一部分存储空间留出用于设备控制对这一部分地址空间进行读写就是向设备发出控制命令。给IO设备独立编址需要在CPU中设置专用的IO指令来访问IO设备。CPU需要发出一个标志信号来表示所访问的地址是IO设备的地址。*▲总线CPU与外部设备进行输入输出的方式可分为种程序查询中断DMA通道*▲通道处理机通道的作用和功能程序控制、中断和DMA方式管理外围设备会引起两个问题:所有外设的输入输出工作均由CPU承担CPU的计算工作经常被打断而去处理输入输出的事务不能充分发挥CPU的计算能力。大型计算机系统的外设虽然很多但同时工作的机会不是很多。解决上述问题的方法:采用通道处理机*▲通道处理机通道处理机能够负担外围设备的大部分IO工作。通道处理机(简称通道):专门负责整个计算机系统的输入输出工作。通道处理机只能执行有限的一组输入输出指令。*▲通道处理机一个典型的由CPU、通道、设备控制器、外设构成的级层次结构的输入输出系统。通道的功能接收CPU发来的IO指令并根据指令要求选择指定的外设与通道相连接。执行通道程序从主存中逐条取出通道指令对通道指令进行译码并根据需要向被选中的设备控制器发出各种操作命令。给出外设中要进行读写操作的数据所在的地址如磁盘存储器的柱面号、磁头号、扇区号等。*▲通道处理机给出主存缓冲区的首地址该缓冲区存放从外设输入的数据或者将要输出到外设中去的数据。控制外设与主存缓冲区之间的数据传送的长度对传送的数据个数进行计数并判断数据传送是否结束。指定传送工作结束时要进行的操作例如:将外设的中断请求及通道的中断请求送往CPU等。检查外设的工作状态是否正常并将该状态信息送往主存指定单元保存。在数据传输过程中完成必要的格式变换例如:把字拆分为字节或者把字节装配成字等。*▲通道处理机通道的主要硬件寄存器数据缓冲寄存器主存地址计数器传输字节数计数器通道命令字寄存器通道状态字寄存器控制逻辑分时控制地址分配数据传送、装配和拆分等*▲通道处理机通道对外设的控制通过输入输出接口和设备控制器进行通道与设备控制器之间一般采用标准的输入输出接口来连接。通道通过标准接口把操作命令送到设备控制器设备控制器解释并执行这些通道命令完成命令指定的操作。设备控制器能够记录外设的状态并把状态信息送往通道和CPU。*▲通道处理机通道完成一次数据输入输出的工作过程在用户程序中使用访管指令进入管理程序由管理程序生成一个通道程序并启动通道。用户在目标程序中设置一条广义指令通过调用操作系统的管理程序来实现。管理程序根据广义指令提供的参数来编制通道程序。启动输入输出设备指令是一条主要的输入输出指令属于特权指令。通道的工作过程*▲通道处理机用户程序管理程序通道程序广义指令和参数访管入口OC设备号交换长度OCOC主存起始地址编写通道程序入口置通道地址字启动IO返回断开通道指令通道程序中断处理程序IO中断请求IO中断响应IO中断返回…*▲通道处理机通道处理机执行通道程序完成指定的数据输入输出工作。通道处理机执行通道程序与CPU执行用户程序是并行的。通道程序结束后向CPU发中断请求。CPU执行程序和通道执行通道程序的时间关系*▲通道处理机CPU运行用户程序时间请求IO访管指令响应IO中断请求CPU运行IO管理程序通道运行存放在主存中的通道程序编制通道程序启动IO操作组织IO操作向CPU发中断请求登记或处理*▲通道处理机根据信息传送方式的不同将通道分为三种类型字节多路通道选择通道数组多路通道三种类型的通道与CPU、设备控制器和外设的连接关系通道的种类*▲通道处理机CPU选择通道路通道字节多路通道数组多主存通道总线磁盘控制器磁盘…设备通道总线内部总线磁盘控制器磁盘磁盘…设备控制器设备设备控制器设备通道总线…设备控制器设备设备控制器设备设备*▲通道处理机字节多路通道为多台低速或中速的外设服务。以字节交叉的方式分时轮流地为它们服务。字节多路通道可以包含多个子通道每个子通道连接一台设备控制器。选择通道为多台高速外围设备服务。在一段时间内只为一台高速外设独占使用。选择通道的硬件*▲通道处理机个寄存器数据缓冲寄存器、设备地址寄存器、主存地址计数器、交换字节数计数器、设备状态控制寄存器格式变换部件用于在主存和设备之间进行字与字节的拆分和装配通道控制部件数组多路通道适用于高速设备。每次选择一个高速设备后传送一个数据块轮流为多台外围设备服务。*▲通道处理机数组多路通道之所以能够并行地为多台高速设备服务是因为虽然其所连设备的传输速率很高但寻址等辅助操作时间很长。以从磁盘存储器读出一个文件的过程为例:数据读出过程可以分为个步骤:磁头定位找扇区和读出数据。磁盘的寻址时间:磁头定位和找扇区的时间加起来磁盘存储器的寻址时间要比数据传输时间长两个数量级以上。*▲通道处理机通道流量一个通道在数据传送期间单位时间内能够传送的数据量。所用单位一般为Bs。又称为通道吞吐率、通道数据传输率等。通道最大流量一个通道在满负荷工作状态下的流量。通道流量分析*▲通道处理机参数的定义TS:设备选择时间。从通道响应设备发出的数据传送请求开始到通道实际为这台设备传送数据所需要的时间。TD:传送一个字节所用的时间。p:在一个通道上连接的设备台数且这些设备同时都在工作。n:每台设备传送的字节数这里假设每台设备传送的字节数都相同。k:数组多路通道传输的一个数据块中包含的字节数。在一般情况下k<n。对于磁盘、磁带等磁表面存储器通常k=。T:通道完成全部数据传送工作所需要的时间。*▲通道处理机字节多路通道数据传送过程通道每连接一台个外设只传送一个字节然后又与另一台设备连接并传送一个字节。p台设备每台传送n个数据总共所需的时间为TSTDTDTSTDTSD传输各设备的第个字节…传输各设备的第个字节DDDpDpTBYTE……D…TDTSTDTSTDTS传输各设备的第n个字节…DpnDnDn…TDTSTDTSTDTS……*▲通道处理机最大流量实际流量是连接在这个通道上的所有设备的数据传输率之和。fi:第i台设备的实际数据传输率*▲通道处理机选择通道在一段时间内只能单独为一台高速外设服务当这台设备的数据传送工作全部完成后通道才能为另一台设备服务。工作过程其中:Di表示通道正在为第i台设备服务TD=TD=…=TDn=TDTSTDTD…TDnDpTSD…DTSTDTD…TDnTDTD…TDnT…*▲通道处理机p台设备每台传送n个数据总共所需的时间最大流量*▲通道处理机数组多路通道工作过程p台设备每台传送n个数据总共所需的时间为:TSTDTD…TDk…DDpTDnk…TDnTSDTS…DTSTDk…TDkTDTD…TDkT……*▲通道处理机最大流量选择通道和数组多路通道的实际流量就是连接在这个通道上的所有设备中数据流量最大的那一个。*▲通道处理机各种通道的实际流量应该不大于通道的最大流量两边的差值越小通道的利用率就越高。当两边相等时通道处于满负荷工作状态。*▲操作系统的作用之一是在多进程之间进行进程保护这种保护包括存储器访问和IO操作两个方面。IO操作主要是在外设和存储器之间进行所以操作系统必须保证这些IO操作的安全性。IO与操作系统*▲IO与操作系统DMA是使用虚拟地址还是物理地址?使用物理地址进行DMA传输存在以下两个问题:对于超过一页的数据缓冲区由于缓冲区使用的页面在物理存储器中不一定是连续的所以传输可能会发生问题。如果DMA正在存储器和缓冲区之间传输数据时操作系统从存储器中移出(或重定位)一些页面那么DMA将会在存储器中错误的物理页面上进行数据传输。DMA和虚拟存储器*▲IO与操作系统解决这些问题的方法使操作系统在IO的传输过程中确保DMA设备所访问的页面都位于物理存储器中这些页面被称为是钉在了主存中。“虚拟DMA”技术允许DMA设备直接使用虚拟地址并在DMA期间由硬件将虚拟地址转换为物理地址。在采用虚拟DMA的情况下如果进程在内存中被移动操作系统应该能够及时地修改相应的DMA地址表。*▲CPUCache主存DMA控制器IO总线TLB地址转换寄存器-主存总线CPUIO控制器图形输出网络IO控制器IO控制器磁盘磁盘虚拟DMA的IO连接*▲IO与操作系统Cache会使一个数据出现两个副本:一个在Cache中另一个在主存中。IO设备可以修改存储器中的内容把IO连接到存储器上会出现以下情况:CPU修改了Cache的内容后由于存储器的内容跟不上Cache内容的变化IO系统进行输出操作时所看到的数据是旧值。(写直达Cache没有这样的问题)IO系统进行输入操作后存储器的内容发生了变化但CPU在Cache中所看到的内容依然是旧值。IO和Cache数据一致性*▲IO与操作系统举例:假设Cache采用写回法并且A’是A的副本B’是B的副本。…ABA’B’CPUIO(a)A’=AB’=B(b)A’≠AA为旧值写入IOCPUB’(旧值)A’B()写入(c)B’≠BB’为旧值IOCPUB’A’()BA(旧值)…A…存储器存储器存储器*▲IO与操作系统把IO直接连接到Cache上不会产生由IO导致的数据不一致的问题。所有IO设备和CPU都能在Cache中看到最新的数据。IO会跟CPU竞争访问Cache在进行IO时会造成CPU的停顿。IO还可能会破坏Cache中CPU访问的内容因为IO操作可能导致一些新数据被加入Cache而这些新数据可能在近期内并不会被CPU访问。*▲IO与操作系统解决内容一致性问题的方法(不管Cache是采用写直达法还是写回法)软件的方法设法保证IO缓冲器中的所有各块都不在Cache中。具体做法有两种把IO缓冲器的页面设置为不可进入Cache的在进行输入操作时操作系统总是把输入的数据放到该页面上。在进行输入操作之前操作系统先把Cache中与IO缓冲器相关的数据“赶出”Cache即把相应的数据块设置为“无效”状态。*▲IO与操作系统硬件的方法在进行输入操作时检查相应的IO地址(IO缓冲器中的单元)是否在Cache中(即是否有数据副本)。如果发现IO地址在Cache中有匹配的项就把相应的Cache块设置为“无效”。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/81

¥30.0

立即购买

VIP

意见
反馈

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利