Ⅰ 计组原理--IO系统
RAID0 :无冗余和无校验的磁盘阵列
磁盘交叉并行进行读写,扩大存储容量,提高速度,但没有容错
RAID1 :镜像磁盘阵列
两个磁盘互为备份,容量减半
RAID2:采用海明码来纠错的磁盘阵列
RAID3:位交叉奇偶校验的磁盘阵列
RAID4:块交叉奇偶校验的磁盘阵列
RAID5:无独立校验的奇偶校验磁盘阵列
发出询问信号,读取设备状态,CPU不断查询IO设备状态直到就绪,有“踏步”等待现象。
CPU暂时终止现行程序,转去对异常情况进行处理,处理完毕后,CPU返回到现行程序的断点处,继续执行原程序
1.关中断
2.保存断点
3.引出中断服务程序
-------------------------上面由硬件完成,下面由中断程序完成-----------------------------
4.保存现场和屏蔽字
5.开中断
6.执行中断服务程序
7.关中断
8.恢复现场和屏蔽字
9.开中断
10.中断返回
由DMA控制器控制数据传送过程。在外设与内存之间开辟一条“直接数据通路”,DMA控制器从CPU完全接管对总线的控制,信息不再经过CPU,降低CPU在数据传送时的开销
独立于 CPU 的专门负责输入输出控制的处理机,它控制设备与内存直接进行数据交换。这些指令由 CPU 启动,并在操作结束时向 CPU 发出中断信号。
在DMA方式下,数据的传送方向、存放数据的内存地址、数据块长度由CPU控制,且每台设备至少需要一个DMA控制器。
一个通道可以控制多台设备,且通道本身就是一种处理器。
用户操控硬件:用户-->用户层io软件-->设备独立性软件-->设备驱动程序------------------------>硬件设备
硬件输入信息给用户:硬件设备--> 中断处理程序 --> 设备驱动程序 --> 设备独立性软件 -->用户层io软件-->用户
核心子系统:设备独立性软件,设备驱动程序,中断处理程序
分为单缓冲、双缓冲和循环缓冲。
缓冲区解决:
1.缓和CPU与IO设备间速度不匹配的矛盾
2.减少对CPU的中断频率
3.解决基本数据单元大小不匹配的问题
4.提高CPU与IO设备的并行性
1.独占设备--打印机
2.共享设备--磁盘IO,通过分时来交替进行
3.虚拟设备
将独占设备改造为共享设备的技术
共享打印机的过程:当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,而是在输出井中为之申请一个空闲区,将打印数据放入其中,然后把这个打印请求挂到请求打印队列中。
Ⅱ 可以通过什么把原独享设备改造成能为若干用户共享的设备。
虚拟设备,SPOOLing 技术
Ⅲ 死锁及死锁的处理策略
死锁是指两个或两个以上的进程因竞争资源而造成的一种互相等待的现象,若无外力作用,这些进程都将无法向前推进。
饥饿:由于长期得不到想要的资源而导致进程无法向前推进的现象。如在进程调度算法中的短进程优先算法中,若有源源不断的短进程到来,则长进程一直得不到处理机,从而发生了长进程饥饿。
死循环:某进程执行的过程中一直跳不出某种循环的现象。死循环可能是因为程序bug或者程序员有意为之。
(1) 互斥条件。 只有对必须互斥使用的资源争抢(如打印机设备)才能导致死锁。
(2) 不剥夺条件。 进程所获得的资源在未使用完之前,不能由其他进程强行夺走,只能主动释放。如果进程可以抢夺其他进程持有自己需要的资源的话,也就不会产生死锁了,需要资源直接抢就行了。
(3) 请求和保持条件。 进程已经保持了至少一个资源,但是又提出了新的资源需求,而该资源又被其他进程占有,此时请求进程被阻塞,但是又对自己持有的资源保持不放。也是很简单的道理,如果一个进程请求的资源被阻塞,就释放了自己持有的资源,其他进程就可以获取它释放的资源,也就不会发生相互等待而导致死锁了。
(4) 循环等待条件。 存在一种进程资源的循环等待链,链中的每一个进程已经获得的资源同时被下一个进程所请求。
(1) 对系统资源的争抢。各进程对不可剥夺资源的竞争可能会引起死锁。
(2) 进程推进顺序非法。如果请求资源的顺序不当也会导致死锁,如上面的图,双方请求的资源被对方占有而导致死锁。
(3) 信号量的使用不当。并发执行进程时,如果信号量使用的顺序不当也会到导致死锁。
总之,对不可剥夺的资源的不合理分配,可能导致死锁。
(1) 预防死锁。 破坏死锁产生的四个必要条件中的一个或几个。
(2) 避免死锁。 用某种方法防止系统进入安全状态,从而避免死锁(银行家算法)。
(3) 死锁的检测和解除。 允许死锁的发生,不过操作系统会负责检测出死锁的发生,然后才去某种措施解除死锁。
如果把只能互斥使用的资源改造成允许共享使用,则系统不会进入死锁状态。如 SPOOLing技术 。操作系统可以采用SPOOLing技术吧独占设备在逻辑上改造成共享设备。 它由专门负责 I/O 的常驻内存进程以及输入、输出井组成。 比如,用SPOOLing技术将打印机改造为共享设备...
缺点:并不是所有的资源都可以改造成共享使用的资源。并且为了系统安全,有时候还需要保护这种互斥性。
方案一:当某个进程请求新的资源得不到满足时,它必须立即释放保持的所有资源,待以后需要时重新申请。
方案二:申请的资源被其他进程占用时,借助操作系统的协助,剥夺进程资源,至于剥夺哪个进程资源可以根据优先级考虑。
缺点:实现复杂。暂时请求不到某个资源,之前获取的资源就需要释放,以后重新申请,如果一直这样可能会导致饥饿。
可以采用 静态分配方法 ,即进程在运行前一次申请完它所需要的全部资源,在它的资源未满足之前,不让它运行。一旦运行,这些资源在运行期间一直归它所有,该进程就不会再请求别的任何资源。
缺点:如果有些资源只需要用很短的时间,因此如果进程运行时间长,在运行期间都会保持持有所有资源,就会造成资源浪费, 资源利用率低。 此外,该策略可能导致某些进程饥饿。如下,如果C类进程需要资源1和资源2,如果有大量的A或B类进程,就会导致C类进程一直不能一次获取全部需要的资源,导致饥饿。
可采用 顺序资源分配法。 首先给系统中的资源编号,规定每个进程必须按编号递增的顺序请求资源,同类资源一次申请完。
原理:一个进程只要已占有我号的资源时,才有资格申请更大号编号的资源。按照这样的规则,已持有大编号的资源就不会逆向回来申请我号的资源,从而就不会产生循环等待的现象。
缺点:
(1) 实现复杂。
(2) 不方便增加新的设备,因为要重新分配所有编号。
(3) 进程实际使用资源的顺序可能和资源编号递增顺序不一致,会导致资源浪费。例如打印机设备编号2,输出设备编号为1,那么一个进程请求打印机设备前,必须先请求输出设备,而输出设备在请求打印机设备这一段时间内根本没有发挥作用,其他进程也不能访问,造成资源浪费。
假如你是一个成功的银行家,手里有100个小目标资金....现在有三家公司A、B、C分别向从你贷款
然而,有个规则,如果借给企业的钱达不到企业提出的最大需求,那么钱可能就一去不复返了.....
刚开始,三家公司分别从你这里借了20、10、30亿.......
此时,手里还要40亿,此时B表示还要借20亿,那么你需要考虑可以借吗?
如果给B借了20亿.....此时手里还要有20亿。
之后看手里剩下的钱能不能周转过来,现在可以将剩下的20亿借给C,C就达到了最大需求,之后C还钱50亿,然后借给A,A达到最大需求,最后A还70亿,最后A........还好借给B20亿后,可以通过 C->A->B 这个顺序周转,所以这20亿可以借。
现在看另一种情况,回到最初状态,现在手里还有40亿
对于上面的第一种借给B20亿是安全的,因为会存在C->A->B这样的周转路径(安全序列),不会血本无归。
安全序列:如果系统按照这种序列分配资源,则每个进程都能顺利完成。 只要能找出一个安全序列,系统就是 安全的 。一个系统的 安全序列可能有多个 。
如果分配了资源之后,系统中找不到任何一个安全序列,系统进入了 不安全状态 ,这就意味着之后可能所有的进程都无法顺序执行下去。当然,如果有进程提前归还了一些资源(如对上面的第二中情况,如果B提前还10亿,那么就可以周转了....),那系统也可能 重新回到安全状态 ,不过在分配资源之前总是考虑最坏情况 。
如果系统处于 安全状态 ,就 一定不会发生死锁 。如果系统进入了不安全状态未必一定发生死锁,但是发生了死锁一定是在不安全状态。
银行家算法 核心思想: 在进程提出资源请求时,先预先判断此次分配是否会导致系统进入不安全状态,如果进入不安全状态,就暂时不答应这次请求,让该进程先阻塞。
银行家算法步骤:
如果系统中既不采取预防死锁的措施,也不采取避免死锁的措施,系统就很可能发生死锁。在这种情况下,系统应当提供两个算法:
(1) 死锁检测算法:用于检测系统状态,以确定系统中是否发生了死锁。
(2) 死锁解除算法:当认定系统中已经发生了死锁,利用该算法可将系统从死锁状态中解脱出来。
系统死锁可利用 资源分配图 来描述。
上图可以看到,R1类资源的资源数已经全部分配完了,R2类资源还有一个资源。P1进程向R2类资源请求一个资源,P2进程向R1类资源请求一个资源。
如果系统中剩余可用的资源数足够满足进程的需求,那么这个进程暂时是不会阻塞的,可以顺利的执行下去。如果这个进程执行结束了把资源归还给系统,就可能使某些正在等待的资源的进程重新被激活,并顺利的执行下去。相应的,这些被激活的进程执行完后又会归还一些资源,这样可能又会激活另外一些阻塞的进程...
按照上面的过程分析,最终 能消除所有边 ,就称这个图是 可完全简化的 。此时一定 没有发生死锁 (相当于找到一个安全序列)。如果最终 不能消除所有边 ,那么此时就是 发生死锁了。
最终还连着边的进程就是处于死锁状态的进程。
检测死锁的算法:
死锁定理:如果某时刻系统的资源分配图是不可完全简化的,那么此时系统死锁。
下图是一个系统死锁的图:
即使P3释放了资源,P1和P2进程都不满足继续运行的条件,所以此时P1和P2就是死锁进程。
解除死锁的方法有:
(1) 资源剥夺法。 挂起(暂时放在外存上)某些死锁进程,并抢占它的资源,将这些资源分配给其他进程,但是应防止被挂起长时间导致饥饿。
(2) 撤销进程法。 强制撤销部分、甚至全部死锁进程,并剥夺这些进程的资源。这中方法实现简单,但是也是有代价的,如果有些已经运行了很长时间了,离成功只有一步之遥了,此时撤销导致功亏一篑,还需要从头再来....
(3) 进程回退法。 让一个或多个死锁进程回退到足以避免死锁的地步。这就要求系统要记录进程的历史信息,设置还原点。
那么对哪些进程动手呢?可以考虑优先对以下的进程处理:
(1) 优先级低的进程。
(2) 执行时间段的进程。
(3) 距离运行结束剩余时间长的进程。
(4) 使用资源多的进程。
(5) 批处理式而不是交互式的进程。
Ⅳ 什么是spooling技术
SPOOLing技术是低速输入输出设备与主机交换的一种技术,通常也称为“假脱机真联机”,他的核心思想是以联机的方式得到脱机的效果。低速设备经通道和外设在主机内存的缓冲存储器与高速设备相联,该高速设备通常是辅存。
虚拟性是OS的四大特性之一。如果说可以通过多道程序技术将一台物理CPU虚拟为多台逻辑CPU,从而允许多个用户共享一台主机,那么,通过SPOOling技术便可将一台物理I/O设备虚拟为多台逻辑I/O设备,同样允许多个用户共享一台物理I/O设备。

