You are on page 1of 50

Ho Chi Minh City National University

Ho Chi Minh City University of Technology


Faculty of Mechanical Engineering
Department of Mechatronics

Subject:

Real-time System
Chapter 1:

Introduction

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


Mục tiêu

▪ Nắm được các khái niệm hệ thống thời gian thực


▪ Các ứng dụng của hệ thời gian thực
▪ Xu hướng phát triển hiện nay

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


Giới Thiệu Về Môn Học

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


Địa Chỉ Liên Hệ
► Văn Phòng: ► Giảng viên: TS. Ngô Hà Quang Thịnh
▪ Bộ môn Cơ Điện Tử-Khoa Cơ Khí ▪ Di động: 0961382007
▪ Trường đại học Bách Khoa Tp HCM ▪ Mail: nhqthinh@hcmut.edu.vn
▪ 268 Lý Thường Kiệt, Quận 10

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


Mục Đích & Nội Dung Môn Học
● Trang bị cho người học những kiến thức cơ bản và kỹ năng nâng cao
trong quá trình thiết kế các hệ thống điều khiển mà ở đó yếu tố thời gian
đóng vai trò bắt buộc, nắm vững và hiểu rõ khái niệm “song song” trong
các trình thời gian thực, các chuẩn về lập trình đang được sử dụng trong
các hệ thời gian thực hiện nay.
● Tóm tắt nội dung môn học: Nội dung môn học “hệ thống thời gian thực”
là những kiến thức cơ bản và kỹ năng nâng cao về các yếu tố thời gian
của các hệ điều khiển (thế nào là hệ thời gian thực, các ràng buộc về thời
gian, phân loại hệ thời gian thực); các tính chất cơ bản của một “task”
trong hệ thời gian thực; các phương pháp phân tích và sắp xếp trật tự các
“task” để bảo đảm thỏa các ràng buộc về thời gian; đồng thời cung cấp
các kiến thức mới nhất về thời gian thực trong hệ thống mạng công
nghiệp hiện nay
TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn
Tài Liệu Tham Khảo Chính

● Francis Cottet, Joelle Delacroix, Claude Kaiser and Zoubir


Mammeri, Scheduling in Real-Time Systems, John Wiley & Sons
Publishing Company, Ltd., 2002, 2002
● Francis Cottet, Emmanuel Grolleau and Dunod, Systèm temps
réel de contrôle-commande: Conception et implémentation, Dunod,
2005, 2003

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


Hướng Dẫn & Cách Đánh Giá MH

● Tài liệu được đưa lên BKEL hằng tuần. Sinh viên tải về, in ra và
mang theo khi đến lớp học
● Điểm tổng kết môn học được đánh giá xuyên suốt quá trình học
● Bài tập về nhà (cá nhân, nhóm)
● Thực hành thí nghiệm
● Quá trình (bài tập lớn, chuyên cần)
● Thi cuối kỳ

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


Nội Dung Chi Tiết MH

● Chương I: Giới Thiệu


● Chương IA: Quản Lý Tiến Trình
● Chương II: Cấu Trúc Phần Cứng Của Hệ Thời Gian Thực
● Chương III: Cấu Trúc Phần Mềm Của Hệ Thời Gian Thực
● Chương IV: Mô Hình Lập Trình
● Chương V: Hệ Điều Hành Thời Gian Thực
● Chương VI: Kỹ Thuật Sắp Xếp Tác Vụ

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


Các Khái Niệm Cơ Bản

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.1. Các khái niệm cơ bản

Hệ thống nhúng là hệ thống có phần cứng xây dựng dựa trên bộ vi xử lý (hoặc vi
điều khiển) với phần mềm được thiết kế để thực hiện một chức năng chuyên biệt. Hệ
thống có thể được tái lập trình hoặc giữ một chức năng cố định.
Đặc điểm của hệ thống nhúng:
• Cấu trúc gồm: phần cứng (hardware) và phần
mềm (firmware, software).
• Có thể được nhúng trong các hệ thống lớn để
thực hiện một chức năng cụ thể.
• Có thể là bộ vi xử lý hoặc vi điều khiển - cả hai
đều là các mạch tích hợp cung cấp cho hệ thống
khả năng tính toán.

