ƯƠ Ả Ệ CH NG 4: QU N LÝ T P TIN

ệ ệ ả (Files Manager) ề 4.0. Quan ni m v  qu n lý t p tin

ộ ế Ở ệ ẻ ộ

ặ ư ế ữ ữ ệ ủ ạ ể

ệ ộ ế ạ ư ở ạ ớ i v i cái b n đã có? Tính ch t này c a d  li u g i là c

ườ ữ ệ ọ ả ượ ế ạ c khi d  li u đ

i ta đ t đ ươ

ế c khi k t thúc ch ả ộ ấ ạ ớ

ợ ữ ệ ệ ố ứ ổ ắ ể ả

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 ị ữ ệ ạ   ớ ộ ạ ượ đ nh d  li u, ng t vào b  nh  qu ng đ i c vi ướ ề Ở  ộ ấ ẫ tr 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 ệ ứ ệ ộ    ch c t p tin đ  qu n lý các t p d  li u trong h  th ng máy m t cách th c t tính.

ệ ố

(Files­ System)

4.1. H  th ng t p tin

ả ầ ể ệ ụ ụ ệ

ả ầ

ị ớ ả ượ ộ ụ ạ ậ ế ấ ả t t ế t m t cái gì đó v ủ ộ t c  các t p tin   ề  ộ ạ   ng, v  trí c a b  nh  qu ng đ i,

ỗ ữ ệ ữ ệ ư ư ế ộ

ậ ệ Đ  ph c v  vi c qu n lý t p tin, đ u tiên, chúng ta vi ầ ư vào trong m t danh sách và c n l u ý: chúng ta c n ph i bi ệ t p tin, thí d  ngày tháng năm t o l p, dung l ậ ậ lu t truy c p… ộ ả ớ ng pháp ti n hành…), mà nó đ

ướ ế ữ ệ ng đ i t

ế ươ ng trình sinh ra hay đ

ữ ệ ầ

ượ ể

ứ ự ố ượ ươ ệ ng d ng. M t cách khái quát, khi không có đ i t

ố ị ụ ư ượ

ơ ở ữ ệ ướ ệ ớ ượ ng đ i t

ẫ d n  t ươ ph ố ượ ngân hàng d  li u h ả âm thanh và hình  nh, mà chúng đ ụ d ng,   lúc   đó,   chúng   ta   c n   dùng   m t   ngân   hàng   d   li u   đa   ph (multimedia­ databank), trong đó, thông tin đ ộ ph ể ữ ữ ệ hành khi l u tr  d  li u c  đ nh đ ề li u l n thì h  th ng đi u hành c  s  d  li u h ể ử ụ ng đ ụ ơ ấ ệ

ả ớ ộ

ệ ế

ượ ớ ấ ệ ạ ậ ệ ệ ị

ế ấ 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   ủ ụ ụ ể ả   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 ộ   ượ ượ ử c m t c x  lý, do đó, chúng ta nh n đ ố ượ   ng. Ngoài ra, n u chúng ta có các đ i t ng ượ ử  ộ ượ c m t ch c s ụ   ươ ộ ng   d ng ộ ồ c ch a đ ng đ  làm đ ng b  hai   ề   ng nào thì vi c đi u ố ớ ữ  c phát tri n; còn đ i v i các ngân hàng d ể ố ượ ệ ố c phát tri n. ủ   ấ ả t c  các c  c u có trên danh m c các t p tin c a Chúng ta có th  s  d ng t ả  ể ổ ứ ấ ơ ế ạ ộ  ch c m t cách hi u qu b  nh  qu ng đ i, các c  ch  này đ c tìm th y đ  t ấ   ữ ệ ể ườ 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

ữ ệ ả ề ơ ả ữ ệ

ữ ệ ủ ở ạ ỏ ề ả ượ ạ ế ụ ả ộ  trong b ng danh m c các d  li u. N u tác v

ộ ấ ổ c gi ụ ế ị ẻ ụ ế ế ớ ấ 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 thích  đi u đó ph i đ ộ ị ẽ   t b  b  gãy (thí d  khi này b  b  gãy, thí d  vì m t lý do nào đó, ti n trình vi

ả ệ ụ ữ ệ ở

ọ ườ ộ ơ ấ

ộ ề ụ

ệ ệ

ạ ộ ữ

ế ợ ủ ệ ố ớ ư c th c thi v i t ộ ệ ợ   ồ ấ  trong b ng danh m c thì không còn thích h p m t ngu n đi n), do đó, d  li u  ở  ụ ế ữ Ở  các tác v  ti p theo, ng n a.  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 . ụ ở ấ ả ữ   t c  các tác v    trên danh Đ  phát hi n nh ng sai sót c a h  th ng t p tin, t ả ượ ử ự .  cách là nh ng ho t đ ng nhân t m c t p tin ph i đ ữ ố ệ ữ ớ

ườ ử ụ ụ ệ ả

ọ ể ồ ạ ố

ố ớ ộ ỉ

ả ệ ệ Ở ả ệ  ch c qu n lý t p tin.

ơ ồ ổ ứ ặ ể ộ ộ

ể ứ ệ ệ ể ụ ệ ệ ộ   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 ệ ở ớ i 2 t p tin v i các tên gi ng nhau Teptin1.dat và Teptin2.    hình 4.1 có th  t n t ữ ố ở   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, ỉ    đây, chúng khác nhau rõ ràng. Hình 4.2 ch  ra s  đ  t ệ ộ ậ ỗ ệ 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    ch c t p tin này thì

ớ ể ử ụ ể ể ộ ạ ỳ ấ ụ d ng, sao cho nó tr  thành c u trúc cây đ  s  d ng. Ki u t ấ r t ph  bi n. Các đ i di n nhóm đ

c bi u thì là m t th  m c. ư ế ượ ượ ệ ở ạ ứ ể ổ ệ ả ể ổ ứ ộ  ch c qu n lý các t p tin nh  th  đ ư ụ c dùng đ  t ổ ế ộ M t ki u t ch c ngân

ấ ả ượ t c  các t p tin đ

ệ ệ ị ộ ộ

ả ớ c mô t ồ ạ ở i  ệ ố ề ệ ề ữ ệ ế ầ

hàng ữ ệ ấ  v i các tính ch t và các    d   li u, mà trong đó, t ư ụ ể ữ  ự ư hi n th  n i dung. S  l u ý v  các t p tin thì t n t  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 ả ượ gi n đ c dùng.

Hình 4.3­­­­­­­­­­­­­­­­­­­­­­­

ượ M t ki u s  đ  khác cũng th c dùng, đó là ki u s  đ  t

ộ ể ể ơ ồ ạ ườ ng đ ụ

ớ ệ Ở ủ ể ơ ồ ổ ứ ệ    ch c t p ư  ỉ  đó ch  ra 2 th ệ   Thongbao. dot c a công ty, vì t p

ồ ạ ộ tin ki u m ng, hãy xem m t thí d  trong hình 4.3 trên đây.  m c ụ Ban a và Ban b có th  n i ngang v i t p tin  ể ố i. tin này luôn luôn t n t

(Filesname)

4.2. Tên t p tin

ỉ ả ượ ở ệ ề c b o v  b n v ng trên b

ả ế ặ D  li u c a các ti n trình không ch  ph i đ ớ ữ ế

ả ạ ể c bi u th  m t t

khoá rõ ràng. Vì cách t ự ả ị ộ ừ ườ ỗ ệ ệ ầ ả ố

ệ ủ ệ

ệ ượ ế ậ ộ ế ỗ ệ ư ể ệ ố

ụ ệ ả ộ  ữ ệ ủ ậ ạ   t ph i t o kh  năng truy c p qua các ti n trình khác nh  qu ng đ i, mà đ c bi ổ ứ ệ   ch c h nhau, do đó, m i t p tin đ ố ư ệ ậ   i th c hi n, cũng gi ng nh  vi c l p th ng qu n lý t p tin h u h t do con ng ể ố ỉ  ể 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 ị ộ ư ượ ng tr ng…, khác, m i t p tin có thêm m t con s , coi nh  bi u th  m t khoá t   ộ ộ  ả ợ i cho vi c qu n lý n i b thí d  Vanban1.doc, Vanban2.doc…Cách làm này có l

ệ ng) m t cách d  dàng. T p tin có th  đ

ị ặ ạ ộ ể ượ ẫ ễ ộ ệ ở ớ ộ ượ ỗ i m t ch  nào đó c thi hành ị  tron b  nh  mà t p tin v n không b  thay

ệ các t p tin (v  trí, dung l ượ hay đ c đ t t đ i.ổ

ể ệ

4.2.1 Ki u t p tin và t o tên t p tin

ồ ộ ầ ệ

ấ ấ ấ

ấ ầ ở ộ ộ ự ợ

ộ ệ

ở ở ộ ề ằ ở ộ ử ụ ể

ẩ ữ ướ ở ộ ộ  theo chu n ASCII. Có nh ng quy

ặ ữ ệ ươ ụ ể ạ ộ ạ   ng trình t o

ạ ả

ả ồ ủ ồ ủ ữ ữ ặ ệ ạ ươ ng trình vi ươ ng trình vi

ữ t b ng ngôn ng  C;

ạ ể ế ằ t b ng ngôn ng  PASCAL; ế ằ t b ng ngôn ng  C; ế ằ ươ ng trình vi ạ

ộ ệ ệ

ệ ủ ặ ả t c a trang WEB;

ậ ệ ố i;

ạ ề ả ệ ố ượ   c M t cách truy n th ng, nói chung tên t p tin g m hai ph n, chúng đ ộ ấ   ngă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 ầ ả extension). Ph n m  r ng này cho th y m t s  tr  giúp ph i là ph n m  r ng (   ệ   ụ ủ ệ ề ụ 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 ạ ệ ượ ấ c c u thành b i các tin Vanban có ki u m  r ng txt là m t lo i t p tin text đ   ụ  ầ ự ký t 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 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 .c               cho mã ngu n c a ch ệ .h              các t p tin khai báo cho các ch ồ ữ ệ ệ .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 .Z ; .zip; .gz        cho các t p tin nén l .jog; .gi; .ti; .bmp cho các t p tin v   nh.

ườ ở ộ ứ ự

ề ố ớ ớ ằ ữ

ượ ự

ệ ặ   ỉ ộ 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 ộ   ả ằ i r ng, đ i v i m t c lý gi ặ   ở ộ ầ  làm ph n m  r ng và m c t quá nhi u.

ấ ể ề ở ệ ố c t o b i h  th ng ng

ủ ệ ầ Ng ả ỉ ỉ ự ổ ư ch  th nh tho ng nh ng ký t  c  x a. Đi u đó đ ườ ệ ệ ố ng cho phép vài ký t h  th ng t p tin thông th ế ả ườ ử ụ ậ khác, nó thu n ti n cho ng i s  d ng không ph i vi ượ ạ ở ộ ầ ề Có r t nhi u ki u ph n m  r ng, mà chúng đ ụ ụ ệ ể ượ ử ụ ữ ỳ

ệ ằ ỉ

ụ ượ ề ể c vi

ự ớ ớ i 255 ký t

ở  trong Unix ệ ề ệ ầ cho ph n chính và 10 ký t . V i Unix   ự

ể ự  c a tên t p tin có ít h n 14 ký t ự ố ở ộ ư ệ ầ ở ườ ử  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 ổ ườ ậ c s  d ng thay đ i, do đó, nh ng ng i l p trình chung là tu  ý và có th  đ   Ở  ủ ớ ề i cái đó, nh m làm cho t p tin ch  rõ công d ng c a chúng.  đ u đã chú ý t ữ ố ả magic number) đ ộ ế ầ ệ đ u t p tin, m t hay nhi u ki u ch  s   o (   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 h  đi u hành Unix, có th  có t Tên t p tin  ự ủ version V, s  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}

ộ ớ ủ

ộ ớ ữ ệ ủ

ướ x

ữ ệ ộ ớ ủ

ướ x

ộ ớ ả

ươ ư ng trình}

