Hệ điều hành thời gian thực (RTOS). Hệ điều hành thời gian thực

Bộ Giáo dục và Khoa học Liên bang Nga

Đại học Công nghệ Bang Volga

Tóm tắt về môn học

“Hệ điều hành thời gian thực: tính năng và ứng dụng”

Người hoàn thành: Sinh viên EF (nhóm PI-12)

Mikushov Yu. V.

[email được bảo vệ]

Giáo viên: Borodin A.V.

Yoshkar-Ola

●Giới thiệu

●Định nghĩa

●Phát triển hệ điều hành hiện đại

●Hiện trạng của lĩnh vực chủ đề

●Sự khác biệt so với các hệ điều hành có mục đích chung

●Kiến trúc RTOS

●Các loại tác vụ của hệ điều hành

●Năm tác vụ hệ điều hành vô hình quan trọng nhất

●Tính năng

●Ứng dụng

●Thị trường hệ điều hành

●Tương lai của RTOS

●Kết luận

●Danh sách các nguồn được sử dụng

Giới thiệu

Hệ điều hành thời gian thực (RTOS) được thiết kế để cung cấp giao diện cho tài nguyên của các hệ thống thời gian thực quan trọng về mặt thời gian. Nhiệm vụ chính trong các hệ thống như vậy là tính kịp thời của việc xử lý dữ liệu.

Yêu cầu chính đối với RTOS là đảm bảo khả năng dự đoán hoặc thuyết định mệnh hành vi của hệ thống trong điều kiện bên ngoài tồi tệ nhất, khác biệt rõ rệt so với yêu cầu về hiệu suất và tốc độ của các hệ điều hành phổ thông. Một RTOS tốt có hành vi có thể dự đoán được trong mọi tình huống tải hệ thống (ngắt đồng thời và thực thi luồng).

Có một số khác biệt giữa hệ thống thời gian thực và hệ thống nhúng. Một hệ thống nhúng không phải lúc nào cũng được yêu cầu phải có hành vi có thể dự đoán được, trong trường hợp đó nó không phải là hệ thống thời gian thực. Tuy nhiên, ngay cả việc xem xét nhanh các hệ thống nhúng có thể cũng cho thấy rằng hầu hết các hệ thống nhúng đều yêu cầu hành vi có thể dự đoán được đối với ít nhất một số chức năng và do đó các hệ thống này có thể được phân loại là hệ thống thời gian thực.

Người ta thường phân biệt giữa hệ thống thời gian thực mềm và cứng. Trong các hệ thống thời gian thực cứng, việc không thể đưa ra phản hồi cho bất kỳ sự kiện nào tại một thời điểm nhất định sẽ dẫn đến lỗi và không thể hoàn thành nhiệm vụ được giao. Trong hầu hết các tài liệu tiếng Nga, những hệ thống như vậy được gọi là hệ thống có thời gian xác định. Trong các ứng dụng thực tế, thời gian phản ứng phải ở mức tối thiểu. Hệ thống thời gian thực mềm là hệ thống không nằm trong định nghĩa “cứng”, bởi vì Vẫn chưa có định nghĩa rõ ràng cho chúng trong tài liệu. Các hệ thống thời gian thực mềm có thể không có thời gian để giải quyết vấn đề, nhưng điều này không dẫn đến sự cố của toàn bộ hệ thống. Trong các hệ thống thời gian thực, cần phải đưa ra một thời hạn nhất định (trong tài liệu tiếng Anh - thời hạn), trước khi hết thời hạn đó, nhiệm vụ nhất thiết phải được hoàn thành (đối với hệ thống thời gian thực mềm - tốt nhất là). Thời hạn này được người lập lịch tác vụ sử dụng để chỉ định mức độ ưu tiên cho một tác vụ khi nó được khởi chạy và khi chọn một tác vụ để thực thi.

Các định nghĩa

Hệ thống thời gian thực là một loại hệ điều hành, mục đích chính của nó là cung cấp một bộ chức năng cần và đủ để đảm bảo sự phát triển phần mềm của hệ thống thời gian thực trên phần cứng cụ thể.

Một hệ thống được gọi là hệ thống thời gian thực nếu tính chính xác trong hoạt động của nó không chỉ phụ thuộc vào tính chính xác logic của các phép tính mà còn phụ thuộc vào thời gian thực hiện các phép tính này. Nghĩa là, đối với các sự kiện xảy ra trong một hệ thống như vậy, thời điểm các sự kiện này xảy ra cũng quan trọng như tính đúng đắn về mặt logic của chính các sự kiện đó.

Các thành phần của hệ thống thời gian thực

Phần mềm ứng dụng

điều phối

Giao tiếp giữa các luồng

Hệ điều hành thời gian thực

Xử lý ngắt

Bảo vệ đảo ngược ưu tiên

Quản lý chủ đề

Quản lý bộ nhớ

Phần cứng

Thiết bị

Giải mã Mac OS X:

    “Mac” dùng để chỉ tên công ty Macintosh.

    “OS” - hệ điều hành, tức là hệ điều hành.

    “X” là số mười La Mã, biểu thị số phiên bản hệ điều hành.

Phát triển hệ điều hành hiện đại

Trong sự phát triển của các hệ điều hành hiện đại, có xu hướng chuyển mã sâu hơn lên các cấp cao hơn, đồng thời loại bỏ mọi thứ có thể có khỏi chế độ kernel, để lại một vi nhân tối thiểu. Điều này thường được thực hiện bằng cách chuyển hầu hết các tác vụ của hệ điều hành sang các quy trình của người dùng.

Khi nhận được yêu cầu thực hiện một thao tác, chẳng hạn như đọc một khối tệp, quy trình người dùng (hiện được gọi là quy trình được cung cấp hoặc quy trình máy khách) sẽ gửi yêu cầu đến quy trình máy chủ (máy chủ), quy trình này sẽ xử lý yêu cầu đó và gửi lại phản hồi.

Bằng cách chia hệ điều hành thành các phần, mỗi phần chỉ quản lý một thành phần của hệ thống (hệ thống tệp, quy trình, thiết bị đầu cuối hoặc bộ nhớ), tất cả các phần đều trở nên nhỏ và có thể quản lý được.

Ngoài ra, vì tất cả các máy chủ đều chạy dưới dạng tiến trình ở chế độ người dùng thay vì tiến trình ở chế độ lõi, nên chúng không có quyền truy cập trực tiếp vào phần cứng. Do đó, nếu xảy ra lỗi trên máy chủ file, dịch vụ xử lý yêu cầu file có thể gặp sự cố nhưng điều này thường không khiến toàn bộ máy dừng lại.

Một ưu điểm khác của mô hình client-server là nó có thể dễ dàng thích ứng để sử dụng trong các hệ thống phân tán. Nếu máy khách giao tiếp với máy chủ bằng cách gửi tin nhắn, máy khách không cần biết liệu tin nhắn của nó có đang được xử lý cục bộ trên máy của nó hay nó được gửi qua mạng tới máy chủ trên máy từ xa. Từ quan điểm của khách hàng, điều tương tự xảy ra trong cả hai trường hợp: yêu cầu được gửi và nhận được phản hồi.

Câu chuyện trên về kernel quản lý việc truyền tin nhắn từ máy khách đến máy chủ và ngược lại là không hoàn toàn thực tế. Một số chức năng của hệ điều hành, chẳng hạn như tải hướng dẫn vào thanh ghi thiết bị I/O vật lý, rất khó, nếu không nói là không thể thực hiện được từ các chương trình trong không gian người dùng. Có hai cách để giải quyết vấn đề này.

Đầu tiên là một số quy trình máy chủ quan trọng (chẳng hạn như trình điều khiển thiết bị I/O) thực sự chạy ở chế độ kernel, có toàn quyền truy cập vào phần cứng nhưng giao tiếp với các quy trình khác bằng cách truyền thông báo bình thường.

Tùy chọn thứ hai là xây dựng một cơ chế xử lý thông tin tối thiểu trong kernel nhưng để lại các quyết định về chính sách cho các máy chủ trong không gian người dùng. Ví dụ: kernel có thể nhận dạng các tin nhắn được gửi đến các địa chỉ cụ thể. Đối với kernel, điều này có nghĩa là nó cần lấy nội dung của thông báo và tải nó vào một số thanh ghi I/O trên đĩa để kích hoạt thao tác đọc đĩa.

Trong ví dụ này, kernel thậm chí có thể không kiểm tra các byte thông báo xem chúng có hợp lệ hoặc có ý nghĩa hay không; nó có thể sao chép chúng một cách mù quáng vào các thanh ghi đĩa. (Rõ ràng, một số lược đồ phải được sử dụng để giới hạn phạm vi của các quy trình có quyền gửi những tin nhắn như vậy.)

Hiện trạng của lĩnh vực chủ đề

Hiệp hội, công ty và sản phẩm

Microsoft và Apple Inc. là những nhà sản xuất hệ điều hành và phần mềm phổ biến nhất cho họ trong thế giới hiện đại.

Hệ điều hành hiện đại của Microsoft:

    Windows XP (Windows NT 5.1)

    Windows Vista (Windows NT 6.0)

    Windows 7 (Windows NT 6.1)

    Windows 8 (Windows NT 6.2)

    Windows 10 (Windows NT 10)

Hệ điều hành hiện đại của Apple Inc:

Hệ điều hành di động hiện đại:

  1. Hệ thống Linux (Android)

Sự khác biệt so với các hệ điều hành có mục đích chung

Sự khác biệt chính giữa các dịch vụ cốt lõi của RTOS là tính chất xác định trong công việc của chúng, dựa trên việc kiểm soát thời gian nghiêm ngặt. Trong trường hợp này, tính tất định có nghĩa là việc thực thi một dịch vụ hệ điều hành yêu cầu một khoảng thời gian trong khoảng thời gian đã biết. Về mặt lý thuyết, thời gian này có thể được tính bằng các công thức toán học, phải hoàn toàn đại số và không bao gồm bất kỳ tham số thời gian nào có tính chất ngẫu nhiên. Bất kỳ biến ngẫu nhiên nào xác định thời gian thực hiện của một tác vụ trong RTOS đều có thể gây ra độ trễ không mong muốn trong ứng dụng, khi đó tác vụ tiếp theo sẽ không đáp ứng được lượng tử thời gian của nó, điều này sẽ gây ra lỗi.

Theo nghĩa này, hệ điều hành có mục đích chung không mang tính quyết định. Các dịch vụ của họ đôi khi có thể gây ra sự chậm trễ trong hoạt động, điều này có thể dẫn đến sự chậm lại trong phản hồi của ứng dụng đối với hành động của người dùng tại một thời điểm không xác định. Khi thiết kế các hệ điều hành thông thường, các nhà phát triển không tập trung chú ý vào bộ máy toán học để tính toán thời gian thực hiện một nhiệm vụ và dịch vụ cụ thể. Điều này không quan trọng đối với loại hệ thống này

Kiến trúc RTOS

Trong lịch sử của nó, kiến ​​trúc hệ điều hành đã trải qua sự phát triển đáng kể. Một trong những nguyên tắc xây dựng đầu tiên, được gọi là. Hệ điều hành nguyên khối (Hình 1), nhằm trình bày HĐH như một tập hợp các mô-đun tương tác với nhau theo nhiều cách khác nhau trong nhân hệ thống và cung cấp các chương trình ứng dụng với giao diện đầu vào để truy cập phần cứng. Nhược điểm chính của kiến ​​trúc này là khả năng dự đoán hành vi của nó kém, gây ra bởi sự tương tác phức tạp của các mô-đun hệ thống với nhau.

Tuy nhiên, hầu hết các hệ điều hành hiện đại, cả thời gian thực và đa năng, đều được xây dựng chính xác theo nguyên tắc này.

Trong các tác vụ tự động hóa, hệ điều hành cấp độ được sử dụng rộng rãi dưới dạng RTOS (Hình 2). Một ví dụ về hệ điều hành như vậy là hệ thống MS-DOS nổi tiếng. Trong các hệ thống thuộc lớp này, các ứng dụng ứng dụng có thể truy cập phần cứng không chỉ thông qua nhân hệ thống hoặc các dịch vụ thường trú của nó mà còn có thể truy cập trực tiếp. RTOS đã được xây dựng dựa trên nguyên tắc này trong nhiều năm. So với các hệ điều hành nguyên khối, kiến ​​trúc này cung cấp mức độ dự đoán phản ứng hệ thống cao hơn đáng kể và cũng cho phép các ứng dụng ứng dụng truy cập nhanh vào phần cứng. Nhược điểm của các hệ thống như vậy là thiếu đa nhiệm. Trong kiến ​​trúc này, vấn đề xử lý các sự kiện không đồng bộ được giảm xuống thành các thông báo lưu vào bộ đệm, sau đó thăm dò tuần tự các bộ đệm và xử lý chúng. Đồng thời, việc tuân thủ thời hạn dịch vụ quan trọng được đảm bảo nhờ hiệu suất cao của tổ hợp máy tính so với tốc độ của các quy trình bên ngoài.

Một trong những kiến ​​trúc hiệu quả nhất để xây dựng hệ điều hành thời gian thực là kiến ​​trúc client-server. Sơ đồ chung của một hệ điều hành hoạt động sử dụng công nghệ này được trình bày trong Hình 3. Nguyên tắc chính của kiến ​​trúc này là chuyển các dịch vụ hệ điều hành dưới dạng máy chủ đến cấp độ người dùng và vi nhân thực hiện các chức năng của trình quản lý tin nhắn giữa các máy khách. chương trình người dùng và máy chủ - dịch vụ hệ thống. Kiến trúc này cung cấp rất nhiều lợi thế về yêu cầu đối với RTOS và các hệ thống nhúng. Trong số những lợi thế này là:

1. Độ tin cậy của hệ điều hành tăng lên vì Trên thực tế, mỗi dịch vụ là một ứng dụng độc lập và dễ dàng gỡ lỗi cũng như theo dõi lỗi hơn.

2. Hệ thống như vậy có quy mô tốt hơn vì các dịch vụ không cần thiết có thể được loại trừ khỏi hệ thống mà không ảnh hưởng đến hiệu suất của hệ thống.

3. Khả năng chịu lỗi của hệ thống tăng lên vì Dịch vụ bị đóng băng có thể được khởi động lại mà không cần khởi động lại hệ thống.

Thật không may, ngày nay không có nhiều hệ điều hành được triển khai theo nguyên tắc máy khách-máy chủ. Trong số các RTOS nổi tiếng triển khai kiến ​​trúc vi nhân là OS9 và QNX.

Các loại nhiệm vụ

Mỗi tiến trình bao gồm một hoặc nhiều nhiệm vụ. Hệ điều hành cho phép một tác vụ sinh ra các tác vụ mới. Nhiệm vụ có thể được chia thành 3 loại dựa trên cách thức hành động của chúng.

1. Nhiệm vụ mang tính chu kỳ. Đặc điểm của quá trình kiểm soát và quá trình tương tác.

2. Nhiệm vụ định kỳ. Điển hình cho nhiều quy trình công nghệ và nhiệm vụ đồng bộ hóa.

3. Nhiệm vụ xung lực. Điển hình cho các vấn đề về tín hiệu và quy trình công nghệ không đồng bộ.

Năm nhiệm vụ vô hình quan trọng nhất của hệ điều hành

1. Cung cấp “khớp nối” phần cứng-phần mềm

Hệ điều hành đóng vai trò như một loại “trình dịch” giữa phần cứng máy tính và phần mềm của nó. Nếu bạn mở vỏ máy tính, bạn có thể thấy nhiều bo mạch, chip, dây cáp và các thành phần khác. Đây là cơ sở vật lý giúp cho việc thực hiện chương trình có thể thực hiện được. Nhưng một chương trình không thể đơn giản lấy và sử dụng tài nguyên phần cứng của máy tính. Nó thực hiện điều này thông qua hệ điều hành.

Gần đây, hệ điều hành ngày càng được gọi là “nền tảng”. Và cái tên này phản ánh rất chính xác bản chất. Hệ điều hành là nền tảng chứa các chương trình. Hoặc, như người ta nói bây giờ, các ứng dụng cho hệ điều hành. Đây là hệ điều hành cho phép phần mềm “nói chuyện” với phần cứng. Điều này cũng áp dụng cho các thiết bị đầu vào và đầu ra. Ví dụ đơn giản nhất về thiết bị đầu vào là bàn phím và thiết bị đầu ra là màn hình.

Đây là công việc rất quan trọng. Về lý thuyết, hàng trăm thiết bị đầu vào và đầu ra khác nhau có thể được kết nối với một máy tính. Hãy lấy một con chuột thông thường. Nhưng “chuột” là một khái niệm chung. Có hàng chục mô hình khác nhau của bộ điều khiển này. Sẽ là một nhiệm vụ nặng nề khi cung cấp phần mềm hỗ trợ riêng cho từng loại chuột để nó giao tiếp trực tiếp với tài nguyên của máy tính. Nhưng giải pháp là cơ sở dữ liệu trình điều khiển có trong hệ điều hành. Đối với người dùng, có vẻ như anh ta chỉ cần kết nối bất kỳ con chuột nào với máy tính của mình và nó ngay lập tức bắt đầu hoạt động.

2. Buộc cùng một ứng dụng hoạt động trên các phần cứng khác nhau

Đây là hệ điều hành cho phép phần mềm chạy trên các máy tính khác nhau chứ không chỉ trên một cấu hình cụ thể. Ngày xửa ngày xưa, các chương trình được viết cho một kiểu máy tính cụ thể. Ngôn ngữ lập trình thực sự đóng vai trò là hệ điều hành của tiền thân của PC hiện đại, máy vi tính vào cuối những năm bảy mươi của thế kỷ trước.

Nhưng ngày nay, HĐH đã đảm nhận vai trò như một loại “bộ chuyển đổi” giữa các chương trình và phần cứng máy tính. Nếu bạn lấy bất kỳ hai kiểu máy tính nào, bộ linh kiện mà chúng được lắp ráp sẽ khác nhau. Điều này áp dụng ngay cả với những chiếc Macintosh nổi tiếng vì sự giống nhau của chúng, chưa kể đến tất cả sự đa dạng khổng lồ có thể tìm thấy trên thị trường PC hiện đại.

Môi trường hoạt động tạo ra cái gọi là môi trường trừu tượng cho chương trình. Điều này có thể được biểu diễn dưới dạng cuộc đối thoại giữa HĐH và chương trình. Trong “cuộc trò chuyện” mà con người không thể hiểu được này, chương trình “nói” với nền tảng về nhu cầu của nó và hệ điều hành phải “suy nghĩ” về cách thỏa mãn chúng một cách hợp lý. Vấn đề là bạn cần phải suy nghĩ rất nhanh chóng. Game thủ hiện đại không sẵn sàng đợi một hoặc hai giờ để tải trò chơi yêu thích của mình.

Vì vậy, chương trình “cho” hệ điều hành biết chính xác những gì nó cần để hoạt động chính xác. Rốt cuộc, ứng dụng không quen thuộc trực tiếp với tài nguyên máy tính. Và hệ điều hành lần lượt phân phối các nhiệm vụ được chương trình giao cho nó giữa các tài nguyên của thiết bị kỹ thuật số. Và loại phần cứng không quan trọng đối với chương trình. Nền tảng sẽ đảm nhiệm mọi thứ! Hệ điều hành có thể “nói”, nếu không phải với tất cả thì với nhiều thiết bị và mô-đun phần cứng.

Nếu không có kỹ năng điều hành quý giá này, các lập trình viên sẽ phải viết lại chương trình của mình cho từng cấu hình máy tính cụ thể, cho từng bộ linh kiện. Và, nếu không có hệ điều hành, chương trình có thể không hoạt động trên một máy tính có các đặc điểm khác với những đặc điểm mà người lập trình dự tính khi tạo chương trình.