Máy tính cá nhân (Personal Computer) có phải


là một hệ thống nhúng?

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.1. Các khái niệm cơ bản
Hệ thời gian thực là hệ thống có yêu cầu khắt khe về sự ràng buộc thời gian, thời gian thực
được hiểu là yêu cầu của hệ thống phải đảm bảo thoả mãn về tính tiền định trong hoạt động
của hệ thống. Tính tiền định nói lên hành vi của hệ thống thực hiện đúng trong một khung
thời gian cho trước hoàn toàn xác định.

Hệ thời gian thực chia làm hai loại: thời gian thưc
cứng (Hard real-time) và thời gian thực mềm (Soft
real-time)
• Hard real-time: Thời gian thực cứng là khi hệ
thống hoạt động với yêu cầu thoả mãn sự ràng
buộc trong khung thời gian cứng tức là nếu vi
phạm thì sẽ dẫn đến hoạt động của toàn hệ
thống bị sai hoặc bị phá huỷ.
• Soft real-time: là khi hệ thống hoạt động với
yêu cầu thoả mãn ràng buộc trong khung thời
gian mềm, nếu vi phạm và sai lệch nằm trong
khoảng cho phép thì hệ thống vẫn có thể hoạt
động được và chấp nhận được

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.2. Các đặc điểm công nghệ

Khả năng độc lập và thông


minh hoá

Tính hiệu quả


Đặc điểm công
nghệ của hệ
thống nhúng
Phân hoạch tác vụ và chức
năng hoá

Khả năng thời gian thực

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.3. Một Số Khái Niệm Liên Quan

• Phần cứng — bao gồm CPU, bộ nhớ, các thiết bị xuất
nhập, đây là những tài nguyên của máy tính.

• Chương trình ứng dụng — như chương trình dịch, hệ


thống cơ sở dữ liệu, các trò chơi và các chương trình
thương mại.

• Hệ điều hành — có chức năng điều khiển và phối hợp việc
sử dụng phần cứng cho những ứng dụng khác nhau.

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.3. Một Số Khái Niệm Liên Quan

• Hệ điều hành — là một chương trình hay một hệ chương
trình hoạt động tương tác giữa người sử dụng và phần
cứng của máy tính.

• Hệ thống máy tính — thường bao gồm có 4 thành phần
chính như phần cứng, hệ điều hành, các chương trình ứng
dụng và người dùng.

• Hệ điều hành có thể được coi như là bộ phân phối, cấp phát
và giải quyết tranh chấp tài nguyên của máy tính như thời
gian sử dụng CPU, vùng bộ nhớ, vùng lưu trữ tập tin, thiết
bị nhập xuất ...

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.3. Một Số Khái Niệm Liên Quan
• Một hệ thống xử lý thời gian thực được sử dụng khi có những
đòi hỏi khắt khe về thời gian trên các thao tác của bộ xử lý
hoặc dòng dữ liệu.

• Do đó, một hệ thống tốt, thời gian xử lý nhanh là hệ thống
phải cho kết quả chính xác trong khoảng thời gian bị thúc ép
nhanh nhất.

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.4. Phân Loại
• Hệ thống xử lý theo lô — thực hiện các công việc lần lượt theo những
chỉ thị định trước, không cần sự can thiệp của người lập trình.

• Hệ thống xử lý theo lô đa chương trình (multi-program) — khai thác
CPU bằng cách tổ chức các công việc sao cho CPU luôn luôn phải
trong tình trạng làm việc (tức CPU luôn được sử dụng qua lại bởi nhiều
tiến trình).

• Hệ thống chia sẻ thời gian — đây là một dạng của hệ thống đa chương,
là kiểu của các hệ điều hành hiện đại ngày nay, hệ thống này còn được
gọi là hệ thống đa nhiệm (multi-tasking).

• Hệ thống song song — hệ thống có nhiều bộ xử lý cùng chia sẻ hệ
thống đường truyền dưữ liệu, đôồng hồ, bộ nhớ và các thiết bị ngoại vi.
Các bộ xử lý này liên lạc bên trong với nhau.

