CÁC PHƯƠNG PHÁP TRUY CẬP FILE

Một phần của tài liệu Giáo trình môn Hệ Điều Hành PTIT (Trang 137 - 139)

CHƯƠNG 4 : HỆ THỐNG FILE

4.2. CÁC PHƯƠNG PHÁP TRUY CẬP FILE

Để đọc thông tin từ file hay ghi thông tin ra file hệ điều hành phải quy định cách thức truy cập tới nội dung file. Có thể có nhiều cách truy cập thông tin như vậy. Mỗi hệ điều hành có thể hỗ trợ một hoặc nhiều cách truy cập khác nhau. Dưới đây là những phương pháp truy cập thường gặp:

4.2.1. Truy cập tuần tự

Đa số các hệ điều hành cổ điển chỉ hỗ trợ cách truy cập này. Truy cập tuần tự là phương pháp trong đó thơng tin chứa trong file được đọc hoặc ghi lần lượt từ đầu file, ví dụ theo từng byte hay từng bản ghi. Chẳng hạn, ta không thể đọc byte thứ 2 sau đó bỏ qua byte thứ 3 và đọc thẳng byte thứ 4 được.

Một con trỏ được sử dụng để định vị ví trí hiện thời trong file. Thao tác đọc trả về nội dung byte hoặc bản ghi ở vị trí hiện thời. Tương tự, thao tác ghi sẽ ghi dữ liệu lên vị trí hiện thời. Sau mỗi thao tác đọc hoặc ghi con trỏ sẽ được tăng lên 1 để trỏ tới vị trí tiếp theo. Thơng thường khi mới mở file, con trỏ vị trí được đặt trỏ tới vị trí đầu tiên của file. Để truy cập vị trí nằm trước vị trí hiện thời cần đặt lại con trỏ về đầu file, sau đó di chuyển tiến tới vị trị cần truy cập.

Cách thức truy cập này rất phù hợp với các file được lưu trữ trên băng từ. Thông tin được ghi hoặc đọc lần lượt theo chiều quay của băng.

Mặc dù các hệ điều hành ngày nay hỗ trợ những kiểu truy cập phức tạp và ưu điểm hơn song rất nhiều chương trình ứng dụng vẫn truy cập file theo kiểu tuần tự. Ví dụ, các trình soạn thảo văn bản hoặc chương trình dịch thường đọc và xử lý dữ liệu lần lượt từ đầu file. Tuy nhiên, đối với ứng dụng địi hỏi đọc/ghi một số thơng tin trong file, kiểu truy cập trực tiếp khơng thích hợp do mất thời gian duyệt qua phần trước thông tin cần truy cập.

4.2.2. Truy cập trực tiếp

Việc lưu trữ file trên đĩa cho phép sử dụng phương pháp truy cập trực tiếp (direct access), hay còn gọi là truy cập tương đối. Trong phương pháp này, file được xem như gồm các khối hay các bản ghi được đánh số (khối có thể chỉ gồm 1 byte). Việc đọc ghi các khối được tiến hành theo thứ tự tùy ý. Chẳng hạn ta có thể đọc khối thứ 50 sau đó đọc khối thứ 13 rồi khối thứ 101.

Việc truy cập trực tiếp dựa trên đặc điểm của đĩa cho phép truy cập các khối bất kỳ. File được chứa trong các khối khác nhau của đĩa do vậy cũng cho phép truy cập không cần tuân theo thứ tự.

Phương pháp truy cập trực tiếp rất quan trọng đối với những ứng dụng sử dụng file có kích thước lớn như ứng dụng cơ sở dữ liệu. Giả sử ta có cơ sở dữ liệu về sách trong thư viện. Khi người đọc cần thông tin về quyển sách nào đó, hệ thống sẽ tiến hành đọc trực tiếp bản ghi chứa thông tin này chứ không phải đọc tất cả các bản ghi đứng trước nó.

Để có thể truy cập trực tiếp, các thao tác với file cần có khả năng sử dụng số thứ tự của byte hay bản ghi như một thơng số làm việc. Có hai cách để đọc ghi trực tiếp khối. Trong cách thứ nhất, lệnh đọc, ghi chứa số thứ tự khối cần đọc. Chẳng hạn, ta có lệnh READ n, trong đó n là số thứ tự của khối hay bản ghi cần đọc. Trong cách thứ hai, trước tiên ta dùng các lệnh định vị SEEK để nhảy tới vị trí cần đọc, sau đó mới tiến hành đọc bản ghi. Trong trường hợp sử dụng cách thứ 2, n có thể là số thứ tự tuyệt đối tính từ đầu file hoặc cuối file, hoặc cũng có thể là khoảng cách tương đối tính từ vị trí hiện thời về phía đầu file hoặc cuối file.

Đọc theo số thứ tự khối Định vị xong mới đọc

READ n SEEK n

READ

Các khối hoặc bản ghi của file thường được đánh số bắt đầu từ đầu file. Chẳng hạn, đa số hệ điều hành coi byte thứ nhất có số thứ tự là 0, byte thứ 2 là 1.v.v.

Đa số hệ điều hành ngày nay đều hỗ trợ truy cập file trực tiếp. Một số hệ điều hành yêu cầu chỉ rõ chế độ truy cập khi tạo file. File được quy định là file truy cập tuần tự sẽ không thể truy cập trực tiếp và ngược lại. Tuy nhiên nếu file có thể truy cập trực tiếp thì việc truy cập tuần tự có thể được mơ phỏng dễ dàng nếu cần.

4.2.3. Truy cập dựa trên chỉ số

Phương pháp truy cập dựa trên chỉ số cho phép truy cập tới bản ghi trong file khơng theo số thứ tự hoặc vị trí của bản ghi trong file mà theo một khố ứng với bản ghi đó. Trong phương pháp này, mỗi file có chứa một chỉ số riêng của mình. Chỉ số gồm các khoá và con trỏ chỉ tới các bản ghi trong file. Để truy cập tới bản ghi, ta tìm khố tương ứng trong chỉ số, sau đó theo con trỏ chỉ số để xác định bản ghi và tiến hành truy nhập trực tiếp bản ghi này.

Ví dụ, để tìm kiếm bản ghi về một người trong cơ sở dữ liệu, ta có thể cung cấp cho hệ thống tên của người đó. Hệ thống sẽ duy trì chỉ số trong đó tên được sử dụng làm khố và được sắp xếp cho dễ tìm kiếm. Cùng với khố này là số thứ tự bản ghi. Sau khi tìm được tên cần thiết trong chỉ số, hệ thống có thể truy cập trực tiếp tới bản ghi theo số thứ tự bản ghi tìm được cùng với khố. Hình 4.1 minh hoạ cách đánh chỉ số như vậy

Một ví dụ sử dụng chỉ số khác là việc đánh chỉ số các từ khoá (các thuật ngữ) ở cuối các sách. Các thuật ngữ được sắp theo vần chữ cái, bên cạnh là số trang trong đó thuật ngữ xuất hiện.

Hình 4.1: Truy cập theo khối chỉ số

Các chỉ số có thể được đọc trước vào bộ nhớ để tăng tốc độ cho việc tìm kiếm và truy cập file tiếp theo.

Phương pháp truy cập theo chỉ số rất hay được dùng trong file cơ sở dữ liệu để giúp cho việc định vị và truy cập bản ghi theo một khóa nào đó thực hiện nhanh hơn.

Một phần của tài liệu Giáo trình môn Hệ Điều Hành PTIT (Trang 137 - 139)