TổNG QUAN ổ ĐĨA CứNG –PHầN 2
Cluster (chỉ dành riêng cho FATx File System): là đơn vị lưu trữ cơ bản được chỉ định
của đĩa từ. Cluster bao gồm 1 hoặc nhiều sector. Không gian lưu trữ của ổ cứng được
xác định dựa trên những cluster, cho dù đó là một file (hoặc một phần của file) chỉ
chiếm dụng một phần hoặc toàn bộ không gian của cluster thì điều đó cũng được coi là
đã sử dụng một phần không gian của ổ cứng. Hiếm khi nào dung lượng của một file
vừa bằng tổng dung lượng một số cluster. Nói như thế là vì thông thường cluster cuối
cùng lưu trữ một phần dữ liệu của file thường chứa luôn cả những không gian trống
không dùng đến mà người ta vẫn thường gọi là “không gian rỗng” ở phần cuối của
cluster. Ta thử làm một phép tính đơn giản để minh hoạ vấn đề này:
Cho 1 cluster = 4 KB; ta có 1 file test.txt dung lượng 14 KB như vậy khi ta lưu file
test.txt xuống đĩa cứng file này sẽ được tách thành 4 cluster lần lượt là :
Cluster 1 -> 4KB đầu tiên
Cluster 2 -> 4KB tiếp theo
Cluster 3 -> 4KB tiếp theo
Cluster 4 (cluster cuối cùng) ->lưu trữ 2KB còn lại và 2KB bị bỏ trống
2KB bỏ trống này không thuộc về bất cứ file nào, không lưu bất cứ dữ liệu nào vì
cluster 4 đã được chỉ định thuộc về file test.txt do đó đây là một khoảng không gian
rỗng hay nói khác đi “chúng ta đã phí phạm một khoảng không gian trên ổ cứng” - đây
chính là một trong những điểm khác nhau và tiến bộ giữa các thế hệ FAT File System
mà chúng tôi sẽ nói đến trong phần hệ thống file của OS ở phần sau. Mặc dù thế
nhưng rõ ràng cái mà người ta nhận được từ cluster là rất đáng kể, nó làm tăng hiệu
năng làm việc của ổ cứng và giúp hệ điều hành quản lý file tốt hơn nhiều so với việc bắt
hệ điều hành và ổ cứng phải làm việc ở cấp độ sector.
Lost cluster: thông thường khi các bạn dùng các chương trình sửa ổ cứng nhất là
scandisk/ndd (chạy trên FATx File System) đôi khi bạn nhận được thông báo “Lost
cluster found! Fix it ?” Thật ra trong quá trong ổ cứng đọc và ghi dữ liệu, hệ điều hành
có vai trò mở file/tạo file (open/assign file) sau đó tiếp tục phát lệnh để ổ cứng ghi từng
phần dữ liệu vào từng cluster được chỉ định rồi cuối cùng ra lệnh đóng file (close file).
Tuy nhiên đôi khi có một số trường hợp khi ổ cứng đang ghi dữ liệu vào các cluster đã
được chỉ định nhưng bất ngờ bị mất điện hoặc kết thúc quá trình ghi dữ liệu nhưng lại
được thiết kế ngay trên board mạch của ổ cứng. Mặc dù nó không hề sử dụng bất cứ
một phần RAM nào của bộ nhớ chính (computer RAM) để làm công việc lưu trữ tạm
thời nhưng chúng có dung lượng rất thấp (128KB->2MB cá biệt có thể lên đến 4MB) và
cực kỳ đắt tiền.
-Bộ đệm “riêng” (disk caching controllers): tương tự như bộ đệm cứng, bộ đệm
riêng sử dụng bộ nhớ riêng (có cấu trúc khác RAM) nhưng bộ nhớ và bộ điều khiển mà
bộ đệm này sử dụng là bộ nhớ và chíp điều khiển được gắn riêng rẽ trên một card điều
khiển chứ không phải là trên board mạch của ổ cứng và lẽ dĩ nhiên giá thành của chúng
cực kì đắt. Tuy nhiên, bộ đệm riêng lại hoạt động tốt và nhanh hơn rất nhiều so với bộ
đệm cứng vì nó vượt qua được một số giới hạn của những phần của ổ cứng mà bộ
đệm cứng luôn bị ảnh hưởng.
-Buffers : ở đây chúng tôi không dịch hẳn từ buffer mà để nguyên như thế vì giữa
buffers và cache có những điểm rất giống nhau. Có rất nhiều tài liệu biên dịch hoặc
nguyên bản hoàn toàn không phân biệt giữa 2 khái niệm “cache” và “buffers” mà lại để
nguyên là “bộ đệm” – như vậy là không chính xác! Vậy giữa cache và buffers có gì khác
nhau và giống nhau ? Có một điểm duy nhất giống nhau giữa cache và buffers chính là
“chúng đều là bộ nhớ đệm có tác dụng lưu trữ tạm thời một số dữ liệu trên ổ cứng
nhằm tăng tốc tốc độ truy xuất dữ liệu và tăng tuổi thọ cho ổ cứng” và điểm khác nhau
giữa chúng là :
Cache có tốc độ cao hơn nhiều so với buffers.
Cache phải cần đến bộ điều khiển cache - nếu là “cứng” thì cần phài có chíp điều khiển,
còn “mềm” thì phải cần phần mềm điều khiển – trong khi đó buffers chỉ là một con chíp
nhớ đơn giản không cần bộ điều khiển riêng.
Buffers gặp rất nhiều giới hạn trong các quá trình giao tiếp và chuyển đổi dữ liệu bởi vì
khả năng quản lý dữ liệu của nó rất kém. Khi lưu trữ dữ liệu tạm thời, buffer lưu trữ một
lúc cả một track vì thế nếu muốn tìm một sector nào trên track này thì hệ điều hành lại
phải tiếp tục tìm kiếm trên track mà buffer cung cấp - chậm hơn hẳn so với cache.
Những điều cần chú ý đến Cache : có thể bạn sẽ rất ngạc nhiên nếu như chúng tôi nói
là “ổ cứng có cache lớn không có nghĩa là sẽ truy xuất dữ liệu nhanh hơn ổ cứng có
cache nhỏ (hai cái cùng loại có cùng tốc độ và dung lượng)”. Nói điều này thì
cần nguồn nuôi”.
B.Tổ chức dữ liệu cơ bản của đĩa cứng :
Ở đây chúng tôi xin được khẳng định rõ quan điểm của mình là “tổ chức dữ liệu cơ bản
(hay còn được gọi là tổ chức dữ liệu cấp thấp)” của đĩa cứng để phân biệt rõ ràng với
“tổ chức dữ liệu cấp cao” của ổ cứng do những hệ thống file (file system) của những
OS được cài đặt trên ổ cứng tổ chức mà trong một số tài liệu đã nói chung chung là “tổ
chức dữ liệu ổ cứng”. Tổ chức dữ liệu cơ bản của đĩa cứng là cách sắp xếp những
phần tử/đơn vị lưu trữ dữ liệu ở mức thấp nhất mà nhà sản xuất đã quy định đồng thời
các giá trị đo lường của ổ cứng cũng được tuân thủ theo nguyên tắc riêng.
Các đơn vị đo lường của ổ cứng được tính theo nguyên tắc sau :
Bit là đơn vị lưu trữ dữ liệu nhỏ nhất và chỉ có thể lưu trữ một trong hai giá trị 1 hoặc 0.
1 byte = 8 bit;
1 Kbyte = 1024 byte;
1 Mbyte = 1.000.000 byte;
1 Gbyte = 1000 Mbyte = 1.000.000.000 byte;
1 Tbyte = 1000 Gbyte=1.000.000 Mbyte=1.000.000.000 byte;
Cách thức tổ chức dữ liệu cấp thấp của ổ cứng: như đã trình bày ở những phần trên 1
byte thì gồm nhiều bit và một sector thì bao gồm nhiều byte, một track thì bao gồm
nhiều sector và một cylinder thì bao gồm nhiều track đồng trục và bằng nhau. Ngoài ra
chúng tôi cũng có nhắc đến vấn đề “tổ chức dữ liệu kiểu liên tục” ở phần trên, thật ra
các đơn vị lưu trữ dữ liệu trên ổ cứng (tính từ đơn vị lưu trữ dữ liệu nhỏ nhất) chính là
một chuỗi dài các đơn vị bit từ chỗ đầu đọc bắt đầu đọc và ghi cho đến điểm cuối cùng
mà đầu đọc có thể đọc/ghi được. Cả một chuỗi dữ liệu bao gồm các giá trị 1 và 0 (tính
theo đơn vị lưu trữ bit) này chính là cách tổ chức đơn giản nhất hay nói cho có tính
khoa học là tổ chức dữ liệu cấp thấp của ổ cứng.
Để vấn đề trở nên mạch lạc và dễ hiểu hơn chúng tôi xin được minh hoạ đĩa cứng với
“cái thước dây của thợ may”. Bây giờ bạn đã bắt đầu liên tưởng được rồi, thay vì trên
thước dây có đơn vị nhỏ nhất là 1mm thì bạn hãy cho nó là 1 bit. Bây giờ bạn hãy lấy
một khúc gỗ tròn để đại diện cho trục ổ cứng rồi từ từ quấn cái thước dây này quanh
trục cho đến khi hết. Lúc này bạn sẽ thấy một sợi dây dài đã quấn thành nhiều vòng