第4章 習(xí)題解答
1.什么叫文件?
答:所謂文件是指邏輯上具有完整意義的信息集合。在計(jì)算機(jī)系統(tǒng)中,很多東西都是以文件的形式存放在輔存中供用戶使用,其中包括作業(yè)的源程序、目標(biāo)程序、數(shù)據(jù)以及各類軟件程序等等。
2.文件系統(tǒng)應(yīng)具有哪些功能?
答:為了正確地按名存取,文件系統(tǒng)具有如下功能:
①實(shí)現(xiàn)從邏輯文件到物理文件間的轉(zhuǎn)換。
②有效地分配文件的存儲(chǔ)空間。
③建立文件目錄。
④提供合適的存取方法以適應(yīng)各種不同的應(yīng)用。
⑤實(shí)現(xiàn)文件的共享、保護(hù)和保密。
⑤提供一組文件操作。
3.什么是文件的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)?
答:用戶是從使用的角度來(lái)組織文件,用戶把能觀察到的且可以處理的信息根據(jù)使用要求構(gòu)造成文件,這種構(gòu)造方式稱為文件的邏輯結(jié)構(gòu)。文件系統(tǒng)是從文件的存儲(chǔ)和檢索的角度來(lái)組織文件,在存儲(chǔ)媒介上的文件構(gòu)造方式稱為文件的存儲(chǔ)結(jié)構(gòu)。
4.解釋順序文件、鏈接文件和索引文件。
答:(1)順序結(jié)構(gòu)
將一個(gè)文件邏輯上連續(xù)信息存放在存儲(chǔ)介質(zhì)(磁盤)中相鄰的塊上,這種存儲(chǔ)結(jié)構(gòu)保證了邏輯記錄順序和物理塊順序相一致。磁帶上的文件只能是順序結(jié)構(gòu)的,因?yàn)榇艓C(jī)本身就是個(gè)順序存取的設(shè)備。
(2)鏈接結(jié)構(gòu)(串聯(lián)結(jié)構(gòu))
文件所占用的存儲(chǔ)介質(zhì)物理塊不再要求連續(xù)(相鄰)的,可以分散在存儲(chǔ)媒介上。在結(jié)構(gòu)上,采用鏈表的結(jié)構(gòu)方式,將每一塊的最后一個(gè)單元用來(lái)存放下一個(gè)物理塊的地址,形成指針鏈。最后一塊的最后一個(gè)單元為0表示結(jié)束。
(3)以索引結(jié)構(gòu)
和鏈接結(jié)構(gòu)一樣,也是一個(gè)非連續(xù)存儲(chǔ)的結(jié)構(gòu),但它不采用鏈接方式,而是為每一個(gè)文件建立一張索引表,索引表中存放文件中每一個(gè)記錄存放的物理地址。
5.解釋記錄的成組和分解
答:當(dāng)文件的一個(gè)邏輯記錄的長(zhǎng)度小于一個(gè)物理塊的長(zhǎng)度的時(shí)候,我們可以把若干個(gè)邏輯記錄合并成一組存到一個(gè)物理塊中,這個(gè)工作稱為成組。訪問(wèn)某個(gè)記錄的時(shí)候,需要把這個(gè)記錄從它所在的塊中的一組記錄中分離出來(lái),這一工作稱為分解。記錄的成組和分解可以提高存儲(chǔ)空間的利用率,并且可以減少存儲(chǔ)設(shè)備的啟動(dòng)次數(shù)。
6.假定某個(gè)文件由長(zhǎng)度為80個(gè)字符的100個(gè)邏輯記錄組成,磁盤存儲(chǔ)空間被劃分成長(zhǎng)度為2048個(gè)字符的塊,為有效地使用磁盤空間,你可采用成組方式把文件存放到磁盤上,回答下列問(wèn)題:
①該文件至少占用多少磁盤存儲(chǔ)塊?
②若該文件是以鏈接結(jié)構(gòu)形式在磁盤上的,現(xiàn)用戶要求使用第28個(gè)邏輯記錄,寫出系統(tǒng)為滿足用戶要求而應(yīng)做的主要工作。
答:①每塊能存放的記錄個(gè)數(shù)為「2048/80」=25個(gè)。一共需要 100/25=4塊。
②首先系統(tǒng)計(jì)算出第28個(gè)記錄在第2個(gè)物理塊上,然后系統(tǒng)通過(guò)文件目錄讀出第一塊物理塊,在該塊最后單元找到第二物理塊的地址,讀出第二物理塊,再經(jīng)過(guò)肇按第28個(gè)記錄在第二塊中的位置讀出該記錄。
7.舉一例說(shuō)明數(shù)據(jù)的分解操作過(guò)程。
答:就以上題為例,假定某個(gè)文件由長(zhǎng)度為 80個(gè)字符的 100個(gè)邏輯記錄組成,磁盤存儲(chǔ)空間被劃分成長(zhǎng)度為2048個(gè)字符的塊,為有效地使用磁盤空間,采用成組方式把文件存放到磁盤上,現(xiàn)用戶要求每次讀一個(gè)邏輯記錄到他的工作區(qū)中,當(dāng)對(duì)該邏輯記錄處理后,要求把下一個(gè)邏輯記錄讀人到工作區(qū),直到連續(xù)讀出8個(gè)記錄。
由于主存儲(chǔ)器與外存之間的信息交換是以塊為單位的,所以應(yīng)當(dāng)在主存中開(kāi)辟一個(gè)2048字節(jié)的緩沖區(qū)。由上題可知每塊中含有25個(gè)記錄,文件一共占用4塊,用戶在指明了要讀人記錄的記錄號(hào)N后,根據(jù)公式[N/25」得到該記錄應(yīng)該在4塊的哪一塊中,將該塊讀人到緩沖區(qū)中,并根據(jù)公式(N/25)得到該記錄是塊內(nèi)的第幾個(gè)記錄(式中[]表示取整,()表示取余數(shù)),將該記錄從緩沖區(qū)拷貝到用戶工作區(qū),然后 N+l,如果[(N+1)/25]=[N/25],則將緩沖區(qū)中的下一個(gè)記錄拷貝到用戶工作區(qū),而無(wú)需啟動(dòng) I/O操作,否則,按照新的塊號(hào)將一個(gè)數(shù)據(jù)塊讀進(jìn)緩沖區(qū),并將記錄從緩沖區(qū)拷貝到用戶工作區(qū)。
8.頁(yè)式存儲(chǔ)管理中用位示圖表示主存空間的分配情況,磁盤存儲(chǔ)空間的分配也可用位示圖來(lái)表示,兩者能合用一張位示圖嗎?
答:不行,主存空間和磁盤存儲(chǔ)空間是兩種不同的存儲(chǔ)空間,應(yīng)該使用不同的位示圖來(lái)表示分配情況。
9.為了實(shí)現(xiàn)按名存取,文件目錄應(yīng)包含哪些內(nèi)容?
答:為了實(shí)現(xiàn)按名存取,文件目錄至少要包括文件的名字和文件存放的物理地址,除此之外,目錄中還可以包含其他的控制和管理文件的信息,如:文件類型、記錄長(zhǎng)度、記錄個(gè)數(shù)、口令、建立日期、保存期限、上次修改時(shí)間等。
10.怎樣才能防止不同的用戶可能給各自的文件取了相同的名字而造成混亂?
答:可以采用二級(jí)目錄或多級(jí)目錄結(jié)構(gòu)。在主目錄中登記每個(gè)用戶的名字和用戶文件目錄的存放地址;在第二級(jí)用戶文件目錄中登記用戶的每個(gè)文件的文件名及文件存放位置。這樣,不同的用戶有同名文件時(shí),由于文件的路徑是不一樣的,所以不會(huì)產(chǎn)生混亂。多級(jí)目錄是在二級(jí)目錄的基礎(chǔ)上,在用戶目錄下,根據(jù)項(xiàng)目和應(yīng)用領(lǐng)域再建立子目錄和孫目錄,這樣可以避免同一個(gè)用戶的同名文件造成的混亂。
11.有一個(gè)文件可供兩個(gè)用戶共享,但這兩個(gè)用戶卻對(duì)這個(gè)文件定義了不同的名字,為了保證兩個(gè)用戶都能存取該文件,應(yīng)怎樣設(shè)置文件目錄?簡(jiǎn)單畫出目錄結(jié)構(gòu)關(guān)系且解釋之。
答:采用二級(jí)目錄結(jié)構(gòu)。如圖4-3所示,用戶 zhangshan和用戶 lisi對(duì)一個(gè)共享文件分別定義了不同的名字ww和pw,只要在它們各自的目錄表中把相應(yīng)的文件存放地址填上共享文件在存儲(chǔ)介質(zhì)上的起始位置,當(dāng)用戶zhangshan存取ww文件,用戶lisi存取pw文件時(shí),文件系統(tǒng)按照目錄查找文件時(shí)得到相同的文件存放位置。于是各用戶使用了不同的文件名,卻仍能共享同一文件。
12.總結(jié)文件的存取方法、文件的存儲(chǔ)結(jié)構(gòu)、存儲(chǔ)設(shè)備類型之間的關(guān)系。
答:文件的存取方法有兩種:順序存取和隨機(jī)存取。文件的存取方法決定了文件的存儲(chǔ)結(jié)構(gòu),它們的關(guān)系如表4-1所示。
13.文件系統(tǒng)提供的主要文件操作有哪些?
答:文件系統(tǒng)提供的主要文件操作有以下幾種:
①‘建立“操作。用戶要求把一個(gè)新文件存放到存儲(chǔ)介質(zhì)上時(shí),首先要向系統(tǒng)提出”建立“要求。系統(tǒng)在接到用戶的”建立“要求后,在文件目錄中尋找空目錄項(xiàng)進(jìn)行登記
②“打開(kāi)”操作。用戶要使用存放在存儲(chǔ)介質(zhì)上的文件前,必需提出“打開(kāi) ”要求。系統(tǒng)在接到用戶的“打開(kāi)”要求后,找到該用戶的文件目錄,如果文件目錄在外存上,還要把它調(diào)入到主存,然后從文件目錄中找到與用戶的需求相符合的目錄項(xiàng),取出文件存放的物理地址。如果是索引文件,還要將這個(gè)文件的索引表也調(diào)入到主存中,這樣,后繼的讀操作能夠很快地進(jìn)行。
③“讀/寫”操作。用戶調(diào)用這個(gè)操作來(lái)讀/寫文件,系統(tǒng)只允許用戶對(duì)已經(jīng)過(guò)“打開(kāi)”或“建立”操作的文件進(jìn)行讀/寫。對(duì)順序存取方式的文件,用戶只需給出讀/寫的文件名,而無(wú)需給出讀/寫記錄的編號(hào),系統(tǒng)執(zhí)行本操作的時(shí)候,每次順序讀/寫一個(gè)或幾個(gè)邏輯記錄。對(duì)于采用隨機(jī)方式的文件,用戶除了要給出需讀/寫的文件名外,還要給出需讀/寫記錄的編號(hào)(或主鍵),系統(tǒng)執(zhí)行讀操作的時(shí)候,按指定的記錄號(hào)(或鍵)查索引表,得到記錄存放的物理地址后,按地址將記錄讀出;執(zhí)行寫操作的時(shí)候,在索引表找到一個(gè)空登記項(xiàng)且找一個(gè)空閑的存儲(chǔ)塊,把記錄存人找到的存儲(chǔ)塊中,同時(shí)在索引表中登記
④“關(guān)閉”操作。經(jīng)過(guò)“打開(kāi)”或“建立”的文件,在讀/寫完畢后,需要執(zhí)行“關(guān)閉”操作。執(zhí)行關(guān)閉操作時(shí)要檢查讀到主存儲(chǔ)器中的文件目錄或索引表是否被改變,如果改過(guò),則應(yīng)把修改過(guò)的文件目錄或索引表重新保存好。一個(gè)關(guān)閉后的文件不能再使用,如果要使用,必須重新執(zhí)行“打開(kāi)”操作。用戶提出“關(guān)閉”要求時(shí),必須說(shuō)明關(guān)閉哪個(gè)文件。
⑤“刪除”操作。用戶用本操作向系統(tǒng)提出刪除一個(gè)文件的要求,系統(tǒng)執(zhí)行時(shí)把指定文件的名字從目錄和索引表中除取,并收回它所占用的存儲(chǔ)區(qū)域。
14.文件系統(tǒng)中為什么要設(shè)置“建立”、“打開(kāi)”和“關(guān)閉”操作?
答:要把一個(gè)文件存放到存儲(chǔ)介質(zhì)上或使用一個(gè)已經(jīng)建立在某存儲(chǔ)介質(zhì)上的文件前,首先應(yīng)該把文件的屬性(文件名、文件類型、可訪問(wèn)性、記錄大小等),文件的管理信息(口令、建立日期、保存期限等)以及存取方式,通過(guò)特定的形式告訴文件系統(tǒng)?!敖ⅰ薄!按蜷_(kāi)”和“關(guān)閉”操作就是為此目的而設(shè)置的。
用“建立”操作向系統(tǒng)提出生成一個(gè)新文件的要求。
用“打開(kāi)”操作向系統(tǒng)申請(qǐng)讀一指定文件的權(quán)力。
用“關(guān)閉”操作表示已經(jīng)不再要讀/寫某個(gè)文件了,向系統(tǒng)歸還使用文件的權(quán)力。
15.當(dāng)用戶要讀一個(gè)尚未打開(kāi)的文件的時(shí)候,系統(tǒng)怎么處理?
答:當(dāng)用戶要讀一個(gè)文件的時(shí)候,系統(tǒng)先要驗(yàn)證該用戶是否有使用權(quán)力,所以任何一個(gè)用戶如果要讀文件前都要執(zhí)行“打開(kāi)”操作。系統(tǒng)不允許隱式使用,那么當(dāng)讀一個(gè)還沒(méi)有打開(kāi)的文件,系統(tǒng)不會(huì)執(zhí)行讀操作,而是返回一個(gè)“文件未打開(kāi)”的錯(cuò)誤信息。如果系統(tǒng)允許隱式使用,那么系統(tǒng)將會(huì)替用戶做打開(kāi)文件的工作。
16.文件系統(tǒng)能允許用戶去“關(guān)閉”一個(gè)不是自己“打開(kāi)”或“建立”的文件嗎?
答:不能!一個(gè)不是自己“打開(kāi)‘域”建立“的文件,是沒(méi)有權(quán)力使用和強(qiáng)行關(guān)閉的。
1.什么叫文件?
答:所謂文件是指邏輯上具有完整意義的信息集合。在計(jì)算機(jī)系統(tǒng)中,很多東西都是以文件的形式存放在輔存中供用戶使用,其中包括作業(yè)的源程序、目標(biāo)程序、數(shù)據(jù)以及各類軟件程序等等。
2.文件系統(tǒng)應(yīng)具有哪些功能?
答:為了正確地按名存取,文件系統(tǒng)具有如下功能:
①實(shí)現(xiàn)從邏輯文件到物理文件間的轉(zhuǎn)換。
②有效地分配文件的存儲(chǔ)空間。
③建立文件目錄。
④提供合適的存取方法以適應(yīng)各種不同的應(yīng)用。
⑤實(shí)現(xiàn)文件的共享、保護(hù)和保密。
⑤提供一組文件操作。
3.什么是文件的邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)?
答:用戶是從使用的角度來(lái)組織文件,用戶把能觀察到的且可以處理的信息根據(jù)使用要求構(gòu)造成文件,這種構(gòu)造方式稱為文件的邏輯結(jié)構(gòu)。文件系統(tǒng)是從文件的存儲(chǔ)和檢索的角度來(lái)組織文件,在存儲(chǔ)媒介上的文件構(gòu)造方式稱為文件的存儲(chǔ)結(jié)構(gòu)。
4.解釋順序文件、鏈接文件和索引文件。
答:(1)順序結(jié)構(gòu)
將一個(gè)文件邏輯上連續(xù)信息存放在存儲(chǔ)介質(zhì)(磁盤)中相鄰的塊上,這種存儲(chǔ)結(jié)構(gòu)保證了邏輯記錄順序和物理塊順序相一致。磁帶上的文件只能是順序結(jié)構(gòu)的,因?yàn)榇艓C(jī)本身就是個(gè)順序存取的設(shè)備。
(2)鏈接結(jié)構(gòu)(串聯(lián)結(jié)構(gòu))
文件所占用的存儲(chǔ)介質(zhì)物理塊不再要求連續(xù)(相鄰)的,可以分散在存儲(chǔ)媒介上。在結(jié)構(gòu)上,采用鏈表的結(jié)構(gòu)方式,將每一塊的最后一個(gè)單元用來(lái)存放下一個(gè)物理塊的地址,形成指針鏈。最后一塊的最后一個(gè)單元為0表示結(jié)束。
(3)以索引結(jié)構(gòu)
和鏈接結(jié)構(gòu)一樣,也是一個(gè)非連續(xù)存儲(chǔ)的結(jié)構(gòu),但它不采用鏈接方式,而是為每一個(gè)文件建立一張索引表,索引表中存放文件中每一個(gè)記錄存放的物理地址。
5.解釋記錄的成組和分解
答:當(dāng)文件的一個(gè)邏輯記錄的長(zhǎng)度小于一個(gè)物理塊的長(zhǎng)度的時(shí)候,我們可以把若干個(gè)邏輯記錄合并成一組存到一個(gè)物理塊中,這個(gè)工作稱為成組。訪問(wèn)某個(gè)記錄的時(shí)候,需要把這個(gè)記錄從它所在的塊中的一組記錄中分離出來(lái),這一工作稱為分解。記錄的成組和分解可以提高存儲(chǔ)空間的利用率,并且可以減少存儲(chǔ)設(shè)備的啟動(dòng)次數(shù)。
6.假定某個(gè)文件由長(zhǎng)度為80個(gè)字符的100個(gè)邏輯記錄組成,磁盤存儲(chǔ)空間被劃分成長(zhǎng)度為2048個(gè)字符的塊,為有效地使用磁盤空間,你可采用成組方式把文件存放到磁盤上,回答下列問(wèn)題:
①該文件至少占用多少磁盤存儲(chǔ)塊?
②若該文件是以鏈接結(jié)構(gòu)形式在磁盤上的,現(xiàn)用戶要求使用第28個(gè)邏輯記錄,寫出系統(tǒng)為滿足用戶要求而應(yīng)做的主要工作。
答:①每塊能存放的記錄個(gè)數(shù)為「2048/80」=25個(gè)。一共需要 100/25=4塊。
②首先系統(tǒng)計(jì)算出第28個(gè)記錄在第2個(gè)物理塊上,然后系統(tǒng)通過(guò)文件目錄讀出第一塊物理塊,在該塊最后單元找到第二物理塊的地址,讀出第二物理塊,再經(jīng)過(guò)肇按第28個(gè)記錄在第二塊中的位置讀出該記錄。
7.舉一例說(shuō)明數(shù)據(jù)的分解操作過(guò)程。
答:就以上題為例,假定某個(gè)文件由長(zhǎng)度為 80個(gè)字符的 100個(gè)邏輯記錄組成,磁盤存儲(chǔ)空間被劃分成長(zhǎng)度為2048個(gè)字符的塊,為有效地使用磁盤空間,采用成組方式把文件存放到磁盤上,現(xiàn)用戶要求每次讀一個(gè)邏輯記錄到他的工作區(qū)中,當(dāng)對(duì)該邏輯記錄處理后,要求把下一個(gè)邏輯記錄讀人到工作區(qū),直到連續(xù)讀出8個(gè)記錄。
由于主存儲(chǔ)器與外存之間的信息交換是以塊為單位的,所以應(yīng)當(dāng)在主存中開(kāi)辟一個(gè)2048字節(jié)的緩沖區(qū)。由上題可知每塊中含有25個(gè)記錄,文件一共占用4塊,用戶在指明了要讀人記錄的記錄號(hào)N后,根據(jù)公式[N/25」得到該記錄應(yīng)該在4塊的哪一塊中,將該塊讀人到緩沖區(qū)中,并根據(jù)公式(N/25)得到該記錄是塊內(nèi)的第幾個(gè)記錄(式中[]表示取整,()表示取余數(shù)),將該記錄從緩沖區(qū)拷貝到用戶工作區(qū),然后 N+l,如果[(N+1)/25]=[N/25],則將緩沖區(qū)中的下一個(gè)記錄拷貝到用戶工作區(qū),而無(wú)需啟動(dòng) I/O操作,否則,按照新的塊號(hào)將一個(gè)數(shù)據(jù)塊讀進(jìn)緩沖區(qū),并將記錄從緩沖區(qū)拷貝到用戶工作區(qū)。
8.頁(yè)式存儲(chǔ)管理中用位示圖表示主存空間的分配情況,磁盤存儲(chǔ)空間的分配也可用位示圖來(lái)表示,兩者能合用一張位示圖嗎?
答:不行,主存空間和磁盤存儲(chǔ)空間是兩種不同的存儲(chǔ)空間,應(yīng)該使用不同的位示圖來(lái)表示分配情況。
9.為了實(shí)現(xiàn)按名存取,文件目錄應(yīng)包含哪些內(nèi)容?
答:為了實(shí)現(xiàn)按名存取,文件目錄至少要包括文件的名字和文件存放的物理地址,除此之外,目錄中還可以包含其他的控制和管理文件的信息,如:文件類型、記錄長(zhǎng)度、記錄個(gè)數(shù)、口令、建立日期、保存期限、上次修改時(shí)間等。
10.怎樣才能防止不同的用戶可能給各自的文件取了相同的名字而造成混亂?
答:可以采用二級(jí)目錄或多級(jí)目錄結(jié)構(gòu)。在主目錄中登記每個(gè)用戶的名字和用戶文件目錄的存放地址;在第二級(jí)用戶文件目錄中登記用戶的每個(gè)文件的文件名及文件存放位置。這樣,不同的用戶有同名文件時(shí),由于文件的路徑是不一樣的,所以不會(huì)產(chǎn)生混亂。多級(jí)目錄是在二級(jí)目錄的基礎(chǔ)上,在用戶目錄下,根據(jù)項(xiàng)目和應(yīng)用領(lǐng)域再建立子目錄和孫目錄,這樣可以避免同一個(gè)用戶的同名文件造成的混亂。
11.有一個(gè)文件可供兩個(gè)用戶共享,但這兩個(gè)用戶卻對(duì)這個(gè)文件定義了不同的名字,為了保證兩個(gè)用戶都能存取該文件,應(yīng)怎樣設(shè)置文件目錄?簡(jiǎn)單畫出目錄結(jié)構(gòu)關(guān)系且解釋之。
答:采用二級(jí)目錄結(jié)構(gòu)。如圖4-3所示,用戶 zhangshan和用戶 lisi對(duì)一個(gè)共享文件分別定義了不同的名字ww和pw,只要在它們各自的目錄表中把相應(yīng)的文件存放地址填上共享文件在存儲(chǔ)介質(zhì)上的起始位置,當(dāng)用戶zhangshan存取ww文件,用戶lisi存取pw文件時(shí),文件系統(tǒng)按照目錄查找文件時(shí)得到相同的文件存放位置。于是各用戶使用了不同的文件名,卻仍能共享同一文件。
12.總結(jié)文件的存取方法、文件的存儲(chǔ)結(jié)構(gòu)、存儲(chǔ)設(shè)備類型之間的關(guān)系。
答:文件的存取方法有兩種:順序存取和隨機(jī)存取。文件的存取方法決定了文件的存儲(chǔ)結(jié)構(gòu),它們的關(guān)系如表4-1所示。
13.文件系統(tǒng)提供的主要文件操作有哪些?
答:文件系統(tǒng)提供的主要文件操作有以下幾種:
①‘建立“操作。用戶要求把一個(gè)新文件存放到存儲(chǔ)介質(zhì)上時(shí),首先要向系統(tǒng)提出”建立“要求。系統(tǒng)在接到用戶的”建立“要求后,在文件目錄中尋找空目錄項(xiàng)進(jìn)行登記
②“打開(kāi)”操作。用戶要使用存放在存儲(chǔ)介質(zhì)上的文件前,必需提出“打開(kāi) ”要求。系統(tǒng)在接到用戶的“打開(kāi)”要求后,找到該用戶的文件目錄,如果文件目錄在外存上,還要把它調(diào)入到主存,然后從文件目錄中找到與用戶的需求相符合的目錄項(xiàng),取出文件存放的物理地址。如果是索引文件,還要將這個(gè)文件的索引表也調(diào)入到主存中,這樣,后繼的讀操作能夠很快地進(jìn)行。
③“讀/寫”操作。用戶調(diào)用這個(gè)操作來(lái)讀/寫文件,系統(tǒng)只允許用戶對(duì)已經(jīng)過(guò)“打開(kāi)”或“建立”操作的文件進(jìn)行讀/寫。對(duì)順序存取方式的文件,用戶只需給出讀/寫的文件名,而無(wú)需給出讀/寫記錄的編號(hào),系統(tǒng)執(zhí)行本操作的時(shí)候,每次順序讀/寫一個(gè)或幾個(gè)邏輯記錄。對(duì)于采用隨機(jī)方式的文件,用戶除了要給出需讀/寫的文件名外,還要給出需讀/寫記錄的編號(hào)(或主鍵),系統(tǒng)執(zhí)行讀操作的時(shí)候,按指定的記錄號(hào)(或鍵)查索引表,得到記錄存放的物理地址后,按地址將記錄讀出;執(zhí)行寫操作的時(shí)候,在索引表找到一個(gè)空登記項(xiàng)且找一個(gè)空閑的存儲(chǔ)塊,把記錄存人找到的存儲(chǔ)塊中,同時(shí)在索引表中登記
④“關(guān)閉”操作。經(jīng)過(guò)“打開(kāi)”或“建立”的文件,在讀/寫完畢后,需要執(zhí)行“關(guān)閉”操作。執(zhí)行關(guān)閉操作時(shí)要檢查讀到主存儲(chǔ)器中的文件目錄或索引表是否被改變,如果改過(guò),則應(yīng)把修改過(guò)的文件目錄或索引表重新保存好。一個(gè)關(guān)閉后的文件不能再使用,如果要使用,必須重新執(zhí)行“打開(kāi)”操作。用戶提出“關(guān)閉”要求時(shí),必須說(shuō)明關(guān)閉哪個(gè)文件。
⑤“刪除”操作。用戶用本操作向系統(tǒng)提出刪除一個(gè)文件的要求,系統(tǒng)執(zhí)行時(shí)把指定文件的名字從目錄和索引表中除取,并收回它所占用的存儲(chǔ)區(qū)域。
14.文件系統(tǒng)中為什么要設(shè)置“建立”、“打開(kāi)”和“關(guān)閉”操作?
答:要把一個(gè)文件存放到存儲(chǔ)介質(zhì)上或使用一個(gè)已經(jīng)建立在某存儲(chǔ)介質(zhì)上的文件前,首先應(yīng)該把文件的屬性(文件名、文件類型、可訪問(wèn)性、記錄大小等),文件的管理信息(口令、建立日期、保存期限等)以及存取方式,通過(guò)特定的形式告訴文件系統(tǒng)?!敖ⅰ薄!按蜷_(kāi)”和“關(guān)閉”操作就是為此目的而設(shè)置的。
用“建立”操作向系統(tǒng)提出生成一個(gè)新文件的要求。
用“打開(kāi)”操作向系統(tǒng)申請(qǐng)讀一指定文件的權(quán)力。
用“關(guān)閉”操作表示已經(jīng)不再要讀/寫某個(gè)文件了,向系統(tǒng)歸還使用文件的權(quán)力。
15.當(dāng)用戶要讀一個(gè)尚未打開(kāi)的文件的時(shí)候,系統(tǒng)怎么處理?
答:當(dāng)用戶要讀一個(gè)文件的時(shí)候,系統(tǒng)先要驗(yàn)證該用戶是否有使用權(quán)力,所以任何一個(gè)用戶如果要讀文件前都要執(zhí)行“打開(kāi)”操作。系統(tǒng)不允許隱式使用,那么當(dāng)讀一個(gè)還沒(méi)有打開(kāi)的文件,系統(tǒng)不會(huì)執(zhí)行讀操作,而是返回一個(gè)“文件未打開(kāi)”的錯(cuò)誤信息。如果系統(tǒng)允許隱式使用,那么系統(tǒng)將會(huì)替用戶做打開(kāi)文件的工作。
16.文件系統(tǒng)能允許用戶去“關(guān)閉”一個(gè)不是自己“打開(kāi)”或“建立”的文件嗎?
答:不能!一個(gè)不是自己“打開(kāi)‘域”建立“的文件,是沒(méi)有權(quán)力使用和強(qiáng)行關(guān)閉的。