oracle期末整理1.docx

上传人:b****2 文档编号:2432151 上传时间:2023-05-03 格式:DOCX 页数:29 大小:82.81KB
下载 相关 举报
oracle期末整理1.docx_第1页
第1页 / 共29页
oracle期末整理1.docx_第2页
第2页 / 共29页
oracle期末整理1.docx_第3页
第3页 / 共29页
oracle期末整理1.docx_第4页
第4页 / 共29页
oracle期末整理1.docx_第5页
第5页 / 共29页
oracle期末整理1.docx_第6页
第6页 / 共29页
oracle期末整理1.docx_第7页
第7页 / 共29页
oracle期末整理1.docx_第8页
第8页 / 共29页
oracle期末整理1.docx_第9页
第9页 / 共29页
oracle期末整理1.docx_第10页
第10页 / 共29页
oracle期末整理1.docx_第11页
第11页 / 共29页
oracle期末整理1.docx_第12页
第12页 / 共29页
oracle期末整理1.docx_第13页
第13页 / 共29页
oracle期末整理1.docx_第14页
第14页 / 共29页
oracle期末整理1.docx_第15页
第15页 / 共29页
oracle期末整理1.docx_第16页
第16页 / 共29页
oracle期末整理1.docx_第17页
第17页 / 共29页
oracle期末整理1.docx_第18页
第18页 / 共29页
oracle期末整理1.docx_第19页
第19页 / 共29页
oracle期末整理1.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

oracle期末整理1.docx

《oracle期末整理1.docx》由会员分享,可在线阅读,更多相关《oracle期末整理1.docx(29页珍藏版)》请在冰点文库上搜索。

oracle期末整理1.docx

oracle期末整理1

第一章绪论

1.1什么是并行计算机?

答:

简单地讲,并行计算机就是由多个处理单元组成的计算机系统,这些处理单元相互通信和协作,能快速高效求解大型的复杂的问题。

1.2简述Flynn分类法:

答:

根据指令流和数据流的多重性将计算机分为:

1)单指令单数据流SISD

2)单指令多数据流SIMD

3)多指令单数据流MISD

4)多指令多数据流MIMD

1.3简述当代的并行机系统

答:

当代并行机系统主要有:

1)并行向量机(PVP)

2)对称多处理机(SMP)

3)大规模并行处理机(MPP)

4)分布式共享存储(DSM)处理机

5)工作站机群(COW)

1.4为什么需要并行计算机?

答:

1)加快计算速度

2)提高计算精度

3)满足快速时效要求

4)进行无法替代的模拟计算

1.5简述处理器并行度的发展趋势

答:

1)位级并行

2)指令级并行

3)线程级并行

1.6简述SIMD阵列机的特点

答:

1)它是使用资源重复的方法来开拓计算问题空间的并行性。

2)所有的处理单元(PE)必须是同步的。

3)阵列机的研究必须与并行算法紧密结合,这样才能提高效率。

4)阵列机是一种专用的计算机,用于处理一些专门的问题。

1.7简述多计算机系统的演变

答:

分为三个阶段:

1)1983-1987年为第一代,代表机器有:

Ipsc/1、Ameteks/14等。

2)1988-1992年为第二代,代表机器有:

Paragon、Inteldelta等。

3)1993-1997年为第三代,代表机器有:

MIT的J-machine。

1.8简述并行计算机的访存模型

答:

1)均匀存储访问模型(UMA)

2)非均匀存储访问模型(NUMA)

3)全高速缓存存储访问模型(COMA)

4)高速缓存一致性非均匀访问模型(CC-NUMA)

1.9简述均匀存储访问模型的特点

答:

1)物理存储器被所有处理器均匀共享。

2)所有处理器访问任何存储字的时间相同。

3)每台处理器可带私有高速缓存。

4)外围设备也可以一定的形式共享。

1.10简述非均匀存储访问模型的特点

答:

1)被共享的存储器在物理上分布在所有的处理器中,其所有的本地存储器的集合构成了全局的地址空间。

2)处理器访问存储器的时间不一样。

3)每台处理器可带私有高速缓存,外备也可以某种的形式共享。

第二章性能评测

2.1使用40MHZ主频的标量处理器执行一个典型测试程序,其所执行的指令数及所需的周期数如表2.13所示。