• Hệ thống phân tán — giống như hệ thống chia sẻ thời gian nhưng các
bộ xử lý không chia sẻ bộ nhớ và đồng hồ, mà mỗi bộ xử lý có bộ nhớ
cục bộ riêng.
TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn
1.4. Phân Loại

• Hệ thống xử lý theo lô — thực hiện các công việc lần lượt theo những
chỉ thị định trước, không cần sự can thiệp của người lập trình.

– CPU và thao tác nhập xuất: Tốc độ CPU nhanh hơn nhiều tốc độ của các thiết bị
ngoại vi. Do đó phải sử dụng 2 phương pháp là xử lý offline và spooling để đồng bộ
hoá hoạt động của CPU và thao tác nhập xuất.

– Xử lý offline: là thay vì CPU phải đọc trực tiếp từ thiết bị nhập và xuất ra thiết bị xuất,
hệ thống dùng 1 bộ lưu trữ trung gian. CPU chỉ thao tác với bộ phận này. Việc đọc
hay xuất đều đến và tư bộ lưu trữ trung gian.

– Spooling (simultaneous peripheral operation online): là đồng bộ hoá các thao tác bên
ngoài online, bằng việc sử dụng 1 bộ spooler. Cơ chế này cho phép quá trình giao
tiếp giữa CPU và ngoại vi là liên tục mà không gây ảnh hưởng đến việc sử dụng
CPU.

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.4. Phân Loại
• Hệ thống xử lý theo lô đa chương trình (multi-program) — khai thác
CPU bằng cách tổ chức các công việc sao cho CPU luôn luôn phải
trong tình trạng làm việc (tức CPU luôn được sử dụng qua lại bởi nhiều
tiến trình).

– Hệ phải xử lý các vấn đề lập lịch cho công việc, lập lịch cho bộ nhớ và cho cả CPU
nữa.

– Hiệu suất sử dụng CPU luôn cao, đảm bảo hiệu quả cho tiến trình làm việc

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.4. Phân Loại
• Hệ thống chia sẻ thời gian — đây là một dạng của hệ thống đa chương,
là kiểu của các hệ điều hành hiện đại ngày nay, hệ thống này còn được
gọi là hệ thống đa nhiệm (multi-tasking).

– Một chương trình khi thi hành được gọi là một tiến trình. Trong quá trình thực hiện
các thao tác nhập xuất thì CPU sẽ thi hành một tiến trình khác

– Một hệ điều hành chia sẻ cho phép nhiều người sử dụng chia sẻ máy tính một cách
đồng bộ do thời gian chuyển đổi nhanh nên họ có cảm giác là các tiến trình đang
được thi hành cùng lúc.

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.4. Phân Loại
• Hệ thống song song — hệ thống có nhiều bộ xử lý cùng chia sẻ hệ
thống đường truyền dữ liệu, đồng hồ, bộ nhớ và các thiết bị ngoại vi.
Các bộ xử lý này liên lạc bên trong với nhau.

– Với sự gia tăng số lượng bộ xử lý, công việc được thực hiện nhanh chóng hơn

– Tài nguyên được sử dụng một cách hiệu quả do có sự chia sẻ nhằm tiết kiệm vùng
nhớ

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.4. Phân Loại
• Hệ thống phân tán — giống như hệ thống chia sẻ thời gian nhưng các
bộ xử lý không chia sẻ bộ nhớ và đồng hồ, mà mỗi bộ xử lý có bộ nhớ
cục bộ riêng. Các nguyên nhân phải xây dựng hệ thống phân tán:

– Chia sẻ tài nguyên

– Tăng tốc độ tính toán

– An toàn

– Thông tin liên lạc giữa các thiết bị

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.4. Thí Dụ Điển Hình

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.4. Thí Dụ Điển Hình

Switch
Computer

Switch

Assembly line

Bell

Line controller Box

0 = stop

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.4. Thí Dụ Điển Hình

Production
Control
System

Finished
Products
Parts

