Đặc tr−ng cơ bản của thiết bị ngoại vi là tốc độ hoạt động nhỏ hơn nhiều lần so với tốc độ hoạt động của processor. Để thực hiện một phép vào ra hệ thống phải kích hoạt thiết bị, chờ đợi thiết bị đạt trạng thái thích hợp (Ví dụ nh−
Lê Tiến Dũng BM Công nghệ phần mềm vậy phần lớn các thiết bị vào ra làm việc với từng khối dữ liệu chứ không phải từng byte riêng lẻ. Để đảm bảo năng suất, hệ thống cần phải
+ Cố gắng thực hiện song song công việc vào ra với các phép xử lý thông tin khác
+ Giảm số l−ợng các phép trao đổi vào ra vật lý
+ Thực hiện tr−ớc các phép nhập dữ liệu
- Nh− vậy ng−ời ta phải sử dụng phòng đệm để nâng cao năng suất
+ Phòng đệm của hệ điều hành là một vùng nhớ dùng để l−u trữ tạm thời các thông tin phục cho các phép vào ra.
+ Ngoài ra còn có phòng đệm của thiết bị không phụ thuộc vào hệ điều hành gọi là phòng đệm kỹ thuật. Ví dụ phòng đệm của máy in.
- Ví dụ
Assign(f,’f1.txt’); Reset(f);
Read(f,a);
Khi thực hiện Reset(f) thì hệ thống đã đ−a dữ liệu từ đĩa lên vùng đệm. Khi ch−ơng trình muốn đọc dữ liệu từ tệp vào biến a thì hệ thống chỉ cần lấy dữ liệu từ vùng đệm thay cho việc đọc tệp.
Giả thiết mỗi lần truy nhập đĩa mất 0,01 giây, kích th−ớc vùng đệm là 512 bytes và thời gian truy nhập vào bộ nhớ là rất nhỏ (so với 0,01)
Số byte cần đọc Không có vùng đệm Có vùng đệm 1B 0,01’’ 0,01’’ 512B 5’’ = 512x0.01 0,01’’ 5KB 50’’ = 10x5 0.1’’ = 10x0.01 50KB 8’ = 10x50 1’’ = 10x01. Buffer a Reset(f) Read(f,a)
Lê Tiến Dũng BM Công nghệ phần mềm
- Phân loại phòng đệm
a. Phòng đệm trung chuyển
- Là phòng đệm thuần tuý l−u trữ tạm thời các phép phục vụ vào ra.
- Phòng đệm này có hai loại
+ Phòng đệm vào là phòng đệm chỉ dùng để nhập thông tin. Trong hệ thống sẽ có lệnh để đ−a thông tin vào phòng đệm (đọc vật lý).
Khi gặp chỉ thị đọc (READ), thông tin sẽ đ−ợc tách và chuyển từ phòng đệm vào các địa chỉ t−ơng ứng trong ch−ơng trình ứng dụng. Nh− vậy, mỗi giá trị đ−ợc l−u trữ ở hai nơi trong bộ nhớ (một ở phòng đệm và một ở vùng bộ nhớ trong ch−ơng trình ứng dụng). Khi giá trị cuối cùng của phòng đệm vào đ−ợc lấy ra thì phòng đệm đ−ợc giải phóng (rỗng) và hệ thống đ−a thông tin mới vào phòng đệm trong thời gian ngắn nhất có thể.
Để giảm thời gian chờ đợi, hệ thống có thể tổ chức nhiều phòng đệm vào, khi hết thông tin ở một phòng đệm, hệ thống sẽ chuyển sang phòng đệm khác.
+ Phòng đệm ra là phòng đệm để ghi thông tin. Trong hệ thống có lệnh để giải phóng phòng đệm (ghi vật lý). Khi có chỉ thị ghi (WRITE), thông tin đ−ợc đ−a vào phòng đệm. Khi phòng đệm ra đầy, hệ thống sẽ đ−a thông tin ra thiết bị ngoại vi. Hệ thống cũng có thể tổ chức nhiều phòng đệm ra.
- −u điểm:
+ Đơn giản
+ Có hệ số song song cao vì tốc độ giải phóng vùng đệm lớn
+ Có tính chất vạn năng, thích ứng với mọi ph−ơng pháp truy nhập
- Nh−ợc điểm
+ Tốn bộ nhớ
+ Tốn thời gian để trao đổi thông tin trong bộ nhớ Buffer a Buffer Read(f,a) Write(f,a) System System
Lê Tiến Dũng BM Công nghệ phần mềm
b. Phòng đệm xử lý
Thông tin đ−ợc xử lý ngay trong phòng đệm không ghi lại vào nơi khác trong bộ nhớ. Chỉ thị đọc xác định địa chỉ thông tin chứ không cung cấp thông tin chứ không cung cấp giá trị.
- −u điểm:
+ Tiết kiệm bộ nhớ
+ Không mất thời gian chuyển thông tin ở bộ nhớ trong, thích hợp khi cần kích th−ớc bản ghi dữ liệu lớn.
- Nh−ợc điểm
+ Tính vạn năng không cao
+ Hệ số song song thấp
c. Phòng đệm vòng tròn
Phòng đệm vòng tròn th−ờng có ba phòng đệm
- Sau một khoảng thời gian vai trò của ba phòng đệm đ−ợc thay đổi cho nhau.
- −u điểm: Buffer địa chỉ a System Đọc Ghi Xử lý
Lê Tiến Dũng BM Công nghệ phần mềm
+ Có sự đồng bộ giữa đọc, ghi và xử lý (ba quá trình đ−ợc thực hiện song song).
+ Th−ờng áp dụng cho hệ cơ sở dữ liệu và hữu dụng nhất khi l−ợng thông tin vào bằng l−ợng thông tin ra.
- Nh−ợc điểm (không thấy có, tự nghĩ ra)