试计算执行该程序的有效CPI、MIPS速率及总的CPU执行时间。

解:

CPI=totalcycles/totalinstructions

=(45000*1+32000*2+15000*2+8000*2)/(45000+32000+15000+8000)

=1.55

MIPS=时钟频率/(CPI*106)=(40*106)/(1.55*106)=25.8

CPU执行时间=totalcycles/时钟频率=0.00375s

2.2欲在40MHZ主频的标量处理器上执行20万条目标代码指令程序。

假定该程序中含有4种主要类型之指令,各指令所占的比例及CPI数如表2.14所示,试计算:

①在单处理机上执行该程序的平均CPI。

②由①所得结果,计算相应的MIPS速率。

解:

(1)CPI=1*60%+2*18%+4*12%+8*10%

=2.12

(2)MIPS=时钟频率/(CPI*106)=(40*106)/(2.12*106)=18.9

2.12.3已知SP2并行计算机的通信开销表达式为:

t(m)=46+(0.035)m,试计算:

1

渐近带宽r∞=?

2半峰值信息长度=?

[提示:

to=46μs]

解:

(1)渐近带宽r∞=1/0.035=28.6MB/S

(2)半峰值消息长度m1/2=to*r∞=46us*28.6MB/S=1315.6B

2.4并行机性能评测的意义。

答:

意义有:

1)发挥并行机长处,提高并行机的使用效率。

2)减少用户购机盲目性,降低投资风险。

3)改进系统结构设计,提高机器的性能。

4)促进软/硬件结合,合理功能划分。

5)优化“结构-算法-应用”的最佳组合。

6)提供客观、公正的评价并行机的标准。

2.5如何进行并行机性能评测

答:

1)机器级性能评测:

CPU和存储器的某些基本性能指标;并行和通信开销分析;并行机的可用性与好用性以及机器成本、价格与性/价比。

2)算法级性能评测:

加速比、效率、扩展性。

3)程序级性能评测:

Benchmark。

2.6简述Gustafson定律的出发点

答:

1)对于很多大型计算,精度要求很高,即在此类应用中精度是个关键因素,而计算时间是固定不变的。

此时为了提高精度,必须加大计算量,相应地亦必须增多处理器数才能维持时间不变。

2)除非学术研究,在实际应用中没有必要固定工作负载而计算程序运行在不同数目的处理器上,增多处理器必须相应地增大问题规模才有实际意义。

2.7已知一程序可并行代码占比例为80%,将其在有10个处理器的系统中运行,求其加速比?

并求其极限加速比?

并分析其结构带来的影响

解:

加速比=1/(20%+80%/10)=1/(0.2+0.08)=3.57。

极限加速比,即处理器个数无穷大的时候呈现的加速比=1/20%=5。

这个极限加速比,换个角度说是,Amdahl定律在很长一段时间影响了人们对开发并行计算机的信心,对于本例,因为就算你把处理器做到无穷也只能得到5倍的加速比,同时有一点更明显,就是处理器数目增加到一定程度后,加速比的增长非常缓慢。

2.8简述影响加速的因素

答:

1)求解问题中的串行分量。

2)并行处理器所引起的额外开销。

3)加大的处理器数超过的算法的并发程度。

2.9为什么增加问题规模可以在一定程度提高加速

答:

1)较大的问题规模可提高较大的并发度。

2)额外开销的增加可能慢于有效计算的增加。

3)算法中串行分量的比例不是固定不变的。

2.10进行可扩放行研究的主要意义

答:

1)确定解决某类问题用某类并行算法和某类并行体系结构结合,可以有效的利用大量的处理器。

2)对于运行于某种体系结构的并行机的某种算法当移到大规模处理机上的性能。

3)对于某类固定规模的问题,确定在某类并行机上的最优处理器数目和最大的加速比。

4)用于指导改进并行算法和并行体系结构,以使并行算法能尽可能充分利用可扩充的。

大量的处理器。

第三章互连网络

3.1对于一颗K级二叉树(根为0级,叶为k-1级),共有N=2^k-1个节点,当推广至m-元树时(即每个非叶节点有m个子节点)时,试写出总节点数N的表达式。

答:

推广至M元树时,k级M元树总结点数N的表达式为:

