1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập lớn môn hệ Điều hành Đề tài tìm hiểu chung về hệ Điều hành nhúng (embedded os)

18 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu chung về hệ điều hành nhúng
Tác giả Nguyễn Quang Huy, Vũ Hoàng Tuấn, Hoàng Lê Đức, Trần Thanh Bình
Người hướng dẫn GV Vũ Anh Đào
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Thể loại Bài tập lớn
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 18
Dung lượng 1,63 MB

Nội dung

Gần đây, với sự phát triển của IoT Internet of Things, hệ điều hành nhúng đã trở thành trong thiết bị điện tử tiêu dùng, như điện thoại di động, TV, và các hệ thống giải trí, bắt đầu sử

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

BÀI TẬP LỚN MÔN

HỆ ĐIỀU HÀNH

ĐỀ TÀI

TÌM HIỂU CHUNG VỀ HỆ ĐIỀU HÀNH

NHÚNG (EMBEDDED OS)

GV hướng dẫn: VŨ ANH ĐÀO

Nhóm sinh viên thực hiện:

Hà Nội, 2024

Trang 2

Mục lục

1.1 Khái quát lịch sử 2

1.2 Thống kê số lượng sử dụng 2

1.3 Mục đích sử dụng 2

2 CÁC THÀNH PHẦN CHỨC NĂNG CỦA HỆ ĐIỀU HÀNH NHÚNG 4 2.1 Quản lý file 4

2.1.1 Phân tích hệ thống file trong hệ điều hành nhúng 4

2.1.2 Các phương pháp tổ chức quản lý file trong hệ điều hành nhúng 4

2.2 Quản lý bộ nhớ 5

2.2.1 Các phương thức quản lý bộ nhớ 5

2.2.2 Bộ nhớ ảo trong hệ điều hành nhúng 6

2.2.3 Cơ chế thay thế bộ nhớ 6

2.3 Quản lý tiến trình 7

2.3.1 Các thuật toán quản lý tiến trình 7

2.3.2 Các trạng thái của tiến trình 8

2.4 Các dịch vụ của hệ điều hành nhúng cung cấp 8

3 SO SÁNH HỆ ĐIỀU HÀNH NHÚNG VỚI NGUYÊN LÝ HỆ ĐIỀU HÀNH MÁY TÍNH CÁ NHÂN PC (WINDOWS) 10 3.1 Điểm giống nhau 10

3.2 Điểm khác nhau 11

5 CHƯƠNG TRÌNH MÔ TẢ THUẬT TOÁN ĐẾN TRƯỚC

1

Trang 3

1 KHÁI QUÁT VỀ HỆ ĐIỀU HÀNH NHÚNG

Hệ điều hành nhúng (Embedded OS) là một loại hệ điều hành được thiết kế chuyên dụng để hoạt động trên các hệ thống nhúng, tức là các thiết

bị phần cứng được tích hợp trong một sản phẩm nhằm thực hiện các nhiệm

vụ cụ thể Các hệ điều hành này thường được tối ưu hóa để tận dụng tài nguyên phần cứng giới hạn như CPU, RAM, và bộ nhớ lưu trữ

1.1 Khái quát lịch sử

Lịch sử của hệ điều hành nhúng bắt đầu từ những năm 1960, với các hệ thống điều khiển và tự động hóa công nghiệp Các hệ điều hành đầu tiên rất đơn giản và tập trung vào điều khiển thiết bị, chẳng hạn như những hệ thống kiểm soát trong máy bay và tên lửa Đến thập niên 1970 và 1980, các vi điều khiển (microcontroller) bắt đầu phổ biến hơn, giúp các hệ thống nhúng trở nên đa dạng Các hệ điều hành nhúng ngày càng phát triển hơn vào những năm 1990 và 2000 khi nhiều ứng dụng nhúng

Gần đây, với sự phát triển của IoT (Internet of Things), hệ điều hành nhúng

đã trở thành trong thiết bị điện tử tiêu dùng, như điện thoại di động, TV, và các hệ thống giải trí, bắt đầu sử dụng hệ điều hành một thành phần cốt lõi trong hàng tỷ thiết bị kết nối trên toàn cầu