a_txt:            CARDINAL                       {đ  l n c a Codesegment} ở   a_data:                   CARDINAL                   {đ  l n Segment c a các d  li u kh i ng} ở   a_bss:                       CARDINAL{đ  l n Segment c a các d  li u không kh i ng} ể a_syms:        CARDINAL     {đ  l n b ng bi u tr ng Symboltable} ự ắ ầ ủ a_entry:        CARDINAL  {s  b t đ u c a ch … END

ộ ố ả

ệ ể ự ươ ỉ ẫ ớ ự ả   i s  gi i ằ   ng pháp

ứ ấ ệ ệ ượ ầ Tuy nhiên, m t s   o đ ng đ u tên t p tin; chúng không ch  d n t ề ề thích v  đi u đó (cho th y t p tin có th  th c thi), mà còn, b ng ph ệ nào t p tin đ

ượ ả

ượ ử ụ

t c : mã không đ

c b o v  cũng không đ

c s  d ng cho 1

c th c hi n: a_magic=  407B {t o d ng t

ượ

c b o v  Data­ Segment đ

c đ t

ặ ở ớ ạ  gi

i h n trang

ượ ở

ự ấ ả ạ ế ti n trình khác} a_magic=   410B {Text­Segment đ cu i cùng (4kB)

ắ ầ ở ớ ạ

ủ ệ

i  h n 4kB c a t p tin;  Text  và Data­

ộ ố ủ

ớ ộ  trong b  nh } a_magic=   413B   {Text­ Segment  b t  đ u   gi 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ó ệ t. Sau đây t này thì r t đ c bi

ả ạ ệ ệ ụ ề ể ở ộ th  th c thi khi kh i đ ng t p tin. Lo i phân bi ệ ệ chúng ta kh o sát vài thí d  v  ki u phân bi t t p tin này.

ệ ụ ề ể :

ị ể ể ộ ệ c bi u th  nh 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 nén l

ố ớ ệ ể ệ ệ ế ượ

c nén. Đ i v i t p tin này, n u ki u t p tin đ ệ ể ự

ụ ứ ể ườ ở

ể ả ọ

ệ ể ạ ộ ể ợ ờ  ượ ộ ệ ụ ộ   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 ượ ả ớ   ạ ở ạ ấ  d ng tái bút (postscript) v i b n (Script), mà  n b n c a nó đã đ i  ượ ệ ươ ả ọ   ườ ầ ể ọ i ta ph i g i ng trình nén zip. Đ  đ c đ ch c t p tin này, đ u tiên, ng ế   ể ớ ệ ươ ng trình gunzip, và sau đó, t p tin chuy n t ch 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 ượ   ể ệ ở ự  trong ki u t p tin đ đ ng  c ư ụ ỉ ẫ ệ ạ   i ta có th  th c hi n tác v  th  hai. Vi c t o ch  d n trong th  m c, do đó, ng ở ự ế   ả ả ượ ắ ể ệ  trong t p tin hay nó ph i là ki u b i s  x p c c t nghĩa  ki u t p tin ph i đ ớ   ả ỉ ề ể ề ầ ủ 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 đó.

ụ ề ể ệ 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

ươ Thí d  v  ki u t p tin và các ho t đ ng ch Ở ệ ả

ở ộ ỉ ầ ượ ự ề ơ ộ ự  ồ ệ ấ ề ệ   qu n lý t p tin bao hàm trong giao di n này. Đi u đó cho th y, các t p tin ẽ ẫ ớ ộ ữ ỗ   chuyên d ng  ng v i m i ph n m  r ng s  d n t i nh ng tác đ ng khác nhau ộ ư ủ   c ch  ra nh  là m t Menu (th c đ n) khi kích c a ch ệ ụ ớ ươ ng trình, đi u đó đ

ộ ả ạ ộ ệ ượ ở ạ  t i tên t p tin, thì ho t đ ng đ ẫ c d n ra

ộ ở ộ chu t ph i. Khi kích đôi chu t trái  ẽ ắ ầ trong Menu s  b t đ u kh i đ ng.

ở ươ ụ ề ể ệ ng trình Windows NT :

ạ ữ ệ ả ệ ề

ộ ở ng trình

Thí d  v  ki u t p tin và ho t đ ng ch D i  ướ Windows NT  có trình so n th o Editor, trình này qu n lý m t ngân ả   ụ   t c  các  ng d ng, b  kích t o h  đi u hành và các ư    trong h  th ng cũng nh  các ộ ệ   ạ i trên m t t p

ng trình đ ệ ố ộ ượ ọ c g i.

ườ ạ ộ ạ ứ ủ ấ ả hàng d  li u riêng c a t ươ ấ ả ệ ố ấ c u hình h  th ng…T t c  các ch ầ ở ề ở ộ  đó. Khi kích đôi chu t trái t c khai báo  ph n m  r ng đ u đ ở ộ ệ ả tin  Ng

ượ  trong trình qu n lý t p tin thì m t ch ằ ệ ề

ườ ệ ư ng không đ ượ ặ ớ t hay đ

ể ươ ề ể ệ ụ ừ   i ta l u ý r ng, trong hai thí d  v a nêu, thông tin v  ki u t p tin ặ   ệ i trong các t p tin đ c ề   t. Đi u ng trình đ c bi ổ ứ   ệ  ch c ấ ổ

ữ ệ ổ ặ ự ệ ượ th ứ ự ượ c ch a đ ng và đ bi ề ể ố ấ đó thì không có v n đ  gì. Ki u t ộ ấ ả ệ t ượ 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

ứ ả

ệ ố ự ệ ắ ạ ể ượ ệ ỉ c phép ng n l

ồ ạ ở

i  ượ ư ệ

ự ầ ố ự ầ ủ

ượ ượ ệ ấ ơ ồ ạ ả c h  đi u hành qu n lý, mà nó t n t ả ệ ươ c qu n lý v i các ch ả ấ t nh t cho vi c qu n lý các t p tin là 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 ờ ở  ỏ ự  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 ụ ệ i. Thí d  có hai tên t p tin (khi th c thi), t p tin ch  có th  đ   ệ   ệ ố MethodeForUser.txt và MethodeForEvery.txt cùng t n t  trong h  th ng t p ườ   ự ố tin. Khi hai t p tin mu n th c thi, thì 8 ký t ng c l u ý. Trong tr  đ u tiên đ ợ ộ   ậ ở h p này, 8 ký t   đây, m t ươ ph ệ  đ u tiên c a hai t p tin gi ng  nhau. Do v y,  ế ắ c tìm th y cho phép s p x p các t p tin đ c rõ ràng h n. ng pháp đ

ổ ệ :

ệ ố ể ả ả

ệ ố ả ể

ệ ố ạ ượ ổ ệ ố ề ằ c b ng các gi

ể ụ ề ự Thí d  v  s  chuy n đ i tên t p tin trong Windows NT ệ ề ệ  Windows NT có th  qu n lý c  các h  th ng t p tin DOS Vì h  đi u hành    ấ   ệ ạ  đây v n bên c nh h  th ng t p tin NTFS (windows NT File System). Cho nê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 MS­DOS. Đi u này đ t đ i thu t sau đây:

ở ợ ự ủ ấ ả c a tên t p tin không h p lý

ậ (1) ể ệ T t c  các ký t ổ

ự ủ ả c a 16 Bit­ Unicode, các đi m ằ ể ở ầ ở ố  đ u, ượ   c  trong MS­DOS đ ự  ắ ỏ    cu i và trong kho ng tên

ự ầ ấ

ầ ắ ỏ ượ

ự ứ ỗ ủ  đ ng tr  đ u tiên c a chu i ký t ệ c c t b ; và sau đó, ký hi u ~1 đ ự

ỗ ố ự ấ ả  T t c  6 ký t ở ộ ạ i 3 ký t ự ở

ướ ấ c d u ch m phân   ướ   ượ c thay vào tr c ở ộ   ầ ể ạ  sau đi m phân đo n ph n m  r ng ạ   ỗ ắ ỏ  cu i ph n này c t b  và chu i ký t i  còn l ớ ở ộ ầ , các ký t ữ đo n ph n m  r ng đ đi m phân đo n ph n m  r ng. Chu i ký t ự ầ ch  đ  l ỗ chuy n thành chu i các ch  cái l n.

ự ố ộ ệ ớ ệ ế ỉ ệ ệ ố chuy 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 ệ t p tin. (2) ạ ể ỉ ể ạ ể (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 ồ   c thay vào ch  đó. N u t p tin này đã t n

ồ ạ ự ố ệ ế ằ ệ đó, thay vì ký hi u ~1, ký hi u ~2 đ ạ 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.

ườ

4.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

ế ớ ẫ ng d n đi t

ể ắ ượ ệ ệ

ệ ễ ộ ườ ờ ậ ủ ẫ ng d n c a m t t p tin đ ự ườ ậ c th c hi n thu n ti n. Tên đ  m t chu i các tên nút và ch a đ ng ký t

ứ ự ể ườ ự ỗ ặ ệ ệ t, nó là bi u t

ệ ề ẫ ả  ộ   i m t ượ ạ   ộ ệ c t o ữ    tách chia gi a các tên nút. Đó là ể ỗ ệ ề   ng tiêu bi u cho m i h  đi u hành. Thí ườ ệ    trong hình 4.3, tên t p tin Vanban1.txt có đ ng d n trong h  đi u hành

ệ ạ năng đ  s p x p các nút có d ng hình cây, nh  v y, m t đ ệ t p tin đ ậ ừ ộ l p t ộ ấ m t d u hi u đ c bi ụ ở d   Unix:

ở ạ trong h  đi u hành Windows NT có d ng:

ự ế ố ề ề ẫ Institut5/Rudi/Vanban1.txt ệ ể còn           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.

ữ ố ọ

ộ ể ệ ố ư trên c a h  th ng cây th  m c t p tin đ ặ ượ ở ệ

ư ụ ệ ấ t: d u xiên trái(/)  ị ượ ệ

ố i lên trên theo h

c g i là g c, nó   ấ    trong Unix, d u ệ   ự c th c hi n ụ ng g c cây th  m c t p tin. Thí d  trong   ườ    th  m c Hans, tên đ ng ộ th  m c Rudi mà c   ạ ư ụ ệ ả ở ư ụ ư ụ ướ ở ư ụ ỗ ấ ể ở ủ Nh ng nút  ị ở ể ượ c bi u th  b i m t bi u tr ng đ c bi đ ở ả  trong Windows NT. Khi thông d ch tên t p tin, nó đ xiên ph i (\)  ướ ừ ướ ừ c t t ng b  d ệ hình 4.3, t p tin Brief.doc  ễ ượ ẫ ủ 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 đ ườ ệ ố ượ m t v  trí nào đó c a cây t ọ  g c đ n ng n là tên t p tin. Thí d

ố ắ ầ ừ ộ ị ị ừ ố ế ố ẫ ươ ộ ườ ớ ệ ườ ng d n tuy t đ i đ ỉ ng đ i b t đ u t ể c bi u th  t ng d n t i t p tin.   ụ ở    ng  đ i    ../Daten/Dat1.a v i  t p tin

ủ ng d n t ẫ Tên đ trong hình 4.4 ch  ra  m t  đ ươ ng trình Prog. Dat1.a c a ch

Hình 4.4 ­­­­­­­­­­­­­­­­­

ư ụ ở

ụ ề

4.2.3. Thí d  v  cây th  m c

Unix

ụ ơ ồ ộ ệ ố ỉ Trong Unix, s  đ  m t h  th ng t p tin thông d ng đ

ờ ệ c ch  ra trong hình ở ấ  c u trúc cây này

ể ố ệ ượ ạ ậ ở 4.2, nh  đó không gian tên t p tin đ ng

ể ệ

ế ệ ớ ư ụ ượ đĩa hay ch a (?). N u chúng đã đ

ườ ể

ượ ế ượ c t o l p. Ngoài ra  ệ ữ ườ i ta có th  n i ngang qua gi a các t p tin b i lênh “ln”. ườ ủ ơ ồ ố ớ ặ i ta ph i phân bi Đ i v i đ c đi m c a s  đ  tên, ng ế ổ c thu x p v i các tên t p tin trên  ợ ế ế ượ ạ c l ả ượ ư đ ự ế ộ ự ố x p, do đó, m t s  n i ngang tr c ti p là có th . Tr ế ố ứ ậ v t lý hay k t n i c ng. N u ng i, chúng đ t, các th  m c đã c thu   ế ố   ọ ng h p này g i là k t n i ổ c thu x p khác nhau trên

ẫ ườ t đ t m t s  n i ngang logic và d n ra tên đ ườ   ng i ta có th  thi

ộ ự ố ế ặ ọ ng h p này g i là k t n i t

ở ệ ỏ

ư ụ ậ

ư symbol­link). ng tr ng ( ệ ở ỗ    ch , vi c xoá b  tên t p tin ườ ử ụ   i s  d ng truy c p chúng. ấ    trong hình 4.5, chúng ta th y

ư ự ư ụ ệ ể đĩa, do đó, ng ế ố ượ ợ ẫ ủ ườ d n c a chúng. Tr ế ố ở ự  trên là   các k t n i ngang nói  S  khác nhau  ề ế ề hay th  m c khi có nhi u ti n trình hay nhi u ng ớ ệ ố ư ụ ở ế N u chúng ta l u ý t i h  th ng cây th  m c  ữ ệ ằ 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­­­­­­­­­­­­­­­­­

ở ế ượ ư ụ các c ghép N u các th  m c Gruppe1 và Gruppe2 đ

ở ặ ứ ổ  đĩa khác nhau, do ố ệ ớ t v i các n i ngang ố ậ ấ  đây c p th  nh t là n i v t lý, còn

đó, các n i ngang  Rudi/Datei2   và Hans/Datei2 thì khác bi Gruppe1/Hans/Datei3 và Gruppe2/Datei3:  ặ c p th  hai là n i logic.

ẽ ồ ạ ố ố ờ ở N u bây gi c xoá b , do đó, nó s  t n t

ộ ệ  Unix m t t p tin đ ộ ự ế ố ậ i t ế ệ i.

ụ ỉ ượ c xoá b , do đó, t p tin ch  còn l

ẫ ẫ c l

ứ ế ế ườ ng d n  Rudi/Datei2 đ ườ ng d n Hans/Datei2 và có th  s  d ng đ ng d n   Hans/Datei3 xoá b ; do đó, t p tin t

ệ ượ ị ỏ ươ ồ ạ  trong th  m c Gruppe2 v n còn t n t ệ ở ậ ứ ế ể   ỏ ượ i thi u ồ ạ Ở    trong thí d  đã nêu, n u t p tin ạ ướ ỏ   i d i cái tên ượ ạ ế ệ ể ử ụ   c. Ng i n u t p tin có ỏ ự  ệ ứ ng  ng cũng b  xoá b ; s ư   ư ụ i, nh ng ấ   i khi tham chi u tên t p tin này,

ẫ ế ậ ệ ộ ệ ớ cho đ n khi có m t s  k t n i v t lý t n t có đ có đ ườ đ tham chi u tên (sysbol­link)  ệ ỗ khi truy c p t p tin thì ngay l p t c xu t hi n l ữ ứ 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 l t

ượ ề

ố ướ ư ụ ằ i tình hu ng, r ng bây gi  phía d i còn t n t

ữ ứ

ồ ạ ư ụ ể ể

ể ố

ỏ ượ c. Đi u đó thì cũng khong th  tránh đ ư ệ ụ ở ấ ạ

ế ố ượ ề ể ỉ

ế ở Đ i v i vi c t o l p hay xoá b  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 ậ ư ế ể ẫ ớ ỗ   i. Chúng ta nh n th y r ng, ph m vi đa ti n trình, nh ng cũng có th  d n t i l ủ ế ố ậ ự ư ụ ở ạ   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  t chúng ta đang  ể ư ụ ấ ư ỏ ộ ệ th  m c Gruppe1. Vì vi c xóa b  m t th  m c ch a tr ng thì c m (đ  tránh   ể ượ ạ ở ạ   ư ụ ượ ỗ i), do đó, chúng ta không th  xoá đ l i i,  c th  m c Gruppe2. Ng ứ ộ ế ố ủ ở ư ụ    đây có m t k t n i th  hai c a th  m c Rudi, cho nên cho th  m c Gruppe1:  ờ ư ụ   ẫ ớ ệ ỏ phép xoá b  tên t p tin đ  th  m c c. Đi u đó d n t ệ ở ư ụ ớ   i, tuy nhiên Gruppe1 v i th  m c con và các t p tin  ố ữ ượ ữ c n a, vì chúng là nh ng th  m c tr ng, và nh ng th  đó không còn dùng đ   ượ ề   c: tuy do đó cũng không th  xoá b  đ ệ ể ế ố 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 dùng ki u k t n i logic. c a Unix v  cây th  m c thì ch  còn đ ộ ệ ạ ậ ộ ế ế ệ ờ ề i t o l p. Và nó s

ườ ạ ậ ư ậ ị ế ố ọ

ế ở ề ỏ ệ  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 cho t t n 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.

ổ ệ ượ ệ ố ơ ồ

ệ ố ệ ố ổ ổ ủ

ố ủ ằ ở

ượ ủ c phân chia thành các s  đ  nhánh ở    đĩa khác nhau. Khi kh i ộ    đĩa khác  nhau vào m t ỗ    đó, nút g c c a m i ư ụ mount point

ồ ạ ệ ọ ệ ố ở ả ả ư ụ ệ c ph n  nh b i tên c a m t th  m c ( ộ ộ ư ậ H  th ng t p tin hình cây t ng quát đ ệ khác nhau, mà các t p tin c a chúng t n t i trên các  ộ đ ng h  th ng (bootstrap), h  th ng t p tin c a các  ộ ố nút g c (root) b ng m t hàm g i h  th ng mount(), mà  ệ ệ ố h  th ng t p tin còn đ ỉ 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

ả trong h   đi u hành Windows NT mô t

ớ ầ

ổ ụ ố ượ ệ ề ộ ậ ư ư ụ ở ộ ng khác nh  các kênh trao đ i thông tin (

ớ ụ ượ ố   ộ  toàn b  các đ i Cây th  m c  ệ 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ý   communication­canal   ờ ệ semaphore),    c trao cho

ẻ shared memory), các c  hi u ( ố ượ ọ ng v i tên g i toàn c c đ ậ ng  ng khi truy c p.

ắ ầ ở ấ ả

ố ượ

ộ ế ệ ươ ứ ư ụ ệ ứ ư ụ ố ượ ế ố ư ụ ớ ủ

ượ t ữ hay nh ng đ i t hay named pips), các b  nh  chia x  ( ế ố các bi n c  hay các ti n trình. Các đ i t ơ ế ả các c  ch  b o v  t ở ớ ệ ố 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 (\),  ố ượ 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 ch a đ ng tên c a đ i t ạ ậ ữ ọ ướ ớ ở

ố ượ ng pháp (t o l p, m  hay đ c l ả ạ ồ ư ụ t các th  m c). H ườ ử ụ

ệ ề ỉ

ệ ố ư ả

ố ớ ụ ế ấ

ệ ử ụ ả ề ể ề ơ

ồ    đó t n ạ   ng là t ố   ộ ự ng v i nh ng thu c tính (bi n s , các đ i t ệ  ằ ươ ố h ng s …), v i các ph ỉ ạ ố   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 ươ   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 ph ế ti n trình…).

các th  m c đ i t

ư ụ ố ượ ề

ệ   ng hay vi c ệ   ể ự ng d n k t n i ngang (nh  trong Unix) đ u có th  th c hi n i ư ụ ế ố  trong Windows NT.

ề ệ Ở ể ạ ậ ụ ừ Tuy nhiên, đ  t o l p th  m c toàn c c t ư ẫ ườ ế ặ t đ t các đ thi ậ ợ ở ộ m t cách thu n l ư ụ ủ ố ượ ồ ạ ng thì t n t

ỗ ố ượ ệ ộ ạ ng h  th ng t p tin “Floppy”. V i m i đ i t

ượ ế ả

ng d n A:\Texte\bs_files.doc, do đó, t

ầ ớ ở ố ượ   ề  cây th  m c c a vi c đi u hành đ i t ng i nhi u đ i t ộ ế ố ố ượ ng “A:” là m t k t n i ngang logic   ươ   ớ ệ ố ng ạ   c chuyên môn hoá. N u trình so n th o Editor mu n m  t p tin ng, nó     ng tìm ớ ố   i đ i i

ng thì m t ph ố ở ệ ố ượ ố ượ  ch  nào (?). N u nó đi t ụ ạ ử ổ ề i c a s  đi u hành đ i t ề ng pháp dò tìm, trình đi u hành đ i t ỗ ượ ươ khác nhau (xem hình 4.7). Ch ng h n đ i t ớ ố ượ v i đ i t pháp dò tìm đ ẫ ườ có đ ươ ỏ ố ượ ng này. B ng ph h i đ i t ố ượ ư ụ ủ ế ng c n t ki m cây th  m c c a nó: đ i t ế ố ượ ng pháp k t n i logic đ t ế c áp d ng. ng “A:”,  thì khi đó, ph

Hình 4.7­­­­­­­­­­­­­­­­­­­­­

ự ế ở “A:” đ c thay th  b i chu i ký t

ề ườ ự ể ẽ ử ỗ ố ượ ng. Trình này s  x  lý đ

ươ ố ượ ượ ỗ Chu i ký t ượ c chuy n cho trình đi u hành đ i t ớ

ườ

ớ ớ ệ ệ ệ ố ộ ố ượ i khi m t đ i t ệ ề t, cho t “\Device\Floppy0” và sau ẫ   ng d n ệ   ng pháp dò tìm này làm vi c ẫ   ệ ng d n   ng t p tin v i bs_files.doc có

ố ộ ợ ể

ủ đó, đ ặ cho t ng t p tin “Floppy0”. Ph i khi g p đ i t ư ụ ủ 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 đ ặ ớ ủ ụ v i các th  t c đ c bi ể ượ ư ở ạ i. c đ a tr  l th  đ ở ế ớ ơ V i c  ch  này,  ệ ệ ố

ệ ệ ệ ệ ố ệ ố ư ệ ố ủ ấ

ng đ

ấ    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 t ộ ộ ể ế i: m t b  đ  đ m s  l ư ẫ ớ ươ i t c d n t ượ ẫ ớ c d n t

ế ố ượ  các ti n trình ng

ố ượ ộ ộ ữ ể ế ậ ở ượ ị ng que ch  th , khi đó chúng đ

ố ượ ẽ chúng đ

ố ượ ị ả

ượ ế ủ ệ ề ộ ế ớ

ộ i. V i c

ộ ế i phóng và đ ề ở ạ ị ượ ử ế   ề ượ c nhi u ti n    nh  trong Unix. Vì lý do ng các   ườ ử  c đón nh n  i s ỉ ượ ư c đ a vào   ở ậ   c trao cho b i các đ i t ng khi truy c p ườ ử ụ ệ   ế ớ i s  d ng mà tham chi u t i tên t p ở ẽ ị ư ụ   ng s  b  xóa   trong cây th  m c; và ậ ể   c. Tuy nhiên, nó   i khi b  đ m các tham chi u c a h  đi u hành ớ ơ  ượ ự ụ c s  d ng tr  l c gi ộ   ế c nhi u ti n trình x  lý b  xoá m t

ớ ớ ượ ộ ố ượ c: m t đ i t ế ẫ ệ trình s  d ng, thì các c  ch  đ ộ ế ự th c thi, có hai b  đ m tham chi u đ ứ ng, khi đó chúng đ ch c danh đ i t ố ượ ụ d ng; và m t b  n a đ  đ m s  l ượ ệ ề h  đi u hành (đáng l ế ủ ộ ế ế nhanh). N u b  đ m tham chi u c a ng ớ ố tin b  gi m xu ng t i 0, thì do đó, đ i t ế cũng vì th , không có m t ti n trình nào có th  truy c p đ ộ ở ạ ẫ i trong b  nh  cho t  l v n còn  ả ố gi m xu ng 0. Sau đó b  nh  đ ế ch  này đã tránh đ ướ ầ cách nh m l n tr ả ượ ng đ 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. S  tham chi u c a h  đi u hành t ng t p tin cho t i khi quan h  nói trên không còn n a.

ộ ệ ế   ụ ộ ố ượ ng ti n ế 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   ệ ớ ố   i k t thúc; tuy nhiên, v n còn m t ti n trình có quan h  v i đ i ả ự ồ   ớ ế i ti n trình th  hai đ m b o s  t n ệ ơ ế ả ệ trình đ này, nó đi t ế ượ t ệ ạ ủ ố ượ t i c a đ i t 4.3. Thu c tính t p tin và c  ch  b o v

ầ ế ứ ộ ệ

ằ ượ ộ ả ộ ớ ệ ư ụ ệ

ằ ộ ỉ

ệ ố ư ẩ ấ Hidden), h  th ng.

ọ ộ ạ ệ ủ

ườ ệ t c a các thông tin tr ng thái là các thông tin b o v  nh ươ ng t

ề ệ   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 ( ạ ươ ườ

ủ ệ ộ ư ươ ươ ấ ỗ ủ ng

ớ i  khi truy xu t ch ữ ệ ệ ỷ

ư ị ờ ệ ả ư  ặ M t d ng đ c bi ậ ự  ố ớ ệ ậ ủ ng trình đ i v i t p tin. T lu t truy c p c a con ng i và c a các ch ư ố ớ ể ạ ỏ ứ   ơ ế ả i ta đã xem xét đ  lo i b  các ch c nh  đ i v i các c  ch  b o v  b  nh , ng i sườ ử  ỗ ủ ng trình nh  các l i c a ch năng l ng trình c a  ụ ữ ờ d ngụ  nh  nh ng bi n pháp có m c đích: Nh ng bi n pháp do U  ban POSI­6   ộ ề đ  ngh  có n i dùng nh  sau:

ề ắ ặ ọ ấ least privilege) đ iố

ệ ệ ộ ả + Ph i đ m b o nguyên t c thu g n đ c quy n ít nh t ( ụ ệ ớ v i vi c th c hi n m t nhi m v .

ả ả ự ả ổ ể ề

ộ ậ ứ ớ

ậ ấ ưỡ ng b c thì đ c l p v i ng ở ỉ ả ế ớ ờ ạ   + 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 ườ   ệ i ặ   ấ ố ượ ng ch  x y ra b i các ti n trình v i các đ c

ệ (discretionary access control). Vi c truy xu t c ạ ậ t o l p. Vi c truy xu t đ i t quy n l n h n.

ệ ơ ả ư ề ạ ể ệ   ng nh m có th  phát hi n

ệ i làm vi c trong h  th ng khi s  d ng sai trái. các nguyên nhân và các ng

ằ ử ụ ầ ệ ề ỉ ự ể ấ ề ớ ủ ố ượ + Ph i l u ý các ghi chép v  tr ng thái c a đ i t ệ ố ườ ớ ạ i h n các yêu c u k  trên. i, h  đi u hành ch  th c thi r t gi ượ ạ c l Ng

ậ ở

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: ấ ả t (w), th c thi (x). T t c  các t p tin và các th  m c đ u có

ư

Ở ệ ề ọ ế đ c (ký hi u r), vi ư ộ ạ 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 (owner), thành viên m t nhóm ( user group member) và m i ng ệ ố   t 3 h ng: ch  nhân h  th ng other). ủ ườ i khác (

ỉ ẫ ề ề ậ

ệ ậ 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 ls­al đ

ể ủ ệ ư ụ ề ụ ớ ệ ệ ộ ậ ượ ạ ể  ệ   c đo n thông

xem các t p tin c a m t th  m c, thí d  v i l nh này, ta nh n đ báo:

ượ ự ế ề  ti p theo đ

ưở ườ ọ

ấ ườ ử ụ i khác) v i r: đ c, w: vi ề ng), other (ng ỉ ể ộ

ủ ế ữ ả

ạ ậ ố ờ

ớ ậ ườ ử ụ i s  d ng, dung l Ở ệ ở ộ ủ ộ ệ ấ ỉ

ủ ệ

ể ượ ủ ộ Ở ứ drwxr­xr­x               brause    512         Ap23     15:55       .                        drwxr­xr­x               obene     512         May17  17:53       ..                         ­ rw­ r­­r –                brause    44181     Ap23    15:56     data1.txt  ư ụ   ậ ủ Ở ộ ầ  c t đ u tiên là các quy n truy c p c a các t p tin. Trong đó: d là th  m c   i s  d ng owner c phân làm 3 cho các ng ế t, x: tìm   ọ   ượ c ch n. ượ   ng  dòng   ư   m t th ượ ạ ậ   c t o l p ng 512Byte, đ ấ   ấ  dòng th  2 c a c t này có d u hai ch m

i s  d ng brause có dung l ờ  55 phút.  ự . ng t

ể ự ươ ệ ươ   Unix, đ  th c hi n m t ch

(directory), còn 9 ký t (ch  nhân), grouper (nhóm tr ạ ki m và d u g ch ngang (­)  đ  ch  m t quy n truy c p không đ ạ ủ ộ Nh ng c t còn l i c a b ng thông báo này là tên 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.  ộ ấ ệ ầ đ 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 c hi n hành c a ng ngày 23 tháng 4 lúc 15gi ả (..) cũng gi i thích t  Ở h  đi u hành ệ ề ủ ề ậ ớ ng trình, có th  k t n i các   iườ ộ ươ ng trình v i hàm quy n truy c p c a riêng mình trong ch ể ế ố userId  cho ng

ứ ế

ể ủ   ả i   qu n   lý   nhóm.   Do   đó,   các   ch c   năng   c a ế ặ   ệ ọ t đ t c m i ng   i m t th  m c, tr ng thái sticky   ng không th  xoá hay

ư ụ

ệ ự ườ groupId  cho   ng th c   hi n   và   ự ườ ử ụ ệ ố ươ ể ượ i s  d ng th c hi n, n u thi ng trình h  th ng có th  đ ch ư ụ ộ ế ạ ạ userId và set groupId. Còn n u t các tr ng thái  ườ ườ ử ụ  bình th ộ ng ượ i s  d ng t đ t, do đó, m t  c thi bit đ ườ ử ụ ệ ọ i s  d ng khác trong th  m c này. g i các t p tin c a ng ệ ề ả ặ ữ ế ấ ớ ế ặ ủ ệ ủ ấ 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 đ

ệ ướ ở ố ượ ượ ị ố ớ ệ ề ề ậ ng đ i t

ư ụ ủ ờ ệ ư

ấ ặ ữ ề

ố ượ ộ   ở ệ ố ả c qu n lý b i m t ỗ ố ượ   ơ ế ị ng ng. Quy n truy c p có giá tr  đ i v i m i đ i t c  ch  đ nh h ả   ế trong 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 + 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 + Open mode: là ki u và ph i, ủ ệ t/xoá) c a t p tin trong khi s  dùng, ng pháp tác v  c a t p tin (đ ng b / không

ủ ệ ụ ủ ệ ầ ự ấ ỳ ộ ậ ồ / b t k …)

ộ ệ ồ đ ng b , có / không có b  đ m Cache, truy c p tu n t ỳ ề ữ ể ị ệ + file disposition: bi u th  t p tin b n v ng hay tu  ý.

ươ ng pháp :

ọ ế ở ộ

ộ ể ọ ư ụ

ủ ỗ ố ượ ộ ọ t b  hay đ  đ c ch n m t th  m c… ề M i đ i t

ể ủ ế Các ph 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 ộ ả ề i nhi u đ 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 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 ệ ở c thay đ i  ng t p tin) và cũng có th  đ ứ trong đ i t ỗ ệ

ệ ộ ớ ệ ự ữ ệ ướ ế ụ ượ ư ể ượ ệ   ự ộ 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   c h t, chúng

ồ ữ ế chúng là nh ng dòng d  li u bi n thiên theo đ  l n t p tin. Tr 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;

ệ ượ

ị ở

ệ ng t p tin hi n hành; ủ ệ ư ụ ệ ỉ ọ ể ữ ệ ị ể ệ ệ ề ệ ệ ẩ

+ Dung l ệ  ộ + 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 MS­DOS, t p tin có tên ng n.

ể ệ

ọ ả ệ: ữ ệ Các d  li u b o v ấ ố ớ   ề ự ứ ựơ c ch a đ ng trong danh sách đi u khi n vi c truy xu t đ i v i Chúng đ ủ ệ ủ m i ch  nhân c a t p tin.

ộ ệ :

ư ụ N i dung t p tin ự Thu c tính này ch a đ ng các d  li u riêng l ẻ ạ ; t ộ ấ   i các th  m c, m t c u

ộ ỉ ố ượ ư ứ ữ ớ ữ ệ ệ trúc ch  s  đ c l u tr  cùng v i các t p tin.

ộ ự ượ ấ ượ

ứ ự ộ ệ trên. Vì ng ượ c b  sung liên t c. Khác v i tên t p tin chính, thí d

ữ ệ c quan tâm là các d  li u th c ch t đ ườ ử ụ ể ạ ổ ụ ủ ộ ớ i l p trình đ

ượ ụ ườ ậ ầ ế ở ấ c ch a đ ng m t trong các i s  d ng có th  t o ra các thu c tính, cho nên các   ớ ụ  ượ c tham chi u v i m t cái   ấ   c tách làm hai ph n ngăn cách nhau b i d u hai ch m,

ề ể ề ạ ổ

ươ ủ ử ẳ ạ

ố ổ

ữ ả ố ớ ệ ẫ ớ ữ ệ c d n t

ộ ệ ầ ữ ệ ộ ấ ượ ấ ề ạ ờ ệ

ở ạ ẫ

ượ ạ ộ ứ ề Đi u đ ộ thu c tính nêu  ữ ệ dòng d  li u cũng đ ữ ệ MyFile.dat, các d  li u ph  c a ng ổ tên b  sung; tên này đ thí d  ụ MyFile.dat:MyCommentar.  Đi u đó đã t o nên nhi u thông tin b  sung đ  treo   ộ ng trình x  lý hay ng  c nh khi vào m t t p tin (ch ng h n tên c a m t ch   ỗ   ậ ử 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 đ   i, ví nh  đ  l n hi n hành ố ớ ớ c c p phát, các c  hi u đ i v i các ph n c a t p tin… l n nh t đ ộ ế i, các thu c tính logic đ c nén l ầ ủ ệ ượ i m t cách t

ế ợ ượ ộ ươ   ờ ợ ng c tr  giúp nh  ph ệ ự ộ  đ ng, t c là t p tin   ư  ộ ị ố ớ Khi thay th  hay d n tr  l ụ ộ ệ ạ 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

pháp k t h p. Thí d  m t t p tin đ ề ậ nh n đ m c.ụ

ơ ệ ượ Windows NT đ

ế ệ ề h  đi u hành ố ớ ề ượ ộ ườ ử ụ  đ i s  d ng ủ ng

ỗ ệ ậ ư

ạ c chi ti ệ ạ ế ả Các c  ch  b o v  trong   ẽ ơ t hoá; trong đó, các quy n truy c p c a  ổ ậ ườ ườ ọ ả i)…,   ng i  ta  có  th

ề ủ ọ

ậ ộ   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 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 ườ ử ụ  ti p theo và các quy n c a h ; nghĩa là chuyên môn hoá nh ng ữ   ượ ọ ượ h  đ

ng c phép hay không đ ả ệ ố i s  d ng ề c phép v  m t quy n truy c p nào đó. i h n trên các t p tin, nó đ

ổ ộ ế ề ộ ớ ạ ố ượ ệ H  th ng b o v  này thì không gi m t   cách   t ng   h p ợ ở ấ ả   t t   c   các   đ i   t ệ ụ ở ng   toàn   c c ụ   ượ c áp d ng ư ụ     đây   th   m c   trong

ộ ự ể ế ộ

ố ư ụ ượ ợ ỉ ượ Windows NT và đ ậ ớ ệ ệ ố ớ đ i v i vi c truy c p t ấ c ch  huy m t cách th ng nh t. Ti p đó, m t s  ki m tra c tr  giúp. i t p tin hay th  m c đ

ứ ệ 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 ả  đĩa 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  ứ c ng, đĩa m m, băng nh a camara…).

