Bộ vi điều khiển có thể phục vụ được rất nhiều thiết bị (tất nhiên là không tại cùng một thời điểm). Mỗi thiết bị có thể nhận được sự chú ý của bộ vi điều khiển dựa trên mức ưu tiên được gán cho nó. Đối với phương pháp thăm dò thì không thể gán mức ưu tiên cho các thiết bị vì nó kiểm tra tất cả mọi thiết bị theo kiểu hỏi vòng. Quan trọng hơn, trong phương pháp ngắt thì bộ vi điều khiển còn có thể che (làm lơ) một yêu cầu phục vụ của thiết bị. Điều này lại một lần nữa không thể thực hiện được trong phương pháp thăm dò. Lý do quan trọng nhất mà phương pháp ngắt được ưu chuộng là vì nó không lãng phí thời gian cho các thiết bị không cần phục vụ. Còn phương pháp thăm dò làm lãng phí thời gian của bộ vi điều khiển bằng cách hỏi dò từng thiết bị kể cả khi chúng không cần phục vụ.
Nhược điểm của phương phát dùng ngắt là: Xử lý một số lượng lớn các yêu cầu gặp nhiều hạn chế do số lượng ngắt trên vi xử lý có hạn đồng thời kế hoạch phục vụ các yêu
cầu có độ ưu tiên khác nhau rất khó khăn nhiều khi có những yêu cầu xảy ra đồng thời bị bỏ qua (không được phục vụ).
Câu 44. Kiến trúc lập lịch dòng chức năng (FQS)?
Kiến trúc lập lịch dòng chức năng (FQS)
Đây là kiến trúc thô sơ của kiến trúc hệ điều hành mà chúng ta đang sử dụng cho máy tính đa năng mà chúng ta đang sử dụng. Tất cả các yêu cầu được đặt vào hàng đợi và mỗi một yêu cầu có một mức độ ưu tiên nhất định. Vi xử lý sẽ tuỳ theo cơ chế lập lịch để phục vụ những yêu cầu nào trước. Có rất nhiều các cơ chế lập lịch chỉ liệt kê tên không thể nói hết ở đây chi tiết bạn hỏi google nhá.
1. Lập lịch ưu tiên thứ tự trước sau: (đến trước phục vụ trước)
2. Lập lịch ưu tiên theo độ ưu tiên (ai có độ ưu tiên cao hơn được phục vụ trước) 3. Lập lịch ưu tiên những yêu cầu đơn giản trước (tốn ít thời gian
thực hiện trước)
4. Lập lịch giả song song (mỗi yêu cầ được phục vụ một thời gian ngắn rồi quay lại phục vụ tiếp sau khi phục vụ thiết bị khác).
Còn 2 cơ chế nữa nhưng khớ tên.
- Ưu nhược điểm: ưu điểm của kiến trúc này là tất cả các yêu cầu đều được phục vụ, không có một yêu cầu nào được bỏ qua nhưng không đánh giá được yêu cầu nào phải thực hiện bao nhiêu thời gian, tốn bao nhiêu tài nguyên ( việc này hệ điều hành thời gian thực sẽ đáp ứng)
Câu 45: Kiến trúc hệ điều hành thời gian thực (RTOS)?
- Hệ điều hành thời gian thực – RealTime Operating Systems(RTOS), là phần mềm điều khiển chuyên dụng thường được dùng trong những ứng dụng điện toán nhúng có tài nguyên bộ nhớ hạn chế và yêu cầu ngặt nghèo về thời gian đáp ứng tức thời, tính sẵn sàng cao và khả năng tự kiểm soát một cách chính xác. Công nghệ đa nhiệm:
mỗi quá trình có một không gian bộ nhớ riêng, các quá trình phải được chia nhỏ thành các Thread cùng chia sẻ không gian bộ nhớ. Các dịch vụ cung cấp bởi hạt nhân: tạo và kết thúc quá trình/tác vụ, truyền thông điệp giữa các quá trình, một số các dịch vụ cung cấp hỗ trợ việc thực thi liên quan đến điều khiển hệ thống.
Khác biệt so với các kiến trúc khác:
• Quá trình điều khiển giữa các chu trình ngắt và mã nguồn thực thi tác vụ được quản lý bởi RTOS ( không cần dùng các biến chia sẻ)
• RTOS quyết định lập lịch các tác vụ thay vì dùng một vòng lặp chính để quyết định xem là tiếp theo là thực thi tác vụ gì hoặc ngắt gì
• RTOS có thể tạm dừng một tác vụ đang thực thi để thực thi tác vụ khác Hệ thống điều hành với phần lõi là hạt nhân phải đảm nhiệm các tác vụ chính như sau:
• Xử lý ngắt
Lưu trữ ngữ cảnh chương trình tại thời điểm xuất hiện ngắt Nhận dạng và lựa chọn đúng bộ xử lý và phục vụ dịch vụ ngắt
• Điều khiển quá trình
Tạo và kết thúc quá trình/tác vụ
Lập lịch và điều phối hoạt động hệ thống Định thời
• Điều khiển ngoại vi Xử lý ngắt
Khởi tạo giao tiếp vào ra
Câu 46: Ưu điểm và nhược điểm của kiến trúc RR?
Round-robin là kiến trúc hệ thống nhúng đơn giản nhất. Nó không có các ngắt. Thực hiện theo một vòng lặp tuần tự để kiểm tra các thiết bị vào/ra cần thực hiện hoặc các dịch vụ cần phục vụ. Không cần quan tâm đến biến chia sẻ và độ trễ. Ví dụ: đồng hồ đo điện: chỉ đơn giản là dựa theo vị trí của thang đo được chọn, đo dòng điện từ 2 que đo và hiển thị trên màn hình LCD (một vòng lặp vô hạn và duyệt tuần tự các trường hợp theo thang đo). Bởi vì có những nhược điểm như bên dưới nên hệ thống này chỉ thích hợp với các thiết bị rất đơn giản.
Nhược điểm:
- Nếu một thiết bị cần phải có thời gian đáp ứng trong một khoảng thời gian xác định thì hệ thống này không đáp ứng được
- Nếu có quá nhiều trường hợp cần duyệt thì hệ thống sẽ rất chậm - Nếu mã nguồn thay đổi thì kiến trúc này rất dễ bị ảnh hưởng.
Câu 47: Ưu điểm và nhược điểm của kiến trúc RRI?
- Trong kiến trúc này, các thiết bị phần cứng cần có các chu trình ngắt được thực hiện với độ ưu tiên cao. Các chu trình ngắt đặt các cờ để chỉ dẫn các ngắt xẩy ra. Vòng lặp chính sẽ kiểm tra các cờ ngắt này và thực thi các chu trình xử lý theo giá trị của cờ. Tất cả các chu trình được đưa vào ISR sẽ có độ ưu tiên hơn là các tác vụ. Kiến trúc này cho phép điều khiển bởi độ ưu tiên vì vậy bộ xử lý có thể dừng vòng lặp tác vụ và xử lý các ngắt.
Ưu điểm:
- Điều khiển dễ dàng hơn nhờ dùng độ ưu tiên: trong đó các chu trình xử lý thiết bị thì có cùng độ ưu tiên và bộ xử lý có thể dừng vòng lặp chính để thực thi các ngắt với độ ưu tiên cao.
- Độ ưu tiên của các ngắt cao nên cho phép dừng tác vụ đang thực hiện và yêu cầu chu trình thực hiện ngắt (nên) ngắn cho phù hợp với các thiết bị đơn giản có không gian nhớ nhỏ.
Nhược điểm:
- Phức tạp hơn vòng lặp Round-robin
- Vấn đề lưu trữ và khôi phục dữ liệu bên trong chu trình ngắt trở nên cần thiết khi mà số lượng thanh ghi là nhỏ
- Vấn đề chia sẻ dữ liệu: do quá trình gỡ lỗi là phức tạp. Vấn đề về độ trễ vẫn còn tồn tại (thực thi một tác vụ vẫn phải chờ vòng lặp duyệt qua các trường hợp để tìm đến tác vụ thích hợp).
Câu 48: Ưu điểm và nhược điểm của kiến trúc FQS?
- Trong kiến trúc này, chu trình ngắt đưa một con trỏ hàm trỏ tới một hàng đợi các hàm. Vòng lặp chính đơn giản là dequeue lấy ra con trỏ ở đầu queue và gọi hàm ở địa chỉ mà con trỏ trỏ tới. Không cần thiết phải gọi các hàm theo thứ tự xẩy ra mà có thể sắp xếp theo độ ưu tiên của các con trỏ hàm (bất kỳ tác vụ nào cần thời gian đáp ứng nhanh hơn thì có thể được thực thi trước). Việc này được thực thi bằng cách là thay đổi một số mã nguồn để sắp xếp lại danh sách các con trỏ hàm.
- Cho phép thực thi các chu trình ngắt theo thứ tự ưu tiên và nếu không có ngắt trong hàng đợi thì không tốn thời gian duyệt qua các ngắt như trong Round-robin hay Round- robin with Interrupts.
Nhược điểm:
- Trường hợp xấu nhất là thời gian thực thi tác vụ có độ ưu tiên cao nhất (bởi vì các ngắt chỉ được thêm vào hàng đợi nên phải chờ cho đến khi thực thi xong tác vụ hiện tại).
- Tác vụ có độ ưu tiên thấp có thể không bao giờ được thực thi và dẫn đến thời gian phản hồi chậm vì các tác vụ có độ ưu tiên cao được thực thi liên tiếp(nếu mà tác vụ có độ ưu tiên thấp này có thời gian thực thi lâu thì sẽ ảnh hưởng đến thời gian phản hồi của các tác vụ có độ ưu tiên cao hơn).
Câu 49: Ưu điểm và nhược điểm của kiến trúc RTOS?
- RTOS là một kiến trúc tốt hơn các hệ điều hành nhúng khác vì nó có thể đáp ứng các yêu cầu ràng buộc về thời gian (ràng buộc thời gian cứng – không cho phép thời gian xử lý chậm và ràng buộc thời gian mềm – cho phép xử lý chậm trong một lân cận nào đó), chịu lỗi cao và cho phép xử lý đa nhiệm (định danh tiến trình và độ ưu tiên - thông qua một số phương thức: semaphores, mailbox, queue...).
Ưu điểm:
- Thay đổi bất kỳ tác vụ nào trong Round Robin hoặc lập lịch theo hàng đợi đều có một nhược điểm là ảnh hưởng đến tổng thể toàn bộ các tác vụ.
- Thay đổi tới tác vụ có độ ưu tiên thấp hơn trong RTOS không ảnh hưởng đến thời gian đáp ứng của các tác vụ có độ ưu tiên cao hơn.
- RTOS được sử dụng rộng rãi và là giải pháp thật sự cần thiết cho các hệ thống yêu cầu ràng buộc về thời gian đáp ứng (ràng buộc thời gian cứng, mềm)
Nhược điểm:
- RTOS cần thêm một số thời gian để xử lý các thông tin về tác vụ trước và sau khi đưa nó vào xử lý trong CPU nên hiệu suất sử dụng bị ảnh hưởng (do yêu cầu tính ràng buộc về thời gian nên độ phức tạp cao và xử lý cần đảm bảo độ an toàn). Chi phí cao khi mua các sản phẩm thương mại.
Câu 50: Việc lựa chọn kiến trúc phần mềm nhúng được thực hiện như thế nào?
- Tiêu chí lựa chọn chính là chọn ra kiến trúc đơn giản nhất mà phù hợp với các yêu cầu về thời gian đáp ứng, xử lý của hệ thống nhúng. Nếu hệ thống yêu cầu ràng buộc thời gian là quan trọng thì cần phải mua RTOS bởi vì nó là hệ điều hành tiêu chuẩn để xử lý
pháp lai giữa các kiến trúc. Tác vụ chính thì không cần các thiết bị có thể xử lý nhanh (độ trễ chấp nhận được để giảm chi phí), trong khi các thiết bị ngắt thì yêu cầu phần cứng phải xử lý nhanh (độ trễ rất nhỏ, chấp nhận chi phí cao).
Hệ điều hành Độ ưu tiên Thời gian thực thi tác vụ xấu nhất
Độ ổn định Tính đơn giản
Round-robin Không Tổng thời gian thực hiện tất cả các tác vụ
Kém Rất đơn giản Round-robin với các ngắt Ngắt theo thứ tự độ ưu tiên, tất cả các tác vụ có cùng độ ưu tiên
Tổng thời gian thực thi tất cả các tác vụ (cộng với thời gian thực thi chu trình ngắt) Tốt cho chu trình ngắt, kém cho thực thi tác vụ Vấn đề chia sẻ dữ liệu giữa chu trình ngắt và tác vụ Lập lịch theo hàng đợi Ngắt theo thứ tự độ ưu tiên, sau đó các tác vụ cũng thực hiện theo độ ưu tiên
Thời gian thực thi cho chức năng lâu nhất (cộng với thời gian thực thi chu trình ngắt)
Khá tốt Vấn đề chia sẻ dữ liệu và phải viết mã nguồn hàng đợi chức năng Hệ điều hành thời gian thực Ngắt theo thứ tự độ ưu tiên, sau đó các tác vụ cũng thực hiện theo độ ưu tiên
Xấp xỉ 0 (cộng với thời gian thực thi chu trình ngắt) Rất tốt Rất phức tạp (mặc dù độ phức tạp chủ yếu là ở trong bản thân hệ điều hành)
Câu 51. Hệ điều hành thời gian thực (RTOS) là gì? Hãy nêu các ví dụ.
Hệ điều hành thời gian thực là hệ điều hành đa nhiệm dành cho những ứng dụng thời gian thực. Những ứng dụng này bao gồm hệ thống nhúng, robot công nghiệp, hệ thống điều khiển công nghiệp hay các phương tiện nghiên cứu khoa học. Đây là những phần mềm điều khiển chuyên dụng thường được dùng trong những ứng dụng điện toán nhúng có tài nguyên bộ nhớ hạn chế và yêu cầu ngặt nghèo về thời gian đáp ứng tức thời, tính sẵn sàng cao và khả năng tự kiểm soát một cách chính xác.
Một vài ví dụ về hệ điều hành thời gian thực: Adeos, ART Linux, ChorusOS, eCos, ELinOS, FreeRTOS, iRmx, ITRON, Linux, LynxOS, MicroC/OS-II, Nucleus, OS-9, OSE, OSEK/VDX, pSOS, PikeOS, QNX, RedHawk, RSX-11, VxWorks, Windows CE, Xenomai.
Câu 52. Các khái niệm tác vụ (nhiệm vụ), công việc, trạng thái tác vụ, dữ liệu? Tác vụ (nhiệm vụ): Là một công việc cần thực thi tham gia trong hệ thống.
Các tác vụ phải thực hiện lặp lại một cách đều đặn theo những khoảng thời gian p được gọi là các tác vụ có chu kỳ và p được gọi là chu kỳ của tác vụ. Các loại tác vụ khác thì được gọi là tác vụ không chu kỳ.
Trạng thái tác vụ: Mỗi tác vụ trong RTOS luôn luôn ở một trong ba trạng thái chính: - Running: Với ý nghĩa bộ xử lý đang thực hiện tác vụ. Với một bộ xử lý thì chúng ta
chỉ chạy một tác vụ tại một thời điểm nhất định.