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

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

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

我们在文章中首先让大家了解下Unix操作系统中数据结构分析的知识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操作系统的数据结构分析的知识就到这里了。谢谢大家的阅读。

【编辑推荐】

基础讲解Unix操作系统进程讲解Unix操作系统cat知识Unix操作系统基础讲解Unix操作系统知识概要Unix操作系统fork 知识

(编辑:武汉站长网)

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

    推荐文章