操作系统笔记 |
您所在的位置:网站首页 › 民宿需要什么功能区的设备和设备 › 操作系统笔记 |
1. 设备分类 独占设备:只能被一个进程使用。打印机共享设备:可以被多个进程同时(微观上交替)使用。磁盘虚拟设备:SPOOLing技术从独占设备虚拟出来的设备。(所以本质上还是属于独占设备) 二、静态分配与动态分配静态分配:进程运行前,一次性给进程分配所需的全部资源,资源不满足的话就不让这个进程运行。这也是避免死锁的四个方法之一。 动态分配:进程运行中动态请求资源。 三、设备分配管理中的数据结构每个设备一定从属于一个控制器,每个控制器也一定从属于一个通道(有多个通道) 1.数据结构(一)——设备控制表![]() 四个字段都很关键 设备类型:逻辑设备名设备标识符:物理设备名DCT表指针设备驱动程序入口1. 根据进程提供的物理设备名(设备标识符)在系统设备表中找到这个设备,找到这个设备的设备控制表。(物理设备名由程序员编程时提供,如/dev/video0) 2. 查看设备控制表的设备状态字段,如果设备空闲,就将设备分配给这个进程。如果设备忙碌,那么就将这个进程挂载到设备的等待队列当中。 然后根据指向控制器的指针字段,找到这个设备所属的控制器的控制器控制表。 3.对控制器控制表也进行忙碌与否的检查,空闲就分配,忙碌就将进程挂载到这个控制器的等待队列中。然后找到通道控制表 4.对通道控制表进行2、3一样的操作 只有当设备、控制器、通道都空闲时,这次设备分配才算成功,便可启动I/O设备传送数据。 以上设备分配步骤的缺点:程序员编程时需要提供物理设备名,比如说程序里写死了是“222”,然而我的设备换了一个物理名字比如叫“333”,这个程序就不能执行了,尽管有空闲的设备可以用。
相当于程序员只告诉了操作系统我需要的这个设备属于什么大类,然后由操作系统负责去系统设备表中查看这个大类中是否有空闲的设备,有的话分配给进程。 当然,这种逻辑设备名和物理设备名的映射关系也是由操作系统负责创建的。 ----------------------------------写给我自己看的-------------------- 改进之后,在工程实践过程当中仍然会碰到其他意外: PS: 我们当时的问题和这个不一样,不是说写死了物理设备名。而是程序中写的就是逻辑设备名/dev/video0,但是当这个设备从系统中拔出再插进去的时候,系统可能给他换了一个逻辑设备名(比如从/dev/video0换成了/dev/video2,也就是说设备属于的大类video也分不同的大类,比如专门负责测温的video0,负责监控的video1等等),这时候程序依然需要改动。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |