1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Hệ điều hành - Chương 4: Quản lý tệp tin

34 111 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 653,75 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương 4: Quản lý tệp tin trong Bài giảng Hệ điều hành nhằm giới thiệu đến bạn đọc những nội dung quan niệm về quản lý tệp tin, hệ thống tệp tin, tên tệp tin, thuộc tính tệp tin và cơ chế bảo vệ, các chức năng tệp tin,..Mời các bạn tham khảo nội dung chi tiết.

Trang 1

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

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

 vi c b  gãy m t ti n trình hay sau khi hoàn thành m t ti n trình, m t câu

h i đỏ ược đ t ra là: B n l u tr  d  li u c a b n nh  th  nào, đ  sau này, b nặ ạ ư ữ ữ ệ ủ ạ ư ế ể ạ  

có th  làm vi c tr  l i v i cái b n đã có? Tính ch t này c a d  li u g i là cể ệ ở ạ ớ ạ ấ ủ ữ ệ ọ ố 

đ nh d  li u, ngị ữ ệ ười ta đ t đạ ược khi d  li u đữ ệ ược vi t vào b  nh  qu ng đ iế ộ ớ ả ạ  

trước khi k t thúc chế ương trình. Tuy nhiên, chúng ta v n còn m t v n đ : ẫ ộ ấ ề Ở 

ph n l n b  nh  qu ng đ i, danh sách các t p tin quá dài,  y nh ng ngầ ớ ộ ớ ả ạ ệ ấ ư ười ta 

mu n th i gian truy c p ph i ng n. Do đó, trố ờ ậ ả ắ ường h p này ch  có th  d n t iợ ỉ ể ẫ ớ  

m t cách th c t  ch c t p tin đ  qu n lý các t p d  li u trong h  th ng máyộ ứ ổ ứ ệ ể ả ệ ữ ệ ệ ố  tính

M t b ng nh  th  thì không khác m y m t ngân hàng d  li u. N u chúng taộ ả ư ế ấ ộ ữ ệ ế  

d n t i m i thu c tính d  li u và k  c  các tác v  (nh  các th  t c, cácẫ ớ ỗ ộ ữ ệ ể ả ụ ư ủ ụ  

phương pháp ti n hành…), mà nó đế ược x  lý, do đó, chúng ta nh n đử ậ ược m tộ  ngân hàng d  li u hữ ệ ướng đ i tố ượng. Ngoài ra, n u chúng ta có các đ i tế ố ượ  ng

âm thanh và hình  nh, mà chúng đả ược m t chộ ương trình sinh ra hay được sử 

d ng,   lúc  đó,  chúng  ta   c n   dùng  m t   ngân   hàng  d  li u   đa  phụ ầ ộ ữ ệ ương   d ngụ  

(multimedia­ databank), trong đó, thông tin được ch a đ ng đ  làm đ ng b  haiứ ự ể ồ ộ  

phương d ng. M t cách khái quát, khi không có đ i tụ ộ ố ượng nào thì vi c đi uệ ề  hành khi l u tr  d  li u c  đ nh đư ữ ữ ệ ố ị ược phát tri n; còn đ i v i các ngân hàng dể ố ớ ữ 

li u l n thì h  th ng đi u hành c  s  d  li u hệ ớ ệ ố ề ơ ở ữ ệ ướng đ i tố ượng được phát tri n.ểChúng ta có th  s  d ng t t c  các c  c u có trên danh m c các t p tin c aể ử ụ ấ ả ơ ấ ụ ệ ủ  

b  nh  qu ng đ i, các c  ch  này độ ớ ả ạ ơ ế ược tìm th y đ  t  ch c m t cách hi u quấ ể ổ ứ ộ ệ ả các ngân hang d  li u hình cây; v i c u trúc này, ngữ ệ ớ ấ ười ta có th  tìm ki m r tể ế ấ  nhanh các t p tin v i m t d u hi u xác đ nh (ngày tháng t o l p t p tin, tên tácệ ớ ộ ấ ệ ị ạ ậ ệ  

gi …).ả

Tuy nhiên, chúng ta ph i quan tâm t i v n đ , mà chúng liên quan đ n ngânả ớ ấ ề ế  hàng d  li u. M t v n đ  c  b n là s  c  đ nh d  li u: N u chúng ta t o l p,ữ ệ ộ ấ ề ơ ả ự ố ị ữ ệ ế ạ ậ  

lo i b  hay thay đ i các d  li u c a m t t p tin trên b  nh  qu ng đ i, do đó,ạ ỏ ổ ữ ệ ủ ộ ệ ộ ớ ả ạ  

đi u đó ph i đề ả ược gi i thích   trong b ng danh m c các d  li u. N u tác vả ở ả ụ ữ ệ ế ụ này b  b  gãy, thí d  vì m t lý do nào đó, ti n trình vi t b  b  gãy (thí d  khiị ẽ ụ ộ ế ế ị ẻ ụ  

Trang 2

m t ngu n đi n), do đó, d  li u   trong b ng danh m c thì không còn thích h pấ ồ ệ ữ ệ ở ả ụ ợ  

n a.   các tác v  ti p theo, ngữ Ở ụ ế ười ta đã làm quen m t c  c u quan tr ng ộ ơ ấ ọ ở trong m c 2.3.2, đó là vi c k t h p nhi u tác v  thành m t ho t đ ng nhân t ụ ệ ế ợ ề ụ ộ ạ ộ ử  

Đ  phát hi n nh ng sai sót c a h  th ng t p tin, t t c  các tác v    trên danhể ệ ữ ủ ệ ố ệ ấ ả ụ ở  

m c t p tin ph i đụ ệ ả ược th c thi v i t  cách là nh ng ho t đ ng nhân t ự ớ ư ữ ạ ộ ử

Vi c ký hi u tên t p tin v i m t cái tên có ghép thêm nh ng ch  s  là m tệ ệ ệ ớ ộ ữ ữ ố ộ  

s  tr  giúp quan tr ng đ i v i ngự ợ ọ ố ớ ườ ử ụi s  d ng. Trong b ng danh m c các t p tinả ụ ệ   hình 4.1 có th  t n t i 2 t p tin v i các tên gi ng nhau Teptin1.dat và Teptin2

dat; chúng ch  khác nhau b i m t ch  s , do đó, đ i v i vi c qu n lý t p tin,ỉ ở ộ ữ ố ố ớ ệ ả ệ  chúng khác nhau rõ ràng. Hình 4.2 ch  ra s  đ  t  ch c qu n lý t p tin.   đây,ỉ ơ ồ ổ ứ ả ệ Ở  

m i t p tin có th  đ ng đ c l p (T p tin X), ho c có th  thu c m t nhóm cácỗ ệ ể ứ ộ ậ ệ ặ ể ộ ộ  

t p tin (T p tin 1, T p tin m…)ệ ệ ệ

Hình 4.2­­­­­­­­­­­­­­­­­­­­­

Các nhóm nh  có th  g p l i thành nhóm l n h n tu  thu c vào ngỏ ể ộ ạ ớ ơ ỳ ộ ườ ử i s

d ng, sao cho nó tr  thành c u trúc cây đ  s  d ng. Ki u t  ch c t p tin này thìụ ở ấ ể ử ụ ể ổ ứ ệ  

r t ph  bi n. Các đ i di n nhóm đấ ổ ế ạ ệ ược bi u thì là m t th  m c.ể ộ ư ụ

M t ki u t  ch c qu n lý các t p tin nh  th  độ ể ổ ứ ả ệ ư ế ược dùng đ  t  ch c ngânể ổ ứ  hàng

 d   li u, mà trong đó, t t c  các t p tin đữ ệ ấ ả ệ ược mô t  v i các tính ch t và cácả ớ ấ  

hi n th  n i dung. S  l u ý v  các t p tin thì t n t i   trong m t th  m c dể ị ộ ự ư ề ệ ồ ạ ở ộ ư ụ ữ 

li u. Trong h u h t các h  đi u hành, nh ng h  th ng t p tin có s  đ  đ nệ ầ ế ệ ề ữ ệ ố ệ ơ ồ ơ  

4.2. Tên t p tin  (Filesname)

D  li u c a các ti n trình không ch  ph i đữ ệ ủ ế ỉ ả ược b o v  b n v ng   trên bả ệ ề ữ ở ộ 

nh  qu ng đ i, mà đ c bi t ph i t o kh  năng truy c p qua các ti n trình khácớ ả ạ ặ ệ ả ạ ả ậ ế  nhau, do đó, m i t p tin đỗ ệ ược bi u th  m t t  khoá rõ ràng. Vì cách t  ch c hể ị ộ ừ ổ ứ ệ 

th ng qu n lý t p tin h u h t do con ngố ả ệ ầ ế ười th c hi n, cũng gi ng nh  vi c l pự ệ ố ư ệ ậ  trình các ti n trình đ  truy c p các t p tin, tên c a t p tin có th  gi ng nhau, chế ể ậ ệ ủ ệ ể ố ỉ khác, m i t p tin có thêm m t con s , coi nh  bi u th  m t khoá tỗ ệ ộ ố ư ể ị ộ ượng tr ng…,ư  thí d  Vanban1.doc, Vanban2.doc…Cách làm này có l i cho vi c qu n lý n i bụ ợ ệ ả ộ ộ 

Trang 3

các t p tin (v  trí, dung lệ ị ượng) m t cách d  dàng. T p tin có th  độ ễ ệ ể ược thi hành hay được đ t t i m t ch  nào đó   tron b  nh  mà t p tin v n không b  thayặ ạ ộ ỗ ở ộ ớ ệ ẫ ị  

đ i.ổ

4.2.1 Ki u t p tin và t o tên t p tinể ệ ạ ệ

M t cách truy n th ng, nói chung tên t p tin g m hai ph n, chúng độ ề ố ệ ồ ầ ượ  cngăn cách nhau b ng m t d u ch m: phía trái d u ch m là tên riêng, còn bênằ ộ ấ ấ ấ ấ  

ph i là ph n m  r ng (ả ầ ở ộ extension). Ph n m  r ng này cho th y m t s  tr  giúpầ ở ộ ấ ộ ự ợ  

v  m c đích s  d ng c a t p tin. Thí d  tên m t t p tin Vanban.txt, ý nói: t pề ụ ử ụ ủ ệ ụ ộ ệ ệ  tin Vanban có ki u m  r ng txt là m t lo i t p tin text để ở ộ ộ ạ ệ ược c u thành b i cácấ ở  

ký t  theo chu n ASCII. Có nh ng quy ự ẩ ữ ước khác nhau cho ph n m  r ng, thí dầ ở ộ ụ 

nh  sau:ư

.dat      cho d  li u ho c vi c t o ki u d ng ph  thu c vào chữ ệ ặ ệ ạ ể ạ ụ ộ ương trình t oạ  

l p;ậ

.doc       cho các văn b n text ho c vi c t o d ng theo ki u so n th o text;ả ặ ệ ạ ạ ể ạ ả

.pas       cho mã ngu n c a chồ ủ ương trình vi t b ng ngôn ng  PASCAL;ế ằ ữ

.c       cho mã ngu n c a chồ ủ ương trình vi t b ng ngôn ng  C;ế ằ ữ

.h      các t p tin khai báo cho các chệ ương trình vi t b ng ngôn ng  C;ế ằ ữ

.ps       các t p tin ngôn ng  l nh đ  ho  cho máy in Laser;ệ ữ ệ ồ ạ

.tar       m t h  th ng t p tin l u tr  trong m t t p tin;ộ ệ ố ệ ư ữ ộ ệ

.html         t p tin văn b n ASCII cho h  th ng text đ c bi t c a trang WEB;ệ ả ệ ố ặ ệ ủ

.Z ; .zip; .gz        cho các t p tin nén l i;ậ ạ

.jog; .gi; .ti; .bmp cho các t p tin v   nh.ệ ề ả

Người ta ghi nh  r ng, ph n m  r ng c a t p tin ch a đ ng ch  m t ít ho cớ ằ ầ ở ộ ủ ệ ứ ự ỉ ộ ặ  

ch  th nh tho ng nh ng ký t  c  x a. Đi u đó đỉ ỉ ả ữ ự ổ ư ề ược lý gi i r ng, đ i v i m tả ằ ố ớ ộ  

h  th ng t p tin thông thệ ố ệ ường cho phép vài ký t  làm ph n m  r ng và m cự ầ ở ộ ặ  khác, nó thu n ti n cho ngậ ệ ườ ử ụi s  d ng không ph i vi t quá nhi u.ả ế ề

Có r t nhi u ki u ph n m  r ng, mà chúng đấ ề ể ầ ở ộ ượ ạc t o b i h  th ng ngở ệ ố ườ ử i s

d ng và chúng cũng ph c v  cho vi c phân nhóm các t p tin. Vì tên t p tin nóiụ ụ ụ ệ ệ ệ  chung là tu  ý và có th  đỳ ể ượ ử ục s  d ng thay đ i, do đó, nh ng ngổ ữ ườ ậi l p trình 

đ u đã chú ý t i cái đó, nh m làm cho t p tin ch  rõ công d ng c a chúng. ề ớ ằ ệ ỉ ụ ủ Ở 

đ u t p tin, m t hay nhi u ki u ch  s   o (ầ ệ ộ ề ể ữ ố ả magic number) được vi t, mà chúngế  cho phép m t đ c tính chính xác c a n i dung t p tin.ộ ặ ủ ộ ệ

Thí d  v  tên t p tin   trong Unix ụ ề ệ ở :

Tên t p tin   trong h  đi u hành Unix, có th  có t i 255 ký t  V i Unixệ ở ệ ề ể ớ ự ớ  version V, s  ký t  c a tên t p tin có ít h n 14 ký t  cho ph n chính và 10 ký tố ự ủ ệ ơ ự ầ ự cho ph n m  r ng. Các t p tin th c thi   trong Unix có c u trúc nh  sau:ầ ở ộ ệ ự ở ấ ư

TYPE File  Header = RECORD

a_magic:      LONG CARDINAL      {s   o}ố ả

Trang 4

a_txt:      CARDINAL       {đ  l n c a Codesegment}ộ ớ ủ

a_data:       CARDINAL       {đ  l n Segment c a các d  li u kh iộ ớ ủ ữ ệ ở  

xướng}

a_bss:         CARDINAL{đ  l n Segment c a các d  li u không kh iộ ớ ủ ữ ệ ở  

xướng}

a_syms:        CARDINAL     {đ  l n b ng bi u tr ng Symboltable}ộ ớ ả ể ư

a_entry:        CARDINAL  {s  b t đ u c a chự ắ ầ ủ ương trình}

END

Tuy nhiên, m t s   o đ ng đ u tên t p tin; chúng không ch  d n t i s  gi iộ ố ả ứ ầ ệ ỉ ẫ ớ ự ả  thích v  đi u đó (cho th y t p tin có th  th c thi), mà còn, b ng phề ề ấ ệ ể ự ằ ương pháp nào t p tin đệ ược th c hi n:ự ệ

a_magic=  407B {t o d ng t t c : mã không đ ạ ạ ấ ả ượ c b o v  cũng không đ ả ệ ượ ử ụ c s  d ng cho 1  

ti n trình khác} ế a_magic=  410B {Text­Segment đ ượ c b o v  Data­ Segment đ ả ệ ượ c đ t   gi i h n trang ặ ở ớ ạ  

cu i cùng (4kB)   trong b  nh } ố ở ộ ớ a_magic=   413B   {Text­ Segment b t đ u   gi i h n 4kB c a t p tin; Text và Data­ ắ ầ ở ớ ạ ủ ệ

Segment là b i s  c a 4kB} ộ ố ủ

Đ  phân bi t các lo i t p tin khác nhau, đó là s  đánh giá v  kh  năng cóể ệ ạ ệ ự ề ả  

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

Thí d  v  ki u và tên t p tin ụ ề ể ệ :

Trong Unix hay trong Windows NT, ki u cách m t t p tin để ộ ệ ược bi u th  nhể ị ờ 

m t cái tên. Thí d  tên t p tin Script.ps.gz có ý nghĩa: đó là m t t p tin nguyênộ ụ ệ ộ ệ  

b n (Script), mà  n b n c a nó đã đả ấ ả ủ ược nén l i   d ng tái bút (postscript) v iạ ở ạ ớ  

chương trình nén zip. Đ  đ c để ọ ượ ệc t p tin này, đ u tiên, ngầ ười ta ph i g iả ọ  

chương trình gunzip, và sau đó, t p tin chuy n t i cho máy in Postscript. K tệ ể ớ ế  

qu  ch  d n là s  c i biên: nó không ch  ch a đ ng trong t p tin, mà còn ch aả ỉ ẫ ự ả ỉ ứ ự ệ ứ  

đ ng   trong ki u t p tin đự ở ể ệ ược nén. Đ i v i t p tin này, n u ki u t p tin đố ớ ệ ế ể ệ ượ  c

ch  d n trong th  m c, do đó, ngỉ ẫ ư ụ ười ta có th  th c hi n tác v  th  hai. Vi c t oể ự ệ ụ ứ ệ ạ  

ki u t p tin ph i để ệ ả ược c t nghĩa   trong t p tin hay nó ph i là ki u b i s  x pắ ở ệ ả ể ở ự ế  nhi u l n c a các ki u. Đi u đó ch  có th  nói g n là: ph i gi i thích ki u m iề ầ ủ ể ề ỉ ể ọ ả ả ể ớ  

l p rõ ràng và ph i đ a vào nh ng ho t đ ng thích h p cho các ki u đó.ậ ả ư ữ ạ ộ ợ ể

Thí d  v  ki u t p tin và các ho t đ ng ch ụ ề ể ệ ạ ộ ươ ng trình   trong Unix ở :

 trong h  đi u hành Unix có m t giao di n đ  ho  ng i s  d ng, m t s

Trang 5

chu t ph i. Khi kích đôi chu t trái   t i tên t p tin, thì ho t đ ng độ ả ộ ở ạ ệ ạ ộ ược d n raẫ  trong Menu s  b t đ u kh i đ ng.ẽ ắ ầ ở ộ

Thí d  v  ki u t p tin và ho t đ ng ch ụ ề ể ệ ạ ộ ươ ng trình   Windows NT ở :

Dướ Windows NT  có trình so n th o Editor, trình này qu n lý m t ngâni   ạ ả ả ộ  hàng d  li u riêng c a t t c  các  ng d ng, b  kích t o h  đi u hành và cácữ ệ ủ ấ ả ứ ụ ộ ạ ệ ề  

c u hình h  th ng…T t c  các chấ ệ ố ấ ả ương trình   trong h  th ng cũng nh  cácở ệ ố ư  

ph n m  r ng đ u đầ ở ộ ề ược khai báo   đó. Khi kích đôi chu t trái t i trên m t t pở ộ ạ ộ ệ  tin   trong trình qu n lý t p tin thì m t chở ả ệ ộ ương trình được g i.ọ

Người ta l u ý r ng, trong hai thí d  v a nêu, thông tin v  ki u t p tinư ằ ụ ừ ề ể ệ  

thường không được h  đi u hành qu n lý, mà nó t n t i trong các t p tin đ cệ ề ả ồ ạ ệ ặ  

bi t hay đệ ược ch a đ ng và đứ ự ược qu n lý v i các chả ớ ương trình đ c bi t. Đi uặ ệ ề  

đó thì không có v n đ  gì. Ki u t t nh t cho vi c qu n lý các t p tin là t  ch cấ ề ể ố ấ ệ ả ệ ổ ứ  

t t c  t p tin thành m t ngân hàng d  li u t ng th ; trong đó, các tính ch t bấ ả ệ ộ ữ ệ ổ ể ấ ổ sung c a các t p tin đủ ệ ược th c hi n nh  các đ c tính b  sungự ệ ờ ặ ổ