N=1+m^1+m^2+...+m^(k-1)=(1-m^k)*1/(1-m);

3.2二元胖树如图3.46所示,此时所有非根节点均有2个父节点。

如果将图中的每个椭圆均视为单个节点,并且成对节点间的多条边视为一条边,则他实际上就是一个二叉树。

试问:

如果不管椭圆,只把小方块视为节点,则他从叶到根形成什么样的多级互联网络?

答:

8输入的完全混洗三级互联网络。

3.3四元胖树如图3.47所示,试问:

每个内节点有几个子节点和几个父节点?

你知道那个机器使用了此种形式的胖树?

答:

每个内节点有4个子节点,2个父节点。

CM-5使用了此类胖树结构。

3.4试构造一个N=64的立方环网络,并将其直径和节点度与N=64的超立方比较之,你的结论是什么?

答:

AN=64的立方环网络,为4立方环(将4维超立方每个顶点以4面体替代得到),直径d=9,节点度n=4

BN=64的超立方网络,为六维超立方(将一个立方体分为8个小立方,以每个小立方作为简单立方体的节点,互联成6维超立方),直径d=6,节点度n=6

3.5一个N=2^k个节点的deBruijin网络如图3.48所示,令

,是一个节点的二进制表示,则该节点可达如下两个节点:

0,

1。

试问:

该网络的直径和对剖宽度是多少?

答:

N=2^k个节点的deBruijin网络直径d=k对剖宽带w=2^(k-1)

3.6一个N=2^n个节点的洗牌交换网络如图3.49所示。

试问:

此网络节点度==?

网络直径==?

网络对剖宽度==?

答:

N=2^n个节点的洗牌交换网络,网络节点度为=2,网络直径=n-1,网络对剖宽度=4

3.7一个N=(k+1)2^k个节点的蝶形网络如图3.50所示。

试问:

此网络节点度=?

网络直径=?

网络对剖宽度=?

答:

N=(k+1)2^k个节点的蝶形网络,网络节点度=4,网络直径=2*k,网络对剖宽度=2^k

3.9对于如下列举的网络技术,用体系结构描述,速率范围,电缆长度等填充下表中的各项。

(提示:

根据讨论的时间年限,每项可能是一个范围)

答:

网络技术

网络结构

带宽

铜线距离

光纤距离

Myrinet

专用机群互联网络

200MB/秒

25m

500m

HiPPI

用于异构计算机和其外设的组网

800Mbps~1.6Gbps

25m

300m~10km

SCI

可扩展一致性接口,通常独立于拓扑结构

250Mbps~8Gbps

光纤通信

多处理器和其外围设备之间,直连结构

100Mbps~800Mbps

50m

10km

ATM

主要应用于因特网主干线中

25Mbps~10Gbps

FDDI

采用双向光纤令牌环,所有结点联接在该环中

100-200Mbps

100m

2KM

3.10如图3.51所示,信包的片0,1,2,3要分别去向目的地A,B,C,D。

此时片0占据信道CB,片1占据信道DC,片2占据信道AD,片3占据信道BA。

试问:

1)这将会发生什么现象?

2)如果采用X-Y选路策略,可避免上述现象吗?

为什么?

答:

1)通路中形成环,发生死锁

2)如果采用X-Y策略则不会发生死锁。

因为采用X-Y策略时其实质是对资源(这里是通道)进行按序分配(永远是x方向优先于y方向,反方向路由是y方向优先于x方向),因此根据死锁避免的原则判断,此时不会发生死锁。

3.12在二维网孔中,试构造一个与X-Y选路等价的查表路由。

答:

所构造路由表描述如下:

1)每个节点包括两张路由表x表和y表

2)每个节点包含其以后节点信息,如节点【1,2】x表内容为:

【2,2】【3,2】y表内容为:

【1,3】

选路方法:

节点路由时进行查表:

先查x表即进行x方向路由,如果查表能指明下一跳方向则直接进入下一跳。

如果不能则继续查y表,直到到达目的地。

第四章对称多处理机系统

4.1参照图4.20,试解释为什么采用WT策略进程从

迁移到

时,或采用WB策略将包含共享变量X的进程从

迁移到

时,会造成高速缓存的不一致。

图4.20进程迁移所造成的不一致性

答:

