Hệ điều hành cho hệ thống nhúng (HĐH thời gian thực) Hệ điều hành cho hệ thống nhúng (HĐH thời gian thực) Bởi: Khoa CNTT ĐHSP KT Hưng Yên Đặc điểm chung Hệ điều hành Nguồn gốc đời hệ điều hành để đảm nhiệm vai trò trung gian để tương tác trực tiếp với phần cứng máy tính, phục vụ cho nhiều ứng dụng đa dạng Các hệ điều hành cung cấp tập chức cần thiết phép gói phần mềm điều khiển phần cứng máy tính mà không cần phải can thiệp trực tiếp sâu Hệ điều hành máy tính thấy bao gồm drivers cho ngoại vi tích hợp với máy tính card hình, card âm Các công cụ để quản lý tài nguyên nhớ thiết bị ngoại vi nói chung Điều tạo giao diện thuận lợi cho ứng dụng người sử dụng phát triển phần mềm phần cứng có Đồng thời tránh yêu cầu hiểu biết sâu sắc phần cứng phát triển dựa ngôn ngữ bậc cao Hệ thống điều hành chất loại phần mềm khác với loại phần mềm thông thường Sự khác biệt điển hình hệ thống điều hành nạp thực thi hệ thống bắt đầu khởi động thực trực tiếp xử lý hệ thống Hệ thống điều hành viết để phục vụ điều khiển xử lý tài nguyên khác hệ thống đảm nhiệm chức quản lý lập lịch trình sử dụng CPU chia sẻ tài nguyên 1/6 Hệ điều hành cho hệ thống nhúng (HĐH thời gian thực) Kiến trúc Hệ điều hành Hệ điều hành cho hệ thống nhúng - hệ điều hành thời gian thực Thời gian thực (Real - Time) gì? Thời gian thực khó định nghĩa Ý tưởng thời gian thực thể chỗ: hệ thống phải có phản ứng thích hợp, thời điểm với môi trường Nhiều người nghĩ rằng, thời gian thực có nghĩa thực nhanh, nhanh tốt, điều sai lầm Thời gian thực có nghĩa “đủ nhanh” (fast enough) ngữ cảnh, môi trường mà hệ thống hoạt động Khi đề cập đến máy tính điều khiển động ô tô, cần chạy nhanh tốt Một ví dụ khác, đề cập đến nhà máy lọc dầu hoá học chẳng hạn, nhà máy điều khiển một hệ thống máy tính Các máy tính có trách nhiệm điều khiển trình hoá học đồng thời phải phát cố xảy Tuy nhiên, phản ứng hay trình hoá học thường có số thời gian lớn từ hàng giây hàng phút Chính mày giả thiết máy tính hoàn toàn có khả phản ứng lại cố nghiêm trọng Tuy nhiên, đặt vấn đề hệ thống máy tính trình in báo cáo dài thông số sản lượng tuần trước trục trặc xảy Vậy thời gian để phản ứng lại cố thế? Thực chất việc tính toán thời gian thực không việc phản ứng đủ nhanh mà phải đáng tin cậy xác Máy tính điều khiển động ô tô bạn phải điều chỉnh luồng nhiên liệu thời gian đánh lửa cách hợp lý vòng quay Nếu không, động không làm việc theo mong muốn Máy tính nhà máy lọc dầu phải phát phản ứng lại điều kiện bất thường thời gian cho phép để tránh thảm hoạ xảy Như vậy, nghệ thuật lập trình thời gian thực việc thiết kế hệ thống cho tiếp nhận cách xác ràng buộc mặt thời gian suốt trình kiện ngẫu nhiên không đồng xảy 2/6 Hệ điều hành cho hệ thống nhúng (HĐH thời gian thực) Các dạng thời gian thực Về bản, chương trình có tính thời gian thực phải có khả phản ứng lại kiện môi trường mà hệ thống làm việc khoảng thời gian định cho trước Những hệ thống gọi hệ thống “điều khiển kiện” (hay hệ thống lái kiện – event-driven) mô tả thời gian trễ từ mà kiện xảy hệ thống có hoạt động phản ứng lại với kiện Thời gian thực, mặt khác, đòi hỏi giới hạn cao thời gian trễ, gọi “thời hạn lập danh mục” (scheduling deadline) Một hệ thống thời gian thực chia làm loại: “thời gian thực cứng” (hard real-time) “thờigian thực mềm” (soft real-time) Trong hệ thống hard real-time, hệ thống phải tiếp nhận nắm bắt scheduling deadline thời điểm Sự sai sót việc tiếp nhận deadline dẫn đến hậu nghiêm trọng người Lấy ví dụ: máy hỗ trợ nhịp tim cho bệnh nhân phẫu thuật Thuật toán điều khiển phụ thuộc vào thời gian nhịp tim người bệnh, thời gian bị trễ, tính mạng người bệnh bị ảnh hưởng Đối với khái niệm soft real-time, scheduling deadline thở chút Chúng ta mong muốn hệ thống phản ứng lại kiện thời gian cho phép thực nghiêm trọng xảy hệ thống bị trễ Lỗi mặt thời gian đơn giản dẫn đến hậu giảm độ tin cậy đối tượng hệ thống mà hậu thê thảm khác xảy Mạng lưới thu ngân tự động ngân hàng ví dụ rõ cho soft real-time Mạng rút tiền tự động ATM hệ thống thời gian thực? Chẳng dám đặt cược Khi bạn đưa thẻ ATM vào máy, bạn mong máy phản ứng lại vòng hay giây Nhưng lâu thế, điều tồi tệ xảy là… bạn sốt ruột thấy khó chịu máy Trên thực tế có nhiều hệ thống phối hợp loại trên, đó, phần hệ thống làm việc dựa hard real-time, số phần khác lại dựa soft real-time Hệ điều hành thời gian thực Hệ điều hành thời gian thực – RealTime Operating Systems(RTOS), phần mềm điều khiển chuyên dụng thường dùng ứng dụng điện toán nhúng có tài nguyên nhớ hạn chế yêu cầu ngặt nghèo thời gian đáp ứng tức thời, tính sẵn sàng cao khả tự kiểm soát cách xác Có thể tìm thấy RTOS nơi Chúng phổ biến hệ điều hành mà bạn quen thuộc Windows, Mac OS Unix RTOS âm thầm làm việc bên định tuyến chuyển mạch mạng, động xe, máy nhắn tin, điện thoại di động, thiết bị y tế, thiết bị đo lường điều khiển công nghiệp vô số ứng dụng khác 3/6 Hệ điều hành cho hệ thống nhúng (HĐH thời gian thực) Một thuộc tính quan trọng RTOS khả tách biệt với ứng dụng, có chương trình bị "chết" hay hoạt động không hợp lệ, RTOS nhanh chóng cô lập chương trình này, kích hoạt chế phục hồi bảo vệ chương trình khác hay thân hệ điều hành khỏi hậu lệnh sai Cơ chế bảo vệ tương tự áp dụng để tránh tình trạng tràn nhớ chương trình gây RTOS xuất hai dạng: cứng mềm Nếu tính xử lý ứng với kiện không xảy hay xảy không đủ nhanh, RTOS cứng chấm dứt hoạt động giữ không gây ảnh hưởng đến độ tin cậy tính sẵn sàng phần lại hệ thống Vì RTOS máy tính nhúng trở nên phổ biến ứng dụng quan trọng, nhà phát triển thương mại tạo nên RTOS với tính sẵn sàng cao Những sản phẩm có thành phần phần mềm chuyên dụng làm chức cảnh báo, chạy chương trình chẩn đoán hệ thống để giúp xác định xác vấn đề trục trặc hay tự động chuyển đổi sang hệ thống dự phòng Hiện thời RTOS sẵn sàng cao hỗ trợ bus Compact PCI tổ chức PCI Industrial Computer Manufacturers Group, bus dùng cho phần cứng trao đổi nóng RTOS có nhiều dạng Sản phẩm thương mại VxWorks VxWorks AE, Wind River Systems Inc; VxWorks AE thiết kế với tính sẵn sàng cao, hỗ trợ khả gửi thông điệp phân tán chịu lỗi RTOS cho phép lập trình viên tách biệt thư viện dùng chung, liệu phần mềm hệ thống ứng dụng LynxOS loại RTOS cứng, làm việc với Unix Java QNX chạy xử lý Intel x86 với nhân có 10 KB RTOS giới nghiên cứu gồm có Chimera Đại học Carnegie Mellon Đây hệ thống đa nhiệm, đa xử lý thời gian thực, thiết kế để tạo dễ dàng cho nhà lập trình việc tái cấu hình tái sử dụng mã Chimera nhắm vào hệ thống rô bô tự động RTOS Đại học Maryland, có tên Maruti, hỗ trợ cho ứng dụng thời gian thực cứng mềm Trong nhiều năm, ứng dụng dựa RTOS chủ yếu hệ thống nhúng gần chúng có mặt khắp nơi, từ thiết bị y tế điều khiển máy ảnh máy pha cà phê, ứng dụng tính toán phân tán thúc đẩy nhà phát triển hệ điều hành thực nghiên cứu phát triển chuẩn Chính phủ Mỹ có số chương trình lĩnh vực công nghệ quản lý tài nguyên thời gian thực, mạng, quản lý liệu phần mềm điều khiển trung gian Mục đích chương trình làm cho hệ thống cộng tác, phân tán giao tiếp chia sẻ tài nguyên với Một uỷ ban chuyên trách đẩy mạnh việc tạo khung công nghệ cho tính toán phân tán thời gian thực, áp dụng cho ứng dụng quân thương mại Khung công nghệ hỗ trợ giao tiếp thành phần liên tác chuẩn 4/6 Hệ điều hành cho hệ thống nhúng (HĐH thời gian thực) Cho dù người tạo môi trường tính toán phân tán thời gian thực, phổ dụng RTOS công nghệ quan trọng mà người dùng cuối chưa nghe đến So sánh kiến trúc RTOS OS chuẩn Hệ thống điều hành với phần lõi hạt nhân phải đảm nhiệm tác vụ sau: • • • • • • • • • • Xử lý ngắt Lưu trữ ngữ cảnh chương trình thời điểm xuất ngắt Nhận dạng lựa chọn xử lý phục vụ dịch vụ ngắt Điều khiển trình Tạo kết thúc trình/tác vụ Lập lịch đ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 Cấu trúc Hệ điều hành thời gian thực Tùy theo chế thực xây dựng hoạt động hạt nhân người ta phân loại số loại hình: • Hệ thống thời gian thực nhỏ: Với loại phần mềm phát triển mà không cần có hệ điều hành, người lập trình phải tự quản lý xử lý vấn đề điều khiển hệ thống bao gồm: 5/6 Hệ điều hành cho hệ thống nhúng (HĐH thời gian thực) • • • • • • • • • • • Xử lý ngắt Điều khiển trình/ tác vụ Quản lý nhớ Công nghệ đa nhiệm Mỗi trình có không gian nhớ riêng Các trình phải chia nhỏ thành Thread chia sẻ không gian nhớ Các dịch vụ cung cấp hạt nhân Tạo kết thúc trình/ tác vụ Truyền thống trình Các dịch vụ định thời gian Một số dịch vụ cung cấp hỗ trợ việc thực thi liên quan đến điều khiển hệ thống 6/6 .. .Hệ điều hành cho hệ thống nhúng (HĐH thời gian thực) Kiến trúc Hệ điều hành Hệ điều hành cho hệ thống nhúng - hệ điều hành thời gian thực Thời gian thực (Real - Time) gì? Thời gian thực... Hệ điều hành cho hệ thống nhúng (HĐH thời gian thực) Các dạng thời gian thực Về bản, chương trình có tính thời gian thực phải có khả phản ứng lại kiện môi trường mà hệ thống làm việc khoảng thời. .. nghệ hỗ trợ giao tiếp thành phần liên tác chuẩn 4/6 Hệ điều hành cho hệ thống nhúng (HĐH thời gian thực) Cho dù người tạo môi trường tính toán phân tán thời gian thực, phổ dụng RTOS công nghệ