Ngày nay, các nhà phát triển tạo ứng dụng của họ cho các nền tảng chứ không phải cho một số cấu hình phần cứng đã biết. Nói một cách đơn giản, không phải dành cho một máy tính cụ thể mà dành cho một hệ điều hành cụ thể. Tất nhiên, điều này dễ dàng hơn nhiều. Hàng triệu thiết bị có thể chạy cùng một hệ điều hành. Do đó, hàng chục, thậm chí hàng trăm nghìn ứng dụng đã trở nên khả thi, có sẵn cho người dùng hiện đại của từng nền tảng phổ biến.

3. Tìm kiếm file mà ứng dụng yêu cầu

Chỉ riêng tài nguyên vật lý của máy tính sẽ không đủ để các chương trình có thể thực hiện chính xác các nhiệm vụ của chúng. Tất cả thông tin được lưu trữ trong các tệp và các tệp này phải tuân theo các quy tắc nhất định. Các quy tắc này bao gồm cách đặt tên và lưu trữ tệp. Chúng tôi gọi bộ quy tắc chung này là “hệ thống quản lý tệp” hoặc đơn giản là “trình quản lý tệp”.

Các hệ điều hành khác nhau thực hiện các cách tiếp cận khác nhau để quản lý tập tin. Ngoài ra, người dùng có thể cài đặt phần mềm bổ sung cho phép quản lý tệp hiệu quả hơn. Hệ điều hành có nhiệm vụ “ghi nhớ” các tập tin được lưu trữ trên máy tính. Khi một ứng dụng muốn truy cập vào một tệp cụ thể, hệ điều hành sẽ chỉ cho chương trình đường dẫn đến tệp đó.

Nếu không có hệ thống quản lý tập tin, thông tin số trên máy tính chỉ đơn giản là một tập hợp dữ liệu vô nghĩa. Sự hỗn loạn, trong đó không có gì có thể được tìm thấy. Và hơn thế nữa, hãy tìm thấy nó trong khoảng thời gian ngắn nhất của một giây.

Hệ điều hành tuân theo các quy tắc riêng của nó một cách vô hình đối với chúng tôi, vì vậy bạn không cần phải truy cập thủ công vào các ô nhớ nơi tệp bạn cần được lưu trữ vật lý. Tuy nhiên, quan trọng nhất, người dùng hệ điều hành hiện đại không nhất thiết phải biết những quy tắc này để làm việc trên máy tính.

4. Phân bổ hiệu quả RAM khả dụng

Vì chúng ta đang nói về bộ nhớ nên việc nhớ về bộ nhớ truy cập ngẫu nhiên (RAM) là điều hợp lý. Về chính bộ lưu trữ luôn “trong tầm tay” của bộ xử lý.

Cần phải nhấn mạnh rằng tài nguyên máy tính quan trọng nhất này cũng được quản lý bởi hệ điều hành. RAM là tài nguyên được nhiều người dùng đánh giá rất thấp. Làm thế nào để máy tính của bạn chạy nhanh hơn? Nhiều người cho rằng họ rất cần một bộ xử lý mạnh hơn. Nhưng trên thực tế, thường chỉ cần tăng dung lượng RAM là đủ để hiệu suất máy tính tăng đáng kể.

Trong RAM, máy tính lưu trữ thông tin mà bộ xử lý có thể yêu cầu thực hiện các phép tính. Hãy coi loại bộ nhớ này đơn giản như một thiết bị lưu trữ tạm thời cho những thông tin cần “gần với bộ xử lý hơn”.

Khi làm việc với máy tính, đôi khi chúng ta có nhiều chương trình chạy cùng lúc. Hệ điều hành phân bổ một lượng bộ nhớ nhất định cho mỗi tác vụ. Nếu bộ xử lý cần thông tin mà nó không tìm thấy trong RAM, nó sẽ phải tìm thông tin đó ở nơi khác. Đặc biệt, trên ổ cứng của máy tính. Việc này sẽ mất nhiều thời gian hơn việc lấy dữ liệu từ RAM. Đối với người dùng, tình huống này sẽ giống như tình trạng ứng dụng bị "đóng băng" tạm thời. Trong những trường hợp như vậy, người ta thường nói rằng “máy tính suy nghĩ”.

Một trong những nhiệm vụ mà hệ điều hành đảm nhận một cách vô hình đối với người dùng là giảm thiểu thời gian trễ, tức là khoảng thời gian rất khó chịu khi máy tính đang bận công việc riêng và không phản hồi các cuộc gọi của bạn đến nó. Vấn đề là tại bất kỳ thời điểm nào hệ điều hành

có một lượng RAM nhất định, luôn bị giới hạn. Âm lượng này cũng phụ thuộc vào số lượng chương trình bạn đang chạy cùng lúc. Hệ điều hành phải “biết” mọi lúc nó còn bao nhiêu RAM để phân bổ kịp thời cho tiến trình cần tài nguyên quan trọng này.

Hệ điều hành "đánh giá" các yêu cầu của từng tiến trình đang chạy và quyết định cách đáp ứng chúng một cách thông minh. Lý tưởng nhất là việc này nên được thực hiện theo cách mà người dùng không gặp phải bất kỳ sự chậm trễ nào. Nhưng trên thực tế, HĐH chỉ cố gắng giảm thiểu độ trễ đó đến mức tối thiểu, phân bổ hợp lý các tài nguyên mà nó thực sự có.

Không có máy tính nào trên Trái đất có RAM không giới hạn. Do đó, hệ thống luôn phải chọn quy trình nào được coi là ưu tiên tại một thời điểm nhất định và quy trình nào là thứ yếu. Ai nên phân bổ bộ nhớ khẩn cấp và ai sẽ quản lý và kiên nhẫn trong lúc này. Người dùng không phải lúc nào cũng có thể đồng ý với các quy tắc mà hệ điều hành tuân theo khi cấp phát bộ nhớ. Nhưng việc phân bổ RAM trống một cách độc lập cho các quy trình sẽ khó khăn và tốn thời gian hơn nhiều so với việc giao phó nó cho một nền tảng phần mềm.

5. Tập trung sự chú ý của bộ xử lý vào một tác vụ cụ thể

Bộ xử lý trung tâm (CPU) là mô-đun vật lý giải quyết các tác vụ mà người dùng đặt ra cho máy tính của mình. Một điều nữa là hiếm có người dùng nào nói được ngôn ngữ mà bộ xử lý hiểu được. Hơn nữa, thậm chí không phải mọi lập trình viên đều quen thuộc với mã máy. Một người thậm chí có thể không nghĩ đến thực tế rằng bất kỳ chương trình nào cũng là một tập hợp các vấn đề toán học phức tạp.

Bộ xử lý trung tâm thực hiện các phép tính, nghĩa là nó tìm ra giải pháp cho những vấn đề này và cung cấp cho bạn các kết quả làm sẵn thậm chí không giống với các công thức trong sách giáo khoa đại số. Người dùng bình thường đơn giản là không quan tâm đến tất cả các phép toán này. Anh ta muốn nhân vật trong game của mình nhảy qua chướng ngại vật trong tích tắc hoặc muốn kiểm tra chính tả của văn bản anh ta vừa viết. Đằng sau những vấn đề tưởng chừng như không hề nhàm chán này lại là một phép toán phức tạp nhất.

Mỗi chương trình đang chạy đều yêu cầu một phần sức mạnh xử lý của bộ xử lý. Càng chạy nhiều chương trình cùng lúc, tải bộ xử lý càng gần mức tối đa. Nhiệm vụ của hệ điều hành là điều phối việc cung cấp thông tin xử lý đến bộ xử lý để mọi việc diễn ra suôn sẻ và không bị người dùng chú ý. Hệ điều hành có thể chuyển sự chú ý của bộ xử lý từ tác vụ này sang tác vụ khác.

Một trong những vai trò quan trọng của hệ điều hành là vai trò của người quản lý tài nguyên. Nếu nó đối phó tốt với nhiệm vụ này, thì chúng ta thậm chí không biết bộ xử lý tạm gác một nhiệm vụ này sang một nhiệm vụ khác và chuyển sự chú ý của nó sang nhiệm vụ khác vào thời điểm nào.

Trợ lý vô hình và không thể thay thế

Công việc khó khăn nhất của hệ điều hành là khiến bạn bỏ qua nó và tập trung vào các ứng dụng mà bạn quan tâm. Và trong khi mọi thứ đang diễn ra tốt đẹp, người dùng lại không hề nghĩ đến nền tảng này. Và chỉ khi lỗi phần mềm bắt đầu, người dùng mới nhận ra sứ mệnh của hệ điều hành quan trọng như thế nào.

Những “sự khác biệt” giữa các hệ điều hành mà hầu hết người dùng dễ nhận thấy chỉ đơn thuần là về mặt thẩm mỹ. Rất hiếm người dùng đủ hiểu lập trình để thấy đằng sau lớp vỏ giao diện đồ họa điều gì thực sự phân biệt hệ điều hành này với hệ điều hành khác. Cả vẻ ngoài của màn hình nền cũng như thiết kế của các biểu tượng ứng dụng đều không liên quan gì đến bản chất bên trong của hệ điều hành.

Các nhiệm vụ mô tả ở trên được thực hiện bằng cách này hay cách khác bởi mỗi hệ điều hành hiện đại, điều khiển bất kỳ thiết bị máy tính nào. Bất kể hệ điều hành trông như thế nào và nó được cài đặt trên thiết bị nào: trên PC, thiết bị di động hoặc bảng điều khiển trò chơi.

Đặc điểm

Tính năng tích cực

Tính sẵn có của sản phẩm rộng rãi

Trong phần lớn các trường hợp, Windows được cài đặt trên máy tính. Do đó, khi đến thăm bạn bè hoặc nơi làm việc, bạn có thể dễ dàng chuyển một số hình ảnh, tệp văn bản hoặc clip từ ổ đĩa flash. Sự dễ sử dụng và hỗ trợ của HĐH Windows cho mọi phần cứng và mọi chương trình đã góp phần vào việc phân phối HĐH này trên toàn cầu.

Giao diện đẹp