1.2 Thống kê số lượng sử dụng

Hệ điều hành nhúng được sử dụng rộng rãi trong nhiều lĩnh vực: trong ngành

ô tô, các hệ thống nhúng được triển khai để hỗ trợ các tính năng tiên tiến như hệ thống hỗ trợ lái xe (ADAS) và xe tự hành; trong lĩnh vực điện tử tiêu dùng, chúng xuất hiện trong các thiết bị như điện thoại thông minh, tivi thông minh và các thiết bị gia dụng Năm 2024, ngành ô tô chiếm khoảng 40,8% thị phần ứng dụng hệ điều hành nhúng, trong khi thiết bị điện tử tiêu dùng chiếm 22,4% thị phần, nhờ vào nhu cầu ngày càng cao về thiết bị kết nối và tự động hóa

Các khu vực như Bắc Mỹ và Châu Á - Thái Bình Dương cũng đóng vai trò quan trọng trong thị trường này Bắc Mỹ chiếm hơn 45% thị phần nhờ các công ty công nghệ lớn và hệ sinh thái công nghệ phát triển, trong khi Châu

Á - Thái Bình Dương đang nổi lên nhờ lực lượng sản xuất lớn và chi phí sản xuất thấp, giúp tăng trưởng nhanh chóng cho các thiết bị nhúng trong khu vực

1.3 Mục đích sử dụng

Hệ điều hành nhúng (Embedded OS) được sử dụng với nhiều mục đích khác nhau, chủ yếu nhằm tối ưu hóa hiệu suất của thiết bị, đáp ứng các yêu cầu

về độ tin cậy và thời gian thực trong các ứng dụng cụ thể Một số mục đích

sử dụng:

2

Trang 4

1 Điều khiển thiết bị và hệ thống tự động hóa

•Ứng dụng công nghiệp: Hệ điều hành nhúng điều khiển các quy trình sản xuất tự động, như các dây chuyền lắp ráp và hệ thống kiểm soát sản xuất Chúng được thiết kế để xử lý các tác vụ trong thời gian thực và có độ ổn định cao, đảm bảo quy trình vận hành liên tục và không gián đoạn

•Ô tô: Trong ngành ô tô, hệ điều hành nhúng đóng vai trò kiểm soát các hệ thống như chống bó cứng phanh (ABS), kiểm soát động cơ,

hỗ trợ lái xe và giải trí trên xe Các tính năng tiên tiến như hệ thống lái tự động và hệ thống hỗ trợ tài xế (ADAS) phụ thuộc vào sự đáp ứng nhanh của các hệ điều hành nhúng

2 Thiết bị IoT và hệ thống kết nối thông minh

•Nhà thông minh: Các hệ điều hành nhúng quản lý các thiết bị gia dụng thông minh như đèn chiếu sáng, hệ thống an ninh, cảm biến nhiệt độ, và các thiết bị tiêu dùng khác Chúng cho phép các thiết

bị này kết nối và truyền dữ liệu thông qua mạng, tạo ra môi trường sống thông minh và tiết kiệm năng lượng

•Cảm biến và hệ thống giám sát: Các hệ điều hành nhúng hỗ trợ việc thu thập và xử lý dữ liệu từ các cảm biến môi trường, giúp giám sát điều kiện thời tiết, chất lượng không khí, và các yếu tố khác Điều này giúp cung cấp dữ liệu cho các hệ thống phân tích và ra quyết định

3 Hỗ trợ giao diện người dùng

•Hệ điều hành nhúng cung cấp giao diện người dùng cơ bản cho nhiều thiết bị, như máy ATM, máy POS (point-of-sale) trong bán lẻ, và thiết bị y tế Các hệ thống này giúp người dùng tương tác dễ dàng

và thực hiện các tác vụ cụ thể một cách nhanh chóng và hiệu quả

4 Các hệ thống yêu cầu tính năng thời gian thực

•Ứng dụng thời gian thực (Real-Time Applications): Các hệ điều hành nhúng thời gian thực (RTOS) như FreeRTOS và VxWorks được sử dụng để đảm bảo rằng các tác vụ quan trọng đáp ứng ngay lập tức khi có sự kiện xảy ra Chúng rất quan trọng trong các lĩnh vực yêu cầu độ chính xác cao như y tế, hàng không vũ trụ, và quân sự Ví

dụ, trong y tế, RTOS giúp điều khiển các thiết bị chăm sóc sức khỏe như máy điều hòa nhịp tim, máy thở, và các thiết bị kiểm tra y tế khác

5 Thiết bị tiêu dùng và giải trí

•Trong các thiết bị tiêu dùng, hệ điều hành nhúng thường được tích hợp vào các máy chơi game, TV thông minh, hệ thống âm thanh, và các thiết bị giải trí khác Chúng tối ưu hóa khả năng xử lý để hỗ trợ

3

Trang 5

các trải nghiệm người dùng mượt mà và nhanh chóng, đồng thời đảm bảo rằng thiết bị hoạt động ổn định và tiết kiệm năng lượng

2 CÁC THÀNH PHẦN CHỨC NĂNG CỦA

HỆ ĐIỀU HÀNH NHÚNG

2.1 Quản lý file

2.1.1 Phân tích hệ thống file trong hệ điều hành nhúng

Hệ thống file (file system) là một cách để tổ chức và lưu trữ dữ liệu trên bộ nhớ không mất dữ liệu (non-volatile memory) như bộ nhớ flash hoặc EEPROM

Hệ điều hành nhúng thường sử dụng các hệ thống file đơn giản và nhẹ để giảm tải cho bộ nhớ và vi xử lý, như:

•FAT (File Allocation Table): Một trong những hệ thống file đơn giản, phù hợp với các ứng dụng nhúng có nhu cầu truy cập dữ liệu mức thấp FAT12, FAT16, FAT32 đều có thể được sử dụng, tùy vào dung lượng lưu trữ

•ExFAT: Được Microsoft phát triển để thay thế cho FAT32, có khả năng lưu trữ các file lớn hơn 4GB Hệ điều hành nhúng hỗ trợ ExFAT khi có yêu cầu lưu trữ lớn hơn

•YAFFS (Yet Another Flash File System): Tối ưu hóa cho bộ nhớ flash NAND, được sử dụng trong các thiết bị nhúng có bộ nhớ flash lớn

•EXT (Extended File System): Các phiên bản EXT như EXT2, EXT3 có thể được dùng trong các hệ thống nhúng Linux-based, cho phép quản lý

dữ liệu phức tạp hơn

•LittleFS: Một hệ thống file được thiết kế cho bộ nhớ flash NAND và NOR có dung lượng nhỏ, ít bộ nhớ đệm, phổ biến trong các hệ thống nhúng hiện đại

2.1.2 Các phương pháp tổ chức quản lý file trong hệ điều hành nhúng

1 Phân cấp thư mục

•Các hệ điều hành nhúng có thể sử dụng cấu trúc thư mục phân cấp

để tổ chức dữ liệu thành các nhóm nhỏ hơn, dễ quản lý và truy cập

•Tuy nhiên, do hạn chế về tài nguyên, cấu trúc thư mục thường được thiết kế đơn giản hơn so với các hệ điều hành lớn

2 Quản lý khối và phân vùng

•Bộ nhớ trong hệ thống nhúng thường được chia thành các khối (blocks) hoặc phân vùng (partitions) để tối ưu hóa việc lưu trữ và truy xuất

4

Trang 6

•Một số hệ điều hành nhúng cho phép tạo các phân vùng riêng biệt

để lưu trữ dữ liệu và chương trình, giúp hệ thống an toàn và bền bỉ hơn

3 Quản lý bộ nhớ đệm

•Do hạn chế về dung lượng RAM, hệ điều hành nhúng sử dụng cơ chế quản lý bộ nhớ đệm hiệu quả, giảm thời gian truy xuất dữ liệu trên

bộ nhớ lưu trữ

