1 Giới thiệu ............................................................................................................ 4 2 Hệ điều hành nhúng ............................................................................................ 4 2.1 Yêu cầu chung đối với hệ điều hành nhúng ................................................. 4 2.1.1 Các định nghĩa ......................................................................................... 4 2.1.2 Yêu cầu chung ......................................................................................... 5 2.2 Hề điều hành thời gian thực ......................................................................... 6 2.3 Máy ảo ......................................................................................................... 7 3 Các phương thức truy cập tài nguyên ................................................................. 8 3.1 Đảo ngược ưu tiên........................................................................................ 8 4 ERIKA .............................................................................................................. 15 5 Linux cho thiết bị nhúng (Embedded Linux) ................................................... 17 5.1 Cấu trúc và kích thước Linux nhúng ......................................................... 18 5.2 Thuộc tính thời gian thực ........................................................................... 19 5.3 Hệ thống tập tin bộ nhớ flash ..................................................................... 20 5.4 uClinux: Linux dành cho các hệ thống ít MMU ........................................ 21 6 Lớp trừu tượng phần cứng (Hardware Abstraction Layer HAL) ................... 23 7 Phần mềm trung gian (Middleware) ................................................................. 23 8 Cơ sở dữ liệu thời gian thực (RealTime Databases) ....................................... 23 9 Kết luận ............................................................................................................. 23 10 Tài liệu tham khảo ............................................................................................ 24
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trần Hồng Quân – 21020452 HỆ THỐNG PHẦN MỀM BÊN TRONG THIẾT BỊ NHÚNG BÀI TẬP CUỐI KỲ CÁC VẤN ĐỀ HIỆN ĐẠI CỦA KỸ THUẬT MÁY TÍNH Ngành: Kỹ Thuật máy tính HÀ NỘI – 2023 Mục lục Giới thiệu Hệ điều hành nhúng 2.1 Yêu cầu chung hệ điều hành nhúng 2.1.1 Các định nghĩa 2.1.2 Yêu cầu chung 2.2 Hề điều hành thời gian thực 2.3 Máy ảo Các phương thức truy cập tài nguyên 3.1 Đảo ngược ưu tiên ERIKA 15 Linux cho thiết bị nhúng (Embedded Linux) 17 5.1 Cấu trúc kích thước Linux nhúng 18 5.2 Thuộc tính thời gian thực 19 5.3 Hệ thống tập tin nhớ flash 20 5.4 uClinux: Linux dành cho hệ thống MMU 21 Lớp trừu tượng phần cứng (Hardware Abstraction Layer - HAL) 23 Phần mềm trung gian (Middleware) 23 Cơ sở liệu thời gian thực (Real-Time Databases) 23 Kết luận 23 10 Tài liệu tham khảo 24 Danh mục hình ảnh Hình ảnh 1.1 Luồng thơng tin thiết kế đơn giản hóa Hình ảnh 3.1 Kế thừa ưu tiên 11 Hình ảnh 3.2 Ưu tiên lồng vùng quan trọng 11 Hình ảnh 3.3 Tính bắc cầu kế thừa ưu tiên 12 Hình ảnh 3.4 Kế thừa ưu tiên gây bế tắc 12 Hình ảnh 3.5 Khóa giao thức trần ưu tiên 13 Hình ảnh 5.1 Cấu trúc hệ thống dựa Linux điển hình 18 Hình ảnh 5.2 So sánh kích thước cấu hình libc Linux khác 19 Hình ảnh 5.3 Cấu trúc nội dung inode JFFS2 21 Hình ảnh 5.4 Thay đổi flash ghi liệu vào JFFS2 21 Giới thiệu Trong thời đại nay, việc sử dụng thiết bị nhúng ngày phổ biến phức tạp hơn, đặt nhiều yêu cầu phần mềm bên chúng Bài luận phân tích yêu cầu hệ điều hành nhúng, bao gồm khả xử lý thời gian thực kỹ thuật thích ứng để đáp ứng chức quan trọng Ngoài ra, luận tập trung vào phương pháp để quản lý tài nguyên, đặc biệt việc quản lý truy cập ưu tiên tài nguyên, vấn đề cốt lõi ảnh hưởng đến hiệu suất hệ thống thời gian thực Các giao thức đề cập bao gồm kế thừa ưu tiên, trần ưu tiên giao thức tài nguyên ngăn xếp Đồng thời, luận xem xét hệ thống thời gian thực ERIKA cách mà Linux thích ứng với hệ thống có tài nguyên hạn chế Cuối cùng, số phần mềm bổ sung lớp phần cứng trừu tượng (HAL) phần mềm giao tiếp thời gian thực đề cập để làm tăng tính tái sử dụng linh hoạt thiết bị nhúng Hệ điều hành nhúng phần mềm trung gian thảo luận phần khơng thể thiếu q trình thiết kế thiết bị nhúng (hình ảnh đây) Hình ảnh 1.1 Luồng thơng tin thiết kế đơn giản hóa Hệ điều hành nhúng 2.1 Yêu cầu chung hệ điều hành nhúng 2.1.1 Các định nghĩa Đối với thiết bị nhúng phức tạp thiết bị vào ra, lập lịch chuyển cảnh, việc sử dụng hệ điều hành phù hợp quan trọng Khi chuyển từ việc thực thi đối tượng mã sang đối tượng mã khác, ta thực chuyển đổi ngữ cảnh Để làm điều này, xử lý ghép kênh chuyển đổi ngữ cảnh cho đối tượng mã có xử lý riêng Trong ngữ cảnh này, cần phải phân biệt luồng tiến trình Định nghĩa 2.1: Tiến trình chương trình hoạt động, tức chương trình thực thi Tiến trình khơng code chương trình bao gồm program counter (bộ đếm chương trình), process stack, register, code chương trình, v.v Định nghĩa 2.2: Luồng chương trình thực thi sử dụng không gian địa chương trình khác, tiến trình gọn nhẹ quản lý độc lập lập lịch Các tiến trình thường bảo vệ nhớ, gây ảnh hưởng đến vùng nhớ tiến trình khác Tuy nhiên, trình chuyển đổi ngữ cảnh, việc điều chỉnh thơng tin dịch địa cần thiết, điều kèm với số chi phí Trong đó, vấn đề bảo vệ nhớ không tồn luồng, đặc biệt luồng chia sẻ không gian địa thường tương tác thông qua nhớ dùng chung Chuyển đổi ngữ cảnh cho luồng thường nhanh so với tiến trình Nếu có không gian địa nhất, không cần phải phân biệt luồng tiến trình Trong thực tế, hệ điều hành cần cung cấp phương thức liên lạc đồng hóa cho luồng tiến trình Điều giúp quản lý truy cập đến tài nguyên chung, nhớ, đảm bảo việc giao tiếp chúng diễn cách an toàn hiệu [1] 2.1.2 Yêu cầu chung - Hướng đối tượng: kỹ thuật cho phép tạo đối tượng trừu tượng hóa Ví dụ sử dụng kỹ thuật để lập lịch cho tiến trình rút lập lịch cho tính cụ thể Tuy nhiên cách tiếp cận yêu cầu số yêu cầu thêm - Lập trình hướng đối tượng theo khía cạnh: với cách tiếp cận này, khía cạnh trực giao phần mềm mơ tả độc lập sau thêm tự động vào tất phần có liên quan mã chương trình Ví dụ: số mã để lập hồ sơ mơ tả mơ-đun Biên dịch có điều kiện: Có khả xử lý điều kiện tiền xử lý #if #ifdef - Đánh giá thời gian biên dịch nâng cao: thực cách xác định giá trị không thay đổi biến trước trình biên dịch diễn hệ điều hành Các giá trị truyền trực tiếp cho trình biên dịch để tối ưu hóa q trình biên dịch nhanh chóng Tối ưu hóa trình biên dịch áp dụng, chẳng hạn việc loại bỏ tham số không thay đổi từ danh sách tham số chúng không ảnh hưởng đến chức cụ thể Điều giúp tối ưu hóa q trình biên dịch tạo mã máy hiệu - - Loại bỏ chức không sử dụng dựa trình liên kết: Tại thời điểm liên kết, có nhiều thơng tin chức sử dụng không sử dụng so với giai đoạn trước Ví dụ: trình liên kết tìm chức thư viện sử dụng Các chức thư viện không sử dụng bị loại bỏ việc chun mơn hóa diễn Thực tế khơng có thiết bị cần hỗ trợ từ tất biến thể hệ điều hành, trừ hẹn hệ thống Thông thường, ứng dụng thiết kế để tương tác với thiết bị cụ thể mà chúng phục vụ Điều giúp tối ưu hóa tốc độ hiệu suất hệ thống nhúng cách tập trung vào yêu cầu cụ thể thiết bị mà không cần phải hỗ trợ biến thể hệ điều hành - Cơ chế bảo vệ không cần thiết hệ thống nhúng, đặc biệt chúng thiết kế với mục tiêu cụ thể Một số hệ thống nhúng tối ưu hóa để thực nhiệm vụ nhất, việc áp dụng chế bảo vệ khơng mang lại lợi ích rõ ràng mà chí cịn tốn tài ngun - Ngắt liên kết với luồng tiến trình hệ thống Sử dụng lệnh gọi dịch vụ từ hệ điều hành, yêu cầu hệ điều hành khởi động dừng luồng tiến trình xảy cố cụ thể Điều chức quan trọng để quản lý điều chỉnh tiến trình luồng, giúp phân phối tài nguyên cách hợp lý hệ thống Việc kết nối ngắt với tiến trình luồng cung cấp khả can thiệp vào trình thực thi, cho phép hệ thống quản lý tài nguyên ổn định chương trình hoạt động Điều hữu ích cần phải ưu tiên, kiểm soát quản lý phân phối tài nguyên tiến trình luồng khác để đảm bảo hoạt động hiệu ổn định hệ thống 2.2 Hề điều hành thời gian thực Định nghĩa: Hệ điều hành thời gian thực (RTOS) hệ điều hành (OS) dành cho ứng dụng điện toán thời gian thực xử lý liệu kiện có hạn chế thời gian xác định nghiêm trọng Yêu cầu thời gian xử lý cần phải hiểu đầy đủ ràng buộc thay giữ mức tối thiểu Tất trình xử lý phải xảy ràng buộc xác định Hệ điều hành thời gian thực định hướng kiện ưu tiên, có nghĩa HĐH giám sát mức độ ưu tiên có liên quan tác vụ cạnh tranh thực thay đổi mức độ ưu tiên tác vụ [2] Hệ điều hành cần đáp ứng số yêu cầu sau: - Hành vi thời gian hệ điều hành cần đảm bảo khả dự đoán Mỗi dịch vụ hệ điều hành phải hoạt động giới hạn thời gian đặt ra, điều cần đảm bảo nhiệm vụ Điều quan trọng để đảm bảo tính ổn định hiệu suất hệ thống - Hệ điều hành cần quản lý việc lập lịch cho luồng tiến trình Lập lịch hiểu việc ánh xạ từ nhóm luồng tiến trình đến khoảng thời gian thực cụ thể, bao gồm thời gian bắt đầu có trường hợp đặc biệt Đồng thời, lập lịch liên quan đến việc phân phối tác vụ tới xử lý khác trường hợp hệ thống có nhiều xử lý - Một số hệ thống yêu cầu hệ điều hành quản lý thời gian Quản lý bắt buộc việc xử lý nội liên kết với thời gian tuyệt đối môi trường vật lý Thời gian vật lý mô tả số thực Một số chuẩn để đồng thời gian quốc tế Phổ thời gian phối hơp (Universal Time Coordinated – UTC) nguyên tử quốc tế (International atomic time) - Hệ điều hành cần phải hoạt động nhanh chóng Một hệ điều hành đáp ứng tất yêu cầu đề cập trở nên vơ ích hoạt động chậm Vì vậy, rõ ràng hệ điều hành phải nhanh chóng - Các proprietary kernels phải nhanh, chẳng hạn QNX, PDOS, VCOS, VTRX32 VxWorks, ưu tiên tốc độ khả dự đoán mặt, Gupta nêu Mặc dù hạt nhân vượt trội việc mang lại hiệu suất cao chúng khơng phù hợp với hệ thống phức tạp đòi hỏi khả dự đoán tuyệt đối hoạt động chúng Những hạt nhân thiết kế chủ yếu để tối ưu hóa tốc độ hiệu [1] - Các phần mở rộng thời gian thực cho hệ điều hành tiêu chuẩn: Để tận dụng hệ điều hành thông thường phổ biến, hệ thống lai phát triển Đối với hệ thống vậy, có nhân thời gian thực (RT-kernel) chạy tất q trình thời gian thực (RT-processes) Có số hệ thống nghiên cứu nhằm mục tiêu tránh hạn chế Các hệ thống bao gồm Melody MARS, Spring, MARUTI, Arts, Hartos DARK 2.3 Máy ảo Trong số môi trường cụ thể, việc giả lập nhiều xử lý xử lý vật lý mang lại lợi ích Điều thực thơng qua việc sử dụng máy ảo chạy trực tiếp phần cứng Bằng cách sử dụng máy ảo, nhiều hệ điều hành thực thi đó, cho phép hoạt động đồng thời nhiều hệ điều hành xử lý Tuy nhiên, việc áp dụng phương pháp vào hệ thống nhúng địi hỏi cẩn trọng, hành vi thời gian tính dự đốn thời gian bị ảnh hưởng Việc tích hợp nhiều ứng dụng cổ điển với hệ điều hành khác xử lý phần cứng kịch mà phương pháp hữu ích Mặc dù việc thảo luận toàn diện máy ảo vượt phạm vi văn này, độc giả quan tâm tham khảo sách Smith cộng Craig để có thơng tin sâu PikeOS ví dụ khái niệm ảo hóa thiết kế đặc biệt cho hệ thống nhúng PikeOS cho phép phân chia tài nguyên hệ thống nhớ, thiết bị I/O thời gian CPU thành tập riêng biệt Nó kèm với microkernel nhỏ gọn, hệ điều hành, giao diện lập trình ứng dụng (APIs) mơi trường thực thi (RTEs) khác triển khai sở kernel Các phương thức truy cập tài nguyên Trong phần sử dụng thuật ngữ “Công việc” Định nghĩa: Công việc việc thực cụ thể tác vụ (có thể thực lặp lặp lại) Một công việc bao gồm nhiều nhiệm vụ bao gồm nhiều tiến trình 3.1 Đảo ngược ưu tiên Định nghĩa: đảo ngược ưu tiên kịch lập kế hoạch nhiệm vụ ưu tiên cao thay gián tiếp nhiệm vụ ưu tiên thấp đảo ngược hiệu ưu tiên giao nhiệm vụ Điều vi phạm mơ hình ưu tiên nhiệm vụ có mức độ ưu tiên cao ngăn chặn chạy nhiệm vụ có mức độ ưu tiên cao Đảo ngược xảy có tranh chấp tài nguyên với nhiệm vụ ưu tiên thấp sau ưu tiên trước nhiệm vụ ưu tiên trung bình Xem xét hai nhiệm vụ H L, có mức độ ưu tiên cao thấp tương ứng, hai nhiệm vụ sử dụng độc quyền tài nguyên dùng chung R Nếu H cố gắng có R sau L có nó, H bị chặn L từ bỏ tài nguyên Chia sẻ tài nguyên sử dụng độc quyền (R trường hợp này) hệ thống thiết kế tốt thường liên quan đến việc L từ bỏ R để H (nhiệm vụ ưu tiên cao hơn) không bị chặn thời gian dài Mặc dù thiết kế tốt, nhiên, nhiệm vụ thứ ba M có mức độ ưu tiên trung bình trở nên chạy trình L sử dụng R Tại thời điểm này, M ưu tiên cao L, phủ đầu L (vì M khơng phụ thuộc vào R), khiến L khơng thể từ bỏ R kịp thời, từ khiến H - q trình ưu tiên cao - khơng thể chạy (nghĩa H bị tắc nghẽn bất ngờ gián tiếp gây nhiệm vụ ưu tiên thấp M) Đối với hệ thống nhúng, phụ thuộc quy trình quy luật ngoại lệ Đặc biệt, mức độ ưu tiên tác vụ thời gian thực có ý nghĩa quan trọng so với ứng dụng phi thời gian thực Quyền truy cập loại trừ lẫn dẫn đến việc đảo ngược mức độ ưu tiên, tình làm thay đổi hiệu quy trình Hiện tượng tồn hệ thống khơng nhúng, nhiên, lý đề cập, việc đảo ngược mức độ ưu tiên gây hậu nghiêm trọng hệ thống nhúng Ví dụ cho việc chặn nhằm ưu tiên công việc, với điểm gốc lúc công việc thực thi, công việc cao ưu tiên trước, P(S) công việc giữ tài nguyên S V(S) nhả tài nguyên S, màu xám thực thi bình thường trắng thực thi quan trọng: Chặn công việc có ưu tiên thấp Tại thời điểm t0, J2 giữ tài nguyên S bắt đầu thực thi tiến trình quan trọng, hết thời điểm t1, J2 nhả S J1 sử dụng S thực thi tiến trình bình thường, đến thời điểm t2, J2 thực thi quan trọng khiến J1 phải nhường laị trình chạy cho J2, thời điểm t3 J2 nhả S J1 bắt đầu thực thi vùng quan trọng Có thể thấy, khoảng t2 t3, J2 ưu tiên thực thi J2 cơng việc có mức độ ưu tiên thấp việc yêu cầu tài nguyên đọc quyền công việc May mắn trương hợp này, khoảng thời gian bị chặn nhỏ thời gian thực thi cơng việc J2 Tình trạng có vấn đề khó tránh khỏi Trong trường hợp tổng qt hơn, tình hình tồi tệ Đảo ngược mức độ ưu tiên với khả có độ trễ lớn Giả định J1 J3 yêu cầu sử dụng độc quyền số tài nguyên thông qua thao tác P(S) Bây giờ, để J3 phần quan trọng nó bị J2 chiếm ưu Khi J1 chiếm ưu trước J2 cố gắng sử dụng tài nguyên mà J3 có quyền truy cập độc quyền, chặn cho phép J2 tiếp tục Chừng J2 cịn tiếp tục J3 khơng thể giải phóng tài ngun Do đó, J2 chặn J1 cách hiệu mức độ ưu tiên J1 cao J2 Trong ví dụ này, việc chặn J1 tiếp tục miễn J2 thực thi J1 bị chặn cơng việc có mức độ ưu tiên thấp hơn, không nằm phần quan trọng Hiệu ứng gọi đảo ngược ưu tiên Trong thực tế, việc đảo ngược mức độ ưu tiên xảy J2 không liên quan đến J1 J3 Khoảng thời gian tình đảo ngược mức độ ưu tiên khơng bị giới hạn độ dài phần quan trọng Kế thừa ưu tiên Giao thức kế thừa ưu tiên (Priority Inheritance Protocol - PIP) cách để giải vấn đề đảo ngược mức ưu tiên hệ thống thời gian thực Đây giao thức chuẩn có sẵn nhiều hệ điều hành thời gian thực hoạt động theo chế sau: - Công việc lập lịch dựa mức độ ưu tiên chúng Các công việc mức độ ưu tiên xếp theo thứ tự đến trước phục vụ trước (FCFS) - Khi công việc J1 sử dụng tài nguyên S với quyền truy cập độc quyền cấp cho số công việc J2 khác, J1 bị chặn Nếu mức độ ưu tiên J2 thấp J1, J2 thừa kế mức độ ưu tiên J1 tiếp tục thực thi Như vậy, công việc thừa kế mức độ ưu tiên cao từ cơng việc mà chặn - Khi cơng việc J2 hoàn thành việc sử dụng tài nguyên S, mức độ ưu tiên giảm xuống mức cao số cơng việc bị chặn Nếu khơng có cơng việc khác bị chặn, mức độ ưu tiên thiết lập lại Cơng việc có mức độ ưu tiên cao bị chặn tiếp tục thực thi - Nguyên tắc kế thừa ưu tiên có tính chất bắc cầu: cơng việc Jx chặn công việc Jy Jy chặn công việc Jz, Jx kế thừa mức độ ưu tiên Jz Ví dụ cho kế thừa ưu tiên để giải đảo ngược mức độ ưu tiên với khả có độ trễ lớn ví dụ 10 Hình ảnh 3.1 Kế thừa ưu tiên J3 kế thừa mức độ ưu tiên J1 J1 thực thi P(S) Điều tránh vấn đề đảo ngược mức độ ưu tiên với khả có độ trễ lớn J2 khơng thể chiếm ưu trước J3 Hình 4.8 minh họa ví dụ cơng việc quan trọng nhóm lồng vào Đáng ý mức độ ưu tiên công việc J3 không đặt lại giá trị ban đầu thời điểm t0 Thay vào đó, mức độ ưu tiên giảm xuống mức cao số cơng việc bị chặn, trường hợp mức ưu tiên p1 J1 Hình ảnh 3.2 Ưu tiên lồng vùng quan trọng Tính bắc cầu kế thừa ưu tiên minh họa hình 4.9 Ở thời điểm t0, J1 bị chặn J2 J2 lại bị chặn J3 Vì vậy, J3 kế thừa mức độ ưu tiên p1 từ J1 11 Hình ảnh 3.3 Tính bắc cầu kế thừa ưu tiên Mặc dù kế thừa ưu tiên giải số vấn đề khơng giải vấn đề khác Ví dụ: có số lượng lớn cơng việc có mức độ ưu tiên cao Cũng có bế tắc Ví dụ kế thừa ưu tiên gây bế tắc, với J1 yêu cầu P(a), P(b), P(c), J2 yêu cầu P(b), P(a), P(c) J1 chiếm ưu trước J2 thời điểm t1 chạy gọi P(b), b J2 giữ Do đó, J2 tiếp tục Tuy nhiên, gặp bế tắc gọi P(a) Sự bế tắc tồn không sử dụng giao thức truy cập tài nguyên Hình ảnh 3.4 Kế thừa ưu tiên gây bế tắc Giao thức trần ưu tiên Giao thức trần ưu tiên (Priority Ceiling Protocol - PCP) giúp tránh bế tắc PCP yêu cầu thông tin công việc phải biết từ giai đoạn thiết kế hệ thống 12 Dưới PCP, công việc nhập vào phần quan trọng có semaphore bị khóa mà gây chặn Do đó, cơng việc bắt đầu thực phần quan trọng, khơng bị cơng việc có mức độ ưu tiên thấp chặn đứng hồn thành Điều thực thông qua việc ấn định mức trần ưu tiên Mỗi semaphore S gán mức trần ưu tiên (C(S)), đại diện cho ưu tiên tĩnh cao cơng việc khóa semaphore Giao thức trần ưu tiên (Priority Ceiling Protocol - PCP) hoạt động sau: - Khi công việc J muốn khóa semaphore S, khóa S mức độ ưu tiên J cao mức ưu tiên trần (C(S')) semaphore S' Ở đây, S' semaphore có mức trần ưu tiên cao số tất semaphore bị khóa cơng việc khác ngồi J Nếu có semaphore vậy, J bị chặn S' công việc nắm giữ S' kế thừa mức độ ưu tiên J - Khi công việc J rời khỏi phần quan trọng bảo vệ semaphore S, mở khóa S đánh thức cơng việc có mức ưu tiên cao (nếu có) bị chặn S Mức độ ưu tiên J sau rời khỏi phần quan trọng đặt mức ưu tiên cao số công việc bị chặn semaphore mà J nắm giữ Nếu J không chặn công việc khác, mức độ ưu tiên J đặt lại mức ưu tiên thơng thường Hình ảnh sau giải thích cách hoạt động: Hình ảnh 3.5 Khóa giao thức trần ưu tiên 13 Tại thời điểm t2, J2 muốn khóa c, c bị khóa trước Hơn nữa, mức ưu tiên J2 không vượt mức trần c Tuy nhiên, không đáp ứng yêu cầu mức ưu tiên, việc thử khóa c làm tăng mức ưu tiên J3 lên p2 Tại thời điểm t5, J1 cố gắng khóa a Mặc dù a chưa bị khóa, J3 khóa b mức ưu tiên J1 không vượt mức trần b Kết là, J1 bị chặn đứng Cơ chế chặn đặc tính quan trọng PCP giúp tránh tình bế tắc tiềm ẩn J3 kế thừa mức ưu tiên từ J1, cho biết J1 chờ semaphore b J3 giải phóng Tại thời điểm t6, J3 giải phóng b J1, cơng việc có mức ưu tiên cao bị chặn b, đánh thức Mức ưu tiên J3 giảm xuống p2 J1 thành cơng khóa giải phóng a b, tiếp tục chạy hoàn thành Tại thời điểm t7, J2 bị chặn c, số tất công việc với mức ưu tiên p2, J3 tiếp tục thực thi Tại thời điểm t8, J3 giải phóng c, làm cho mức ưu tiên giảm xuống p3 Lúc này, J2 khơng bị chặn lấy quyền truy cập c từ J3, thành cơng khóa c J3 tiếp tục thực thi sau J2 hồn thành thực Chính sách tài nguyên ngăn xếp Khác với PCP, sách tài nguyên ngăn xếp (SRP) hỗ trợ lập lịch ưu tiên động, tức SRP sử dụng với ưu tiên động tính lập lịch EDF (Earliest Deadline First) Đối với SRP, phải phân biệt công việc (jobs) nhiệm vụ (tasks) Các nhiệm vụ mơ tả tính tốn lặp lại Mỗi tính tốn cơng việc theo cách mà thuật ngữ sử dụng Khái niệm nhiệm vụ bao quát đặc điểm áp dụng cho tập hợp công việc, ví dụ mã code cần thực thi định kỳ Do đó, nhiệm vụ τi, có tập hợp tương ứng cơng việc SRP không xem xét công việc nhiệm vụ cách riêng lẻ mà xác định thuộc tính áp dụng cho nhiệm vụ cách tồn cầu Hơn nữa, SRP hỗ trợ tài nguyên đa đơn vị, ví dụ đệm nhớ Các giá trị sau định nghĩa: - Mức độ ưu tiên li nhiệm vụ τi cung cấp thông tin nhiệm vụ bị gián đoạn công việc τi Một nhiệm vụ τi gián đoạn số nhiệm vụ khác τiếp tục τi j li > lj Chúng ta yêu cầu rằng, nhiệm vụ τi xuất sau τj τi có độ ưu tiên cao hơn, τi phải có mức gián đoạn cao τj Đối với lập lịch EDF không (xem trang 316), điều có nghĩa mức gián đoạn xếp ngược với mối quan hệ với hạn chót tương đối Hạn chót lớn, việc gián đoạn cơng việc dễ dàng li giá trị tĩnh - Trần tài nguyên tài nguyên mức gián đoạn cao nhiệm vụ bị chặn yêu cầu tối đa họ đơn vị tài nguyên gửi 14 - Trần tài nguyên giá trị động phụ thuộc vào số lượng đơn vị tài nguyên có Trần hệ thống trần tài nguyên cao tất tài nguyên bị chặn Giá trị động thay đổi theo truy cập tài nguyên ERIKA Một số hệ thống nhúng (như hệ thống ô tô thiết bị gia dụng) yêu cầu toàn ứng dụng lưu trữ vi điều khiển nhỏ Vì lý đó, dịch vụ hệ điều hành cung cấp firmware hệ thống phải giới hạn đến tập hợp tối thiểu tính cho phép thực thi đa luồng công việc định kỳ không định kỳ, với hỗ trợ cho việc chia sẻ tài nguyên để tránh tượng đảo ngược ưu tiên Gần đây, API OSEK/VDX mở rộng Hội đồng AUTOSAR, cung cấp cải tiến để hỗ trợ bảo vệ thời gian, bảng lập lịch cho hệ thống kích hoạt theo thời gian bảo vệ nhớ để bảo vệ việc thực thi ứng dụng khác lưu trữ vi điều khiển Phần mô tả ngắn gọn tính yêu cầu hệ thống vậy, coi ERIKA Enterprise kernel làm mẫu tham chiếu cho việc triển khai Đặc điểm phân biệt kernel OSEK so với hệ điều hành khác tất đối tượng kernel xác định tĩnh thời điểm biên dịch Đặc biệt, hầu hết hệ thống không hỗ trợ phân bổ nhớ động tạo động công việc Để hỗ trợ người dùng việc cấu hình hệ thống, tiêu chuẩn OSEK/VDX cung cấp ngơn ngữ cấu hình, gọi OIL, để định đối tượng cần thực thể hóa ứng dụng Khi ứng dụng biên dịch, trình biên dịch OIL tạo cấu trúc liệu hệ điều hành, phân bổ lượng nhớ cần thiết Phương pháp cho phép phân bổ liệu thực cần thiết ứng dụng để đặt nhớ flash (điều tốn so với nhớ RAM hầu hết vi điều khiển) Đặc điểm thứ hai phân biệt hệ thống OSEK/VDX việc hỗ trợ chia sẻ ngăn xếp (stack sharing) Lý cung cấp tính chia sẻ ngăn xếp nhớ RAM đắt đỏ vi điều khiển nhỏ Khả triển khai hệ thống chia sẻ ngăn xếp liên quan đến cách viết mã Các nhiệm vụ mở rộng khác biệt với nhiệm vụ chỗ cách trì trạng thái lâu dài phiên khác không lưu trữ ngăn xếp mà lưu biến toàn cục Ngoài ra, phần khởi tạo di chuyển đến khởi tạo hệ thống nhiệm vụ không tạo động, chúng tồn từ đầu Cuối cùng, không cần dùng nguyên tố đồng hóa để chặn nhiệm vụ chu kỳ nhiệm vụ kích hoạt có phiên bắt đầu Ngoài ra, nhiệm vụ gọi nguyên tố chặn nào; đó, bị ưu tiên nhiệm vụ ưu tiên cao thực thi đến hoàn thành Theo cách này, nhiệm vụ hoạt động hàm, cấp phát dọn dẹp khung ngăn xếp, sau giải phóng khơng gian ngăn xếp hai lần thực thi Vì lý này, nhiệm vụ không chiếm không gian ngăn xếp hai lần thực thi, cho phép chia sẻ ngăn xếp tất nhiệm vụ hệ thống ERIKA Enterprise hỗ 15 trợ chia sẻ ngăn xếp, cho phép tất nhiệm vụ hệ thống chia sẻ ngăn xếp nhất, giảm thiểu sử dụng nhớ RAM tổng thể Về quản lý nhiệm vụ, nhân hạt OSEK/VDX cung cấp lập lịch ưu tiên cố định với Ưu Tiên Tường ưu tiên Ngay Lập Tức để tránh vấn đề đảo ngược mức ưu tiên Việc sử dụng Ưu Tiên Tường ưu tiên Ngay Lập Tức hỗ trợ thông qua việc định việc sử dụng tài nguyên nhiệm vụ tệp cấu hình OIL Trình biên dịch OIL sau tính tốn mức trần tài nguyên nhiệm vụ dựa việc sử dụng tài nguyên khai báo nhiệm vụ tệp OIL Hệ thống OSEK/VDX hỗ trợ lập lịch không chặn ngưỡng chặn để giới hạn việc sử dụng ngăn xếp tổng thể Ý tưởng việc hạn chế chặn tác vụ giúp giảm số lượng tác vụ phân bổ ngăn xếp hệ thống lúc, từ giảm tổng lượng nhớ RAM cần thiết Lưu ý việc giảm số lần chặn làm suy giảm khả lập lịch tập hợp tác vụ; đó, mức độ chặn cần cân nhắc cho phù hợp với khả lập lịch hệ thống tổng lượng nhớ RAM sử dụng Một yêu cầu khác cho hệ điều hành thiết kế cho vi điều khiển nhỏ khả mở rộng, có nghĩa hỗ trợ phiên thu gọn API cho thiết kế vết nhỏ Trong hệ thống sản xuất hàng loạt, vết nhỏ ảnh hưởng đáng kể đến chi phí tổng thể Các lớp tuân thủ hỗ trợ tiêu chuẩn OSEK/VDX (và ERIKA Enterprise) bao gồm: - BCC1: lớp tuân thủ nhỏ nhất, hỗ trợ tối thiểu tám tác vụ có độ ưu tiên khác nguồn tài nguyên chia sẻ - BCC2: so với BCC1, lớp tuân thủ thêm khả có nhiều tác vụ độ ưu tiên Mỗi tác vụ có kích hoạt chờ đợi, nghĩa hệ điều hành ghi lại số lượng phiên kích hoạt chưa thực thi - ECC1: so với BCC1, lớp tuân thủ thêm khả có tác vụ mở rộng đợi kiện xuất - ECC2: lớp tuân thủ thêm hai chức kích hoạt nhiều tác vụ mở rộng ERIKA Enterprise mở rộng thêm lớp tuân thủ cách cung cấp hai lớp tuân thủ sau đây: - EDF: lớp tuân thủ không sử dụng lập lịch độ ưu tiên cố định mà sử dụng lập lịch "Nhất định Trước Hạn" (EDF) tối ưu hóa cho việc triển khai vi điều khiển nhỏ - FRSH: lớp tuân thủ mở rộng lớp lập lịch EDF cách cung cấp lập lịch dự trữ nguồn tài nguyên dựa thuật toán lập lịch IRIS ERIKA Enterprise mở rộng thêm lớp tuân thủ cách cung cấp hai lớp tuân thủ sau đây: - EDF: Lớp tuân thủ không sử dụng lập lịch ưu tiên cố định mà sử dụng Lập lịch Nhất định Trước Hạn (EDF) tối ưu hóa cho việc triển khai vi điều khiển nhỏ - FRSH: Lớp tuân thủ mở rộng lớp lập lịch EDF cách cung cấp lập lịch dự trữ nguồn tài nguyên dựa thuật toán lập lịch IRIS 16 Một đặc điểm hấp dẫn hệ thống OSEK/VDX khả cung cấp API để điều khiển ngắt Điều điểm khác biệt quan trọng so với hệ thống giống POSIX, nơi ngắt xem phạm vi độc quyền hệ điều hành khơng xuất API Lý cho điều vi điều khiển nhỏ, người dùng thường muốn can thiệp trực tiếp vào ưu tiên ngắt; đó, việc cung cấp cách tiêu chuẩn để xử lý việc tắt/mở ngắt trở nên quan trọng Ngoài ra, tiêu chuẩn OSEK/VDX xác định hai loại Routines Dịch vụ Ngắt (ISR): - Loại 1: đơn giản nhanh chóng, khơng thực gọi đến lập lịch kết thúc ISR - Loại 2: ISR gọi số nguyên tắc thay đổi hành vi lập lịch Điểm kết thúc ISR điểm để lập lịch lại ISR1 có ưu tiên cao ISR2 Một đặc điểm quan trọng hạt nhân OSEK/VDX khả tinh chỉnh kích thước cách loại bỏ mã kiểm tra lỗi từ phiên sản xuất, định nghĩa hooks hệ thống gọi có kiện cụ thể xảy Những tính cho phép tinh chỉnh kích thước ứng dụng, lớn (và an tồn hơn) q trình gỡ lỗi nhỏ sau tìm thấy loại bỏ hầu hết lỗi từ mã nguồn Để hỗ trợ trải nghiệm gỡ lỗi tốt hơn, tiêu chuẩn OSEK/VDX định nghĩa ngôn ngữ văn bản, gọi ORTI, mô tả vị trí đối tượng hệ điều hành Tập tin ORTI thường tạo trình biên dịch OIL sử dụng công cụ gỡ lỗi để in thông tin chi tiết đối tượng hệ thống nhúng (ví dụ, gỡ lỗi in danh sách tác vụ ứng dụng kèm theo trạng thái chúng) Tất tính định nghĩa tiêu chuẩn OSEK/VDX triển khai hạt nhân ERIKA Enterprise mã nguồn mở, dành cho loạt vi điều khiển nhúng, với kích thước cuối dao động từ đến kilobytes mã đối tượng ERIKA Enterprise triển khai tính bổ sung, lập lịch EDF, cung cấp hệ điều hành mã nguồn mở miễn phí, sử dụng để học tập, kiểm thử triển khai ứng dụng thực tế cho mục đích cơng nghiệp giáo dục [3] Linux cho thiết bị nhúng (Embedded Linux) Yêu cầu ngày cao với tính hệ thống nhúng, kết nối Internet (đặc biệt Internet of Things) hình đồ họa phức tạp, yêu cầu việc bổ sung nhiều phần mềm vào hệ điều hành đơn giản hệ thống nhúng Một phương pháp chứng minh tích hợp tính mạng giao thức Internet (IP) vào hệ điều hành nhúng thời gian thực nhỏ Tuy nhiên, việc tích hợp nhiều thành phần phần mềm khác phức tạp gây vấn đề chức bảo mật Linux trở thành lựa chọn hàng đầu cho nhiều ứng dụng nhúng phức tạp định tuyến Internet, hệ thống định vị GPS, thiết bị lưu trữ mạng, TV thông minh điện thoại di động Việc chuyển đổi tận dụng tính di động dễ dàng Linux - 17 thích ứng với 30 kiến trúc xử lý khác bao gồm ARM, MIPS PowerPC, với mã nguồn mở giúp tránh chi phí cấp phép ứng dụng nhúng thương mại Tuy nhiên, việc thích ứng Linux với môi trường nhúng thông thường đối mặt với nhiều thách thức thiết kế ban đầu dành cho máy chủ máy tính để bàn Phần giới thiệu giải pháp Linux để giải vấn đề phổ biến sử dụng hệ thống nhúng 5.1 Cấu trúc kích thước Linux nhúng Hình ảnh 5.1 Cấu trúc hệ thống dựa Linux điển hình "Linux" thực đề cập đến hạt nhân hệ điều hành xây dựng Linux Để tạo thành hệ điều hành hoàn chỉnh hoạt động tốt, cần sử dụng loạt thành phần bổ sung chạy hạt nhân Linux Một cấu hình tiêu biểu hệ thống Linux bao gồm phần tử chế độ người dùng cấp hệ thống, thể qua hình Trên hạt nhân Linux, có diện thư viện — thường liên kết động — tạo nên sở cho công cụ ứng dụng mức hệ thống Trong Linux, trình điều khiển thiết bị thường triển khai dạng mô-đun hạt nhân tải xuống; nhiên, có khả truy cập vào phần cứng từ chế độ người dùng với hạn chế cụ thể Có số triển khai libc nhỏ đáng kể có sẵn, ví dụ newlib, musl, uClibc, PDCLib dietlibc Mỗi loại tối ưu hóa cho trường hợp sử dụng cụ thể; musl tối ưu hóa cho việc liên kết tĩnh, uClibc thiết kế ban đầu cho hệ thống Linux khơng có MMU, newlib libc đa tảng, có sẵn cho số tảng hệ điều hành khác Kích thước tệp nhị phân thư viện chia sẻ liên 18 quan từ khoảng 185 kB (dietlibc) đến 560 kB (uClibc), tệp nhị phân glibc có kích thước 7,9 MB (tất số lấy từ tệp nhị phân ×86) so sánh tính triển khai libc kích thước biên soạn Eta Labs Một phương án thay cho công cụ đa dạng truyền thống BusyBox, phần mềm cung cấp tiện ích Unix đơn giản hóa gói gọn tệp thực thi BusyBox tối ưu hóa đặc biệt cho hệ điều hành nhúng có tài ngun hạn chế Nó giảm thiểu chi phí kích thước tệp thực thi gây cho phép chia sẻ mã nhiều ứng dụng mà không cần sử dụng thư viện riêng biệt Hình ảnh 5.2 So sánh kích thước cấu hình libc Linux khác 5.2 Thuộc tính thời gian thực Đạt đảm bảo thời gian thực hệ thống dựa nhân hệ điều hành có mục đích chung thách thức phức tạp việc điều chỉnh hệ điều hành để chạy môi trường nhúng Một cách tiếp cận gần để bổ sung khả thời gian thực cho Linux, tích hợp vào kernel kể từ phiên 3.14 (2014), SCHED_DEADLINE, sách lập lịch CPU dựa Thời hạn sớm trước tiên (EDF) Máy chủ băng thơng khơng đổi (CBS) thuật tốn hỗ trợ dự trữ tài nguyên Chính sách SCHED_DEADLINE thiết kế để tồn với sách lập lịch khác Linux Tuy nhiên, ưu tiên trước tất sách khác để đảm bảo thuộc tính theo thời gian thực Mỗi tác vụ τi lên lịch SCHED_DEADLINE liên kết với ngân sách thời gian chạy Ci khoảng thời gian Ti, cho nhân biết đơn vị thời gian Ci yêu cầu tác vụ đơn vị thời gian Ti, xử lý Đối với ứng dụng thời gian thực, Ti tương ứng với thời gian trôi qua tối thiểu lần kích hoạt (phát hành) tác vụ Ci tương ứng với thời gian thực trường hợp xấu cần thiết cho lần thực tác vụ Ngoài nhiệm vụ vào sách lập lịch này, kiểm tra khả lập lịch thực nhiệm vụ chấp nhận thử nghiệm thành công Trong trình lập lịch, tác vụ bị tạm dừng cố gắng chạy lâu ngân sách phân bổ trước bị trì hỗn sang giai đoạn thực Chiến lược khơng bảo tồn công việc cần thiết để đảm bảo cách ly tạm thời nhiệm vụ khác Do đó, hệ thống xử lý nhiều xử lý phân vùng (với tác vụ ghim vào CPU cụ thể), tất tác vụ SCHED_DEADLINE chấp nhận đảm bảo lên lịch tổng thời gian với ngân sách chúng khoảng thời gian miễn khoảng thời gian chúng 19 5.3 Hệ thống tập tin nhớ flash Hệ thống nhúng đặt yêu cầu khác lưu trữ cố định so với mơi trường máy chủ máy tính để bàn Thường có lượng lớn liệu tĩnh (chỉ đọc), lượng liệu thay đổi thường hạn chế Một hệ thống tệp thiết kế đặc biệt cho ổ đĩa flash Hệ thống tệp Flash ghi nhật ký có cấu trúc nhật ký phiên (JFFS2) Trong JFFS2, thay đổi tập tin thư mục "ghi" vào nhớ flash gọi nút Có hai loại nút chính: inode, bao gồm tiêu đề với siêu liệu tệp, theo sau tải trọng liệu tệp tùy chọn, nút dirent, mục nhập thư mục chứa tên số inode Các nút trở nên lỗi thời phiên tạo vị trí khác nhớ flash JFFS2 hỗ trợ nén liệu suốt cách lưu trữ liệu nén dạng tải trọng inode So với hệ thống tệp có cấu trúc nhật ký khác Berkeley LFS, JFFS2 khơng sử dụng nhật ký vịng trịn Thay vào đó, sử dụng khối, đơn vị có kích thước tương đương với đoạn xóa phương tiện flash Khối lấp đầy nút từ lên, nút Khối chứa nút hợp lệ, khối bẩn chứa nút lỗi thời Trình thu gom rác thu thập khối bẩn để giải phóng nhớ Các nút hợp lệ từ khối bẩn chép vào khối mới, khối lỗi thời bị bỏ qua Sau chép, khối bẩn đánh dấu miễn phí Trình thu gom rác sử dụng khối để cân mức độ mòn nhớ flash ngăn chặn việc xóa cục khối hệ thống tệp, đặc biệt đa số liệu tĩnh, thường thấy nhiều hệ thống nhúng 20 Hình ảnh 5.3 Cấu trúc nội dung inode JFFS2 Hình ảnh 5.4 Thay đổi flash ghi liệu vào JFFS2 5.4 uClinux: Linux dành cho hệ thống MMU uClinux tạo phiên phái sinh nhân Linux dành cho hệ thống khơng có đơn vị quản lý nhớ (Memory Management Unit - MMU) Hệ điều hành giống Unix truyền thống thường coi nhớ (RAM) nơi đệm cho nhớ phụ đĩa, cịn gọi khơng gian trao đổi Tuy nhiên, giả định hữu ích cho máy tính máy chủ có ổ đĩa lớn, tạo lãng phí tài ngun hệ thống nhúng Các chương trình nhớ thay đổi hệ thống phải tải vào nhớ thay đổi để thực thi, thường kèm với hạt nhân hệ điều hành lớn Để giảm thiểu việc sử dụng tài nguyên nhớ, số kỹ thuật thực thi chỗ (XiP) phát triển Chúng cho phép mã chương trình thực thi trực tiếp từ nhớ flash, phương pháp phổ biến hệ thống dựa vi điều khiển nhỏ Trong tảng uClinux hỗ trợ, việc thiếu phần cứng quản lý nhớ kèm với số nhược điểm rõ ràng Trong số đó, việc thiếu khả bảo vệ nhớ vấn đề bật, khiến cho tiến trình truy cập thay đổi liệu nhớ 21 tiến trình khác Sự thiếu hụt MMU gây khó khăn việc triển khai quy trình theo cách tiếp cận truyền thống Unix Thường, tiến trình Unix tạo thành tiến trình thơng qua lệnh gọi hệ thống fork() Tuy nhiên, thiếu MMU, thay tạo vật lý nhớ, việc chép tập trung vào mục bảng trang tiến trình chạy fork() Các khung trang vật lý tiến trình mẹ trỏ tới Khi tiến trình bắt đầu thay đổi nhớ gốc cách ghi liệu, có khung trang ảnh hưởng chép cần thiết dựa chiến lược chép có thay đổi Tuy nhiên, việc thiếu hỗ trợ phần cứng cho quy trình chép có nghĩa chi phí liên quan đến việc chép trang thực sự, lệnh gọi hệ thống fork() không khả dụng uClinux Thay vào đó, uClinux, có sẵn lệnh gọi hệ thống vfork() Lệnh tận dụng việc hầu hết quy trình kiểu Unix thường gọi exec() sau để khởi động tệp thực thi khác Quá trình đặt tải hình ảnh nhớ chúng lên với phân đoạn văn liệu từ tệp nhị phân khác: pid_t childPID; childPID = vfork(); if (childPID == 0) { // in child process exec("/bin/sh", "sh", 0); } printf("Parent program running again, child PID is %d", childPID); Việc gọi trực tiếp exec() sau vfork() ngụ ý không gian địa đầy đủ tiến trình thay trường hợp, phần nhỏ lệnh gọi thực thi vfork() sử dụng thực tế Khác biệt với hành vi tiêu chuẩn Unix, vfork đảm bảo tiến trình cha bị tạm dừng sau tạo sao, tiến trình thực lệnh gọi hệ thống exec() Do đó, tiến trình cha khơng thể can thiệp vào thực thi tiến trình chương trình tải Tuy nhiên, có số hạn chế cần tuân thủ để đảm bảo vfork hoạt động an toàn Khơng phép sửa đổi ngăn xếp tiến trình tạo, có nghĩa khơng có hàm gọi thực thi trước tiến trình thức thực thi Kết quay lại từ vfork trường hợp có lỗi Thay vào đó, sử dụng exit() để khỏi tiến trình có vấn đề xảy Tóm lại, uClinux cách sử dụng số tính Linux hệ thống nhúng vi điều khiển cấp thấp Tuy nhiên, nhớ chip vi điều khiển cao cấp bị giới hạn mức vài trăm kB Phiên uClinux tối thiểu yêu cầu khoảng MB RAM nên việc mở rộng nhớ RAM chip ngoại vi cần thiết Đối với hệ thống có dung lượng nhớ nhỏ hơn, hệ điều hành thời gian thực truyền thống lựa chọn khả thi 22 Lớp trừu tượng phần cứng (Hardware Abstraction Layer - HAL) Lớp trừu tượng phần cứng cung cấp cách tiếp cận phần cứng thơng qua giao diện lập trình ứng dụng (API) độc lập với phần cứng Ví dụ, kỹ thuật độc lập với phần cứng sử dụng để truy cập định thời, không quan tâm đến địa cụ thể mà định thời ánh xạ tới Các lớp trừu tượng phần cứng thường đóng vai trị chuyển đổi thơng tin lớp phần cứng hệ điều hành Chúng chứa thông tin trí tuệ phần mềm (IP), khơng phải phần hệ điều hành không xem phần mềm trung gian Phần mềm trung gian (Middleware) Thư viện giao tiếp mở rộng khả giao tiếp ngơn ngữ thiếu tính này, bổ sung chức giao tiếp bên cạnh chức cung cấp hệ điều hành Bởi tích hợp hệ điều hành, chúng hoạt động độc lập (cả với hệ điều hành phần cứng bản) Điều tạo hệ thống mạng vật lý có khả liên lạc, yếu tố cần thiết cho Internet of Things (IoT) Việc hỗ trợ giao tiếp môi trường địa phương từ xa thông qua giao thức Internet trở nên ngày phổ biến Cơ sở liệu thời gian thực (Real-Time Databases) Cơ sở liệu cung cấp cách tiện lợi có cấu trúc để lưu trữ truy cập thông tin Chúng cung cấp giao diện lập trình ứng dụng (API) để viết đọc thông tin Một chuỗi hoạt động đọc ghi gọi giao dịch Giao dịch phải bị hủy nhiều lý khác nhau: vấn đề phần cứng, tình trạng bế tắc, vấn đề kiểm soát đồng thời, v.v Một yêu cầu thường gặp giao dịch không ảnh hưởng đến trạng thái sở liệu trừ chúng thực hồn tồn Do đó, thay đổi giao dịch gây thường không xem cuối chúng cam kết Hầu hết giao dịch yêu cầu nguyên tử Điều có nghĩa kết cuối (trạng thái sở liệu) tạo số giao dịch phải giống giao dịch hồn thành hồn tồn khơng chạy chút Ngoài ra, trạng thái sở liệu kết từ giao dịch phải quán Yêu cầu tính quán bao gồm, ví dụ, giá trị từ yêu cầu đọc thuộc giao dịch phải quán (không mô tả trạng thái tồn môi trường mô sở liệu) Hơn nữa, người dùng khác sở liệu, khơng phép nhìn thấy trạng thái trung gian phần thực thi giao dịch (các giao dịch phải thực thể chúng thực độc lập) Cuối cùng, kết giao dịch cần bền vững Tính chất cịn gọi tính bền vững giao dịch Kết luận Trong bối cảnh phổ biến phức tạp ngày tăng thiết bị nhúng, luận sâu vào yêu cầu hệ điều hành nhúng Việc tập trung vào khả 23 xử lý thời gian thực kỹ thuật thích ứng giúp làm rõ cách hệ thống nhúng đáp ứng chức Bài luận cung cấp nhìn tổng quan quản lý tài nguyên, tập trung vào quản lý truy cập ưu tiên tài nguyên, nhấn mạnh tầm quan trọng chúng hiệu suất hệ thống thời gian thực Bằng cách thảo luận giao thức kế thừa ưu tiên, trần ưu tiên, giao thức tài nguyên ngăn xếp, luận làm rõ đa dạng quan trọng công cụ việc quản lý tài nguyên thiết bị nhúng Sự hiểu biết sâu sắc hệ thống thời gian thực ERIKA với cách Linux thích ứng với tài nguyên hạn chế làm bật linh hoạt tính đa dạng việc triển khai hệ thống nhúng Mặt khác, việc xem xét lớp phần cứng trừu tượng (HAL) phần mềm giao tiếp thời gian thực rõ ràng khả tái sử dụng linh hoạt thiết kế thiết bị nhúng Tất điều đóng vai trò quan trọng việc xác định tạo nên thiết bị nhúng hiệu đáng tin cậy hệ thống ngày 10 Tài liệu tham khảo [1] P Marwedel, Embedded System Design, US: Springer International, 2021 [2] P Center, "Real-time Operating Systems (RTOS)," 2023 [3] Erika3, "ERIKA Enterprise," https://www.erika-enterprise.com, 2021 [4] O B K M Fred B Schneider, "A Formalization of Priority Inversion," Cornell University, New York, 1992 [5] E G B M Claudio Scordino, "Embedded Operating Systems," in Embedded Systems, 2017, p 173 [6] M D P Emilio, "Embedded Linux Design: Real Time in Details," EEWeb, 2021 [7] C S K Krishna, Real-Time Systems Computer Science Series, New Yorl: McGraw-Hill, 1997 24