M t v n đ  khác là vi c làm sáng t  s  tham chi u t p tin, n u các t p tin ộ ấ ề ệ ỏ ự ế ệ ế ệ ở trong h  th ng qu n lý files thì cho phép tên t p tin dài; nh ng khi  ng d ngệ ố ả ệ ư ứ ụ  (khi th c thi), t p tin ch  có th  đự ệ ỉ ể ược phép ng n l i. Thí d  có hai tên t p tinắ ạ ụ ệ  MethodeForUser.txt và MethodeForEvery.txt cùng t n t i   trong h  th ng t pồ ạ ở ệ ố ệ  tin. Khi hai t p tin mu n th c thi, thì 8 ký t  đ u tiên đệ ố ự ự ầ ượ ưc l u ý. Trong trườ  ng

h p này, 8 ký t  đ u tiên c a hai t p tin gi ng nhau. Do v y,    đây, m tợ ự ầ ủ ệ ố ậ ở ộ  

phương pháp được tìm th y cho phép s p x p các t p tin đấ ắ ế ệ ược rõ ràng h n.ơ

Thí d  v  s  chuy n đ i tên t p tin trong Windows NT ụ ề ự ể ổ ệ :

Vì h  đi u hành ệ ề  Windows NT có th  qu n lý c  các h  th ng t p tin DOSể ả ả ệ ố ệ  bên c nh h  th ng t p tin NTFS (windows NT File System). Cho nên,   đây v nạ ệ ố ệ ở ấ  

đ  đ t ra là ph i chuy n đ i các t p tin có tên dài trong h  th ng NTFS thànhề ặ ả ể ổ ệ ệ ố  tên t p tin rõ ràng trong h  th ng MS­DOS. Đi u này đ t đệ ệ ố ề ạ ược b ng các gi iằ ả  thu t sau đây:ậ

(1) T t c  các ký t  c a tên t p tin không h p lý   trong MS­DOS đấ ả ự ủ ệ ợ ở ượ  cchuy n đ i thành tên t p tin trong h  th ng NTFS b ng cách c t b : các ký tể ổ ệ ệ ố ằ ắ ỏ ự 

tr ng, 16 ký t  c a 16 Bit­ Unicode, các đi m   đ u,   cu i và trong kho ng tênố ự ủ ể ở ầ ở ố ả  

t p tin.ệ

(2)  T t c  6 ký t  đ u tiên c a chu i ký t  đ ng trấ ả ự ầ ủ ỗ ự ứ ước d u ch m phânấ ấ  

đo n ph n m  r ng đạ ầ ở ộ ược c t b ; và sau đó, ký hi u ~1 đắ ỏ ệ ược thay vào trướ  c

đi m phân đo n ph n m  r ng. Chu i ký t  sau đi m phân đo n ph n m  r ngể ạ ầ ở ộ ỗ ự ể ạ ầ ở ộ  

ch  đ  l i 3 ký t , các ký t    cu i ph n này c t b  và chu i ký t  còn l iỉ ể ạ ự ự ở ố ầ ắ ỏ ỗ ự ạ  chuy n thành chu i các ch  cái l n.ể ỗ ữ ớ

(3)  N u có m t t p tin, mà nó ch  ra s  gi ng nhau v i t p tin khác, doế ộ ệ ỉ ự ố ớ ệ  

đó, thay vì ký hi u ~1, ký hi u ~2 đệ ệ ược thay vào ch  đó. N u t p tin này đã t nỗ ế ệ ồ  

t i, thì thay b ng ký hi u ~3 hay ~4  cho đ n khi không t n t i s  gi ng nhau.ạ ằ ệ ế ồ ạ ự ố

Trang 6

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ơ ồ ắ ế ệ ệ ể ễ ệ ạ ả năng đ  s p x p các nút có d ng hình cây, nh  v y, m t để ắ ế ạ ờ ậ ộ ường d n đi t i m tẫ ớ ộ  

t p tin đệ ược th c hi n thu n ti n. Tên đự ệ ậ ệ ường d n c a m t t p tin đẫ ủ ộ ệ ượ ạ  c t o

l p t  m t chu i các tên nút và ch a đ ng ký t  tách chia gi a các tên nút. Đó làậ ừ ộ ỗ ứ ự ự ữ  

m t d u hi u đ c bi t, nó là bi u tộ ấ ệ ặ ệ ể ường tiêu bi u cho m i h  đi u hành. Thíể ỗ ệ ề  

d    trong hình 4.3, tên t p tin Vanban1.txt có đụ ở ệ ường d n trong h  đi u hànhẫ ệ ề  Unix:

         Institut5/Rudi/Vanban1.txt

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

         Institut5/Rudi/Vanban1.txt

V  đi u đó, do có s  k t n i ngang, nên có nhi u tên đề ề ự ế ố ề ường d n cho m tẫ ộ  

t p tin, thí d  đ i v i t p tin Briefvorlage.dot có các đệ ụ ố ớ ệ ường d n:ẫ

         Institut5/Rudi/briefvorlage.dot và Congty/Dieuhanh/briefvorlage.dot

Nh ng nút   trên c a h  th ng cây th  m c t p tin đữ ở ủ ệ ố ư ụ ệ ược g i là g c, nóọ ố  

được bi u th  b i m t bi u tr ng đ c bi t: d u xiên trái(/)   trong Unix, d uể ị ở ộ ể ư ặ ệ ấ ở ấ  xiên ph i (\)   trong Windows NT. Khi thông d ch tên t p tin, nó đả ở ị ệ ược th c hi nự ệ  

t ng bừ ướ ừ ước t  d i lên trên theo hướng g c cây th  m c t p tin. Thí d  trongố ư ụ ệ ụ  hình 4.3, t p tin Brief.doc   th  m c Rudi mà c    th  m c Hans, tên đệ ở ư ụ ả ở ư ụ ườ  ng

d n c a nó đẫ ủ ược bi u di n m i d u đ i di n cho m t th  m c nào đó:ể ễ ỗ ấ ạ ệ ộ ư ụ

/ /Rudi/Brief1.doc

Tên đường d n tẫ ương đ i b t đ u t  m t v  trí nào đó c a cây t i t p tin.ố ắ ầ ừ ộ ị ủ ớ ệ  Tên đường d n tuy t đ i đẫ ệ ố ược bi u th  t  g c đ n ng n là tên t p tin. Thí d  ể ị ừ ố ế ọ ệ ụ ở trong hình 4.4 ch  ra m t đỉ ộ ường d n tẫ ương đ i    /Daten/Dat1.a v i t p tinố ớ ệ  Dat1.a c a chủ ương trình Prog

người ta có th  n i ngang qua gi a các t p tin b i lênh “ln”.ể ố ữ ệ ở

Đ i v i đ c đi m c a s  đ  tên, ngố ớ ặ ể ủ ơ ồ ười ta ph i phân bi t, các th  m c đãả ệ ư ụ  

được thu x p v i các tên t p tin trên   đĩa hay ch a (?). N u chúng đã đế ớ ệ ổ ư ế ược thu 

x p, do đó, m t s  n i ngang tr c ti p là có th  Trế ộ ự ố ự ế ể ường h p này g i là k t n iợ ọ ế ố  

v t lý hay k t n i c ng. N u ngậ ế ố ứ ế ượ ạc l i, chúng được thu x p khác nhau trên ế ổ 

Trang 7

đĩa, do đó, người ta có th  thi t đ t m t s  n i ngang logic và d n ra tên để ế ặ ộ ự ố ẫ ườ  ng

d n c a chúng. Trẫ ủ ường h p này g i là k t n i tợ ọ ế ố ượng tr ng (ư symbol­link).

S  khác nhau   các k t n i ngang nói   trên là   ch , vi c xoá b  tên t p tinự ở ế ố ở ở ỗ ệ ỏ ệ  hay th  m c khi có nhi u ti n trình hay nhi u ngư ụ ề ế ề ườ ử ụi s  d ng truy c p chúng.ậ  

N u chúng ta l u ý t i h  th ng cây th  m c   trong hình 4.5, chúng ta th yế ư ớ ệ ố ư ụ ở ấ  

r ng không có s  phân bi t gi a tên t p tin và tên th  m c.ằ ự ệ ữ ệ ư ụ

Hình 4.5­­­­­­­­­­­­­­­­­

N u các th  m c Gruppe1 và Gruppe2 đế ư ụ ược ghép   các    đĩa khác nhau, doở ổ  

đó, các n i ngang  Rudi/Datei2   và Hans/Datei2 thì khác bi t v i các n i ngangố ệ ớ ố  Gruppe1/Hans/Datei3 và Gruppe2/Datei3:   đây c p th  nh t là n i v t lý, cònở ặ ứ ấ ố ậ  

c p th  hai là n i logic.ặ ứ ố

N u bây gi    Unix m t t p tin đế ờ ở ộ ệ ược xoá b , do đó, nó s  t n t i t i thi uỏ ẽ ồ ạ ố ể  cho đ n khi có m t s  k t n i v t lý t n t i.   trong thí d  đã nêu, n u t p tinế ộ ự ế ố ậ ồ ạ Ở ụ ế ệ  

có đường d n  Rudi/Datei2 đẫ ược xoá b , do đó, t p tin ch  còn l i dỏ ệ ỉ ạ ưới cái tên 

có đường d n Hans/Datei2 và có th  s  d ng đẫ ể ử ụ ược. Ngượ ạ ế ệc l i n u t p tin có 

đường d n  Hans/Datei3 xoá b ; do đó, t p tin tẫ ỏ ệ ương  ng cũng b  xoá b ; sứ ị ỏ ự tham chi u tên (sysbol­link)   trong th  m c Gruppe2 v n còn t n t i, nh ngế ở ư ụ ẫ ồ ạ ư  khi truy c p t p tin thì ngay l p t c xu t hi n l i khi tham chi u tên t p tin này,ậ ệ ậ ứ ấ ệ ỗ ế ệ  

t c là m t t p tin v i cái tên này không còn n a.ứ ộ ệ ớ ữ

Đi u quy t đ nh trong h  đi u hành Unix là đ  m t t p tin đề ế ị ệ ề ể ộ ệ ược xoá hoàn toàn, thì ph  thu c vào b  đ m đ  đ m s  tham chi u k t n i v t lý. Tuyụ ộ ộ ế ể ế ố ế ế ố ậ  nhiên, c  ch  này c a h  đi u hành Unix là m t phơ ế ủ ệ ề ộ ương ti n đ n gi n   trongệ ơ ả ở  

ph m vi đa ti n trình, nh ng cũng có th  d n t i l i. Chúng ta nh n th y r ng,ạ ế ư ể ẫ ớ ỗ ậ ấ ằ  chúng ta đang   t i th  m c Rudi c a hình 4.5 và th c hi n k t n i v t lý trênở ạ ư ụ ủ ự ệ ế ố ậ  

th  m c Gruppe1. Vì vi c xóa b  m t th  m c ch a tr ng thì c m (đ  tránhư ụ ệ ỏ ộ ư ụ ư ố ấ ể  

l i), do đó, chúng ta không th  xoá đỗ ể ược th  m c Gruppe2. Ngư ụ ượ ạ ở ạ  c l i,   t i

th  m c Gruppe1:   đây có m t k t n i th  hai c a th  m c Rudi, cho nên choư ụ ở ộ ế ố ứ ủ ư ụ  phép xoá b  tên t p tin đỏ ệ ược. Đi u đó d n t i tình hu ng, r ng bây gi  th  m cề ẫ ớ ố ằ ờ ư ụ  Gruppe1 v i th  m c con và các t p tin   phía dớ ư ụ ệ ở ưới còn t n t i, tuy nhiênồ ạ  

nh ng th  đó không còn dùng đữ ứ ược n a, vì chúng là nh ng th  m c tr ng, vàữ ữ ư ụ ố  

do đó cũng không th  xoá b  để ỏ ược. Đi u đó thì cũng khong th  tránh đề ể ược: tuy 

k t n i ngang là có th , nh ng vi c ki m tra các vòng n i và vi c tách chia cácế ố ể ư ệ ể ố ệ  

s  đ  t p tin t i m i tác v  xoá là không nên làm. T  lý do này,    n b n m iơ ồ ệ ạ ỗ ụ ừ ở ấ ả ớ  

c a Unix v  cây th  m c thì ch  còn đủ ề ư ụ ỉ ược dùng ki u k t n i logic.ể ế ố

Đ i v i vi c t o l p hay xoá b  t p tin,   trong Unix có m t có ch  thôngố ớ ệ ạ ậ ỏ ệ ở ộ ế  

d ng: N u m t ti n trình t o l p m t t p tin và sau đó, nhi u ti n trình m  t pụ ế ộ ế ạ ậ ộ ệ ề ế ở ệ  tin này, do đó, t p tin không b  bi n m t khi xoá, nh  ngệ ị ế ấ ờ ườ ạ ậi t o l p. Và nó sẽ 

t n t i cho t i khi ti n trình cu i cùng g i th  t c close() và nh  v y, b  đ mồ ạ ớ ế ố ọ ủ ụ ư ậ ộ ế  

s  tham chi u tr  v  0.ự ế ở ề

Trang 8

H  th ng t p tin hình cây t ng quát đệ ố ệ ổ ược phân chia thành các s  đ  nhánhơ ồ  khác nhau, mà các t p tin c a chúng t n t i trên các   đĩa khác nhau. Khi kh iệ ủ ồ ạ ổ ở  

đ ng h  th ng (bootstrap), h  th ng t p tin c a các   đĩa khác  nhau vào m tộ ệ ố ệ ố ệ ủ ổ ộ  nút g c (root) b ng m t hàm g i h  th ng mount(), mà   đó, nút g c c a m iố ằ ộ ọ ệ ố ở ố ủ ỗ  

h  th ng t p tin còn đệ ố ệ ược ph n  nh b i tên c a m t th  m c (ả ả ở ủ ộ ư ụ mount point  direction). Hình 4.6 ch  ra m t cây th  m c t p tin nh  v y.ỉ ộ ư ụ ệ ư ậ

Hình 4.6­­­­­­­­­­­­­­­­­­­­­­­­­­­

4.2.4. Cây th  m c   Windows NTư ụ ở

Cây th  m c   trong h  đi u hành Windows NT mô t  toàn b  các đ iư ụ ở ệ ề ả ộ ố  

tượng toàn c c; m t cách đ c l p v i cái đó, khi chúng là các t p tin thu n tuýụ ộ ộ ậ ớ ệ ầ  hay nh ng đ i tữ ố ượng khác nh  các kênh trao đ i thông tin (ư ổ communication­canal  hay named pips), các b  nh  chia x  (ộ ớ ẻ shared memory), các c  hi u ( ờ ệ semaphore), 

các bi n c  hay các ti n trình. Các đ i tế ố ế ố ượng v i tên g i toàn c c đớ ọ ụ ược trao cho các c  ch  b o v  tơ ế ả ệ ương  ng khi truy c p. ứ ậ

H  th ng cây th  m c b t đ u v i nút g c b i d u xiên ph i (\),   đó t nệ ố ư ụ ắ ầ ớ ố ở ấ ả ở ồ  

t i các đ i tạ ố ượng t p tin hay các đ i tệ ố ượng th  m c. Các th  m c đ i tư ụ ư ụ ố ượng là các đ i tố ượng ch a đ ng tên c a đ i tứ ự ủ ố ượng v i nh ng thu c tính (bi n s ,ớ ữ ộ ế ố  

h ng s …), v i các phằ ố ớ ương pháp (t o l p, m  hay đ c lạ ậ ở ọ ướt các th  m c). Hư ụ ệ 

th ng này không ch  bao g m tr ng thái nhân, mà c  tr ng thái ngố ỉ ồ ạ ả ạ ườ ử ụi s  d ng, nghĩa là các th  m c không ch  có th  đ t vào nhân h  đi u hành Windows NT,ư ụ ỉ ể ặ ệ ề  

mà còn có th  đ t vào c  các h  th ng khác nh  OS/2, POSIX…Đ i v i m iể ặ ả ệ ố ư ố ớ ỗ  

lo i đ i tạ ố ượng (t p tin, ti n trình…) có nh ng  n b n chuyên d ng cho 3ệ ế ữ ấ ả ụ  

phương pháp s  d ng các đ n th  nhân khác nhau (đi u hành I/O, đi u hànhử ụ ơ ể ề ề  

ti n trình…).ế

Tuy nhiên, đ  t o l p th  m c toàn c c t  các th  m c đ i tể ạ ậ ư ụ ụ ừ ư ụ ố ượng hay vi cệ  thi t đ t các đế ặ ường d n k t n i ngang (nh  trong Unix) đ u có th  th c hi nẫ ế ố ư ề ể ự ệ  

m t cách thu n l i   trong Windows NT.ộ ậ ợ ở

 cây th  m c c a vi c đi u hành đ i t ng thì t n t i nhi u đ i t ng

khác nhau (xem hình 4.7). Ch ng h n đ i tẳ ạ ố ượng “A:” là m t k t n i ngang logicộ ế ố  

v i đ i tớ ố ượng h  th ng t p tin “Floppy”. V i m i đ i tệ ố ệ ớ ỗ ố ượng thì m t phộ ươ  ngpháp dò tìm được chuyên môn hoá. N u trình so n th o Editor mu n m  t p tinế ạ ả ố ở ệ  

có đường d n A:\Texte\bs_files.doc, do đó, t i c a s  đi u hành đ i tẫ ạ ử ổ ề ố ượng, nó 

h i đ i tỏ ố ượng này. B ng phằ ương pháp dò tìm, trình đi u hành đ i tề ố ượng tìm 

ki m cây th  m c c a nó: đ i tế ư ụ ủ ố ượng c n t i   ch  nào (?). N u nó đi t i đ iầ ớ ở ỗ ế ớ ố  

tượng “A:”,  thì khi đó, phương pháp k t n i logic đế ố ược áp d ng.ụ

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

Trang 9

Chu i ký t  “A:” đỗ ự ược thay th  b i chu i ký t  “\Device\Floppy0” và sauế ở ỗ ự  

đó, được chuy n cho trình đi u hành đ i tể ề ố ượng. Trình này s  x  lý đẽ ử ường d nẫ  cho t i khi g p đ i tớ ặ ố ượng t p tin “Floppy0”. Phệ ương pháp dò tìm này làm vi cệ  trên cây th  m c c a trình đi u hành h  th ng các t p tin, nó dò tìm đư ụ ủ ề ệ ố ệ ường d nẫ  

v i các th  t c đ c bi t, cho t i khi m t đ i tớ ủ ụ ặ ệ ớ ộ ố ượng t p tin v i bs_files.doc cóệ ớ  

th  để ược đ a tr  l i.ư ở ạ

V i c  ch  này,   trong Windows NT có th  tích h p m t cách th ng nh tớ ơ ế ở ể ợ ộ ố ấ  các h  th ng t p tin khác nhau nh  h  th ng FAT (file allocation table) c a MS­ệ ố ệ ư ệ ố ủDOS, h  th ng t p tin hi u su t cao c a OS/2 và h  th ng t p tin NT c aệ ố ệ ệ ấ ủ ệ ố ệ ủ  Windows

Đ i v i vi c xoá m t t p tin cũng nh  xoá m t đ i tố ớ ệ ộ ệ ư ộ ố ượng được nhi u ti nề ế  trình s  d ng, thì các c  ch  đử ụ ơ ế ược d n t i tẫ ớ ương t  nh  trong Unix. Vì lý doự ư  

th c thi, có hai b  đ m tham chi u đự ộ ế ế ược d n t i: m t b  đ  đ m s  lẫ ớ ộ ộ ể ế ố ượng các 

ch c danh đ i tứ ố ượng, khi đó chúng được đón nh n   các ti n trình ngậ ở ế ườ ử i s

d ng; và m t b  n a đ  đ m s  lụ ộ ộ ữ ể ế ố ượng que ch  th , khi đó chúng đỉ ị ược đ a vàoư  

h  đi u hành (đáng l  chúng đệ ề ẽ ược trao cho b i các đ i tở ố ượng khi truy c pậ  nhanh). N u b  đ m tham chi u c a ngế ộ ế ế ủ ườ ử ụi s  d ng mà tham chi u t i tên t pế ớ ệ  tin b  gi m xu ng t i 0, thì do đó, đ i tị ả ố ớ ố ượng s  b  xóa   trong cây th  m c; vàẽ ị ở ư ụ  cũng vì th , không có m t ti n trình nào có th  truy c p đế ộ ế ể ậ ược. Tuy nhiên, nó 

v n còn   l i trong b  nh  cho t i khi b  đ m các tham chi u c a h  đi u hànhẫ ở ạ ộ ớ ớ ộ ế ế ủ ệ ề  

gi m xu ng 0. Sau đó b  nh  đả ố ộ ớ ược gi i phóng và đả ượ ự ục s  d ng tr  l i. V i cở ạ ớ ơ 

ch  này đã tránh đế ược: m t đ i tộ ố ượng được nhi u ti n trình x  lý b  xoá m tề ế ử ị ộ  cách nh m l n trầ ẫ ước khi các ti n trình khác th c thi xong.ế ự

M t b  đ m tham chi u đôi cũng tránh độ ộ ế ế ược: thí d  m t đ i tụ ộ ố ượng ti nế  trình được sinh ra b i m t ti n trình và sau đó, v i s  k t thúc c a ti n trìnhở ộ ế ớ ự ế ủ ế  này, nó đi t i k t thúc; tuy nhiên, v n còn m t ti n trình có quan h  v i đ iớ ế ẫ ộ ế ệ ớ ố  

tượng. S  tham chi u c a h  đi u hành t i ti n trình th  hai đ m b o s  t nự ế ủ ệ ề ớ ế ứ ả ả ự ồ  

t i c a đ i tạ ủ ố ượng t p tin cho t i khi quan h  nói trên không còn n a.ệ ớ ệ ữ

4.3. Thu c tính t p tin và c  ch  b o vộ ệ ơ ế ả ệ 

Trong m t th  m c có ch a tên m t t p tin, thì  h u h t các thông tin v  t pộ ư ụ ứ ộ ệ ầ ế ề ệ  tin được b o v  Bên c nh đ  l n t p tin (tính b ng Byte hay b ng các kh iả ệ ạ ộ ớ ệ ằ ằ ố  trang), ngày tháng t o l p và ngày tháng đi u ch nh, còn có các thu c tính khácạ ậ ề ỉ ộ  (còn g i là các c  hi u khác) nh   n khu t (ọ ờ ệ ư ẩ ấ Hidden), h  th ng.ệ ố

M t d ng đ c bi t c a các thông tin tr ng thái là các thông tin b o v  nhộ ạ ặ ệ ủ ạ ả ệ ư 

lu t truy c p c a con ngậ ậ ủ ười và c a các chủ ương trình đ i v i t p tin. Tố ớ ệ ương tự 

nh  đ i v i các c  ch  b o v  b  nh , ngư ố ớ ơ ế ả ệ ộ ớ ười ta đã xem xét đ  lo i b  các ch cể ạ ỏ ứ  năng l i c a chỗ ủ ương trình nh  các l i  khi truy xu t chư ỗ ấ ương trình c a ủ ngườ ử i s

d ngụ  nh  nh ng bi n pháp có m c đích: Nh ng bi n pháp do U  ban POSI­6ờ ữ ệ ụ ữ ệ ỷ  

đ  ngh  có n i dùng nh  sau:ề ị ộ ư

Trang 10

+ Ph i đ m b o nguyên t c thu g n đ c quy n ít nh t (ả ả ả ắ ọ ặ ề ấ least privilege) đ iố  

v i vi c th c hi n m t nhi m v ớ ệ ự ệ ộ ệ ụ

+ Ph i b  sung vi c đi u khi n khi truy c p qua các thông báo r i r cả ổ ệ ề ể ậ ờ ạ  

(discretionary access control). Vi c truy xu t cệ ấ ưỡng b c thì đ c l p v i ngứ ộ ậ ớ ườ  i

t o l p. Vi c truy xu t đ i tạ ậ ệ ấ ố ượng ch  x y ra b i các ti n trình v i các đ cỉ ả ở ế ớ ặ  quy n l n h n.ề ớ ơ

+ Ph i l u ý các ghi chép v  tr ng thái c a đ i tả ư ề ạ ủ ố ượng nh m có th  phát hi nằ ể ệ  các nguyên nhân và các người làm vi c trong h  th ng khi s  d ng sai trái.ệ ệ ố ử ụ

Ngượ ạc l i, h  đi u hành ch  th c thi r t gi i h n các yêu c u k  trên.ệ ề ỉ ự ấ ớ ạ ầ ể

4.3.1. Các đ c quy n truy c p   Unixặ ề ậ ở  

 h  đi u hành Unix có các bi n tr ng thái (còn g i là các c ) khác nhau:

đ c (ký hi u r), vi t (w), th c thi (x). T t c  các t p tin và các th  m c đ u cóọ ệ ế ự ấ ả ệ ư ụ ề  

m t tr ng thái nh  nhau.ộ ạ ư

Các ký hi u v a nói có ý nghĩa nh  sau:ệ ừ ư

r cho phép đ c danh sách t p tin;ọ ệ

w cho phép thay đ i v  trí t p tin trong danh sách;ổ ị ệ

x cho phép th c thi hay tìm ki m t p tin trong danh sách.ự ế ệ

V  quy n truy c p, h  đi u hành Unix phân bi t 3 h ng: ch  nhân h  th ngề ề ậ ệ ề ệ ạ ủ ệ ố  

(owner), thành viên m t nhóm (user group member) và m i ngọ ười khác (other).

Ch  d n v  các quy n truy c p ỉ ẫ ề ề ậ

L nh ls là đ  xem các t p tin và các quy n truy c p chúng. L nh ls­al đệ ể ệ ề ậ ệ ể xem các t p tin c a m t th  m c, thí d  v i l nh này, ta nh n đệ ủ ộ ư ụ ụ ớ ệ ậ ược đo n thôngạ  báo:

ki m và d u g ch ngang (­) đ  ch  m t quy n truy c p không đế ấ ạ ể ỉ ộ ề ậ ược ch n.ọ  

Nh ng c t còn l i c a b ng thông báo này là tên ngữ ộ ạ ủ ả ườ ử ụi s  d ng, dung lượ  ng(Byte), ngày tháng t o l p, th i gian t o l p và cu i cùng là tên t p tin.   dòngạ ậ ờ ạ ậ ố ệ Ở  

đ u tiên c a c t tên t p tin, có m t d u ch m (.) đ  ch  tên t p tin   m t thầ ủ ộ ệ ộ ấ ấ ể ỉ ệ ở ộ ư 

m c hi n hành c a ngụ ệ ủ ườ ử ụi s  d ng brause có dung lượng 512Byte, đượ ạ ậ  c t o l pngày 23 tháng 4 lúc 15gi  55 phút.   dòng th  2 c a c t này có d u hai ch mờ Ở ứ ủ ộ ấ ấ  ( ) cũng gi i thích tả ương t ự

 

Ở h  đi u hànhệ ề  Unix, đ  th c hi n m t chể ự ệ ộ ương trình, có th  k t n i cácể ế ố  quy n truy c p c a riêng mình trong chề ậ ủ ương trình v i hàm  ớ userId  cho ngườ  i

Trang 11

th c hi n và  ự ệ groupId  cho người qu n lý nhóm. Do đó, các ch c năng c aả ứ ủ  

chương trình h  th ng có th  đệ ố ể ược m i ngọ ườ ử ụi s  d ng th c hi n, n u thi t đ tự ệ ế ế ặ  các tr ng thái ạ userId và set groupId. Còn n u t i m t th  m c, tr ng thái stickyế ạ ộ ư ụ ạ  bit được thi t đ t, do đó, m t ế ặ ộ ngườ ử ụ  bình thi s  d ng ường không th  xoá hayể  

g i các t p tin c a ngọ ệ ủ ườ ử ụi s  d ng khác trong th  m c này.ư ụ

Ch  nh ng  n b n đ c bi t c a h  đi u hành Unix m i có các danh sáchỉ ữ ấ ả ặ ệ ủ ệ ề ớ  

đi u khi n truy xu t v i nhi u c  ch  khác nhau. Cũng v i lý do này, s  ho tề ể ấ ớ ề ơ ế ớ ự ạ  

đ ng m nh m  c a nhóm O/Open đã th ng nh t và t o ra độ ạ ẽ ủ ố ấ ạ ược nhi u tiêuề  chu n b o v  h  th ng Unix.ẩ ả ệ ệ ố

4.3.2. Quy n truy c p   trong  Windows NTề ậ ở  

H  th ng t p tin   trong h  đi u hành Windows NT đệ ố ệ ở ệ ề ược qu n lý b i m tả ở ộ  

c  ch  đ nh hơ ế ị ướng đ i tố ượng. Quy n truy c p có giá tr  đ i v i m i đ i tề ậ ị ố ớ ỗ ố ượ  ngtrong cây th  m c c a Windows NT (nh  các ti n trình, các c  hi u, kho ngư ụ ủ ư ế ờ ệ ả  

nh …). Đ c l p v i các quy n truy c p này còn có nh ng tính ch t đ c bi tớ ộ ậ ớ ề ậ ữ ấ ặ ệ  

đ i v i các đ i tố ớ ố ượng t p tin:ệ

Các thu c tính ộ :

+ Tên t p tinệ

