Unix操作系统中数据结构分析
发布时间:2023-01-05 11:18:15 所属栏目:Unix 来源:
导读: 我们在文章中首先让大家了解下Unix操作系统中数据结构分析的知识unix结构分析,以后在进一步的讲解Unix操作系统的知识。希望对大家对Unix操作系统的学习有所帮助。
1缓冲部首:
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操作系统的数据结构分析的知识就到这里了。谢谢大家的阅读。 (编辑:开发网_新乡站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