Các hệ điều hành hiện đại có giao diện khá đẹp và trực quan. Điều này thúc đẩy nhận thức nhanh chóng về thông tin, dễ sử dụng máy tính và học cách làm việc với hệ điều hành nhanh chóng.

Độ ổn định của hệ điều hành

Nhìn chung, độ ổn định của hệ điều hành hiện đại có thể gọi là chấp nhận được. Tuy nhiên, từ “chấp nhận được” ở đây phải kèm theo rất nhiều dè dặt:

1. Độ ổn định của HĐH chỉ có thể chấp nhận được sau khi cấu hình đủ chất lượng và chất lượng cao của nó - chẳng ích gì khi nói về một hệ thống chưa được điều chỉnh (cũng như một cây đàn guitar chưa được điều chỉnh) ở đây.

2. Độ ổn định của hệ điều hành hiện đại phần lớn phụ thuộc vào phiên bản của sản phẩm và sự hiện diện của các gói dịch vụ và tiện ích bổ sung đã cài đặt - than ôi, nếu không có chúng, các lỗi thường xuyên xảy ra trong quá trình hoạt động của hệ điều hành.

3. Độ ổn định của HĐH cũng phụ thuộc vào các ứng dụng do người dùng cài đặt trên HĐH: chúng hoạt động càng ổn định và càng tương thích với chính vỏ phần mềm Windows thì chúng ta càng có thể quan sát thấy ít lỗi hơn trong hoạt động của hệ điều hành chính.

4. Độ ổn định của HĐH hiện đại bị ảnh hưởng rất nhiều bởi chính phần cứng, được sử dụng cùng với HĐH đang chạy.

5. Ngoài ra, trình điều khiển thiết bị cũng có ảnh hưởng đáng kể đến hoạt động ổn định của hệ điều hành hiện đại. Đây là những chương trình nhỏ chịu trách nhiệm ghép nối một số phần mềm nhất định với phần cứng nhất định.

Khả năng tương thích tốt với các sản phẩm từ các nhà phát triển khác nhau (khoảngOC các cửa sổ)

Một hệ điều hành hiện đại có khả năng hiểu chính xác bất kỳ loại tệp nào xuất hiện trong những phiên bản đầu tiên của nó. Nếu chúng ta nhớ lại các phần mở rộng tệp giống nhau, thì sẽ thấy rõ rằng trên thực tế, tổ tiên của chúng chính là hệ điều hành nguyên thủy và cổ xưa đó, từng được mua từ nhà phát triển bên thứ ba và được Microsoft - MS-DOS lưu ý đến. Tính liên tục của các định dạng tệp này chạy như một sợi dây xuyên suốt tất cả các phiên bản Windows, bản thân điều này đã thật tuyệt vời.

Các tính năng khác biệt của RTOS với HĐH đa năng

Các hệ điều hành đa năng, đặc biệt là các hệ điều hành nhiều người dùng như UNIX, tập trung vào việc phân phối tối ưu tài nguyên máy tính giữa những người dùng và tác vụ. Trong các hệ điều hành thời gian thực, một tác vụ như vậy sẽ mờ dần ở chế độ nền - mọi thứ lùi lại trước tác vụ chính - để có thời gian phản ứng với các sự kiện xảy ra tại đối tượng. Một điểm khác biệt nữa là việc sử dụng hệ điều hành thời gian thực luôn gắn liền với với thiết bị, với đồ vật, với những sự việc xảy ra tại đồ vật. Hệ điều hành thời gian thực tập trung vào việc xử lý các sự kiện bên ngoài. Một hệ điều hành thời gian thực có thể có giao diện người dùng tương tự như một hệ điều hành đa năng nhưng được thiết kế hoàn toàn khác, hơn nữa, ứng dụng của hệ điều hành thời gian thực luôn mang tính đặc thù. Nếu một hệ điều hành đa năng thường được người dùng (không phải nhà phát triển) coi là một bộ ứng dụng làm sẵn, thì hệ điều hành thời gian thực chỉ đóng vai trò là công cụ để tạo ra một tổ hợp phần cứng và phần mềm thời gian thực cụ thể. Và do đó, tầng lớp người sử dụng hệ điều hành thời gian thực rộng nhất là các nhà phát triển hệ thống thời gian thực, những người thiết kế hệ thống điều khiển và thu thập dữ liệu. Khi thiết kế và phát triển một hệ thống thời gian thực cụ thể, người lập trình luôn biết chính xác những sự kiện nào có thể xảy ra tại cơ sở và biết khung thời gian quan trọng để phục vụ từng sự kiện này.Hệ thống RT phải có thời gian để ứng phó với sự kiện đã xảy ra tại cơ sở trong thời gian quan trọng cho sự kiện này. Giá trị thời gian tới hạn của mỗi sự kiện được xác định bởi đối tượng và chính sự kiện đó và có thể khác nhau nhưng thời gian phản ứng của hệ thống phải được dự đoán (tính toán) khi tạo hệ thống. Việc không phản hồi vào thời điểm dự đoán được coi là lỗi đối với hệ thống thời gian thực, hệ thống phải có khả năng phản hồi với các sự kiện xảy ra đồng thời. Ngay cả khi hai hoặc nhiều sự kiện bên ngoài xảy ra đồng thời, hệ thống vẫn phải có thời gian để phản ứng với từng sự kiện trong khoảng thời gian quan trọng đối với những sự kiện này.

Hệ điều hành thời gian thực

Hệ điều hành mục đích chung

nhiệm vụ chinh

Có thời gian phản ứng với các sự kiện xảy ra trên thiết bị

Phân phối tối ưu tài nguyên máy tính giữa người dùng và tác vụ

Nó tập trung vào cái gì?

Xử lý sự kiện bên ngoài

Xử lý hành động của người dùng

Nó được định vị như thế nào

Một công cụ để tạo phức hợp phần cứng và phần mềm theo thời gian thực cụ thể

Được người dùng cảm nhận như một bộ ứng dụng sẵn sàng để sử dụng

Nó dành cho ai?

Nhà phát triển đủ điều kiện

người sử dụng trung gian

Hệ thống thời gian thực cứng và mềm

Có hai loại hệ thống thời gian thực - hệ thống thời gian thực cứng và hệ thống thời gian thực mềm.

Hệ thống thời gian thực cứng không cho phép bất kỳ sự chậm trễ nào trong phản hồi của hệ thống trong mọi trường hợp vì:

  • kết quả có thể vô ích nếu muộn
  • thảm họa có thể xảy ra nếu phản ứng bị trì hoãn
  • cái giá của việc đến muộn có thể là vô tận.

Ví dụ về hệ thống thời gian thực cứng là hệ thống điều khiển trên tàu, hệ thống bảo vệ khẩn cấp, máy ghi sự kiện khẩn cấp.

Các hệ thống thời gian thực mềm có đặc điểm là độ trễ phản hồi không quan trọng, mặc dù nó có thể dẫn đến tăng chi phí kết quả và giảm hiệu suất của toàn bộ hệ thống. Nếu hệ thống không có thời gian để xử lý gói nhận tiếp theo, điều này sẽ dẫn đến việc bên gửi bị hết thời gian chờ và gửi lại (tất nhiên tùy thuộc vào giao thức). Dữ liệu không bị mất nhưng hiệu suất mạng bị giảm. Sự khác biệt chính giữa hệ thống thời gian thực cứng và mềm có thể được thể hiện như sau: hệ thống thời gian thực cứng không bao giờ bị chậm trễ trong việc phản hồi một sự kiện, hệ thống thời gian thực mềm không bao giờ bị trễ trong việc phản hồi một sự kiện. không bao giờ nên chậm trễ trong việc phản hồi một sự kiện

Hạt nhân hệ điều hành

Kernel là phần trung tâm của hệ điều hành (OS), cung cấp cho các ứng dụng quyền truy cập phối hợp vào tài nguyên máy tính, bộ nhớ, phần cứng bên ngoài, thiết bị đầu vào và đầu ra bên ngoài, dịch các lệnh ngôn ngữ ứng dụng sang ngôn ngữ mã nhị phân mà máy tính hiểu được. phần tử của hệ điều hành, kernel thể hiện mức độ trừu tượng thấp nhất để các ứng dụng truy cập vào tài nguyên hệ thống cần thiết cho hoạt động của chúng. Thông thường, kernel cung cấp quyền truy cập như vậy vào các tiến trình thực thi của các ứng dụng tương ứng thông qua việc sử dụng các cơ chế giao tiếp giữa các tiến trình và các lệnh gọi ứng dụng tới các lệnh gọi hệ điều hành.

lõi nguyên khối

Hạt nhân nguyên khối cung cấp một tập hợp trừu tượng phần cứng phong phú. Tất cả các phần của hạt nhân nguyên khối hoạt động trong cùng một không gian địa chỉ. Đây là một sơ đồ hệ điều hành trong đó tất cả các thành phần của nhân của nó là một phần của một chương trình, sử dụng các cấu trúc dữ liệu chung và tương tác với nhau bằng cách gọi trực tiếp các thủ tục. Hạt nhân nguyên khối là cách tổ chức hệ điều hành lâu đời nhất. Một ví dụ về hệ thống có nhân nguyên khối là hầu hết các hệ thống UNIX.

Thuận lợi: Tốc độ hoạt động, đơn giản hóa việc phát triển các mô-đun.

sai sót: Vì toàn bộ hạt nhân hoạt động trong cùng một không gian địa chỉ, nên một lỗi ở một trong các thành phần có thể làm gián đoạn toàn bộ hệ thống.

Một số hạt nhân nguyên khối cũ, đặc biệt là các hệ thống lớp UNIX/Linux, yêu cầu biên dịch lại bất cứ khi nào thành phần phần cứng thay đổi. Hầu hết các hạt nhân hiện đại đều cho phép bạn tải các mô-đun trong quá trình hoạt động thực hiện một phần chức năng của hạt nhân. Trong trường hợp này, các thành phần của hệ điều hành không phải là các mô-đun độc lập mà là các thành phần của một chương trình lớn được gọi là hạt nhân nguyên khối, là một tập hợp các thủ tục, mỗi thủ tục có thể gọi từng thủ tục. Tất cả các thủ tục chạy ở chế độ đặc quyền.

