Chương 4: Quản lý tệp tin trong Bài giảng Hệ điều hành nhằm giới thiệu đến bạn đọc những nội dung quan niệm về quản lý tệp tin, hệ thống tệp tin, tên tệp tin, thuộc tính tệp tin và cơ chế bảo vệ, các chức năng tệp tin,..Mời các bạn tham khảo nội dung chi tiết.
Trang 1CHƯƠNG 4: QU N LÝ T P TINẢ Ệ
4.0. Quan ni m v qu n lý t p tin ệ ề ả ệ (Files Manager)
vi c b gãy m t ti n trình hay sau khi hoàn thành m t ti n trình, m t câu
h i đỏ ược đ t ra là: B n l u tr d li u c a b n nh th nào, đ sau này, b nặ ạ ư ữ ữ ệ ủ ạ ư ế ể ạ
có th làm vi c tr l i v i cái b n đã có? Tính ch t này c a d li u g i là cể ệ ở ạ ớ ạ ấ ủ ữ ệ ọ ố
đ nh d li u, ngị ữ ệ ười ta đ t đạ ược khi d li u đữ ệ ược vi t vào b nh qu ng đ iế ộ ớ ả ạ
trước khi k t thúc chế ương trình. Tuy nhiên, chúng ta v n còn m t v n đ : ẫ ộ ấ ề Ở
ph n l n b nh qu ng đ i, danh sách các t p tin quá dài, y nh ng ngầ ớ ộ ớ ả ạ ệ ấ ư ười ta
mu n th i gian truy c p ph i ng n. Do đó, trố ờ ậ ả ắ ường h p này ch có th d n t iợ ỉ ể ẫ ớ
m t cách th c t ch c t p tin đ qu n lý các t p d li u trong h th ng máyộ ứ ổ ứ ệ ể ả ệ ữ ệ ệ ố tính
M t b ng nh th thì không khác m y m t ngân hàng d li u. N u chúng taộ ả ư ế ấ ộ ữ ệ ế
d n t i m i thu c tính d li u và k c các tác v (nh các th t c, cácẫ ớ ỗ ộ ữ ệ ể ả ụ ư ủ ụ
phương pháp ti n hành…), mà nó đế ược x lý, do đó, chúng ta nh n đử ậ ược m tộ ngân hàng d li u hữ ệ ướng đ i tố ượng. Ngoài ra, n u chúng ta có các đ i tế ố ượ ng
âm thanh và hình nh, mà chúng đả ược m t chộ ương trình sinh ra hay được sử
d ng, lúc đó, chúng ta c n dùng m t ngân hàng d li u đa phụ ầ ộ ữ ệ ương d ngụ
(multimedia databank), trong đó, thông tin được ch a đ ng đ làm đ ng b haiứ ự ể ồ ộ
phương d ng. M t cách khái quát, khi không có đ i tụ ộ ố ượng nào thì vi c đi uệ ề hành khi l u tr d li u c đ nh đư ữ ữ ệ ố ị ược phát tri n; còn đ i v i các ngân hàng dể ố ớ ữ
li u l n thì h th ng đi u hành c s d li u hệ ớ ệ ố ề ơ ở ữ ệ ướng đ i tố ượng được phát tri n.ểChúng ta có th s d ng t t c các c c u có trên danh m c các t p tin c aể ử ụ ấ ả ơ ấ ụ ệ ủ
b nh qu ng đ i, các c ch này độ ớ ả ạ ơ ế ược tìm th y đ t ch c m t cách hi u quấ ể ổ ứ ộ ệ ả các ngân hang d li u hình cây; v i c u trúc này, ngữ ệ ớ ấ ười ta có th tìm ki m r tể ế ấ nhanh các t p tin v i m t d u hi u xác đ nh (ngày tháng t o l p t p tin, tên tácệ ớ ộ ấ ệ ị ạ ậ ệ
gi …).ả
Tuy nhiên, chúng ta ph i quan tâm t i v n đ , mà chúng liên quan đ n ngânả ớ ấ ề ế hàng d li u. M t v n đ c b n là s c đ nh d li u: N u chúng ta t o l p,ữ ệ ộ ấ ề ơ ả ự ố ị ữ ệ ế ạ ậ
lo i b hay thay đ i các d li u c a m t t p tin trên b nh qu ng đ i, do đó,ạ ỏ ổ ữ ệ ủ ộ ệ ộ ớ ả ạ
đi u đó ph i đề ả ược gi i thích trong b ng danh m c các d li u. N u tác vả ở ả ụ ữ ệ ế ụ này b b gãy, thí d vì m t lý do nào đó, ti n trình vi t b b gãy (thí d khiị ẽ ụ ộ ế ế ị ẻ ụ
Trang 2m t ngu n đi n), do đó, d li u trong b ng danh m c thì không còn thích h pấ ồ ệ ữ ệ ở ả ụ ợ
n a. các tác v ti p theo, ngữ Ở ụ ế ười ta đã làm quen m t c c u quan tr ng ộ ơ ấ ọ ở trong m c 2.3.2, đó là vi c k t h p nhi u tác v thành m t ho t đ ng nhân t ụ ệ ế ợ ề ụ ộ ạ ộ ử
Đ phát hi n nh ng sai sót c a h th ng t p tin, t t c các tác v trên danhể ệ ữ ủ ệ ố ệ ấ ả ụ ở
m c t p tin ph i đụ ệ ả ược th c thi v i t cách là nh ng ho t đ ng nhân t ự ớ ư ữ ạ ộ ử
Vi c ký hi u tên t p tin v i m t cái tên có ghép thêm nh ng ch s là m tệ ệ ệ ớ ộ ữ ữ ố ộ
s tr giúp quan tr ng đ i v i ngự ợ ọ ố ớ ườ ử ụi s d ng. Trong b ng danh m c các t p tinả ụ ệ hình 4.1 có th t n t i 2 t p tin v i các tên gi ng nhau Teptin1.dat và Teptin2
dat; chúng ch khác nhau b i m t ch s , do đó, đ i v i vi c qu n lý t p tin,ỉ ở ộ ữ ố ố ớ ệ ả ệ chúng khác nhau rõ ràng. Hình 4.2 ch ra s đ t ch c qu n lý t p tin. đây,ỉ ơ ồ ổ ứ ả ệ Ở
m i t p tin có th đ ng đ c l p (T p tin X), ho c có th thu c m t nhóm cácỗ ệ ể ứ ộ ậ ệ ặ ể ộ ộ
t p tin (T p tin 1, T p tin m…)ệ ệ ệ
Hình 4.2
Các nhóm nh có th g p l i thành nhóm l n h n tu thu c vào ngỏ ể ộ ạ ớ ơ ỳ ộ ườ ử i s
d ng, sao cho nó tr thành c u trúc cây đ s d ng. Ki u t ch c t p tin này thìụ ở ấ ể ử ụ ể ổ ứ ệ
r t ph bi n. Các đ i di n nhóm đấ ổ ế ạ ệ ược bi u thì là m t th m c.ể ộ ư ụ
M t ki u t ch c qu n lý các t p tin nh th độ ể ổ ứ ả ệ ư ế ược dùng đ t ch c ngânể ổ ứ hàng
d li u, mà trong đó, t t c các t p tin đữ ệ ấ ả ệ ược mô t v i các tính ch t và cácả ớ ấ
hi n th n i dung. S l u ý v các t p tin thì t n t i trong m t th m c dể ị ộ ự ư ề ệ ồ ạ ở ộ ư ụ ữ
li u. Trong h u h t các h đi u hành, nh ng h th ng t p tin có s đ đ nệ ầ ế ệ ề ữ ệ ố ệ ơ ồ ơ
4.2. Tên t p tin ệ (Filesname)
D li u c a các ti n trình không ch ph i đữ ệ ủ ế ỉ ả ược b o v b n v ng trên bả ệ ề ữ ở ộ
nh qu ng đ i, mà đ c bi t ph i t o kh năng truy c p qua các ti n trình khácớ ả ạ ặ ệ ả ạ ả ậ ế nhau, do đó, m i t p tin đỗ ệ ược bi u th m t t khoá rõ ràng. Vì cách t ch c hể ị ộ ừ ổ ứ ệ
th ng qu n lý t p tin h u h t do con ngố ả ệ ầ ế ười th c hi n, cũng gi ng nh vi c l pự ệ ố ư ệ ậ trình các ti n trình đ truy c p các t p tin, tên c a t p tin có th gi ng nhau, chế ể ậ ệ ủ ệ ể ố ỉ khác, m i t p tin có thêm m t con s , coi nh bi u th m t khoá tỗ ệ ộ ố ư ể ị ộ ượng tr ng…,ư thí d Vanban1.doc, Vanban2.doc…Cách làm này có l i cho vi c qu n lý n i bụ ợ ệ ả ộ ộ
Trang 3các t p tin (v trí, dung lệ ị ượng) m t cách d dàng. T p tin có th độ ễ ệ ể ược thi hành hay được đ t t i m t ch nào đó tron b nh mà t p tin v n không b thayặ ạ ộ ỗ ở ộ ớ ệ ẫ ị
đ i.ổ
4.2.1 Ki u t p tin và t o tên t p tinể ệ ạ ệ
M t cách truy n th ng, nói chung tên t p tin g m hai ph n, chúng độ ề ố ệ ồ ầ ượ cngăn cách nhau b ng m t d u ch m: phía trái d u ch m là tên riêng, còn bênằ ộ ấ ấ ấ ấ
ph i là ph n m r ng (ả ầ ở ộ extension). Ph n m r ng này cho th y m t s tr giúpầ ở ộ ấ ộ ự ợ
v m c đích s d ng c a t p tin. Thí d tên m t t p tin Vanban.txt, ý nói: t pề ụ ử ụ ủ ệ ụ ộ ệ ệ tin Vanban có ki u m r ng txt là m t lo i t p tin text để ở ộ ộ ạ ệ ược c u thành b i cácấ ở
ký t theo chu n ASCII. Có nh ng quy ự ẩ ữ ước khác nhau cho ph n m r ng, thí dầ ở ộ ụ
nh sau:ư
.dat cho d li u ho c vi c t o ki u d ng ph thu c vào chữ ệ ặ ệ ạ ể ạ ụ ộ ương trình t oạ
l p;ậ
.doc cho các văn b n text ho c vi c t o d ng theo ki u so n th o text;ả ặ ệ ạ ạ ể ạ ả
.pas cho mã ngu n c a chồ ủ ương trình vi t b ng ngôn ng PASCAL;ế ằ ữ
.c cho mã ngu n c a chồ ủ ương trình vi t b ng ngôn ng C;ế ằ ữ
.h các t p tin khai báo cho các chệ ương trình vi t b ng ngôn ng C;ế ằ ữ
.ps các t p tin ngôn ng l nh đ ho cho máy in Laser;ệ ữ ệ ồ ạ
.tar m t h th ng t p tin l u tr trong m t t p tin;ộ ệ ố ệ ư ữ ộ ệ
.html t p tin văn b n ASCII cho h th ng text đ c bi t c a trang WEB;ệ ả ệ ố ặ ệ ủ
.Z ; .zip; .gz cho các t p tin nén l i;ậ ạ
.jog; .gi; .ti; .bmp cho các t p tin v nh.ệ ề ả
Người ta ghi nh r ng, ph n m r ng c a t p tin ch a đ ng ch m t ít ho cớ ằ ầ ở ộ ủ ệ ứ ự ỉ ộ ặ
ch th nh tho ng nh ng ký t c x a. Đi u đó đỉ ỉ ả ữ ự ổ ư ề ược lý gi i r ng, đ i v i m tả ằ ố ớ ộ
h th ng t p tin thông thệ ố ệ ường cho phép vài ký t làm ph n m r ng và m cự ầ ở ộ ặ khác, nó thu n ti n cho ngậ ệ ườ ử ụi s d ng không ph i vi t quá nhi u.ả ế ề
Có r t nhi u ki u ph n m r ng, mà chúng đấ ề ể ầ ở ộ ượ ạc t o b i h th ng ngở ệ ố ườ ử i s
d ng và chúng cũng ph c v cho vi c phân nhóm các t p tin. Vì tên t p tin nóiụ ụ ụ ệ ệ ệ chung là tu ý và có th đỳ ể ượ ử ục s d ng thay đ i, do đó, nh ng ngổ ữ ườ ậi l p trình
đ u đã chú ý t i cái đó, nh m làm cho t p tin ch rõ công d ng c a chúng. ề ớ ằ ệ ỉ ụ ủ Ở
đ u t p tin, m t hay nhi u ki u ch s o (ầ ệ ộ ề ể ữ ố ả magic number) được vi t, mà chúngế cho phép m t đ c tính chính xác c a n i dung t p tin.ộ ặ ủ ộ ệ
Thí d v tên t p tin trong Unix ụ ề ệ ở :
Tên t p tin trong h đi u hành Unix, có th có t i 255 ký t V i Unixệ ở ệ ề ể ớ ự ớ version V, s ký t c a tên t p tin có ít h n 14 ký t cho ph n chính và 10 ký tố ự ủ ệ ơ ự ầ ự cho ph n m r ng. Các t p tin th c thi trong Unix có c u trúc nh sau:ầ ở ộ ệ ự ở ấ ư
TYPE File Header = RECORD
a_magic: LONG CARDINAL {s o}ố ả
Trang 4a_txt: CARDINAL {đ l n c a Codesegment}ộ ớ ủ
a_data: CARDINAL {đ l n Segment c a các d li u kh iộ ớ ủ ữ ệ ở
xướng}
a_bss: CARDINAL{đ l n Segment c a các d li u không kh iộ ớ ủ ữ ệ ở
xướng}
a_syms: CARDINAL {đ l n b ng bi u tr ng Symboltable}ộ ớ ả ể ư
a_entry: CARDINAL {s b t đ u c a chự ắ ầ ủ ương trình}
…
END
Tuy nhiên, m t s o đ ng đ u tên t p tin; chúng không ch d n t i s gi iộ ố ả ứ ầ ệ ỉ ẫ ớ ự ả thích v đi u đó (cho th y t p tin có th th c thi), mà còn, b ng phề ề ấ ệ ể ự ằ ương pháp nào t p tin đệ ược th c hi n:ự ệ
a_magic= 407B {t o d ng t t c : mã không đ ạ ạ ấ ả ượ c b o v cũng không đ ả ệ ượ ử ụ c s d ng cho 1
ti n trình khác} ế a_magic= 410B {TextSegment đ ượ c b o v Data Segment đ ả ệ ượ c đ t gi i h n trang ặ ở ớ ạ
cu i cùng (4kB) trong b nh } ố ở ộ ớ a_magic= 413B {Text Segment b t đ u gi i h n 4kB c a t p tin; Text và Data ắ ầ ở ớ ạ ủ ệ
Segment là b i s c a 4kB} ộ ố ủ
Đ phân bi t các lo i t p tin khác nhau, đó là s đánh giá v kh năng cóể ệ ạ ệ ự ề ả
th th c thi khi kh i đ ng t p tin. Lo i phân bi t này thì r t đ c bi t. Sau đâyể ự ở ộ ệ ạ ệ ấ ặ ệ chúng ta kh o sát vài thí d v ki u phân bi t t p tin này.ả ụ ề ể ệ ệ
Thí d v ki u và tên t p tin ụ ề ể ệ :
Trong Unix hay trong Windows NT, ki u cách m t t p tin để ộ ệ ược bi u th nhể ị ờ
m t cái tên. Thí d tên t p tin Script.ps.gz có ý nghĩa: đó là m t t p tin nguyênộ ụ ệ ộ ệ
b n (Script), mà n b n c a nó đã đả ấ ả ủ ược nén l i d ng tái bút (postscript) v iạ ở ạ ớ
chương trình nén zip. Đ đ c để ọ ượ ệc t p tin này, đ u tiên, ngầ ười ta ph i g iả ọ
chương trình gunzip, và sau đó, t p tin chuy n t i cho máy in Postscript. K tệ ể ớ ế
qu ch d n là s c i biên: nó không ch ch a đ ng trong t p tin, mà còn ch aả ỉ ẫ ự ả ỉ ứ ự ệ ứ
đ ng trong ki u t p tin đự ở ể ệ ược nén. Đ i v i t p tin này, n u ki u t p tin đố ớ ệ ế ể ệ ượ c
ch d n trong th m c, do đó, ngỉ ẫ ư ụ ười ta có th th c hi n tác v th hai. Vi c t oể ự ệ ụ ứ ệ ạ
ki u t p tin ph i để ệ ả ược c t nghĩa trong t p tin hay nó ph i là ki u b i s x pắ ở ệ ả ể ở ự ế nhi u l n c a các ki u. Đi u đó ch có th nói g n là: ph i gi i thích ki u m iề ầ ủ ể ề ỉ ể ọ ả ả ể ớ
l p rõ ràng và ph i đ a vào nh ng ho t đ ng thích h p cho các ki u đó.ậ ả ư ữ ạ ộ ợ ể
Thí d v ki u t p tin và các ho t đ ng ch ụ ề ể ệ ạ ộ ươ ng trình trong Unix ở :
trong h đi u hành Unix có m t giao di n đ ho ng i s d ng, m t s
Trang 5chu t ph i. Khi kích đôi chu t trái t i tên t p tin, thì ho t đ ng độ ả ộ ở ạ ệ ạ ộ ược d n raẫ trong Menu s b t đ u kh i đ ng.ẽ ắ ầ ở ộ
Thí d v ki u t p tin và ho t đ ng ch ụ ề ể ệ ạ ộ ươ ng trình Windows NT ở :
Dướ Windows NT có trình so n th o Editor, trình này qu n lý m t ngâni ạ ả ả ộ hàng d li u riêng c a t t c các ng d ng, b kích t o h đi u hành và cácữ ệ ủ ấ ả ứ ụ ộ ạ ệ ề
c u hình h th ng…T t c các chấ ệ ố ấ ả ương trình trong h th ng cũng nh cácở ệ ố ư
ph n m r ng đ u đầ ở ộ ề ược khai báo đó. Khi kích đôi chu t trái t i trên m t t pở ộ ạ ộ ệ tin trong trình qu n lý t p tin thì m t chở ả ệ ộ ương trình được g i.ọ
Người ta l u ý r ng, trong hai thí d v a nêu, thông tin v ki u t p tinư ằ ụ ừ ề ể ệ
thường không được h đi u hành qu n lý, mà nó t n t i trong các t p tin đ cệ ề ả ồ ạ ệ ặ
bi t hay đệ ược ch a đ ng và đứ ự ược qu n lý v i các chả ớ ương trình đ c bi t. Đi uặ ệ ề
đó thì không có v n đ gì. Ki u t t nh t cho vi c qu n lý các t p tin là t ch cấ ề ể ố ấ ệ ả ệ ổ ứ
t t c t p tin thành m t ngân hàng d li u t ng th ; trong đó, các tính ch t bấ ả ệ ộ ữ ệ ổ ể ấ ổ sung c a các t p tin đủ ệ ược th c hi n nh các đ c tính b sungự ệ ờ ặ ổ
M t v n đ khác là vi c làm sáng t s tham chi u t p tin, n u các t p tin ộ ấ ề ệ ỏ ự ế ệ ế ệ ở trong h th ng qu n lý files thì cho phép tên t p tin dài; nh ng khi ng d ngệ ố ả ệ ư ứ ụ (khi th c thi), t p tin ch có th đự ệ ỉ ể ược phép ng n l i. Thí d có hai tên t p tinắ ạ ụ ệ MethodeForUser.txt và MethodeForEvery.txt cùng t n t i trong h th ng t pồ ạ ở ệ ố ệ tin. Khi hai t p tin mu n th c thi, thì 8 ký t đ u tiên đệ ố ự ự ầ ượ ưc l u ý. Trong trườ ng
h p này, 8 ký t đ u tiên c a hai t p tin gi ng nhau. Do v y, đây, m tợ ự ầ ủ ệ ố ậ ở ộ
phương pháp được tìm th y cho phép s p x p các t p tin đấ ắ ế ệ ược rõ ràng h n.ơ
Thí d v s chuy n đ i tên t p tin trong Windows NT ụ ề ự ể ổ ệ :
Vì h đi u hành ệ ề Windows NT có th qu n lý c các h th ng t p tin DOSể ả ả ệ ố ệ bên c nh h th ng t p tin NTFS (windows NT File System). Cho nên, đây v nạ ệ ố ệ ở ấ
đ đ t ra là ph i chuy n đ i các t p tin có tên dài trong h th ng NTFS thànhề ặ ả ể ổ ệ ệ ố tên t p tin rõ ràng trong h th ng MSDOS. Đi u này đ t đệ ệ ố ề ạ ược b ng các gi iằ ả thu t sau đây:ậ
(1) T t c các ký t c a tên t p tin không h p lý trong MSDOS đấ ả ự ủ ệ ợ ở ượ cchuy n đ i thành tên t p tin trong h th ng NTFS b ng cách c t b : các ký tể ổ ệ ệ ố ằ ắ ỏ ự
tr ng, 16 ký t c a 16 Bit Unicode, các đi m đ u, cu i và trong kho ng tênố ự ủ ể ở ầ ở ố ả
t p tin.ệ
(2) T t c 6 ký t đ u tiên c a chu i ký t đ ng trấ ả ự ầ ủ ỗ ự ứ ước d u ch m phânấ ấ
đo n ph n m r ng đạ ầ ở ộ ược c t b ; và sau đó, ký hi u ~1 đắ ỏ ệ ược thay vào trướ c
đi m phân đo n ph n m r ng. Chu i ký t sau đi m phân đo n ph n m r ngể ạ ầ ở ộ ỗ ự ể ạ ầ ở ộ
ch đ l i 3 ký t , các ký t cu i ph n này c t b và chu i ký t còn l iỉ ể ạ ự ự ở ố ầ ắ ỏ ỗ ự ạ chuy n thành chu i các ch cái l n.ể ỗ ữ ớ
(3) N u có m t t p tin, mà nó ch ra s gi ng nhau v i t p tin khác, doế ộ ệ ỉ ự ố ớ ệ
đó, thay vì ký hi u ~1, ký hi u ~2 đệ ệ ược thay vào ch đó. N u t p tin này đã t nỗ ế ệ ồ
t i, thì thay b ng ký hi u ~3 hay ~4 cho đ n khi không t n t i s gi ng nhau.ạ ằ ệ ế ồ ạ ự ố
Trang 64.2.2. Tên đường d nẫ
Qua s đ s p x p các t p tin, vi c bi u di n tên t p tin rõ ràng t o ra khơ ồ ắ ế ệ ệ ể ễ ệ ạ ả năng đ s p x p các nút có d ng hình cây, nh v y, m t để ắ ế ạ ờ ậ ộ ường d n đi t i m tẫ ớ ộ
t p tin đệ ược th c hi n thu n ti n. Tên đự ệ ậ ệ ường d n c a m t t p tin đẫ ủ ộ ệ ượ ạ c t o
l p t m t chu i các tên nút và ch a đ ng ký t tách chia gi a các tên nút. Đó làậ ừ ộ ỗ ứ ự ự ữ
m t d u hi u đ c bi t, nó là bi u tộ ấ ệ ặ ệ ể ường tiêu bi u cho m i h đi u hành. Thíể ỗ ệ ề
d trong hình 4.3, tên t p tin Vanban1.txt có đụ ở ệ ường d n trong h đi u hànhẫ ệ ề Unix:
Institut5/Rudi/Vanban1.txt
còn trong h đi u hành Windows NT có d ng:ở ệ ể ạ
Institut5/Rudi/Vanban1.txt
V đi u đó, do có s k t n i ngang, nên có nhi u tên đề ề ự ế ố ề ường d n cho m tẫ ộ
t p tin, thí d đ i v i t p tin Briefvorlage.dot có các đệ ụ ố ớ ệ ường d n:ẫ
Institut5/Rudi/briefvorlage.dot và Congty/Dieuhanh/briefvorlage.dot
Nh ng nút trên c a h th ng cây th m c t p tin đữ ở ủ ệ ố ư ụ ệ ược g i là g c, nóọ ố
được bi u th b i m t bi u tr ng đ c bi t: d u xiên trái(/) trong Unix, d uể ị ở ộ ể ư ặ ệ ấ ở ấ xiên ph i (\) trong Windows NT. Khi thông d ch tên t p tin, nó đả ở ị ệ ược th c hi nự ệ
t ng bừ ướ ừ ước t d i lên trên theo hướng g c cây th m c t p tin. Thí d trongố ư ụ ệ ụ hình 4.3, t p tin Brief.doc th m c Rudi mà c th m c Hans, tên đệ ở ư ụ ả ở ư ụ ườ ng
d n c a nó đẫ ủ ược bi u di n m i d u đ i di n cho m t th m c nào đó:ể ễ ỗ ấ ạ ệ ộ ư ụ
/ /Rudi/Brief1.doc
Tên đường d n tẫ ương đ i b t đ u t m t v trí nào đó c a cây t i t p tin.ố ắ ầ ừ ộ ị ủ ớ ệ Tên đường d n tuy t đ i đẫ ệ ố ược bi u th t g c đ n ng n là tên t p tin. Thí d ể ị ừ ố ế ọ ệ ụ ở trong hình 4.4 ch ra m t đỉ ộ ường d n tẫ ương đ i /Daten/Dat1.a v i t p tinố ớ ệ Dat1.a c a chủ ương trình Prog
người ta có th n i ngang qua gi a các t p tin b i lênh “ln”.ể ố ữ ệ ở
Đ i v i đ c đi m c a s đ tên, ngố ớ ặ ể ủ ơ ồ ười ta ph i phân bi t, các th m c đãả ệ ư ụ
được thu x p v i các tên t p tin trên đĩa hay ch a (?). N u chúng đã đế ớ ệ ổ ư ế ược thu
x p, do đó, m t s n i ngang tr c ti p là có th Trế ộ ự ố ự ế ể ường h p này g i là k t n iợ ọ ế ố
v t lý hay k t n i c ng. N u ngậ ế ố ứ ế ượ ạc l i, chúng được thu x p khác nhau trên ế ổ
Trang 7đĩa, do đó, người ta có th thi t đ t m t s n i ngang logic và d n ra tên để ế ặ ộ ự ố ẫ ườ ng
d n c a chúng. Trẫ ủ ường h p này g i là k t n i tợ ọ ế ố ượng tr ng (ư symbollink).
S khác nhau các k t n i ngang nói trên là ch , vi c xoá b tên t p tinự ở ế ố ở ở ỗ ệ ỏ ệ hay th m c khi có nhi u ti n trình hay nhi u ngư ụ ề ế ề ườ ử ụi s d ng truy c p chúng.ậ
N u chúng ta l u ý t i h th ng cây th m c trong hình 4.5, chúng ta th yế ư ớ ệ ố ư ụ ở ấ
r ng không có s phân bi t gi a tên t p tin và tên th m c.ằ ự ệ ữ ệ ư ụ
Hình 4.5
N u các th m c Gruppe1 và Gruppe2 đế ư ụ ược ghép các đĩa khác nhau, doở ổ
đó, các n i ngang Rudi/Datei2 và Hans/Datei2 thì khác bi t v i các n i ngangố ệ ớ ố Gruppe1/Hans/Datei3 và Gruppe2/Datei3: đây c p th nh t là n i v t lý, cònở ặ ứ ấ ố ậ
c p th hai là n i logic.ặ ứ ố
N u bây gi Unix m t t p tin đế ờ ở ộ ệ ược xoá b , do đó, nó s t n t i t i thi uỏ ẽ ồ ạ ố ể cho đ n khi có m t s k t n i v t lý t n t i. trong thí d đã nêu, n u t p tinế ộ ự ế ố ậ ồ ạ Ở ụ ế ệ
có đường d n Rudi/Datei2 đẫ ược xoá b , do đó, t p tin ch còn l i dỏ ệ ỉ ạ ưới cái tên
có đường d n Hans/Datei2 và có th s d ng đẫ ể ử ụ ược. Ngượ ạ ế ệc l i n u t p tin có
đường d n Hans/Datei3 xoá b ; do đó, t p tin tẫ ỏ ệ ương ng cũng b xoá b ; sứ ị ỏ ự tham chi u tên (sysbollink) trong th m c Gruppe2 v n còn t n t i, nh ngế ở ư ụ ẫ ồ ạ ư khi truy c p t p tin thì ngay l p t c xu t hi n l i khi tham chi u tên t p tin này,ậ ệ ậ ứ ấ ệ ỗ ế ệ
t c là m t t p tin v i cái tên này không còn n a.ứ ộ ệ ớ ữ
Đi u quy t đ nh trong h đi u hành Unix là đ m t t p tin đề ế ị ệ ề ể ộ ệ ược xoá hoàn toàn, thì ph thu c vào b đ m đ đ m s tham chi u k t n i v t lý. Tuyụ ộ ộ ế ể ế ố ế ế ố ậ nhiên, c ch này c a h đi u hành Unix là m t phơ ế ủ ệ ề ộ ương ti n đ n gi n trongệ ơ ả ở
ph m vi đa ti n trình, nh ng cũng có th d n t i l i. Chúng ta nh n th y r ng,ạ ế ư ể ẫ ớ ỗ ậ ấ ằ chúng ta đang t i th m c Rudi c a hình 4.5 và th c hi n k t n i v t lý trênở ạ ư ụ ủ ự ệ ế ố ậ
th m c Gruppe1. Vì vi c xóa b m t th m c ch a tr ng thì c m (đ tránhư ụ ệ ỏ ộ ư ụ ư ố ấ ể
l i), do đó, chúng ta không th xoá đỗ ể ược th m c Gruppe2. Ngư ụ ượ ạ ở ạ c l i, t i
th m c Gruppe1: đây có m t k t n i th hai c a th m c Rudi, cho nên choư ụ ở ộ ế ố ứ ủ ư ụ phép xoá b tên t p tin đỏ ệ ược. Đi u đó d n t i tình hu ng, r ng bây gi th m cề ẫ ớ ố ằ ờ ư ụ Gruppe1 v i th m c con và các t p tin phía dớ ư ụ ệ ở ưới còn t n t i, tuy nhiênồ ạ
nh ng th đó không còn dùng đữ ứ ược n a, vì chúng là nh ng th m c tr ng, vàữ ữ ư ụ ố
do đó cũng không th xoá b để ỏ ược. Đi u đó thì cũng khong th tránh đề ể ược: tuy
k t n i ngang là có th , nh ng vi c ki m tra các vòng n i và vi c tách chia cácế ố ể ư ệ ể ố ệ
s đ t p tin t i m i tác v xoá là không nên làm. T lý do này, n b n m iơ ồ ệ ạ ỗ ụ ừ ở ấ ả ớ
c a Unix v cây th m c thì ch còn đủ ề ư ụ ỉ ược dùng ki u k t n i logic.ể ế ố
Đ i v i vi c t o l p hay xoá b t p tin, trong Unix có m t có ch thôngố ớ ệ ạ ậ ỏ ệ ở ộ ế
d ng: N u m t ti n trình t o l p m t t p tin và sau đó, nhi u ti n trình m t pụ ế ộ ế ạ ậ ộ ệ ề ế ở ệ tin này, do đó, t p tin không b bi n m t khi xoá, nh ngệ ị ế ấ ờ ườ ạ ậi t o l p. Và nó sẽ
t n t i cho t i khi ti n trình cu i cùng g i th t c close() và nh v y, b đ mồ ạ ớ ế ố ọ ủ ụ ư ậ ộ ế
s tham chi u tr v 0.ự ế ở ề
Trang 8H th ng t p tin hình cây t ng quát đệ ố ệ ổ ược phân chia thành các s đ nhánhơ ồ khác nhau, mà các t p tin c a chúng t n t i trên các đĩa khác nhau. Khi kh iệ ủ ồ ạ ổ ở
đ ng h th ng (bootstrap), h th ng t p tin c a các đĩa khác nhau vào m tộ ệ ố ệ ố ệ ủ ổ ộ nút g c (root) b ng m t hàm g i h th ng mount(), mà đó, nút g c c a m iố ằ ộ ọ ệ ố ở ố ủ ỗ
h th ng t p tin còn đệ ố ệ ược ph n nh b i tên c a m t th m c (ả ả ở ủ ộ ư ụ mount point direction). Hình 4.6 ch ra m t cây th m c t p tin nh v y.ỉ ộ ư ụ ệ ư ậ
Hình 4.6
4.2.4. Cây th m c Windows NTư ụ ở
Cây th m c trong h đi u hành Windows NT mô t toàn b các đ iư ụ ở ệ ề ả ộ ố
tượng toàn c c; m t cách đ c l p v i cái đó, khi chúng là các t p tin thu n tuýụ ộ ộ ậ ớ ệ ầ hay nh ng đ i tữ ố ượng khác nh các kênh trao đ i thông tin (ư ổ communicationcanal hay named pips), các b nh chia x (ộ ớ ẻ shared memory), các c hi u ( ờ ệ semaphore),
các bi n c hay các ti n trình. Các đ i tế ố ế ố ượng v i tên g i toàn c c đớ ọ ụ ược trao cho các c ch b o v tơ ế ả ệ ương ng khi truy c p. ứ ậ
H th ng cây th m c b t đ u v i nút g c b i d u xiên ph i (\), đó t nệ ố ư ụ ắ ầ ớ ố ở ấ ả ở ồ
t i các đ i tạ ố ượng t p tin hay các đ i tệ ố ượng th m c. Các th m c đ i tư ụ ư ụ ố ượng là các đ i tố ượng ch a đ ng tên c a đ i tứ ự ủ ố ượng v i nh ng thu c tính (bi n s ,ớ ữ ộ ế ố
h ng s …), v i các phằ ố ớ ương pháp (t o l p, m hay đ c lạ ậ ở ọ ướt các th m c). Hư ụ ệ
th ng này không ch bao g m tr ng thái nhân, mà c tr ng thái ngố ỉ ồ ạ ả ạ ườ ử ụi s d ng, nghĩa là các th m c không ch có th đ t vào nhân h đi u hành Windows NT,ư ụ ỉ ể ặ ệ ề
mà còn có th đ t vào c các h th ng khác nh OS/2, POSIX…Đ i v i m iể ặ ả ệ ố ư ố ớ ỗ
lo i đ i tạ ố ượng (t p tin, ti n trình…) có nh ng n b n chuyên d ng cho 3ệ ế ữ ấ ả ụ
phương pháp s d ng các đ n th nhân khác nhau (đi u hành I/O, đi u hànhử ụ ơ ể ề ề
ti n trình…).ế
Tuy nhiên, đ t o l p th m c toàn c c t các th m c đ i tể ạ ậ ư ụ ụ ừ ư ụ ố ượng hay vi cệ thi t đ t các đế ặ ường d n k t n i ngang (nh trong Unix) đ u có th th c hi nẫ ế ố ư ề ể ự ệ
m t cách thu n l i trong Windows NT.ộ ậ ợ ở
cây th m c c a vi c đi u hành đ i t ng thì t n t i nhi u đ i t ng
khác nhau (xem hình 4.7). Ch ng h n đ i tẳ ạ ố ượng “A:” là m t k t n i ngang logicộ ế ố
v i đ i tớ ố ượng h th ng t p tin “Floppy”. V i m i đ i tệ ố ệ ớ ỗ ố ượng thì m t phộ ươ ngpháp dò tìm được chuyên môn hoá. N u trình so n th o Editor mu n m t p tinế ạ ả ố ở ệ
có đường d n A:\Texte\bs_files.doc, do đó, t i c a s đi u hành đ i tẫ ạ ử ổ ề ố ượng, nó
h i đ i tỏ ố ượng này. B ng phằ ương pháp dò tìm, trình đi u hành đ i tề ố ượng tìm
ki m cây th m c c a nó: đ i tế ư ụ ủ ố ượng c n t i ch nào (?). N u nó đi t i đ iầ ớ ở ỗ ế ớ ố
tượng “A:”, thì khi đó, phương pháp k t n i logic đế ố ược áp d ng.ụ
Hình 4.7
Trang 9Chu i ký t “A:” đỗ ự ược thay th b i chu i ký t “\Device\Floppy0” và sauế ở ỗ ự
đó, được chuy n cho trình đi u hành đ i tể ề ố ượng. Trình này s x lý đẽ ử ường d nẫ cho t i khi g p đ i tớ ặ ố ượng t p tin “Floppy0”. Phệ ương pháp dò tìm này làm vi cệ trên cây th m c c a trình đi u hành h th ng các t p tin, nó dò tìm đư ụ ủ ề ệ ố ệ ường d nẫ
v i các th t c đ c bi t, cho t i khi m t đ i tớ ủ ụ ặ ệ ớ ộ ố ượng t p tin v i bs_files.doc cóệ ớ
th để ược đ a tr l i.ư ở ạ
V i c ch này, trong Windows NT có th tích h p m t cách th ng nh tớ ơ ế ở ể ợ ộ ố ấ các h th ng t p tin khác nhau nh h th ng FAT (file allocation table) c a MSệ ố ệ ư ệ ố ủDOS, h th ng t p tin hi u su t cao c a OS/2 và h th ng t p tin NT c aệ ố ệ ệ ấ ủ ệ ố ệ ủ Windows
Đ i v i vi c xoá m t t p tin cũng nh xoá m t đ i tố ớ ệ ộ ệ ư ộ ố ượng được nhi u ti nề ế trình s d ng, thì các c ch đử ụ ơ ế ược d n t i tẫ ớ ương t nh trong Unix. Vì lý doự ư
th c thi, có hai b đ m tham chi u đự ộ ế ế ược d n t i: m t b đ đ m s lẫ ớ ộ ộ ể ế ố ượng các
ch c danh đ i tứ ố ượng, khi đó chúng được đón nh n các ti n trình ngậ ở ế ườ ử i s
d ng; và m t b n a đ đ m s lụ ộ ộ ữ ể ế ố ượng que ch th , khi đó chúng đỉ ị ược đ a vàoư
h đi u hành (đáng l chúng đệ ề ẽ ược trao cho b i các đ i tở ố ượng khi truy c pậ nhanh). N u b đ m tham chi u c a ngế ộ ế ế ủ ườ ử ụi s d ng mà tham chi u t i tên t pế ớ ệ tin b gi m xu ng t i 0, thì do đó, đ i tị ả ố ớ ố ượng s b xóa trong cây th m c; vàẽ ị ở ư ụ cũng vì th , không có m t ti n trình nào có th truy c p đế ộ ế ể ậ ược. Tuy nhiên, nó
v n còn l i trong b nh cho t i khi b đ m các tham chi u c a h đi u hànhẫ ở ạ ộ ớ ớ ộ ế ế ủ ệ ề
gi m xu ng 0. Sau đó b nh đả ố ộ ớ ược gi i phóng và đả ượ ự ục s d ng tr l i. V i cở ạ ớ ơ
ch này đã tránh đế ược: m t đ i tộ ố ượng được nhi u ti n trình x lý b xoá m tề ế ử ị ộ cách nh m l n trầ ẫ ước khi các ti n trình khác th c thi xong.ế ự
M t b đ m tham chi u đôi cũng tránh độ ộ ế ế ược: thí d m t đ i tụ ộ ố ượng ti nế trình được sinh ra b i m t ti n trình và sau đó, v i s k t thúc c a ti n trìnhở ộ ế ớ ự ế ủ ế này, nó đi t i k t thúc; tuy nhiên, v n còn m t ti n trình có quan h v i đ iớ ế ẫ ộ ế ệ ớ ố
tượng. S tham chi u c a h đi u hành t i ti n trình th hai đ m b o s t nự ế ủ ệ ề ớ ế ứ ả ả ự ồ
t i c a đ i tạ ủ ố ượng t p tin cho t i khi quan h nói trên không còn n a.ệ ớ ệ ữ
4.3. Thu c tính t p tin và c ch b o vộ ệ ơ ế ả ệ
Trong m t th m c có ch a tên m t t p tin, thì h u h t các thông tin v t pộ ư ụ ứ ộ ệ ầ ế ề ệ tin được b o v Bên c nh đ l n t p tin (tính b ng Byte hay b ng các kh iả ệ ạ ộ ớ ệ ằ ằ ố trang), ngày tháng t o l p và ngày tháng đi u ch nh, còn có các thu c tính khácạ ậ ề ỉ ộ (còn g i là các c hi u khác) nh n khu t (ọ ờ ệ ư ẩ ấ Hidden), h th ng.ệ ố
M t d ng đ c bi t c a các thông tin tr ng thái là các thông tin b o v nhộ ạ ặ ệ ủ ạ ả ệ ư
lu t truy c p c a con ngậ ậ ủ ười và c a các chủ ương trình đ i v i t p tin. Tố ớ ệ ương tự
nh đ i v i các c ch b o v b nh , ngư ố ớ ơ ế ả ệ ộ ớ ười ta đã xem xét đ lo i b các ch cể ạ ỏ ứ năng l i c a chỗ ủ ương trình nh các l i khi truy xu t chư ỗ ấ ương trình c a ủ ngườ ử i s
d ngụ nh nh ng bi n pháp có m c đích: Nh ng bi n pháp do U ban POSI6ờ ữ ệ ụ ữ ệ ỷ
đ ngh có n i dùng nh sau:ề ị ộ ư
Trang 10+ Ph i đ m b o nguyên t c thu g n đ c quy n ít nh t (ả ả ả ắ ọ ặ ề ấ least privilege) đ iố
v i vi c th c hi n m t nhi m v ớ ệ ự ệ ộ ệ ụ
+ Ph i b sung vi c đi u khi n khi truy c p qua các thông báo r i r cả ổ ệ ề ể ậ ờ ạ
(discretionary access control). Vi c truy xu t cệ ấ ưỡng b c thì đ c l p v i ngứ ộ ậ ớ ườ i
t o l p. Vi c truy xu t đ i tạ ậ ệ ấ ố ượng ch x y ra b i các ti n trình v i các đ cỉ ả ở ế ớ ặ quy n l n h n.ề ớ ơ
+ Ph i l u ý các ghi chép v tr ng thái c a đ i tả ư ề ạ ủ ố ượng nh m có th phát hi nằ ể ệ các nguyên nhân và các người làm vi c trong h th ng khi s d ng sai trái.ệ ệ ố ử ụ
Ngượ ạc l i, h đi u hành ch th c thi r t gi i h n các yêu c u k trên.ệ ề ỉ ự ấ ớ ạ ầ ể
4.3.1. Các đ c quy n truy c p Unixặ ề ậ ở
h đi u hành Unix có các bi n tr ng thái (còn g i là các c ) khác nhau:
đ c (ký hi u r), vi t (w), th c thi (x). T t c các t p tin và các th m c đ u cóọ ệ ế ự ấ ả ệ ư ụ ề
m t tr ng thái nh nhau.ộ ạ ư
Các ký hi u v a nói có ý nghĩa nh sau:ệ ừ ư
r cho phép đ c danh sách t p tin;ọ ệ
w cho phép thay đ i v trí t p tin trong danh sách;ổ ị ệ
x cho phép th c thi hay tìm ki m t p tin trong danh sách.ự ế ệ
V quy n truy c p, h đi u hành Unix phân bi t 3 h ng: ch nhân h th ngề ề ậ ệ ề ệ ạ ủ ệ ố
(owner), thành viên m t nhóm (ộ user group member) và m i ngọ ười khác (other).
Ch d n v các quy n truy c p ỉ ẫ ề ề ậ
L nh ls là đ xem các t p tin và các quy n truy c p chúng. L nh lsal đệ ể ệ ề ậ ệ ể xem các t p tin c a m t th m c, thí d v i l nh này, ta nh n đệ ủ ộ ư ụ ụ ớ ệ ậ ược đo n thôngạ báo:
ki m và d u g ch ngang () đ ch m t quy n truy c p không đế ấ ạ ể ỉ ộ ề ậ ược ch n.ọ
Nh ng c t còn l i c a b ng thông báo này là tên ngữ ộ ạ ủ ả ườ ử ụi s d ng, dung lượ ng(Byte), ngày tháng t o l p, th i gian t o l p và cu i cùng là tên t p tin. dòngạ ậ ờ ạ ậ ố ệ Ở
đ u tiên c a c t tên t p tin, có m t d u ch m (.) đ ch tên t p tin m t thầ ủ ộ ệ ộ ấ ấ ể ỉ ệ ở ộ ư
m c hi n hành c a ngụ ệ ủ ườ ử ụi s d ng brause có dung lượng 512Byte, đượ ạ ậ c t o l pngày 23 tháng 4 lúc 15gi 55 phút. dòng th 2 c a c t này có d u hai ch mờ Ở ứ ủ ộ ấ ấ ( ) cũng gi i thích tả ương t ự
Ở h đi u hànhệ ề Unix, đ th c hi n m t chể ự ệ ộ ương trình, có th k t n i cácể ế ố quy n truy c p c a riêng mình trong chề ậ ủ ương trình v i hàm ớ userId cho ngườ i
Trang 11th c hi n và ự ệ groupId cho người qu n lý nhóm. Do đó, các ch c năng c aả ứ ủ
chương trình h th ng có th đệ ố ể ược m i ngọ ườ ử ụi s d ng th c hi n, n u thi t đ tự ệ ế ế ặ các tr ng thái ạ userId và set groupId. Còn n u t i m t th m c, tr ng thái stickyế ạ ộ ư ụ ạ bit được thi t đ t, do đó, m t ế ặ ộ ngườ ử ụ bình thi s d ng ường không th xoá hayể
g i các t p tin c a ngọ ệ ủ ườ ử ụi s d ng khác trong th m c này.ư ụ
Ch nh ng n b n đ c bi t c a h đi u hành Unix m i có các danh sáchỉ ữ ấ ả ặ ệ ủ ệ ề ớ
đi u khi n truy xu t v i nhi u c ch khác nhau. Cũng v i lý do này, s ho tề ể ấ ớ ề ơ ế ớ ự ạ
đ ng m nh m c a nhóm O/Open đã th ng nh t và t o ra độ ạ ẽ ủ ố ấ ạ ược nhi u tiêuề chu n b o v h th ng Unix.ẩ ả ệ ệ ố
4.3.2. Quy n truy c p trong Windows NTề ậ ở
H th ng t p tin trong h đi u hành Windows NT đệ ố ệ ở ệ ề ược qu n lý b i m tả ở ộ
c ch đ nh hơ ế ị ướng đ i tố ượng. Quy n truy c p có giá tr đ i v i m i đ i tề ậ ị ố ớ ỗ ố ượ ngtrong cây th m c c a Windows NT (nh các ti n trình, các c hi u, kho ngư ụ ủ ư ế ờ ệ ả
nh …). Đ c l p v i các quy n truy c p này còn có nh ng tính ch t đ c bi tớ ộ ậ ớ ề ậ ữ ấ ặ ệ
đ i v i các đ i tố ớ ố ượng t p tin:ệ
Các thu c tính ộ :
+ Tên t p tinệ
+ Ki u thi t b mà trên đó t p tin t n t i,ể ế ị ệ ồ ạ
+ Byte offset: là tình tr ng hi n hành c a t p tin,ạ ệ ủ ệ
+ Shared mode: là tr ng thái (đ c/vi t/xoá) c a t p tin trong khi s dùng,ạ ọ ế ủ ệ ử+ Open mode: là ki u và phể ương pháp tác v c a t p tin (đ ng b / khôngụ ủ ệ ồ ộ
đ ng b , có / không có b đ m Cache, truy c p tu n t / b t k …)ồ ộ ộ ệ ậ ầ ự ấ ỳ
+ file disposition: bi u th t p tin b n v ng hay tu ý.ể ị ệ ề ữ ỳ
Các ph ươ ng pháp:
Các hàm CreateFile(), OpenFile(), ReadFile(), WriteFile(), CloseFile(), dùng
đ đ c ch n hay thay th các thông tin t p tin, các thu c tính m r ng, các để ọ ọ ế ệ ộ ở ộ ộ
l n t p tin (Byte), các thông tin v thi t b hay đ đ c ch n m t th m c…ớ ệ ề ế ị ể ọ ọ ộ ư ụ
M i đ i tỗ ố ượng t p tin là m t b n sao c a thông tin đi u khi n c a m t t pệ ộ ả ủ ề ể ủ ộ ệ tin; nó cũng có th d n t i nhi u đ i tể ẫ ớ ề ố ượng, mà chúng tham chi u chính t p tinế ệ này. Do đó, có nh ng thông tin toàn c c đữ ụ ượ ưc l u tr trong t p tin (không ph iữ ệ ả trong đ i t ng t p tin) và cũng có th đ c thay đ i đó
M i t p tin ch a đ ng nh ng thu c tính t p tin khác nhau; khi th c hi nỗ ệ ứ ự ữ ộ ệ ự ệ chúng là nh ng dòng d li u bi n thiên theo đ l n t p tin. Trữ ữ ệ ế ộ ớ ệ ước h t, chúngế bao g m nh ng thông tin sau đây:ồ ữ
Các thông tin chu n ẩ :
+ Ngày tháng và th i gian t o l p, ngày tháng và th i gian truy xu t g n đâyờ ạ ậ ờ ấ ầ
và l n thay th cu i cùng;ầ ế ố
Trang 12+ Dung lượng t p tin hi n hành;ệ ệ
+ Thu c tính logic c a t p tin bi u th b i giá tr Yes/No. Thí d : t p tin hộ ủ ệ ể ị ở ị ụ ệ ệ
th ng, t p tin n, t p tin l u tr , t p tin đi u khi n, t p tin ch đ c, t p tinố ệ ẩ ệ ư ữ ệ ề ể ệ ỉ ọ ệ nén…
Tên t p tin ệ :
Trong cây th m c v i k t n i v t lý, tên t p tin có th dài; các k t n iư ụ ớ ế ố ậ ệ ể ở ế ố khác c a MSDOS, t p tin có tên ng n.ủ ệ ắ
Các d li u b o v ữ ệ ả ệ:
Chúng đựơc ch a đ ng trong danh sách đi u khi n vi c truy xu t đ i v iứ ự ề ể ệ ấ ố ớ
m i ch nhân c a t p tin.ọ ủ ủ ệ
MyFile.dat, các d li u ph c a ngữ ệ ụ ủ ườ ậi l p trình được tham chi u v i m t cáiế ớ ộ tên b sung; tên này đổ ược tách làm hai ph n ngăn cách nhau b i d u hai ch m,ầ ở ấ ấ thí d ụ
MyFile.dat:MyCommentar. Đi u đó đã t o nên nhi u thông tin b sung đ treoề ạ ề ổ ể vào m t t p tin (ch ng h n tên c a m t chộ ệ ẳ ạ ủ ộ ương trình x lý hay ng c nh khiử ữ ả
x lý l n cu i…) mà không h thay đ i các d li u chính. Do v y, đ i v i m iử ầ ố ề ổ ữ ệ ậ ố ớ ỗ dòng d li u, m t thông tin tr ng thái đữ ệ ộ ạ ược d n t i, ví nh đ l n hi n hànhẫ ớ ư ộ ớ ệ
l n nh t đớ ấ ượ ấc c p phát, các c hi u đ i v i các ph n c a t p tin…ờ ệ ố ớ ầ ủ ệ
Khi thay th hay d n tr l i, các thu c tính logic đế ẫ ở ạ ộ ược tr giúp nh phợ ờ ươ ngpháp k t h p. Thí d m t t p tin đế ợ ụ ộ ệ ược nén l i m t cách t đ ng, t c là t p tinạ ộ ự ộ ứ ệ
nh n đậ ược thu c tính nén l i. Đi u đó cũng có giá tr đ i v i toàn b cây thộ ạ ề ị ố ớ ộ ư
m c.ụ
Các c ch b o v trong ơ ế ả ệ h đi u hànhệ ề Windows NT được tách chia m tộ cách m nh m h n trong Unix. Đ i v i m i t p tin có m t danh sách truy c pạ ẽ ơ ố ớ ỗ ệ ộ ậ
được chi ti t hoá; trong đó, các quy n truy c p c a ế ề ậ ủ ngườ ử ụ đi s d ng ược th cự
hi n. Vi c b sung thêm tên tiêu chu n nh Adminitrator (qu n lý), System,ệ ệ ổ ẩ ư ả Creator (t o l p), Quest (Khách), EveryOne (m i ngạ ậ ọ ười)…, người ta có thể chuyên môn hoá nh ng ữ ngườ ử ụ ti p theo và các quy n c a h ; nghĩa lài s d ng ế ề ủ ọ
h đọ ược phép hay không được phép v m t quy n truy c p nào đó.ề ộ ề ậ
H th ng b o v này thì không gi i h n trên các t p tin, nó đệ ố ả ệ ớ ạ ệ ược áp d ngụ
m t cách t ng h p t t c các đ i tộ ổ ợ ở ấ ả ố ượng toàn c c đây th m c trongụ ở ư ụ
Trang 13Windows NT và được ch huy m t cách th ng nh t. Ti p đó, m t s ki m traỉ ộ ố ấ ế ộ ự ể
đ i v i vi c truy c p t i t p tin hay th m c đố ớ ệ ậ ớ ệ ư ụ ược tr giúp.ợ
4.4. Các ch c năng t p tin ứ ệ
Có r t nhi u ki u tác v x y ra trên các t p tin. Trong m c này, chúng taấ ề ể ụ ả ệ ụ
kh o sát vài ki u đ c tr ng cho t p tin trên b nh qu ng đ i (các lo i đĩaả ể ặ ư ệ ộ ớ ả ạ ạ ổ
c ng, đĩa m m, băng nh a camara…).ứ ổ ề ự
m t con s (ch s c a m t trộ ố ỉ ố ủ ộ ường n i b c a vi c đi n vào t p tin) hay m tộ ộ ủ ệ ề ệ ộ
b ch th m t c u trúc bên trong t p tin.ộ ỉ ị ở ộ ấ ệ
M m t t p tin (OpenFiele) ở ộ ệ :
Khi m m t t p tin đang t n t i, các c u trúc d li u khác nhau đở ộ ệ ồ ạ ấ ữ ệ ược kh iở
xướng, do đó, vi c truy c p ti p theo di n ra nhanh h n. Thu c cái đó có vi cệ ậ ế ễ ơ ộ ệ
ki m tra các quy n truy c p cũng nh c ch các b đ m, c ch các c u trúcể ề ậ ư ơ ế ộ ệ ơ ế ấ truy c p.ậ
Đóng t p tin (Close File) ệ :
Đ đóng m t t p tin, c n ph i mô t các thông tin qu n lý t p tin t i b nhể ộ ệ ầ ả ả ả ệ ạ ộ ớ
qu ng đ i và đả ạ ược phép n i ti p vi c s d ng không gian các c u trúc d li uố ế ệ ử ụ ấ ữ ệ
c a vi c qu n lý t p tin b nh chính.ủ ệ ả ệ ở ộ ớ
Tương t nh v y, khi trao đ i thông tin gi a các ti n trình m c 2.4.1,ự ư ậ ổ ữ ế ở ụ
người ta có th thay th đôi l nh OpenFile() và CloseFile(). Thay vì n i c ngể ế ệ ố ứ
v t lý s trao đ i thông tin, ngậ ự ổ ười ta được phép có m t s trao đ i thông tinộ ự ổ không c n k t n i v t lý: T t c m i s truy c p đầ ế ố ậ ấ ả ọ ự ậ ược th c hi n theo dãy tu nự ệ ầ
t c a chúng mà không c n dùng l nh OpenFile(). Tuy nhiên, đi u đó thì khôngự ủ ầ ệ ề
th t chính th c đ i v i m t cách t ch c d li u c c b : Thay vì truy c p t pậ ứ ố ớ ộ ổ ứ ữ ệ ụ ộ ậ ệ tin, người ta ch x p đ t m t l n (thí d vi c ki m tra quy n truy c p, vi cỉ ế ặ ộ ầ ụ ệ ể ề ậ ệ xem xét các kh i t p tin…) ngố ệ ười ta ph i th c hi n đi u đó m i l n truy c p,ả ự ệ ề ỗ ầ ậ
do đó d n t i chi phí qu n lý gi m thi u đáng k ẫ ớ ả ả ể ể
Trang 14M t t p tin độ ệ ượ ổc t ch c m t cách tu n t đ n gi n và chi m m t v trí, màứ ộ ầ ự ơ ả ế ộ ị
t i đó, ngạ ười ta có th vi t hay đ c. V trí t p tin này không ch để ế ọ ị ệ ỉ ược mô ph ngỏ
nh nh ng thông tin qu n lý, mà còn có th đư ữ ả ể ược thay th b i m t chế ở ộ ương trình trong các h th ng các t p tin nh v y. B ng vi t x lý tu n t còn g i là
truy c p tu n t (ậ ầ ự sequential access), thí d kho ng t tính c a đĩa m m,ụ ả ừ ủ ổ ề
người ta d n t i vi c truy c p tu ch n còn g i là truy c p ng u nhiên (ẫ ớ ệ ậ ỳ ọ ọ ậ ẫ random access). Đi u đó thì ti n l i khi làm vi c v i đĩa CD ROM.ề ệ ợ ệ ớ ổ
Theo quan đi m h đi u hành, các d ch v h th ng nh n để ệ ề ị ụ ệ ố ậ ượ ự ợc s tr giúp
m t cách khác nhau. Đi u đó độ ề ược bao hàm trong câu h i, li u vi c đ c/ vi t cóỏ ệ ệ ọ ế
đượ ưc l u tr , hay li u chữ ệ ương trình ngườ ử ụi s d ng ph i t làm đi u đó, khiả ự ề
ph n ng c a h th ng đ t lên m t tr ng thái không bình thả ứ ủ ệ ố ặ ộ ạ ường (?). N uế không có d li u nào có th đữ ệ ể ược đ c hay đọ ược vi t, vì t i hàm Read() khôngế ạ
có d li u nào đữ ệ ượ ử ục s d ng, hay t i hàm Write() không có đĩa nào s n sàngạ ổ ẵ làm vi c. G n nh hàm Read() trong trệ ầ ư ở ường h p này thì ngăn hãm ti n trìnhợ ế
ngườ ử ụ , còn hàm Write() thì không. Vì lý do này, các d li u đi s d ng ữ ệ ượ ư c l u
tr ; khi b đ m tràn hay đĩa có khi m khuy t, m t thông báo l i đữ ộ ệ ổ ế ế ộ ỗ ược đ a trư ở
l i M t cách thu n l i, khi đó có nhi u ch c n ng đạ ộ ậ ợ ề ứ ằ ược b sung nh :ổ ư DeleteFile(), RemameFile(), CopyFile(), AppendFile(), FlushBuffer(),…T t cấ ả
đ u ph thu c vào h đi u hành m t cách m nh m ề ụ ộ ệ ề ộ ạ ẽ
4.4.2. Các ch c năng truy c p trong Unixứ ậ ở
trong
Ở h đi u hànhệ ề Unix, các g i h th ng có d ng fd=creat(name, mode)ọ ệ ố ạ
và fd=open(name, mode) đã cung c p cho ta m t s b mô t t p tin (ấ ộ ố ộ ả ệ fd: file discriptor). Nó chính là s tham chi u đ i v i t t c s truy c p khác nhau,ự ế ố ớ ấ ả ự ậ
nh :ư
+ read (fd, buffer, nbytes) đ c n Bytes trong b đ m;ọ ở ộ ệ
+ write (fd, buffer, nbytes) vi t n Bytes t m t b đ m;ế ừ ộ ộ ệ
+ close (fd) vi t m t t p tin.ế ộ ệ
B mô t t p tin này là ch s (ộ ả ệ ỉ ố Index) trong m t trở ộ ường c a b ng mô tủ ả ả
t p tin (ệ file descript table). S lố ượng các t p tin và s lệ ố ượng c a s đi n vàoủ ự ề (t c s lứ ố ượng l n nh t đ i v i fd) là c đ nh, nó đớ ấ ố ớ ố ị ược thông báo khi có s d chự ị
đ i c a ổ ủ h đi u hànhệ ề ; đ ng th i, nó xác đ nh đ l n c a c u trúc qu n lý đ iồ ờ ị ộ ớ ủ ấ ả ố
v i các t p tin đớ ệ ượ ưc l u tr trong c u trúc ữ ở ấ ngườ ử ụ c a m t ti n trình.i s d ng ủ ộ ế
Trang 15B mô t t p tin này đóng vai trò quan tr ng trong ộ ả ệ ọ h đi u hànhệ ề Unix. Theo tiêu chu n, trẩ ước khi kh i xở ướng m t ti n trình (ch ng h n m t chộ ế ẳ ạ ộ ương trình),
b mô t t p tin độ ả ệ ược ghi nh : fd =0 cho vi c nh p s li u (ớ ệ ậ ố ệ stdin), fd =1 cho
vi c xu t s li u (ệ ấ ố ệ stdout) và fd=2 cho vi c xu t s li u khi có l i (ệ ấ ố ệ ỗ stderr). Ở
trong Unix, người ta l i d ng đi u này đ k t n i các chợ ụ ề ể ế ố ương trình v i nhau,ớ
nh m d n t i m t ch c năng nào đó. m c 2.4, chúng ta đã làm quan v i c uằ ẫ ớ ộ ứ Ở ụ ớ ấ trúc trao đ i thông tin pipe, thí d :ổ ụ
Programm1 | Programm2 | … | ProgrammN
Đ th c hi n dòng l nh này, ti n trình cha thi t đ t nhi u ti n trình con vàể ự ệ ệ ế ế ặ ề ế
t o ra đ i v i m i m t s k t n i trao đ i thông tin m t ạ ố ớ ỗ ộ ự ế ố ổ ộ pipe. Sau đó, ti n trìnhế cha kh i xở ướng các b mô t t p tin (ộ ả ệ file descriptors) cho m i ti n trình; khi đó,ỗ ế chúng s d n t i: pipe vào v i fd =1 ti n trình g i đi, pipe ra v i fd =0 ti nẽ ẫ ớ ớ ở ế ở ớ ở ế trình nh n. Hình 4.8 mô t m t h th ng pipe trong Unix.ậ ả ộ ệ ố ở
Hình 4.8
Vi c s p x p các b mô t t p tin ch là s quy ệ ắ ế ộ ả ệ ỉ ự ước; m i ti n trình có thỗ ế ể
đ t đạ ược các s s p x p các b mô t t p tin khác nhau qua vi c đóng và mự ắ ế ộ ả ệ ệ ở
có m c đích các t p tin: Khi m , b mô t t p tin tr ng v i con s h th ngụ ệ ở ộ ả ệ ố ớ ố ệ ố
nh nh t đỏ ấ ượ ử ục s d ng đ u tiên.ầ
4.4.3. Các ch c năng truy c p t p tin Windows NTứ ậ ệ ở
Các ch c năng c b n đ i v i vi c truy c p t p tin đứ ơ ả ố ớ ệ ậ ệ ược tóm lược nh làư
nh ng phữ ương pháp v thi t laap các thu c tính t p tin. Các phề ế ộ ệ ương pháp hi uệ nghi m k trên còn d n t i nhi u ch c năng đ i v i các t p tin nhệ ể ẫ ớ ề ứ ố ớ ệ ư FlushBuffer() cũng nh các tác v th m c đ c tr ng (đ c, vi t, tìm ki m thư ụ ư ụ ặ ư ọ ế ế ư
m c…). Nói chung, m t b n phác th o đụ ộ ả ả ược quan tâm đó là: M i tác v dù cóọ ụ
c u trúc nh th nào đ u có th thay đ i trên b nh qu ng đ i, thì chúng cũngấ ư ế ề ể ổ ộ ớ ả ạ
được th c thi nh là nh ng bi n đ i nhân t (ự ư ữ ế ổ ử atomar transaction). Thu c cái đóộ còn có m t d ch v đ c bi t g i là d ch v đăng ký t p tin (ộ ị ụ ặ ệ ọ ị ụ ệ log file service: LFS); m i l n truy c p t p tin, d ch v này đỗ ầ ậ ệ ị ụ ược g i b i nhân h đi u hành vàọ ở ệ ề
vi t b n ghi đăng ký cho h th ng t p tin. Trế ả ệ ố ệ ước khi các t p tin riêng l đệ ẻ ượ cthay đ i trên b nh qu ng đ i (nh m t bi n c ), do đó, các b n ghi đăng kýổ ộ ớ ả ạ ờ ộ ế ố ả
(log records) c a t t c các tác v (đ i v i m t bi n c ) đủ ấ ả ụ ố ớ ộ ế ố ược vi t trên b nhế ộ ớ
qu ng đ i. B n phác th o đả ạ ả ả ược ch ra b i trình vi t trỉ ở ế ước luc đăng ký (write ahead logging) đã t o đi u ki n đ vi t l i h th ng t p tin m t cách s ch sạ ề ệ ể ế ạ ệ ố ệ ộ ạ ẽ khi h th ng có s c N u s c x y ra trệ ố ự ố ế ự ố ả ước khi vi t vào b đ m dùng đế ộ ệ ể
đăng ký (log buffer), do đó, t t c các tác v b l ng quên và vì th ph i th cấ ả ụ ị ả ế ả ự
hi n m i m t đ u. N u s c x y ra gi a kho ng k t thúc đăng ký I/O vàệ ớ ẽ ừ ầ ế ự ố ả ữ ả ế
k t thúc t p tin I/O, khi đó, c n ph i ki m tra khi cho máy ho t đ ng tr l i,ế ệ ầ ả ể ạ ộ ở ạ
Trang 16ph i xem xét và hi u ch nh ch nào đã th c hi n vi c ghi chép, ch nào ch aả ệ ỉ ỗ ự ệ ệ ỗ ư (?). Sau m i tình hu ng, nh ng tác v còn sai h ng đ i v i m i bi n c đỗ ố ữ ụ ỏ ố ớ ỗ ế ố ượ c
g i t i và đọ ớ ược th c hi n ti p t c.ự ệ ế ụ
Tuy nhiên, b n phác th o này có m t vài gi đ nh quan tr ng, chúng khôngả ả ộ ả ị ọ
nh t thi t ph i đấ ế ả ược th c hi n trong t ng trự ệ ừ ường h p. Do v y, s truy n đ tợ ậ ự ề ạ các s li u đăng ký ph i hoàn toàn không có l i, t c là, t p tin đăng ký nên linhố ệ ả ỗ ứ ệ
đ ng, vì vi c chuy n t i d li u thộ ệ ể ả ữ ệ ường ch a đ ng l i, do đó t p tin s khôngứ ự ỗ ệ ẽ
s d ng đử ụ ược. N u gi s có m t khi m khuy t th đ ng d n h th ng t iế ả ử ộ ế ế ụ ộ ẫ ệ ố ớ
m t tr ng thái an toàn (ộ ạ fail save); nghĩa là m t l i tích c c cũng ch a xoá độ ỗ ự ư ượ c
d li u.ữ ệ
4.4.4. Các ch c năng truy c p có c u trúcứ ậ ấ
Nh ng ch c năng truy c p đữ ứ ậ ược trình bày cho t i nay là m t lo i đ n gi nớ ộ ạ ơ ả
và chúng ch m i có ý nghĩa tách chia các gi i thu t v truy c p các t p tin.ỉ ớ ả ậ ề ậ ệ Trong r t nhi u h th ng, có các tác v đ t o đi u ki n thi t l p m t s truyấ ề ệ ố ụ ể ạ ề ệ ế ậ ộ ự
c p có c u trúc t i t p tin, mà vi c truy c p này đậ ấ ớ ệ ệ ậ ược hướng t i s t ch cớ ự ổ ứ logic c a d li u trong t p tin, sau đây s l n lủ ữ ệ ở ệ ẽ ầ ượt nói t i t ng lo i:ớ ừ ạ
Các t p tin tu n t (sequential files ệ ầ ự ):
V i các máy tính đớ ược nói trên, ngở ười ta đã x lý các danh sách d li uử ữ ệ dài, mà chúng đượ ổc t ch c nh là nh ng b n ghi đứ ư ữ ả ượ ắc s p x p m t cách tu nế ộ ầ
t Vì nh ng bàn ghi t n t i nh ng t p tin r ng rãi trên đĩa m m và l n lự ữ ồ ạ ở ữ ệ ộ ở ề ầ ượ t
được x lý. Hình th c t ch c này đ t đử ứ ổ ứ ạ ược th i gian h i lâu. Ki u t p tin theoờ ơ ể ệ ngôn ng Pascal xu t phát t các tác v đ c/ vi t tu n t c a toàn b các b nữ ấ ừ ụ ọ ế ầ ự ủ ộ ả ghi d li u trong kho ng hai tác v put() và get().ữ ệ ả ụ
Tuy nhiên, n u ngế ười ta mu n truy c p trên các d li u trong dãy tu n tố ậ ữ ệ ở ầ ự khác, do đó, đi u đó x y ra l i càng vô cùng ch m.ề ả ạ ậ
Các t p tin tu ch n (random access files ệ ỳ ọ ):
Nhược đi m nêu trên nh m d n t i vi c kh c ph c m t c ch t p tin,ể ở ằ ẫ ớ ệ ắ ụ ộ ơ ế ệ
mà nó cho phép m t s truy c p trên b n ghi s li u độ ự ậ ả ố ệ ược s p x p theo m tắ ế ộ dãy tu n t b t k Ý tầ ự ấ ỳ ưởng này có th để ược th c hi n b i s t o l p c a hự ệ ở ự ạ ậ ủ ệ
th ng đĩa c ng. H u h t các h th ng t p tin đ u t o đi u ki n cho ki u truyố ổ ứ ầ ế ệ ố ệ ề ạ ề ệ ể
c p này nh vi c bi u th v trí truy c p t p tin.ậ ờ ệ ể ị ị ậ ệ
Khi truy c p t p tin tu ch n hay tu n t , m t ki u truy c p này đậ ệ ỳ ọ ầ ự ộ ể ậ ược th cự
hi n nh m t ki u khác; tuy nhiên, nó không nh m m c đích t b m t lo iệ ờ ộ ể ằ ụ ừ ỏ ộ ạ nào c Ngả ười ta có th th c hi n các t p tin tu n t trên nhi u hể ự ệ ệ ầ ự ề ướng khác nhau c a đĩa. Đ i v i các t p tin tu ch n thì đi u đó không có l i l m.ủ ổ ố ớ ệ ỳ ọ ề ợ ắ
Trang 17Tuy nhiên, n u có m t c ch n i dung t p tin đế ộ ơ ế ộ ệ ược đ a ra, thì ngư ười ta
th y r ng, ti n hành truy c p c hai ki u s ch m h n m t ki u. Tóm l i,ấ ằ ế ậ ả ể ẽ ậ ơ ộ ể ạ
người ta ph i tôn tr ng c ch t p tin và ph i th c thi m t cách hi u nghi mả ọ ơ ế ệ ả ự ộ ệ ệ
b ng các phằ ương ti n đi u hành hi n có. T lý do này, trong các h th ng ngânệ ề ệ ừ ệ ố hàng d li u còn có nh ng phữ ệ ữ ương pháp truy c p hi u nghi m h n.ậ ệ ệ ơ
Các t p tin ch s tu n t (index sequential files) ệ ỉ ố ầ ự :
Lo i t p tin này đạ ệ ượ ấc c u thành t các b n ghi d li u (ừ ả ữ ệ data records), chúng
đượ ắc s p x p theo m t tiêu chu n g i là s p x p theo chìa khoá (key) và kh iế ộ ẩ ọ ắ ế ở
đ u c a t p tin là m t ch s Trong th m c ch s , các ki u “đóng/m ” b ngầ ủ ệ ộ ỉ ố ư ụ ỉ ố ể ở ằ chìa khoá được ki n t o và đế ạ ược th c thi (thí d ki u đi n vào các t p tin qu nự ụ ể ề ệ ả
lý nhân s : h tên, ngày sinh, quê quán…); ngự ọ ười ta có th truy c p nhanh chóngể ậ
t ng ph n c a t p tin; t ng ph n này l i đừ ầ ủ ệ ừ ầ ạ ược tr c u m t kho ng giá tr thíchợ ứ ộ ả ị
ng c a m i chìa khoá. Vì m t ki u c u trúc nh th thì đ c tr ng cho t t c
các h th ng t p tin c a các th m c. Chúng ta có th nhìn th y đi u này m tệ ố ệ ủ ư ụ ể ấ ề ộ cách chính xác h n: Hình 4.9 ch ra c u trúc ki u ch s v i m t thí d v t pơ ỉ ấ ể ỉ ố ớ ộ ụ ề ệ tin qu n lý nhân s T p tin này đả ự ệ ượ ắc s p x p theo m t chìa khoá, thí d theoế ộ ụ
l a tu i. Các b n ghi d li u riêng l đứ ổ ả ữ ệ ẻ ượ ạ ậc t o l p qua mũi tên xu t phát tấ ừ
b c s 0.ậ ố
Hình 4.9****************************
Chìa khoá l n nh t (con s l n nh t) c a m t t p tin (ô hình ch nh t nhớ ấ ố ớ ấ ủ ộ ệ ữ ậ ư hình 4.9) b t đ u t ch s c a b c s 0 đắ ầ ừ ỉ ố ủ ậ ố ược mô t ch s c a b c s 1; chìaả ở ỉ ố ủ ậ ố khoá l n nh t c a m t đo n t p tin c a b c s 1đớ ấ ủ ộ ạ ệ ủ ậ ố ược ch ra ch s c a b cỉ ở ỉ ố ủ ậ
s 2… N u ngố ế ười ta tìm b n ghi d li u c a m t chìa khoá xác đ nh x, do đó,ả ữ ệ ủ ộ ị
người ta ph i xác đ nh kho ng xu t phát c a ch s th 2, mà trong kho ng nàyả ị ả ấ ủ ỉ ố ứ ả
t n t i chìa khoá c n tìm, và xu t phát t gi i h n trên c a kho ng này, nhồ ạ ầ ấ ừ ớ ạ ủ ả ờ
b c s p x p, các t p tin tu n t d ch chuy n t dậ ắ ế ệ ầ ự ị ể ừ ưới lên cho t i khi ngớ ười ta tìm th y con s c a b n ghi d li u. Sau đó, ngấ ố ủ ả ữ ệ ười ta có th đ c b n ghi dể ọ ả ữ
li u mà nó đệ ượ ạc t o ra có m c đích t t p tin.ụ ừ ệ
N u ngế ười ta th c nghi m đ mô t c u trúc logic cho các đ i tự ệ ể ả ấ ố ượng v t lýậ
v t đế ường (track), hình tr (cylinder), hình qu t (sector), do đó ngụ ạ ười ta có thể
d dàng nh n đễ ậ ược v n đ đ tái b n các b n ghi d li u và đ t ch c b nấ ề ể ả ả ữ ệ ể ổ ứ ả ghi m t cách m i m Thí d , vi c t ch c b n ghi v i chìa khóa s 41 (xemộ ớ ẽ ụ ệ ổ ứ ả ớ ố hình 4.9) đ t o nên nh ng v n đ tể ạ ữ ấ ề ương đ i đ y đ , vì m i h p ch nh t cóố ầ ủ ỗ ộ ữ ậ
kh năng l n nh t là 3 chìa khoá và nó luôn luôn ch a đ ng s n sàng 3 chìaả ớ ấ ứ ự ẵ khoá này. Do đó, chúng c n t i các c u trúc tr giúp cho vi c t ch c các dòngầ ớ ấ ợ ệ ổ ứ
d li u phát sinh khi thay đ i thữ ệ ổ ường xuyên các d li u và chúng đòi h i ngayữ ệ ỏ