ẩ   ứ 4.4.1. Các  ch c năng chu n

ệ ề ơ ả ứ ề ầ

Trong h u h t các h  đi u hành đ u có vài ch c năng c  b n, mà v i chúng, ệ ế ể ượ ọ ơ ả ế ớ ứ t. Sau đây là các ch c năng c  b n đó. các t p tin có th  đ c đ c và vi

(cid:0) :

ạ ậ ệ ế ặ ể Đ  thi

ỗ ọ ọ t/ đ c, tu n t

ố t đ t m t t p tin, các thông s  bao g m m t chu i các ký t ọ ớ ự ượ

ườ ườ ứ ế

T o l p t p tin (Create File) ộ ệ ể ậ i ta nh n đ ể i ta có th  truy c p t ư ế ộ ườ ế ỉ ố ủ ộ ự ố ế ệ ệ ệ

ệ ự ể  ộ ồ  đ ộ   ậ ầ ự ự ế / t  ch n). Khi g i m t chuyên môn hoá các ki u truy c p (vi ế ệ ộ ự c m t s  tham chi u t p tin, mà v i s  tham   ch c năng, ng ứ ậ ớ ấ ả ủ ệ   chi u này, ng t c  các ch c năng ti p theo c a t p i t ể   ứ ạ ệ tin. M t s  tham chi u nh  th  (phân đo n t p tin, ch c danh t p tin) có th  là ộ   ề ộ ộ ủ ộ 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.

ượ ấ

: ồ ạ ế ộ

ị ở ộ ấ ở ộ ệ ở ộ ệ ệ ề ữ ệ i, các c u trúc d  li u khác nhau đ ơ ộ ệ ậ ậ ế ế ấ ơ

(cid:0) M  m t t p tin (OpenFiele) ở   c kh i Khi m  m t t p tin đang t n t ệ   ướ ễ 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.ậ

ả ể ệ ạ ộ i b  nh các thông tin qu n lý t p tin t

ạ ấ

(cid:0) Đóng t p tin (Close File) ệ ộ ệ Đ  đóng m t t p tin, c n ph i mô t ượ ả

ả ệ ử ụ

ở ộ : ả ầ ố ế ớ  b  nh  chính.

ớ  ữ ệ   c phép n i ti p vi c s  d ng không gian các c u trúc d  li u ệ ư ậ ở ụ ữ ế ổ ng t

ế

ườ i ta đ ấ ả ọ ự ộ ự ự ậ ượ ự ầ

ệ ề

ệ ổ ứ ữ ệ ụ ộ

ườ ề ậ ặ

ỗ ầ ể ệ

ẫ ớ ể ả qu ng đ i và đ ệ ả ủ c a vi c qu n lý t p tin  ự ươ  nh  v y, khi trao đ i thông tin gi a các ti n trình  T    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 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 ậ ệ   ộ ứ ố ớ ậ  ch c d  li u c c b : Thay vì truy c p t p th t chính th c đ i v i m t cách t ụ ệ ỉ ế ệ   i ta ch  x p đ t m t l n (thí d  vi c ki m tra quy n truy c p, vi c tin, ng ậ   ề ự ả ố ệ i ta ph i th c hi n đi u đó m i l n truy c p, xem xét các kh i t p tin…) ng do đó d n t ộ ầ ườ ể ả i chi phí qu n lý gi m thi u  đáng k .

t t p tin (Read File/ Write File)

ế ộ ể ọ ị

ộ ệ ệ ự c th c hi n. (cid:0)

ế ệ ư ủ ộ ệ ượ ng b  đ m, do đó, t p tin đ ệ ượ ổ ứ ả ộ

ư ậ

(cid:0) Đ c và vi ọ : ộ   ế ệ ọ ệ ố ậ ượ ự G i h  th ng nh  là m t tham s  nh n đ c s  tham chi u t p tin và m t ế ặ ượ ng c a b  đ m đ  đ c hay vi dung l   t. N u có m t t p tin m c đ nh và phù ượ ệ ộ ệ ớ ợ h p v i dung l ế Tìm ki m t p tin (Seek File) ộ ệ M t t p tin đ c t ườ i đó, ng ư ữ ệ  trong các h  th ng các t p tin nh  v y. B ng vi ả

ầ ự sequential access), thí d  kho ng t

ệ ử t x  lý tu n t ừ  tính c a  ẫ ậ ệ ố  ( ệ ườ ụ i vi c truy c p tu  ch n còn g i là truy c p ng u nhiên ( ậ i ta d n t

: ế ộ ị ầ ự ơ  đ n gi n và chi m m t v  trí, mà    ch c m t cách tu n t ỏ   ỉ ượ ệ ọ ể ế ạ c mô ph ng t i ta có th  vi t hay đ c. V  trí t p tin này không ch  đ ể ượ ươ ộ ế ở ả   ng trình c thay th  b i m t ch nh  nh ng thông tin qu n lý, mà còn có th  đ ầ ự ở ọ ằ  còn g i là   ề   ủ ổ   đĩa m m, truy c p tu n t ẫ ớ random  ng ề access). Đi u đó thì ti n l ậ ỳ ọ i khi làm vi c v i

ị ể ụ ệ ố Theo quan đi m h  đi u hành, các d ch v  h  th ng nh n đ

ỏ ế ượ ệ ợ ệ ề ề

ng trình ng ọ ệ ớ ổ  đĩa CD ROM. ậ ệ ả ự i s  d ng ph i t

ệ ệ ố ườ ử ụ ạ ườ

ượ ế c đ c hay đ t, vì t

c s  d ng, hay t

ộ ạ ọ c vi ạ i hàm Write() không có  ợ ượ ử ụ ư ườ ầ ở

ữ ệ ệ i s  d ng

ứ ằ ậ ộ

ượ ự ợ   c s  tr  giúp ệ ọ   t có c bao hàm trong câu h i, li u vi c đ c/ vi ề  làm đi u đó, khi   ế   ng (?). N u   i hàm Read() không ẵ ổ    đĩa nào s n sàng ế ng h p này thì ngăn hãm ti n trình   ượ ư   ữ ệ c l u ở  ỗ ượ ư i đ c đ a tr ư   ổ c   b   sung   nh : ả

ệ ề ụ ạ ộ ộ ộ m t cách khác nhau. Đi u đó đ ươ ượ ư ữ đ c l u tr , hay li u ch ặ ả ứ ủ ph n  ng c a h  th ng  đ t lên m t tr ng thái không bình th ể ượ ữ ệ không có d  li u nào có th  đ có d  li u nào đ làm vi c. G n nh  hàm Read()   trong tr ườ ử ụ , còn hàm Write() thì không. Vì lý do này, các d  li u đ ng ế ế ổ ộ ệ ữ  đĩa có khi m khuy t, m t thông báo l tr ; khi b  đ m tràn hay  ượ ề ợ ạ l i,   khi   đó   có   nhi u   ch c   n ng   đ i.   M t   cách   thu n   l 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

ấ t p tin (

ố ớ ấ ả ự ự ế Unix, các g i h  th ng có d ng fd=creat(name, mode)   ộ ố ộ ả ệ fd: file  ậ   t c  s  truy c p khác nhau,

và fd=open(name, mode) đã cung c p cho ta m t s  b  mô t discriptor). Nó chính là s  tham chi u đ i v i t nh :ư

ọ ế ế ộ ệ ở + read (fd, buffer, nbytes)        đ c n Bytes   trong b  đ m; ừ ộ ộ ệ t n Bytes t + write (fd, buffer, nbytes)      vi  m t b  đ m; ộ ệ t m t t p tin. + close (fd)                              vi

ộ ả ệ B  mô t ỉ ố Index)

ở ệ file descript table). S  l trong m t tr ng các t p tin và s  l

ự ị ố ị ượ ớ

t p tin này là ch  s  ( ố ượ ng l n nh t đ i v i fd) là c  đ nh, nó đ ờ