Machine Tools Manipulators Conveyor Belt

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.4. Thí Dụ Điển Hình
Command
Post

Command and Control


Computer

Temperature, Pressure, Power and so on

Terminals Sensors/Actuators

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.4. Thí Dụ Điển Hình

Real-Time Algorithms for Engineering


Interface
Clock Digital Control System

Data Logging Remote


Monitoring System

Database
Data Retrieval Display
and Display Devices

Operator’s Operator
Console Interface
Real-Time Computer

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Ngôn Ngữ Lập Trình
• Assembly languages
• Sequential systems implementation languages — e.g.
RTL/2, Coral 66, Jovial, C.
• Both normally require operating system support.
• High-level concurrent languages. Impetus from the software
crisis. e.g. Ada, Chill, Modula-2, Mesa, Java.
• No operating system support!
• Several main languages:
– Java/Real-Time Java
– C and Real-Time POSIX
– Ada 95
– Also Modula-1 for device driving

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Các Tính Chất của RTS

• Tính bị động: Hệ thống phải phản ứng với các sự kiện xuất
hiện vào các thời điểm thường không biết trước.
• Tính nhanh nhạy: Hệ thống phải xử lý thông tin một cách
nhanh chóng để có thể đưa ra kết quả phản ứng một cách
kịp thời.
• Tính đồng thời: Hệ thống phải có khả năng phản ứng và xử
lý đồng thời nhiều sự kiện diễn ra.
• Tính tiền định: Dự đoán trước được thời gian phản ứng tiêu
biểu, thời gian phản ứng chậm nhất cũng như trình tự đưa
ra các phản ứng.

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Đồng Hồ Hệ Thống

– Thời gian RTS được báo bằng đồng hồ hệ thống
– Hệ thống có nhiều vi xử lý có thể có nhiều đồng hồ
nhưng các đồng hồ phải đồng bộ với nhau

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Đồng Hồ Hệ Thống

o Hệ thống có 1 đồng hồ duy nhất


o Server clock
o Độ chính xác cao

o Hệ thống có nhiều đồng hồ


o 1 đồng hồ chính (Master clock) và nhiều đồng hồ phụ
(Slave clock)
o Các đồng hồ đồng bộ với nhau
o Khi đồng hồ chính bị hỏng → 1 đồng hồ phụ thay thế
đóng vai trò đồng hồ chính

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Đồng Hồ Hệ Thống
• Đồng hồ trong các hệ thống số phát sinh ngắt báo hiệu theo
1 chu kỳ

• Chu kỳ này khoảng us hoặc ns


• Đơn vị nhỏ nhất của thời gian là 1 chu kỳ
• Thời gian có tính rời rạc

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Khái Niệm Tiến Trình (Process) và Mô
Hình Đa Tiến Trình (Multi-Process)
Nhu cầu xử lý đồng hành

– Có 2 động lực chính khiến cho hệ điều hành hiện đại
thường hỗ trợ môi trường đa nhiệm (multi-task) trong đó
chấp nhận nhiều tác vụ thực hiện đồng thời trên cùng
một máy tính:
• Tăng hiệu suất sử dụng CPU
• Tăng tốc độ xử lý

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Khái Niệm Tiến Trình (Process) và Mô
Hình Đa Tiến Trình (Multi-Process)
Nhu cầu xử lý đồng hành
– Tăng hiệu suất sử dụng CPU:
• Khi tác vụ (tiến trình) đang xử lý IO thì CPU sẽ rãnh rỗi
• Vì thế, CPU sẽ được tận dụng lúc rãnh, để dùng cho một tác vụ
khác

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Khái Niệm Tiến Trình (Process) và Mô
Hình Đa Tiến Trình (Multi-Process)
Nhu cầu xử lý đồng hành
– Tăng tốc độ xử lý:
• Với bài toán có bản chất xử lý song song nếu được xây dựng
thành nhiều module hoạt động đồng thời thì sẽ tiết kiệm được
thời gian xử lý
• Ví dụ: xét bài toán tính giá trị biểu thức như sau kq = a*b + c*d

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Khái Niệm Tiến Trình (Process) và Mô
Hình Đa Tiến Trình (Multi-Process)
Tiến trình và đa tiến trình
– Việc điều khiển nhiều hoạt động song song ở cấp độ
phần cứng là rất khó khăn.
– Vì thế các nhà thiết kế đề xuất một mô hình song song
giả lập, bằng cách chuyển đổi bộ xử lý qua lại giữa các
chương trình để duy trì hoạt động của nhiều chương
trình một lúc.

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Khái Niệm Tiến Trình (Process) và Mô
Hình Đa Tiến Trình (Multi-Process)
Tiến trình và đa tiến trình
– Các phần mềm trong hệ thống được tổ chức thành một
số những tiến trình (process).

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Khái Niệm Tiến Trình (Process) và Mô
Hình Đa Tiến Trình (Multi-Process)
Tiến trình và đa tiến trình
– Phân biệt 2 khái niệm: chương trình và tiến trình.

