加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_新乡站长网 (https://www.0373zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

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

发布时间:2023-01-05 11:18:15 所属栏目:Unix 来源:
导读:  我们在文章中首先让大家了解下Unix操作系统中数据结构分析的知识unix结构分析,以后在进一步的讲解Unix操作系统的知识。希望对大家对Unix操作系统的学习有所帮助。

  1缓冲部首:

  Unix操作系统为每
  我们在文章中首先让大家了解下Unix操作系统中数据结构分析的知识unix结构分析,以后在进一步的讲解Unix操作系统的知识。希望对大家对Unix操作系统的学习有所帮助。
 
  1缓冲部首:
 
  Unix操作系统为每个缓冲提供了一个缓冲控制块,称缓冲部首。其中保留对应缓冲的地址,对应的设备名,使用情况等定义为charbuffers[NBUF][514];(NBF=15)
 
  缓冲部首说明如下:
 
  struct??buf ?
 
  {??int???b_flags??;???????????//标志字位串 ?
 
  ???struct??buf*b_forw;????????//设备(b)链向前指针 ?
 
  ???struct??buf*b_back;????????//设备(b)链向后指针 ?
 
  struct??buf*av_forw;???????//空闲(av)链向前指针 ?
 
  struct??buf*av_back;???????//空闲(av)链向后指针 ?
 
  int?????b_dev;?????????????//设备名 ?
 
  int?????b-wcount;??????????//传送字数(二进制补码) ?
 
  char??*?b_addr;????????????//内存地址低16位 ?
 
  char??*?b_xmem;????????????//内存地址高16位 ?
 
  char??*?b_blkno;???????????//设备上的物理块号 ?
 
  char??*?b_error;???????????//返回I/0出错信息 ?
 
  char??*?b_resid;???????????//因出错而未传送的剩余字数 ?
 
  }??buf[NBUF];?
 
  为了有效地管理这些缓冲,对应的缓冲部首连人到两个双向链中,一个是设备链,或简称b链,它把一类设备所用的所有缓冲连接起来。另一个是空闲链,或简称av链,它把Unix操作系统中所有未用的缓冲连接起来,包括已属于某设备的b链中的缓冲。
 
  2设备名:
 
  struct{?char??d_minor?(次设备号) ?
 
  char??d_major?(主设备号) ?
 
  };?
 
  设备名的高字节存设备类型号d_major,也叫设备号,表示某一类设备,同类设备使用相同的驱动程序,低字节存设备号d_minor,也叫次设备号,表示某类设备的第几台设备。
 
  3块设备表:含有该类设备的状态信息、IO队列头尾指针和上面提到的该类设备的b链头尾指针。
 
  设备表说明如下:
 
  struct??devtab ?
 
  {?char??d_active;???????????????//忙闲标志 ?
 
  char??d_errent;???????????????//出错重试次数 ?
 
  struct?*buf?b_forw;???????????//b链链头指针向前指针 ?
 
  struct?*buf?b_back;???????????//b链链头指针向后指针 ?
 
  struct?*buf?d_actf;???????????//IO队列头指针 ?
 
  struct?*buf?d_act1;???????????//IO队列尾指针 ?
 
  };?
 
  4块设备开关:每类设备自己的管理程序
 
  struct??bdevsw ?
 
  {?int?(*d_open)?(?);????????????//打开子程序入口地址 ?
 
  int?(*d_close)?(?);???????????//关闭子程序入口地址 ?
 
  int?(*d_strategy)?(?);????????//启动子程序入口地址 ?
 
  int?*d_tab????????????????????//对应设备表地址(devtab) ?
 
  }?bdevsw;?
 
  5bfreelist:是av链的链头,
 
  用了buf中的四个指针。但b_forw和b_back指向的b链不与任何设备相连系。
 
  swbuf:专门用于程序对换。
 
  rrkbuf:专门用于原始磁盘操作。
 
  这样,我们对Unix操作系统的数据结构分析的知识就到这里了。谢谢大家的阅读。
 
 

(编辑:开发网_新乡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章