设备的分配与回收

本文内容

1 设备分配时考虑的因素

    1.1 设备的固有属性

   设备的固有属性可分为三种:独占设备、共享设备、虚拟设备

(1) 独占设备:一个时段只能分配给一个进程。所有字符设备都是独占设备,如输入机、打印机、磁带机等。
(2) 共享设备:可同时分配给多个进程使用,各进程往往是宏观上同时使用共享设备而微观上交替使用。软硬盘、光盘等块设备都是共享设备。
(3) 虚拟设备:通过软件技术将独占设备改造成共享设备。如通过SPOOLing技术将一台打印机虚拟成多台打印机,其实质上还是独占设备。

    1.2 设备的分配算法

   设备的分配算法:先来先服务,优先级高者优先、短任务优先…和之前所提到的一样,这里不再多提。

    1.3 设备分配中的安全性

   从进程运行的安全性上考虑,设备分配分为两种方式:安全分配方式不安全分配方式

   安全分配方式:为进程分配一个设备后就将该进程阻塞,本次I/O完成后才将进程唤醒。

如一个进程请求打印机打印输出的结果,把打印机分配给该进程后,就必须将该进程阻塞等待,可是进程可以把结果给打印机而不用等待就可以做其他事,由于安全分配方式,进程必须阻塞,直到打印机打印结束后才继续往下执行。

   安全分配方式在一个时间段内每个进程只能使用一个设备。

    优点:破坏了请求等待条件,不会死锁
    缺点:对于一个进程来说,PCU和I/O设备只能串行工作,系统资源利用率低

   不安全分配方式:进程发出I/O请求后,系统为其分配I/O设备,进程可继续执行,之后还可以发出新的I/O请求,只有某个I/O请求得不到满足时才将进程阻塞。
   不安全分配方式一个进程可以同时使用多个设备。

   优点:进程的计算任务和I/O任务可以并行处理,使进程推进
   缺点:有可能发生死锁

2 静态分配和动态分配

   静态分配:进程运行前为其分配全部所需的资源,运行结束后归还资源。破坏了请求等待条件,不会发生死锁。
   动态分配:进程运行过程中动态申请设备资源。

3 设备分配管理中的数据结构

   设备、控制器和通道之间的关系


   一个控制器可以控制多个设备,一个通道可以控制多个控制器,一个系统中可以有多个通道。
   每个设备都有一个从属的控制器,同理每个控制器都有一个从属的通道。
   所以,设备管理中的数据结构要可以表示这种树形的从属关系。

   设备控制表(DCT):系统为每个设备配置一张DCT,用于记录设备情况。

   控制器控制表(COCT):每个设备控制器都会对应一张COCT。操作系统会根据COCT的信息对控制器进行操作管理。

   通道控制表(CHCT):每个通道都会对应一张CHCT。操作系统会根据CHCT的信息对通道进行操作管理。

   系统设备表(SDT):记录了系统中全部设备的情况,每个设备对应一个表目。

   注:系统设备标记录的是系统中全部的设备,所以当用户根据设备名请求某个设备时,操作系统可以根据SDT找到用户指定的设备

4 设备分配的步骤

   (1) 根据进程请求的物理设备名查找SDT,用户在编程时需要用物理设备名作为系统调用的参数。
   系统会找到系统分配表,根据用户提供的物理设备名查找到对应的表项,之后就可以找到该设备对应的设备控制表(DCT)。

   (2) 根据上一步查找到的DCT,判断设备当前状态,如果是空闲的话,就将该设备分配给进程,反之设备忙碌则将进程的PCB挂到设备等待队列中。一直到该设备空闲把设备分配给进程,才会把进程唤醒。

   除了将该设备分配给进程,同时还要将该设备对应的控制器也分配给进程,系统会根据DCT中指向控制器表的指针找到控制器对应的控制器控制表(COCT)

    (3) 根据上一步查找到的COCT,首先需要判断控制器当前状态,如果是空闲的话,就将该控制器分配给进程,反之控制器忙碌则将进程的PCB挂到控制器等待队列中。一直到该控制器空闲把设备分配给进程,才会把进程唤醒。

   同样,也会根据COCT中的指向通道表的指针找到该控制器对应的通道的通道控制表(CHCT)。

    (4) 根据上一步查找到的CHCT,首先需要判断通道当前状态,如果是空闲的话,就将该通道分配给进程,反之通道碌则将进程的PCB挂到通道等待队列中。一直到该通道空闲把设备分配给进程,才会把进程唤醒。

   只有设备、控制器、通道三者都分配成功时,这次设备分配才算成功,之后便可启动I/O设备进行数据传送

5 设备分配的步骤的改进

   上述设备分配过程的缺点:

(1) 用户编程时必须使用“物理设备名”,底层细节对用户不透明,不方便编程。
(2) 如果换了一个物理设备,即使是同类型的设备(如都是打印机,但是打印机品牌不同),则程序将无法运行。
(3) 如果进程请求的物理设备正在忙碌,即使系统中还有同类型的设备,进程也必须阻塞等待。

   改进方法:建立逻辑设备名与物理设备名的映射机制,用户编程时只需要提供逻辑设备名
   具体步骤:
   (1) 根据进程请求的逻辑设备名查找SDT(系统设备表)(注:用户编程时提供的逻辑设备名就是“设备类型”)。

SDT中就有一个字段记录了设备类型,因此操作系统可以根据用户提供的逻辑设备名依次查找SDT,找到一个用户指定类型并且空闲的设备分配给进程,只有所有该类型的进程都忙碌时才需要将进程阻塞。

   将设备分配给进程时,操作系统还需要在逻辑设备表(LUT)中新增一个表项,记录逻辑设备名和物理设备名的映射关系。


   之后的操作和前面一致,不再赘述。

   进程第一次通过逻辑设备名申请使用一个设备时,系统才会查找SDT,找到一个空闲的设备分配给进程,并在LUT中增加表项。当进程再次以相同的逻辑设备申请设备时,则操作系统通过LUT即可知道用户进程实际要使用的是哪个物理设备了,并且也能知道该设备的驱动程序入口地址。

   逻辑设备表设置问题:

   如果整个系统只有一张逻辑设备表,各个用户所用的逻辑设备名不允许重复,适用于单用户操作系统。
   每个用户一张LUT,不同的用户逻辑设备名可重复,适用于多操作系统。

6 小结

   本文完

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354