操作系统之设备分配笔记

原创 2013年12月02日 10:16:51

       

          首先,操作系统对设备的操作主要通过存储关于设备信息的数据结构来使用。最重要明白的是,一个用户进程是不能直接访问和请求系统设备的!要明白操作系统如何为进程分配设备,就要对计算机内部组成有一定的认识,操作系统通过驱动程序作为桥梁,向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,并检查相应的通道,控制器,和设备表。如果某个设备忙碌,则将其阻塞到相应设备的队列。否则同时空闲则按分配算法分配该设备。

 

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

 

 

 

 

操作系统实验四:独占设备的静态分配模拟

实验4:独占设备的静态分配模拟 实验内容:(1)设计设备类表的结构,根据模拟的要求,自己决定必须设置的字段     (2)设计设备分配表的结构,根据模拟的要求,自己决定必须设置的字段     (3)编...
  • ryan_jianjian
  • ryan_jianjian
  • 2016年11月22日 16:17
  • 479

操作系统--6设备管理

操作系统的目标就是要为设备的使用提供简单方便的统一接口,支持连接的可扩充性,并且优化I/O操作,实现最大的并发性。为了实现这一目标,操作系统需要在计算机进行输入输出时,管理和控制I/O设备,并提供适当...
  • abcflyer
  • abcflyer
  • 2015年05月20日 14:04
  • 930

操作系统--设备管理

设备管理概述: 设备管理的主要功能: 设备分配 设备映射 设备驱动 I/O缓冲区的管理 设备分配 多道程序系统中,设备不允许用户直接使用,而是由操作系统统一调度和控制。设备分配功...
  • daiyibo123
  • daiyibo123
  • 2015年06月07日 10:40
  • 1655

操作系统实验六 设备管理

实验六 设备管理一、实验目的1、 理解设备管理的概念和任务。2、 掌握独占设备的分配、回收等主要算法的原理并编程实现。二、实验内容与基本要求1、 在Windows系统中,编写程序实现对独占设备的...
  • u011303443
  • u011303443
  • 2015年12月15日 12:57
  • 1693

操作系统-c语言实现空闲块表的存储空间的分配和回收

#include #include #include #include void init(int map[20][20],int row,int col)//初始化函数 { int i,j,te...
  • jankin6
  • jankin6
  • 2016年12月03日 21:21
  • 535

操作系统常见内存分配算法及优缺点

常见内存分配算法及优缺点如下:   (1)首次适应算法。使用该算法进行内存分配时,从空闲分区链首开始查找,直至找到一个能满足其大小需求的空闲分区为止。然后再按照作业的大小,从该分区中划出一块内存分配给...
  • u012387575
  • u012387575
  • 2016年04月01日 10:30
  • 1995

静态分配和动态分配

静态分配和动态分配 在讲述这个之前我们分享一段程序,从这个程序中我们来思考下为什么,类似的程序最后的输出结果不一样: char* stackMalloc() { char str[] = "ye...
  • u011484045
  • u011484045
  • 2015年09月05日 20:03
  • 1942

【操作系统 - 4】动态分区分配算法

【操作系统 - 4】动态分区分配算法:学习至此,发现很多学了但很久没用的知识,久而久之,慢慢遗忘。等哪天还需要的话,却发现已经忘得差不多了,即使整理了文档(word等),还是得从头再学一遍。读研第一学...
  • Houchaoqun_XMU
  • Houchaoqun_XMU
  • 2017年03月18日 19:58
  • 3804

操作系统分配内存

计算机体系结构和内存层次 操作系统中内存的最小访问单位是 字节 ,也就是8bit。 通常我们所说的计算机系统是32位的总线,所谓的32位总线就是说一次读写可以从内存当中读或者写32位(也就...
  • qq_32744005
  • qq_32744005
  • 2016年07月05日 14:01
  • 2869

[操作系统概念]第六部分——内存管理(4):帧分配

帧分配算法之前说的都是操作系统给进程分配了一定数量的帧(少于页的数量),用于虚拟内存的页置换,但是这个一定数量如何而来?由帧分配算法来决定。 首先,我们需要知道,给一个进程的帧有上限,不能超过内存可...
  • lqadam
  • lqadam
  • 2017年02月24日 22:06
  • 496
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:操作系统之设备分配笔记
举报原因:
原因补充:

(最多只允许输入30个字)