•Kỹ thuật này thường bao gồm lưu trữ các file tạm thời trong bộ nhớ

để giảm tải khi truy cập nhiều lần vào cùng một file

4 Nhật ký file

•Một số hệ thống file nhúng có thể sử dụng kỹ thuật nhật ký (jour-naling) để ghi lại các thay đổi, giúp phục hồi hệ thống nếu xảy ra lỗi

•Journaling giúp đảm bảo tính toàn vẹn của dữ liệu khi có lỗi hoặc mất nguồn đột ngột

5 Cơ chế quản lý quyền truy cập

•Một số hệ điều hành nhúng hỗ trợ kiểm soát quyền truy cập vào file

và thư mục để đảm bảo bảo mật

•Tuy nhiên, các cơ chế này thường đơn giản hơn nhiều so với hệ điều hành phức tạp như Linux hay Windows

2.2 Quản lý bộ nhớ

2.2.1 Các phương thức quản lý bộ nhớ

1 Quản lý bộ nhớ tĩnh

•Phương thức này cấp phát bộ nhớ tĩnh trong suốt vòng đời của ứng dụng Các vùng bộ nhớ được cấp phát ngay từ đầu và duy trì không thay đổi

•Thích hợp cho các hệ điều hành nhúng trong các thiết bị yêu cầu sự

ổn định cao và ít biến động về cấu hình bộ nhớ Nó đảm bảo tính tin cậy nhưng có thể gây lãng phí nếu sử dụng không tối ưu

2 Quản lý bộ nhớ động

•Bộ nhớ được cấp phát và thu hồi trong quá trình hoạt động của chương trình, giúp linh hoạt sử dụng tài nguyên bộ nhớ

•Tuy nhiên, việc cấp phát động có thể gây phân mảnh bộ nhớ (memory fragmentation), một vấn đề đặc biệt nghiêm trọng với các hệ điều hành nhúng vì chúng khó có đủ bộ nhớ lớn để bù đắp cho phân mảnh

3 Phân vùng bộ nhớ

5

Trang 7

•Bộ nhớ được chia thành các phân vùng hoặc khu vực riêng biệt để quản lý tài nguyên một cách có tổ chức và dễ kiểm soát

•Các phân vùng có thể được sử dụng cho các mục đích cụ thể như lưu trữ mã chương trình, dữ liệu, hoặc bộ nhớ đệm, giúp tránh xung đột

và tăng hiệu năng

4 Sử dụng heap và stack

•Hệ điều hành nhúng có thể quản lý hai vùng bộ nhớ chính là stack (ngăn xếp) và heap (vùng cấp phát động)

•Stack thường được sử dụng cho các biến cục bộ và quản lý các hàm

đệ quy, trong khi heap dành cho các yêu cầu cấp phát động lớn hơn 2.2.2 Bộ nhớ ảo trong hệ điều hành nhúng

1 Hạn chế trong việc sử dụng bộ nhớ ảo

•Hệ điều hành nhúng thường ít sử dụng bộ nhớ ảo (virtual memory) như trong các hệ điều hành máy tính để bàn vì yêu cầu hiệu suất thời gian thực và bộ nhớ hạn chế

•Bộ nhớ ảo yêu cầu một bảng trang (page table) và khả năng hoán đổi dữ liệu giữa bộ nhớ chính và bộ nhớ phụ, nhưng điều này có thể tiêu tốn tài nguyên và làm tăng độ trễ, không phù hợp cho các ứng dụng nhúng

2 MMU (Memory Management Unit) tối thiểu

•Một số hệ điều hành nhúng cao cấp (như những cái chạy trên Linux nhúng) có thể sử dụng MMU để hỗ trợ phân vùng bộ nhớ bảo vệ,

mà không có chức năng bộ nhớ ảo phức tạp

•Điều này giúp cô lập vùng mã và dữ liệu của các tiến trình, cải thiện bảo mật và tính ổn định của hệ thống mà không cần trang bộ nhớ

ảo như trong các hệ thống lớn hơn

2.2.3 Cơ chế thay thế bộ nhớ

