Tải bản đầy đủ (.pdf) (2 trang)

043_Tìm hiểu hệ điều hành thời gian thực Linux và phát triển một số ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (157.43 KB, 2 trang )

-58-

TÌM HIỂU HỆ ĐIỀU HÀNH THỜI GIAN THỰC LINUX VÀ PHÁT TRIỂN
MỘT SỐ ỨNG DỤNG

Phạm Công Phan
MSV: 0320230
Email:
Người hướng dẫn:
PGS.TS. Nguyễn Ngọc Bình

1. Giới thiệu
Xu hướng lập trình các hệ thống nhúng,
thời gian thực đã ra đời khá lâu trên thế giới,
đặc biệt là lĩnh vực thời gian thực là một lĩnh
vực khó, bằng chứng là đã có rất nhiều công
trình khoa học đóng góp cho lĩnh vực này. Hiện
tại ở Việt Nam đang rất quan tâm đến hệ thống
nhúng (với sự xuất hiện của các thiết bị nhúng
điển hình như các PDA, các đồ gia dụng trong
gia đình..), là một xu hướng khá mới mẻ nhưng
không phải là khó nếu biết nắm bắt công nghệ,
tìm hiểu sâu về kiến trúc của hệ thống nhúng và
kỹ thuật lập trình nhúng.
2. Mục đích của khoá luận
Mục đích của khoá luận là tìm hiểu môi
trường lập trình hệ thống nhúng thời gian thực
trên Linux. Tìm hiểu các hỗ trợ thời gian thực
của nhân Linux chuẩn, các tiếp cận cải thiện độ
trễ trên Linux. Khoá luận nghiên cứu kiến trúc
của một hệ điều hành thời gian thực RTOS –


nhân thời gian thực dựa trên nền nhân Linux
chuẩn – Standard Linux Kernel. Đặc biệt khoá
luận đi sâu vào tìm hiểu kiến trúc và các dịch
vụ thời gian thực được cung cấp bởi RTAI –
một mở rộng thời gian thực cứng của nhân
Linux chuẩn, nhân thời gian thực, giao diện lập
trình thời gian thực mạnh mẽ trên nền Linux,
dựa vào cơ chế trừu tượng hoá ngắt trên Linux.
Đồng thời cũng nhấn mạnh các ưu và nhược
điểm của “hệ điều hành thời gian thực cứng”
này.
Khoá luận cũng trình bày các nguyên lý
cơ bản để xây dựng một ứng dụng nhúng trên
Linux như: môi trường lập trình trên hệ thống
phát triển chủ, các cách để thiết lập phát triển
và dò lỗi ứng dụng nhúng, các lựa chọn và cấu
hình nhân Linux chuẩn để hỗ giao diện lập trình
thời gian thực RTAI.
3. Thời gian thực trong các hệ thống
Linux nhúng.
Giới thiệu các khái niệm cơ bản về hệ thống
nhúng, hệ thống thời gian thực, hệ thống thời
gian thực cứng, hệ thống thời gian thực mềm.
Có thể nói hệ thống nhúng bao gồm phần
mềm nhúng trong một một thiết bị nhúng, một
thiết bị “có chứa một máy tính bên trong” để
điều khiển và quản lý các hệ thống khác.
Hệ thời gian thực là hệ thống phải đáp ứng
lại các sự kiện tương tác từ môi trường đúng
thời gian. Hệ thời gian thực không có nghĩa là