+ Ki u thi t b  mà trên đó t p tin t n t i,ể ế ị ệ ồ ạ

+ Byte offset: là tình tr ng hi n hành c a t p tin,ạ ệ ủ ệ

+ Shared mode: là tr ng thái (đ c/vi t/xoá) c a t p tin trong khi s  dùng,ạ ọ ế ủ ệ ử+ Open mode: là ki u và phể ương pháp tác v  c a t p tin (đ ng b / khôngụ ủ ệ ồ ộ  

đ ng b , có / không có b  đ m Cache, truy c p tu n t / b t k …)ồ ộ ộ ệ ậ ầ ự ấ ỳ

+ file disposition: bi u th  t p tin b n v ng hay tu  ý.ể ị ệ ề ữ ỳ

Các ph ươ ng pháp:

Các hàm CreateFile(), OpenFile(), ReadFile(), WriteFile(), CloseFile(), dùng 

đ  đ c ch n hay thay th  các thông tin t p tin, các thu c tính m  r ng, các để ọ ọ ế ệ ộ ở ộ ộ 

l n t p tin (Byte), các thông tin v  thi t b  hay đ  đ c ch n m t th  m c…ớ ệ ề ế ị ể ọ ọ ộ ư ụ

M i đ i tỗ ố ượng t p tin là m t b n sao c a thông tin đi u khi n c a m t t pệ ộ ả ủ ề ể ủ ộ ệ  tin; nó cũng có th  d n t i nhi u đ i tể ẫ ớ ề ố ượng, mà chúng tham chi u chính t p tinế ệ  này. Do đó, có nh ng thông tin toàn c c đữ ụ ượ ưc l u tr   trong t p tin (không ph iữ ệ ả   trong đ i t ng t p tin) và cũng có th  đ c thay đ i   đó

M i t p tin ch a đ ng nh ng thu c tính t p tin khác nhau; khi th c hi nỗ ệ ứ ự ữ ộ ệ ự ệ  chúng là nh ng dòng d  li u bi n thiên theo đ  l n t p tin. Trữ ữ ệ ế ộ ớ ệ ước h t, chúngế  bao g m nh ng thông tin sau đây:ồ ữ

Các thông tin chu n ẩ :

+ Ngày tháng và th i gian t o l p, ngày tháng và th i gian truy xu t g n đâyờ ạ ậ ờ ấ ầ  

và l n thay th  cu i cùng;ầ ế ố

Trang 12

+ Dung lượng t p tin hi n hành;ệ ệ

+ Thu c tính logic c a t p tin bi u th  b i giá tr  Yes/No. Thí d : t p tin hộ ủ ệ ể ị ở ị ụ ệ ệ 

th ng, t p tin  n, t p tin l u tr , t p tin đi u khi n, t p tin ch  đ c, t p tinố ệ ẩ ệ ư ữ ệ ề ể ệ ỉ ọ ệ  nén…

Tên t p tin ệ :

Trong cây th  m c v i k t n i v t lý, tên t p tin có th  dài;   các k t n iư ụ ớ ế ố ậ ệ ể ở ế ố  khác c a MS­DOS, t p tin có tên ng n.ủ ệ ắ

Các d  li u b o v ữ ệ ả ệ:

Chúng đựơc ch a đ ng trong danh sách đi u khi n vi c truy xu t đ i v iứ ự ề ể ệ ấ ố ớ  

m i ch  nhân c a t p tin.ọ ủ ủ ệ

MyFile.dat, các d  li u ph  c a ngữ ệ ụ ủ ườ ậi l p trình được tham chi u v i m t cáiế ớ ộ  tên b  sung; tên này đổ ược tách làm hai ph n ngăn cách nhau b i d u hai ch m,ầ ở ấ ấ  thí d  ụ

MyFile.dat:MyCommentar.  Đi u đó đã t o nên nhi u thông tin b  sung đ  treoề ạ ề ổ ể  vào m t t p tin (ch ng h n tên c a m t chộ ệ ẳ ạ ủ ộ ương trình x  lý hay ng  c nh khiử ữ ả  

x  lý l n cu i…) mà không h  thay đ i các d  li u chính. Do v y, đ i v i m iử ầ ố ề ổ ữ ệ ậ ố ớ ỗ  dòng d  li u, m t thông tin tr ng thái đữ ệ ộ ạ ược d n t i, ví nh  đ  l n hi n hànhẫ ớ ư ộ ớ ệ  

l n nh t đớ ấ ượ ấc c p phát, các c  hi u đ i v i các ph n c a t p tin…ờ ệ ố ớ ầ ủ ệ

Khi thay th  hay d n tr  l i, các thu c tính logic đế ẫ ở ạ ộ ược tr  giúp nh  phợ ờ ươ  ngpháp k t h p. Thí d  m t t p tin đế ợ ụ ộ ệ ược nén l i m t cách t  đ ng, t c là t p tinạ ộ ự ộ ứ ệ  

nh n đậ ược thu c tính nén l i. Đi u đó cũng có giá tr  đ i v i toàn b  cây thộ ạ ề ị ố ớ ộ ư 

m c.ụ

Các c  ch  b o v  trong  ơ ế ả ệ h  đi u hànhệ ề   Windows NT được tách chia m tộ  cách m nh m  h n trong Unix. Đ i v i m i t p tin có m t danh sách truy c pạ ẽ ơ ố ớ ỗ ệ ộ ậ  

được chi ti t hoá; trong đó, các quy n truy c p c a ế ề ậ ủ ngườ ử ụ  đi s  d ng ược th cự  

hi n. Vi c b  sung thêm tên tiêu chu n nh  Adminitrator (qu n lý), System,ệ ệ ổ ẩ ư ả  Creator (t o l p), Quest (Khách), EveryOne (m i ngạ ậ ọ ười)…, người ta có thể chuyên môn hoá nh ng ữ ngườ ử ụ  ti p theo và các quy n c a h ; nghĩa lài s  d ng ế ề ủ ọ  

h  đọ ược phép hay không được phép v  m t quy n truy c p nào đó.ề ộ ề ậ

H  th ng b o v  này thì không gi i h n trên các t p tin, nó đệ ố ả ệ ớ ạ ệ ược áp d ngụ  

m t cách t ng h p   t t c  các đ i tộ ổ ợ ở ấ ả ố ượng toàn c c   đây th  m c trongụ ở ư ụ  

Trang 13

Windows NT và được ch  huy m t cách th ng nh t. Ti p đó, m t s  ki m traỉ ộ ố ấ ế ộ ự ể  

đ i v i vi c truy c p t i t p tin hay th  m c đố ớ ệ ậ ớ ệ ư ụ ược tr  giúp.ợ

4.4. Các ch c năng t p tin ứ ệ

Có r t nhi u ki u tác v  x y ra trên các t p tin. Trong m c này, chúng taấ ề ể ụ ả ệ ụ  

kh o sát vài ki u đ c tr ng cho t p tin trên b  nh  qu ng đ i (các lo i   đĩaả ể ặ ư ệ ộ ớ ả ạ ạ ổ  

c ng,   đĩa m m, băng nh a camara…).ứ ổ ề ự

m t con s  (ch  s  c a m t trộ ố ỉ ố ủ ộ ường n i b  c a vi c đi n vào t p tin) hay m tộ ộ ủ ệ ề ệ ộ  

b  ch  th    m t c u trúc bên trong t p tin.ộ ỉ ị ở ộ ấ ệ

M  m t t p tin (OpenFiele) ở ộ ệ :

Khi m  m t t p tin đang t n t i, các c u trúc d  li u khác nhau đở ộ ệ ồ ạ ấ ữ ệ ược kh iở  

xướng, do đó, vi c truy c p ti p theo di n ra nhanh h n. Thu c cái đó có vi cệ ậ ế ễ ơ ộ ệ  

ki m tra các quy n truy c p cũng nh  c  ch  các b  đ m, c  ch  các c u trúcể ề ậ ư ơ ế ộ ệ ơ ế ấ  truy c p.ậ

Đóng t p tin (Close File) ệ :

Đ  đóng m t t p tin, c n ph i mô t  các thông tin qu n lý t p tin t i b  nhể ộ ệ ầ ả ả ả ệ ạ ộ ớ 

qu ng đ i và đả ạ ược phép n i ti p vi c s  d ng không gian các c u trúc d  li uố ế ệ ử ụ ấ ữ ệ  

c a vi c qu n lý t p tin   b  nh  chính.ủ ệ ả ệ ở ộ ớ

Tương t  nh  v y, khi trao đ i thông tin gi a các ti n trình   m c 2.4.1,ự ư ậ ổ ữ ế ở ụ  

người ta có th  thay th  đôi l nh OpenFile() và CloseFile(). Thay vì n i c ngể ế ệ ố ứ  

v t lý s  trao đ i thông tin, ngậ ự ổ ười ta được phép có m t s  trao đ i thông tinộ ự ổ  không c n k t n i v t lý: T t c  m i s  truy c p đầ ế ố ậ ấ ả ọ ự ậ ược th c hi n theo dãy tu nự ệ ầ  

t  c a chúng mà không c n dùng l nh OpenFile(). Tuy nhiên, đi u đó thì khôngự ủ ầ ệ ề  

th t chính th c đ i v i m t cách t  ch c d  li u c c b : Thay vì truy c p t pậ ứ ố ớ ộ ổ ứ ữ ệ ụ ộ ậ ệ  tin, người ta ch  x p đ t m t l n (thí d  vi c ki m tra quy n truy c p, vi cỉ ế ặ ộ ầ ụ ệ ể ề ậ ệ  xem xét các kh i t p tin…) ngố ệ ười ta ph i th c hi n đi u đó m i l n truy c p,ả ự ệ ề ỗ ầ ậ  

do đó d n t i chi phí qu n lý gi m thi u  đáng k ẫ ớ ả ả ể ể

Trang 14

M t t p tin độ ệ ượ ổc t  ch c m t cách tu n t  đ n gi n và chi m m t v  trí, màứ ộ ầ ự ơ ả ế ộ ị  

