关闭

操作系统之设备分配笔记

1252人阅读 评论(2) 收藏 举报
分类:

       

          首先,操作系统对设备的操作主要通过存储关于设备信息的数据结构来使用。最重要明白的是,一个用户进程是不能直接访问和请求系统设备的!要明白操作系统如何为进程分配设备,就要对计算机内部组成有一定的认识,操作系统通过驱动程序作为桥梁,向DMA(设备管理器)发出控制信息,DMA一头连着CPU,一头连着设备接口。由于计算机设备众多,如果要CPU全部控制,负担太重。所以在DMA和CPU之间设置一个通道。这个通道连着众多不同设备的DMA,CPU只需和通道发出控制信息就可。

     对CPU如何控制设备有了大概的了解之后,就可以在系统层面来控制设备了。首先在操作系统中,要设置四个数据结构,存放通道信息的表(CHCT),存放DMA信息的表(COCT),存放设备信息的表(DCT),和系统设备表SDT.

   设备表中存放的信息有:设备id,设备忙碌状态0或1,设备队列的队首指针(用来保存请求该设备而被阻塞的进程的队列地址),指向控制器表(coct)的指针。

   COCT表中的字段有:控制器标示符id,忙碌状态0或1,指向通道(chct)的指针,控制器队里的队首指针(作用同上)。

   CHCT表中的字段有:同上。

   SDT表中的字段有:设备类,设备标识符,DCT,驱动程序入口。 

 

操作系统为进程分配设备,当进程发出访问逻辑设备号时,操作系统查找相应设备id,并检查相应的通道,控制器,和设备表。如果某个设备忙碌,则将其阻塞到相应设备的队列。否则同时空闲则按分配算法分配该设备。

 

设备分配的算法和进程调度算法类似,主要有按优先权分配,在优先权相同的情况下按先来先服务算法分配。具体的分配任务由操作系统调用分配程序完成。

 

 

 

 

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:104223次
    • 积分:2368
    • 等级:
    • 排名:第16271名
    • 原创:129篇
    • 转载:21篇
    • 译文:2篇
    • 评论:12条
    最新评论