Loading...

1. Quản lý không gian đĩa của hệ điều hành

Để tổ chức lưu trữ nội dung các tập tin trên đĩa, các hệ điều hành đều chia không gian lưu trữ của đĩa thành các phần có kích thước bằng nhau được gọi là khối (block) lưu trữ - còn gọi là đơn vị cấp phát.

Nội dung của tập tin cần lưu trữ cũng được chia thành các block có kích thước bằng nhau, trừ block cuối cùng, và bằng với kích thước các block đĩa.

Khi cần lưu trữ tập tin trên đĩa hệ điều hành cấp cho mỗi tập tin một số lượng block vừa đủ để chứa hết nội dung của tập tin.

Kích thước block:

Kích thước của một block phụ thuộc vào qui định của vi xử lý và hệ điều hành, thường là 128 byte, 256 byte, hoặc 512 byte, vv. Khi chọn kích thước của  block hệ điều hành phải xem xét các vấn đề sau:

Nếu kích thước block lớn thì dễ lãng phí đĩa, trong trường hợp kích thước của tập tin không phải là bội số của kích thước block.

Nếu kích thước block nhỏ thì đĩa được chia thành nhiều block, dẫn đến kích thước danh sách quản lý block của đĩa, danh sách quản lý block của một tập tin, bảng các block, vv, sẽ tăng lên do đó dung lượng bộ nhớ chứa nó sẽ tăng lên.

Kích thước của block phải là bội của kích thước khối dữ liệu mà hệ thống dùng khi thực hiện truyền dữ liệu giữa bộ nhớ chính và bộ nhớ phụ.

Theo dõi các block tự do:

Khi cần lưu trữ nội dung của một tập tin lên đĩa, hệ điều hành cấp cho tập tin một số lượng block đĩa nhất định để chứa hết nội dung của nó, các block đĩa này có thể nằm tại các vị trí bất kỳ trên đĩa.

Trong quá trình sử dụng tập tin kích thước của tập tin có thể thay đổi, tăng lên hay giảm xuống, do đó hệ điều hành phải tổ chức cấp phát động các block đĩa cho các tập tin. Khi kích thước của tập tin tăng lên thì hệ điều hành phải cấp phát thêm block cho nó, khi kích thước tập tin giảm xuống hoặc khi tập tin bị xoá khỏi đĩa thì hệ điều hành phải thu hồi lại các block đĩa đã cấp cho nó để có thể cấp cho các tập tin khác sau này.

 Để tổ chức cấp phát động các block đĩa cho tập tin hệ điều hành phải quản lý được trạng thái của các block, còn tự do hay đã cấp phát, trên đĩa. Trong trường hợp này các hệ điều hành có thể sử dụng 2 kỹ thuật: Bảng bít và/hoặcDanh sách liên kết.

Đối với kỹ thuật bảng bít, mỗi bít cho biết trạng thái của một block tương ứng trên bộ nhớ phụ, = 0 thì block tương ứng còn tự do, = 1 thì block tương ứng đã cấp phát cho một tập tin nào đó. Như vậy, để tìm N block tự do hệ điều hành chỉ cần tìm N bít 0 trong bảng bít, do đó tốc độ tìm và cấp phát block cho các tập tin sẽ tăng lên rất nhiều.

Đối với kỹ thuật danh sách liên kết, để quản lý các block còn tự do hệ điều hành dùng một danh sách liên kết. Mỗi phần tử trong danh sách cho biết địa chỉ của một block tự do trên đĩa. Như vậy khi cần cấp phát block cho cho một tập tin nào đó thì hệ điều hành sẽ dựa vào danh sách các block tự do này.

Sau khi cấp phát hoặc thu hồi block hệ điều hành phải tiến hành cập nhật lại danh sách liên kết hay bảng bít. Trong trường hợp bảng bít hoặc danh sách liên kết lớn, hệ điều hành sẽ phải chứa nó ở đĩa và chỉ nạp phần cần thiết vào bộ nhớ chính. Khi lựa chọn các block trong tập các block tự do để cấp phát cho một tập tin hệ điều hành phải chọn sao cho việc cấp phát được thực hiện nhanh và việc đọc sau này là tối ưu với một thuật toán đọc đĩa cụ thể nào đó.

Cấp hạn ngạch đĩa (Disk Quotas):

Để ngăn chặn người sử dụng sử dụng quá nhiều không gian đĩa, các hệ điều hành đa người sử dụng thường cung cấp một chiến lược để người quản trị hệ thống giới hạn số lượng không gian đĩa tối đa (block) mà mỗi người sử dụng được phép sử dụng và hệ điều hành phải đảm bảo rằng người sử dụng không thể sử dụng quá không gian đĩa mà hệ điều hành cấp cho họ, chiến lược này được gọi là cấp hạn ngạch đĩa. 

Khi người sử dụng mở tập tin, thì các thuộc tính và các địa chỉ block đĩa mà hệ điều hành cấp cho tập tin được ghi vào bảng mở tập tin trong bộ nhớ chính, trong đó có cả thuộc tính cho biết người sử dụng nào sở hữu tập tin được mở. Bất kỳ một sự thay đổi nào về kích thước tập tin cũng thay đổi đến hạn ngạch của người sử dụng sở hữu tập tin.

2. Cơ chế cấp phát & quản lý các block chứa tập tin trên đĩa của hệ điều hành

Tự học

Ý kiến của bạn

Mã bảo vệ
Làm mới

Hãy đăng quảng cáo trên TuHocAnNinhMang.com

Bài xem nhiều nhất

Tự học lập trình C - Bài 1: Một số khái niệm cơ bản

Khái niệm tên rất quan trọng trong quá trình lập trình, ...

MySQL – Bài 8: Khóa chính (primary key) và khóa ngoại (foreign key) của table

Với ràng buộc này thì, việc người sử dụng vô tình hay cố ...

Tự học lập trình C - Bài 10: Mảng một chiều

Mảng 1 chiều là tập hợp các phần tử có cùng kiểu dữ ...

Tự học lập trình JAVA – Bài 1: Bước đầu với Java

Một chương trình java có thể được định nghĩa như là một ...

Tự học lập trình C - Bài 2: Cấu trúc chương trình C

Một chương trình bao gồm một hoặc nhiều hàm, mỗi hàm ...

Tự học lập trình Assembly - Bài 1: Bước đầu với lập trình Assembly trên vi xử lý Intel 8086/8088

Như đã biết, lệnh ngôn ngữ máy là một dãy các con số 0, ...

Hướng dẫn in ấn trong Word 2007/2010 – Step by Step

[Tự học] - Tiêu đề đầu trang (Header)/tiêu đề cuối ...

Hãy đăng quảng cáo trên TuHocAnNinhMang.com

Về đầu trang Hỏi - Đáp