采用WT策略进程从

迁移到

后,

写共享变量X为X’,并且更新主存数据为X’,此时

共享变量值仍然为X,与

和主存X’不一致。

采用WB策略进程从

迁移到

后,

写共享变量X为X’,但此时

缓存与主存变量值仍然为X,造车不一致。

4.2参照图4.21所示,试解释为什么:

①在采用WT策略的高速缓存中,当I/O处理器将一个新的数据

写回主存时会造成高速缓存和主存间的不一致;②在采用WB策略的高速缓存中,当直接从主存输出数据时会造成不一致。

图4.21绕过高速缓存的I/O操作所造成的不一致性

答:

①中I/O处理器将数据X’写回主存,因为高速缓存采用WT策略,此时P1和P2相应的高速缓存值还是X,所以造成高速缓存与主存不一致。

②直接从主存输出数据X,因为高速缓存采用WB策略,可能高速缓存中的数据已经被修改过,所以造成不一致。

 

4.3试解释采用WB策略的写更新和写无效协议的一致性维护过程。

其中

为更新前高速缓存中的拷贝,

为修改后的高速缓存块,I为无效的高速缓存块。

答:

处理器P1写共享变量X为X’,写更新协议如图(c)所示,同时更新其他核中存在高速缓存拷贝的值为X’;写无效协议如图(b)所示,无效其他核中存在高速缓存拷贝,从而维护了一致性过程。

4.4两种基于总线的共享内存多处理机分别实现了IllinoisMESI协议和Dragon协议,对于下面给定的每个内存存取序列,试比较在这两种多处理机上的执行代价,并就序列及一致性协议的特点来说明为什么有这样的性能差别。

序列①r1w1r1w1r2w2r2w2r3w3r3w3;序列②r1r2r3w1w2w3r1r2r3w3w1;序列③r1r2r3r3w1w1w1w1w2w3;所有的存取操作都针对同一个内存位置,r/w代表读/写,数字代表发出该操作的处理器。

假设所有高速缓存在开始时是空的,并且使用下面的性能模型:

读/写高速缓存命中,代价1个时钟周期;缺失引起简单的总线事务(如BusUpgr,BusUpd),60个时钟周期;缺失引起整个高速缓存块传输,90时钟周期。

假设所有高速缓存是写回式。

答:

读写命中、总线事务、块传输分别简记为H、B、T。

MESI协议:

①BTHHHHBTHBHHHBTHBHHH共5B+12H+3T=582时钟周期②BTHBTHBTHBHBTHBTHBTHBTHHBHBTH共10B+12H+8T=1330时钟周期③BTHBTHBTHHBHHHHBTHBTH共6B+10H+4T=730时钟周期。

Dragon协议:

①BTHHHHBTHBTHHBTHBTHBTHHBTH共7B+12H+7T=882时钟周期②BTHBTHBTHBTHBTHBTHHHHHBTTHBTH共8B+12H+8T=1212时钟周期③BTHBTHBTHHBTHBTHBTHBTHBTHBTH共9B+10H+9T=1360时钟周期。

由结果得出,①、③序列用MESI协议时间更少,而②序列用Dragon协议时间更少。

综上可知,如果同一块在写操作之后频繁被多个核读操作采用Dragon协议更好一些,因为Dragon协议写操作后会更新其它核副本。

如果一个同多次连续对同一块进行写操作MESI协议更有效,因为它不需要更新其它核副本,只需要总线事务无效其它核即可。

4.5考虑以下代码段,说明在顺序一致性模型下,可能的结果是什么?

假设在代码开始执行

时,所有变量初始化为0。

a.

P1

P2

P3

A=1

U=A

V=B

B=1

W=A

b.

P1

P2

P3

P4

A=1

U=A

B=1

W=B

V=B

X=A

答:

顺序一致性模型性下,保护每个进程都按程序序来发生内存操作,这样会有多种可能结果,这里假设最简单情况,即P1、P2、P3依次进行。

则a中U=V=W=1,b中U=X=W=1,V=0。

4.6参照4.6.1中讨论多级高速缓存包含性的术语,假设L1和L2都是2-路组相联,n2>n1,b1=b2,且替换策略用FIFO来代替LRU,试问包含性是否还是自然满足?

如果替换策略是随机替换呢?

