Nguyên lý hệ điều hành - Nguyễn Đức Thuần
Một hệ thống thông thường gồm CPU và các bộ điều khiển thiết bị (BĐKTB - device controller). Các tác vụ của CPU và BĐKTB có thể thực thi song hành và tranh chấp bộ nhớ chia sẻ qua sự điều khiển đồng bộ của memory controller
Mỗi BĐKTB phụ trách một loại thiết bị cụ thể (video adapter, disk drive.)
Mỗi BĐKTB có một buffer riêng
CPU chuyển dữ liệu từ bộ nhớ chính đến buffer riêng của BĐKTB và ngược lại. Dữ liệu của các tác vụ I/O được chuyển từ thiết bị đến buffer riêng của BĐKTB tương ứng
ố thích hợp cho lời gọi hệ thống – Chức năng của spooling là tránh trường hợp một tiến trình truy xuất và chiếm giữ thiết bị khiến các tiến trình khác khơng truy xuất được thiết bị đĩ – Ứng dụng của spooling: printing, sending/receiving email Ng Duc Thu an 194 Chương 6: Quản lý xuất /nhập • Cài đặt hệ thống quản lý nhập xuất – Cài đặt hệ thống nhập xuất đĩa – Cài đặt hệ thống nhập xuất chuẩn – Cài đặt đồng hồ Ng Duc Thu an 195 Chương 6: Quản lý xuất /nhập • Cài đặt hệ thống nhập xuất đĩa – Ưu điểm của đĩa: dung lượng, chi phí, bảo tịan thơng tin – Cấu trúc vật lý: cylinder, track, head, sector – Tốc độ đĩa phụ thuộc vào các thao tác: • Seek: di chuyển đầu đọc đến track/cylinder (seek time *) • Chờ cho khối cần thiết đến dưới đầu đọc (latency time *) • Đọc dữ liệu từ đĩa vào bộ nhớ (transfer time) – HĐH cần cĩ các thuật tốn lập lịch truy xuất đĩa Ng Duc Thu an 196 Chương 6: Quản lý xuất /nhập • Các thuật tốn đọc đĩa – Lập lịch FCFS – Lập lịch SSTF – Lập lịch SCAN – Lập lịch C-SCAN – Lập lịch LOOK Ng Duc Thu an 197 Chương 6: Quản lý xuất /nhập • Lập lịch FCFS (First Come, First Served) – Phương pháp đơn giản, dễ lập trình – Khơng cung cấp dịch vụ tốt Ví dụ đầu đọc đang ở khối 53, cần đọc các khối theo thứ tự 98, 183, 37, 122, 14, 124, 65, 67 Đầu đọc phải lần lượt đi qua các khối 53, 98, 183, 37, 122, 14, 124, 65, 67 Ng Duc Thu an 198 Chương 6: Quản lý xuất /nhập • Lập lịch SSTF (Shortest-Seek-Time-First) – Di chuyển đầu đọc đến các khối cần thiết theo vị trí lần lượt gần với vị trí hiện hành của đầu đọc nhất Ví dụ đầu đọc đang ở khối 53, cần đọc các khối theo thứ tự 98, 183, 37, 122, 14, 124, 65, 67 Đầu đọc lần lượt đi qua các khối 53, 65, 67, 37, 14, 98, 122, 124, 183 – Thích hợp cho hệ thống cần truy xuất dữ liệu liên tục Ng Duc Thu an 199 Chương 6: Quản lý xuất /nhập • Lập lịch SCAN – Đầu đọc di chuyển về 1 phía của đĩa và từ đĩ di chuyển qua phía kia. Ví dụ đầu đọc đang ở khối 53, cần đọc các khối theo thứ tự 98, 183, 37, 122, 14, 124, 65, 67 Đầu đọc lần lượt đi qua các khối 53, 37, 14, 0, 65, 67, 98, 122, 124 và 183 – Thích hợp cho hệ thống truy xuất dữ liệu khối lượng lớn Ng Duc Thu an 200 Chương 6: Quản lý xuất /nhập • Lập lịch C-SCAN – Tương tự thuật tĩan SCAN, chỉ khác khi di chuyển đến một đầu nào đĩ của đĩa, nĩ sẽ lập tức trở về đầu bắt đầu của đĩa Ví dụ đầu đọc đang ở khối 53, cần đọc các khối theo thứ tự 98, 183, 37, 122, 14, 124, 65, 67 Đầu đọc lần lượt đi qua các khối 53, 65, 67, 98, 122, 124, 183, 0, 14, 37 – Thích hợp cho hệ thống truy xuất dữ liệu khối lượng lớn Ng Duc Thu an 201 Chương 6: Quản lý xuất /nhập • Lập lịch LOOK – Giống C-SCAN nhưng chỉ chuyển đến khối xa nhất ở mỗi hướng chứ khơng đến cuối. Ví dụ đầu đọc đang ở khối 53, cần đọc các khối theo thứ tự 98, 183, 37, 122, 14, 124, 65, 67 Đầu đọc lần lượt đi qua các khối 53, 65, 67, 98, 122, 124, 183, 14, 37 – Thích hợp cho hệ thống truy xuất dữ liệu khối lượng lớn Ng Duc Thu an 202 Chương 6: Quản lý xuất /nhập • Quản lý lỗi – Lỗi lập trình: tìm khơng thấy cylinder, sector, head, địa chỉ buffer. Xử lý bằng kiểm tra tham số, thơng báo lỗi. – Lỗi checksum tạm thời: gây ra bởi bụi trên đầu đọc – Lỗi checksum thường trực: đĩa hư vật lý trên các khối – Lỗi tìm kiếm: seek đầu đọc sai địa chỉ – Lỗi điều khiển: bộ điều khiển từ chối thi hành lệnh Ng Duc Thu an 203 Chương 6: Quản lý xuất /nhập • RAM disk – RAM disk dùng một phần bộ nhớ chính để lưu trữ các khối dữ liệu – RAM disk được chia làm nhiều khối tùy theo dung lượng yêu cầu cấp phát. Mỗi khối cĩ cùng kích thước với khối trên đĩa – Khi nhận được chỉ thị đọc/ghi các khối, driver tìm trong bộ nhớ RAM disk vị trí của khối, thực hiện đọc/ghi ngay trong vùng nhớ – RAM disk truy xuất nhanh hơn đĩa vật lý – HĐH phải lưu dữ liệu vào đĩa cứng trước khi người dùng shutdown Ng Duc Thu an 204 Chương 6: Quản lý xuất /nhập • Interleave – Khoảng cách giữa các sector dùng để đồng bộ chức năng đọc/ghi dữ liệu trên đĩa. – Interleave được xác định trong quá trình format đĩa VD: đĩa cĩ 17 sector/track, interleave=4, sơ đồ sector như sau: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, 5 Lần 1: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, 5 Lần 2: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, 5 Lần 3: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, 5 Lần 4: 1, 14, 10, 6, 2, 15, 11, 7, 3, 16, 12, 8, 4, 17, 13, 9, 5 Ng Duc Thu an 205 Chương 6: Quản lý xuất /nhập • Cài đặt hệ thống nhập xuất chuẩn (terminal) – Terminal là hệ thống nhập xuất (chỉ cĩ bàn phím, màn hình và bộ điều hợp dữ liệu vào ra) – Terminal chuyển dữ liệu Một máy tính cĩ thể liên lạc với nhiều terminal – HĐH chia terminal thành 2 loại: RS-232 và ánh xạ bộ nhớ – RS-232: hard-copy, glasstty, Intelligent, blit – Ánh xạ bộ nhớ: ký tự, bit Ng Duc Thu an 206 Chương 6: Quản lý xuất /nhập • Các terminal RS-232 – Thiết bị giao tiếp tuần tự theo bit với bàn phím, màn hình... – Connector 25 pins: mass, receiver, sender, 22 reserved pins – Data package: start bit-data to be tranfered-end bit(s) – Tốc độ chuyển:1200, 2400, 4800, 9600 bps (bit per second) – Sử dụng bộ chuyển UART gắn trên card giao tiếp – Hard-copy/glassttys: nhập ký tự từ bàn phím, huyển cho máy tính, xuất ra máy in/màn hình – Terminal Intelligent: gửi ký tự ASCII ESC sau những ký tự khác nhau để di chuyển con trỏ trên màn hình – Blit: bộ xử lý mạnh với màn hình độ phân giải 1024x800 Ng Duc Thu an 207 Chương 6: Quản lý xuất /nhập • Các terminal ánh xạ bộ nhớ – Giao tiếp với máy tính bằng video RAM (khơng dùng cổng serial) – Chip điều khiển trên video card lấy thơng tin từ video RAM, tạo ra tín hiệu video để điều khiển màn hình – Màn hình tạo tia điện tử quét từ trên xuống dưới. – Bộ điều khiển tín hiệu sẽ xác định mỗi điểm (pixel) là sáng hay tối (đối với màn hình mono), màu gì (màn hình màu) – Text mode (mono $B000, màu $B800): 2000 ký tự 2 byte (thuộc tính-chữ), box 9x14, bố trí trên 25 dịng, 80 cột. Graphic mode ($A000): độ phân giải 320x200, 640x480, 800x600, 1027x768... pixels Ng Duc Thu an 208 Chương 6: Quản lý xuất /nhập • Phần mềm nhập cho terminal – Dữ liệu nhập từ bàn phím, chuyển cho ứng dụng – Khi cĩ phím nhấn, ngắt bàn phím báo cho bộ điều khiển biết cĩ ký tự nhập đang lưu trữ trong buffer của bộ nhớ chính. Bộ điều khiển sẽ ánh xạ lại mã ASCII của ký tự phím nhấn – Cĩ 2 dạng buffer bàn phím: pool buffer, structred buffer – Một số terminal cần phần mềm echoing điều khiển hiển thị ký tự gõ: mật khẩu, tab, backspace, line feed, carriage return... Ng Duc Thu an 209 Chương 6: Quản lý xuất /nhập • Phần mềm xuất cho terminal – Mỗi loại terminal sử dụng phần mềm xuất khác nhau – Terminal RS-232 sử dụng pool buffer chứa dữ liệu xuất: các ký tự được xuất tuần tự theo các tín hiệu ngắt – Terminal ánh xạ: các ký tự được xuất 1 lần từ video RAM. Các ký tự đặc biệt (backspace, bell, cr, lf...) được cập nhật cho phù hợp. – Các chức năng của phần mềm soạn thảo màn hình terminal: di chuyển con trỏ, chèn xĩa ký tự/dịng, cuộn màn hình lên xuống, tạo hiệu ứng (tương phản, gạch dưới, nhấp nháy...), tạo/hủy/di chuyển/quản trị cửa sổ... Ng Duc Thu an 210 Chương 6: Quản lý xuất /nhập • Cài đặt đồng hồ (timer) – Timer là thiết bị phần cứng đặc biệt, khơng thuộc thiết bị khối (vd đĩa) hay thiết bị tuần tự (vd bàn phím, màn hình). – Chức năng chính của timer • Kiểm sốt thời gian trong ngày • Phân chia thời gian chia xẻ cho các tiến trình sử dụng CPU – Phần mềm đồng hồ hoạt động như device driver Ng Duc Thu an 211 Chương 6: Quản lý xuất /nhập • Phần cứng đồng hồ: – Dạng 1: sử dụng điện thế 110/220v, tạo ngắt theo mỗi chu kỳ hiệu điện thế 50/60 MHz – Dạng 2: bộ dao động thạch anh, bộ đếm và bộ thanh ghi • Dưới tác dụng của dịng diện, tinh thể thạch anh tạo ra dao động 5-100 MHz, chuyển cho bộ đếm • Bộ đếm giảm dần sau mỗi dao động, tạo ngắt khi Counter=0. Bộ thanh ghi sẽ nạp lại giá trị cho bộ đếm • Khi ngắt đồng hồ kích hoạt, HĐH sẽ thực hiện trình xử lý ngắt của nĩ Ng Duc Thu an 212 Chương 6: Quản lý xuất /nhập Phần mềm đồng hồ – Phần cứng đồng hồ tạo các ngắt theo từng khoảng thời gian đều đặn – Phần mềm (driver) đồng hồ có nhiệm vụ: Quản lí thời gian trong ngày Không cho phép tiến trình chạy lâu hơn thời gian cho phép Điều phối kế họach sử dụng CPU Cung cấp watchdog timer cho hệ thống Ng Duc Thu an 213 Chương 6: Quản lý xuất /nhập • Quản lý thời gian trong ngày – Tăng bộ đếm sau mỗi nhịp đồng hồ. – Vấn đề lưu ý : Kích thước bộ đếm – Các loại bộ đếm: • Bộ đếm nhịp 32 bits: dao động 60MHz bị tràn sau 2 năm • Bộ đếm 64 bits: tốn kém • Bộ đếm giây 32 bits: 232 lưu được 136 năm • Bộ đếm nhịp liên hệ với thời gian khởi động của hệ thống Ng Duc Thu an 214 Chương 6: Quản lý xuất /nhập • Quản lý thời gian chạy của tiến trình – Khi một tiến trình bắt đầu, bộ lập lịch sẽ khởi tạo giá trị cho bộ đếm. – Giá trị này giảm dần sau mỗi ngắt đồng hồ – Counter=0, thời gian chạy của tiến trình kết thúc. Bộ điều khiển đồng hồ sẽ yêu cầu bộ lập lịch thiết lập giá trị cho tiến trình khác • Điều phối kế họach sử dụng CPU – Sử dụng timer cục bộ cho từng tiến trình – Khởi tạo, kích hoạt timer khi tiến trình bắt đầu – Dừng timer khi tiến trình kết thúc Ng Duc Thu an 215 Chương 6: Quản lý xuất /nhập • Cung cấp watchdog timer – Một số thiết bị nhập xuất cần đo thời gian đạt đến trạng thái sẵn sàng hoạt động VD: Sau 500 ms từ lúc khởi động, ổ đĩa mềm mới đạt được tốc độ cần thiết cho các tác vụ truy xuất – Watchdog timer đếm thời gian cho các thiết bị nhập xuất VD: Khơng tắt motor ổ đĩa mềm, chờ các thao tác nhập xuất tiếp theo. Quá thời gian khơng cĩ yêu cầu truy xuất, tắt motor.
File đính kèm:
- Nguyên lý hệ điều hành - Nguyễn Đức Thuần.pdf