Trong hệ điều hành nhúng, việc thay thế bộ nhớ ít phổ biến do hạn chế tài nguyên và yêu cầu hoạt động ổn định, nhưng một số cơ chế vẫn có thể được

áp dụng:

1 Thu hồi bộ nhớ

•Trong các hệ điều hành nhúng hỗ trợ cấp phát động, thu hồi bộ nhớ không còn sử dụng (garbage collection) có thể được dùng để giải phóng bộ nhớ

•Tuy nhiên, kỹ thuật này chỉ phù hợp với hệ thống không yêu cầu đáp ứng thời gian thực nghiêm ngặt vì quá trình thu hồi có thể gây gián đoạn

6

Trang 8

2 Cơ chế thu hồi phân mảnh bộ nhớ

•Một số hệ điều hành nhúng có thể sử dụng kỹ thuật chống phân mảnh để giảm thiểu việc chia nhỏ bộ nhớ, giúp tối ưu hóa việc cấp phát

3 Các chiến lược thay thế cho cache

•Với các hệ điều hành nhúng có hỗ trợ bộ nhớ đệm (cache), một số chiến lược thay thế có thể được áp dụng, chẳng hạn như LRU (Least Recently Used) hoặc FIFO (First In, First Out) để giải phóng các khối bộ nhớ cache cũ, nhường chỗ cho dữ liệu mới

•Bộ nhớ đệm giúp tăng tốc độ truy xuất dữ liệu, nhưng cần quản lý

kỹ để đảm bảo đáp ứng kịp thời

2.3 Quản lý tiến trình

2.3.1 Các thuật toán quản lý tiến trình

1 Thuật toán điều phối theo vòng xoay

•Đây là một thuật toán điều phối thời gian đơn giản, các tiến trình được cấp một khoảng thời gian cố định (time slice) để thực thi

•Khi hết khoảng thời gian này, tiến trình sẽ được đưa ra khỏi CPU và một tiến trình khác sẽ được đưa vào

•Thuật toán này thường phù hợp với các hệ điều hành nhúng yêu cầu thời gian thực và có nhiều nhiệm vụ cần xử lý đồng thời

2 Điều phối ưu tiên

•Các tiến trình được gán một mức ưu tiên, và tiến trình có ưu tiên cao hơn sẽ được CPU phục vụ trước

•Trong hệ điều hành nhúng, điều phối ưu tiên rất hữu ích vì nhiều ứng dụng cần phản hồi ngay lập tức hoặc nhanh chóng (ví dụ, xử lý tín hiệu cảm biến)

•Tiến trình có thể được sắp xếp ưu tiên cao nếu nó là nhiệm vụ thời gian thực, trong khi các tác vụ ít quan trọng hơn sẽ có mức ưu tiên thấp hơn

3 Điều phối theo ngắt

•Một số hệ điều hành nhúng sử dụng các ngắt để tạm dừng tiến trình đang thực thi và phục vụ một tiến trình quan trọng hơn ngay lập tức

•Điều phối theo ngắt phù hợp cho các ứng dụng nhúng cần xử lý sự kiện đột ngột, như khi thiết bị cần đáp ứng với một tín hiệu đầu vào

4 Điều phối FIFO

7

Trang 9

•Các tiến trình được thực thi theo thứ tự vào trước, xử lý trước, phù hợp với các hệ thống nhúng đơn giản hoặc nơi các tác vụ có tính chất tương tự nhau và không có yêu cầu ưu tiên

•FIFO có lợi khi các nhiệm vụ có thời gian xử lý tương đối ngắn và đồng đều

5 Điều phối sẵn sàng trước hạn

•Phương pháp này cho phép một tiến trình có thể bị tạm dừng để một tiến trình quan trọng hơn thực thi ngay lập tức

•Điều phối sẵn sàng trước hạn thích hợp cho các ứng dụng nhúng yêu cầu phản hồi nhanh khi có sự kiện hoặc ngắt ưu tiên cao

2.3.2 Các trạng thái của tiến trình

1 Trạng thái khởi tạo