答:

如果采用FIFO替换策略包含性自然满足,因为L1和L2都是2路组相联,FIFO保证了L1与L2在发生替换时会换出相同的缓存块,维护了包含性。

如果采取随机替换策略,存在L1与L2替换不是相同块的情况,故不满足包含性。

4.7针对以下高速缓存情况,试给出一个使得高速缓存的包含性不满足的内存存取序列?

L1高速缓存容量32字节,2-路组相联,每个高速缓存块8个字节,使用LRU替换算法;L2高速缓存容量128字节,4-路组相联,每个高速缓存块8个字节,使用LRU替换算法。

答:

假设m1、m2、m3块映射到一级Cache和二级Cache的同一组中,考虑如下内存存取序列Rm1,Rm2,Rm1,Rm3,由LRU替换算法知道,当Rm3执行后,L1中被替换出的是m2,L2中被替换出的是m1,此时m1块在L1却不在L2中,不满足包含性。

4.8在4.6中关于分事务总线的讨论中,依赖于处理器与高速缓存的接口,下面情况有可能发生:

一个使无效请求紧跟在数据响应之后,使得处理器还没有真正存取这个高速缓存块之前,该高速缓存块就被使无效了。

为什么会发生这种情况,如何解决?

答:

考虑如下情景:

SMP目录一致性协议中,核1读缺失请求数据块A,主存响应请求传送数据块A给核1,同时核2对数据块A进行写操作,到主存中查得核1拥有副本,向核1发使无效请求。

如此,一个使无效请求紧跟在数据响应之后。

解决方法,可以使每个核真正存取高速缓存块后向主存发回应,然后再允许其它对此块操作的使无效或其它请求。

4.9利用LL-SC操作实现一个Test&Set操作。

答:

Test&Set:

llreg1,location/*Load-lockedthelocationtoreg1*/

bnzreg1,lock/*iflocatinwaslocked,tryagain*/

movreg2,1/*setreg21*/

sclocation,reg2/*storereg2conditionalintolocation*/

4.10在4.7.4部分描述具有感觉反转的路障算法中,如果将Unlock语句不放在if条件语句的每个分支中,而是紧接放在计数器增1语句后,会发生什么问题?

为什么会发生这个问题?

答:

再进入下一个路障时可能会发生计数器重新清0现象,导致无法越过路障。

考虑如下情景:

第一次进入路障时,最后两个进入路障的进程分别为1、2。

假设最后进入路障的进程为2进程,2进程执行共享变量加一操作并解锁。

然后2进程执行一条if条件语句,此时由于某种原因换出或睡眠,而此时共享变量的值已经为p。

如果1进程此时正执行if条件语句,则清零计数器,设置标志,其它进程越过路障。

到目前为止没有出现问题,问题出现在下一次进入路障。

进程再一次进入路障,此时会执行共享变量加一操作。

如果此时2进程被换入或被唤醒,会重新清零共享变量,使之前到达路障的进程的加一操作无效,导致无法越过路障。

第五章大规模并行处理机系统

5.1简述大规模并行处理机的定义,原理和优点?

答:

并行处理机有时也称为阵列处理机,它使用按地址访问的随机存储器,以单指令流多数据流方式工作,主要用于要求大量高速进行向量矩阵运算的应用领域。

并行处理机的并行性来源于资源重复,它把大量相同的处理单元(PE)通过互联网络(ICN)连接起来,在统一的控制器(CU)控制下,对各自分配来的数据并行地完成同一条指令所规定的操作。

PE是不带指令控制部件的算术逻辑运算单元。

并行处理机具有强大的向量运算能力,具有向量化功能的高级语言编译程序有助于提高并行处理机的通用性,减少编译时间。

5.2并行处理机有两种基本结构类型,请问是哪两种?

并作简单介绍。

答:

采用分布存储器的并行处理结构和采用集中式共享存储器的并行处理结构。

分布式存储器的并行处理结构中,每一个处理机都有自己的存储器,只要控制部件将并行处理的程序分配至各处理机,它们便能并行处理,各自从自己的存储器中取得信息。

而共享存储多处理机结构中的存储器是集中共享的,由于多个处理机共享,在各处理机访问共享存储器时会发生竞争。

因此,需采取措施尽可能避免竞争的发生。