ả ộ ế ữ ở ệ t p tin ( ứ ố ượ (t c s  l ổ ủ h  đi u hành ệ ề đ i c a  ượ ư ệ ớ v i các t p tin đ ả  ộ ườ ả ủ ng c a b ng mô t ố ượ ủ ự ề   ng c a s  đi n vào ấ ố ớ   c thông báo khi có s  d ch ộ ớ ủ ấ ố   ồ ; đ ng th i, nó xác đ nh đ  l n c a c u trúc qu n lý đ i ủ ườ ử ụ  c a m t ti n trình. i s  d ng ị ấ  trong c u trúc c l u tr ng

ộ ế c khi kh i x

ệ ề h  đi u hành ạ ở ướ ng m t ti n trình (ch ng h n m t ch ớ ượ ệ

ẳ ậ ấ ố ệ

ộ c ghi nh : fd =0 cho vi c nh p s  li u ( ệ ể ế ố i d ng đi u này đ  k t n i các ch Ở ụ ằ Unix. Theo  ươ   ng trình), ố ệ stdin), fd =1 cho  ỗ stderr). Ở  i ( ớ ươ ng trình v i nhau,   ớ ấ    m c 2.4, chúng ta đã làm quan v i c u

ả ệ ộ  t p tin này đóng vai trò quan tr ng trong  B  mô t ướ ẩ tiêu chu n, tr ả ệ ộ b  mô t  t p tin đ ấ ố ệ stdout) và fd=2 cho vi c xu t s  li u khi có l ệ vi c xu t s  li u ( ợ ụ ườ i ta l trong Unix, ng ứ ộ ẫ ớ nh m d n t i m t ch c năng nào đó.  ụ ổ 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 ộ ự ế ố ộ ng các b  mô t

ỗ ế ớ ở ế   t đ t nhi u ti n trình con và ộ pipe. Sau đó, ti n trình   file descriptors) cho m i ti n trình; khi đó,   ở ế   ở ế  ti n  ti n trình g i đi, pipe ra v i fd =0

ả ệ  t p tin ( ớ i: pipe vào v i fd =1  ả ộ ệ ố ở ố ớ ạ t o ra đ i v i m i m t s  k t n i trao đ i thông tin m t  ở ướ cha kh i x ẽ ẫ ớ chúng s  d n t ậ trình nh n. Hình 4.8 mô t m t h  th ng pipe trong Unix.

Hình 4.8­­­­­­­­­­­­­­­­­

ệ ắ ướ ự

ỗ ế ệ c; m i ti n trình có th  t p tin khác nhau qua vi c đóng và m

ế Vi c s p x p các b  mô t ự ắ ệ ả ệ ớ ố ể  ở  ố ệ ố    t p tin tr ng v i con s  h  th ng

ấ ượ ử ụ ầ ỏ ỉ ả ệ ộ  t p tin ch  là s  quy  ả ệ ộ ế ạ ượ c các s  s p x p các b  mô t đ t đ ở ộ ụ có m c đích các t p tin: Khi m , b  mô t 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 tóm l ươ

ớ ộ ứ ứ ươ ể ng pháp v  thi ẫ ố ớ Các ch c năng c  b n đ i v i vi c truy c p t p tin đ ữ t laap các thu c tính t p tin. Các ph ớ

ọ ế ư

ượ ế ụ ố i   nhi u   ch c   năng   đ i   v i   các   t p   tin   nh t, tìm ki m th ọ

ớ ộ ả ư ế

ổ ự ư

ộ ị ư ộ ả ề ữ c th c thi nh  là nh ng bi n đ i nhân t ụ ặ

ỗ ầ ệ ọ ở ị ụ

đ

ế ả ổ ệ ố ạ

t trên b  nh

ượ ệ ả ề

ệ ố c khi vi

ộ i h  th ng t p tin m t cách s ch s ộ ệ t vào b  đ m dùng đ ế ả

ẽ ừ ầ ế

ạ ộ ệ ể ư   c nh  là ệ   ế ng pháp hi u nh ng ph ư  ệ ề ệ nghi m   k   trên   còn   d n   t ư  ụ ư ụ ặ FlushBuffer() cũng nh  các tác v  th  m c đ c tr ng (đ c, vi ả ụ   c quan tâm đó là: M i tác v  dù có m c…). Nói chung, m t b n phác th o đ ạ ổ ấ ể   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 ử atomar transaction). Thu c cái đó ộ ượ ế  ( đ   ệ ọ ụ log file service:   t g i là d ch v  đăng ký t p tin ( còn có m t d ch v  đ c bi ượ ệ ề ị ậ ệ 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à   ệ ẻ ượ   ệ ướ c khi các t p tin riêng l c t b n ghi đăng ký cho h  th ng t p tin. Tr vi ế ờ ộ ộ ố ả ớ ả thay đ 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 ế ướ ở ỉ ả ạ write  c luc đăng ký ( t tr c ch  ra b i trình vi qu ng đ i. B n phác th o đ ẽ  ệ ạ ể ế ạ ệ ố ạ ahead logging) đã t o đi u ki n đ  vi t l ướ ế ự ố ả ể  ế ự ố khi h  th ng có s  c . N u s  c  x y ra tr ự   ụ ị ả ấ ả đă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 ế ự ố ả ả ữ ớ ệ  đ u. N u s  c  x y ra gi a kho ng k t thúc đăng ký I/O và hi n m i m  t   ở ạ   ả ầ ế i, 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 và đ ư   ph 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

ữ ế ụ ả

ộ ừ ự ệ ề ợ ả ả ượ t ph i đ

ế ố ệ ệ

ườ

ế

ẽ ệ ố ư ỗ ụ ộ ự ọ ả ị    đ nh quan tr ng, chúng không ạ   ậ ng h p. Do v y, s  truy n đ t   i, t c là, t p tin đăng ký nên linh ệ   i, do đó t p tin s  không ớ   ẫ i ượ   c ứ ự ng ch a đ ng l ế ộ ỗ i tích c c cũng ch a xoá đ

ệ 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 t thi c th c hi n trong t ng tr ỗ ứ ả các s  li u đăng ký ph i hoàn toàn không có l ệ ộ ể ả ữ ệ đ ng, vì vi c chuy n t i d  li u th ộ ả ử ế ượ ử ụ  s  có m t khi m khuy t th  đ ng d n h  th ng t s  d ng đ c. N u gi ộ ạ fail save); nghĩa là m t l m t tr ng thái an toàn ( ữ ệ 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 s  t ạ ủ ữ ệ ở ệ ả   ộ ớ i nay là m t lo i đ n gi n ậ ề ậ ả   i thu t v  truy c p các t p tin. và chúng ch  m i có ý nghĩa tách chia các gi ệ ế ậ ụ ể ạ ấ t l p m t s  truy   Trong r t nhi u h  th ng, có các tác v  đ  t o đi u ki n thi ứ   ướ ấ ậ  ch c ng t c h c p có c u trúc t ớ ừ i t ng lo i: logic c a d  li u ệ ố ề ệ ớ ệ i t p tin, mà vi c truy c p này đ ẽ ầ ượ  trong t p tin, sau đây s  l n l ượ t nói t

ầ ự ệ Các t p tin tu n t (sequential files ):

ớ ườ c nói V i các máy tính đ

c t

ữ ử ượ ắ ở ộ

ở ượ  trên, ng ư  ch c nh  là nh ng b n ghi đ ồ ạ ở ữ i   nh ng t p tin r ng rãi  ứ ổ ứ ừ ấ ữ ệ   i ta đã x  lý các danh sách  d  li u ầ   ộ ế ả c s p x p m t cách tu n ầ ượ   ề  trên đĩa m m và l n l t ể ệ c th i gian h i lâu. Ki u t p tin theo   ả   ộ  c a toàn b  các b n ơ ầ ự ủ t tu n t

ụ ữ ượ ổ ứ dài, mà chúng đ ệ ự . Vì nh ng bàn ghi t n t t ờ ạ ượ ượ ử  ch c này đ t đ đ c x  lý. Hình th c t ế ụ ọ ữ  các tác v  đ c/ vi ngôn ng  Pascal xu t phát t ữ ệ ghi d  li u trong kho ng hai tác v  put() và get().

ế ố ữ ệ ở i ta mu n truy c p trên các d  li u trong dãy tu n t ầ ự

ả ườ Tuy nhiên, n u ng ả ậ ạ ề 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 ậ ế

ở ộ ự  b t k . Ý t c th c hi n b i s  t o l p c a h

ầ ự ấ ỳ ổ ắ ố ệ ự ệ ề ạ ệ ể ụ   i vi c kh c ph c m t c  ch  t p tin, ộ   ượ ắ c s p x p theo m t ở ự ạ ậ ủ ệ  ề    đĩ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

ứ ờ ệ ưở ế ị ầ ể ị

ầ ự ể ậ ộ ọ ỳ ẫ ớ ả mà nó cho phép m t s  truy c p trên b n ghi s  li u đ ể ượ ng này có th  đ dãy tu n t ệ ệ ố ố th ng  ậ ệ ậ 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 đ ụ  trên nhi u h

ằ ầ ự ề ể ự ệ ệ ỳ ọ ố ớ ự   ượ c th c ạ   ừ ỏ ộ ờ ộ  b  m t lo i hi n nh  m t ki u khác; tuy nhiên, nó không nh m m c đích t ướ ề ệ ả ườ nào c . Ng   i ta có th  th c hi n các t p tin tu n t ng khác ợ ắ ủ ổ i l m.  đĩa. Đ i v i các t p tin tu  ch n thì đi u đó không có l nhau c a

ế c đ a ra, thì ng

ế ộ ơ Tuy nhiên, n u có m t c  ch  n i dung t p tin đ ậ ượ ơ ư ộ ể

ế ộ ả ế ệ ệ ẽ ả ậ ự ộ

ệ ệ ố ả ươ ơ ề ọ ệ ừ ệ

i ta ằ ạ   ể i, ệ   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   ng ti n đi u hành hi n có. T  lý do này, trong các h  th ng ngân ậ ươ ữ ệ ệ ơ ườ ấ 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 ườ ng ằ b ng các ph ữ ệ 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) :

ạ ệ c c u thành t

ẩ ừ ọ

ể ở

ự ượ ệ

ừ ầ

ượ ự ọ ầ ủ ệ ỗ ặ ộ

ủ ệ ố ủ ề ệ

ể ư ụ ỉ ấ ộ ể

ự ệ ụ

ữ ệ ấ ả

ượ ấ ữ ệ data records), chúng  ả  các b n ghi d  li u ( Lo i t p tin này đ ế ộ ở   ắ ế ượ ắ 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 ả   ề ụ ể ế ạ c th c thi (thí d  ki u đi n vào các t p tin qu n chìa khoá đ c ki n t o và đ ể ườ ậ i ta có th  truy c p nhanh chóng lý nhân s : h  tên, ngày sinh, quê quán…); ng   ị ả ộ ợ ứ ạ ượ ừ   c tr  c u m t kho ng giá tr  thích i đ t ng ph n c a t p tin; t ng ph n này l ấ ả  ư ế ứ ư ấ t c 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 ể ộ   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 ả ế ượ ắ ộ c s p x p theo m t chìa khoá, thí d  theo tin qu n lý nhân s . T p tin này đ   ừ  ẻ ượ ạ ậ ổ ứ 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

ắ ầ ừ ỉ ố ủ ậ ố

ở ủ ượ ủ ậ ố ố ớ ấ  ch  s  c a b c s  0 đ ộ ộ ệ ả ở ỉ ố ủ ậ ố   ượ

ế ữ ệ ủ

ả ạ ệ ả ả ả

ế ườ ấ ấ  d ch chuy n t ủ i lên cho t

ả i khi ng ả ả ớ ể ọ i ta có th  đ c b n ghi d

ừ ệ ụ ệ

t p tin. ả ấ ự ể ị ầ ầ ự ị ệ ố ủ ữ ệ ượ ạ c t o ra có m c đích t i ta th c nghi m đ  mô t

ố ượ ườ ạ

ả ậ ấ

ữ ệ ớ ượ ớ ẽ ộ

ệ ụ ề ể ụ ấ ả ố ầ ủ ữ ậ

ể ạ ớ ứ ả

ấ ợ i các c u trúc tr  giúp cho vi c t

ữ ệ ườ ư     ch  s  c a b c s  1; chìa c mô t hình 4.9) b t đ u t ỉ ố ủ ậ   ấ ủ ỉ ớ khoá l n nh t c a m t đo n t p tin c a b c s  1đ  ch  s  c a b c c ch  ra  ị ộ ườ ố   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 đó, ỉ ố ứ ủ ườ   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 ng ờ  ừ ớ ạ ồ ạ  gi t n t i h n trên c a kho ng này, nh i chìa khoá c n tìm, và xu t phát t ậ ắ ể ừ ướ i ta  d b c s p x p, các t p tin tu n t   ữ  ườ ấ tìm th y con s  c a b n ghi d  li u. Sau đó, ng li u mà nó đ ậ ế ườ ng v t lý   N u ng  c u trúc logic cho các đ i t ể  ế ườ i ta có th ­ v t đ ng (track), hình tr  (cylinder), hình qu t (sector), do đó ng ả   ể ổ ứ ả ễ  ch c b n 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 v i chìa khóa s  41 (xem ghi m t cách m i m . Thí d , vi c t ỗ ộ ữ ề ươ   ng đ i đ y đ , vì m i h p ch  nh t có hình 4.9) đ  t o nên nh ng v n đ  t ẵ ự ấ   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 ệ ổ ứ ầ ớ    ch c các dòng khoá này. Do đó, chúng c n t ỏ ổ ữ ệ   ng xuyên các d  li u và chúng đòi h i ngay d  li u phát sinh khi thay đ i th

ặ ệ ề ệ ủ ệ

ổ ế ớ ấ ỉ ố ư ụ

ủ ự ệ ệ ớ ố ệ

ệ ứ ạ ộ ệ ố ự ố ớ

ấ ệ ế ư ộ ự ơ ồ ổ

ổ ứ ữ  ấ ộ ả ầ ớ t, đi u đó xu t hi n khi t  ch c d m t b n ghi m i và đ y đ  t p tin. Đ c bi ườ ề ệ   ng hay thay đ i. N u ch  s  th  m c cho ta li u v i r t nhi u chìa khóa và th ộ ệ ố ư ụ ủ ế ộ t n i dùng th  m c c a m t h  th ng các t p tin và v i các chìa khoá này,   bi ộ ớ  ế ệ chúng ch a đ ng s  tham chi u t p tin (tên t p tin, s  t p tin…) c a b  nh ợ ể  ệ ệ ả qu ng đ i. Đ i v i m t h  th ng t p tin hi u nghi m, nó thì khó thích h p đ ơ ồ  ỉ ố ư ụ ổ ứ t  ch c các chìa khóa thành các ch  s  th  m c theo s  đ  khác nhau, mà s  đ   này cho phép m t s  tìm ki m nhanh nh  là vi c b  sung vào hay l y đi linh ho t các chìa khóa.

ổ ự

ộ ầ ỉ ộ ầ ề ế

ộ ủ ờ

ớ ể

ể ắ ế ế

ộ ậ ụ ộ

ỉ ố ậ ố ạ ượ ỏ ơ

ố ớ ế ố ụ ữ

ử ụ ể ả c chúng ta s  d ng đ  kh o sát k t qu  trong kho ng gi

ả ơ ồ ờ ả , cành này s  là m t kho ng s  đ  cây trung gian đ

ượ ằ

ự ề

ủ ẻ ậ

ữ ệ ư ế ớ ư ầ ộ

ự ế ố ớ ở ề ượ i các lá cây đ

ị ở ạ ỗ   ệ Thêm vào đó, chúng ta th c hi n 2 thay đ i. Đ u tiên chúng tag hi chép m i ượ   ệ ư ụ c t ki m đ chìa khoá vào m t nút c a cây th  m c ch  m t l n; đi u này ti ộ   ạ ẽ ế không gian b  nh  và th i gian tìm ki m. Sau đó, chúng ta s  đem l i m t ý ầ ế ị ả nghĩa khác cho ki u này: Trong hình 4.9, đ u tiên, chúng ta ph i quy t đ nh trên   ở ỗ ấ   ầ m t b c, chìa khóa c n tìm đ  s p x p thì   ch  nào (?). N u chúng ta tìm th y, ứ ế ậ   t nó thu c ch  s  b c s  2, t c là thí d  chìa khoá s  60, do đó, chúng ta nh n bi ế ụ   ơ c ti p t c chìa khoá này thì l n h n 48 và nh  h n 99, và cho nên nó là lo i đ ắ ẫ ớ i cho đ n s  99. Tác v  so sánh gi a các chìa khoá có tính nguyên t c này d n t   ớ ạ ớ   ả ả ế ượ i h n này (60 t i đ ự ạ ả ớ ạ ố   i h n này, mà vào kho ng t 99) và không n i các cành vào kho ng gi  t o. Bây ộ ữ ượ ế ố ẽ gi   c k t n i gi a các chìa ị ữ ẫ ớ   i các chìa khoá mà chúng n m trong giá tr  gi a 2 khoá nói khoá và đ c d n t ớ m­1  chìa khóa.  ấ m  s  tách nhánh và v i   ự ỗ ứ trên. M i nút ch a đ ng nhi u nh t   ả ấ ư  Chúng ta nh n th y các lá c a cây (hay các b n ghi d  li u riêng l ) hình nh ấ   ộ không thu c cây  lúc đ u. Hình nh  4.10 là m t cây nh  th , v i nhi u nh t 3 ể   ỗ ộ chìa khóa trên m i h p chìa khóa, mà  c bi u  đó s  k t n i t th  b i các mũi tên.

Hình 4.10******************************

ộ ộ ễ ư ế ể ạ ậ

ộ ầ ề ừ ộ ậ ố ư ụ ầ

ị ế ớ

ộ ế ầ

ượ ố ị

ố ả ụ ế ệ ố

ậ ố ơ

ướ ướ ố i. Bây gi

ẽ ộ ặ ằ ầ

ư ở ậ ơ ở ế ng nhìn xu ng d ầ ượ c s  trí: chìa khóa đ

ỉ ố ủ ậ ở nh   ộ ộ Chúng ta có th  t o l p m t cách d  dàng m t cây th  m c nh  th . Chúng ế   ấ  h p chìa khóa b c s  0 và đi n đ y h p đ u tiên này cho đ n ta xu t phát t ỉ ố ủ   ụ ố ầ khi đ y tràn. Chìa khóa ti p theo (thí d  s  37) d ch lên phía trên v i ch  s  c a ế   ạ ượ ậ ố c làm đ y và khi đó chìa khóa ti p i đ b c s  1. H p chìa khóa ti p theo l ự   ề ạ ượ i đ c th c c d ch lên phía trên. Đi u đó đ theo (thí d  chìa khóa s  56) l ứ  ế hi n cho đ n cu i b n ghi chìa khóa. N u chìa khóa cu i cùng là chìa khóa th ị m, do đó, nó s  không d ch lên b c s  cao h n, khi đó, chúng ta tách chia m chìa   ờ  khóa thành 2 h p chìa khóa khác nhau, theo h ộ ế ạ ế n u trên m t b ng k  c nh cao h n, h p chìa khóa đ u tiên đã đ y tràn, do đó,   ầ   ẽ ượ ử ấ ươ t c đ m đ u  b c th p h n,  tiên t ự i m t h p có ch  s  c a b c ơ  đây s  đ  đó.

ớ ữ ể ể ng t ớ ớ ấ V i c u trúc cây m i này, chúng ta đã đ t đ

ể ế ợ ơ ạ ượ ộ ộ ư ễ ậ c p nhanh h n: chúng ta có th  k t h p m t cách d  dàng các chìa khoá b c m t  u đi m n a đ  truy   ổ

ừ Ở phía trên r i l n l đây, chúng xu t phát t

ộ i. N u chìa khóa ch a h  t n t ị ừ ế ợ ồ ầ ượ ư ề ồ ạ ư ế i m t lá cây nh  th , bây gi

ộ ộ ể

ộ ầ ở ệ ả t nhiên, chìa khoá đó, t

ở ư ở ậ ế ạ  b c k  c nh đ ả ộ ề ớ i. Tuy nhiên, đ c l p v i đi u đó, m t gi ậ ế ợ i thu t k t h p đ

ớ ộ ả   ấ t đi qua cây và tìm kho ng sung.  ế ạ   ồ ạ i i, thì, chúng ta d ng l nào mà chìa khóa t n t ớ   ờ ạ ỉ m t lá cây. Sauk hi ch  đ nh t  chúng ta k t h p v i ậ ế   chìa khóa đã có c a mình. N u h p chìa khoá đã đi theo qua, do v y, chúng ta có ướ   ộ ể ử ng  trong h p theo h th  th  nghi m m t l n, di chuy n các chìa khoá d  ra  ấ ị ượ ự ế ừ c d  ki n d ch t    trái qua ph i, mà  ế   ượ ộ ậ ể ớ t c thi chuy n t ư ậ l p nh  sau: ườ + Ng i ata phân chia h p chìa khóa có m chìa khóa thành 2 h p v i các chìa

ộ khóa S1,…,S[m/2]­1, S[m/2]+1,…,Sm.

gi a lên trên

ườ ườ ở ữ ạ ợ ở ộ ạ

+Ng + Tr

[m/2]   đó h p chìa khóa đã ch y qua, thì ng

ể i ta di chuy n chìa khoá S ng h p ở ậ ầ  b c g n đó. ẽ ử ườ i ta s  x  lý t i đây.

ỏ ượ

ằ ư c phân tích ng ạ , chúng ta l u ý r ng, chúng ta đã t o ra đ

ư ụ Tác v  xoá b  các chìa khóa thì đ ờ Bây gi ộ

ộ ậ ầ ề ượ ố ượ ệ  trên m t bình di n nh  nhau và s  l ộ c đi n đ y m t cách tho

ộ ữ

ợ ườ ở ố ỉ ồ ạ ng h p: ch  t n t g c cây có th  x y ra tr ượ ạ i: c l ề   ộ ượ c m t cây mà lá cây đ u ị ng các nhánh b  tách ra là nh  nhau. Do   ả  ấ   ự i đa m nhánh và m­1 chìa khóa thì m t n a các nhánh [m/2] th c ch t   i 1 chìa

ố ự ữ ệ c s  d ng. Khi đó,  ằ ấ

ọ ậ ề ể ả ấ ư ậ M t lo i cây cho c u trúc d  li u nh  v y có tên g i là cây B (B­Tree) do   ứ   ấ ở  trên, ta nh n th y: V  hình th c,

ễ c di n gi ư i nh  sau:

ng (1979). Xem hình 4.10  ả ượ ư ỗ ớ ố ượ ố (1). M i cành cũng nh  m i nút (t i g c và lá ) đ ể i thi u k = ả c to  ra t

[m/2] và t

i đa k=m cành. ứ ự

ư ở ấ ằ đó, chúng ta nh n th y r ng, các h p chìa khoá đ ớ ố mãn v i t ượ ử ụ đ ớ khóa v i 2 nhánh, tuy r ng con s  th c ch t là m nhánh. ạ ộ ề ướ D.Comer đ  x ộ cây B là m t cây đ ỗ ố ỗ ấ ả ề ở ữ ư ằ ộ trên m t bình di n. Chúng ta l u ý r ng, nh ng là

nào không ch a đ ng chìa khóa thì không đ

ỉ ố (2). M i nút ch a đ ng k­1 chìa khoá (hay ch  s ) (3). T t c  các lá đ u  ứ ự ư ậ ớ ổ ượ ư ằ ậ ọ M t cây nh  v y đ

ấ i ta l u ý r ng, v i t ng s ấ  b c th p nh t. (Vì sao? s c g i là cây b c m. Ng  trên cây là N thì chúng ta có N+1 lá

ư ướ ể

ể ạ ố ệ ượ c quan tâm. ố  ườ ẽ  ở ậ ố   ộ i đây). Cây B có th  đi qua m t cách nhanh chóng: G c ế ạ   i thi u [m/2] i có t

ở i thích nh  d i thi u hai cành và m i cành trong b c k  c nh l ậ ở ậ ế ể ộ chìa khóa  ả ượ đ c gi ể ố cây có t cành, do v y, ậ ộ ố i thi u m t s  cành là: b c k  n t n t

ầ ự ỗ ồ ạ ố i t                         2.[m/2].[m/2]…= 2.[m/2]n­1.                (4.1) Cho nên, đ i v i s  l ế    tìm ki m)

