Trong các giải thuật mà chúng ta đã đề cập từ trước tới nay, chúng ta đã giả sử rằng số lượng các dữ liệu vào là khá nhỏ để có thể chứa hết ở bộ nhớ trong (main
memory). Nhưng điều gì sẽ xảy ra nếu ta muốn xử lý phiếu điều tra dân số tồn
quốc hay thơng tin về quản lý đất đai cả nước chẳng hạn? Trong các bài toán như
vậy, số lượng dữ liệu vượt quá khả năng lưu trữ của bộ nhớ trong. Ðể có thể giải quyết các bài tốn đó chúng ta phải dùng bộ nhớ ngồi để lưu trữ và xử lý. Các thiết
bị lưu trữ ngồi như băng từ, đĩa từ đều có khả năng lưu trữ lớn nhưng đặc điểm
truy nhập hoàn tồn khác với bộ nhớ trong. Chúng ta cần tìm các cấu trúc dữ liệu và giải thuật thích hợp cho việc xử lý dữ liệu lưu trữ trên bộ nhớ ngồi.
Kiểu dữ liệu tập tin là kiểu thích hợp nhất cho việc biểu diễn dữ liệu được lưu trong bộ nhớ ngoài. Hệ điều hành chia bộ nhớ ngồi thành các khối (block) có kích thước bằng nhau, kích thước này thay đổi tùy thuộc vào hệ điều hành nhưng nói chung là từ 512 bytes đến 4096 bytes.
Trong quá trình xử lý, việc chuyển giao dữ liệu giữa bộ nhớ trong và bộ nhớ ngoài
được tiến hành thông qua vùng nhớ đệm (buffer). Bộ đệm là một vùng dành riêng
của bộ nhớ trong mà kích thước bằng với kích thước của một khối của bộ nhớ ngồi.
Có thể xem một tập tin bao gồm nhiều mẩu tin được lưu trong các khối . Mỗi khối lưu một số nguyên vẹn các mẩu tin, khơng có mẩu tin nào bị chia cắt để lưu trên hai khối khác nhau.
Trong thao tác đọc, nguyên một khối của tập tin được chuyển vào trong bộ đệm và lần lượt đọc các mẩu tin có trong bộ đệm cho tới khi bộ đệm rỗng thì lại chuyển một khối từ bộ nhớ ngồi vào bộ đệm.
Ðể ghi thơng tin ra bộ nhớ ngồi, các mẩu tin lần lượt được xếp vào trong bộ đệm
cho đến khi đầy bộ đệm thì nguyên một khối được chuyển ra bộ nhớ ngồi. Khi đó bộ đệm trở nên rỗng và lại có thể xếp tiếp các mẩu tin vào trong đó.
Mỗi lần đọc một khối Mỗi lần đọc một mẩu tin
Đọc Ghi Đọc Ghi Bộ nhớ đệm Bộ nhớ ngoài Bộ nhớ trong
Hình 4-1: Mơ hình giao tiếp giữa bộ nhớ trong, bộ nhớ ngoài và vùng nhớ đệm
Như vậy đơn vị giao tiếp giữa bộ nhớ trong và bộ đệm là mẩu tin còn giữa bộ đệm và bộ nhớ ngồi là khối.
Hình 4-1 mơ tả họat động của bộ nhớ trong, bộ đệm và bộ nhớ ngoài trong thao tác
đọc và ghi tập tin