t i đó, ngạ ười ta có th  vi t hay đ c. V  trí t p tin này không ch  để ế ọ ị ệ ỉ ược mô ph ngỏ  

nh  nh ng thông tin qu n lý, mà còn có th  đư ữ ả ể ược thay th  b i m t chế ở ộ ương trình  trong các h  th ng các t p tin nh  v y. B ng vi t x  lý tu n t  còn g i là

truy c p tu n t  (ậ ầ ự sequential access), thí d  kho ng t  tính c a   đĩa m m,ụ ả ừ ủ ổ ề  

người ta d n t i vi c truy c p tu  ch n còn g i là truy c p ng u nhiên (ẫ ớ ệ ậ ỳ ọ ọ ậ ẫ random  access). Đi u đó thì ti n l i khi làm vi c v i   đĩa CD ROM.ề ệ ợ ệ ớ ổ

Theo quan đi m h  đi u hành, các d ch v  h  th ng nh n để ệ ề ị ụ ệ ố ậ ượ ự ợc s  tr  giúp 

m t cách khác nhau. Đi u đó độ ề ược bao hàm trong câu h i, li u vi c đ c/ vi t cóỏ ệ ệ ọ ế  

đượ ưc l u tr , hay li u chữ ệ ương trình ngườ ử ụi s  d ng ph i t  làm đi u đó, khiả ự ề  

ph n  ng c a h  th ng đ t lên m t tr ng thái không bình thả ứ ủ ệ ố ặ ộ ạ ường (?). N uế  không có d  li u nào có th  đữ ệ ể ược đ c hay đọ ược vi t, vì t i hàm Read() khôngế ạ  

có d  li u nào đữ ệ ượ ử ục s  d ng, hay t i hàm Write() không có   đĩa nào s n sàngạ ổ ẵ  làm vi c. G n nh  hàm Read()   trong trệ ầ ư ở ường h p này thì ngăn hãm ti n trìnhợ ế  

ngườ ử ụ , còn hàm Write() thì không. Vì lý do này, các d  li u đi s  d ng ữ ệ ượ ư  c l u

tr ; khi b  đ m tràn hay   đĩa có khi m khuy t, m t thông báo l i đữ ộ ệ ổ ế ế ộ ỗ ược đ a trư ở 

l i   M t   cách   thu n   l i,   khi   đó   có   nhi u   ch c   n ng   đạ ộ ậ ợ ề ứ ằ ược   b   sung   nh :ổ ư  DeleteFile(),   RemameFile(),   CopyFile(),   AppendFile(),   FlushBuffer(),…T t   cấ ả 

đ u ph  thu c vào h  đi u hành m t cách m nh m ề ụ ộ ệ ề ộ ạ ẽ

4.4.2. Các ch c năng truy c p   trong Unixứ ậ ở  

 trong 

Ở h  đi u hànhệ ề  Unix, các g i h  th ng có d ng fd=creat(name, mode)ọ ệ ố ạ  

và fd=open(name, mode) đã cung c p cho ta m t s  b  mô t  t p tin (ấ ộ ố ộ ả ệ fd: file  discriptor). Nó chính là s  tham chi u đ i v i t t c  s  truy c p khác nhau,ự ế ố ớ ấ ả ự ậ  

nh :ư

+ read (fd, buffer, nbytes)        đ c n Bytes   trong b  đ m;ọ ở ộ ệ

+ write (fd, buffer, nbytes)      vi t n Bytes t  m t b  đ m;ế ừ ộ ộ ệ

+ close (fd)      vi t m t t p tin.ế ộ ệ

B  mô t  t p tin này là ch  s  (ộ ả ệ ỉ ố Index)   trong m t trở ộ ường c a b ng mô tủ ả ả 

t p tin (ệ file descript table). S  lố ượng các t p tin và s  lệ ố ượng c a s  đi n vàoủ ự ề  (t c s  lứ ố ượng l n nh t đ i v i fd) là c  đ nh, nó đớ ấ ố ớ ố ị ược thông báo khi có s  d chự ị  

đ i c a ổ ủ h  đi u hànhệ ề ; đ ng th i, nó xác đ nh đ  l n c a c u trúc qu n lý đ iồ ờ ị ộ ớ ủ ấ ả ố  

v i các t p tin đớ ệ ượ ưc l u tr    trong c u trúc ữ ở ấ ngườ ử ụ  c a m t ti n trình.i s  d ng ủ ộ ế

Trang 15

B  mô t  t p tin này đóng vai trò quan tr ng trong ộ ả ệ ọ h  đi u hànhệ ề  Unix. Theo tiêu chu n, trẩ ước khi kh i xở ướng m t ti n trình (ch ng h n m t chộ ế ẳ ạ ộ ương trình), 

b  mô t  t p tin độ ả ệ ược ghi nh : fd =0 cho vi c nh p s  li u (ớ ệ ậ ố ệ stdin), fd =1 cho 

vi c xu t s  li u (ệ ấ ố ệ stdout) và fd=2 cho vi c xu t s  li u khi có l i (ệ ấ ố ệ ỗ stderr). Ở 

trong Unix, người ta l i d ng đi u này đ  k t n i các chợ ụ ề ể ế ố ương trình v i nhau,ớ  

nh m d n t i m t ch c năng nào đó.   m c 2.4, chúng ta đã làm quan v i c uằ ẫ ớ ộ ứ Ở ụ ớ ấ  trúc trao đ i thông tin pipe, thí d :ổ ụ

       Programm1 | Programm2 | … | ProgrammN

Đ  th c hi n dòng l nh này, ti n trình cha thi t đ t nhi u ti n trình con vàể ự ệ ệ ế ế ặ ề ế  

t o ra đ i v i m i m t s  k t n i trao đ i thông tin m t ạ ố ớ ỗ ộ ự ế ố ổ ộ pipe. Sau đó, ti n trìnhế  cha kh i xở ướng các b  mô t  t p tin (ộ ả ệ file descriptors) cho m i ti n trình; khi đó,ỗ ế  chúng s  d n t i: pipe vào v i fd =1   ti n trình g i đi, pipe ra v i fd =0   ti nẽ ẫ ớ ớ ở ế ở ớ ở ế  trình nh n. Hình 4.8 mô t  m t h  th ng pipe   trong Unix.ậ ả ộ ệ ố ở

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

Vi c s p x p các b  mô t  t p tin ch  là s  quy ệ ắ ế ộ ả ệ ỉ ự ước; m i ti n trình có thỗ ế ể 

đ t đạ ược các s  s p x p các b  mô t  t p tin khác nhau qua vi c đóng và mự ắ ế ộ ả ệ ệ ở 

có m c đích các t p tin: Khi m , b  mô t  t p tin tr ng v i con s  h  th ngụ ệ ở ộ ả ệ ố ớ ố ệ ố  

nh  nh t đỏ ấ ượ ử ục s  d ng đ u tiên.ầ

4.4.3. Các ch c năng truy c p t p tin   Windows NTứ ậ ệ ở  

Các ch c năng c  b n đ i v i vi c truy c p t p tin đứ ơ ả ố ớ ệ ậ ệ ược tóm lược nh  làư  

nh ng phữ ương pháp v  thi t laap các thu c tính t p tin. Các phề ế ộ ệ ương pháp hi uệ  nghi m   k   trên   còn   d n   t i   nhi u   ch c   năng   đ i   v i   các   t p   tin   nhệ ể ẫ ớ ề ứ ố ớ ệ ư FlushBuffer() cũng nh  các tác v  th  m c đ c tr ng (đ c, vi t, tìm ki m thư ụ ư ụ ặ ư ọ ế ế ư 

m c…). Nói chung, m t b n phác th o đụ ộ ả ả ược quan tâm đó là: M i tác v  dù cóọ ụ  

c u trúc nh  th  nào đ u có th  thay đ i trên b  nh  qu ng đ i, thì chúng cũngấ ư ế ề ể ổ ộ ớ ả ạ  

được th c thi nh  là nh ng bi n đ i nhân t  (ự ư ữ ế ổ ử atomar transaction). Thu c cái đóộ  còn có m t d ch v  đ c bi t g i là d ch v  đăng ký t p tin (ộ ị ụ ặ ệ ọ ị ụ ệ log file service:  LFS); m i l n truy c p t p tin, d ch v  này đỗ ầ ậ ệ ị ụ ược g i b i nhân h  đi u hành vàọ ở ệ ề  

vi t b n ghi đăng ký cho h  th ng t p tin. Trế ả ệ ố ệ ước khi các t p tin riêng l  đệ ẻ ượ  cthay đ i trên b  nh  qu ng đ i (nh  m t bi n c ), do đó, các b n ghi đăng kýổ ộ ớ ả ạ ờ ộ ế ố ả  

(log records) c a t t c  các tác v  (đ i v i m t bi n c ) đủ ấ ả ụ ố ớ ộ ế ố ược vi t trên b  nhế ộ ớ 

qu ng đ i. B n phác th o đả ạ ả ả ược ch  ra b i trình vi t trỉ ở ế ước luc đăng ký (write  ahead logging) đã t o đi u ki n đ  vi t l i h  th ng t p tin m t cách s ch sạ ề ệ ể ế ạ ệ ố ệ ộ ạ ẽ khi h  th ng có s  c  N u s  c  x y ra trệ ố ự ố ế ự ố ả ước khi vi t vào b  đ m dùng đế ộ ệ ể 

đăng ký (log buffer), do đó, t t c  các tác v  b  l ng quên và vì th  ph i th cấ ả ụ ị ả ế ả ự  

hi n m i m  t  đ u. N u s  c  x y ra gi a kho ng k t thúc đăng ký I/O vàệ ớ ẽ ừ ầ ế ự ố ả ữ ả ế  

k t thúc t p tin I/O, khi đó, c n ph i ki m tra khi cho máy ho t đ ng tr  l i,ế ệ ầ ả ể ạ ộ ở ạ  