ng các b c c n dùng (g i là dãy tu n t ề ậ ầ ố ớ ố ượ ẽ ẫ ớ ớ v i N chìa khoá và N+1 lá cây thì s  d n t ọ ệ i đi u ki n sau đây:

ườ ố ậ ọ ố N+1≥ [m/2]n­1                                                               (4.2) Hay: log[m/2](N+1)/2 ≥ n­1                                            (4.3) ố Trong đó, ng ố i ta g i N: s  chìa khoá hay s  lá cây; n: s  b c; m: s  cành

cây.

ụ ề ạ ề ệ ờ t ki m th i gian r t nhi u, thí d : khi m=200 i m t s  ti Đi u đó đã đem l

và N=1,98.106 thì theo đi u ki n (4.3) chúng ta c n t ề

ấ ả ấ ế ể ủ ươ ườ ộ ự ế ấ ầ ớ ệ i: n­1 <= log100(0,99.106) = log100(0,99) +log100(1003)< 3. Hay : 3≥ n­1 Đ  tho  mãn b t ph ố ng trình cu i cùng, ng

ể ủ ậ ố i đa c a cây B cho ví d  này là n=3. Tóm l

ị ậ ụ ệ ậ ố i đa c a cây đã xác đ nh, t p tin s  đ

ễ ướ ủ ấ i ta nh n th y v  trái c a nó   ạ   i, ấ   ẽ ượ c tìm th y ậ   ự  làm th t ng t

ớ ề ố ượ

ằ ề ườ ỉ ch  có th  là n­1 =2; khi đó b c t ớ v i chìa khóa đã cho  và b c t ộ ề m t cách d  dàng! Đi u đó cho th y các cây B có khuynh h ữ ệ ấ ng đi u vào các d  li u gia tăng l n lên. th p xu ng khi s  l Có r t nhi u hình thái khác nhau c a cây B, b ng cách, ng

ị ắ ề ố ấ ỗ ậ ủ ề

ỉ ấ

ả ề ẫ ọ

ộ ự ộ ộ ệ ề

ả ơ ả ụ ượ ơ ế ấ ấ ể ữ ệ ể ả ế ấ ng c  b n đ  c i ti n c u trúc cây đ

ộ ưở ỗ ỉ ử ụ ọ

ạ ỏ ộ ạ ớ

ệ ả ế ạ ổ

ả ả ế ỉ ố ủ ậ ộ ượ ạ ỉ

ộ ể ấ ạ ị ự ề ề ệ ớ

ủ ớ

ế ạ ầ ể ề

ộ ộ ượ ả ằ c trình bày trong m t gi ộ ự ng này đ

ộ ể ọ   i ta có th  ch n ổ   cho m i b c giá tr  m khác nhau. V  nguyên t c, đi u đó không làm thay đ i ố   ậ thu t toán, mà nó ch  là v n đ  d n xu t c u trúc cây. Sau đây, chúng ta mu n ễ ả kh o sát m t kh  năng quan tr ng khác, đ  làm gia tăng ý nghĩa th c ti n: nó   ượ c các h  đi u hành và các ngân hàng d  li u áp d ng m t cách r ng rãi. đ ờ c đ n gi n nh  lý thuy t cây B Ý t   ầ ạ   ở là   ch : không ch  s  d ng các h p đ y chìa khóa (còn g i là các phân đo n), ữ  mà còn chia nh  m t phân đo n thành hai phân đo n m i khi có các b n ghi d ổ li u b  sung, và còn ph n  nh các thay đ i trong ch  s  c a b c k  c nh. Các   ầ ủ   ớ c liên k t năng đ ng v i nhau qua b  ch  th . S  đi n đ y c a phân đo n đ ẹ ườ ể ả ộ   i ta có hai h p chìa khóa m i có th  r t h n h p. Đ  c i thi n đi u này, ng ượ   ở i các chìa khóa có ý nghĩa  th  xem xét t  phía trên c a các nút k  c nh đã đ c ạ ượ ơ ầ c m t s  cân b ng và làm đ y h p chìa đi u đ y h n, do đó, chúng ta đ t đ   ả   ưở ơ ộ ớ i khóa m i m t cách hoàn h o h n. Ý t ấ ư thu t duy nh t nh  sau: ườ i ta thâu tóm h p chìa khóa có m­1 chìa khóa, h p chìa khóa k ậ (cid:0) Ng

ộ ế ạ ậ ộ

1, S2,. ..,S2n.

ư ờ ộ , h p này ch a đ ng các chìa khóa S ấ ấ B y gi

ớ ố ộ ế  ơ   ạ c nh có m chìa khoá cũng nh  các chìa khóa khác thu c b c k  c nh cao h n ớ ộ ộ i m t h p duy nh t.  t (cid:0) Ng ườ

ỉ ố ơ ứ ự   i ta phân chia các chìa khóa trong 3 h p v i s  các chìa khóa cho ớ   A và SB v i các ễ   ể ượ c bi u di n

ứ ể

ỗ ộ m i h p [(2m­2)/3],[(2m­1)/3] và [2m/3]. Khi đó, hai chìa khóa S ớ ậ ỉ ố ch  s  A và B đi lên phía trên v i b c có ch  s  cao h n. A và B đ ở b i các bi u th c:            A = [(2m­2)/3] +1                                 (4.4)            B = [(2m­1)/3] +1 + [(2m­1)/3] +1       (4.5)

ộ ờ ạ ả

ỗ ở ườ ớ ố ộ ử ấ B y gi c làm đ y b i các chìa khóa; do đó, đ i di n v i cây B, ng i ta nh n đ

ể ớ ị c bi u th  là cây B

ượ ệ ử ụ ả ủ ố ở ả , m i m t trong 3 phân đo n thì không ph i m t n a mà kho ng 2/3   ậ ượ   ệ ầ c * (B*­ tree). Hình 4.11 ở  ả ế ỉ  ấ i cho th y k t qu  c a vi c s  d ng chìa khóa s  41 c ch

ở ượ đ ơ ộ m t cây c i ti n h n; cây m i này đ ế ướ d ra trong hình 4.10 ượ  trong đây đ *.  trên: hình 4.11 (a) là cây B, còn hình 4.11(b) là cây B

Hình 4.11***********************************

ượ M t cách hình th c, theo đ nh nghĩa c a cây B và cây B* đ c pahan bi ệ   t

ộ ề ị ệ ệ ở ủ c nêu

ề ư ỗ ỗ ượ ớ ố ố ứ ổ qua đi u ki n thay đ i (đi u ki n 1 đ 1). M i nhánh cũng nh  m i nút (t i g c và lá) đ ư  trên) nh  sau: ượ ẻ c l nhánh thêm t ể   i thi u

ể ố

ủ ộ

ố i đa 2[(2m­1)/3]+1 s  phân nhánh. Do đó, g c cây   ỗ ộ   c phân chia thành 2 h p chìa khóa v i s    chìa khóa c a m i h p ố ớ ư ự ớ ố ớ ộ ố k= (2m­1)/3 và t i đa m cành. ố ố 2). G c có t i thi u 2 và t ể ượ có th  đ [(2m­2)/3] (v i l u ý c ng thêm 1 chìa cho g c m i ).

ề ạ Theo D.Comer (1979), còn có nhi u d ng khác n a c a cây B; v i giáo trình

ữ ủ ư ậ ệ ề ộ ự ề ớ ừ ủ nguyên lý h  đi u hành, m t s  trình bày v  cây B nh  v y là v a đ .

c

ả ế ệ

ượ  (inverted files) và đa danh sách (multi­ liste): ữ ệ

ề ả

ữ ệ i các b n ghi d  li u đ

ượ ứ ự

ệ T p tin đ o ng ượ ắ   Ở ơ c s p  c  ch  t p tin này, nh ng thông tin v  các b n ghi d  li u đã đ ố ớ   ế ạ ộ i theo các chìa khóa khác nhau. Đ i v i ỉ  ộ ế ượ ả c vi t thành m t ch ả   c ch a đ ng trong các b n ghi này. Hình

ộ ệ ớ ữ ầ ừ ượ ắ ế c s p x p l x p (m t cách tu n t ) đ ế ớ ỗ m i chìa khóa, các tham chi u t ố ở ầ ệ s    đ u t p tin; chìa khóa cũng đ ỉ 4.12 ch  ra m t t p tin v i đa danh sách.

Hình 4.12*******************************

ề ệ ượ ắ ắ ầ Khi vi c đi n vào b t đ u, các danh sách đ

ị ủ ỉ ố ế ườ ở  trên). Tuy nhiên, ng ả

ớ ở ề ự ượ ấ ỉ ẫ  trong hình 4.12 th c ra v n ch a rõ ràng. Đi u đó đ

ả ỉ ố ủ ả   c s p x p theo ch  s  c a b n ể ắ   ghi, xem chìa khóa 1 và 2 (hình 4.12  i ta cũng có th  s p ế   x p theo ch  s  các giá tr  tăng hay gi m c a các chìa khóa, do đó, c u trúc phân ư nhánh    c ch  ra v i danh sách các b n ghi đ i v i chìa khóa m (thí d  trong hình 4.12 là 1, 3, 2, 6, 5, 8).

ộ ộ ế ị ủ ụ ỉ t c  các b  ch  th  c a m t chìa khóa trong ch  s

ủ ệ ượ ả c c đ o ng c bi u th  là

ể ứ

ị ằ ượ ừ ố ớ ế ợ ấ ả N u chúng ta k t h p t ắ ế b t đàu c a t p tin và không vi ệ ề t p tin đ đi u này đ rút ra t ng

ệ ố ố ớ ệ ọ ượ ả ọ c khai thác t ợ c thích h p đ c bi t đ i v i vi c đ c ch n có quan chìa khóa. ặ t t

ứ ệ ừ ổ M t s  th c thi hi u nghi m cách t

ệ ớ h  v i m t chìa khóa xác đ nh. ệ ệ ề ỉ ố  ữ ệ ả t chúng vào trong các b n ghi d  li u, do đó,   cượ   ượ : Khái ni m ệ đ o ng ượ  đ ượ ả c ừ ệ ừ ả ị    b n ghi,  vi n ch ng, r ng, chúng ta không khai thác giá tr  chìa khóa t ượ ạ ả i, b n ghi đ c l ệ Các t p tin đ o ng ộ ộ ự ự ự ượ

ừ ữ

ộ ệ ề ữ ệ ụ

ế ầ ơ ớ ụ i ta không c n thi

ữ ơ ủ ụ ữ

ủ ệ ề

ớ ủ ự ả

ả ỗ c m i ng ữ ệ i c a ngân hàng d  li u che ph  lên h ể ự ư ớ ớ ở  ư ấ ệ  ch c t p tin nh  c u trúc v a nêu  ệ  ớ ệ ở c th c hi n  trên đ  trong h  đi u hành các máy tính l n. T  lý do này, h ố   ứ ớ ư ề đi u hành Unix v i t  cách là m t h  đi u hành máy tính đ ng v ng lâu dài đ i ứ ươ ề ớ   ng trình  ng d ng, v i các áp d ng v  ngân hàng d  li u; vì trong các ch ả ạ ậ ụ ườ t ph i t o l p trên nh ng tác v  cao h n. Các l p trung ng   ế ơ ỳ  ệ gian gi a các tác v  liên hi p (complex) và c  ch  đ n gi n c a các hàm tu ườ ử ụ   ả ượ ọ i s  d ng ch n ReadFile() và WriteFile() c a h  đi u hành ph i đ ệ  ề ủ ự ế ấ  vi t t l y, mà v i đi u đó, s  c nh gi ứ ộ ề    duy ki u này còn có vai trò đi u hành Unix v i m c đ  cao. Trong khi đó, s  t

ể ụ ệ ả ộ ớ

ậ ớ ấ ổ ữ ớ ủ ờ ử   t, vì nh ng b  vi x  lý v i  n b n m i có ộ   ằ  đĩa đ i m i đã làm cân b ng t n hao c a m t

ề ặ ề đáng k  trong nhi u áp d ng đ c bi ổ ố ộ t c đ  truy c p nhanh và vì các  ấ ớ l p trung gian r t nhi u.

ượ ả

ạ ộ ớ (memory mapping files)

4.4.5. Các t p tin đ

c  nh x  b  nh

ớ ệ ệ ệ ườ Các t p tin v i vi c truy c p tu  ch n th

ườ ẽ ư

ườ ng đ ứ ớ ự ạ ộ ớ i ta có th  xem xét các t p tin

ỳ ọ ể  trên b  nh  qu ng đ i nh  là m t s  k ề ở ả ả ớ

ể ớ ế ướ ả

ướ ả ế

ộ ộ c ti p theo, và m t cách đúng m c (tr ộ ệ ữ ạ ộ ả ớ ươ ượ ệ ọ ượ ả i ta g i là t p tin  nh x  b  nh ; t ủ ộ ộ ằ ớ , b  nh  cũng đ ề ự ộ ng t

ạ ượ ậ   c làm vi c m nh m  trên ế ộ i ta có th  nghiên c u ti p s  phân tích nh  sau:   b  nh  chính (RAM). Ng ộ ự ế  ư ả ệ Ng ạ ự   ặ ụ ủ ộ t c c a b  nh  chính trên b  nh  qu ng đ i. Cho nên, đi u đó đ t ra, ph i th c ứ ệ ạ   ư ộ c sau nh  m t) ph i tái t o hi n b ệ   ớ ộ ớ ộ ự ế ố ự m t s  k t n i tr c ti p m t t p tin v i m t kho ng c a b  nh  chính, mà t p tin đ   c tách chia thành nh ng kho ng có chi u dài b ng m t trang. Khi đó, ườ ng   c phân chia thành các trang.

ế ố ư ế ẽ ạ ượ ở ọ ệ ố

ạ ư M t ki u k t n i nh  th  s  đ t đ ượ ả ộ ự ế ộ c  nh x  nh  là m t s  thay th  các trang b  nh  chính

ớ ạ ề ộ ế ỉ ả ủ ị

ộ ể c b i g i h  th ng; trong đó, các trang   ở  ộ ệ ủ c a m t t p tin đ trong không gian đ a ch   o c a m t ti n trình. Hình 4.13 minh ho  đi u này   ầ ủ m t cách đ y đ . ự ố ơ ệ ả ộ Vi c th c thi m t c  ch  nh  v y thì t

c n p, do đó, mi n c a t p tin đ ợ ộ ế ạ ề ượ ư ế ề ộ ớ ở ộ ơ ế ư ậ ủ trên đó các trang c a m t ti n trình đ ả ra ươ ượ ạ ạ  trên b  nh  qu ng đ i. Đi u đó, mang l ng đ i đ n gi n: Khi m t mi n mà ề ủ ệ ỉ  c ch i th  khác nhau nh  sau: ữ i nh ng l

ượ ọ ượ ử ụ ệ ế c đ c, n u nó đ ầ   c s  d ng; vi c sao chép không c n

thi

ộ ộ ệ ử ụ

ộ ệ ự ộ :  đ ng ươ ng trình s  d ng các t p tin, m t b  đ m logic đ ệ ụ ọ ề ế ế ệ t. Đi u đó thì khác bi t th c hi n vài tác v  đ c/ vi

ớ ơ ế ộ ệ ệ ượ   c ệ ớ ả   t v i  nh ượ   c

ở ệ ề ự ộ ệ ệ ộ ạ : + Đ  nhanh nh y ủ ệ Trang c a t p tin đ ạ ỏ ế ượ c lo i b . t đ + Ghi vào b  đ m t Ở ầ ế  h u h t các ch ự ế ể ầ t đ  c n thi vi ạ ộ ớ x  b  nh : V i c  ch  trang (paging mechanismus), vi c ghi vào b  đ m đ ự th c hi n m t cách t ệ  đ ng và hi u nghi m b i h  đi u hành.

Hình 4.13*****************************

ụ ờ ệ ộ

ử ụ ộ ơ ế ư ế ở ả ệ ề ừ

ộ i m t gi

ề ớ ớ   Các tác v  c  hi u cho phép s  d ng cùng nhau các kho ng b  nh  v i ề    trong h  đi u hành. Tuy ồ ạ   ộ ệ i h n, do đó, m t t p tin đang t n t i ớ ả   ủ t, mà còn thay đ i chi u dài c a  nó. Khi đó, v i  nh

c đ c và vi ề ừ ượ ế ả ế nhi u ti n trình. T  lý do này, có m t c  ch  nh  th   ồ ạ ế ơ nhiên, c  ch  này còn t n t ỉ ượ ọ ế không ch  đ ớ ấ ạ ộ x  b  nh , v n đ  v a nói đã đ ớ ạ ổ i quy t. c gi

ạ ộ ớ ở

ụ ề ệ

:

Thí d  v  t p tin  nh x  b  nh

Unix

ọ ệ ố ạ ệ ề ể ạ ệ ả Đ  t o các t p tin  nh x , h  đi u hành Unix có các g i h  th ng quan

tr ng:ọ

ể ế ặ ả ạ ở ỉ ả ạ ị mmap()   đ  thi t đ t  nh x ộ ệ    không gian đ a ch   o trong ph m vi m t t p

tin;

ớ ị ổ ệ i trên t p tin; ộ ế ở ạ t tr  l c vi

ượ ệ ệ ạ ả ộ ế munmap() đ  k t thúc  nh x . N u n i dùng b  nh  b  thay đ i, do đó các ổ ẽ ượ c thay đ i s  đ ớ ừ ộ  b  nh ể ế trang đã đ ể ự msync()   đ  th c hi n t p tin t

ọ ệ ố ộ ườ ượ Thêm vào đó, còn có m t vài g i h  th ng khác cũng th ng hay đ c dùng:

ờ ệ ạ ộ

ả ả ộ ộ ớ i phóng các kho ng b  nh ; ớ i phóng các kho ng b  nh ;

ỏ ộ ớ ớ ể ạ ậ msem_init()          đ  t o l p các c  hi u cho ph m vi b  nh ; ể ả msem_lock()        đ  gi ể ả msem_unlock()    đ  gi ể ờ msem_remove()   đ  r i kh i b  nh

ạ ộ ớ ở

:

T p tin  nh x  b  nh

Windows NT

ệ ố ố ớ ộ ề

ộ ề

ng ( object) đ ệ ớ ụ ượ ạ ậ c t o l p; đ i t

ở ướ ể ượ ố ượ i   cái   tên   đã   bi c   m   b i   các   ti n   trình   khác   nhau   d

ả ế

ị ẩ ộ ố ượ ế ộ ộ ể ượ ả ẻ ớ ộ ả c  chu n b .  Các  kho ng b   nh  riêng r

ở ọ ị

ượ ự ệ

ạ i.

ớ ạ ữ ộ ệ ả Đ i v i vi c  nh x  gi a b  nh  và h  th ng các t p tin, thì b  đi u hành   ờ ượ ơ ấ ả   c coi là cùng tác d ng v i nhau. Nh  hàm I/O và b  đi u hành c  c u  o đ ọ ng này g i CreateFileMapping(), m t đ i t   ế   ở có   th   đ t ớ ỳ   OpenFileMapping(). Theo đó, m t kho ng b  nh  tu  ý (vài Byte đ n 2 GBytes) ạ ớ ượ c   nh  x   v i hàm   có th  đ đ   ố   ệ ớ ỉ ả   trong   không   gian   đ a   ch   o.   V i   hàm   g i   h   th ng MapViewOfFile()   ớ ạ   c   th c   hi n   và   v i   hàm FlushViewOfFile(),   ph m   v   t p   tin   đ ượ UnmapViewOfFile() nó đ ượ ử ụ ệ ị c đóng l ể ủ ổ

ẻ ạ ộ

ế ớ ơ ấ ả ề ử ế ở

ứ ể ệ ặ c s  d ng đ  trao đ i thông tin c a các ti n trình; trong đó,   ạ  ớ ế ự c x  lý m t cách tr c ti p b i nhi u ti n trình.   ệ   t

ờ ệ ườ ỉ ơ ế C  ch  này đ ệ ọ ệ ườ i ta ch n t p tin làm vi c trên ph m vi b  nh  chia x . V i c  c u  nh x ng ộ ể ượ ệ fie, t p tin này còn có th  đ ộ ậ ồ ố ớ Đ i v i vi c làm đ ng b  các ki u truy c p này, không có ch c năng đ c bi ệ ử ụ ng các c  hi u. xem xét, mà ch  có vi c s  d ng bình th

ệ  (special files)

ệ 4.4.6. Các t p tin đ c bi

t

ơ ữ ủ ủ Có nh ng c  ch  khác nhau c a h  đi u hành, mà v i s  tr giúp c a h

ố ế ể ộ

ệ ầ ổ ự

ệ ề ế ệ  ớ ự ợ ể ượ ơ c chuy n đ i m t cách hài hoà; mà th ng t p tin, các c  ch  này có th  đ   ệ ữ ả i hay t o l p nh ng t p tin đích th c. không c n ph i lý gi ở ộ ươ ữ ộ ả M t trong nh ng ph

t b  v t lý nh  nh ng

ế ị ậ ộ ượ ủ ạ ậ ấ ủ ổ ế ệ ề   ng pháp m  r ng n i ti ng nh t c a h  đi u hành ệ . M i cái ư ỗ ặ ệ ữ t t p tin đ c bi   ệ ế ị ậ   t b  v t lý; dĩ nhiên, các t p tin này ệ Unix là vi c mô hình hóa các thi ế ộ ệ tên c a m t t p tin đ c thu x p là m t thi

ặ ể ệ t c bi u th  v i tr ng thái c a m t

ư

ề ế ệ ị ớ ạ ổ ạ ế ộ t p tin đ c bi ể ả

ệ ệ ẽ ượ ệ

ủ ố ớ ệ ứ ư ế ạ ớ ế ị ầ

ố ở ệ ộ ế

ộ i m t thi ế ẽ ả ậ ấ ả ậ   ệ ấ ả ệ . T t c  các vi c truy c p symbol file) đ u có tác   ụ ế ị   t b , ch  không ph i tác d ng lên t p tin. N u t p tin ị ự ế ị ộ   c d ch t b  nh  th , do đó, khi th c hi n, t p tin s  đ ế ị ẳ t b  đ u cu i nào đó) và khi đó,   t b  (ch ng h n t ệ ủ   ể ệ t c a ế ố ể ọ   t trên t b  đ u cu i đ  đ c, do đó, nó s   c m nh n t ặ ự ượ  đ t c  các ký t

ượ đ và các thay đ i tr ng thái đ i v i t p tin bi u tr ng này ( ự ụ d ng tr c ti p lên thi ế ượ t lên m t thi c vi đ ể ớ i thi chuy n t ượ c th  hi n trên màn hình. N u m t ti n trình m  t p tin đ c bi chúng đ ế ị ầ c vi thi bàn phím. ợ ữ ủ ằ

ề ự ế ặ ả

ấ ậ ủ ế

i s  d ng ặ ả ả ậ ượ ạ ộ ấ ậ ằ   ư ậ L i ích c a vi c mô hình hóa nh  v y n m trong nh ng đi u có th t, r ng ệ   ậ ườ ử ụ  truy c p tr c ti p và hi u ng ả   ơ ế ị t b ; m t khác, các c  ch  qu n lý và b o ề   ệ ệ c đi u

ề ộ ợ ệ ộ ạ m t m t, nó đã t o ra kh  năng cho  ả qu  lên các tính ch t v t lý c a thi ệ ủ ệ ề v  c a h  đi u hành ho t đ ng r t hi u qu ; và do đó, vi c truy c p đ ể ỉ ch nh và đi u khi n m t cách h p lý.

:

T p tin đ c bi

ệ ở t

Unix

ộ ẫ i v i đ Unix, có m t th  m c t n t

ộ ệ ế ị ầ ự ọ

(

ố ự ừ ư

ng ký t ệ nh  các thi ỳ ng d n /dev;  ế ị ặ ượ ổ c b  sung cho t ổ  đĩa t ệ

ả ứ ữ c xem là các tu  ch n, thí d  các

ỗ ủ ụ ở ự ợ ọ ỳ ệ ượ ạ ổ c t o ra b i s  tr

ệ ộ c các b  kích thích thi

ư ụ ồ ạ ớ ườ ở    đó, ể ệ ạ   t b  khác nhau. Có hai ki u t p tin thi t b : Lo i ủ ầ ệ   , g i m t cách đ y đ  là các t p tin đ c bi t ấ ả  ự character oriented special files); chúng đ t c ế ị ầ ế ị ướ  tính, máy in… t b  đ u cu i, các    t b  h ặ ứ ệ ướ   ủ ọ ầ ng t h ỳ  ớ ấ ộ ể block oriented special files  ); khi đó, nh ng kho ng b  nh  b y k ề  đĩa c ng, các đĩa m m… ọ ệ ố    giúp c a g i h  th ng ợ   i các g i h  th ng close(), read(), write() t p tin này thích h p ế ị  ạ ượ t b i đ ấ   ẫ c xu t ng d n /dev/tty, các ký t ự ượ  đ

ế ị ầ

ộ ệ ề Trong h  đi u hành ồ ạ ớ i v i các thi các t p tin t n t ấ ệ ứ th  nh t là các t p tin tu n t ướ ng ký t h các thi ọ ạ Lo i th  hai là các t p tin tu  ch n, g i đ y đ  là các t p tin đ c bi ổ t ng th  ( ể ượ (block) có th  đ ạ ệ ộ ặ M i m t lo i t p tn đ c bi t đ ở ạ ọ ệ ố  t mknod() và  ủ ụ ủ ụ ặ ệ cho các th  t c đ c bi t, mà các th  t c này l ụ ớ ườ ử ụ ủ ệ ề c a h  đi u hành s  d ng. Thí d , v i đ ra và đ Ng

ụ đĩa t

ệ ệ

ộ ố t b  đ u cu i. c đ c trên thi ế ừ ớ ơ ư ằ i ta l u ý r ng, v i c  ch  v a nêu, m t thi ặ ữ ệ ướ i nh ng tên t p tin đ c bi ặ ư ộ ệ c coi nh  m t t p tin đ c bi ườ i m t cái tên khác, ng

ẳ ộ

ế ị ể ậ ố ớ ố ở ị ổ ệ ị ư ế ế ị ể ượ   t b  nh  th  có th  đ c ộ ổ ừ  tính t khác nhau. Thí d , m t    ẳ ụ   ầ ự ạ ệ t, ch ng h n t p tin tu n t  liên t c. ộ ệ   ư ể t b  này nh  là m t t p i ta có th  coi thi ớ ế ộ   ự ng t ng th  (kh i) và v i cái đó, đ  truy c p tr c ti p trên m t ướ   ọ ượ ạ c đ c tr c ; ch ng h n, m t kh i v i s  15 đ ộ    trong b  kích thích

ổ ữ ầ ự ụ ớ ả ượ ử ụ c s  d ng. ế ư

m t vài thi ố ổ ể ẫ ộ ế ị ề ể ệ

t c  các thi ặ ự ệ ặ

ế ị ầ ề ng ký t ậ ố ể ấ ả ư ệ ữ ệ ệ ướ t h ể ể ầ ố ượ ọ ườ ượ vay m n d ể ượ có th  đ ả ướ ặ , d Ho c gi ể ệ ướ ặ t h tin đ c bi ố ư trong các kh i l u tr  tu n t ộ ố ố m t kh i s  5. V i tác v  này, các l nh đ nh v  b  sung  ế ị t b  ph i đ thi Ở ộ t bi nh  máy in và thi ế ị t b  kh i (t ng th ), do đó, nó thì có đi u ki n đ  t thi ể ư th  x ng hô là t p tin đ c bi  cũng nh  t p tin đ c bi ệ ổ t ng th  (kh i). Vì giao di n đ  truy c p trên các d  li u thu n khi ớ   t b  đ u cu i thì không th  l n l n v i   t b  đ u có ệ ướ   t h ng ế   t thì cho

ệ ả ầ

ị ệ ữ ặ   phép không có c u trúc và không c n thông tin qu n lý, do đó, các t p tin đ c ế ị bi

ớ ệ

ẽ ượ ạ ầ ầ ướ ở ơ t b  nguyên s . ộ ổ  đĩa, v i l nh mount(), nút   i trên m t  ồ   ệ ư ụ ủ ệ ố c  nh x  trên m t th  m c c a h  th ng t p tin đang t n   c n p l n đ u tiên ư ụ  trong th  m c thì s  đ

ạ c đó đã  ớ ệ ấ ể ượ c bi u th  là nh ng thi t này còn đ ồ ạ ệ ệ ố ể ử ụ Đ  s  d ng h  th ng t p tin t n t ộ ả ượ ả ố ủ g c c a cây ph i đ ệ ạ t i. T t c  các t p tin tr vào m t h  th ng t p tin m i.

ấ ả ộ ệ ố ệ ề ặ

ậ ể Trong h  đi u hành Unix, t p tin đ c bi i s  d ng

ng do quan đi m c a  ổ ạ ề ạ

ả ượ

ọ ệ ố ườ ệ ặ ị

ợ ệ ệ ụ ế

ộ ọ ệ ố i t

ớ ằ ệ

ộ ệ ể ệ ề ữ ờ ộ

ọ ệ ố ợ ả ữ ệ ượ ệ t đ   c phô bày nh ng kh  năng phi ủ ng ấ   ế ị ậ ườ ử ụ  khi truy c p trên thi ườ t b  v t lý. T t th ị   ể ổ ư ả ự ổ ố ộ c  s  thay đ i tr ng thái (nh  thay đ i t c đ  truy n đ t, thay đ i ki u khi ch u ệ ặ ờ ự ả ố ế   t IOCTL() i n i ti p…) ph i đ t c th c hi n nh  hàm g i h  th ng đ c bi ộ ớ ự ể ố ử ụ ế ệ   t. N u ng v i s  bi u th  thích h p t p tin đ c bi i ta mu n s  d ng m t tính ề ậ ộ ặ ầ ứ ấ   t vào các đĩa m m hay ch t ph n c ng đ c bi t, thí d : m t m t đ  cao khi vi ườ ả ộ ự ộ ạ ự ộ   m t s  cu n l i qu n lý trong  đ ng theo g i h  th ng close(), do đó, ng ọ ệ ố ặ ệ ề ạ   t m i b ng g i h  th ng mknod(); h  đi u hành Unix t o ra m t t p tin đ c bi ồ đ ng th i anh ta cũng chuy n giao cho b  kích thích h  đi u hành nh ng thông   ố s  thích h p khi g i h  th ng.

:

T p tin đ c bi

ệ ở t

Windows NT

ọ ậ ừ các

ệ ế ế ệ ề ậ ả Các nhà thi ơ ờ ng th i và đã đ m nh n c  ch  c a các t p tin đ c bi

ả ố ượ ề ệ ặ

ặ ư ụ ệ ng t p tin đ c bi ệ ố ệ ề ả i qu n lý đ i t

ủ ả

ế ị ệ ợ

ệ ộ ệ ươ ẳ ị

ệ ề ớ ữ ng pháp đã kh ng đ nh. Nh ng ph ủ ụ ủ i và làm vi c nhi u trên các th  t c c a b

ệ ề t k  h  đi u hành Windows NT đã h c t p t   h  đi u hành ế ủ ươ ệ ủ ệ ề đ t c a h  đi u hành   ườ   ổ ệ ọ ữ Unix. Thêm vào đó, h  đã phân b  vi c qu n lý cây th  m c cho nh ng ng i ả ệ   qu n lý khác nhau. Vi c đi u hành các đ i t t cho phép ắ ườ ộ   ng có toàn quy n trên các h  th ng t p tin và b t bu c ng ả ả ệ ề .  ph i quan tâm t h  đi u hành ả ỗ   t b  ph i phù h p cho m t t p tin  o (virtual file), t p tin này đã xác M i thi ươ   ị ng đ nh các đ i t ộ  pháp này s  đ kích thích thi ố ượ ớ ệ i vi c qu n lý t p tin và qu n lý I/O c a nhân  ả ố ượ ẽ ượ t b ng và có nh ng ph ườ c ng ế ị ở ươ  ch ữ i ta nói t ng sau.

ơ ế ệ ự ệ 4.5. Vi c th c thi c  ch  t p tin

ễ ộ ớ

ụ   4.5.1. Bi u di n b  nh  liên t c

ộ ấ ươ ư ế ố ơ ươ ả

ộ ng pháp nh  th  thì t ộ ệ

ộ ệ

ụ ớ

ỉ ượ ử ụ ể ế ắ ỗ ắ   ơ ả ủ ng đ i đ n gi n: B t C u trúc c  b n c a m t ph ư ụ ầ ỉ ố ớ ộ   đ u không gian b  nh  là m t ch  s  hay m t th  m c, mà trong đó các t p tin ệ ế ạ ể ượ ệ i đ  ghi ti p các t p tin. M t t p tin thì t kê vào; và không gian còn l c li đ   ể   ạ ừ ưở ộ ế ượ ng v a nêu trên phát tri n c vi đ t liên t c v i nhau trong m t đo n. Ý t ư ụ ủ ộ ị ế ỗ ệ ờ ừ    và các th  m c là theo th i gian, trong đó m i t p tin chi m m t v  trí c a đĩa t ế ưở ừ ớ ự   . Vì ý t s  khái quát các ngăn x p v i các dãy  ng này thì quá  trong đĩa t ể ổ ệ ứ   c s  d ng đ  thu x p ch  cho c ng nh c đ  thay đ i t p tin, do đó, nó ch  đ

ỏ ọ ố ượ ở ộ ệ ọ ng) ư ệ   ớ  trong m t t p tin l n (g i là th  vi n

ề ệ nhi u t p tin nh  (g i là các đ i t ệ các t p tin).

ễ ộ ớ ể 4.5.2. Bi u di n b  nh  ki u danh sách

ộ ớ ở ộ ệ ụ

ằ ế ị ữ

ế ố ả Vi c quy t đ nh cho m t kho ng b  nh  liên t c là  ộ ớ c phân ra nh ng kho ng có đ  l n b ng nhau (block) và t Ư ể

ở ỗ ộ ấ ả ủ ượ ư ụ ẫ ỏ ch , t ộ i m t th  m c h ng (b  xoá nh m l n…) đ

ị ề ầ ậ ượ ả   ớ  ch : b  nh  ph i ả   t c  các block ươ   ả ượ ng c k t n i trong m t danh sách.  u đi m c a ph ị  ộ ể c bi u th ở  ứ ự ệ c ch a đ ng

ể ệ ệ

ươ ố ế ố

ả ọ i ta ph i đ c tr ố ể

ượ đ ộ ệ ủ c a m t t p tin ph i đ ỗ ạ pháp này là  ấ g p đôi và các thông tin t p tin (tên, các quy n truy c p…) đ ầ ệ đ u t p tin. ệ   ậ ủ ng   pháp   này   là   vi c   truy   c p   t p   tin   kém   hi u c   đi m   c a   ph Nh ướ   ườ ọ ườ ệ c i ta mu n đ c block s  123, do đó, ng ấ ả ế ể ướ t c  123 blocks đ  có th  l   t qua danh sách cho đ n block s  123. Hình ươ ỉ ộ ượ nghi m: N u ng đó t 4.14 ch  ra m t ph ư ế ng pháp nh  th .

Hình 4.14*************************

ễ ộ ớ ượ

ỉ ố ậ

4.5.3. Bi u di n b  nh  đ

c bi u th  qua ch  s  t p trung

ệ c s  b t l

ượ ươ

ư ố ậ ộ

ố ế ụ ố ủ ể ằ   ượ ự ấ ợ ủ ể ườ i c a ki u danh sách t p tin, b ng i ta có th  tránh đ   Ng ộ ề ườ ổ ườ i ta không phân b  trong môi tr ng b  nh  các thông tin v  dãy   cách, ng ế   ụ ớ ố ườ ầ ự ố i ta k t  s  kh i cũng nh  danh sách các kh i liên t c v i nhau, mà ng tu n t ỉ  ấ ọ ộ ợ c g i là c u trúc ch h p chúng trong m t kh i t p trung. Ph ng pháp này đ ứ   ỗ ự ề ố ậ s  t p trung, nó chính là m t danh sách, mà trong đó, m i s  đi n vào ch a ự đ ng s  c a kh i ti p t c trên đó.

Hình 4.15*****************************

ề ả ấ ớ ệ ề

ỗ ở ệ  MS­DOS B ng c p phát các t p tin (FAT)  : ỗ ừ ượ V i h  đi u hành MS­DOS, m i đĩa t  đ ả ộ ớ

ố ạ ấ

ở ộ ượ ố

H t

ắ ầ ả ế ố ồ ị ớ

ự ề ươ ộ ơ ng  ng m t đ n v  b  nh

ừ ộ

ỗ ệ ạ ố ượ ể ả c phân chia thành nhi u cung   ố   đo n (ạ sectors), m i sectors có đ  l n kho ng 512 Byte. B t đ u là sector s  0 ệ   ượ bootstrap­sector), còn b ng c p phát t p c b  trí cho cung đo n kh i đ ng ( đ ả ố c b  trí các sector s  1 đ n s  5; các b n sao tin (file allocation table: FAT) đ   ự ề   ế ố ố ệ ồ ạ ở ả b o v  t n t  các sector s  6 đ n s  10. B ng FAT thì bao g m các s  đi n i  ớ ố ậ ụ ề ớ H,  i FFF vào v i chi u dài 12 bits hay 3 s  th p l c phân v i các giá tr  000 ứ ớ   ấ ớ ả cho nên, b ng FAT có m t không gian l n nh t 512*5 = 2560 Byte  ng v i ứ ớ  ị ộ ả kho ng 1706 s  đi n vào. M i s  đi n vào thì t ứ   ộ ụ ứ ị ộ ỗ ơ ủ c g i là m t sluster (t c m t c m sector)  ng . M i đ n v  b  nh  đ c a đĩa t ớ ể ạ ượ ấ   ề ộ v i 1024 Byte, do đó, m t đĩa t c nhi u nh t  trong MS­DOS có th  đ t đ ộ i thi u 1kByte. m t dung l ỗ ự ề ớ ượ ọ ừ ng kho ng 1,7 MB và m i t p tin đ t t

ộ ự ề ư ả ỗ M i m t s  đi n vào b ng FAT có ý nghĩa nh  sau:

ị ở ố ủ ố ự ề ể ầ 000H các cluster (c m) còn tr ng; ế ế   001H…FF0H cluster đã đ y; s  đi n vào bi u th  b i s  c a cluster k  ti p

ủ ệ c a t p tin;

ế ậ ị ể ử ụ FF1H…FF7H các cluster b  khuy t t t không th  s  d ng do l ỗ ề ặ ậ   i b  m t v t

li u;ệ

ủ ệ ố FF8H…FFFH các cluster cu i cùng c a t p tin.

ầ ự ề Vì hai s  đi n vào đ u tiên đ

ệ ủ ượ ầ ố ệ ả c s  d ng cho vi c qu n lý, còn các t p tin ẫ ộ c d n ra

ượ ử ụ ớ ắ ầ ố b t đ u v i sector s  18, do đó, s  sector đ u tiên c a m t cluster đ ứ ể ở b i bi u th c: ố ủ ỉ ố ủ ề (s  c a sector) = (ch  s  c a đi n vào cluster ­2)*2 +18.     (4.6)

ể ề ệ ề ườ

ớ ể ả ộ ậ Bình th ủ ệ

ạ ệ ủ

ớ ế ở ộ ả ế ố

ệ ộ ủ ể ọ ề ệ ớ ạ ố ượ i h n s  l

ở ả ườ ượ ộ ệ ạ t, ph i k t n i vi c đi n vào v i thông tin đã ph  tĩnh l ả ể ỉ đó, ng ả i ta có th  ch  qu n lý 16

ị ế   ng vi c đi n vào b ng FAT t o đi u ki n đ  xác đ nh cluster ti p ủ ị ộ   ệ theo c a t p tin m t cách đ c l p v i vi c che ph , do đó, vi c bi u th  m t ầ   ầ ủ ừ ộ  m t cách đ y đ . Nó thì c n cluster kh i đ ng đ  đ  đ c m t t p tin c a đĩa t ệ   ủ i. Tuy nhiên, vi c thi ộ ớ   ng các cluster đã qu n lý; các b ng FAT có đ  l n mã hoá này gi 3 = 212 =  ỳ tu  ý đ c kéo dài quá 5 sector, mà  4096 cluster   ng v i kho ng 4 MB.

ứ ỡ ả ở ổ ớ ứ ơ ở Trên c  s  này,

ổ ỉ ố ủ

ộ ố ủ ộ ộ ớ ả  đĩa c ng, kích c  b ng FAT trong MS­DOS s  đ ề ả ượ ừ  ph i đ ệ ợ có dung l ng 2 GB­ đó là m t đ  l n ti n l

ộ ộ ớ ầ

ả ế

ả ấ ử ụ ệ ố ở

ệ ư ế ượ ừ ậ v t lý nh  th  đ

ồ ạ ấ ươ ẻ i, ph Ng

ẽ ượ   c ớ   ằ thay đ i: ch  s  c a cluster là m t s  dài 16bit. Đi u đó cũng có nghĩa r ng, v i 216 = 65536 cluster, thì không gian c a đĩa t ộ ổ ủ   c che ph . Khi m t   đĩa ề ượ ừ   i cho các máy tính, đi u đó có t 31/216 = 215 = 32168 Byte. Vì h u h t các t p tin thì ệ ế   nghĩa m t cluster có đ  l n 2 ở ả   ệ ế  trong kho ng 1kByte, nghĩa là ph i bi u m t 31 đ n 32 kByte cho vi c qu n ộ    trong MS­DOS, m t lý h  th ng, khi đó hi u su t s  d ng quá th p. Cho nên  ộ ệ ố   ớ ổ  đĩa logic, mà v i m t h  th ng  đĩa t ệ t p tin riêng l , khi đó, chúng ch  c n m t đ  l n cluster nh  thôi. ượ ạ c l ớ ấ ấ ề ổ c phân làm nhi u  ỉ ầ ộ ộ ớ ẫ ng pháp này v n còn t n t ấ ớ ả ở ậ

ướ ể ớ ộ ỏ ệ ố   ề ằ i v n đ , r ng khi các h  th ng ư ụ  trong   ắ   t qua, do đó, không gian b  nh  chính ch c

ượ ng 2 GByte = 2

ả ử ộ ổ  th  m t  ượ ỉ ố ư ụ ứ ng 1 kByte = 2

10 Byte; m t danh sách ch  s  th  m c có t ỗ ầ ể

ề ả

ề ố ỳ ể đĩa c ng có dung l ộ ượ ẫ 20, do đó, t

ố ớ ề ề ằ

31 Byte và m iỗ   ố   i   c d n ra. M i l n đi n vào ph i đón ố   i thi u 20 bit hay 3 Byte cho   c s  d ng. Đi u đó, có nghĩa r ng, đ i v i m t danh sách ả ượ ự ữ   c d  tr , ượ

31  / 210  = 2.106  l n đi n vào đ ầ i thi u m t con s  tu  ý 0…2 ượ ử ụ ả ả

ộ ự ề ử ụ ư ế ằ ỉ ệ t p tin l n thì danh sách t p trung cũng r t l n. Vì th  m c chung ph i  ể ớ ộ b  nh  chính đ  có th  nhìn l ắ ượ c che ph … ch n đ Thí dụ: Gi block có dung l thi u 2ể ộ ậ ố nh n t ộ ỗ ầ m i l n đi n vào đ ỉ ố ậ ch  s  t p trung, có kho ng 6 MByte b  nh  chính luôn luôn ph i đ và l u ý r ng, không ph i ch  có s  đi n vào s  d ng h t dung l ng đó!

ễ ộ ớ ể

ỉ ố

4.5.4. Bi u di n b  nh  bi u th  ch  s  phân b

ộ ọ ỉ ố ậ

ả ế ị ạ ệ ồ

M t quy t đ nh quan tr ng đ  l a ch n t p tin ch  s  t p trung đ i v i b ớ ỗ ệ ữ

ỉ ố ộ ượ ế ỉ

ọ ệ ộ ả ượ ư c l u tr ố ệ i. N u ch  có s  t p tin phù h p đ ủ ợ ả ượ ả ạ ụ ẽ ể ự ẫ nh  qu ng đ i thì bao g m vi c d n ra m t danh sách ch  s  riêng l m i t p tin và danh sách này ph i đ ở ướ  d trong hình 4.16  ỉ ố index block) c a nó s  ph i đ ố th , do đó, kh i ch  s  ( ố ớ ộ  ẻ ố ớ    đ i v i  trong m t block, hãy so sánh   ự   c làm hài lòng th c i. c hoàn tr  l

Hình 4.16********************

ấ ệ ỉ ố ẽ

ờ ệ ơ ệ ố ộ i, ng

ằ ấ ồ ạ , trong các h  th ng t p tin đang t n t ệ

ề ấ ề ệ ớ ồ ạ ớ ườ i ta có th  d n gi

ệ ế ể ẫ ạ ộ

ầ ớ ầ ả ặ

ỉ ố ứ

ố ớ ầ ề ị ề ỉ ố ủ ấ ớ

ừ ể ủ ế ộ ậ  vào đĩa t

ộ ch c m t cách h  th ng các danh sách ch  s

ẫ ỉ

ọ ề ượ c d n ra, và do đó, nh m tăng t c đ  chuy n đ i ( ị ẽ ị ượ d ng tr

ở ươ  ch ị ỉ ả ị

T t nhiên, các danh sách ch  s  s  dài h n, khi đó, các t p tin thu c danh ườ ơ   i ta sách đó cũng dài h n. B y gi ồ ạ   ư i i v i vài block và cũng có ít t p tin t n t l u ý r ng, có r t nhi u t p tin t n t ỉ ố  ộ ả i ra m t block ch  s trong nhi u block. V i lý do này, ng ố ớ chính, mà đ i v i h u h t các t p tin, block này đã đ t yêu c u. Đ i v i m t vài   ỉ  ộ ỉ ố ệ i nhi u không gian cho ch  s , chúng ta ph i đ t vào m t block ch t p tin c n t ỉ ệ   ế ố ở ố ế  cu i danh sách ch  s . N u các t p s  ti p theo,mà đ a ch  logic c a nó đ ng  ả   ấ ả ẩ t c  các block ch  s  ph i tin quá l n, thì đi u x y ra r t ch m, vì khi đó, t ầ   ỉ ậ ị ầ ự ượ  đ  tìm ki m đ a ch  v t lý c a block c n đ c đ c m t cách tu n t ể ổ ứ ệ ố ỉ ố  ụ ằ tìm. Đi u đó nh m m c đích đ  t ổ speed of translation)  ể ộ ằ đã đ ở ướ   ế ị ủ ỉ ậ ớ ủ ệ i các đ a ch  v t lý c a thi i các đ a ch  logic c a t p tin t t b . Hình 4.17  ướ   ắ ụ ỏ  nguyên t c đã đ đây s  làm sáng t c c trình bày trong m c 3.3  ỉ ậ   ậ ừ ề ổ ể ề v  chuy n đ i nhi u b c t  không gian đ a ch   o thành không gian đ a ch  v t lý.

Hình 4.17****************************

ệ ố

4.5.5. Th c thi h  th ng t p tin

trong Unix

ế ươ ệ ề

ấ ử ụ ữ ừ ng pháp v a trình bày  ụ ở ổ ặ ộ ự ế

ữ ố ớ ệ trên, đó ệ    đây, trong nh ng  ng d ng, m t s  bi n đ i đ c bi t    c  đ n nh ng thông tin xác đáng đ i v i các t p tin

ề ề ở ộ H  đi u hành ti ng tăm nh t s  d ng ph ứ Ở ệ ề là h  đi u hành Unix.  ượ ệ ử c th  nghi m đ  gi đ ắ ư ng n cũng nh  dài  V  đi u này, thì nút ch  s  đ u tiên (

ượ ạ ủ

ộ ậ ỉ ủ ậ ị

ổ ề ề ộ

ể ữ ố ị ỉ ố ở ộ  trong m t block ch  s . ỉ ố ầ ầ   first index­node) đ c t o b i m t ph n ữ  ỉ ầ ị ứ ự khái quát, mà trong đó ch a đ ng các tên, các đ a ch  đ u tiên c a các block d ế ể ộ ệ li u, và các đ a ch  c a m t cây chuy n đ i gián ti p m t b c, hai b c và ba   ậ b c. Hình 4.18 ch  ra m t thí d  t ng quát v  đi u đó. ở ụ ổ ủ ỉ ố ượ ộ N i dùng đ

trên c a m t nút ch  s  đã đ ị ự ở ộ ỉ ỉ ượ c ch  ra  ượ ụ ể ự ể ấ ở ở c m  r ng b i các s  bi u th  th c ch t ỉ c tu ch nh trong các  bên trong, thí ộ ệ ố h  th ng c  th  và đ

ớ ể ờ ệ ệ

ỉ ị ộ ộ ớ

Ở ạ

ể ồ ạ ở ậ ậ

ụ ở d      Unix System V, v i các thông tin c  hi u đ  ngăn hãm t p tin, chúng đã ố ở ộ ỉ ố  m  r ng không gian cho b  ch  th  (khi không gian b  nh  còn tr ng, nút ch  s ự ề ậ ẽ ượ ầ ố ớ   ế ợ đ u tiên s  đ c treo vào danh sách b c hai k t h p), các s  đi n vào đ i v i ệ ố ớ ớ ả ậ ở  ạ b ng FAT v i hàm mount() và các thông tin tr ng thái đ i v i vi c truy c p  ồ ạ ả i b ng FAT gián  trong Unix System V không t n t trong m ng máy tính…    ế   ỉ ố ẫ ế ti p hai b c và ba b c; tuy nhiên, nút ch  s  v n có th  t n t  các block ti p i  theo.

ế ng t

ộ ư ượ ự ộ ệ ộ ữ

ệ ộ ở ị ị

; còn v  trí giao d ch hi n hành  ặ ượ ế ợ ệ ậ ộ c k t h p thành m t block đ c bi

ố ủ ệ ệ ỏ

ư  ự ỉ ố ươ , th c thu x p m t cách chính xác m t nút ch  s ; t ỉ ố ẽ  ố ủ ư  thu x p nh  là m t t p tin l u tr . Các s  c a nút ch  s  s ả   ớ  trên b  nh  qu ng ọ   t, còn g i là nút ệ ố ị t (super node). N u super node này b  phá h ng, do đó, h  th ng t p tin   ử ụ ượ ỗ ệ M i t p tin đ ế ụ ệ m c t p tin cũng t ầ ự ộ ượ c trao m t cách tu n t đ ạ đ i (s  c a block v t lý) đ ế ặ đ c bi không s  d ng đ c.

Hình 4.18******************************

ế ố ủ ỉ ố ủ

ế ẽ ồ ạ ệ ề ề   Tham chi u chìa khóa c a m t t p tin là s  c a nút ch  s , còn n u có nhi u   i trong các

ộ ệ ố ớ ệ ế tham chi u (nhi u tên t p tin) đ i v i t p tin này thì chúng s  t n t th  m c khác nhau.

ơ ộ ư ụ ẽ ượ ạ ậ

ề ỉ ứ ự ủ ự ề

ư ụ ộ M t th  m c s  đ ỉ ố ủ ệ ầ ậ

ữ ở ầ ộ ỗ c l u tr

ư ấ ả ủ ệ ậ ủ ộ ớ

ể ề ế ộ ơ c đ c hay đ

ộ ớ ệ ễ

ệ ứ ừ

ề ữ ộ ự ề ư ụ ơ ở ắ ố ủ   ả c t o l p m t cách đ n gi n: Nó ch  ch a đ ng s  c a ề   nút ch  s  c a t p tin và tên (nh  chi u dài tên, chi u dài c a s  đi n vào…), ư ữ ngoài ra không c n gì thêm. T t c  nh ng cái khác nh  quy n truy c p…thì   ư ụ ả   ượ ư  block đ u tiên c a t p tin. Vì m i th  m c chi m m t kho ng đ ứ ớ  ị ộ ả ớ ộ b  nh , mà kho ng này là đa b c c a đ  l n block (t c là m t đ n v  b  nh ể ượ ọ ư ụ ữ  ượ ư ổ ượ c chuy n đ i nhanh), do đó, các th  m c có th  đ đ c l u tr ề ả ủ ự  ổ ể nhanh và hi u qu . Vi c bi u di n b  sung chi u dài tên hay đ  l n c a s ở ộ ư   ớ ạ ượ ề đi n vào (t c chi u dài tên đ i h n 1 t ) thì cho phép l u c m  r ng trên gi ộ  trong m t th  m c. tr  m t s  đi n vào tên ng n h n

ệ ố

:

4.5.6. Th c thi h  th ng t p tin

Windows NT

ể Ở

ả ộ ở

ộ ộ ơ ề ệ ả ớ ồ ạ , mà trên đó còn t n t

ộ ế ị ệ ề ượ volume (dung l ồ ể nó có th  bao g m m t hay nhi u đĩa t ớ ượ kho ng b  nh  đ

ộ ự ắ ắ ỗ

ị ơ ả ộ   ơ  trong h  đi u hành Windows NT, đ n v  c  b n đ  qu n lý t p tin là m t ạ   ớ ị ộ ng). Đó là m t đ n v  b  nh  logic (  trên b  nh  qu ng đ i), ữ   ẻ ừ i nh ng  riêng l ộ ơ ả ế M i volume thì bao g m m t s  s p x p theo m t nguyên t c nào đó các d ỗ ệ ộ ố ế ọ ố

ệ ế ệ ứ

ả ố ầ ự ố ầ ự ẽ ượ . S  tu n t

ố ệ ệ ộ ố ệ ườ ệ ỗ c liên k t trong m t đ n v  logic. ồ ữ  ộ ượ   c đánh s . M i t p tin có m t s  tham chi u, g i là file reference number) v i kho ng 64 Bit, t c là nó bao     c gia tăng ữ   t gi a ệ li u hay các t p tin đã đ ớ ố s  tham chi u t p tin ( ồ g m 48bit cho s  t p tin và 16bit cho s  tu n t theo m i khi xoá t p tin thu c s  t p tin, do đó, ng s  đ ể i ta có th  phân bi

ế ớ ộ ệ ệ

ươ ng t

Ư ể ố ệ ố ệ i các s  t p tin t ấ ươ ị i các s  t p tin trung gian đã b  xoá và m t t p tin hi n hành, ự . ườ ng này là cung c p cho ng ố ầ ủ ấ ả ng đ i đ y đ  t i ta t t c

ủ ề ệ

ự s  tham chi u t ế ớ ế n u chúng tham chi u t ưở u đi m c a ý t các thông tin v  t p tin: ậ ệ ể ả ả ơ ở   + C  c u truy c p t p tin thì kiên đình và đ n gi n, k  c  các thông tin kh i

ơ ấ ệ ố ộ đ ng h  th ng;

ầ ả + Các thông tin v  b o v  đ c tách b ch theo các thành ph n qu n lý, và

ề ụ ớ v i đi u này, nó thì có th  thích h p h n ạ  các  ng d ng;

ệ ượ ợ ơ ở ể ử ụ ứ ượ ề ả ể ừ  không th  s  d ng đ

ể ượ ấ ể ả c, do đó, các thông tin qu n lý i trên các ạ c n p tr ở ạ  l i s  d ng không th  nhìn th y…) có th  đ

ầ + Khi các ph n đĩa t ườ ử ụ ủ

ỗ ừ . ứ ự ệ ả (mà ng ầ ph n khác c a đĩa t M i volume ch a đ ng m t b ng trung tâm g i là b ng t p tin ch  (master

ộ ả ệ ọ file table: MFT), mà trong đó, các t p tin h  th ng đ

ấ Hình 4.19 ở ướ  d

ư ụ ư ề

ữ ặ ầ ủ ệ ố ấ ầ ủ c ghi chép r t đ y đ . ấ ả ồ   t c  các i đây cho th y, chính nó là m t t p tin bao g m t ệ  ở ộ ủ  kh i đ ng c a h ạ    ch t và t o thành các ượ ộ ệ ề ệ ự ượ c gi

ấ ả ủ ệ ề ệ ố ữ ệ d  li u v  các th  m c cũng nh  các thông tin v  vi c t ệ ố th ng (bootstrap). T t c  16 t p tin đ u tiên này đ ệ t p tin h  th ng c a h  đi u hành Windows NT (NT file­system: NTFS).

ố ớ

ủ ệ ả

.

ị ở

ượ

ệ ệ ệ

ể c bi u th

ả    đây và đ m

T p tin 0 T p tin 1 T p tin 2

ụ ể

ạ ộ

ế

T p tin 3

ượ

ươ

ữ ỗ

ả ượ ử ng trú và s a ch a l ị ấ ả

ự i đã đ ể

ườ ể  đây bi u th  t

ư ấ ươ ệ c th c hi n; ch ượ ẳ c kh ng đ nh. ộ i

ị t c  các ki u thu c tính t n t

ồ ạ ở

T p tin 4

ộ ư ạ ủ

ư ụ ố

“\”

ủ ủ ơ

ụ ị ộ

ệ ệ

T p tin 5 T p tin 6

ươ

ng trình format và

c t o ra nh  ch

T p tin 7

ượ ạ ị

ờ ỉ ậ

ở ộ ủ ư ụ ủ

ủ ệ ể ử ụ

ệ ệ

T p tin 8 T p tin 9

ườ

ả B ng t p tin ch  (MFT) ả ệ ố B n sao b o v  b ng MFT đ i v i các t p tin h  th ng, đ nh v  đĩa t ổ ấ ệ T p tin logic: Các tác v  thay đ i c u trúc NTFS, đ ả ử b o các ho t đ ng chuy n đ i nhân t . ệ T p tin volume: Các thông tin tr ng thái c a volume nh  tên,  n b n… N u Bit ặ ng trình ng trình chkdsk ph i đ corrupted đ c đ t thì ch ể ệ ệ ố này ki m tra h  th ng t p tin th Ở ị B ng đ nh nghĩa thu c tính:  trong volume, nh  tr ng thái ư ụ ố ự Th  m c g c: Tên c a th  m c g c, thí d  ký t ư ụ   ớ ệ T p tin bitmap: B ng che ph  c a đ n v  b  nh  volume (sluster), xem th  m c 3.1.1 ệ T p tin boot: T p tin kh i đ ng này đ ứ ự ch a đ ng mã bootstrap c a Windows NT và đ a ch  v t lý c a t p tin MFT ệ T p tin bad cluster: Th  m c c a colume cluster không th  s  d ng … … Các t p tin c a

ườ ử ụ  bình th

ư ụ ng và các th  m c

i s  d ng

ủ ng

T p tin 16

ầ ự ủ

ủ ệ ố

Hình 4.19. Dãy tu n t

c a 16 t p tin đ u tiên c a h  th ng các t p tin (NTFS)

Windows

NT

ấ ư ấ

ộ ủ C u trúc logic c a m t volume đ ộ ệ ố ủ ệ

ư ộ ả

ả ự ề ộ ự ề ư ụ ố ớ ỗ ệ ứ ự ữ ệ   ượ ạ c t o thành nh  sau: C u trúc d  li u ệ ủ ộ ả   trung tâm c a m t h  th ng t p tin là m t b ng t p tin ch  (master file table: ệ ở ặ    trong Unix. B ng MFT MFT); b ng này đóng vai trò nh  m t nút đ c bi t  ỗ   ch a đ ng m t s  đi n vào đ i v i m i t p tin và m i th  m c. S  đi n vào

ộ ộ ể

ồ ộ ầ ự ầ ủ ệ ủ ọ i m t cách đ y đ , g i là thu c tính th

ộ ư ườ ữ ệ ẻ ồ ạ  t n t

ộ ộ ự ườ

ộ ọ ượ ộ ụ ng), thêm vào đó, s  tham chi u t ể

ị ườ ị ự ể resident” (th

ộ ề ứ ự ộ ế ệ

ề ự ắ ầ ứ ự ề ả

ố ươ ọ

ễ ở ủ ố ủ ệ  trong t p tin nh

ừ ố ủ ố ủ ệ ế ắ

ủ ệ ả ở

ộ ớ

ượ ộ N u theo đó các block c a b  nh  ch  t n t ị

ư ố

ẩ ủ ả ế ả ộ ơ

ẫ ồ ạ ở ặ   ỗ  các thu c tính c a t p tin. M i thu c tính có th  ho c này bao g m dãy tu n t resident atribute), ho cặ   ồ ạ ng trú ( t n t ộ   ế i nh  là m t là, n u thu c tính này quá dài (thí d  các d  li u riêng l ớ ế   ế ớ i các block b  nh  ti p thu c tính bình th ộ ự  ỗ c bi u th  là “runs”. M i thu c tính có m t s theo (còn g i là các cluster) đ ạ ầ   ng trú ) hay kéo căng hai đ u (header); bên c nh s  bi u th  “ ự ắ ầ ườ   ng trú), s  kéo căng này còn ch a đ ng s  b t đ u và “nonresident” (không  th ả   c  chi u dài thu c tính trong khi đi n vào t p tin. N u thu c tính là không ườ ứ ự   ng trú, do đó, nó ch a đ ng s  b t đ u và ch a đ ng c  chi u dài c a các th ố ủ ố ổ ố   ng đ i c a các kh i 0…N, g i là s  c a các kh i b  sung. Thêm vào đó, s  t ư  ẽ ượ ả ể cluster  o (virtual cluster number: VCN), s  đ c bi u di n  ả  s  c a cluster  o thành s  c a cluster logic (logic là vi c s p x p chúng t   ư ậ ữ   ộ ự ề ễ cluster number: LCN). Hình 4.20 bi u di n m t s  đi n vào nh  v y. Nh ng ụ ầ ủ ở ộ c gi  trên.  trong m c 4.3.2  thu c tính c a t p tin đ i thích m t cách đ y đ   ủ ộ   ộ ế ố ỉ ồ ạ ế i toàn s  0, và n u m t thu c ể ố ớ ệ ạ ượ c bi u th  compress (nén l   i) đ i v i t p tin, do đó, các block tính chu n đ ớ ẽ ư ư ậ ẽ ữ ộ    là nh  v y, nh ng khi đ m các tr ng c a b  nh  s  không l u tr . Đáng l ợ ẽ ượ ố cluster  o, các kh i cluster thích h p s  đ   c nhãy qua m t cách đ n gi n, do ỗ ố ầ ự  tr ng v n t n t đó, trong dãy tu n t VCN, các l i.

Hình 4.20************************************

ệ ủ ượ ệ ố

ế ư ệ ượ ở ướ c đ a tr  l

ố ả

ậ ỉ ạ ượ i v i các block kh i x ứ ự ả i thu t này ch  đ t đ c các t p tin h  th ng c a Windows NT ố ng là các s  0. N u các   ổ   ậ ộ i thu t nén t ng ứ   c nén nhanh ch  không

ấ ọ ề Khi đ c các t p tin, thì đi u đó đ ế ở ạ ớ ậ t và đ nh n bi ủ ệ block c a t p tin nén không ch a đ ng các s  0, do đó, m t gi ượ quát đ ạ ượ đ t đ

ộ ệ ữ ệ

ỉ ố ớ ệ ụ ệ ố ộ  ủ    ch c thành d ng cây B* (thí d  các t p tin h  th ng c a

ỉ ố trên. ầ ứ ấ ượ ứ c đáp  ng; tuy nhiên, gi ệ c nén hi u su t. ư ụ ồ Ở ộ  m t th  m c, dòng d  li u bao g m m t ch  s  v i tên t p tin, mà b ạ ượ ổ ứ ủ ệ đ m c a nó đ c t ở ệ ề h  đi u hành OS/2), xem m c 4.4.4  ầ Ch  s  này bao g m 3 thành ph n: ph n th  nh t là các tên đ

c đánh ch  s ỉ ẫ ọ đi n (g i là ch  s  g c:

ồ ầ ự ừ ể  t ứ trong dãy tu n t ầ ế ắ ả

ủ ủ ả

ế ệ ố ờ

ữ i

ệ c b ng MFT sao chép l ổ ộ ẽ ượ ệ ộ ự

ệ ơ ở ợ

ồ ư ụ  trong các th  m c. Tên t p tin đ ượ ỗ ờ ờ ỉ ố ở ệ

i nh  th i gian tìm ki m ng n h n   trong dãy tu n t ứ đi n. M i tên t p tin đ ự ề ỉ ố ỉ ố ớ ỉ ố  ở ủ   ỉ ố ố index root) và các ch  d n c a ể ấ   ộ ệ ủ chúng; ph n th  hai là các b ng s p x p (VCN ­> LCN) c a các b  đ m đ  c p ữ ệ ứ ầ ườ ỉ ố index allocation) cho các d  li u không th ng trú; ph n th  ba là phát ch  s  (   ọ ộ ệ ả ạ các b ng che ph  c a các b  đ m còn g i là các bit  nh x . ạ   ồ ỗ ự ề M i s  đi n vào bao g m s   tham chi u t p tin, tên t p tin, th i gian t o ạ ở ạ   ượ ả ấ ả ề ậ i  t l p và chi u dài t p tin; t t c  nh ng cái đó đ c b  sung; chi phí này   đây. Tuy nhiên, m t s  chi phí cho vi c đ ng b  s  đ ượ   ệ ắ ế c có l ộ   ầ ự ừ ể ỉ ẫ c ch  d n trên m t đánh ch  s    t ộ ỏ ơ ự ộ ệ   b  đ m ch  s  và ch a đ ng các s  đi n vào v i ch  s  nh  h n. M t cây B*

ố ơ ề ề ộ ể ườ t h n chi u sâu, vì nó cho phép các tác v ụ

ng phát tri n theo chi u r ng t ế

ấ ộ ệ ỉ ẫ ệ ứ ự

ạ ả ượ ữ ệ

th tìm ki m r t nhanh. ổ ầ ớ ấ ữ ớ ệ ộ ờ ở Các b  đ m b  sung ch a đ ng nh ng ch  d n t p tin trong d ng đóng gói;   c đóng ỗ ộ

trong b  nh . Nh  đó, m t s  l u tr  v i khoáng 15 tên t p trên m i b ớ ỗ ữ ủ ệ ở ầ ử ụ  l n s  d ng đ u tiên (mount) c a t p tin, c u trúc d  li u ph i đ ộ ự ư gói  ể ả ệ đ m v i 2kB hay 4 cluster (kho ng 512 Byte cho m i cluster) là có th .

ậ ề ệ ả 4.6. Các bài t p v  qu n lý t p tin

ậ ề ệ

4.6.1.Các bài t p v  t p tin

ề ả ử ư ụ ủ ậ

ư ụ ộ ế ố ứ ạ ạ

ử ệ ạ ư ụ  V  các th  m c cô l p ậ Bài t p 4.1. ư ụ   ạ ư ụ ố  s  th  m c Test là th  m c g c. B n hãy l p th  m c con c a th  m c Gi t l p, b n hãy t o ra m t k t n i c ng (hard link).   ư ụ   i m t k t n i quay vòng. B n hãy th  nghi m xoá th  m c.

ế ậ ộ ế ố ạ ạ ượ ố ư ụ ừ Test. Trên th  m c v a thi ồ ạ ấ , nó t n t B y gi ẫ Test t ng d n g c. B n đ t đ ờ ừ ườ  đ c cái gì ?

ậ ề

ư ụ   4.6.2. Các bài t p v  tên t p tin và th  m c

ề ổ

ậ Bài t p 4.2.  Ở ụ ổ

V  đ i tên t p tin ậ ượ ả ể ổ ộ ví d  đ i tên file, gi ệ ả i thu t cho Windows NT đ c mô t đ  đ i m t tên

ắ ệ t p tin dài thành tên ng n và rõ ràng.

ệ ể ộ

ỡ ớ ư ể ự ủ ượ ự ầ ớ ắ   a). Tên các t p tin có kích c  bao nhiêu đ  có th  mã hóa thành m t tên ng n   c ít c a ph n tên chính không đ ? V i l u ý: các ký t

và rõ ràng v i 8 ký t ơ h n 6.

ạ ể

b). B n có th  thay đ i s  đ  nh  th  nào đ  mã hóa m t s  l ệ ổ ơ ồ ệ ớ ộ ố ượ ng l n các ạ  theo mã ASCII ? B n hãy suy

ư ế ớ ọ ự ệ ể ự tên t p tin dài thành tên t p tin rõ ràng v i 8 ký t ả nghĩ vì sao các vi c th c thi đã không ch n kh  năng này ?

ề ườ ẫ V  tên đ ng d n

ậ Bài t p 4.3.

ể ể ủ

ườ ườ

ư c đi m và  u đi m c a tên đ  đâu và khi nào ng ả ề ợ ẫ ươ ng d n t ể i ta có th  thay th  tên đ ớ ự ợ ố ớ ng đ i v i tên đ ế ủ ườ ộ ệ ố ẫ   ườ ng d n ẫ   ng d n nào   i đi u này v i s  tr  giúp c a m t h  th ng biên

ượ Nh Ở ệ ố tuy t đ i là gì ?.  ạ cho phù h p ? B n hãy lý gi ị d ch!

ề ệ ả ướ ố ượ V  qu n lý t p tin h ng đ i t ng

ậ Bài t p 4.4.

ả ử ệ ộ ệ i ta cho phép vi c qu n lý t p tin trong Unix m t cách h

ươ ầ ả ữ Gi ố ượ đ i t ườ  s  ng ữ ng. Nh ng ph ộ ng pháp và nh ng thu c tính nào là c n thi ướ   ng ế ố ớ   t đ i v i

ộ ố ượ ộ ố ượ ư ụ ố ớ ở ng th  m c và đ i v i m t đ i t ệ ng t p tin ệ ề  trong h  đi u hành

m t đ i t Unix ?

ể ề ậ ề  V  danh sách đi u khi n truy c p

ậ Bài t p 4.5.

ư ể ể ậ ề   c đi m và  u đi m c a danh sách đi u khi n truy c p là gì ? Khi đi u

ủ ế ặ ấ ả ệ ượ Nh c ượ ng ể ườ ử ụ  thi i s  d ng đó đ t đ t cho t ề t c  các t p tin.

ậ ề

4.6.3. Các bài t p v  các ch c năng t p tin

ề ở  V  file m

ậ Bài t p 4.6.

ộ ệ ề ể ự ụ ệ ệ ạ M t h  đi u hành có th  th c hi n các tác v  t p tin trên   hai lo i khác

nhau:

ườ ậ ệ ể ướ ả + Bình th ng đ  truy c p t p tin, tr c h t ế ng ở ệ   ườ ử ụ   ph i m  t p i s  d ng

tin;

ậ ệ ề ả Ở ườ   ng tr

ặ ứ ấ ộ ậ ệ ự ộ ượ ả ư + Ho c đi u này x y ra m t cách t ộ ự ợ h p th  nh t, m t s  truy c p t p tin đ đ ng khi truy c p t p tin.  c mô t nh  sau:

ỉ ệ ế ậ ệ   i ta ch  vi c truy c p t p tin (I/O­ Ops); sau ồ   ớ ng trình k t thúc. V i hai cách nói trên, t n

open()...read() ...I/O­Ops...Close() ườ ứ ợ ng h p th  hai, ng Trong tr ạ ượ ệ i khi ch c đóng l đó, t p tin đ ể ượ ể ữ ư ạ i nh ng  u đi m và nh t ườ ươ c đi m nào ?

ệ L nh copy

ậ Bài t p 4.7.

ệ ạ

ộ ỗ ệ ề ị ặ đ t mình vào v  trí m t nhà thi

ả ộ ệ t m t l nhh copy. ủ ệ ề ộ ệ ạ ớ

ự ư ệ ệ ả ch c năng th  vi n v  qu n lý t p tin (read, write...).

ả ượ ự ề ổ ữ ế ể ộ ố ệ ạ M i h  đi u hành thông th o m t s  l nh đ  qu n lý các t p tin. B n hãy ế ế ệ ố ể ế t k  h  th ng đ  vi ể a). B n hãy th c thi l nh copy đ  sao m t t p tin c a h  đi u hành v i các ệ ứ b). Nh ng thay đ i nào ph i đ

ệ ở ư ụ ị

ầ   ố ớ ệ ọ c l a ch n đ i v i l nh move ? N u đ u ồ ệ  th  m c ngu n có b  xóa không ?   ệ i c  ch  b o v  !

ể nh  th  nào đ  sao chép toàn b  th  m c k ộ ư ụ ể

ạ ượ c vi c copy, thì khi đó, t p tin  tiên đ t đ ạ ư Xin l u ý: B n hãy suy nghĩ t ả ượ c). L nh copy ph i đ ạ ớ ơ ế ả ả ư ế c mô t ự ệ ư ụ ệ ả c  các th  m c con ? B n hãy th c thi l nh này xem !

ề ậ ấ  V  xu t­ nh p

ậ Bài t p 4.8.

ấ ỗ ữ ẩ ấ ạ T i sao trong Unix có s  khác nhau gi a xu t chu n và xu t l ế   ẩ i chu n, n u

ự ẫ ớ ự ặ ị ề ả c  hai đ u d n t i s  m c đ nh trên màn hình ?

ệ ệ ự ở ế ị ặ ệ Th c hi n l nh echo b i thi t b  đ c bi t

ậ Bài t p 4.9.

ấ ạ ộ ớ ươ Cái gì s  x y ra, n u trong Unix b n xu t ra m t bài text v i ch ng trình

ộ ạ ườ echo (d i l ẽ ả ế i) theo các đ ng d n ẫ dev/tty hay dev/null ?

ệ ổ ứ ệ

ự 4.6.4. Th c thi vi c t

ch c t p tin

ề V  i­node

ậ Bài t p 4.10.

ệ ề

ỉ ủ ậ

ộ ứ ự ướ ị ư ộ ế ỉ ố ớ   Trong h  đi u hành Unix, các i­node ch a đ ng 20 đ a ch  đ i v i các block ầ   ng c a b c đ u tiên, b c 2 ể ệ  đĩa, thì t p tin có th

ỡ ộ ấ ớ ớ ị ứ ự ủ ậ ị ữ ệ d  li u, cũng nh  các đ a ch  c a m t block vô h ỉ ổ ậ và b c 3. N u m t trong các block ch a đ ng 256 đ a ch   ủ ổ ử ụ s  d ng l n nh t là bao nhiêu ? V i kích c  m t block c a đĩa là 1 KB.

ữ ệ ề ả ệ ư  V  qu n lý vi c l u tr  các t p tin

ậ Bài t p 4.11.

ữ ẫ ớ ệ ả Vi c l u tr  các t p tin d n t

ệ ư ề ệ ế ở ả ỏ ủ ỏ ổ i vi c phân m nh nh   ở  ngoài và ừ ạ . B n hãy trình  đĩa t ầ  trong g n tâm c a đĩa

ệ bày v  vi c phân m nh nh  các vòng xuy n   ? ừ t