vi hạt nhân

Hạt nhân vi mô chỉ cung cấp các chức năng điều khiển quy trình cơ bản và một tập hợp trừu tượng tối thiểu để làm việc với phần cứng. Hầu hết công việc được thực hiện thông qua các quy trình người dùng đặc biệt gọi là dịch vụ. Tiêu chí quyết định cho “chủ nghĩa vi hạt” là việc bố trí tất cả hoặc gần như tất cả các trình điều khiển và mô-đun trong quy trình dịch vụ.

Thuận lợi: Khả năng chống lại các lỗi phần cứng và lỗi trong các thành phần hệ thống. Ưu điểm chính của kiến ​​trúc vi nhân là mức độ mô đun hóa cao của nhân hệ điều hành. Điều này làm cho việc thêm các thành phần mới vào nó dễ dàng hơn nhiều. Trong hệ điều hành vi nhân, bạn có thể tải và dỡ bỏ trình điều khiển, hệ thống tệp mới, v.v. mà không làm gián đoạn hoạt động của nó. Quá trình gỡ lỗi các thành phần hạt nhân được đơn giản hóa rất nhiều vì có thể tải phiên bản mới của trình điều khiển mà không cần khởi động lại toàn bộ hệ điều hành . Các thành phần của nhân hệ điều hành về cơ bản không khác biệt gì với các chương trình của người dùng, vì vậy bạn có thể sử dụng các công cụ thông thường để gỡ lỗi chúng. Kiến trúc vi nhân cải thiện độ tin cậy của hệ thống vì lỗi ở cấp chương trình không có đặc quyền sẽ ít nguy hiểm hơn lỗi ở cấp chế độ hạt nhân.

sai sót: Việc truyền dữ liệu giữa các tiến trình đòi hỏi chi phí chung.

Môi trường thực thi

Các yêu cầu đối với môi trường thực thi của hệ thống thời gian thực như sau:

  • bộ nhớ hệ thống nhỏ - cho khả năng nhúng của nó;
  • hệ thống phải nằm hoàn toàn trong bộ nhớ để tránh hoán đổi hoặc hoán đổi trang bộ nhớ;
  • hệ thống phải đa nhiệm - để đảm bảo sử dụng hiệu quả nhất tất cả tài nguyên hệ thống;
  • lõi có mức độ ưu tiên cho các ngắt phục vụ. Ưu tiên ngắt có nghĩa là một quy trình đã sẵn sàng để chạy và có mức ưu tiên nhất định nhất thiết phải được ưu tiên trong hàng đợi so với quy trình có mức ưu tiên thấp hơn, nhanh chóng thay thế quy trình sau và tiến hành thực thi. Kernel hoàn thành bất kỳ công việc dịch vụ nào ngay khi có tác vụ có mức ưu tiên cao nhất đến. Điều này đảm bảo khả năng dự đoán của hệ thống;
  • trình quản lý ưu tiên - cho phép nhà phát triển ứng dụng chỉ định cho mỗi mô-đun khởi động một mức độ ưu tiên không phụ thuộc vào hệ thống. Việc gán mức độ ưu tiên được sử dụng để xác định thứ tự các chương trình đã sẵn sàng được thực thi sẽ được thực thi. Một giải pháp thay thế cho kiểu lập lịch này là lập lịch quay vòng, trong đó mọi chương trình sẵn sàng tiếp tục đều có cơ hội chạy như nhau. Với phương pháp này, không có sự kiểm soát nào về chương trình nào sẽ được thực thi và khi nào. Điều này là không thể chấp nhận được trong môi trường thời gian thực. Điều phối dựa trên mức độ ưu tiên và hạt nhân ưu tiên ngắt cung cấp cho nhà phát triển ứng dụng toàn quyền kiểm soát hệ thống. Nếu xảy ra sự kiện có mức độ ưu tiên cao hơn, hệ thống sẽ ngừng xử lý tác vụ có mức độ ưu tiên thấp hơn và phản hồi yêu cầu mới nhận được.

Sự kết hợp của các thuộc tính được mô tả ở trên tạo ra một môi trường thực thi thời gian thực mạnh mẽ và hiệu quả.

Ngoài các thuộc tính của môi trường thời gian chạy, cũng cần xem xét dịch vụ được cung cấp bởi nhân hệ điều hành thời gian thực. Cốt lõi của bất kỳ môi trường thời gian chạy thời gian thực nào là kernel hoặc bộ điều phối. Hạt nhân điều khiển phần cứng của máy tính mục tiêu: bộ xử lý trung tâm, bộ nhớ và các thiết bị đầu vào/đầu ra; kiểm soát hoạt động của tất cả các hệ thống và phần mềm ứng dụng khác. Trong hệ thống thời gian thực, bộ điều phối nằm giữa phần cứng của máy tính mục tiêu và phần mềm ứng dụng. Nó cung cấp một dịch vụ đặc biệt cần thiết để chạy các ứng dụng thời gian thực. Dịch vụ do kernel cung cấp cho phép các chương trình ứng dụng truy cập vào tài nguyên hệ thống như bộ nhớ hoặc thiết bị đầu vào/đầu ra.

Kernel có thể cung cấp nhiều loại dịch vụ khác nhau:

  • Trao đổi giữa các nhiệm vụ. Thường cần phải truyền dữ liệu giữa các chương trình trong cùng một hệ thống, ngoài ra, nhiều ứng dụng cần giao tiếp với các hệ thống khác qua mạng. Giao tiếp nội bộ có thể được thực hiện thông qua hệ thống nhắn tin. Giao tiếp bên ngoài có thể được tổ chức thông qua datagram (phương pháp phân phối tốt nhất) hoặc qua đường dây liên lạc (phân phối được đảm bảo). Việc lựa chọn phương pháp này hay phương pháp khác phụ thuộc vào giao thức truyền thông.
  • Tách dữ liệu. Trong các ứng dụng thời gian thực, việc thu thập dữ liệu mất nhiều thời gian nhất. Dữ liệu thường cần thiết cho hoạt động của các chương trình khác hoặc hệ thống cần để thực hiện một số chức năng của nó. Nhiều hệ thống cung cấp quyền truy cập vào các phần bộ nhớ dùng chung. Xếp hàng dữ liệu là phổ biến. Có nhiều loại hàng đợi được sử dụng, mỗi loại đều có những ưu điểm riêng.
  • Xử lý yêu cầu từ các thiết bị bên ngoài. Mỗi chương trình ứng dụng được kết nối trong thời gian thực với một loại thiết bị bên ngoài nào đó. Hạt nhân phải cung cấp các dịch vụ I/O cho phép các chương trình ứng dụng đọc và ghi vào các thiết bị này. Đối với các ứng dụng thời gian thực, thông thường cần có một thiết bị bên ngoài dành riêng cho ứng dụng. Hạt nhân phải cung cấp một dịch vụ giúp làm việc với trình điều khiển thiết bị dễ dàng hơn. Ví dụ: cung cấp khả năng viết bằng các ngôn ngữ cấp cao - chẳng hạn như C hoặc Pascal.
  • Xử lý các tình huống đặc biệt. Ngoại lệ là một sự kiện xảy ra trong quá trình thực hiện chương trình. Nó có thể đồng bộ nếu sự xuất hiện của nó có thể dự đoán được, chẳng hạn như chia cho 0. Và nó cũng có thể không đồng bộ nếu xảy ra ngoài dự đoán, chẳng hạn như sụt áp. Việc cung cấp khả năng xử lý các loại sự kiện này cho phép các ứng dụng thời gian thực phản hồi nhanh chóng và có thể dự đoán trước các sự kiện bên trong và bên ngoài. Có hai phương pháp xử lý ngoại lệ - sử dụng các giá trị trạng thái để phát hiện các điều kiện lỗi và sử dụng trình xử lý ngoại lệ để bẫy các điều kiện lỗi và sửa chúng.

Tổng quan về kiến ​​trúc RTOS

Trong lịch sử của nó, kiến ​​trúc hệ điều hành đã trải qua sự phát triển đáng kể. Một trong những nguyên tắc đầu tiên của việc xây dựng, nguyên khối HĐH (Hình 1) bao gồm việc trình bày HĐH như một tập hợp các mô-đun tương tác với nhau theo nhiều cách khác nhau trong lõi hệ thống và cung cấp các chương trình ứng dụng với giao diện đầu vào để truy cập phần cứng.

Hệ điều hành cấp độ (Hình 2) Một ví dụ về hệ điều hành như vậy là hệ thống MS-DOS nổi tiếng. Trong các hệ thống thuộc lớp này, các ứng dụng ứng dụng có thể truy cập phần cứng không chỉ thông qua nhân hệ thống hoặc các dịch vụ thường trú của nó mà còn có thể truy cập trực tiếp. RTOS đã được xây dựng dựa trên nguyên tắc này trong nhiều năm. So với các hệ điều hành nguyên khối, kiến ​​trúc này cung cấp mức độ dự đoán phản ứng hệ thống cao hơn đáng kể và cũng cho phép các ứng dụng ứng dụng truy cập nhanh vào phần cứng. Điều bất lợi

Điều khiến những hệ thống như vậy trở nên tồi tệ là chúng thiếu khả năng đa nhiệm. Trong kiến ​​trúc này, vấn đề xử lý các sự kiện không đồng bộ được giảm xuống còn các thông báo lưu vào bộ đệm, sau đó thăm dò tuần tự các bộ đệm và xử lý chúng. Đồng thời, việc tuân thủ thời hạn dịch vụ quan trọng được đảm bảo nhờ hiệu suất cao của tổ hợp máy tính so với tốc độ của các quy trình bên ngoài.

Hình 2. Kiến trúc hệ điều hành phân lớp

