Thứ Sáu, 30 tháng 9, 2011

dùng danh sách liên kết.

Để tổ chức cấp phát động các block đĩa cho file 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. va mang trinhdo choi tinh ducam dao giaphau thuat tham my
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 file sẽ tăng lên rất nhiều. Trong 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 file 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ẽ 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 file 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ở file, thì các thuộc tính và các địa chỉ block đĩa mà hệ điều hành cấp cho file được ghi vào bảng mở file 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 file được mở. Bất kỳ một sự thay đổi nào về kích thước file cũng thay đổi đến hạn ngạch của người sử dụng sở hữu file.
 











Một bảng thứ hai chứa record quota, cho mỗi người sử dụng mở file hiện tại, thậm chí nếu file được mở bởi một người nào đó, bảng này được trình bày ở hình sau. Hình 4.2 cho thấy một phần của file quota trên đĩa, cho biết file của người sử dụng nào là đang được mở. Khi tất cả các file đều được đóng, record sẽ ghi trở lại file quota.
Khi có một entry mới được tạo ra trong bảng mở file thì một con trỏ (quota pointer) trỏ tới record quota của người sở hữu file, là được nhập vào nó. Mỗi khi có một block được thêm vào một file thì tổng số block của người sử dụng được tăng lên và một check được gán đến cả Hard block limit và Soft block limit. Soft limit có thể được vượt quá, nhưng hard limit thì không thể. Một sự cố gắng thêm vào cuối file khi hard block limit bị vượt quá giới hạn sẽ trả về thông báo lỗi.  
Khi một người sử dụng cố gắng login, hệ thống sẽ kiểm tra file quota để xem người sử dụng đã vựợt quá soft limit của block hoặc file hay chưa (soft block limit hoặc soft file limit). Nếu cả hai limit đều bị vi phạm, thì một cảnh báo sẽ xuất hiện, và bộ đếm (count) tương ứng với cảnh báo sẽ giảm xuống một đơn vị. Nếu bộ đếm nhận được giá trị zero thì người sử dụng sẽ không được phép login.  
IV.1.4. Quản lý các block chứa file trên đĩa
Trong phần này chúng ta xem xét các phương pháp khác nhau mà các hệ điều hành sử dụng để theo dõi danh sách các block đĩa mà hệ điều hành đã cấp phát cho một file, để chứa hết các block của một file, của tất cả các file đang được lưu trữ tên đĩa.
Ø    Cấp phát liên tục (contiguous allocation): là một chiến lược đơn giản nhất, trong chiến lược này các block file được lưu trữ tại các block đĩa liên tục nhau. Tức là,  nếu 1 block đĩa là 1K thì một file 50K sẽ được lưu trữ tại 50 block liên tiếp nhau trên đĩa. Chiến lược này đơn giản, dễ cài đặt và thời gian đọc file giảm xuống đáng kể, vì hệ điều hành chỉ cần biết block đĩa đầu tiên chứa các block file và tổng số block đĩa chứa file là có thể tiến hành đọc nội dung của file mà không cần dò tìm danh sách các block đĩa chứa nội dung của file.
Chiến lược này chỉ có thể được sử dụng với các file có kích thước cố định, không thay đổi so với thời điểm tạo ra file, hoặc với các file mà hệ điều hành biết trước được kích thước tối đa của file, trong trường hợp này hệ điều hành phải dự trữ block đĩa cho file, điều nà 
m chậm tốc độ đọc file của hệ điều hành 

Không có nhận xét nào:

Đăng nhận xét