操作系統(tǒng)課件 第十二章 UNIX 實(shí)例分析(2).ppt_第1頁(yè)
操作系統(tǒng)課件 第十二章 UNIX 實(shí)例分析(2).ppt_第2頁(yè)
操作系統(tǒng)課件 第十二章 UNIX 實(shí)例分析(2).ppt_第3頁(yè)
操作系統(tǒng)課件 第十二章 UNIX 實(shí)例分析(2).ppt_第4頁(yè)
操作系統(tǒng)課件 第十二章 UNIX 實(shí)例分析(2).ppt_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、12.6 設(shè)備管理,打開(kāi)一個(gè)設(shè)備文件即相當(dāng)于申請(qǐng)對(duì)應(yīng)的設(shè)備, 如該設(shè)備已處于打開(kāi)狀態(tài)則等待 關(guān)閉一個(gè)設(shè)備文件即相當(dāng)于釋放對(duì)應(yīng)的設(shè)備, 如有等待者則喚醒一個(gè) 讀寫(xiě)一個(gè)設(shè)備文件就相當(dāng)于對(duì)所對(duì)應(yīng)的設(shè)備執(zhí)行I/O操作,緩沖與緩存,塊型設(shè)備緩沖 用于磁盤(pán)、磁帶等設(shè)備的I/O傳輸 每個(gè)緩沖區(qū)的長(zhǎng)度與塊型物理設(shè)備中一個(gè)塊的長(zhǎng)度相同, 即為512字節(jié) 緩沖區(qū)為所有塊型設(shè)備公用, 其總數(shù)為15個(gè),塊型設(shè)備緩沖,struct buf int b_flags; /* see definition below */ struct buf *b_forw; /* headed by devtab of b_dev */

2、 struct buf *b_back; /* 設(shè)備b鏈向后指針 */ struct buf *av_forw; /* av鏈向前指針 */ struct buf *av_back; /* av鏈向后指針 */ int b_dev; /* 設(shè)備名 */ int b_wcount; /* 傳送字?jǐn)?shù) */ char *b_addr; /* 內(nèi)存地址(低位) */ char *b_xmem; /* 內(nèi)存地址(高位) */ char *b_blkno; /* 設(shè)備物理塊號(hào) */ char b_error; /* 返回出錯(cuò)信息 */ char *b_resid; /* 傳送剩余字節(jié) */ bufNBUF

3、;,塊型設(shè)備控制結(jié)構(gòu),struct devtab char d_active; /* busy flag */ char d_erncnt; /* error count */ struct buf *b_forw; /* first buffer for this dev */ struct buf *b_back; /* last buffer for this dev */ struct buf *d_actf; /* head of IO queue */ struct buf *d_actl; /* tail of IO queue */ ,塊緩沖數(shù)據(jù)讀寫(xiě),內(nèi)存區(qū),緩沖區(qū),磁盤(pán)塊,i

4、omove,bread,breada,bwrite,bawrite,bdwrite,字符型設(shè)備緩沖,緩沖池 struct cblock struct cblock *c_next; /* pointer */ char info6; /* info container */ 讀操作 寫(xiě)操作,預(yù)先讀與延遲寫(xiě),預(yù)先讀(read ahead) 將以后即將使用的塊讀入緩沖區(qū)中 以后進(jìn)程需要該塊時(shí)便可在緩沖區(qū)中直接得到, 不必等待設(shè)備I/O傳輸 基于文件順序訪問(wèn)的假設(shè) 延遲寫(xiě)(delayed write) 當(dāng)一個(gè)緩沖塊尚未寫(xiě)滿時(shí), 暫不將其寫(xiě)到外存 以后繼續(xù)寫(xiě)時(shí), 不必將該塊由外存讀入內(nèi)存,12.7 系

5、統(tǒng)調(diào)用,主要包括 Process manipulation File manipulation Communication Others,12.7.1 有關(guān)進(jìn)程的系統(tǒng)調(diào)用命令,相關(guān)系統(tǒng)調(diào)用 創(chuàng)建子進(jìn)程 Pid = fork() 加載并執(zhí)行新程序 execl(prog, arg0,argn-1,0) 進(jìn)程自我結(jié)束 exit(status) 等待子進(jìn)程終止 pid=wait( if(pid = 0) /*成立*/ /*子進(jìn)程代碼*/ else /*父進(jìn)程代碼*/ ,proc結(jié)構(gòu) p_pid=15 p_ppid=9 user結(jié)構(gòu),復(fù)制,父進(jìn)程,子進(jìn)程,fork() 創(chuàng)建子進(jìn)程,聯(lián)系,子進(jìn)程號(hào)(0整數(shù)

6、),pid = fork(); if(pid = 0) /*不成立*/ /*子進(jìn)程代碼*/ else /*父進(jìn)程代碼*/ ,恒為0,pid=fork(); if(pid=0) /*不成立*/ execl(“P”,0); else /*父進(jìn)程代碼*/ ,proc結(jié)構(gòu) p_pid=9 p_ppid=5 user結(jié)構(gòu),pid=fork(); if(pid=0) /*成立*/ execl(“P”,0); else /*父進(jìn)程代碼*/ ,proc結(jié)構(gòu) p_pid=15 p_ppid=9 user結(jié)構(gòu),父進(jìn)程,子進(jìn)程,execl() 加載并執(zhí)行新程序,pid=fork(); if(pid=0) /*不成立

7、*/ execl(“P”,0); else /*父進(jìn)程代碼*/ ,proc結(jié)構(gòu) p_pid=9 p_ppid=5 user結(jié)構(gòu),程序P (覆蓋原來(lái)程序),proc結(jié)構(gòu) p_pid=15 p_ppid=9 user結(jié)構(gòu),父進(jìn)程,子進(jìn)程,execl() 加載并執(zhí)行新程序,pid=fork(); if(pid=0) /*不成立*/ execl(“P”,0); else /*父進(jìn)程代碼*/ ,proc結(jié)構(gòu) p_pid=9 p_ppid=5 user結(jié)構(gòu),程序P (覆蓋原來(lái)程序) exit(2),proc結(jié)構(gòu) p_pid=15 p_ppid=9 user結(jié)構(gòu),父進(jìn)程,子進(jìn)程,exit() 進(jìn)程自我終止,

8、pid=fork(); if(pid = 0) /*不成立*/ execl(“P”,0); else p = wait( ,proc結(jié)構(gòu) p_pid=9 p_ppid=5 user結(jié)構(gòu), 程序P (覆蓋原來(lái)程序) exit(2) ,proc結(jié)構(gòu) p_pid=15 p_ppid=9 user結(jié)構(gòu),父進(jìn)程,子進(jìn)程,pid=wait(&status) 等待子進(jìn)程終止,p=pid=15,s = = 2,例子:p305,12.7.2有關(guān)文件的系統(tǒng)調(diào)用命令,P306,12.8 外殼語(yǔ)言,一般命令 由命令名和空格分隔的若干個(gè)參數(shù)所組成 后臺(tái)命令 在一般命令之后加上一個(gè)符號(hào)“&”, 即成為后臺(tái)命令 輸入輸出重新定向 用文件來(lái)取代標(biāo)準(zhǔn)輸入設(shè)備或標(biāo)準(zhǔn)輸出設(shè)備稱作I/O重新定向 用符

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論