Một trong những kiến ​​trúc hiệu quả nhất để xây dựng hệ điều hành thời gian thực là kiến ​​trúc client-server. Sơ đồ chung của một hệ điều hành hoạt động sử dụng công nghệ này được trình bày trong Hình 3. Nguyên tắc chính của kiến ​​trúc này là chuyển các dịch vụ hệ điều hành dưới dạng máy chủ đến cấp độ người dùng và vi nhân thực hiện các chức năng của trình quản lý tin nhắn giữa các máy khách. chương trình người dùng và máy chủ - dịch vụ hệ thống. Kiến trúc này cung cấp rất nhiều lợi thế về yêu cầu đối với RTOS và các hệ thống nhúng. Trong số những lợi thế này là:

1. Độ tin cậy của hệ điều hành tăng lên vì Trên thực tế, mỗi dịch vụ là một ứng dụng độc lập và dễ dàng gỡ lỗi cũng như theo dõi lỗi hơn.

2. Hệ thống như vậy có quy mô tốt hơn vì các dịch vụ không cần thiết có thể được loại trừ khỏi hệ thống mà không ảnh hưởng đến hiệu suất của hệ thống.

3. Khả năng chịu lỗi của hệ thống tăng lên vì Một dịch vụ bị đóng băng có thể được khởi động lại mà không cần

khởi động lại hệ thống.

Hình 3. Xây dựng hệ điều hành sử dụng kiến ​​trúc client-server

Thật không may, ngày nay không có nhiều hệ điều hành được triển khai theo nguyên tắc client-server. Trong số các RTOS nổi tiếng triển khai kiến ​​trúc vi nhân là OS9 và QNX.

Danh sách tài liệu được sử dụng:

1) http://ru.wikipedia.org/wiki/Real_time_operating hệ thống

2) http://www.asutp.ru/?p=600591

3) http://www.mka.ru/?p=40774

4) http://www.4stud.info/rtos/lecture1.html

5) http://www.ozon.ru/context/detail/id/3092042/

Tổng quan về các đặc điểm so sánh của HĐH RT hiện có trên thị trường Nga liên quan đến việc sử dụng trong các hệ thống điều khiển hàng không.

05/05/2008, Thứ Hai, 23:56, giờ Mátxcơva

Nhờ sự phát triển của công nghệ máy tính, gần đây người ta có thể gán các nhiệm vụ cho một mô-đun trước đây được thực hiện bởi một số mô-đun bộ xử lý, đồng thời cải thiện các đặc tính về trọng lượng và kích thước của hệ thống điều khiển và giảm chi phí. Xu hướng này trong công nghệ hàng không đã dẫn đến sự xuất hiện của khái niệm hệ thống điện tử hàng không mô-đun tích hợp - IMA (Integrated module Avionics, IMA).

Vấn đề của việc tích hợp các chức năng điều khiển vào một mô-đun duy nhất là cần phải chia sẻ các tài nguyên chung hiện nay (thời gian xử lý, bộ nhớ, kênh liên lạc) giữa các tác vụ khác nhau, đồng thời đảm bảo mức độ tin cậy và độc lập của các chức năng như trước. Hệ điều hành thời gian thực đóng vai trò then chốt trong việc giải quyết vấn đề này.

Hiện nay, có một số RTOS thương mại dành cho các ứng dụng quan trọng trên thị trường thế giới (Bảng 1). Bài viết này cung cấp cái nhìn tổng quan về RTOS hiện có trên thị trường Nga, dựa trên thông tin từ các nguồn mở và kinh nghiệm cá nhân của các tác giả.

Văn bản quy định yêu cầu đối với RTOS

Tiêu chuẩn DO-178 (Cân nhắc phần mềm trong chứng nhận hệ thống và thiết bị trên không) xác định các yêu cầu đối với quy trình phát triển phần mềm và tính kỹ lưỡng của việc xác minh tùy thuộc vào mức độ quan trọng của nó. Mức độ quan trọng của phần mềm được xác định dựa trên phân tích về mức độ nghiêm trọng của hậu quả do lỗi phần mềm. Tổng cộng có năm mức độ quan trọng của phần mềm (từ A đến E).

MILS (Nhiều cấp độ bảo mật độc lập) là một cách tiếp cận đặc biệt đối với thiết kế hệ điều hành nhằm ngăn chặn việc lan truyền các lỗi phần mềm ứng dụng trong thời gian chạy và cũng đơn giản hóa việc xác minh chương trình do tính mô-đun của phần mềm. Tất cả các ứng dụng được đặt trong cái gọi là phần (phân vùng). Các phân vùng đã phân bổ tài nguyên (vùng bộ nhớ, thời gian xử lý trong mỗi chu kỳ hệ thống, quyền truy cập vào các kênh liên lạc, v.v.). Quyền truy cập vào các tài nguyên được phân bổ được đảm bảo bởi hệ điều hành đang chạy ở chế độ giám sát. Do đó, phần mềm ứng dụng có mức độ quan trọng khác nhau có thể chạy trên một mô-đun bộ xử lý chạy một hệ điều hành - nếu lỗi xảy ra ở phần mềm ít quan trọng hơn (và theo đó, ít được kiểm tra hơn), điều này sẽ không ảnh hưởng đến hoạt động của các phần khác theo bất kỳ cách nào, vì những nỗ lực “chiếm đoạt” tài nguyên của người khác sẽ bị hệ điều hành chặn. Ý tưởng của MILS lặp lại ý tưởng của IMA và DO-178B.

Lỗi 404: Không tìm thấy trang.

Điều này có thể đã xảy ra vì một trong những lý do sau:

– lỗi khi gõ địa chỉ trang (URL)
– theo liên kết “bị hỏng” (không hoạt động, không chính xác)
– trang được yêu cầu chưa bao giờ có trên trang web hoặc nó đã bị xóa

Bạn có thể:

– quay lại bằng nút Quay lại của trình duyệt
– kiểm tra chính tả địa chỉ trang (URL)
– sử dụng bản đồ trang web hoặc đi đến trang chính

Tiêu chuẩn ARINC-653 (Giao diện tiêu chuẩn phần mềm ứng dụng điện tử) chỉ định giao diện phần mềm ứng dụng APEX hỗ trợ khái niệm phân vùng kiểu MILS. Giao diện này bao gồm các chức năng quản lý phân vùng, quy trình, chia sẻ thời gian, liên lạc giữa và trong các phân vùng cũng như giám sát trạng thái hệ thống. Cần lưu ý rằng tiêu chuẩn ARINC-653 mô tả cách tiếp cận được chấp nhận chung để triển khai các ý tưởng MILS cho IMA, mặc dù có thể có các cách triển khai khác. RTOS hàng không tuân thủ ARINC-653 có lợi thế vì tiêu chuẩn này được các tổ chức chứng nhận quốc tế biết đến và hiểu rõ, do đó, việc đạt được chứng chỉ tuân thủ DO-178B cho một hệ thống được xây dựng theo tiêu chuẩn này sẽ dễ dàng hơn.

Tiêu chuẩn về các thành phần phần mềm có thể tái sử dụng. Theo DO-178B, phần mềm của một hệ thống ứng dụng hàng không cụ thể phải trải qua toàn bộ quy trình chứng nhận, ngay cả khi nó sử dụng các mô-đun (thành phần) đã được chứng nhận trước đó như một phần của hệ thống khác. Một trong những sáng kiến ​​mới nhất của FAA (Cơ quan Chứng nhận Hàng không Liên bang, Hoa Kỳ) là xác định tiêu chí về khả năng sử dụng lại phần mềm mà không cần chứng nhận lại. Các thành phần có thể không được chứng nhận lại được gọi là RSC (Thành phần phần mềm có thể tái sử dụng). Phải nỗ lực nhiều hơn để được chứng nhận RSC, nhưng khi đó RSC sẽ tiết kiệm đáng kể.

Tài liệu tiếng Nga xác định yêu cầu phần mềm (bao gồm RTOS):

  • GOST R ISO/IEC 51904-2002 (“Phần mềm hệ thống nhúng. Yêu cầu chung về phát triển và lập tài liệu”) - tương tự DO-178B dành cho hàng không quân sự;
  • KT-178A ("Yêu cầu về trình độ phần 178A") - tương tự DO-178B dành cho hàng không dân dụng;
  • GOST R ISO/IEC 12207-99 ("Công nghệ thông tin. Quy trình vòng đời phần mềm").

Việc so sánh hệ điều hành RT được thực hiện theo 13 thông số, có tính đến các tiêu chí kỹ thuật, tính dễ phát triển và các thông số kinh tế.

Thông số thời gian của hệ điều hành

Một trong những yêu cầu chính đối với RT OS là thời gian trễ tối thiểu để xử lý một sự kiện. Trong thực tế, điều này có nghĩa là các tham số sau phải nhỏ:

  • thời gian phản hồi ngắt - thời gian từ khi xảy ra ngắt thực tế đến khi bắt đầu xử lý lệnh đầu tiên của trình xử lý ngắt;
  • kiểm soát thời gian chuyển luồng - thời gian chuyển đổi giữa hai luồng trong một tiến trình;
  • thời gian chuyển đổi bối cảnh quy trình (chỉ dành cho các hệ điều hành hỗ trợ mô hình quy trình) - thời gian chuyển đổi giữa hai luồng điều khiển thuộc hai quy trình khác nhau.

Thật không may, không dễ để so sánh một cách khách quan các thông số này của các hệ điều hành RT khác nhau, bởi vì những thông số này không chỉ phụ thuộc vào chất lượng của hệ điều hành mà còn phụ thuộc vào khả năng của nền tảng phần cứng được sử dụng. Lý tưởng nhất là tất cả các hệ điều hành được so sánh nên được cài đặt trên cùng một nền tảng phần cứng, sau đó sẽ thực hiện các phép đo thích hợp. Nhưng ngay cả những phép đo này cũng sẽ không đưa ra kết quả khách quan, bởi vì các hệ điều hành khác nhau ít nhiều có thể thích ứng với phần cứng cụ thể.

Để so sánh các thông số thời gian, bài viết này sử dụng dữ liệu phân mảnh tìm thấy trên Internet, dữ liệu này thường thu được khi thử nghiệm hệ điều hành trên nhiều thiết bị khác nhau, trong khi thành phần và bản chất của các thử nghiệm không phải lúc nào cũng rõ ràng.