Chương trình Tiến trình

- Một thực thể thụ động - Một thực thể hoạt động
- Chứa đựng các chỉ thị để - Có 1 con trỏ lệnh xác định
tiến hành một tác vụ nào đó chỉ thị kế tiếp sẽ thi hành
- Kèm theo các tài nguyên,
stack, không gian địa chỉ

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Khái Niệm Tiến Trình (Process) và Mô
Hình Đa Tiến Trình (Multi-Process)
Tiến trình và đa tiến trình
– Bộ phận điều phối hoạt động của các tiến trình, được gọi
là bộ lập lịch hay bộ điều phối (scheduler)

– Scheduler cung cấp giải thuật để giúp các tiến trình chạy
song song.

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Khái Niệm Tiến Trình (Process) và Mô
Hình Đa Tiến Trình (Multi-Process)
Tiến trình và đa tiến trình

(Hình a) Đa chương với 4 chương trình


(Hình b) Mô hình khái niệm với 4 chương trình độc lập
(Hình c) Tại 1 thời điểm chỉ có 1 chương trình hoạt động

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Khái Niệm Tiến Trình (Process) và Mô
Hình Đa Tiến Trình (Multi-Process)
Tiến trình và đa tiến trình
- Tiến trình được chia nhỏ ra thành nhiều tiểu trình (thread)

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Khái Niệm Tiến Trình (Process) và Mô
Hình Đa Tiến Trình (Multi-Process)
Tiến trình và đa tiến trình
- Ví dụ: 1 server luôn phải đợi kết nối của các người chơi
đăng nhập mới, đồng thời cũng phải xử lý các nhiệm vụ
khác (tải chương trình, cập nhật thông tin, ...). Vì vậy, cần 1
dòng xử lý riêng để đợi đăng nhập.

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Khái Niệm Tiến Trình (Process) và Mô
Hình Đa Tiến Trình (Multi-Process)
Tiến trình và đa tiến trình

- Một tiểu trình là 1 đơn vị xử lý cơ bản trong hệ thống.
- Các tiểu trình chia sẻ CPU với nhau giống như các chia
sẻ giữa các tiến trình: một tiểu trình xử lý trong khi các
tiểu trình khác chờ đến lượt.

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.5. Khái Niệm Tiến Trình (Process) và Mô
Hình Đa Tiến Trình (Multi-Process)
So sánh tiến trình và tiểu trình
- Giống nhau: đều có 1 con trỏ lệnh, stack, các thanh ghi,
không gian địa chỉ.
- Khác nhau:

Tiến trình Tiểu trình


- Trao đổi thông tin phải thông - Trao đổi thông tin trực tiếp
qua hệ điều hành với nhau
- Khác không gian địa chỉ - Chung không gian địa chỉ

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.6. Phân Tích Thí Dụ

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.6. Phân Tích Thí Dụ

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.6. Phân Tích Thí Dụ

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.6. Phân Tích Thí Dụ

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.6. Phân Tích Thí Dụ

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


1.6. Phân Tích Thí Dụ

TS. Ngô Hà Quang Thịnh, nhqthinh@hcmut.edu.vn


The End

50

You might also like