(4)如何将独占设备改造为共享设备扩展阅读:
SPOOLing技术的特点:
1、提高了I/O速度。从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾。
2、将独占设备改造为共享设备。因为在SPOOLing系统的系统中,实际上并没为任何进程分配设备,而知识在输入井或输出井中为进程分配一个存储区和建立一张I/O请求表。这样,便把独占设备改造为共享设备。
3、实现了虚拟设备功能。多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一设备,从而实现了设备的虚拟分配。不过,该设备是逻辑上的设备。
Ⅳ 操作系统的SPOOLING,实质是将什么设备转为共享设备 独占还是虚拟还是脱机解释下
SPOOLING技术(Simultaneous Peripheral Operating On Line)
同时联机外围操作技术,它是关于慢速字符设备如何与计算机主机进行数据交换的一种技术,通常又称假脱机技术。
在多道程序环境下,利用多道程序中的一道或者两道程序来模拟脱机输入/输出中的外围控制机的功能,以达到“脱机”输入/输出的目的。
利用这种技术可把独占设备转变成共享的虚拟设备,从而提高独占设备的利用率和进程的推进速度。
SPOOLING系统 是对脱机输入/输出工作的模拟,它必须有大容量的且可随机存取的存储器
的支持。
其主要思想是在联机的条件下,进行两个方向的操作,在数据输入时,将数据从输入设备传送到磁盘或磁带(块设备),然后把这些块设备与主机相连;反过来,在数据输出时,将输出数据传送到磁盘或磁带上,再从磁盘或磁带传送到输出设备。
这样,可以将一台独占的物理设备虚拟为并行使用的多态逻辑设备,从而使该物理设备被多个进程共享。
输入进程SPI是模拟脱机输入时的外围控制机,它将用户要求处理的数据从输入设备通过输入缓冲区再送到输入井(磁盘上开辟的一块区域),当CPU处理这些数据数据时,就直接从输入井读入内存。
输出进程SPO是模拟脱机输出时的外围控制机,把用户要求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据通过输出缓冲区(内存中一块区域)传送到输出设备上。
Ⅵ SPOOLing技术的SPOOLing技术
由上所述得知,SPOOLing技术是对脱机输入、输出系统的模拟。相应地,SPOOLing系统必须建立在具有多道程序功能的操作系统上,而且还应有高速随机外存的支持,这通常是采用磁盘存储技术。
SPOOLing系统主要有以下三部分:
(1)输入井和输出井。这是在磁盘上开辟的两个大存储空间。输入井是模拟脱机输入时的磁盘设备,用于暂存I/Q设备输入的数据;输出井是模拟脱机输出时的磁盘,用于暂存用户程序的输出数据。
(2)输入缓冲区和输出缓冲区。为了缓和和CPU和磁盘之间速度不匹配的矛盾,在内存中要开辟两个缓冲区;输入缓冲区和输出缓冲区。输入缓冲区用于暂存由输入设备送来的数据,以后再传送到输入井。输出缓冲区用与暂存从输出井送来的数据,以后在传送给输出设备。
(3)输入进程SPi 和输入进程SP0。这里利用两个进程来模拟脱机I/O时的外围控制机。其中,进程SPi模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井,当CPU需要输入数据时,直接从输入井读入内存;进程SP0模拟脱机输出时的外围控制机,把用户要求输出的数据从先内存送到输出井,待输出设备空闲时,在将输出井中的数据经过输出缓冲区送到输出设备上。 (1)提高了I/O速度。从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾。
(2)将独占设备改造为共享设备。因为在SPOOLing系统的系统中,实际上并没为任何进程分配设备,而知识在输入井或输出井中为进程分配一个存储区和建立一张I/O请求表。这样,便把独占设备改造为共享设备。
(3)实现了虚拟设备功能。多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一设备,从而实现了设备的虚拟分配。不过,该设备是逻辑上的设备。
SPOOLing除了是一种速度匹配技术外,也是一种虚拟设备技术。用一种物理设备模拟另一类物理设备,使各作业在执行期间只使用虚拟的设备,而不直接使用物理的独占设备。这种技术可使独占的设备变成可共享的设备,使得设备的利用率和系统效率都能得到提高。