Số liệu khá khách quan có thể coi là kết quả thu được từ các chuyên gia của tạp chí Hệ thống chuyên dụng, người đã tiến hành thử nghiệm và so sánh thực tế QNX RTOS 6.1, VxWorks AE 1.1 và Windows CE.NET trên nền tảng x86. Mặc dù dữ liệu này hiện đã lỗi thời nhưng các tác giả của bài viết này không thể tìm thấy tài liệu mới hơn. Trong bảng Hình 2 thể hiện dữ liệu so sánh hiệu suất được chọn giữa QNX Neutrino 6.1 và VxWorks AE 1.1. Báo cáo Hệ thống chuyên dụng đã ưu tiên QNX về mặt hiệu suất, với tỷ lệ điểm được đặt ở mức 9:5 (QNX:VxWorks), vì trong quá trình thử nghiệm, hai lỗi đã được phát hiện trong VxWorks, do đó cần phải liên hệ với bộ phận hỗ trợ để khắc phục. họ.

Trong bảng Hình 3 hiển thị dữ liệu về các đặc điểm của LynxOS. Thành phần của các bài kiểm tra được sử dụng không được chỉ định. Đối với dữ liệu về các đặc điểm của LynxOS, cột thứ tư (thử nghiệm trên nền tảng x86) rất thú vị. So với VxWorks và QNX, LynxOS RT OS có độ trễ rất lớn trong việc phản hồi khi bị gián đoạn (hơn 5 lần). Thời gian chuyển ngữ cảnh (nghĩa là thời gian chuyển đổi giữa hai luồng trong một tiến trình) bằng QNX và ít hơn VxWorks khoảng 1,5 lần.

Độ ổn định của các thông số thời gian

Ngoài các đặc tính về thời gian, tính ổn định của các đặc tính này cũng rất quan trọng đối với RT OS. Chính tiêu chí này quyết định phần lớn đến “độ cứng” của RT OS, tức là. khả năng dự đoán về thời gian xử lý dữ liệu, thời điểm đưa ra kết quả, v.v.

Dựa trên dữ liệu từ nhật ký Hệ thống chuyên dụng, QNX dẫn trước VxWorks ở tiêu chí này cả về mức độ lan tỏa của các đặc điểm trong một loạt các thử nghiệm tương tự (tỷ lệ giữa thời gian tối đa và giá trị trung bình nhỏ hơn đáng kể) và với tải ngày càng tăng (thời gian chuyển luồng khi số lượng luồng tăng 2...128 đơn vị đối với QNX chỉ tăng 1,65 lần, trong khi đối với VxWorks - 2,24 lần).

Theo dữ liệu thu được từ RTSoft, được biết LynxOS có những đặc điểm gần giống với VxWorks.

Quản lý quyền truy cập vào tài nguyên

Hãy đánh giá chất lượng kiểm soát truy cập do hệ điều hành RT này hoặc hệ điều hành RT khác cung cấp đối với các tài nguyên quan trọng của hệ thống máy tính, chẳng hạn như thời gian bộ nhớ và bộ xử lý.

Câu hỏi đầu tiên cần được trả lời là liệu HĐH có hỗ trợ mô hình quy trình hay không. Một tiến trình là một thực thể logic sở hữu một hoặc nhiều luồng, các tài nguyên liên quan và ngữ cảnh của chúng—nội dung của các thanh ghi và bộ đếm tại bất kỳ thời điểm nào.

Nhiệm vụ của các quá trình là:

  • trong việc phân định quyền truy cập vào RAM giữa các chương trình khác nhau trong quá trình thực thi;
  • trong việc phân định phạm vi của các biến toàn cục tại thời điểm biên dịch (rất quan trọng nếu phần mềm ứng dụng được viết bằng ngôn ngữ C không hỗ trợ việc phân định đó).

Phân đoạn cũng cung cấp sự phân tách các không gian địa chỉ (theo nghĩa này, khả năng phân chia và xử lý được nhân đôi). Ngoài ra, sharding cung cấp cho mỗi phân đoạn chứa một hoặc nhiều quy trình (hoặc luồng nếu hệ điều hành không hỗ trợ mô hình quy trình) với quỹ thời gian được đảm bảo. Bằng cách này, nếu một luồng có mức độ ưu tiên cao đi vào vòng lặp và làm gián đoạn phân đoạn của nó, thì tất cả các phân đoạn khác sẽ nhận được thời gian CPU theo cài đặt thời gian thiết kế và tiếp tục hoạt động bình thường.

LynxOS và QNX hỗ trợ cả mô hình quy trình và phân mảnh. Hệ điều hành VxWorks có cơ chế sharding nhưng không hỗ trợ mô hình quy trình. Nói chung, điều này có thể chấp nhận được vì sharding cung cấp sự phân tách các không gian địa chỉ. Nhưng việc thiếu các quy trình mang lại một số bất tiện. Thông thường, việc phân chia thành các phân đoạn được thực hiện dựa trên mục đích dự định của phần mềm và mức độ quan trọng của nó. Ví dụ: một số phân đoạn có thể chứa phần mềm điều khiển cho hệ thống định vị chuyến bay có mức độ quan trọng cao. Nhưng phần mềm này cũng khá phức tạp, sẽ hợp lý nếu được chia thành các mô-đun (bộ nhớ) độc lập. Hệ điều hành VxWorks không cung cấp tính năng này, nghĩa là phân đoạn sẽ bao gồm các luồng có bộ nhớ dùng chung, điều này làm phức tạp việc tổ chức phát triển song song và cuối cùng làm giảm độ tin cậy của phần mềm.

Hỗ trợ cho hệ thống đa bộ xử lý và phân tán

Giá thành của các mô-đun đa bộ xử lý gần đây đã giảm đáng kể và do đó chúng ngày càng được sử dụng nhiều hơn trong các hệ thống nhúng. Tất nhiên, RT OS phải cung cấp hỗ trợ cho những bo mạch như vậy.

Một hướng hứa hẹn khác trong việc xây dựng hệ thống điều khiển tự động là hệ thống phân tán, trong đó các mô-đun được phân tách trong không gian và giao tiếp giữa chúng diễn ra thông qua một số môi trường mạng. Một lần nữa, hệ điều hành RT được sử dụng phải có các phương tiện thuận tiện và đáng tin cậy để tổ chức tương tác giữa các mô-đun: hỗ trợ các giao thức mạng khác nhau, các phương tiện để đảm bảo tính minh bạch của mạng.

QNX RT OS cung cấp hỗ trợ cho bo mạch đa bộ xử lý. Đối với VxWorks, sự hỗ trợ như vậy chỉ mới được công bố. Chưa có phiên bản hàng không nào của LynxOS hỗ trợ bo mạch đa bộ xử lý.

Về khả năng hỗ trợ các giao thức mạng, cần lưu ý rằng RT OS LynxOS, VxWorks và QNX có khả năng gần như ngang nhau (và rộng). Một ưu điểm nữa của QNX RT OS là kiến ​​trúc hệ thống con mạng đặc biệt của nó, đảm bảo tính “minh bạch” mạng của các chương trình ứng dụng: bất kỳ quy trình nào cũng có thể gọi một quy trình khác trên mô-đun từ xa giống như quy trình trên mô-đun cục bộ.

Hỗ trợ hệ thống tập tin

Khả năng lưu trữ thông tin dưới dạng tập tin rất tiện lợi và truyền thống. Ngược lại, việc thiếu khả năng như vậy sẽ tạo ra khó khăn khi lưu trữ dữ liệu hiếm khi được thay đổi và tạo ra các hệ thống phân tán.

Trong bảng Hình 4 cho thấy sự hỗ trợ của hệ thống tệp cho từng hệ điều hành đang được xem xét.

QNX có sự hỗ trợ rộng rãi nhất cho các hệ thống tệp. Ngoài ra, hệ thống tập tin flash của nó có khả năng chịu lỗi.

Chất lượng tài liệu

Chất lượng tài liệu cho RT OS LynxOS, VxWorks, QNX khá cao. Tuy nhiên, cũng có những phàn nàn về tài liệu:

  • QNX là một mô tả xuất sắc về kiến ​​trúc và nguyên tắc thiết kế, nhưng mô tả chưa đầy đủ về giao diện lập trình ứng dụng (không phải tất cả các tham số đều được mô tả, có sự mâu thuẫn);
  • VxWorks - không có giải thích về nguyên tắc hoạt động và mô tả không đầy đủ về quá trình cấu hình hệ điều hành phức tạp.

Tuy nhiên, các công ty đang nghiên cứu về chất lượng của vật liệu. Tài liệu dành cho phiên bản hiện tại của QNX (6.3.2) đã được mở rộng đáng kể và một số phần đã được làm lại.

Chất lượng hỗ trợ kỹ thuật

Về chất lượng hỗ trợ kỹ thuật chính thức, người dẫn đầu chắc chắn là LynxOS. LynuxWorks hứa sẽ trả lời mọi câu hỏi kỹ thuật trong vòng 4 giờ kể từ khi yêu cầu được đăng. LynxOS được phân phối tại Nga bởi RTSoft, nơi có đội ngũ nhân viên đông đảo có khả năng cung cấp hỗ trợ có trình độ. Nhược điểm của LynxOS là hệ điều hành này chưa phổ biến ở Nga, do đó, không có cộng đồng người dùng được thành lập và thậm chí không có diễn đàn tiếng Nga.

QSS (nhà sản xuất QNX) cũng cung cấp hỗ trợ kỹ thuật tốt nhưng thời gian phản hồi nhanh không được đảm bảo. Không giống như LynxOS, QNX RT OS có cộng đồng người dùng được tổ chức tốt cả ở nước ngoài và ở Nga. Câu trả lời cho hầu hết các câu hỏi có thể được tìm thấy trên các diễn đàn này. QNX ở nước ta được phân phối bởi Hệ thống nhúng SVD, nhân viên của họ có thể cung cấp hỗ trợ kỹ thuật thành thạo và thực hiện công việc điều chỉnh HĐH cho các bo mạch xử lý cụ thể. Ngoài ra, công ty còn liên hệ trực tiếp với QSS và có thể nhận được lời khuyên về các vấn đề phức tạp từ nhà phát triển hệ điều hành QNX RT.

