自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Unix操作系統(tǒng)中數(shù)據(jù)結(jié)構(gòu)分析

系統(tǒng) 其他OS
在文章中,我們學(xué)習(xí)Unix操作系統(tǒng)的知識(shí)。設(shè)備名的高字節(jié)存設(shè)備類(lèi)型號(hào)d_major,也叫設(shè)備號(hào),表示某一類(lèi)設(shè)備,同類(lèi)設(shè)備使用相同的驅(qū)動(dòng)程序

我們?cè)谖恼轮惺紫茸尨蠹伊私庀耈nix操作系統(tǒng)中數(shù)據(jù)結(jié)構(gòu)分析的知識(shí),以后在進(jìn)一步的講解Unix操作系統(tǒng)的知識(shí)。希望對(duì)大家對(duì)Unix操作系統(tǒng)的學(xué)習(xí)有所幫助。

1緩沖部首:

Unix操作系統(tǒng)為每個(gè)緩沖提供了一個(gè)緩沖控制塊,稱(chēng)緩沖部首。其中保留對(duì)應(yīng)緩沖的地址,對(duì)應(yīng)的設(shè)備名,使用情況等定義為charbuffers[NBUF][514];(NBF=15)

緩沖部首說(shuō)明如下:
 

  1. struct  buf  
  2. {  int   b_flags  ;           //標(biāo)志字位串  
  3.    struct  buf*b_forw;        //設(shè)備(b)鏈向前指針  
  4.    struct  buf*b_back;        //設(shè)備(b)鏈向后指針  
  5. struct  buf*av_forw;       //空閑(av)鏈向前指針  
  6. struct  buf*av_back;       //空閑(av)鏈向后指針  
  7. int     b_dev;             //設(shè)備名  
  8. int     b-wcount;          //傳送字?jǐn)?shù)(二進(jìn)制補(bǔ)碼)  
  9. char  * b_addr;            //內(nèi)存地址低16位  
  10. char  * b_xmem;            //內(nèi)存地址高16位  
  11. char  * b_blkno;           //設(shè)備上的物理塊號(hào)  
  12. char  * b_error;           //返回I/0出錯(cuò)信息  
  13. char  * b_resid;           //因出錯(cuò)而未傳送的剩余字?jǐn)?shù)  
  14. }  buf[NBUF]; 

為了有效地管理這些緩沖,對(duì)應(yīng)的緩沖部首連人到兩個(gè)雙向鏈中,一個(gè)是設(shè)備鏈,或簡(jiǎn)稱(chēng)b鏈,它把一類(lèi)設(shè)備所用的所有緩沖連接起來(lái)。另一個(gè)是空閑鏈,或簡(jiǎn)稱(chēng)av鏈,它把Unix操作系統(tǒng)中所有未用的緩沖連接起來(lái),包括已屬于某設(shè)備的b鏈中的緩沖。

2設(shè)備名:

 

  1. struct{ char  d_minor (次設(shè)備號(hào))  
  2. char  d_major (主設(shè)備號(hào))  
  3. }; 

設(shè)備名的高字節(jié)存設(shè)備類(lèi)型號(hào)d_major,也叫設(shè)備號(hào),表示某一類(lèi)設(shè)備,同類(lèi)設(shè)備使用相同的驅(qū)動(dòng)程序,低字節(jié)存設(shè)備號(hào)d_minor,也叫次設(shè)備號(hào),表示某類(lèi)設(shè)備的第幾臺(tái)設(shè)備。

3塊設(shè)備表:含有該類(lèi)設(shè)備的狀態(tài)信息、IO隊(duì)列頭尾指針和上面提到的該類(lèi)設(shè)備的b鏈頭尾指針。

設(shè)備表說(shuō)明如下:
 

  1. struct  devtab  
  2. { char  d_active;               //忙閑標(biāo)志  
  3. char  d_errent;               //出錯(cuò)重試次數(shù)  
  4. struct *buf b_forw;           //b鏈鏈頭指針向前指針  
  5. struct *buf b_back;           //b鏈鏈頭指針向后指針  
  6. struct *buf d_actf;           //IO隊(duì)列頭指針  
  7. struct *buf d_act1;           //IO隊(duì)列尾指針  
  8. }; 

4塊設(shè)備開(kāi)關(guān):每類(lèi)設(shè)備自己的管理程序
 

  1. struct  bdevsw  
  2. { int (*d_open) ( );            //打開(kāi)子程序入口地址  
  3. int (*d_close) ( );           //關(guān)閉子程序入口地址  
  4. int (*d_strategy) ( );        //啟動(dòng)子程序入口地址  
  5. int *d_tab                    //對(duì)應(yīng)設(shè)備表地址(devtab)  
  6. } bdevsw; 

5bfreelist:是av鏈的鏈頭,

用了buf中的四個(gè)指針。但b_forw和b_back指向的b鏈不與任何設(shè)備相連系。
swbuf:專(zhuān)門(mén)用于程序?qū)Q。
rrkbuf:專(zhuān)門(mén)用于原始磁盤(pán)操作。

這樣,我們對(duì)Unix操作系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)分析的知識(shí)就到這里了。謝謝大家的閱讀。

【編輯推薦】

  1. 基礎(chǔ)講解Unix操作系統(tǒng)進(jìn)程
  2. 講解Unix操作系統(tǒng)cat知識(shí)
  3. Unix操作系統(tǒng)基礎(chǔ)講解
  4. Unix操作系統(tǒng)知識(shí)概要
  5. Unix操作系統(tǒng)fork 知識(shí)
責(zé)任編輯:小霞
相關(guān)推薦

2010-04-09 17:25:13

Unix操作系統(tǒng)

2010-04-08 16:11:39

Unix操作系統(tǒng)

2010-04-15 13:02:41

Unix操作系統(tǒng)

2010-04-15 18:46:53

Unix操作系統(tǒng)

2010-04-29 17:15:48

Unix操作系統(tǒng)

2010-04-13 12:27:44

Unix操作系統(tǒng)

2010-04-19 12:40:00

Unix操作系統(tǒng)

2010-04-30 17:21:50

Unix操作系統(tǒng)

2010-05-04 14:27:52

Unix操作系統(tǒng)

2010-04-08 17:31:51

Unix操作系統(tǒng)

2010-04-19 10:46:08

Unix操作系統(tǒng)

2009-04-27 16:23:15

LinuxUnix操作系統(tǒng)

2010-04-16 18:19:32

Unix操作系統(tǒng)

2010-05-05 11:21:37

Unix操作系統(tǒng)

2010-04-19 18:35:35

Unix操作系統(tǒng)

2010-04-20 11:52:33

Unix操作系統(tǒng)

2010-04-20 11:34:26

Unix操作系統(tǒng)

2010-04-08 15:33:57

Unix操作系統(tǒng)

2010-04-08 18:25:03

Unix操作系統(tǒng)

2010-04-14 09:02:57

Unix操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)