Ⅶ 采用spooling技术的目的是
SPOOLing,即外围设备联机并行操作,它除了是一种速度匹配技术外、也是一种虚拟设备技术。用一种物理设备模拟另一类物理设备,使各作业在执行期间只使用虚拟的设备,而不直接使用物理的独占设备。这种技术可使独占的设备变成可共享的设备,使得设备的利用率和系统效率都能得到提高。
SPOOLing技术是低速输入输出设备与主机交换的一种技术,通常也称为“假脱机真联机”,他的核心思想是以联机的方式得到脱机的效果。低速设备经通道和设在 主机内存的缓冲存储器与高速设备相联,该高速设备通常是辅存。为了存放从低速设备上输入的信息,或者存放将要输出到低速设备上的信息(来自内存),在辅存分别开辟一固定区域,叫“输出井”(对 输出),或者“输入井”(对输入)。简单来说就是在内存中形成 缓冲区,在高级设备形成输出井和输入井,传递的时候,从低速设备传如缓冲区,在传到高速设备的输入井,在从高速设备的输出井,传到缓冲区,在传到低速设备。
SPOOLing是 On-Line (即外部设备联机并行操作)的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。
SPOOLing系统既不同于脱机方式,也不同于直接藕合方式,SPOOLing技术实际上是一种外围设备同时联机操作技术,又称为排队转储技术。它在输入和输出之间增加了“输入井”和“输出井”的排队转储环节,以消除用户的“联机”等待时间。在系统输入模块收到作业输入请求信号后,输入管理模块中的读过程负责将信息从输入装置中读入输入井缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存的输入井中,读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入外存输入井并调用中断处理程序结束该次输入。
然后,系统为该作业建立作业控制块,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存运行。系统在管理输入井过程中可以“不断”读入输入的作业,直到输入结束或输入井满而暂停。若系统的某台台行式打印机采用了虚拟设备技术,那么若有进程要求对它打印输出时,SPOOLing系统并不是将这台打印机直接分配给进程,而是在共享设备(磁盘)上的输出,SPOOLing存储区中为其分配一块存储空间,进程的输出数据以文件形式此。各进程的数据输出文件形成了一个输出队列,由输出POOLing系统控制这台打印机进程,依次将队列中的输出文件实际打印输出。在SPOOLing系统中,实际上并没有为任何进程分配,而只是在输入井和输出井中,为进程分配一存储区和建立一章I/O请求表。这样,便把独占设备改造为共享设备。
Ⅷ 简述SPOOLing系统的基本原理
SPOOLing是Simultaneous Peripheral Operation On-Line (即外部设备联机并行操作)的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。实际上是一种外围设备同时联机操作技术,又称为排队转储技术。
它在输入和输出之间增加了“输入井”和“输出井”的排队转储环节。
SPOOLing系统主要包括以下三部分:
(1)输入井和输出井:这是在磁盘上开辟出来的两个存储区域。输入井模拟脱机输入时的磁盘,用于收容I/O设备输入的数据。输出井模拟脱机输入时的磁盘,用于收容用户程序的输出数据。
(2)输入缓冲区和输出缓冲区:这是在内存中开辟的两个缓冲区。输入缓冲区用于暂存有输入设备送来的数据,以后在传送到输出井。输出缓冲区用于暂存从输出井送来的数据,以后再传送到输出设备。
(3)输入进程和输出进程:输入进程模拟脱机输入时的外围控制机,将用户要求的数据有输入设备到输入缓冲区,再送到输入井。当CPU需要输入设备时,直接从输入井读入内存。输出进程模拟脱机输出时的外围控制机,把用户要求输入的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据,经过输出缓冲区送到输出设备上。
SPOOLing技术的特点:
(1)提高了I/O速度.从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾.
(2)设备并没有分配给任何进程.在输入井或输出井中,分配给进程的是一存储区和建立一张I/O请求表.
(3)实现了虚拟设备功能.多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一设备,不过,该设备是逻辑上的设备.
Ⅸ 共享设备有哪些
说到共享设备,大家首先想到的是共享车,其实,随着物联网技术的不断运用,共享设备项目也开始变的多样化,比如我们生活中的共享设备有:共享汽车、共享充电宝、共享雨伞、共享WiFi、共享按摩椅等,甚至现在还出现有共享休息室,在产品上面可谓是层出不穷。共享是一种潮流,更是一种趋势。从共享单车到共享汽车等各种共享产品,可以看出来,我们正在进入一个崭新的共享时代,而共享无人设备更是顺应这个时代而衍生出来的产品。
Ⅹ win10怎么设置网络共享设备
工具: win10 方法如下: 1、点击Win10系统桌面上的控制面板,然后选择控制面板里的查看类型,如下图所示。 2、将查看类型更改为小图标,然后点击“设备和打印机”,如下图所示。 3、在设备和打印机窗口中,选择一台想要共享的打印机,然后在右键选择“打印机属性”。如下图所示。 4、点击进入对应的打印机属性对话框,点击共享选项卡,如下图所示。 5、在共享选项卡里将“共享这台打印机”勾选上,然后点击确定,如下图所示。 6、打印机共享设置完成后,其他电脑就可以通过网络访问到这台共享打印机。如下图所示。