phải có tốc độ nhanh.
Linux là một nhân hệ điều hành mã nguồn
mở, với một cộng đồng phát triển thân thiện ,
năng động và chia sẻ. Linux có tính khả chuyển
và khả năng co giãn cao.
Tuy nhiên Linux không phải là hệ điều hành
thời gian thực bởi mục đích của Linux là đạt
được thông lượng tối đa nên độ trễ trễ khá lớn
đi ngược lại tôn chỉ của một hệ điều hành thời
gian thực. Do đó ta cần một số tiếp cận để cải
thiện độ trễ của nhân Linux chuẩn như: cải
thiện chính sách giành quyền ưu tiên, trừu
tượng hoá ngắt coi nhân Linux như là một tác
vụ thời gian thực có độ ưu tiên thấp nhất, có hai
mở rộng thời gian thực dựa trên cơ chế trừu
tượng hoá ngắt là các hệ điều hành thời gian
thực RTLinux và RTAI. Ngoài ra trong các
phiên bản nhân Linux mới đây cũng đã có
nhưng cải tiến hơn trong tiếp cận thời gian
thực, và hỗ trợ chuẩn POSIX cho các tác vụ
thời gian thực.
4. Giao diện lập trình thời gian thực
RTAI.
RTAI – Realtime Application Interface là
giải pháp thời gian thực cho Linux dựa trên
phiên bản mở rộng thời gian thực RTLinux.
Những tính năng quan trọng nhất của RTAI
bao gồm: các phương thức giao tiếp liên tiến
trình rất đa dạng và mềm dẻo và giao diện lập
trình tương ứng cho phép tạo ra các tác vụ thời

gian thực trong không gian người dùng (thư
viện LXRT hỗ trợ tạo ra các tác vụ thời gian
thực cứng chạy trong không gian nhân – kernel
-59-

space), tránh được điểm bất lợi khi phải vận
hành trong không gian nhân như trong
RTLinux.
5. Xây dựng một hệ thống Linux nhúng
sử dụng RTAI.
Chương này đưa ra cách thức chuyển
đổi một phiên bản Linux chuẩn sang một hệ
điều hành nhúng, mức độ còn tương quan giữa
các phiên bản nhúng và phiên bản chuẩn. Vì
khi một hệ điều hành nhúng đã được làm tối ưu
cho một thiết bị và mục đích cụ thể thì nhiều
phần code trong Linux chuẩn không còn cần
thiết nữa. Trong trường hợp có các ràng buộc
về thiết bị lưu trữ, một bước quan trọng là phải
lược bỏ bớt mã trong nhân Linux gọn nhẹ tới
mức có thể. Chẳng hạn, kích thước của thư viện
C được lược bỏ đi các hàm không cần thiết,
chằng hạn như thay thế nó bởi thư việc
uclibc…
6. Xây dựng ứng dụng demo.

Trên cơ sở nghiên cứu lý thuyết về phát
triển nhúng trên môi trường Linux sử dụng giao
diện lập trình thời gian thực RTAI, áp dụng vào
đặc tả, phân tích thiết kế và xây dựng ứng dụng

áp dụng Máy bán nước tự động – Drink
Vending Machine (DVM).
Tài liệu tham khảo

[1] Dough Abbott, Linux For Embedded
And Realtime Applications, Elsevier
Science (USA), 2003.
[2] Michael Barr, Programming
Embedded Systems in C and C++,
O'Reilly, First Edition January 1999.
[3] Dr. Jürgen Sauermann, Melanie Thelen,
Realtime Operating Systems,
Concepts and Implementation of
Microkernels for Embedded Systems,
Publised year ???. Phillip A. Laplante,
Realtime Systems design and analysis,
A JOHN WILEY & SONS, INC.,
PUBLICATION, IEEE Press, Third
edition, 2004.
[4] Herman Bruyninckx, K.U.Leuven,
Real-Time and Embedded Guide,
Mechanical Engineering, Leuven
Belgium,

.be, 2000, 2001, 2002.
[5] Karim Yaghmour
, Building Embedded
Linux Systems, O'Reilly, April 2003,
pages: 416.
[6] Danese Cooper, Chris DiBona,

Mark Stone, Open Sources 2.0,
O'Reilly, October 2005, pages: 488.
[7] Rtai Programming Guide 1.0, Lineo,
Inc, September 2000.
[8] Giovanni Racciu <>,
Paolo Mantegazza
<
>, RTAI
3.3 User Manual rev 0.2, 2006.
[9] Pasi Sarolahti, Real-Time Application
Interface, Research seminar on Real-
Time, Linux and Java, University of
Helsinki, Department of Computer
Science, 26th February 2001.
[10]
Alfred Strohmeier, Thomas Baar,
Applying Fondue to Specify a
Drink Vending Machine, Software
Engineering Laboratory, Swiss
Federal Institute of Technology
Lausanne (EPFL), CH-1015
Lausanne, Switzerland, 2003.

×