Trình Điều khiển thiết bị Thay đổi theo từng bo mạch có thể mô hình cho phần cứng lẫn phần mềm BXL chính: chức năng đặc biệt Bộ nhớ - quản lý bộ nhớ Khởi động BUS và giao tác
Trang 2Nội dung
Trình điều khiển thiết bị
Trang 3Trình Điều khiển thiết bị
Trang 4Trình Điều khiển thiết bị
Trang 5Trình Điều khiển thiết bị
Thay đổi theo từng bo mạch
có thể mô hình cho phần cứng lẫn phần mềm
BXL chính: chức năng đặc biệt
Bộ nhớ - quản lý bộ nhớ
Khởi động BUS và giao tác
Khởi tạo và điều khiển I/O: mạng, đồ họa, thiết bị
Trang 6Trình Điều khiển thiết bị
Kiến trúc đặc biệt
Quản lý phần cứng được tích hợp vào BXL chính
Bộ nhớ trong, quản lý bộ nhớ tích hợp (MMU), phần cứng tính số thực động
Kiến trúc tổng quát
Trang 7Trình Điều khiển thiết bị
Kiến trúc tổng quát
Quản lý phần cứng tích hợp vào bo mạch
Các phần kiến trúc đặc biệt theo mã tùy thuộc vào BXL (CPU) do mọi xử lý đều thông qua CPU
Quản lý bo mạch: không phụ thuộc vào BXL cụ thể nào
Æ có thể cấu hình cho các kiến trúc khác nhau
Bao gồm mã khởi tạo và quản lý tới các thành phần
khác của bo mạch:
BUS của bo: I2C, PCI, PCMCIA, …
Bộ nhớ ngoài chip: trình điều khiển, cache mức 2, Flash, …
Trang 8Trình Điều khiển thiết bị
Trang 9Trình Điều khiển thiết bị
Dù cho bất kỳ loại phần cứng, các trình điều khiển thiết bị đều có tất cả hoặc vài tổ hợp các chức năng sau:
Khởi tạo (Startup): mở hay reset lại
Kết thúc (Shutdown): cấu hình phần cứng trạng thái tắt nguồn
Ẩn (Disable): cho phép phần mềm ẩn thiết bị
Cho phép (Enable): cho phép phần cứng hoạt động
Khóa (Acquire): cho phép sử dụng đơn (locking)
Giải phóng (Release): cho phép giải phóng phần cứng (unlock)
Đọc (Read): đọc dữ liệu từ phần cứng
Ghi (Write): ghi dữ liệu tới phần cứng
Cài đặt (Install): cho phép cài đặt phần cứng
Gỡ bỏ (Uninstall): cho phép “loại bỏ” phần cứng đã cài
Trang 10Trình Điều khiển thiết bị
3 trạng thái mà phần cứng có thể tồn tại
không hoạt động (inactive)
Thiếu kết nối (disconnect): cần cài đặt
Không có nguồn: cần khởi động
Ẩn (disable): cần cho phép hoạt động (enable)
Bận (busy)
Đang bận xử lý vài kiểu dữ liệu
Yêu cầu vài kiểu, cơ chế “giải phóng”
Kết thúc thực hiện (finished)
Trạng thái đã kết thúc các công việc Đang rảnh
Cho phép: khóa, đọc, ghi,…
Trang 11Phần hệ thống Phần điều khiển thiết bị
Trình Điều khiển thiết bị
Giao tiếp trực tiếp với phần cứng và mức cao
Phần cứng
Phần mềm Ứng dụng
Giao tiếp thiết bị
Giao tiếp mức cao
Giao tiếp thiết bị Giao tiếp mức cao
Trang 12Trình Điều khiển thiết bị
Phụ thuộc BXL chính, các kiểu khác nhau
của phần mềm có thể thực thi trong các chế
Trang 13Trình điều khiển thiết bị
Trình Điều khiển-xử lý ngắt
Trình điều kiển thiết bị nhớ
Trình điều khiển BUS
Trình điều khiển IO
Trang 15Trình Điều khiển: xử lý ngắt
Ngắt là tín hiệu được kích hoạt bởi vài sự kiện qua
đó thực thi luồng chỉ thị bởi BXL chính
Trang 16Xử lý ngắt: các tác vụ
Các phần mềm xử lý ngắt và cơ chế xử lý ngắt cứng, bao gồm trình điều khiển có ít nhất 4 tác vụ trong các hoạt đ6ọng sau
Cho phép phần mềm “cấm” hoạt động xử lý ngắt Ngoại trừ các ngắt
NMI (Non-Maskable Interrupts)
Cho phép ngắt
Cho phép hoạt động trở lại xử lý ngắt đã ẩn
“Bảo dưỡng” bộ ngắt (Servicing)
Nội tại mã xử lý ngắt được thực thi sau khi gián đoạn luồng thực thi chính Æ tăng tính phức tạp, các khả trình lồng vào nhau
Trang 17Xử lý ngắt: các tác vụ
Các tác vụ hiện thực ra sao phụ thuộc vào
các tiêu chuẩn sau
Kiểu, số, mức ưu tiên của các ngắt sẵn sàng
Xác định bởi cơ chế phần cứng ngắt trong chip hoặc bo mạch
Ngắt được kích hoạt ra sao
Chính sách ngắt của các thành phần bên trong hệ thống mà các ngắt được kích hoạt và dịch vụ
cung cấp bởi BXL chính
Trang 18 IRQ (Interrupt Request Level)
Kích hoạt bởi cạnh hoặc mức
Trang 19Xử lý ngắt: các dạng ngắt
Trang 21Xử lý ngắt: Chuyển ngữ cảnh
Khi ngắt xảy ra
Dừng chương trình hiện thời
Chuyển sang thực thi “interrupt service routine
(ISR)” hay bộ xử lý ngắt
Ngắn, nhanh
Các dịch vụ cho trình điều khiển
enabling/disabling
Trang 22Xử lý ngắt: ví dụ
[1] p323
Trang 23Trình Điều khiển: thiết bị nhớ
Trang 25Thiết bị nhớ:
Thường lưu trữ theo khối
Phân trang (pages), phân đoạn (segment)
Trang 26Thiết bị nhớ: ví dụ
[1] p334
Trang 27Trình Điều khiển: BUS
Các thao tác
Ví dụ
Khởi tạo I2C
Trang 28BUS: các tác vụ
Giao thức truy xuất thiết bị như thế nào
Luật gắt kết thiết bị kèm theo truyền thông qua
BUS: cơ chế bắt tay
Tín hiệu kết hợp các đường trên BUS
Trang 30BUS: ví dụ
[1] p352
Trang 33IO: ví dụ
[1] p354
Trang 34Hệ điều hành nhúng
Tiến trình là gì ?
Quản lý đa nhiệm và tiến trình
Oses và các gói hỗ trợ bo mạch (BSPs)
Trang 35Hệ điều hành nhúng (OSes)
Trang 36Hệ điều hành nhúng (OSes)
Trang 37Hệ điều hành nhúng (OSes)
Mối quan hệ với các hệ con
Trang 38Hệ điều hành nhúng (OSes)
Mối quan hệ với các hệ con
Trang 39Hệ điều hành nhúng (OSes)
Mối quan hệ với các hệ con
Trang 44Hệ điều hành nhúng (OSes)
Mối quan hệ với các hệ con
Trang 45Tiến trình là gì
MultiTask
Trang 46Tiến trình là gì
Trang 48Quản lý đa nhiệm và tiến trình
Hiện thực tiến trình
Ví dụ
Lập lịch tiến trình
Truyền thông-đồng bộ giữa các tiến trình
I/O và hệ thống quản lý tập tin
Trang 49Tiến trình: hiện thực
Trang 50Lập lịch tiến trình
Ưu tiên (Priority/Preemptive)
Trang 51Truyền thông-đồng bộ giữa các
Trang 52 Không gian bộ nhớ nhân OS
Trang 54Chuẩn cho OS: POSIX
[1] p437
Trang 55Hiệu năng
Throughput
Execution time
Wait time
Trang 56Oses và các gói hỗ trợ bo mạch
(BSPs)
Trang 57Middleware và các phần mềm ứng dụng
MiddleWare là gì ?
Trang 58Q/A