•Tiến trình đang được tạo ra Hệ điều hành đã tạo ra các thông tin về tiến trình tuy nhiên tiến trình chưa được thêm vào danh sách những tiến trình được phép thực hiện Thông thường, tiến trình ở trạng thái này chưa nằm trong bộ nhớ

2 Trạng thái sẵn sàng

•Tiến trình chờ được cấp CPU để thực hiện lệnh của mình

3 Trạng thái chạy

•Lệnh của tiến trình được CPU thực hiện

•Tiến trình sẽ tiếp tục ở trạng thái này cho đến khi hoàn thành hoặc

bị ngắt để nhường CPU cho tiến trình khác

4 Trạng thái chờ đợi

•Tiến trình chờ đợi một sự kiện gì đó xảy ra, ví dụ chờ tín hiệu từ tiến trình khác hoặc chờ kết thúc quá trình vào/ra Trạng thái chờ đợi còn được gọi là trạng thái bị phong tỏa (blocked)

5 Trạng thái kết thúc

•Tiến trình không còn nằm trong danh sách các tiến trình được thực hiện nhưng vẫn chưa bị xóa Tiến trình thuộc về trạng thái này sau khi đã thực hiện xong hoặc bị tiến trình khác kết thúc

2.4 Các dịch vụ của hệ điều hành nhúng cung cấp

Hệ điều hành nhúng cung cấp một số dịch vụ thiết yếu để quản lý tiến trình

và tài nguyên, giúp các tiến trình hoạt động ổn định và hiệu quả:

1 Dịch vụ quản lý tiến trình

8

Trang 10

•Cung cấp các dịch vụ tạo, xóa, và điều phối tiến trình Một số hệ điều hành nhúng hỗ trợ quản lý đa nhiệm (multitasking), cho phép nhiều tiến trình chạy đồng thời và được điều phối thông qua các thuật toán điều phối

2 Dịch vụ quản lý bộ nhớ

•Hỗ trợ cấp phát và thu hồi bộ nhớ cho các tiến trình Bộ nhớ có thể được chia thành các phân vùng cố định hoặc động

•Một số hệ điều hành nhúng có thể hỗ trợ bộ nhớ bảo vệ để ngăn các tiến trình truy cập vào bộ nhớ của tiến trình khác, tăng cường tính bảo mật

3 Dịch vụ quản lý ngắt

•Hỗ trợ xử lý các ngắt từ phần cứng, cho phép phản hồi nhanh với các sự kiện từ bên ngoài

•Các ngắt có thể giúp hệ điều hành nhúng xử lý các sự kiện thời gian thực, như phản hồi tín hiệu từ cảm biến

4 Dịch vụ quản lý tài nguyên I/O

•Quản lý truy cập vào các tài nguyên I/O như cảm biến, thiết bị đầu vào, và thiết bị đầu ra Điều này đảm bảo rằng các tiến trình sử dụng tài nguyên mà không gây xung đột

•Một số hệ điều hành nhúng cung cấp các giao thức chuẩn cho phép giao tiếp đơn giản với các thiết bị ngoại vi

5 Dịch vụ đồng bộ hóa và giao tiếp giữa các tiến trình

•Hệ điều hành nhúng cung cấp các cơ chế đồng bộ hóa như mutex, semaphore, và message queue để giúp các tiến trình chia sẻ và trao đổi dữ liệu an toàn

•IPC giúp các tiến trình làm việc hiệu quả trong các hệ thống đa nhiệm và hỗ trợ việc chia sẻ tài nguyên mà không gây xung đột

6 Dịch vụ giám sát và bảo trì

•Hỗ trợ theo dõi và giám sát hoạt động của hệ thống, giúp phát hiện

và xử lý các lỗi hoặc vấn đề tiềm ẩn

•Một số hệ điều hành nhúng có các dịch vụ bảo trì như cập nhật phần mềm từ xa (OTA - Over-the-Air) để nâng cấp thiết bị mà không cần can thiệp trực tiếp

9

Ngày đăng: 15/02/2025, 22:09