WindRiver, nhà phát triển VxWorks, theo truyền thống tuân thủ chính sách kỹ thuật khép kín, nghĩa là khá khó để có được thông tin về nguyên tắc hoạt động của HĐH. Hệ điều hành này cũng không có diễn đàn tiếng Nga. Hệ điều hành VxWorks RT được phân phối ở nước ta bởi công ty AVD Systems, công ty chủ yếu kinh doanh các giải pháp phần mềm và phần cứng làm sẵn có nguồn gốc nước ngoài.

Mã nguồn mở

Một hệ điều hành RT mở có ít nhất ba ưu điểm:

  • các nhà phát triển phần mềm ứng dụng có thể hiểu các vấn đề phức tạp mà không cần hỗ trợ kỹ thuật;
  • dễ dàng chứng nhận hơn (không có dấu trang, v.v.);
  • phát triển năng động hơn, vì công ty phát triển RT OS thường nhận được không chỉ các yêu cầu sửa lỗi mà còn cả các đề xuất để loại bỏ lỗi và cải thiện hệ thống. Theo quy luật, cộng đồng các nhà phát triển RTOS nguồn mở phát triển nhanh hơn nhiều và được tổ chức tốt hơn. Các chuyên gia độc lập xuất hiện để giúp giải quyết các vấn đề của dịch vụ hỗ trợ kỹ thuật và tham gia vào việc phát triển, gỡ lỗi và thử nghiệm hệ thống.

Kể từ tháng 9 năm 2007, QSS đã mở nguồn lõi QNX (bao gồm gói Phân vùng thích ứng, gói Tính sẵn sàng cao). Một lát sau, mã nguồn của hệ thống con mạng đã được mở. Hiện tại, phiên bản beta 6.4.0 đã có sẵn để tải xuống trên trang web chính thức.

Cần lưu ý rằng ngày nay không phải tất cả các mô-đun QNX đều mở (ví dụ: không có mã cho đồ họa và hệ thống tệp) và giấy phép áp đặt hạn chế sử dụng “mã nguồn”: chỉ dành cho mục đích phi thương mại. Tuy nhiên, người dùng QNX được hưởng các lợi ích trên miễn phí.

Mã nguồn LynxOS và VxWorks có sẵn trên thị trường. Giá cho một sản phẩm như vậy có thể thương lượng.

Công cụ

Sự sẵn có của các công cụ tốt quyết định phần lớn chất lượng và tốc độ phát triển các chương trình ứng dụng cho một hệ điều hành cụ thể. Cần lưu ý rằng LynxOS, VxWorks và QNX hiện cung cấp các công cụ chất lượng tốt bao gồm môi trường phát triển tích hợp (IDE) và gỡ lỗi phần mềm ứng dụng, các công cụ định hình chương trình (để phát hiện các tắc nghẽn về hiệu suất, bộ nhớ, v.v.). Tính công thái học của ISD dành cho các HĐH RT này nhìn chung không thua kém các công cụ phát triển đã phát triển dành cho các HĐH thông thường (ví dụ: MS Windows).

Tính di động của phần mềm ứng dụng

Tính di động của phần mềm ứng dụng giúp bạn có thể sử dụng nó trong các hệ điều hành khác (bao gồm cả hệ điều hành không phải RT). Tính di động mang lại cho nhà phát triển phần mềm ứng dụng sự độc lập nhất định với HĐH RT: nếu cần, bạn có thể chuyển sang HĐH khác với chi phí thấp.

Khả năng viết phần mềm di động hiện được xác định bằng việc tuân thủ tiêu chuẩn POSIX. Tất cả các hệ điều hành RT được coi là đều hỗ trợ tiêu chuẩn POSIX 1003.1. LynxOS có một lợi thế - HĐH này tương thích nhị phân với Linux. Nghĩa là, các ứng dụng Linux có thể chạy trên LynxOS mà không cần biên dịch lại. Ngược lại, các ứng dụng LynxOS có thể chạy trên Linux (phiên bản 2.4.x với thư viện ngôn ngữ glibs C phiên bản 2.2.2).

Phần còn lại của hệ điều hành RT yêu cầu biên dịch lại để chạy các ứng dụng Linux. Trong trường hợp này, quá trình chuyển ngay cả các ứng dụng tuân thủ POSIX thường có thể trở nên khá tốn công sức do sự khác biệt trong việc triển khai thư viện và trình biên dịch.

Hỗ trợ kiến ​​trúc bộ xử lý

Các nhà phát triển hệ thống điều khiển hàng không trong nước trong giai đoạn chuyển đổi từ hệ điều hành nội bộ sang hệ thống thương mại ngày nay thường rơi vào tình huống cần phải lựa chọn và điều chỉnh RTOS cho phù hợp với bo mạch xử lý hiện có. Trong trường hợp này, một trong những lập luận chính khi chọn HĐH là hỗ trợ kiến ​​trúc bộ xử lý được sử dụng trên bo mạch.

Tuân thủ các tiêu chuẩn hàng không

Theo thông lệ nước ngoài, phần mềm cho hệ thống điện tử hàng không phải có chứng chỉ phù hợp tiêu chuẩn DO-178B. Nếu phần mềm có mức độ quan trọng khác nhau được thực thi trên cùng một mô-đun bộ xử lý thì RTOS được sử dụng phải hỗ trợ khái niệm phân vùng. (Nếu không thì gần như không thể chứng minh được lỗi không lan truyền). Như đã đề cập, sẽ tốt hơn nếu giao diện lập trình RTOS tuân thủ tiêu chuẩn ARINC-653, vì tiêu chuẩn này đã được các tổ chức chứng nhận nước ngoài biết đến.

LynxOS dẫn đầu về việc tuân thủ các tiêu chuẩn. Nó hỗ trợ ARINC-653 và có rất nhiều ví dụ về hệ thống được chứng nhận DO-178B được xây dựng trên nó. Điểm mấu chốt là LynuxWorks cung cấp một bộ RSC (mặc dù tác giả bài viết không biết gì về giá cả).

VxWorks tuân thủ tiêu chuẩn ARINC-653 và các hệ thống được xây dựng dựa trên tiêu chuẩn này có thể được chứng nhận DO-178B (có nhiều ví dụ).

QNX không tuân thủ ARINC-653 và chưa có hệ thống nào được chứng nhận DO-178B dựa trên ARINC-653.

Cần lưu ý rằng về nguyên tắc, hệ thống QNX có thể được sử dụng để xây dựng IMA, vì QNX hỗ trợ phương pháp riêng của nó để cung cấp khái niệm phân vùng, đây là một giải pháp thay thế rất tốt cho ARINC-653 và ngoài ra, cho phép bạn tiết kiệm thời gian xử lý .

Về các tiêu chuẩn tương tự của Nga dành cho hàng không quân sự (GOST R ISO/IEC 51904-2002), vẫn chưa có một ví dụ nào về hệ thống được chứng nhận, mặc dù về nguyên tắc, hệ thống như vậy có thể được phát triển dựa trên bất kỳ hệ điều hành nào đang được xem xét. Đối với Hệ điều hành QNX RT, công việc hiện đang được tiến hành để chuẩn bị các mô-đun hệ điều hành chính cho chứng nhận.

Phát triển hệ thống đào tạo chuyên môn

Tốc độ và chất lượng đào tạo nhân viên làm việc với Hệ điều hành RT cũng như các công cụ gỡ lỗi và phát triển phần mềm khác nhau có liên quan trực tiếp đến tốc độ phát triển phần mềm và chất lượng của nó. Các công ty hàng đầu trong lĩnh vực phần mềm hệ thống và nhúng, như WindRiver, LynuxWorks, QSS, thực hiện một chương trình khóa học và đào tạo quy mô lớn để nghiên cứu cách sử dụng các sản phẩm của công ty, bao gồm cả RT OS.

Kết quả so sánh

QNX Neutrino RTOS là hệ điều hành tiên tiến nhất xét theo quan điểm kỹ thuật, có bộ công cụ tốt và có mức giá tương đối thấp. Kiến trúc vi nhân đảm bảo độ tin cậy cao và tính mô đun hóa của các hệ thống được phát triển. Một lợi thế nữa là mã nguồn mở. Nhưng cũng có một điều đáng lo ngại: hiện tại QNX thực tế không được sử dụng ở bất kỳ đâu trong ngành hàng không và về mặt này, hệ điều hành này thua các đối thủ cạnh tranh (LynxOS và VxWorks). Một nhược điểm nữa của QNX: không tuân thủ tiêu chuẩn ARINC-653.

Cần lưu ý rằng, về nguyên tắc, QNX Neutrino có tất cả các cơ chế cần thiết để hoạt động trong hệ thống điện tử hàng không. Ngoài ra, độ tin cậy và tính sẵn sàng cao của các hệ thống dựa trên QNX đã được chứng minh trong các ngành công nghiệp khác, nơi chi phí sai sót thậm chí còn cao hơn cả trong ngành hàng không (điều khiển lò phản ứng hạt nhân).

Công việc chuẩn bị cho việc chứng nhận QNX Neutrino theo yêu cầu của tiêu chuẩn hàng không trong nước hiện đang được SWD Software thực hiện.

Ngược lại, RTOS LynxOS-178 có tất cả các chứng chỉ cần thiết ở nước ngoài, mặc dù theo nhiều tiêu chí khác, nó có vẻ kém ưu tiên hơn QNX Neutrino. Lưu ý rằng để sử dụng trong ngành hàng không Nga, LynxOS-178 RTOS cũng phải được chứng nhận theo GOST trong nước.

Hệ điều hành VxWorks có lịch sử sử dụng lâu dài trong các ứng dụng quan trọng ở nước ngoài. Tuy nhiên, phân tích của chúng tôi cho thấy nó có vẻ ít được ưa chuộng hơn so với hai hệ điều hành đầu tiên theo nhiều tiêu chí. Ngoài ra, uy tín của VxWorks còn bị suy giảm bởi chiến lược phát triển khép kín.

Nhóm chuyên gia / R&D.CNews

In