Unix操作系统中数据结构分析

系统 其他OS
在文章中,我们学习Unix操作系统的知识。设备名的高字节存设备类型号d_major,也叫设备号,表示某一类设备,同类设备使用相同的驱动程序

我们在文章中首先让大家了解下Unix操作系统中数据结构分析的知识,以后在进一步的讲解Unix操作系统的知识。希望对大家对Unix操作系统的学习有所帮助。

1缓冲部首:

Unix操作系统为每个缓冲提供了一个缓冲控制块,称缓冲部首。其中保留对应缓冲的地址,对应的设备名,使用情况等定义为charbuffers[NBUF][514];(NBF=15)

缓冲部首说明如下:
 

  1. struct  buf  
  2. {  int   b_flags  ;           //标志字位串  
  3.    struct  buf*b_forw;        //设备(b)链向前指针  
  4.    struct  buf*b_back;        //设备(b)链向后指针  
  5. struct  buf*av_forw;       //空闲(av)链向前指针  
  6. struct  buf*av_back;       //空闲(av)链向后指针  
  7. int     b_dev;             //设备名  
  8. int     b-wcount;          //传送字数(二进制补码)  
  9. char  * b_addr;            //内存地址低16位  
  10. char  * b_xmem;            //内存地址高16位  
  11. char  * b_blkno;           //设备上的物理块号  
  12. char  * b_error;           //返回I/0出错信息  
  13. char  * b_resid;           //因出错而未传送的剩余字数  
  14. }  buf[NBUF]; 

为了有效地管理这些缓冲,对应的缓冲部首连人到两个双向链中,一个是设备链,或简称b链,它把一类设备所用的所有缓冲连接起来。另一个是空闲链,或简称av链,它把Unix操作系统中所有未用的缓冲连接起来,包括已属于某设备的b链中的缓冲。

2设备名:

 

  1. struct{ char  d_minor (次设备号)  
  2. char  d_major (主设备号)  
  3. }; 

设备名的高字节存设备类型号d_major,也叫设备号,表示某一类设备,同类设备使用相同的驱动程序,低字节存设备号d_minor,也叫次设备号,表示某类设备的第几台设备。

3块设备表:含有该类设备的状态信息、IO队列头尾指针和上面提到的该类设备的b链头尾指针。

设备表说明如下:
 

  1. struct  devtab  
  2. { char  d_active;               //忙闲标志  
  3. char  d_errent;               //出错重试次数  
  4. struct *buf b_forw;           //b链链头指针向前指针  
  5. struct *buf b_back;           //b链链头指针向后指针  
  6. struct *buf d_actf;           //IO队列头指针  
  7. struct *buf d_act1;           //IO队列尾指针  
  8. }; 

4块设备开关:每类设备自己的管理程序
 

  1. struct  bdevsw  
  2. { int (*d_open) ( );            //打开子程序入口地址  
  3. int (*d_close) ( );           //关闭子程序入口地址  
  4. int (*d_strategy) ( );        //启动子程序入口地址  
  5. int *d_tab                    //对应设备表地址(devtab)  
  6. } bdevsw; 

5bfreelist:是av链的链头,

用了buf中的四个指针。但b_forw和b_back指向的b链不与任何设备相连系。
swbuf:专门用于程序对换。
rrkbuf:专门用于原始磁盘操作。

这样,我们对Unix操作系统的数据结构分析的知识就到这里了。谢谢大家的阅读。

【编辑推荐】

  1. 基础讲解Unix操作系统进程
  2. 讲解Unix操作系统cat知识
  3. Unix操作系统基础讲解
  4. Unix操作系统知识概要
  5. Unix操作系统fork 知识
责任编辑:小霞
相关推荐

2010-04-09 17:25:13

Unix操作系统

2010-04-08 16:11:39

Unix操作系统

2010-04-15 13:02:41

Unix操作系统

2010-04-29 17:15:48

Unix操作系统

2010-04-15 18:46:53

Unix操作系统

2010-04-13 12:27:44

Unix操作系统

2010-04-19 12:40:00

Unix操作系统

2010-04-30 17:21:50

Unix操作系统

2010-05-04 14:27:52

Unix操作系统

2010-04-08 17:31:51

Unix操作系统

2010-04-19 10:46:08

Unix操作系统

2010-04-16 18:19:32

Unix操作系统

2010-04-20 11:52:33

Unix操作系统

2010-04-16 10:34:45

Unix操作系统

2010-05-05 11:21:37

Unix操作系统

2010-04-20 17:11:33

Unix操作系统

2010-04-20 11:34:26

Unix操作系统

2010-04-19 13:08:35

Unix操作系统

2010-04-08 13:06:02

Unix操作系统

2010-04-08 17:05:21

Unix操作系统
点赞
收藏

51CTO技术栈公众号