版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章
(一)
1.未配置操作系统的计算机系统
(1)人工操作方式(人机矛盾)
(2)脱机输入/输出方式
2.单道批解决系统
内存里一道作业
3.多道批解决系统
优点:(1)资源运用率高(CPU、内存、I/O设备)
(2)系统吞吐量大
缺陷:(1)平均周转时间长
(2)无交互能力
3.分时系统(解决人机交互)
及时接受:多个用户(配置多路卡)、为每个用户配置一个缓冲区
及时解决:(1)作业直接进入内存
(2)采用轮转运营方式(时间片)
响应时间二时间片火终端数
4.实时系统
周期性实时任务和非••・硬实时任务和软•..
(二)操作系统的基本特性
1.并发(进程才干)
实现并发执行的前提是:多道程序环境
2.共享
互斥共享方式、同时访问方式
3.虚拟(1)时空复用技术(虚拟解决机技术、虚拟设备技术)
(2)空分复用技术(虚拟磁盘技术、虚拟储存器技术)
4.异步
5.操作系统两个最基本的特性:并发和共享
第二章
(一)
1.前趋图(有向无环图):描述进程之间执行的先后顺序
2.顺序执行:顺序性、封闭性、可再现性
并发执行:间断性、失去封闭性、不可再现性(与时间有关的错误)
Bernstein条件
(-)
1.进程实体:涉及程序段、数据的和PCB
2.进程的特性:动态性、并发性、独立性、异步性(按各自速度推动)
3.进程的三种基本状态:就绪、执行、阻塞
互相之间的转换注意:执行一(时间片完)就绪
4.进程的创建(状态):申请空白PCB—>分派资源一)挂到就绪队列
进程的终止(状态):保存记录一)PCB返还系统
5.进程的挂起(不再被调度不在内存了、suspend原语)
活动就绪一(挂起)一〉静止就绪
活动阻塞一(挂起)-->静止阻塞
执行一(挂起)一〉静止就绪
进程的激活(active原语)
静止就绪一(激活)~>活动就绪
静止阻塞一(激活)活动阻塞
6.PCB中的信息:P41
PCB组织方式:线性方式、链接方式、索引方式
(三)
1.0S内核:常驻内存
OS状态:系统态(管态、内核态)用户态(目态)
2.父进程创建子进程:3种返回值
进程图:描述进程家族关系的一棵树
3.进程的创建(Creat原语)
引起进程创建的事件:用户登录、作业调度、提供服务(创建打印进程)、
应用请求(用户创建)
创建过程:申请空白PCB—>分派资源(从系统或父进程)一》初始化进程控
制块(初始化内容见P45)插入就绪队列
4.进程的终止
引起进程终止的事件:正常结束、异常结束、外界干预
终止过程:P46
5.进程的阻塞(block原语)
引起事件:请求共享资源失败、等待某种操作的完毕(I/O操作)、新数据
未到达(合作进程中)、等待新任务的到来(发送进程,没有信息可发送)
阻塞过程:状态:执行变为阻塞一>PCB挂到阻塞队列一》调度其他进程
6.进程的唤醒(wakeup原语)
唤醒过程:移除阻塞队歹卜-〉挂到就绪队列
(四)
1.进程的同步
(1)同步:即某件事要等待另一件事完毕才可以开始
(2)2种互相制约关系:间接互相制约关系(进程互斥访问资源)、直接互相
制约关系(进程合作)
2.临界资源、临界区(进入区、退出区、剩余区)
3.同步机制遵循的规则:空闲让进、忙则等待、有限等待、让权等待(请求资源
失败应释放CPU)
4.3种信号量:互斥信号量(初值为1)、资源信号量(初值可为n)、同步信
号量(初值为0)
P(wait)原语:减1V(signal)原语:加1
(五)
1.进程的互斥和同步称为低档进程通信,尚有基于共享数据结构的通信方式也
是
2.进程通信方式
(1)直接通信方式(基于共享存储区)
申请一个缓冲区一》将进程A发送区的内容复制给缓冲区一>将缓冲区挂
到进程B的消息队列一>进程B将缓冲区复制到自己的接受区
(2)管道通信方式(对管道的write和read)
管道是一个pipe文献,作为一个中介
(3)消息传递方式(封装):直接和间接(有中间实体:邮箱)
(六)
进程和线程的区别重
第三章
(一)
1.三大调度:高级调度(作业调度):调度作业(外存一>内存),只用于多道
批解决系统
低档调度(进程调度):调度进程(就绪一》获得CPU)
中级调度(内存调度):挂起(内存一>外存一》重入内存)
2.CPU运用率:CPU有效工作时间/(CPU有效工作时间+CPU空闲等待时间)
(-)
1.作业:包含程序和数据,尚有作业说明书。
批解决系统中,是以作业为基本单位从外存调入内存的。
2.作业控制块(JCB):作业在系统中存在的标志。包含:作业标记、...P88
3.作业进入系统时一>“作业注册”程序为其建立作业控制块放到作业后备
队列(外存)调度作业进入内存
4.作业的4种状态:提交状态、后备状态、运营状态(相应的进程有3种状
态)、完毕状态
5.作业调度的任务:(1)接纳多少个作业:取决于多道程序度
(2)接纳哪些作业:取决于调度算法
调度时机:内存中的进程数小于多道度
6.进程的响应时间(作业的周转时间):完毕时间-到达时间或服务时间+等
待时间
平均周转时间:N个的和除以N
带权周转时间:(服务时间+等待时间)/服务时间或1+等待时间/服务时间
平均带权周转时间:N个的和除以N
7.调度算法(4种都可月于作业调度或进程调度)
(1)先来先服务(FCFS)只能非抢占式
(2)短进程优先(SJF):有效减少作业的平均周转时间;对长作业不利
(3)优先级调度算法:PSA)
(4)高响应比优先调度算法(HRRN):优先级随等待时间延长而增长
优先权二(服务时间+等待时间)/服务时间或1+等待时间/服务时间
必须等某个进程完毕时,才重新计算优先权,即运营某进程过程中有新进
程到达也不会重新调度
后面3个对于作业只能非抢占式;对于进程,可抢占式或非抢占式
8.题目未说明时,默认是非抢占式。
(三)
1.非抢占式:调度时机为(I)进程运营完毕(2)进程I/O请求(3)执行
Block原语
抢占式:抢占原则(1)优先权(2)短进程优先(3)时间片
2.调度算法
(D轮转调度算法:基于时间片
(2)优先级调度算法
(3)多队列调度算法:多个就绪队列,不同队列采用不同的调度算法
(4)多级反馈队列调度算法:对于长作业,往后时间片越长,得到的解决时间
越长
(5)最低松弛度优先算法:松弛度二必须完毕时间-需要服务时间
(四)
1.可重用性资源(打印机):请求资源一)获得资源一》释放资源
可消耗性资源(通信中的消息):进程运营期间动态创建和消耗的,不再返
回
可抢占性资源(CPU、内存)
不可抢占性资源(打印机):也许引起死锁
2.引起死锁的3个因素:
(1)竞争不可抢占性奏源(2)竞争可消耗性资源(3)进程推动顺序不妥(不
安全区D)
3.产生死锁的必要条件:
(1)互斥条件(2)请求和保持条件(3)不可抢占条件(4)循环等待条件
(产生回路)
4.解决死锁的方法:
(1)防止死锁(2)避免死锁(3)检测死锁(4)解除死锁
5.防止死锁:破坏其中一个条件
(1)互斥条件不能破坏还应保持
(2)破坏请求和保持条件:A.一次性申请所需所有资源B.申请部分资源,用
完释放,然后继续申请(资源静态分派)
(3)破坏不可抢占条件:提出新的资源请求时,必须释放自己已保持的所有资
源(仿佛被抢占了)
(4)破坏循环等待条件:每个进程按序号递增的顺序请求资源(资源有序分
派)
6.避免死锁:防止系统进入不安全状态
(1)系统安全状态:分派资源后,系统能按一安全序列推动
(2)银行家算法:二维数组A.表达每个进程对每个资源的最大需求量
B.表达每个进程对每个资源已分派到的
C.表达每个进程对每个资源还需要的
一维数组A.表达每类资源的可分派数available
B.表达每个资源当前可分派数(即加上某个进程
运营完,释放后的资源数)work
C.表达每个进程能否获得足够资源而运营finish
算法思绪:P112-114
7.检测死锁:
(D资源分派图
(2)死锁定理:S为死锁的充足条件:当且仅当S状态的资源分派图是不可完
全简化的
8.解除死锁:
(1)抢占资源
(2)终止(撤消)进程
方法:A.终止所有进程
B.逐个终止进程:付出代价最小的死锁解除算法P117718
第四章存储器管理
均称为传统存储器管理方式,具有2个特点:一次性和驻留性P153
(一)
1.存储系统至少3级:最高层为CPU寄存器,内存,最底层为辅存。
2.可执行存储器:寄存器和内存。
3.进程访问可执行存储器:使用一条load或store指令即可
访问辅存:需通过I/O设备
4.程序的装入方式
(1)绝对装入方式:单道环境程序的相对地址(逻辑地址)与内存地址完全
相同
(2)静态可重定位装入方式:多道环境在装入时对目的程序中指令和数据地
址进行修改,以后不再改变。
(3)动态运营时的装入方式:程序运营过程在内存的位置经常会改变装入内
存,地址转换推迟到程序运营时才进行。
A.工作原理:增设一个重定位寄存器,存放程序在内存中的起始地址一》
真正访问内存地址二相对地址+寄存器中的地址
一〉程序移动时,只需修改寄存器中的起始地址
B.在“紧凑(拼接)”时,要用到。
(二)连续分派存储管理方式
1.单一连续分派:单道环境内存分为系统区(多放在低址)和用户区
2.固定分区分派:多道环境内存划分为若干个固定大小的区域,一个区域装入
一道作业
(1)a.分区大小相等b.分区大小不等
(2)地址映射:采用静态重定位
(3)缺陷:导致大量的内部碎片
(4)数据结构:分区使用表涉及分区号、大小、起址、状态。
3.动态分区分派(可变分区分派):
(D分区分派:按需划分分区回收:合并回收
(2)数据结构:空闲分区表涉及分区号、大小、起址、状态(全都是未分
派)
空闲分区链双向的
(3)分派:P128下面
回收:P129注意不同合并方式会对空闲分区表的修改不同
(4)基于顺序搜索的动态分区分派算法
A.初次适应算法:每次分派从头顺序查找,找到大小可以满足为止
特点:优先运用内存地址空闲区,保存了高址的大空闲区
缺陷:低址不断被划分,产生许多碎片;查找效率低
对固定分区:整体分派,易形成内碎片
对可变分区:按需划分,易形成外碎片
B.循环初次适应算法:循环的,从上次找到的位置往下查找
特点:使内存的空闲分区分布得更均匀
缺陷:缺少大的空闲分区
C.最佳适应算法:所有空闲分区从小到大形成空闲分区链
缺陷:留下许多碎片
对固定分区:内碎片小
对可变分区:易形成外碎片
D.最坏适应算法:所有空闲分区从大到小形成空闲分区链
优点:产生碎片的也许性最小;查找效率高
对固定分区:内碎片大
对可变分区:剩余分区可再次运用
(5)基于索引搜索的动态分区分派算法
A.快速适应算法:相同容量的空闲分区形成一个空闲分区链设立索引表查找
特点:不会对任何分区产生分割,不会产生内存碎片
优点:查找效率高
在分派分区时,以进程为单位,一个分区只属于一个进程,或多或少存在浪
费
B.伙伴系统:原理、分派、回收、计算伙伴地址P132
C.哈希算法:建立哈希函数,构造哈希表
4.动态重定位分区分派算法:与3(3)基本相同,差别仅在于增长了紧凑的功
能
(三)对换
1.对换:进程或程序和数据:内存<->外存
2.对换的类型:
(1)整体对换(进程对换):整个进程为单位对换
(2)页面/分段对换(部分对换):以进程的一个页面或分段为单位对换
目的:支持虚拟存储系统
3.磁盘空间分为文献区和对换区(对换空间)
文献区:离散分派
对换区:按需分派(分派算法上面4种都可以)、合并回收
4.进程的换进换出的选择标准P137
换出:换到无阻塞进程为止
换入:第一个换“就绪”且换出时间最久的进程,继续换到无处在“就
绪且换出”状态的进程为止
(四)分页存储管理方式:提高内存运用率
1.程序分为若干固定大小的页面,内存同样称为物理块(页框)
2页面大小应为2的幕,通常为1KB-8KB
3.地址结构:页号P+页内地址W(一维的)
若页面的大小为L,则逻辑地址LA=P*L+W
4.每个进程一张页面映像表(页表):存放在内存里,实现从页号到物理块号
的地址映射
页表大小二表项数*表项大小P139
5.地址变换机构:实现从逻辑地址到物理地址的转换
6.页表寄存器:存放页表始址十页表长度
进程未执行时,页表始址+页表长度放在本进程PCB中一》执行时,装入页表
寄存器
7.查找过程(2次访问内存):页表寄存器一〉页表(内存里)得到内存物
理地址,到内存取指令
8.具有快表(联想寄存器):先查快表看能否命中,未能命中则查完页表后还
要修改快表
9.查快表t1,查页表和取指令t2:
若同时查块表和页表:命中:t1+t2
未命中:t2+t1(修改快表)+t2
若命中率为h,可得有效访问内存的时间:h*t1+(1-h)*(t2+t1)+t2
(五)分段存储管理方式:满足用户编程和使用的规定
1.作业分为若干个大小不同的段
2.一个作业最多64K个段,每个段最大长度为64KB
3.地址结构:段号+段内地址(二维的)
段号太大,段表中找不到则表达越界;段内地址太大,超过段表中目的发的
大小,则表达段内越界。
4.每个进程一张段映射表(段表):存放在内存里,每个表项包含一个段的起
始地址(基址)+该段的长度
5.地址变换机构:段表寄存器,存放段表始址+段表长度
6.查找过程(2次访问内存):段表寄存器一>段表(内存里)得到内存物
理地址,到内存取指令
7.具有联想寄存器的:与分页式相同
8.分页与分段的区别:P148(重)
(六)段页式存储管理方式
1.程序提成若干段,每个段再提成若干页
2.地址结构:段号+段内页号+页内地址(二维的)
3.需要段表寄存器、段表、页表:
每个进程一张段表,段表包含页表始址+页表大小
4.查找过程(3次访问内存):段表寄存器一>找段表(内存里),得到该段相
应的页表起始地址一>找页表(内存里),得到该页的物里块号一>形成物理地
址,到内存取指令
5.具有联想寄存器的:与分页式相同
第五章虚拟储存器
原理:局部性原理(时间局部性、空间局部性)
(一)概述
1.虚拟储存器:具有请求调入功能和置换功能,从逻辑上对内存容量扩充
2.特性:多次性、对换性、虚拟性
3.实现虚拟储存器的基础:离散存放、多次装入
(二)请求分页存储管理方式
1.页表增长4个字段:状态位(该页是否已调入内存)、访问位(访问次数或
多久未访问)、
修改位(有被修改的置换时要写回外存)、外存地址
2.缺页中断机构:指令执行期间,发现要访问的指令或数据不在内存,立即发
出中断
这种属于陷进(软中断),之前打印机那些是硬中断
3.地址变换过程P158:重)注意最后必有“修改访问位和修改位”这一环节
4.最小物理块数:进程能正常运营的最小物理块数
5.内存分派策略:
(1)固定分派局部置换
固定分派:为每个进程分派固定数目的物理块,不再改变
局部置换:只能从分派给该进程的页面中选一页换出
(2)可变分派全局置换
(3)可变分派局部置换
一进程运营时缺页率很低,可以减少分派给该进程的物理块数
6.物理块分派算法
(1)平均分派算法:平均分派给各个进程
(2)按比例分派算法:按进程大小
(3)考虑优先级的分派算法
7.页面调入策略
(1)何时调入
A.预调页策略:将预计不久后会被访问的页面预先调入内存,可用于初次
调入时
B.请求调页策略:缺页请求时再调入,一次只调入一页
(2)何处调入
UNIX方式:从未运营过的,从文献区调入
置换在对换区的,从对换区调入
8.缺页率:访问页面失败的次数F/访问页面总次数A
(三)页面置换算法
1.最佳置换算法(无法实现的):换出未来最迟被访问的页面
2.先进先出置换算法:也许产生Belady异常,即分派的页面数越多,缺页率反
而越多
因素:先进的一般都是经常被访问的
3.最近最久未使用置换算法(LRU):需要移位寄存器或栈两个硬件之一的支持
移位寄存器:每个在内存的页面配置一个R=Rn-1Rn-2...R1R0
进程访问某物理块时,将相应的寄存器的Rn-1位置1。每隔一
段时间寄存器右移一位。
最小数值那个就是最近最久未使用的页面。
栈:栈顶总是最近访问的页面号(命中时调到栈顶),栈低总是最久的(置
换时从栈底淘汰)
4.最少使用置换算法(LFU):即看访问次数最少的
采用移位寄存器方式:每次访问某页,将该寄存器最高位置1,每隔一段
时间右移一位。
最小数值那个就是最少使用的页面。
5.简朴的Clock置换算法(最近未用算法NRL):
每页设立访问位(A),将内存中所有页面构成循环队列。某页被访问时,
访问位置1
置换时,若访问位为0则换出,为1则改为0
改善的Clock置换算法:多了修改位(W),修改为为1表达修改过
第一步:优先置换“A=0,W=0”的页面,不改变访问位A
第二步:找“A=0,忙1”的页面,同时将A=1的改为A=0
第三步:反复第一步
6.页面缓冲算法(PBA):
(D影响页面换进换出效率的因素
A.页面置换算法B.写回磁盘的频率C.读入内存的频率
(2)算法原理:
A.空闲页面链表:用于分派给频繁缺页的进程、一个未被修改的页面(有
数据)要换出时,不换出,接到该链末尾
B.修改页面链表:一个已修改的页面要换出时,不换出,接到该链末尾,
方便集中写回磁盘
(四)抖动与工作集
1.工作集:某段时间内,进程实际所要访问页面的集合
不同时间的工作集大小不同,所含的页面数也不同P171
2.抖动
(1)产生因素:进程太多,缺页频繁,CPU效率急剧下降(进程处在“抖动”
状态)
(2)产生前提:采用可变分派+全局置换
(3)防止方法:A.采用局部置换策略
B.把工作集算法融入到解决机调度中
调入作业之前,检查每个进程在内存的驻留页面是否足够
多。
C.运用“L=S”准则调节缺页率P172
D.选择暂停的进程:挂起若干进程
第六章
(一)I/O系统
1.I/O系统的层次结构:从下往上:硬件一》中断解决程序一)设备驱动程序一)
设备独立性软件一》用户层软件
2.I/O系统的上、下接口:I/O系统接口、软件/硬件接口(下面就是硬件部分
了)
3.I/O系统的分层:从下往上:中断解决程序一》设备驱动程序-->设备独立性
软件
4.I/O系统接口:有3种
(1)块设备接口
A.块设备:以数据块为单位(磁盘)特点:传输速率高;可寻址;磁盘设
备的I/O常采用DMA方式
B.块设备接口特性:隐藏了磁盘的二维结构(磁道号+扇区);将抽象的
命令映射为底层操作
(2)流设备接口
A.流设备:以字符为单位(键盘、打印机)特点:传输速率低;不可寻
址;流设备的I/O常采用中断驱动方式
B.程序用get和put操作,只能顺序存取
C.大多数流设备属于独占设备(互斥方式),要提供打开/关闭操作。
(3)网络通信接口
(二)硬件部分
1.1/0设备的类型:存储设备和I/O设备、低速设备(键盘、鼠标)和中速设
备(打印机)和高速设备(磁盘、光盘)
2.设备控制器(控制一个或多个I/O设备)
(1)三部分组成:
A.设备控制器与CPU的接口(并行):
数据总线一>DR:内存<—>设备
—>C/S:状态:设备一>CPU
启动:CPU->设备
地址总线:设备名一>译码电路(I/O逻辑)接口
控制总线:操作码一》译码电路一〉CR
B.设备控制器与设备的接口(串行):
数据线:设备<->DR
状态线:设备一〉C/S
控制线:C/S—>设备
C.译码电路(I/O逻辑):实现对设备的控制
上面2个译码功能+并行一(分解)一><一(组装)一串行
(2)CPU启动一个设各的过程:
启动命令一>设备控制器
地址(即要选哪个设备)一地址线一)设备控制器一>1/0逻辑进行译码一
>选中设备
(3)设备一>DR:数据准备;DR-->内存:数据传送
(4)设备控制器的功能:
A.接受和辨认命令
B.数据互换
C.标记和报告设备的状态
D.地址辨认(设备控制器可连接多个设备、其里面也有很大寄存器,都需
要地址)
E.数据缓冲区
F.差错控制
3.I/O通道(特殊解决机)
(1)在CPU与设备控制器之间目的:建立独立的I/O操作
(2)过程:CPU发I/O指令一>通道—>内存中取相应的通道程序并执行一>完
毕后,向CPU发中断信号
(3)通道与CPU共享内存(其通道程序放在内存)
(4)通道的类型:
A.字节多路通道:每个字通道连接一个设备,准时间片轮转共享主通道
适合低速设备
B.数组选择通道:每次只允许一个设备传输数据
C.数组多路通道
(三)设备驱动程序
1.设备驱动程序的功能:
A.将命令中的抽象规定转换为与设备相关的底层操作
B.检查I/O请求的合法性,设立设备的工作方式
C.启动I/O设备
D.及时响应设备控制器发来的中断请求,调用相应的中断解决程序
2.设备驱动程序的特点:
A.用汇编语言编写
B.允许可重入
3.设备解决方式:
A.每类设备一个进程来控制
B.整个系统一个进程或一个输入一个输出共2个进程
C.不设立进程(常用)
4.设备驱动程序的解决过程:将抽象规定转换为具体规定一》对服务请求进行校
验一》检查设备的状态一》传送必要的参数
—>启动I/O设备
启动后,驱动程序把控制返回给I/O系统,自己阻塞起来,直到中断到来被
唤醒
I/O操作是在设备控制器的控制下进行,实现解决机与I/O设备的并行操作
5.对I/O设备的控制方式
(1)轮询的可编程I/O方式:数据传送过程中,CPU一直查询
CPU与设备、设备之间只能串行工作
(2)中断的可编程I/O方式(以字节为单位传送数据):
数据传送过程中,CPU干别的事,传送好控制器通过控制线发中断给
CPU,CPU取走数据写入内存
能并行工作
(3)直接储存器访问方式(DMA方式):
A.以数据块为单位、直接从设备到内存、在控制器的控制下不用通过CPU
B.DMA控制器:三部分组成:DMA控制器与主机的接口、与设备的接口、
I/O控制逻辑
具有4个寄存器:数据寄存器DR、控制/状态寄存器CR、数据计数器
DC、内存地址寄存器MAR
C.工
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 腹泻患者的家庭护理技巧
- 胸腔闭式引流护理
- 2025年办公家具定制合同(企业)
- 地质灾害风险评估-第3篇
- 2025年金融服务场景智能音箱多轮对话设计
- 城市农业食品安全
- 2026 年中职酒店管理(酒店语言学)试题及答案
- 海南文综试题及答案
- 培训效果评估-第1篇
- 崇州市气候条件
- 2025陕西西安市工会系统开招聘工会社会工作者61人历年题库带答案解析
- 外卖平台2025年商家协议
- 2025年高职(铁道车辆技术)铁道车辆制动试题及答案
- (新教材)2026年人教版八年级下册数学 24.4 数据的分组 课件
- 2025陕西榆林市榆阳区部分区属国有企业招聘20人考试笔试模拟试题及答案解析
- 老年慢性病管理及康复护理
- 2026年海南经贸职业技术学院单招(计算机)考试参考题库及答案1套
- 代办执照合同范本
- 中药现代化生产技术课件
- 医学专家谈灵芝孢子粉课件
- 商业广场经营管理及物业管理服务方案
评论
0/150
提交评论