5.3简单说明多计算机系统和多处理机系统的区别。

答:

他们虽然都属于多机系统但是他们区别在于:

(1)多处理机是多台处理机组成的单机系统,多计算机是多台独立的计算机。

(2)多处理机中各处理机逻辑上受同一的OS控制,而多计算机的OS逻辑上独立.(3)多处理机间以单一数据,向量。

数组和文件交互作用,多计算机经通道或者通信线路以数据传输的方式进行。

(4)多处理机作业,任务,指令,数据各级并行,多计算机多个作业并行。

5.4举例说明MPP的应用领域及其采用的关键技术。

答:

全球气候预报,基因工程,飞行动力学,海洋环流,流体动力学,超导建模,量子染色动力学,视觉。

采用的关键技术有VLSI,可扩张技术,共享虚拟存储技术。

5.5多处理机的主要特点包括

答:

(1)结构的灵活性。

与SIMD计算机相比,多处理机的结构具有较强的通用性,它可以同时对多个数组或多个标量数据进行不同的处理,这要求多处理机能够适应更为多样的算法,具有灵活多变的系统结构。

2)程序并行性。

并行处理机实现操作一级的并行,其并行性存在于指令内部,主要用来解决数组向量问题;而多处理机的并行性体现在指令外部,即表现在多个任务之间。

3)并行任务派生。

多处理机是多指令流操作方式,一个程序中就存在多个并发的程序段,需要专门的程序段来表示它们的并发关系以控制它们的并发执行,这称为并行任务派生。

4)进程同步。

并行处理机实现操作级的并行,所有处于活动状态的处理单元受一个控制器控制,同时执行共同的指令,工作自然同步;而多处理机实现指令、任务、程序级的并行,在同一时刻,不同的处理机执行着不同的指令,进程之间的数据相关和控制依赖决定了要采取一定的进程同步策略。

5.6在并行多处理机系统中的私有Cache会引起Cache中的内容相互之间以及与共享存储器之间互不相同的问题,即多处理机的Cache一致性问题。

请问有哪些原因导致这个问题?

答:

1)出现Cache一致性问题的原因主要有三个:

共享可写的数据、进程迁移、I/O传输。

共享可写数据引起的不一致性。

比如P1、P2两台处理机各自的本地高速缓冲存储器C1、C2中都有共享存储器是M中某个数据X的拷贝,当P1把X的值变成X/后,如果P1采用写通过策略,内存中的数据也变为X/,C2中还是X。

如果通过写回策略,这是内存中还是X。

在这两种情况下都会发生数据不一致性。

2)进程迁移引起的数据不一致性。

P1中有共享数据X的拷贝,某时刻P1进程把它修改为X/并采用了写回策略,由于某种原因进程从P1迁移到了P2上,它读取数据时得到X,而这个X是“过时”的。

3)I/O传输所造成的数据不一致性。

假设P1和P2的本地缓存C1、C2中都有某数据X的拷贝,当I/O处理机将一个新的数据X/写入内存时,就导致了内存和Cache之间的数据不一致性。

5.7分别确定在下列两种计算机系统中,计算表达式所需的时间:

s=A1*B1+A2*B2+…A4*B4。

a)有4个处理器的SIMD系统;b)有4个处理机的MIMD系统。

假设访存取指和取数的时间可以忽略不计;加法与乘法分别需要2拍和4拍;在SIMD和MIMD系统中处理器(机)之间每进行一次数据传送的时间为1拍;在SIMD系统中,PE之间采用线性环形互连拓扑,即每个PE与其左右两个相邻的PE直接相连,而在MIMD中每个PE都可以和其它PE有直接的的通路。

答:

假设4个PE分别为PE0,PE1,PE2,PE3。

利用SIMD计算机计算上述表达式,4个乘法可以同时进行,用时=4个时间单位;然后进行PE0到PE1,PE2到PE3的数据传送,用时=1个时间单位。

在PE1和PE3中形成部分和,用时=2个时间单位。

接着进行PE1到PE3的部分和传送,用时=1*2=2个时间单位。

最后,在PE3中形成最终结果,用时=2个时间单位。

因此,利用SIMD计算机计算上述表达式总共用时=4(乘法)+1(传送)+2(加法)+2

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2