Trang 16

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 i và đọ ớ ược th c hi n ti p t c.ự ệ ế ụ

Tuy nhiên, b n phác th o này có m t vài gi  đ nh quan tr ng, chúng khôngả ả ộ ả ị ọ  

nh t thi t ph i đấ ế ả ược th c hi n trong t ng trự ệ ừ ường h p. Do v y, s  truy n đ tợ ậ ự ề ạ  các s  li u đăng ký ph i hoàn toàn không có l i, t c là, t p tin đăng ký nên linhố ệ ả ỗ ứ ệ  

đ ng, vì vi c chuy n t i d  li u thộ ệ ể ả ữ ệ ường ch a đ ng l i, do đó t p tin s  khôngứ ự ỗ ệ ẽ  

s  d ng đử ụ ược. N u gi  s  có m t khi m khuy t th  đ ng d n h  th ng t iế ả ử ộ ế ế ụ ộ ẫ ệ ố ớ  

m t tr ng thái an toàn (ộ ạ fail save); nghĩa là m t l i tích c c cũng ch a xoá độ ỗ ự ư ượ  c

d  li u.ữ ệ

4.4.4. Các ch c năng truy c p có c u trúcứ ậ ấ  

Nh ng ch c năng truy c p đữ ứ ậ ược trình bày cho t i nay là m t lo i đ n gi nớ ộ ạ ơ ả  

và chúng ch  m i có ý nghĩa tách chia các gi i thu t v  truy c p các t p tin.ỉ ớ ả ậ ề ậ ệ  Trong r t nhi u h  th ng, có các tác v  đ  t o đi u ki n thi t l p m t s  truyấ ề ệ ố ụ ể ạ ề ệ ế ậ ộ ự  

c p có c u trúc t i t p tin, mà vi c truy c p này đậ ấ ớ ệ ệ ậ ược hướng t i s  t  ch cớ ự ổ ứ  logic c a d  li u   trong t p tin, sau đây s  l n lủ ữ ệ ở ệ ẽ ầ ượt nói t i t ng lo i:ớ ừ ạ

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

V i các máy tính đớ ược nói   trên, ngở ười ta đã x  lý các danh sách  d  li uử ữ ệ  dài, mà chúng đượ ổc t  ch c nh  là nh ng b n ghi đứ ư ữ ả ượ ắc s p x p m t cách tu nế ộ ầ  

t  Vì nh ng bàn ghi t n t i   nh ng t p tin r ng rãi   trên đĩa m m và l n lự ữ ồ ạ ở ữ ệ ộ ở ề ầ ượ  t

được x  lý. Hình th c t  ch c này đ t đử ứ ổ ứ ạ ược th i gian h i lâu. Ki u t p tin theoờ ơ ể ệ  ngôn ng  Pascal xu t phát t  các tác v  đ c/ vi t tu n t  c a toàn b  các b nữ ấ ừ ụ ọ ế ầ ự ủ ộ ả  ghi d  li u trong kho ng hai tác v  put() và get().ữ ệ ả ụ

Tuy nhiên, n u ngế ười ta mu n truy c p trên các d  li u   trong dãy tu n tố ậ ữ ệ ở ầ ự khác, do đó, đi u đó x y ra l i càng vô cùng ch m.ề ả ạ ậ

Các t p tin tu  ch n (random access files ệ ỳ ọ ):

Nhược đi m nêu   trên nh m d n t i vi c kh c ph c m t c  ch  t p tin,ể ở ằ ẫ ớ ệ ắ ụ ộ ơ ế ệ  

mà nó cho phép m t s  truy c p trên b n ghi s  li u độ ự ậ ả ố ệ ược s p x p theo m tắ ế ộ  dãy tu n t  b t k  Ý tầ ự ấ ỳ ưởng này có th  để ược th c hi n b i s  t o l p c a hự ệ ở ự ạ ậ ủ ệ 

th ng   đĩa c ng. H u h t các h  th ng t p tin đ u t o đi u ki n cho ki u truyố ổ ứ ầ ế ệ ố ệ ề ạ ề ệ ể  

c p này nh  vi c bi u th  v  trí truy c p t p tin.ậ ờ ệ ể ị ị ậ ệ

Khi truy c p t p tin tu  ch n hay tu n t , m t ki u truy c p này đậ ệ ỳ ọ ầ ự ộ ể ậ ược th cự  

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

Trang 17

Tuy nhiên, n u có m t c  ch  n i dung t p tin đế ộ ơ ế ộ ệ ược đ a ra, thì ngư ười ta 

th y r ng, ti n hành truy c p c  hai ki u s  ch m h n m t ki u. Tóm l i,ấ ằ ế ậ ả ể ẽ ậ ơ ộ ể ạ  

người ta ph i tôn tr ng c  ch  t p tin và ph i th c thi m t cách hi u nghi mả ọ ơ ế ệ ả ự ộ ệ ệ  

b ng các phằ ương ti n đi u hành hi n có. T  lý do này, trong các h  th ng ngânệ ề ệ ừ ệ ố  hàng d  li u còn có nh ng phữ ệ ữ ương pháp truy c p hi u nghi m h n.ậ ệ ệ ơ

Các t p tin ch  s  tu n t  (index sequential files) ệ ỉ ố ầ ự :

Lo i t p tin này đạ ệ ượ ấc c u thành t  các b n ghi d  li u (ừ ả ữ ệ data records), chúng 

đượ ắc s p x p theo m t tiêu chu n g i là s p x p theo chìa khoá (key) và kh iế ộ ẩ ọ ắ ế ở  

đ u c a t p tin là m t ch  s  Trong th  m c ch  s , các ki u “đóng/m ” b ngầ ủ ệ ộ ỉ ố ư ụ ỉ ố ể ở ằ  chìa khoá được ki n t o và đế ạ ược th c thi (thí d  ki u đi n vào các t p tin qu nự ụ ể ề ệ ả  

lý nhân s : h  tên, ngày sinh, quê quán…); ngự ọ ười ta có th  truy c p nhanh chóngể ậ  

t ng ph n c a t p tin; t ng ph n này l i đừ ầ ủ ệ ừ ầ ạ ược tr  c u m t kho ng giá tr  thíchợ ứ ộ ả ị  

ng c a m i chìa khoá. Vì m t ki u c u trúc nh  th  thì đ c tr ng cho t t c

các h  th ng t p tin c a các th  m c. Chúng ta có th  nhìn th y đi u này m tệ ố ệ ủ ư ụ ể ấ ề ộ  cách chính xác h n: Hình 4.9 ch  ra c u trúc ki u ch  s  v i m t thí d  v  t pơ ỉ ấ ể ỉ ố ớ ộ ụ ề ệ  tin qu n lý nhân s  T p tin này đả ự ệ ượ ắc s p x p theo m t chìa khoá, thí d  theoế ộ ụ  

l a tu i. Các b n ghi d  li u riêng l  đứ ổ ả ữ ệ ẻ ượ ạ ậc t o l p qua mũi tên xu t phát tấ ừ 

b c s  0.ậ ố

Hình 4.9****************************

Chìa khoá l n nh t (con s  l n nh t) c a m t t p tin (ô hình ch  nh t nhớ ấ ố ớ ấ ủ ộ ệ ữ ậ ư hình 4.9) b t đ u t  ch  s  c a b c s  0 đắ ầ ừ ỉ ố ủ ậ ố ược mô t    ch  s  c a b c s  1; chìaả ở ỉ ố ủ ậ ố  khoá l n nh t c a m t đo n t p tin c a b c s  1đớ ấ ủ ộ ạ ệ ủ ậ ố ược ch  ra   ch  s  c a b cỉ ở ỉ ố ủ ậ  

s  2… N u ngố ế ười ta tìm b n ghi d  li u c a m t chìa khoá xác đ nh x, do đó,ả ữ ệ ủ ộ ị  

người ta ph i xác đ nh kho ng xu t phát c a ch  s  th  2, mà trong kho ng nàyả ị ả ấ ủ ỉ ố ứ ả  

t n t i chìa khoá c n tìm, và xu t phát t  gi i h n trên c a kho ng này, nhồ ạ ầ ấ ừ ớ ạ ủ ả ờ 

b c s p x p, các t p tin tu n t  d ch chuy n t  dậ ắ ế ệ ầ ự ị ể ừ ưới lên cho t i khi ngớ ười ta tìm th y con s  c a b n ghi d  li u. Sau đó, ngấ ố ủ ả ữ ệ ười ta có th  đ c b n ghi dể ọ ả ữ 

li u mà nó đệ ượ ạc t o ra có m c đích t  t p tin.ụ ừ ệ

N u ngế ười ta th c nghi m đ  mô t  c u trúc logic cho các đ i tự ệ ể ả ấ ố ượng v t lýậ  

­ v t đế ường (track), hình tr  (cylinder), hình qu t (sector), do đó ngụ ạ ười ta có thể 

d  dàng nh n đễ ậ ược v n đ  đ  tái b n các b n ghi d  li u và đ  t  ch c b nấ ề ể ả ả ữ ệ ể ổ ứ ả  ghi m t cách m i m  Thí d , vi c t  ch c b n ghi v i chìa khóa s  41 (xemộ ớ ẽ ụ ệ ổ ứ ả ớ ố  hình 4.9) đ  t o nên nh ng v n đ  tể ạ ữ ấ ề ương đ i đ y đ , vì m i h p ch  nh t cóố ầ ủ ỗ ộ ữ ậ  

kh  năng l n nh t là 3 chìa khoá và nó luôn luôn ch a đ ng s n sàng 3 chìaả ớ ấ ứ ự ẵ  khoá này. Do đó, chúng c n t i các c u trúc tr  giúp cho vi c t  ch c các dòngầ ớ ấ ợ ệ ổ ứ  

d  li u phát sinh khi thay đ i thữ ệ ổ ường xuyên các d  li u và chúng đòi h i ngayữ ệ ỏ  

Ngày đăng: 30/01/2020, 02:59

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm