You are on page 1of 417

Chương 1

Giới thiệu về hệ thống thời gian thực


Giảng viên: Ths. Nguyễn Văn Duy
Số tiết: 3

04/03/2024 Hệ thống thời gian thực 1


Mục đích
• Giới thiệu tổng quan về mô hình hệ thời gian thực, các khái niệm cơ
bản của hệ thời gian thực, đặc điểm của các hệ thời gian thực, phân
biệt các hệ thời gian thực.
• Chương này cũng đồng thời giới thiệu hệ thống điều khiểnvới thời
gian thực

04/03/2024 Hệ thống thời gian thực 2


Nội dung bài học

1. Khái niệm hệ thống thời gian thực

2. Tại sao phải cần một hệ thống RTS

3. Thách thức hệ thống RTS

4. Phân loại các hệ thống thời gian thực

5. Thị trường và các ứng dụng của RTS


04/03/2024 Hệ thống thời gian thực 3
1. Khái niệm hệ thống thời gian thực

Khái niệm RTS

Một số ví dụ RTS

Thành phần cấu tạo RTS

Đặc điểm RTS

04/03/2024 Hệ thống thời gian thực 4


1. Khái niệm hệ thống thời gian thực
• Một hệ thống thời gian thực (RTS –Realtime Systems) có thể được hiểu
như là một mô hình xử lý mà tính đúng đắn của hệ thống không chỉ
phụ thuộc vào kết quả tính toán lôgic mà còn phụ thuộc vào thời gian
mà kết quả này phát sinh ra.
• RTS chỉ có một số công việc được gọi là công việc thời gian thực, các
công việc này có một mức độ khẩn cấp riêng phải hoàn tất, ví dụ một
tiến trình đang cố gắng điều khiển hoặt giám sát một sự kiện đang xảy
ra trong thế giới thực.

04/03/2024 Hệ thống thời gian thực 5


Ví dụ RTS

04/03/2024 Hệ thống thời gian thực 6


Ví dụ RTS (tt)

04/03/2024 Hệ thống thời gian thực 7


Thành phần cấu tạo RTS
• Đồng hồ thời gian thực : Cung cấp thông tin thời gian thực.
• Bộ điều khiển ngắt : Quản lý các biến cố không theo chu kỳ.
• Bộ định biểu : Quản lý các qua trình thực hiện.
• Bộ quản lý tài nguyên : Cung cấp các tài nguyên máy tính.
• Bộ điều khiển thực hiện : Khởi động các tiến trình.

04/03/2024 Hệ thống thời gian thực 8


Thành phần cấu tạo RTS (tt)

04/03/2024 Hệ thống thời gian thực 9


Đặc điểm RTS
• Khái niệm hệ thời gian thực không đồng nghĩa với khái niệm hệ xử lý
tốc độ cao, xử lý nhanh.
• Nếu ta cho rằng, phải là các ứng dụng điều khiển có yêu cầu thời gian
tính toán rất nhanh mới gọi là điều khiển thời gian thực, thì một câu
hỏi sẽ được đặt ra là: như thế nào mới được gọi là nhanh? Ta có thể
thống nhất là, cỡ một vài micro-giây là rất nhanh, tuy nhiên nếu một
vài chục micro-giây thì sao, một trăm micro-giây thì sao? Nếu một
trăm micro-giây mới gọi là nhanh, thì 101, 102, ... có nhanh không?
Các hệ điều khiển với chu kỳ trích mẫu 5ms, 6 ms, 7ms có được gọi là
hệ thời gian thực hay không?

04/03/2024 Hệ thống thời gian thực 10


Đặc điểm RTS (tt)

04/03/2024 Hệ thống thời gian thực 11


Đặc điểm RTS (tt)

Tính bị động

Tính nhanh nhạy

Tính đồng thời

Tính tiền định

04/03/2024 Hệ thống thời gian thực 12


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.
• Ví dụ, sự vượt ngưỡng của một giá trị đo, sự thay đổi trạng thái của
một thiết bị quá trình phải dẫn đến các phản ứng trong bộ điều khiển.

04/03/2024 Hệ thống thời gian thực 13


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.
• Tuy tính nhanh nhạy là một đặc điểmtiêu biểu, nhưng một hệ thống có
tính năng thời gian thực không nhất thiết phải có đáp ứng thật nhanh
mà quan trọng hơn là phải có phản ứng kịp thời đối với các yêu cầu,
tác động bên ngoài.

04/03/2024 Hệ thống thời gian thực 14


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.
• Có thể, cùng một lúc một bộ điều khiển được yêu cầu thực hiện nhiều
vòng điều chỉnh, giám sát ngưỡng giá trị nhiều đầu vào, cảnh giới
trạng thái làm việc của một số động cơ.

04/03/2024 Hệ thống thời gian thực 15


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.
• Nếu một bộ điều khiển phải xử lý đồng thời nhiều nhiệm vụ, ta phải
tham gia quyết định được về trình tự thực hiện các công việc và đánh
giá được thời gian xử lý mỗi công việc.
• Như vậy người sử dụng mới có cơ sở để đánh giá về khả năng đáp ứng
tính thời gian thực của hệ thống.

04/03/2024 Hệ thống thời gian thực 16


2. Tại sao phải cần một hệ thống RTS
• Giám sát: Mỗi sự kiện xuất hiện trong thế giới thực nên tiến trình
giám sát sự kiện này phải xử lý theo kịp với những thây đổi của sự
kiện này.
• Thay đổi nhanh: Sự thay đổi của sự kiện trong thế giới thực xảy ra
rất nhanh, mỗi tiến trình giám sát sự kiện này phải thực hiện việc xử lý
trong một khoản thời gian ràng buộc gọi là deadline, khoản thời gian
ràng buộc này được xác định bởi thời gian bắt đầu và thời gian hoàn
tất công việc.

04/03/2024 Hệ thống thời gian thực 17


3. Thách thức hệ thống RTS
• Thời gian: Các yếu tố kích thích xảy ra trong thời gian rất ngắn vào
khoảng vài mili giây, thời gian mà hệ thống trả lời lại yếu tố kích thích
đó tốt nhất vào khoảng dưới một giây, thường vào khoảng vài chục
mili giây, khoảng thời gian này bao gồm thời gian tiếp nhận kích thích,
xử lý thông tin và trả lời lại kích thích.

04/03/2024 Hệ thống thời gian thực 18


3. Thách thức hệ thống RTS (tt)
• Tuần hoàn: Một yếu tố khác cần quan tâm trong RTS là những công
việc thời gian thực này có tuần hoàn hay không? Công việc tuần hoàn
thì ràng buộc thời gian ấn định theo từng chu kỳ xác định. Công việc
không tuần hoàn xảy ra với ràng buộc thời gian vào lúc bắt đầu và lúc
kết thúc công việc, ràng buộc này chỉ được xác định vào lúc bắt đầu
công việc.
• Các biến cố kích hoạt công việc không tuần hoàn thường dựa trên kỹ
thuật xử lý ngắt của hệ thống phần cứng.

04/03/2024 Hệ thống thời gian thực 19


4. Phân loại các hệ thống thời gian thực

Soft reatime system

Hard realtime system

Soft và Hard
04/03/2024 Hệ thống thời gian thực 20
Soft reatime system
• Thời gian trả lời của hệ thống cho yếu tố kích thích là quan trọng, tuy
nhiên trong trường hợp ràng buộc này bị vi phạm, tức là thời gian trả
lời của hệ thống vượt quá giới hạn trễ cho phép, hệ thống vẫn cho
phép tiếp tục hoạt động bình thường, không quan tâm đến các tác hại
do sự vi phạm này gây ra (Thường thì tác hại này là không đáng kể).

04/03/2024 Hệ thống thời gian thực 21


Hard realtime system
• Trường hợp này người ta quan tâm khắt khe đến các hậu quả do sự vi
phạm giới hạn thời gian để cho phép bởi vì những hậu quả này có thể
là rất tồi tệ, thiệt hại về vật chất, có thể gây ra những ảnh hưởng xấu
đến đời sống con người.
• Một ví dụ cho loại này là hệ thống điều khiển không lưu, một phân
phối đường bay, thời gian cất cánh, hạ cánh không hợp lý, không đúng
lúc có thể gây ra tai nạn máy bay mà thảm họa của nó khó mà lường
trước được.

04/03/2024 Hệ thống thời gian thực 22


Soft và Hard

Embedded system

Realtime operating system (RTOS)

04/03/2024 Hệ thống thời gian thực 23


Embedded system
• Bộ vi xử lý điều khiển là một phần trong toàn bộ thiết bị, nó được sản
xuất trọn gói từ yếu tố cứng đến yếu tố mềm từ nhà máy, người sử
dụng không biết về chi tiết của nó và chỉ sử dụng thông qua các nút
điều khiển, các bảng số.
• Với hệ thống này, ta sẽ không thấy được những thiết bị như trong máy
tính bình thường như bàn phím, màn hình... mà thây vào đó là các nút
điều khiển, các bảng số, đèn tín hiệu hay các màn hình chuyên dụng
đặc trưng cho từng hệ thống.
• Máy giặt là một ví dụ

04/03/2024 Hệ thống thời gian thực 24


Realtime operating system (RTOS)
• Bao gồm những hệ thống có sự can thiệp của máy tính thông thường.
Thông qua máy tính ta hoàn toàn có thể kiểm soát cũng như điều khiển
mọi hoạt động của thiết bị phần cứng của hệ thống này.
• Những chương trình điều khiển này có rất nhiều loại, phục vụ cho
nhiều mục đích khác nhau và có thể được viết lại cho phù hợp với yêu
cầu thực tế.
• Hệ thống này hoạt động được phải cần một HĐH điều khiển máy tính.

04/03/2024 Hệ thống thời gian thực 25


5. Thị trường và các ứng dụng của RTS

04/03/2024 Hệ thống thời gian thực 26


5. Thị trường và các ứng dụng của RTS (tt)

04/03/2024 Hệ thống thời gian thực 27


5. Thị trường và các ứng dụng của RTS (tt)

04/03/2024 Hệ thống thời gian thực 28


5. Thị trường và các ứng dụng của RTS (tt)

04/03/2024 Hệ thống thời gian thực 29


5. Thị trường và các ứng dụng của RTS (tt)

04/03/2024 Hệ thống thời gian thực 30


Chương 2
Phần cứng hệ thống nhúng thời gian thực

Số tiết: 6

07/05/2020 Hệ thống nhúng thời gian thực 1


Nội dung bài học

2.1. Giới thiệu chương

2.2. Cấu trúc cơ bản

2.3. Bộ xử lý trung tâm CPU

2.4. Bộ nhớ

2.5. Các thiết bị vào ra

2.6. Câu hỏi

07/05/2020 Hệ thống nhúng thời gian thực 2


2.1. Giới thiệu chương
• Giới thiệu cấu trúc cơ bản của phần cứng hệ thống thời gian thực
• Giới thiệu khối xử lý trung tâm và bộ nhớ
• Giới thiệu khối giao tiếp
• Giới thiệu một số thiết bị cảm biến
• Giới thiệu một số thiết bị chấp hành

07/05/2020 Hệ thống nhúng thời gian thực 3


Nội dung bài học

2.1. Giới thiệu chương

2.2. Cấu trúc cơ bản

2.3. Bộ xử lý trung tâm CPU

2.4. Bộ nhớ

2.5. Các thiết bị vào ra

2.6. Câu hỏi

07/05/2020 Hệ thống nhúng thời gian thực 4


2.2. Cấu trúc cơ bản
• Trong cấu trúc đơn giản nhất, một hệ thống xử lý chung (hệ thống máy
tính) được cấu tạo gồm một CPU, bộ nhớ và I/O (Input/Output) được
nối với nhau bằng các bus

07/05/2020 Hệ thống nhúng thời gian thực 5


2.2. Cấu trúc cơ bản (tt)
• Một hệ thống xử lý chung có bốn loại bus:
❑bus nguồn: cấp nguồn điện cho các thành phần khác nhau của hệ thống
máy tính.
❑bus địa chỉ: để định địa chỉ bộ nhớ và các thiết bị I/O.
❑bus dữ liệu: để trao đổi dữ liệu giữa các thành phần khác nhau trong hệ
thống.
❑bus điều khiển: để báo cho bộ nhớ hay thiết bị I/O biết cách thức trao đổi
dữ liệu.
➢ Khi đề cập đến bus hệ thống thường ám chỉ đến bus địa chỉ và bus dữ liệu
07/05/2020 Hệ thống nhúng thời gian thực 6
2.2. Cấu trúc cơ bản (tt)
❑Một số hệ thống thời gian thực là đa xử lý thì có nghĩa là các bộ vi xử
lý được phân phối phân tán trong hệ thống.
❑Các hệ thống thời gian thực phân tán khác sử dụng đa xử lý để cho
phép hệ thống xử lý sắp xếp các tác vụ trên các bộ vi xử lý khác nhau.

07/05/2020 Hệ thống nhúng thời gian thực 7


Nội dung bài học

2.1. Giới thiệu chương

2.2. Cấu trúc cơ bản

2.3. Bộ xử lý trung tâm CPU

2.4. Bộ nhớ

2.5. Các thiết bị vào ra

2.6. Câu hỏi

07/05/2020 Hệ thống nhúng thời gian thực 8


2.3. Bộ xử lý trung tâm CPU
• CPU là viết tắt của Central Processing Unit (khối xử lý trung tâm).
• CPU là bộ não của hệ thống máy tính: hầu hết các tính toán xảy ra.
• Về khả năng tính toán, CPU là yếu tố quan trọng nhất của một hệ
thống máy tính.
• Trong các hệ thống lớn, CPU yêu cầu một hoặc nhiều bản mạch in
• Trên các máy tính cá nhân và máy trạm nhỏ, CPU là một chip duy
nhất được gọi là một bộ vi xử lý.

07/05/2020 Hệ thống nhúng thời gian thực 9


2.3. Bộ xử lý trung tâm CPU (tt)
• CPU hiện nay có kích thước nhỏ, có hình vuông và có nhiều chân kim
loại dùng để kết nối xuống bo mạch chủ.
• Thông thường, CPU được gắn trực tiếp vào một chân đế cắm xuống
bo mạch chủ.
• Ngoài ra, do hoạt động tính toán của nó tỏa ra rất nhiều nhiệt nên nó
có thể có một thiết bị tản nhiệt và quạt nhỏ kèm theo để giúp tản nhiệt.

07/05/2020 Hệ thống nhúng thời gian thực 10


2.3. Bộ xử lý trung tâm CPU (tt)

07/05/2020 Hệ thống nhúng thời gian thực 11


2.3. Bộ xử lý trung tâm CPU (tt)
1) Khối logic số học (ALU), thực hiện hoạt động số học và logic.
2) Khối điều khiển (CU), dùng để lấy lệnh từ bộ nhớ và giải mã và thực
thi chúng, khi cần thiết thì gọi ALU.

07/05/2020 Hệ thống nhúng thời gian thực 12


2.3.1. Chu kỳ lấy và thực thi lệnh
• Chương trình là một chuỗi các lệnh hoặc mã lệnh. Chúng được lưu trữ trong
bộ nhớ chính của hệ thống dưới dạng nhị phân (mã máy) và chờ đợi thực
hiện.
• Các lệnh được tuần tự lấy từ vị trí bộ nhớ chính mà con trỏ chương trình chỉ
tới và được đặt trong thanh ghi lệnh.
• Mỗi lệnh bao gồm một vùng mã toán tử (opcode) và có hoặc không có
nhiều toán hạng (operand, input).
• Opcode thường là địa chỉ bắt đầu của vi chương trình (microprogram) và
toán hạng đại diện cho thanh ghi, bộ nhớ hoặc dữ liệu bị tác động bởi vi
chương trình này.

07/05/2020 Hệ thống nhúng thời gian thực 13


2.3.1. Chu kỳ lấy và thực thi lệnh (tt)
• Khối điều khiển CU giải mã các lệnh.
• Giải mã bao gồm việc xác định vị trí của vi chương trình trong
micromemory và sau đó thực thi nội bộ chương trình này, có thể sử
dụng đến hai bộ phận ALU và bộ nhớ khi thực hiện một tính toán số
học nào đó.
• Các tín hiệu điều khiển khác nhau và các thanh ghi nội bộ cũng có thể
dùng cho việc trao đổi dữ liệu, phân nhánh và đồng bộ.

07/05/2020 Hệ thống nhúng thời gian thực 14


2.3.1. Chu kỳ lấy và thực thi lệnh (tt)
• Sau khi thực hiện một lệnh, các lệnh tiếp theo sẽ tiếp tục lấy từ bộ nhớ
chính và thực hiện.
• Một số mã lệnh hoặc sự kiện bên ngoài có thể gây ra một lệnh không
được thực hiện liên tục.
• Quá trình lấy và thực thi một lệnh được gọi là chu kỳ lấy và thực thi
lệnh.
• Ngay cả khi “không làm gì cả” thì CPU vẫn lấy và thực thi lệnh NOP
mà không làm thay đổitrạng thái của CPU và được gọi là không hoạt
động (no-operation), điều này có nghĩa là CPU hoạt động liên tục.
07/05/2020 Hệ thống nhúng thời gian thực 15
2.3.2. Các hình thức của lệnh
• Một tập lệnh cấu thành một ngôn ngữ mô tả chức năng của một hệ
thống xử lý.
• Tập lệnh phản ánh sự khác nhau cơ bản về thiết kế bộ vi xử lý, tất cả
các tập lệnh đều có những chức năng chung.
• Các lệnh trong một bộ xử lý dùng để lập trình thực hiện việc xử lý các
tham số và trả về một kết quả.

07/05/2020 Hệ thống nhúng thời gian thực 16


2.3.2. Các hình thức của lệnh (tt)
• Hầu hết các lệnh cần tham chiếu đến vị trí bộ nhớ hoặc trỏ đến một vị
trí nhớ hoặc một thanh ghi.
• Các vị trí bộ nhớ chứa dữ liệu đi xử lý hoặc các dữ liệu mới được tạo
thành.
• Do đó, bất kỳ bộ vi xử lý nào cũng có thể được xem như là một cái
máy lấy dữ liệu và chuyển đổi nó, thông qua các lệnh để tạo thành
những thông tin mới.

07/05/2020 Hệ thống nhúng thời gian thực 17


2.3.2. Các hình thức của lệnh (tt)
• Điều quan trọng là sự phân biệt toán hạng nào được tham chiếu trong một thao tác
xử lý.
• Trong số học, các thao tác khác nhau sử dụng các tham số khác nhau để phân biệt
chúng.
➢ Ví dụ, phép cộng là có số được cộng và số cộng, phép trừ có số trừ và số bị trừ,
phép nhân số bị nhân và số nhân, phép chia có số bị chia và số chia.
• Trong một ý nghĩa chung chung, hai thuật ngữ "operandam" và "operandum" có
thể được sử dụng để sử dụng với bất kỳ hoạt động nguyên phân hoặc nhị phân.
❑Operandam là tham số đầu tiên, như số được cộng, số bị nhân hoặc số bị chia.
❑Operandum là tham số thứ hai, như số cộng, số nhân hoặc số chia.

07/05/2020 Hệ thống nhúng thời gian thực 18


2.3.3. Các chế độ định địa chỉ
• Các chế độ địa chỉ là chỉ cách thức các lệnh lấy được các thông số
hoặc toán hạng như thế nào.
• Việc đánh địa chỉ các dữ liệu cho một tham số là một phần của quá
trình giải mã cho một lệnh (đi đôi với việc giải mã lệnh) trước khi thực
hiện.
• Ba loại chế độ đánh địa chỉ cơ bản:
❑1. Dữ liệu tức thời
❑2. Vị trí bộ nhớ trực tiếp
❑3. Vị trí bộ nhớ gián tiếp

07/05/2020 Hệ thống nhúng thời gian thực 19


2.3.3. Các chế độ định địa chỉ (tt)
• Dữ liệu tức thời: là các hằng số, chúng được tìm thấy ở vị trí bộ nhớ
đi kèm với lệnh.
• Do đó, CPU không cần phải tính toán địa chỉ để lấy dữ liệu cho lệnh,
dữ liệu luôn có sẵn.
• Đây là hình thức đơn giản nhất của truy cập toán hạng.
• Trong ngôn ngữ cấp cao chế độ địa chỉ tức thì tương đương với một
hằng số trong mã chương trình.

07/05/2020 Hệ thống nhúng thời gian thực 20


2.3.3. Các chế độ định địa chỉ (tt)
• Vị trí bộ nhớ trực tiếp: là một biến. Trong đó, các dữ liệu được lưu
trữ tại một vị trí trong bộ nhớ, nó được truy cập để lấy dữ liệu cho
tham số của lệnh.
• Điều này giống như một biến trong ngôn ngữ cấp cao, nơi dữ liệu
được tham chiếu bởi một cái tên, nhưng bản thân tên gọi không phải là
giá trị.

07/05/2020 Hệ thống nhúng thời gian thực 21


2.3.3. Các chế độ định địa chỉ (tt)
• Vị trí bộ nhớ gián tiếp: là giống như vị trí bộ nhớ trực tiếp, ngoại trừ cái
trước không lưu trữ dữ liệu cho các tham số, mà nó chứa địa chỉ dùng để
tham chiếu hoặc trỏ đến dữ liệu.
• Các chế độ khác: Một số bộ vi xử lý hiện đại nhất sử dụng phương thức
kết hợp ba chế độ định địa chỉ cơ bản này để tạo ra thêm một số chế độ định
địa chỉ khác.
➢Ví dụ, một chế độ tính toán độ dời sử dụng vị trí bộ nhớ gián tiếp. Hoặc là
một sự giảm trước (predecrement) của một vị trí bộ nhớ, trừ đi 1 từ địa chỉ
nơi dữ liệu được lưu trữ. Những bộ xử lý khác nhau cũng mở rộng chế độ
định địa chỉ dựa trên ba chế độ cơ bản, việc này tùy thuộc vào bộ vi xử lý
định hướng việc nhận và lưu trữ dữ liệu như thế nào.
07/05/2020 Hệ thống nhúng thời gian thực 22
2.3.4. ISC và CISC
• Máy tính có tập lệnh phức tạp (Complex instruction set computers
CISC) cung cấp chức năng tương đối phức tạp như là một phần của
tập lệnh.
• Điều này cho phép các lập trình viên các công cụ mạnh để xây dựng
các chương trình ứng dụng và nhiều công cụ phần mềm mạnh, chẳng
hạn như hợp ngữ và trình biên dịch.
• Bằng cách này, bộ xử lý CISC có được giải pháp để giảm tải mã hóa
cho lập trình viên, tăng cường thực hiện tốc độ và giảm thiểu việc sử
dụng bộ nhớ.

07/05/2020 Hệ thống nhúng thời gian thực 23


2.3.4. ISC và CISC (tt)

07/05/2020 Hệ thống nhúng thời gian thực 24


2.3.4. ISC và CISC (tt)
• CISC được dựa trên tám nguyên tắc sau đây:
1) Lệnh phức tạp mất nhiều chu kỳ khác nhau.
2) Bất kỳ lệnh nào cũng có thể tham chiếu bộ nhớ.
3) Không có lệnh được thiết kế theo dạng ống dẫn.
4) Microprogram được thực hiện cho mỗi lệnh bản địa.
5) Các lệnh được định dạng biến.
6) Có một số lệnh nhân và có nhiều chế độ định địa chỉ.
7) Có một bộ thanh ghi duy nhất.
8) Microprogram và phần cứng đều phức tạp.
07/05/2020 Hệ thống nhúng thời gian thực 25
2.3.4. ISC và CISC (tt)
• Trong một máy tính lệnh đơn giản (Reduced Instruction Set Computer
RISC), mỗi lệnh chỉ mất một chu kỳ máy.
• Điều này có nghĩa là qui trình giải mã lệnh có thể được thực hiện bằng một
tổ hợp mạch nhanh.
• Ngoài ra, việc giảm độ phức tạp của chip cho phép lưu trữ on-chip nhiều
hơn (chẳng hạn có thêm thanh ghi mục đích chung).
• Hiệu quả sử dụng của các lệnh trực tiếp trên thanh ghi có thể làm giảm thời
gian lấy lệnh từ bộ nhớ không cần thiết. Hiện nay các bộ vi xử lý RISC phổ
biến là ARM, SuperH, MIPS, SPARC, DEC Alpha, PA-RISC, PIC, và
PowerPC của IBM.

07/05/2020 Hệ thống nhúng thời gian thực 26


2.3.4. ISC và CISC (tt)

07/05/2020 Hệ thống nhúng thời gian thực 27


2.3.4. ISC và CISC (tt)
• Các tiêu chí RISC là một tập hợp ngược lại của tám nguyên tắc CISC.
Đó là:
1) Lệnh đơn giản chỉ mất một chu kỳ đồng hồ.
2) Kiến trúc lấy và lưu trữ tham chiếu đến bộ nhớ.
3) Thiết kế mang đặc tính đường ống cao.
4) Lệnh thực hiện trực tiếp bởi phần cứng.
5) Lệnh định dạng cố định.
6) Ít lệnh và ít chế độ định địa chỉ.
7) Bộ thanh ghi nhân lớn.
8) Trình biên dịch và phần mềm xử lý phức tạp.
07/05/2020 Hệ thống nhúng thời gian thực 28
2.3.4. ISC và CISC (tt)

07/05/2020 Hệ thống nhúng thời gian thực 29


2.3.4. ISC và CISC (tt)

07/05/2020 Hệ thống nhúng thời gian thực 30


2.3.4. ISC và CISC Design

07/05/2020 Hệ thống nhúng thời gian thực 31


Nội dung bài học

2.1. Giới thiệu chương

2.2. Cấu trúc cơ bản

2.3. Bộ xử lý trung tâm CPU

2.4. Bộ nhớ

2.5. Các thiết bị vào ra

2.6. Câu hỏi

07/05/2020 Hệ thống nhúng thời gian thực 32


2.4. Bộ nhớ
• Bộ nhớ là một trong những bộ phận chủ yếu tạo thành hệ thống xử lý.
Nó dùng để lưu chương trình và dữ liệu.
❑ Dung lượng của bộ nhớ biểu trưng cho khả năng nhớ của hệ
thống xử lý.
❑ Dung lượng của bộ nhớ càng lớn thì tính năng của hệ thống xử lý
càng tốt.
• Bộ nhớ chia thành 2 loại ROM và RAM

07/05/2020 Hệ thống nhúng thời gian thực 33


2.4. Bộ nhớ (tt)

Bộ nhớ cơ bản và bản đồ bộ nhớ

07/05/2020 Hệ thống nhúng thời gian thực 34


2.4.1. ROM
• Bộ xử lý cần một loại bộ nhớ sao cho khi mất điện thì nội dung bộ nhớ
không mất đi.
• Nó dùng để lưu trữ chương trình và các dữ liệu cố định. Loại bộ nhớ
này gọi là ROM (Read Only Memory).
• Dữ liệu chỉ có thể được đọc ra từ ROM nhưng không thể ghi vào
ROM (cách nói tương đối). ROM rất quan trọng đối với hệ thống xử
lý, ROM cho phép bộ xử lý khởi động các phần cứng khác khi bắt đầu
được cấp nguồn. Có nhiều loại ROM khác nhau được sử dụng: ROM,
PROM (programmable ROM), EPROM (erasable PROM), EAPROM
(electrically alterable ROM hay EEROM).

07/05/2020 Hệ thống nhúng thời gian thực 35


2.4.1. ROM (tt)
ROM: Với loại bộ nhớ ROM thì
dữ liệu được nhà sản xuất linh
kiện nạp trực tiếp. ROM được sử
dụng với loại dữ liệu mà không
thể thay thế được và được sản
xuất với số lượng lớn. Thiết bị
nạp ROM rất đắt. Nó thông
thường chỉ được nạp một lần bởi
nhà sản xuất.

07/05/2020 Hệ thống nhúng thời gian thực 36


2.4.1. ROM (tt)
PROM: Người sử dụng có thể
nạp dữ liệu vào loại bộ nhớ này.
Tuy vậy một khi dữ liệu đã được
nạp thì không thể thay đổi được.

07/05/2020 Hệ thống nhúng thời gian thực 37


2.4.1. ROM (tt)
EPROM: là loại bộ nhớ có thể
nạp nhiều lần bởi người sử dụng.
Tuy vậy dữ liệu trên EPROM có
thể xóa đi bằng tia cực tím thông
qua thấu kính nhỏ đặt trên vi
mạch. Sau khi xoá xong thì
EPROM có thể được nạp lại với
dữ liệu khác. Loại bộ nhớ này
hoạt động với tốc độ nhanh hơn
các loại bộ nhớ trên.

07/05/2020 Hệ thống nhúng thời gian thực 38


2.4.1. ROM (tt)
• EAPROM, EEPROM: Đây là loại bộ nhớ tương tự EPROM, tức là người sử
dụng có thể nạp chương trình hoặc dữ liệu vào loại bộ nhớ này. Tuy vậy, để xoá dữ
liệu trên EEROM chúng ta không cần đến tia cực tím, mà chỉ cần dùng tín hiệu
điện áp.
• Flash ROM: Bộ nhớ flash là một dạng khác của PROM có thể ghi lại, nó sử dụng
một bóng bán dẫn duy nhất cho mỗi bit, trong khi EEPROM sử dụng hai bóng bán
dẫn cho mỗi bit. Do đó, bộ nhớ flash có chi phí thấp hơn và tích hợp hơn so với
EEPROM. Thời gian đọc bộ nhớ flash rất nhanh, 20 đến 30 nano giây, nhưng tốc
độ ghi lại khá chậm, lên đến 1 micro giây. Một nhược điểm của bộ nhớ flash là nó
chỉ có thể được viết và xóa khoảng 100.000 lần, trong khi EEPROM là xấp xỉ 1
triệu. Một nhược điểm nữa là bộ nhớ flash yêu cầu điện áp khá cao: 12 V để viết,
2 V để đọc. Cuối cùng, bộ nhớ flash chỉ có thể được viết trong khối kích thước 8-
128 kilobytes tại một thời điểm.

07/05/2020 Hệ thống nhúng thời gian thực 39


2.4.2. RAM
• Bộ nhớ truy cập ngẫu nhiên RAM (Random Access Memory) là loại
bộ nhớ mà ta có thể đọc hoặc ghi dữ liệu vào bất cứ lúc nào và bất kỳ
vị trí nào của bộ nhớ.
• Căn cứ vào kết cấu của đơn vị mạch điện cơ bản của chip nhớ, RAM
có thể chia thành 2 loại:
❑RAM tĩnh (SRAM)
❑RAM động (DRAM).

07/05/2020 Hệ thống nhúng thời gian thực 40


SRAM
• Mạch điện đơn vị nhớ 1 bit tin tức của SRAM có thể dùng loại linh kiện lưỡng cực
tạo thành cũng có thể dùng linh kiện MOS tạo thành.
• Mạch điện do loại linh kiện lưỡng cực tạo thành có tốc độ truy cập nhanh nhưng
công nghệ phức tạp, độ tập trung thấp, tổn hao điện năng lớn nên loại này ít dùng,
chủ yếu sử dụng loại mạch dùng linh kiện MOS.
• Mạch đơn vị của SRAM thường do 6 bóng MOS tạo thành, có thể nhớ được tin
tức “0” hoặc “1”.
• Chỉ cần không mất điện, trạng thái “0” hoặc “1” luôn được bảo lưu, trừ khi thông
qua thao tác ghi viết vào dữ liệu mới.
• SRAM làm việc ổn định, thời giantruy cập nhanh (khoảng 20 ~ 40ns), không cần
làm tươi, mạch ngoại vi đơn giản, nhưng tổn hao điện năng lớn chỉ phù hợp cho
những sử dụng có dung lượng RAM nhỏ.

07/05/2020 Hệ thống nhúng thời gian thực 41


SRAM (tt)

(a) Conventional SRAM architecture. (b) Proposed SRAM architecture. (c) Timing diagram of proposed SRAM
in a read operation.

07/05/2020 Hệ thống nhúng thời gian thực 42


DRAM
• Khác với SRAM, DRAM có giá thành thấp (giá cùng 1 dung lượng), tổng
hao điện năng thấp, thể tích nhỏ nhưng do cấu tạo của mạch đơn vị cơ bản
của DRAM gồm 1 transistor và 1 tụ điện nên để nhớ được chúng ta cần phải
làm tươi (định thời nạp điện cho tụ) do đó làm cho mạch ngoại vi phức tạp.
• Trong những hệ thống vi xử lý phức tạp đòi hỏi cần bộ nhớ lớn, người ta
thường dùng DRAM, ví dụ như trong máy tính cá nhân.
• Trong hệ thống vi xử lý thì RAM dùng để lưu trữ các chương trình, dữ liệu
và các biến tạm thời.
• Khác với ROM, bộ nhớ RAM không giữ được nội dung khi bị mất nguồn
điện.

07/05/2020 Hệ thống nhúng thời gian thực 43


DRAM (tt)

07/05/2020 Hệ thống nhúng thời gian thực 44


Non-volatile RAM (NVRAM)
• NVRAM là một loại đặc biệt của SRAM, có pin dự phòng có thể giữ
lại nội dung của nó khi mất nguồn.
• Một kiểu khác của NVARM là loại kết hợp giữa SRAM và EEPROM,
nó có đặc điểm: khi mất nguồn nội dung của nó được viết vào
EEPROM ngay lập tức và được đọc ra từ EEPROM khi có nguồn trở
lại.

07/05/2020 Hệ thống nhúng thời gian thực 45


2.3.4. Tổ chức bộ nhớ
• Đối với các kỹ sư hệ thống thời
gian thực, đặc biệt là khi lập
trình, các loại bộ nhớ và cách
thức bố trí của chúng được quan
tâm đặc biệt.
• Ví dụ, một bộ vi xử lý nhúng hỗ
trợ một bộ nhớ địa chỉ 32-bit.

07/05/2020 Hệ thống nhúng thời gian thực 46


2.3.4. Tổ chức bộ nhớ
(tt)
Chương trình thực thi nằm trong bộ nhớ bắt đầu từ
địa chỉ 0000 0000H qua E0000000H của một số loại
ROM lập trình được.
Nó rất hữu ích để chương trình trong bộ nhớ không
bị thay đổi đề phòng việc ghi ngẫu nhiên vào khu
vực này sẽ không hư hại hay làm thay đổi chương
trình.
Các dữ liệu khác, liên quan đến việc thiết lập các
thông số hệ thống, được lưu trữ từ
địa chỉ E000 0001H đến E000 0F00H trong
EPROM, chúng có thể được viết lại chỉ khi hệ thống
không hoạt động.

07/05/2020 Hệ thống nhúng thời gian thực 47


2.3.4. Tổ chức bộ nhớ
(tt)
Từ địa chỉ E000 0F01H đến FFC0 0000H
là bộ nhớ RAM được sử dụng cho ngăn
xếp (stack), bộ nhớ heap và bất kỳ dữ liệu
nào khác cần lưu trữ tạm thời.
Địa chỉ từ FFC0 0001H đến FFFF FE00H
lưu các thông số cố định của hệ thống,
các dữ liệu ở các vị trí này có thể được
viết lại dưới sự kiểm soát của chương
trình, ví dụ, các hằng số hiệu chuẩn xác
định một số loại chế độ chẩn đoán hoặc
khởi tạo.

07/05/2020 Hệ thống nhúng thời gian thực 48


2.3.4. Tổ chức bộ nhớ
(tt)
Trong thời gian chạy, thông tin chẩn đoán
hoặc dữ liệu hộp đen có thể được lưu trữ
ở đây. Những dữ liệu này được ghi vào bộ
nhớ NVRAM hơn là vào bộ nhớ RAM để
chúng có sẵn để phân tích khi hệ thống
ngưng hoạt động do tắt nguồn hay bị sự
cố.
Cuối cùng, địa chỉ từ FFFF FE00H dến
FFFF FFFFH chứa các địa chỉ kết nối với
các thiết bị truy cập thông qua DMA hoặc
bộ nhớ ánh xạ I / O.

07/05/2020 Hệ thống nhúng thời gian thực 49


Nội dung bài học

2.1. Giới thiệu chương

2.2. Cấu trúc cơ bản

2.3. Bộ xử lý trung tâm CPU

2.4. Bộ nhớ

2.5. Các thiết bị vào ra

2.6. Câu hỏi

07/05/2020 Hệ thống nhúng thời gian thực 50


2.5. Các thiết bị vào ra
• Hệ thống xử lý có rất nhiều ứng dụng, nhưng cho dù dùng trong
trường hợp nào đều không thể tách rời việc xử lý dữ liệu tin tức.
• Việc xử lý tin tức thông thường xử lý tin tức do thiết bị nhập cung cấp.
Dữ liệu kết quả sau khi được xử lý xong được gửi đến thiết bị xuất,
cung cấp cho người sử dụng dưới nhiều hình thức.
➢Ví dụ, các thiết bị nhập quen thuộc như bàn phím, chuột, đĩa từ, máy
quét ảnh, cảm biến. . . Các thiết bị xuất quen thuộc như đĩa từ, màn
hình, máy in, động cơ. . .
• Tất cả các thiết bị này gọi chung là các thiết bị ngoại vi (Peripherals),
gọi tắt là thiết bị I/O.
07/05/2020 Hệ thống nhúng thời gian thực 51
2.5.1 Thiết bị cảm biến
• Thiết bị cảm biến còn gọi là đầu dò (sensor, transducer) là bất kỳ thiết
bị nào có chức năng chuyển đổi hình thức tín hiệu từ dạng này sang
dạng khác.
• Trong trường hợp của các hệ thống nhúng, cảm biến cung cấp tín hiệu
đầu ra có thể sử dụng được đối với một đáp ứng của một số lượng
thông số đo lường quy định.
• Đầu vào là một tín hiệu tương tự, phải được chuyển đổi sang dạng số
bởi một thiết bị khác. Đầu ra là một số mức hoặc bản đồ bit có sẵn cho
CPU đọc về thông qua DMA (Dual Memory Access) hoặc bộ nhớ ánh
xạ I/O.

07/05/2020 Hệ thống nhúng thời gian thực 52


2.5.1 Thiết bị cảm biến (tt)
• Những loại cảm biến điển hình trong các hệ thống điều khiển bao gồm
cảm biến nhiệt độ, cảm biến tốc độ, cảm biến góc nghiêng
(gyroscope), cảm biến áp suất và độ cao, thiết bị cảm ứng chuyển
động cơ khí và quang, cảm biến hóa học, ...
• Trong khuôn khổ của bài học này chỉ giới thiệu một vài thiết bị cảm
biến được sử dụng phổ biến trong các hệ thống điều khiển thời gian
thực, chẳng hạn như robot.

07/05/2020 Hệ thống nhúng thời gian thực 53


1) Cảm biến nhiệt độ
• Nhiệt độ là một thông số quan trọng của hầu hết các hệ thống thời gian thực
nhúng. Sử dụng phổ biến nhất là cảm biến nhiệt độ điện, bao gồm: cảm biến cặp
nhiệt điện (thermocouple), nhiệt kế điện tử (thermistor), nhiệt kế điện trở.
• Cảm biến thermocouple tận dụng lợi thế của hiệu ứng giao nhau, đó là sự sai khác
điện áp tạo ra tại vị trí giao nhau do sự khác biệt trong việc phân phối năng lượng
của hai kim loại khác nhau.
• Nhiệt kế điện tử có yếu tố điện trở làm bằng vật liệu bán dẫn, nó thay đổi trở
kháng theo nhiệt độ.
• Nhiệt kế điện trở dựa trên sự gia tăng giá trị trở kháng của một dây kim loại khi
• nhiệt độ tăng.

07/05/2020 Hệ thống nhúng thời gian thực 54


2) Cảm biến vận tốc
• Cảm biến vận tốc có chức năng chuyển đổi sự nén hoặc sự kéo căng
hoặc sự biến dạng của một thanh kim loại hoặc màng thành tín hiệu
điện.
• Cảm biến vận tốc có thể được chế tạo để lợi dụng hiệu ứng điện áp.
Hiệu ứng điện áp là hiện tượng nếu một tinh thể được nén dẫn đến cấu
trúc mạng tinh thể bị phá vỡ, nó gây ra sự phóng điện của các điện tử.
• Bằng cách này, độ nén của các thiết bị do tăng tốc có thể được đo.
Cảm biến vận tốc điện áp là được sử dụng rộng rãi nhất.

07/05/2020 Hệ thống nhúng thời gian thực 55


3) Cảm biến góc nghiêng
• Cảm biến góc nghiêng (còn gọi là Con quay hồi chuyển) được sử dụng trong hệ thống dẫn
đường của máy bay, tàu vũ trụ, robot và các ứng dụng trong ô tô.
• Cảm biến góc nghiêng là một thiết bị dùng để đo hoặc duy trì sự định hướng, dựa trên các
nguyên tắc của xung lượng góc.
• Về mặt cơ học, một cảm biến góc nghiêng vốn là một bánh đà hoặc một cái đĩa trong đó
trục được tự do theo tất cả mọi hướng.
• Khi khung ngoài quay, nó tác động moment ngoại lực vào đĩa, làm đĩa chịu thêm chuyển
động quay theo phương vuông góc với phương quay của khung.
• Khi đĩa xoay với vận tốc rất cao, sự chuyển hướng theo moment ngoại lực được giảm
thiểu (do hầu hết đã bị chuyển sang phương vuông góc) giúp gyroscope hầu như duy trì
được độ nghiêng của nó.
• Hiện tượng mà sự quay theo trục này được chuyển thành sự quay theo trục kia đã được
dùng để giám sát độ nghiêng

07/05/2020 Hệ thống nhúng thời gian thực 56


3) Cảm biến góc nghiêng (tt)

Nguyên lý của cảm biến góc nghiêng


07/05/2020 Hệ thống nhúng thời gian thực 57
3) Cảm biến góc nghiêng (tt)

Ứng dụng của cảm biến góc nghiêng


07/05/2020 Hệ thống nhúng thời gian thực 58
2.5.2. Thiết bị chấp hành
• Hệ thống thời gian thực thông qua các thiết bị chấp hành để đi phản
ứng lại với thế giới thực, chẳng hạn như cho động cơ hoạt động, tăng
giảm nhiệt độ phòng...
• Có rất nhiều thiết bị chấp hành, ở đây xin giới thiệu một số thiết bị
chấp hành như sau:
❑Động cơ
❑Đèn

07/05/2020 Hệ thống nhúng thời gian thực 59


Động cơ
• Động cơ là loại cung cấp chuyển động cho hệ thống như hình 2.8. Ví
dụ, động cơ trong máy giặt dùng để quay mâm quần áo khi giặt, động
cơ trong lò vi sóng dùng để quay mâm thức ăn để nấu nướng, động cơ
trong máy điều hòa dùng để quay quạt thổi không khi mát...
• Động cơ công nghiệp là loại hình động cơ cơ bản nhất. Những loại
khác nhau phù hợp cho nhiều ứng dụng khác nhau. Đương nhiên, một
số loại động cơ là phù hợp hơn cho các ứng dụng nhất định hơn so với
các loại động cơ khác.

07/05/2020 Hệ thống nhúng thời gian thực 60


Động cơ (tt)
- Động cơ AC
- Động cơ DC
- Động cơ DC dùng chổi than (Brushed)
- Động cơ DC không dùng chổi than (Brushless)
- Động cơ Servo
- Động cơ DC Servo dùng chổi than
- Động cơ AC Servo không dùng chổi than
- Động cơ bước
- Động cơ tuyến tính
07/05/2020 Hệ thống nhúng thời gian thực 61
Động cơ (tt)

07/05/2020 Hệ thống nhúng thời gian thực 62


Đèn
• Bóng đèn và đèn LED có thể bằng cách sử dụng để cung cấp ánh sáng,
hoặc để hiển thị một cái gì đó.
➢Ví dụ, hệ thống kiểm soát ánh sáng được sử dụng trong đèn giao
thông, tại các buổi hòa nhạc. Đèn được sử dụng trong bảng điều khiển
xe để hiển thị các thông số của xe hoặc dùng để cảnh báo nếu bất kỳ
sự cố nào của hệ thống.

07/05/2020 Hệ thống nhúng thời gian thực 63


Đèn (tt)

07/05/2020 Hệ thống nhúng thời gian thực 64


2.5.3. Giao tiếp I/O
• Quá trình trao đổi dữ liệu giữa CPU và thiết bị I/O cũng giống như quá
trình trao đổi dữ liệu giữa CPU và bộ nhớ, tức là dưới sự tác dụng của
các tín hiệu điều khiển, quá trình được hoàn thành thông qua bus dữ
liệu.
• Nhưng quá trình trao đổi dữ liệu giữa CPU và bộ nhớ đơn giản hơn
nhiều, bởi vì tốc độ truy cập của các chip nhớ thường cùng cấp với tần
số đồng hồ của vi xử lý, hơn nữa bản thân các chip nhớ có khả năng
đệm dữ liệu, cho nên CPU có thể thông qua bus dữ liệu tiến hành trao
đổi dữ liệu với chip nhớ.

07/05/2020 Hệ thống nhúng thời gian thực 65


2.5.3. Giao tiếp I/O (tt)
1) Tốc độ không tương thích: Thông thường tốc độ của các thiết bị
ngoài thấp hơn rất nhiều so với tốc độ hoạt động của vi xử lý như tốc độ
của máy in, bàn phím.
2) Mức điện áp không tương thích: tín hiệu điện mà CPU sử dụng
thường là mức điện áp TTL. Trong khi đó thiết bị ngoài như thiết bị điện
cơ thường thường không thể dùng mức điện áp TTL điều khiển mà dùng
mức điện áp và hệ thống nguồn riêng.

07/05/2020 Hệ thống nhúng thời gian thực 66


2.5.3. Giao tiếp I/O (tt)
3) Kiểu tín hiệu không tương thích: Truyền trên bus của hệ thống vi
xử lý thông thường là dữ liệu song song 8 bit, 16 bit hoặc 32 bit, trong
khi đó kiểu tín hiệu của các loại thiết bị ngoài không giống nhau.
Có loại thiết bị là tín hiệu tương tự, có loại là tín hiệu đóng mở, có loại
là tín hiệu số; hoặc có loại là tín hiệu dòng, có loại là tín hiệu áp; hoặc
có loại là tín hiệu nối tiếp, có loại là tín hiệu song song.
4) Thời gian không tương thích: Các thiết bị ngoài đều có sự định thời
và lôgic điều khiển riêng, không thống nhấtvới thời gian làm việc của
CPU.

07/05/2020 Hệ thống nhúng thời gian thực 67


2.5.3. Giao tiếp I/O (tt)
• Thông thường mạch giao tiếp có những chức năng sau:
1) Khuếch đại điện áp: Khuếch đại điện áp thường được yêu cầu thực
hiện để làm cho điện áp cảm biến phù hợp với mức điện áp của hệ thống
xử lý. Ví dụ, một bộ cảm biến có thể tạo ra điện áp trong phạm vi mV,
trong khi giao tiếp đầu vào của một máy tính có thể yêu cầu mức điện
áp tín hiệu đầu vào có mức của volt.

07/05/2020 Hệ thống nhúng thời gian thực 68


2.5.3. Giao tiếp I/O (tt)
2) Dịch chuyển mức điện áp: Dịch chuyển mức điện áp thường được
yêu cầu để sắp xếp các mức điện áp được tạo ra bởi một cảm biến để
được chấp nhận bởi hệ thống xử lý.
➢Ví dụ, một bộ cảm biến xuất ra điện áp trong khoảng -0,5 đến 0,5v,
trong khi giao tiếp đầu vào của máy tính cóthể chấp nhận điện áp chỉ
trong khoảng 0 - 1v. Trong trường hợp này, điện áp cảm biến phải
thông qua sự chuyển đổi trước khi nó có thể được sử dụng bởi máy
tính.

07/05/2020 Hệ thống nhúng thời gian thực 69


2.5.3. Giao tiếp I/O (tt)
3) Dịch chuyển và lọc tần số : Dịch chuyển và lọc tần số thường được
sử dụng để làm giảm các thành phần tiếng ồn trong một tín hiệu. Các
loại tiếng ồn xảy ra ở các băng tần hẹp và tín hiệu phải được dịch
chuyển khỏi các băng tần tiếng ồn để tiếng ồn có thể được lọc đi.
4) Chuyển đổi phương thức tín hiệu: Chuyển đổi phương thức tín
hiệu thường xuyên được thực hiện để chuyển đổi tín hiệu một chiều
thành xoay chiều và ngược lại. Hoặc dùng để chuyển đổi tín hiệu tương
tự thành tín hiệu số và ngược lại.

07/05/2020 Hệ thống nhúng thời gian thực 70


2.5.3.1 Bộ chuyển đổi tương tự - số
• Bộ chuyển đổi tương tự - số (Analogue – Digital Converter ADC) là
thiết bị chuyển đổi tín hiệu điện áp hoặc dòng điện tương tự thành tín
hiệu số. Các khái niệm về bộ biến đổi này đã được nêu ở nội dung
môn học kỹ thuật số. ADC có chức năng chuyển đổi điện áp tương tự
đầu vào thành số nhị phân. Các thông số quan trọng nhất của vi mạch
ADC biểu hiện chất lượng, tính chất hoạt động của ADC là các thông
số sau:
❑Kết quả chuyển đổi và độ phân giải
❑Thời gian chuyển đổi

07/05/2020 Hệ thống nhúng thời gian thực 71


2.5.3.1 Bộ chuyển đổi tương tự - số (tt)
• Kết quả chuyển đổi và độ phân giải: ADC chuyển đổi đại lượng
tương tự đầu vào có giá trị từ 0 đến điện áp tham khảo Vref thành đại
lượng số có độ rộng n bit (8 bit, 12 bit, 16 bit . . . ). Như vậy có thể có
2n kết quả số có thể có với giá trị từ 0 đến 2n-1.
• Thời gian chuyển đổi: Để chuyển đổi tín hiệu tương tự đầu vào thành
tín hiệu số cho đầu ra thì ADC cần một khoảng thời gian xác định.
Thông thường, các ADC hoạt động trên nguyên tắc so sánh nên cần
khoảng thời gian có đơn vị mili giây đến micro giây để chuyển đổi.
Thời gian chuyển đổi càng bé thì ADC có chất lượng và giá thành
càng cao.

07/05/2020 Hệ thống nhúng thời gian thực 72


2.5.3.2 Bộ biến đổi số - tương tự
• Bộ biến đổi số - tương tự (Digital – Analogue Converter DAC) chuyển
đổi tín hiệu số ra từ vi xử lí thành tín hiệu tương tự để điều khiển các
thiết bị tương tự.
• Hoạt động của DAC là tương đối đơn giản nên tại đây ta chỉ nêu ra
những nguyên tắc cơ bản để bạn đọc có thể tự tiến hành.
• Nội dung hoạt động và các tính chất của bộ DAC đã được giới thiệu
kỹ tại môn Kỹ thuật số, tại đây chúng ta chỉ bàn đến các tính chất của
DAC liên quan đến việc kết nối với vi xử lí.

07/05/2020 Hệ thống nhúng thời gian thực 73


2.5.3.2 Bộ biến đổi số - tương tự (tt)
- Độ phân giải (resolution): Được định nghĩa bằng trong đó Vm là điện
áp tối đa đầu ra, n là số bit của dữ liệu đầu vào.
- Độ tuyến tính: chỉ mức độ thay đổi của giá trị tương tự khi giá trị số
thay đổi. DAC lý tưởng là tuyến tính nhưng trên thực tế có sai số DAC
chuyển đổi gần như tức thời dữ liệu số từ đầu vào đến đầu ra.

07/05/2020 Hệ thống nhúng thời gian thực 74


Nội dung bài học

2.1. Giới thiệu chương

2.2. Cấu trúc cơ bản

2.3. Bộ xử lý trung tâm CPU

2.4. Bộ nhớ

2.5. Các thiết bị vào ra

2.6. Câu hỏi

07/05/2020 Hệ thống nhúng thời gian thực 75


Câu hỏi
2.1 Bus là gì?
2.2 Xác định khái niệm cấu trúc 3-bus
2.3 Vẽ sơ đồ khối của hệ thống xử lí bao gồm CPU, bus địa chỉ, bus dữ
liệu, bus điều khiển, ROM, RAM, I/O.
2.4 ROM là gì? RAM là gì?
2.5 Giới thiệu 4 loại ROM phổ biến.
2.6 Tại sao hệ thống xử lí lại cần ROM?
2.7 Nêu hai tính chất quan trọng của RAM tĩnh.
07/05/2020 Hệ thống nhúng thời gian thực 76
Câu hỏi (tt)
2.8 Flash ROM là bộ nhớ
a. Bộ nhớ chỉ đọc được chế tạo theo công nghệ CMOS
b. Là bộ nhớ bay hơi
c. Là bộ nhớ EEPROM có tốc độ đọc cao
d. Được sử dụng làm bộ nhớ đệm.

07/05/2020 Hệ thống nhúng thời gian thực 77


Câu hỏi (tt)
2.9 Bộ nhớ song song có tốc độ truy xuất so với bộ nhớ nối tiếp là
a. Cao hơn
b. Thấp hơn
c. Không so sánh được
d. Tốc độ phụ thuộc vào vi xử lý

07/05/2020 Hệ thống nhúng thời gian thực 78


Câu hỏi (tt)
2.10 Bộ nhớ song song 16 bit có dung lượng 1Mbit. Số đường địa chỉ

a. 15
b. 16
c. 17
d. 18

07/05/2020 Hệ thống nhúng thời gian thực 79


Câu hỏi (tt)
2.11 Một bộ nhớ có các đường địa chỉ là 16, các đường dữ liệu là 16,
các đường điều khiển là 4. Dung lượng bộ nhớ là
a. 32kbyte
b. 64 kbyte
c. 128 kbyte
d. 256 kbyte

07/05/2020 Hệ thống nhúng thời gian thực 80


Câu hỏi (tt)
2.12 Một bộ nhớ song song phải có các tín hiệu sau
a. Các đường dữ liệu, các đường địa chỉ
b. Các đường dữ liệu, các đường địa chỉ và các đường điều khiển
c. Các đường dữ liệu, các đường địa chỉ, các đường điều khiển và các
đường chọn chip
d. Các đường dữ liệu, các đường địa chỉ, các đường xung clock đồng bộ

07/05/2020 Hệ thống nhúng thời gian thực 81


Câu hỏi (tt)
2.13 Nêu một số thiết bị cảm biến và thiết bị chấp hành và một tả
nguyên lý hoạt động của chúng.
2.14 Tại sao phải thiết kế mạch giao tiếp? Mô tả một vài chức năng của
mạch giao tiếp.

07/05/2020 Hệ thống nhúng thời gian thực 82


Chương 3
Hệ điều hành thời gian thực
Số tiết: 9

04/06/2020 Hệ thống nhúng thời gian thực 1


Nội dung
1. Giới thiệu chương
2. Tổng quan về hệ điều hành thời gian thực
3. Các kiến trúc hệ điều hành thời gian thực
4. Các dịch vụ cơ bản
5. Các dịch vụ mở rộng của RTOS thương mại

04/06/2020 Hệ thống nhúng thời gian thực 2


1. Giới thiệu chương
• Giới thiệu khái niệm về hệ điều hành
• So sách sự khác biệt giữa hệ điều hành chung và hệ điều hành thời gian thực
• Đặc điểm và chức năng của hệ điều hành thời gian thực
• Phân loại hệ điều hành thời gian thực
• Giới thiệu tổ chức và kiến trúc hệ điều hành thời gian thực
• Giới thiệu các dịch vụ cơ bản của hệ điều hành thời gian thực
• Giới thiệu các dịch vụ mở rộng của hệ điều hành thời gian thực
• Giới thiệu một số hệ điều hành thời gian thực tiêu biểu

04/06/2020 Hệ thống nhúng thời gian thực 3


2. Tổng quan về hệ điều hành thời gian thực
2.1. Hệ điều hành
2.2. Hệ điều hành thời gian thực (RTOS)
2.3. So sánh hệ điều hành thời gian thực (RTOS) và hệ điều hành trên
PC (PCOS)
2.4. Đặc điểm của hệ điều hành thời gian thực
2.5. Chức năng của hệ điều hành thời gian thực
2.6. Phân loại hệ điều hành thời gian thực

04/06/2020 Hệ thống nhúng thời gian thực 4


2.1. Hệ điều hành
• Định nghĩa: Hệ điều hành (gọi chung) là một phần mềm chạy trên hệ
thống máy tính hoặc chạy trên hệ thống điều khiển chung, dùng để
điều hành, quản lý các thiết bị phần cứng và các tài nguyên phần mềm
trên hệ thống.
• Hệ điều hành đóng vai trò: trung gian trong việc giao tiếp giữa người
sử dụng và phần cứng hệ thống, cung cấp một môi trường cho phép
người sử dụng phát triển và thực hiện các ứng dụng của họ một cách
dễ dàng.

04/06/2020 Hệ thống nhúng thời gian thực 5


2.1. Hệ điều hành (tt)
• Phần mềm được thiết kế để chạy các chương trình khác trên máy tính
• Phần mềm quan trọng nhất của máy tính
• Chịu trách nhiệm cho tất cả mọi thứ từ việc kiểm soát và phân bổ bộ
nhớ, nhận dữ đầu vào từ các thiết bị bên ngoài và hiển thị ra màn hình
máy tính.
• Quản lý các tập tin trên ổ đĩa cứng máy tính và các thiết bị ngoại vi
kiểm soát, như máy in và máy quét

04/06/2020 Hệ thống nhúng thời gian thực 6


2.1. Hệ điều hành (tt)
• Vai trò quan trọng trong an ninh: ngăn cản người dùng trái phép truy
cập vào hệ thống máy tính
• Hệ điều hành thường dùng cho máy tính cá nhân là Microsoft
Windows, Linux và các biến thể Unix
• Hệ điều hành có nhiều loại:
➢Hệ điều hành đa người dùng
➢Hệ điều hành đa xử lý
➢Hệ điều hành đa nhiệm
➢Hệ điều hành đa luồng
➢Hệ điều hành thời gian thực

04/06/2020 Hệ thống nhúng thời gian thực 7


Hệ điều hành đa người dùng
• Một hệ điều hành đa người dùng cho phép nhiều người dùng để chạy
các chương trình cùng một lúc.
• Đây là loại hệ điều hành có thể được sử dụng bởi một vài người hoặc
hàng trăm trong số họ.
• Trong thực tế, có một số hệ điều hành được sử dụng để cho phép hàng
ngàn người để chạy chương trình cùng một lúc.

04/06/2020 Hệ thống nhúng thời gian thực 8


Hệ điều hành đa xử lý
• Một hệ thống điều hành đa xử lý cho phép một chương trình để chạy
trên nhiều hơn một đơn vị xử lý trung tâm (CPU) tại một thời điểm.
• Điều này có thể rất tiện dụng trong một số môi trường làm việc, tại
trường học và ngay cả đối với một số tình huống với các máy tính tại
nhà.

04/06/2020 Hệ thống nhúng thời gian thực 9


Hệ điều hành đa nhiệm
• Hệ thống điều hành đa nhiệm có khác một chút, nó có thể chạy nhiều
hơn một chương trình tại một thời điểm

04/06/2020 Hệ thống nhúng thời gian thực 10


Hệ điều hành đa luồng
• Hệ điều hành đa luồng có khác
nhau hơn, cho phép các bộ phận
khác nhau của một trong những
chương trình được sử dụng
đồng thời.

04/06/2020 Hệ thống nhúng thời gian thực 11


Hệ điều hành thời gian thực
• Hệ điều hành thời gian thực được thiết kế để cho phép hệ thống xử lý
và đáp ứng với đầu vào theo thời gian thực.

04/06/2020 Hệ thống nhúng thời gian thực 12


2.2. Hệ điều hành thời gian thực (RTOS)
• Định nghĩa: RTOS là một hệ điều hành hỗ trợ các ứng dụng thời gian
thực bằng cách cung cấp kết quả logic đúng trong thời hạn yêu cầu.
• Cấu trúc cơ bản là tương tự như hệ điều hành chung, nhưng ngoài ra
nó cung cấp cơ chế để cho phép lập lịch trình thời gian thực của các
tác vụ.
• Mặc dù hệ điều hành thời gian thực có thể hoặc không có thể làm tăng
tốc độ thực hiện, nhưng nó cung cấp các công cụ thời gian chính xác
và có thể dự đoán tốt hơn so với hệ điều hành chung.

04/06/2020 Hệ thống nhúng thời gian thực 13


2.2. Hệ điều hành thời gian thực (RTOS) (tt)
• RTOS là chìa khóa cho nhiều hệ thống nhúng và nó cung cấp một nền
tảng để xây dựng các ứng dụng.
• Không phải tất cả các hệ thống nhúng được thiết kế với RTOS.
• Hệ thống nhúng với phần cứng/mã tương đối đơn giản/nhỏ có thể
không yêu cầu một RTOS.
• Các hệ thống nhúng với các ứng dụng phần mềm từ trung bình đến lớn
đòi hỏi một số hình thức lập kế hoạch và do đó chúng cần có RTOS

04/06/2020 Hệ thống nhúng thời gian thực 14


2.2. Hệ điều hành thời gian thực (RTOS) (tt)
• Thông thường, hệ điều hành mục đích chung, chẳng hạn như hệ điều
hành đĩa (DOS), không được coi là thời gian thực, vì nó có thể cần
nhiều thời gian để đáp ứng với đầu vào.
• Hệ điều hành thời gian thực thường được sử dụng khi máy tính phải
phản ứng với thông tin đầu vào một cách phù hợp mà không có sự
chậm trễ.
• Do đó, hệ điều hành thời gian thực có thể được sử dụng trong công
việc điều khiển tự động hóa.

04/06/2020 Hệ thống nhúng thời gian thực 15


2.3. So sánh hệ điều hành thời gian thực
(RTOS) và hệ điều hành trên PC (PCOS)
• Tính xác định
• Lập kế hoạch tác vụ
• Hạt nhân RTOS ưu tiên định trước
• Đảo ngược ưu tiên
• Cách sử dụng

04/06/2020 Hệ thống nhúng thời gian thực 16


Tính xác định
• Sự khác biệt chính giữa các hệ thống điều hành chung của máy tính và
hệ điều hành thời gian thực là "sự xác định" thời gian hành vi trong
các hệ điều hành thời gian thực.
• Thời gian "xác định" có nghĩa là hệ điều hành tiêu thụ một lượng thời
gian biết trước và nằm trong dự kiến.
• RTOS có định nghĩa độ trễ trong trường hợp tồi tệ nhất.
• Trong khi đó, độ trễ không phải là một mối quan tâm cho hệ điều hành
mục đích chung.

04/06/2020 Hệ thống nhúng thời gian thực 17


Lập kế hoạch tác vụ
• Hệ điều hành chung được tối ưu hóa để chạy một loạt các ứng dụng và
các quá trình cùng một lúc, do đó đảm bảo rằng tất cả các tác vụ nhận
được ít nhất một số thời gian xử lý.
• Kết quả là tác vụ ưu tiên thấp có thể có quyền ưu tiên thực thi mạnh
mẽ so với các tác vụ ưu tiên khác cao hơn, điều mà các nhà thiết kế có
thể không muốn.
• Trong khi đó, RTOS sử dụng phương thức lập kế hoạch dựa trên ưu
tiên đặt trước, trong đó cho phép các công việc có mức ưu tiên cao
luôn đáp ứng được thời hạn của chúng.

04/06/2020 Hệ thống nhúng thời gian thực 18


Lập kế hoạch tác vụ (tt)
• Tất cả các hành vi hệ thống là xác định, có nghĩa là thời gian hoạt
động bị giới hạn cho tất cả các công việc và quá trình xử lý ngắt.
• Điều này rất quan trọng đối với các hệ thống nhúng nơi mà sự chậm
trễ có thể gây ra một mối nguy hiểm đến sự an toàn.
• Lập kế hoạch trong RTOS là lập lịch liên quan đến thời gian.
• Trong trường hợp là hệ điều hành mục đích chung như
Windows/Linux, lập kế hoạch là dựa trên quá trình.

04/06/2020 Hệ thống nhúng thời gian thực 19


Hạt nhân RTOS ưu tiên định trước
• Hạt nhân hạt nhân của một RTOS là phần lịch trình mà công việc được
thực hiện ở một thời điểm nhất định.
• Tất cả các hoạt động hạt nhân là theo sự ưu tiên định trước.

04/06/2020 Hệ thống nhúng thời gian thực 20


Đảo ngược ưu tiên
• RTOS có cơ chế để ngăn chặn đảo ngược ưu tiên.
• Đảo ngược ưu tiên xảy ra khi một tác vụ có mức ưu tiên trung bình
(không sử dụng tài nguyên) giành quyền ưu tiên thực thi trước một tác
vụ có mức ưu tiên thấp hơn đang sử dụng tài nguyên mà một tác vụ có
mức ưu tiên cao hơn hai mức ưu tiên kia đang chờ.

04/06/2020 Hệ thống nhúng thời gian thực 21


Cách sử dụng
• RTOS thường được sử dụng cho các ứng dụng nhúng, trong khi đó ệ
điều hành mục đích chung được sử dụng cho máy tính để bàn hoặc
máy tính mục đích chung khác.

04/06/2020 Hệ thống nhúng thời gian thực 22


Một số điểm khác biệt
1) Vấn đề bảo mật đối với RTOS không được quan tâm bảo vệ như hệ
điều hành máy tính.
2) Để tiết kiệm bộ nhớ, RTOS chỉ mặc định các dịch vụ cần thiết cho
các ứng dụng nhúng của người sử dụng.
3) Hầu hết các hệ điều hành máy tính quan tâm đến hiệu năng trung
bình, trong khi các RTOS lại quan tâm đến các giới hạn và thời gian đáp
ứng.

04/06/2020 Hệ thống nhúng thời gian thực 23


2.4. Đặc điểm RTOS
1) Độ trễ chuyển đổi trạng thái nhỏ. Điều này có nghĩa là thời gian thực
hiện việc lưu trạng thái của tác vụ hiện hành và sau đó chuyển đổi sang
tác vụ khác là ngắn.
2) Thời gian tiêu hao từ việc thực hiện câu lệnh cuối cùng của một tác
vụ đến việcthực hiện lệnh đầu tiên của chương trình xử lý ngắt là có thể
dự đoán được và đủ ngắn. Điều này còn được gọi là độ trễ ngắt.

04/06/2020 Hệ thống nhúng thời gian thực 24


2.4. Đặc điểm RTOS (tt)
3) Tương tự, thời gian tiêu hao từ việc thực hiện câu lệnh cuối cùng của
chương trình xử lý ngắt đến việc thực hiện lệnh đầu tiên của tác vụ tiếp
theo cũng có thể dự đoán và đủ ngắn. Điều này còn được gọi là độ trễ
kết thúc ngắt.
4) Độ tin cậy và thời gian ràng buộc giữa các cơ chế xử lý phải được
đảm bảo để các tác vụ giao tiếp với nhau một cách kịp thời

04/06/2020 Hệ thống nhúng thời gian thực 25


2.4. Đặc điểm RTOS (tt)
5) Một RTOS có hỗ trợ xử lý đa nhiệm và theo mức ưu tiên cho từng tác
vụ. Xử lý mức ưu tiên có nghĩa là cho phép chuyển đổi từ một tác vụ
hiện đang thực hiện có mức ưu tiên thấp sang một tác vụ khác có mức
ưu tiên cao hơn đã sẵn sàng và chờ đợi để được thực thi.
6) Hệ thống thời gian thực không hỗ trợ xử lý theo mức ưu tiên cho hạt
nhân (kernel) mà trong khi xử lý hạt nhân sẽ được đặt mức ưu tiên bởi
một số quá trình khác.

04/06/2020 Hệ thống nhúng thời gian thực 26


2.5. Chức năng RTOS

04/06/2020 Hệ thống nhúng thời gian thực 27


2.5. Chức năng RTOS (tt)
1) Quản lý tác vụ (Task Management)
➢ Quản lý tác vụ cho phép người lập trình thiết kế phần mềm ứng dụng
thành một số đoạn mã riêng biệt để thực hiện các mục tiêu và thời hạn
riêng biệt.
➢ Chức năng này thực hiện thông qua bộ lập lịch và bộ điều phối.

04/06/2020 Hệ thống nhúng thời gian thực 28


2.5. Chức năng RTOS (tt)
2) Quản lý bộ nhớ (Memory Management)
Có hai loại quản lý bộ nhớ trong RTOSs:
➢ Quản lý ngăn xếp (Stack)
➢ Quản lý vùng nhớ dùng chung (Heap)

04/06/2020 Hệ thống nhúng thời gian thực 29


2.5. Chức năng RTOS (tt)
• Trong một RTOS đa tác vụ, mỗi công việc cần phải được phân bổ với
một số lượng bộ nhớ để lưu trữ bối cảnh của chúng (như nội dung
thanh ghi, bộ đếm chương trình, vv) để chuyển đổi ngữ cảnh.
• Điều này phân bổ bộ nhớ được thực hiện bằng cách sử dụng mô hình
khối kiểm soát tác vụ (Task Control Block TCB).
• Bộ nhớ này thường được gọi là ngăn xếp hạt nhân (kernel stack) và
quản lý quá trình này gọi là quản lý ngăn xếp.

04/06/2020 Hệ thống nhúng thời gian thực 30


2.5. Chức năng RTOS (tt)
• Sau khi kết thúc công việc khởi tạo chương trình, bộ nhớ vật lý của MCU
hoặc MPU thường sẽ được dùng cho mã chương trình, dữ liệu chương trình
và ngăn xếp hệ thống.
• Bộ nhớ còn lại được gọi là vùng nhớ dùng chung: thường được sử dụng bởi
hạt nhân để cấp phát bộ nhớ động không gian dữ liệu cho các tác vụ.
• Bộ nhớ có thể được chia thành các khối có kích thước cố định, các khối bộ
nhớ này dùng cho các tác vụ khi cần.
• Khi một tác vụ kết thúc mà có sử dụng một khối bộ nhớ, nó phải hoàn trả
lại.
• Quản lý quá trình bộ nhớ này được biết đến như quản lý Heap.

04/06/2020 Hệ thống nhúng thời gian thực 31


2.5. Chức năng RTOS (tt)
3) Đồng bộ giữa các tác vụ (Intertask Synchronization) và Thông tin
giữa các tác vụ (Intertask Communication)
➢Đồng bộ hóa là điều cần thiết cho các tác vụ chia sẻ tài nguyên (như
thiết bị, bộ đệm, vv) và / hoặc cho phép nhiều nhiệm vụ được thực
hiện đồng thời.
➢Thông tin liên lạc giữa các tác vụ bao gồm việc chia sẻ dữ liệu giữa
các tác vụ thông qua việc chia sẻ tài nguyên không gian bộ nhớ và dữ
liệu.

04/06/2020 Hệ thống nhúng thời gian thực 32


2.5. Chức năng RTOS (tt)
4) Quản lý bộ định thời (Timer Management)
➢Trong các hệ thống nhúng, các tác vụ của hệ thống và người sử dụng
thường được lên kế hoạch để thực hiện sau một thời gian nhất định.
➢Để cung cấp một công cụ như bộ lập kế hoạch thì cần thiết có một
ngắt định kỳ để theo dõi thời gian trễ và thời gian chờ.
➢RTOSs mới nhất hiện nay cung cấp cả hai loại thời gian: "thời gian
tương đối” tính thời gian bằng các đơn vị của xung và "thời gian tuyệt
đối " bằng thời gian thực như lịch.

04/06/2020 Hệ thống nhúng thời gian thực 33


2.5. Chức năng RTOS (tt)
5) Ngắt và xử lý sự kiện (Interrupt and Event Handling)
➢Ngắt là một cơ chế phần cứng được sử dụng để thông báo cho CPU là
một sự kiện không đồng bộ đã xảy ra.
➢Một thách thức cơ bản trong việc thiết kế RTOS là hỗ trợ ngắt và từ
đó cho phép truy cập không đồng bộ vào cấu trúc dữ liệu bên trong
RTOS.

04/06/2020 Hệ thống nhúng thời gian thực 34


2.5. Chức năng RTOS (tt)
6) Quản lý thiết bị vào/ra (Device I/O Management): Một hạt nhân
RTOS thường được trang bị dịch vụ quản lý thiết bị I / O để cung cấp
một khung thống nhất (ứng dụng lập trình giao diện API) và công cụ
giám sát cho một hệ thống nhúng để tổ chức và truy cập các thiết bị
phần cứng đa dạng.

04/06/2020 Hệ thống nhúng thời gian thực 35


2.6. Phân loại hệ điều hành thời gian thực
• Đứng ở góc độ người sử dụng, ta có thể phân hệ điều hành thời gian
thực thành ba loại:
1) Hệ điều hành thời gian thực nhỏ với mục đích thương mại
2) Hệ điều hành thời gian thực mở rộng
3) Hạt nhân cho mục đích nghiên cứu

04/06/2020 Hệ thống nhúng thời gian thực 36


1) Hệ điều hành thời gian thực nhỏ với mục
đích thương mại
Các hệ điều hành này thường nhỏ và nhanh như QX, PDOS, pSOS,
VxWorks, Nulceus, ERCOS, EMERALDS, Windows CE. Chúng có
những đặc điểm chung sau:
- Có thời gian chuyển trạng thái và thời gian đáp ứng ngắt ngoài nhanh.
- Kích thước rất nhỏ.
- Cung cấp vùng nhớ có kích thước cố định hoặc thay đổi cho việc quản
lý bộ nhớ (không có bộ nhớ ảo) và có thể cố định mã chương trình và dữ
liệu trong bộ nhớ.

04/06/2020 Hệ thống nhúng thời gian thực 37


1) Hệ điều hành thời gian thực nhỏ với mục
đích thương mại (tt)
Để đáp ứng những yêu cầu về thời gian thực, hạt nhân của nó có khả năng:
- Hỗ trợ xử lý đa tác vụ
- Cung cấp các giới hạn thời gian thực hiện
- Đồng hồ thời gian thực
- Cung cấp cơ chế lập lịch dựa trên thứ tự ưu tiên
- Cung cấp các cảnh báo đặc biệt và thời gian quá hạn (timeout)
- Hỗ trợ các hàng đợi thời gian thực
- Cung cấp việc xử lý độ trễ, treo hay kích hoạt việc thực hiện

04/06/2020 Hệ thống nhúng thời gian thực 38


2) Hệ điều hành thời gian thực mở rộng
• Các hệ điều hành này như RT-UNIX (được mở rộng từ UNIX), RT-
LINUX (được mở rộng từ LINUX), RT-MACH (được mở rộng từ
MACH), RT-POSIX (được mở rộng từ POSIX).
• Chúng chậm hơn và có khả năng dự đoán kém hơn so với hệ điều hành
thời gian thực thương mại nhưng chúng lại có nhiều chức năng hơn và
môi trường phát triển tốt hơn dựa trên tập các giao tiếp chuẩn và thân
thiện.

04/06/2020 Hệ thống nhúng thời gian thực 39


3) Hạt nhân cho mục đích nghiên cứu
• Các hệ điều hành này như SPRING, MARS, HARTOS, MARUTI, ARTS,
CHAOS, DARK. Chúng có những đặc điểm như sau:
- Hỗ trợ các thuật toán lập lịch thời gian thực
- Hỗ trợ các dịch vụ cơ bản để đồng bộ thời gian thực
- Nhấn mạnh khả năng dự đoán không chỉ của hạt nhân mà còn cung cấp sự
hỗ trợ dự đoán ở mức ứng dụng
- Phát triển hỗ trợ cho khả năng chịu lỗi
- Cung cấp hỗ trợ cho đa bộ xử lý và cho hệ thống thời gian thực phân tán
- Phát triển hỗ trợ cho QoS.

04/06/2020 Hệ thống nhúng thời gian thực 40


3. Các kiến trúc hệ điều hành thời gian thực
3.1. Tổng quan
3.2. Đơn hạt nhân
3.3. Vi hạt nhân
3.4. Hạt nhân hỗn hợp

04/06/2020 Hệ thống nhúng thời gian thực 41


3.1. Tổng quan
Hai thành phần chính trong thiết kế hệ điều hành là hạt nhân (kernel) và
các chương trình hệ thống

04/06/2020 Hệ thống nhúng thời gian thực 42


3.1. Tổng quan (tt)
• Hạt nhân được sử dụng để phục vụ cho các bộ phận quản lý tiến trình,
bộ phận lập lịch, bộ phận quản lý tài nguyên và bộ phận quản lý
vào/ra.
• Chúng đảm nhiệm các chức năng lập lịch, đồng bộ, xử lý ngắt, bảo vệ
hệ thống. . .
• Chức năng điều khiển chính của nó là phục vụ điều khiển phần cứng
bao gồm ngắt, các thanh ghi điều khiển, các từ trạng thái và các bộ
định thời gian.

04/06/2020 Hệ thống nhúng thời gian thực 43


3.1. Tổng quan (tt)
• Nó nạp các phần mềm điều khiển thiết bị để cung cấp các tiện ích
chung và phối hợp với các hoạt động vào ra với hệ thống.
• Phần hạt nhân có vai trò điều khiển rất quan trọng để đảm bảo tất cả
các phần của hệ thống có thể làm việc ổn định và thống nhất.
• Hai kiến trúc thiết kế phần hạt nhân kinh điển nhất là kiến trúc đơn hạt
nhân (monolithic-kernel) và vi hạt nhân (micro-kernel).

04/06/2020 Hệ thống nhúng thời gian thực 44


3.1. Tổng quan (tt)
• Ngoài ra, có một loại kiến trúc hạt nhân thứ 3 là hạt nhân hỗn hợp
(hybrid-kernel)

04/06/2020 Hệ thống nhúng thời gian thực 45


3.2. Đơn hạt nhân
• Kiểu kiến trúc đơn hạt nhân cung cấp tất cả các chức năng/dịch vụ
chính yếu thông qua một quá trình xử lý đơn lẻ.
• Nó chạy tất cả các dịch vụ hệ thống cơ bản như quản lý tiến trình và
bộ nhớ, ngắt xử lý và truyền thông I/O, hệ thống file... ở không gian
hạt nhân.
• Nó được xây dựng theo dạng lớp, xây dựng từ quản lý tiến trình cơ
bản đến giao diện cho phần còn lại của hệ điều hành (thư viện và các
ứng dụng)
➢Ví dụ: Linux, MacOS và OS.
04/06/2020 Hệ thống nhúng thời gian thực 46
3.2. Đơn hạt nhân (tt)
Kiến trúc này có những ưu điểm:
- Truy cập trực tiếp đến các phần cứng
- Dễ dàng xử lý các tín hiệu và liên lạc giữa nhiều thành phần với nhau
- Nếu được hỗ trợ đầy đủ, hệ thống phần cứng sẽ không cần cài đặt
thêm driver cũng như phần mềm khác
- Quá trình xử lý và tương tác nhanh hơn vì không cần phải chờ đợi

04/06/2020 Hệ thống nhúng thời gian thực 47


3.2. Đơn hạt nhân (tt)
Những nhược điểm lớn:
- Kích thước hạt nhân lớn
- Thiếu khả năng mở rộng và bảo trì khó.
- Khi sửa chữa lỗi hoặc bổ sung các tính năng mới phải biên dịch lại
toàn bộ hạt nhân mà việc biên dịch của một hạt nhân mới có thể mất
nhiều thời gian và rất nhiều bộ nhớ.

04/06/2020 Hệ thống nhúng thời gian thực 48


3.3. Vi hạt nhân
• Để khắc phục những nhược điểm của đơn hạt nhân, người ta thiết kế
hệ điều hành dựa trên kiến trúc vi hạt nhân.
• Các vi hạt nhân cung cấp các chức năng điều hành cơ bản cốt lõi theo
cơ chế các modul tương đối độc lập đảm nhiệm các tác vụ cụ thể.
• Chuyển dời rất nhiều các dịch vụ điển hình điều hành hệ thống và thực
thi trong không gian người sử dụng.

04/06/2020 Hệ thống nhúng thời gian thực 49


3.3. Vi hạt nhân (tt)
Nhờ cơ chế này, kiến trúc vi hạt nhân có những ưu điểm sau:
- Kích thước nhỏ, linh hoạt
- Các dịch vụ có thể được khởi tạo hoặc cấu hình lại mà không nhất thiết phải khởi
tạo lại toàn bộ hệ thống.
- Kiến trúc vi hạt nhân cung cấp độ an toàn cao do dịch vụ hệ thống chạy ở tầng
người sử dụng với hạn chế về truy nhập vào tài nguyên của hệ thống và có thể được
giám sát.
- Kiến trúc vi hạt nhân có thể được xây dựng một cách mềm dẻo để phù hợp với cầu
hình phần cứng khác nhau một các linh hoạt hơn so với kiểu kiến trúc đơn hạt nhân.

04/06/2020 Hệ thống nhúng thời gian thực 50


3.3. Vi hạt nhân (tt)
Tuy nhiên, kiến trúc này có những nhược điểm:
- Do tính độc lập tương đối giữa các modul trong vi hạt nhân nên cần thiết phải có
một cơ chế trao đổi thông tin hay truyền thông giữa các modul đó. Vì vậy đây có thể
là lý do làm chậm tốc độ và làm giảm tính hiệu quả hoạt động của hệ thống.
- Phần cứng hoạt động dưới mức hiệu suất thông thường vì các trình điều khiển ở
trong chế độ người sử dụng
- Các tiến trình không thể truy cập tới những ứng dụng khác mà không phải chờ đợi
Kiến trúc vi hạt nhân được phát triển mạnh mẽ trong các hệ thống đa xử lý như
Mach, QNX.

04/06/2020 Hệ thống nhúng thời gian thực 51


3.4. Hạt nhân hỗn hợp
• Khác với 2 loại hạt nhân trên, hạt nhân hỗn hợp có khả năng chọn lựa
và quyết định những ứng dụng nào được phép chạy trong chế độ người
sử dụng hoặc chế độ giám sát.
• Thông thường, những chương trình như driver và file hệ thống I/O sẽ
hoạt động trong chế độ người sử dụng trong khi IPC (Inter-Process
Communication) và các gói tín hiệu được giữ lại trong chế độ giám
sát.
• Tính năng này thực sự rất có ích vì chúng đảm bảo tính hiệu quả của
hệ thống, phân phối và điều chỉnh công việc phù hợp, dễ quản lý

04/06/2020 Hệ thống nhúng thời gian thực 52


3.4. Hạt nhân hỗn hợp (tt)
Ưu điểm:
- Các nhà phát triển có thể chọn và phân loại những ứng dụng nào sẽ chạy
trong chế độ thích hợp
- Sử dụng ít bộ nhớ hơn so với đơn hạt nhân
- Có tính linh hoạt và cơ động cao nhất
Nhược điểm:
- Có thể bị bỏ lại trong quá trình gây treo hệ thống tương tự như với vi hạt
nhân
- Các trình điều khiển thiết bị phải được quản lý bởi người dùng

04/06/2020 Hệ thống nhúng thời gian thực 53


4. Các dịch vụ cơ bản
4.1. Các trạng thái tác vụ
4.2. Bộ lập lịch
4.3. Tác vụ và dữ liệu
4.4. Đèn báo (Semaphore) và chia sẻ dữ liệu

04/06/2020 Hệ thống nhúng thời gian thực 54


4.1. Các trạng thái tác vụ
• Tác vụ (Task) là một đơn vị cơ bản chạy trong RTOS. Một ứng dụng
được chia
• thành nhiều tác vụ đồng thời để tối ưu khả năng đáp ứng vào ra theo
sự ràng buộc của thời gian.
• Theo hầu hết các RTOS, một tác vụ đơn giản chỉ là một chương trình
con. Tại một
• số điểm trong chương trình, khi gọi đến một chức năng trong RTOS
thì bắt đầu một tác vụ.

04/06/2020 Hệ thống nhúng thời gian thực 55


4.1. Các trạng thái tác vụ (tt)
• Các thành phần của 1 tác vụ:
Tên/ID, độ ưu tiên, 1 block điều
khiển (TCB) và các thủ tục thực
thi tác vụ.

04/06/2020 Hệ thống nhúng thời gian thực 56


4.1. Các trạng thái tác vụ (tt)
Mỗi tác vụ trong một RTOS luôn luôn là một trong ba trạng thái:
1. Chạy (Running) - có nghĩa là các bộ vi xử lý đang thực hiện các lệnh
của tác vụ này. Trừ khi là một hệ thống đa bộ xử lý, nếu chỉ có một bộ
vi xử lý thì chỉ có một tác vụ là trong trạng thái đang chạy ở một thời
điểm nhất định.
2. Sẵn sàng (Ready) - có nghĩa rằng tác vụ đang trong trạng thái sẵn
sàng thực thi nhưng chưa thể thực thi vì có tác vụ khác có quyền ưu tiên
cao hơn đang chiếm quyền thực thi. Nhiều tác vụ đồng thời có thể được
ở trạng thái này.

04/06/2020 Hệ thống nhúng thời gian thực 57


4.1. Các trạng thái tác vụ (tt)
3. Bị chặn (Blocked):
➢Có nghĩa rằng tác vụ này yêu cầu tài nguyên hệ thống nhưng chưa
được đáp ứng, yêu cầu phải đợi một số sự kiện bên ngoài hoặc làm trễ
một khoảng thời gian.
➢Khi một tác vụ được mở khóa thì nó chuyển từ trạng thái bị khóa sang
trạng thái sẵn sàng chạy.

04/06/2020 Hệ thống nhúng thời gian thực 58


4.2. Bộ lập lịch
• Một phần vô cùng quan trọng của RTOS là lập lịch, theo dõi tình trạng
của từng công việc và quyết định tác vụ nào chuyển đến trạng thái
chạy.
• Nó giúp xác định tác vụ (task) nào sẽ dành quyền CPU để thực thi tiếp
theo.
• Sau đó, nó thực hiện việc chuyển trạng thái (context switching) được
thực hiện bằng bộ điều phối (dispatcher).

04/06/2020 Hệ thống nhúng thời gian thực 59


4.2. Bộ lập lịch (tt)
• RTOS lập lịch khá đơn giản về công việc sẽ nhận được từ bộ xử lý:
chúng nhìn vào những ưu tiên mà ta gán cho các tác vụ và trong số các
tác vụ mà không phải trong trạng thái bị chặn thì tác vụ nào có ưu tiên
cao nhất sẽ được thực hiện.
• Phần còn lại chờ đợi trong trạng thái sẵn sàng.

04/06/2020 Hệ thống nhúng thời gian thực 60


4.2. Bộ lập lịch (tt)
• Bộ lập lịch phải luôn quan tâm tới các mức ưu tiên của tác vụ vì nếu
một tác vụ ưu tiên cao mà bị bộ vi xử lý treo trong một thời gian dài
trong khi các nhiệm vụ ưu tiên thấp hơn được chờ đợi trong trạng thái
sẵn sàng thì trường hợp đó là quá xấu.
• Cho nên, các tác vụ ưu tiên thấp hơn chỉ phải chờ đợi, lên lịch với giả
định rằng ta biết những thông tin cần thiết khi thiết lập các mức ưu
tiên tác vụ.

04/06/2020 Hệ thống nhúng thời gian thực 61


4.2. Bộ lập lịch (tt)

04/06/2020 Hệ thống nhúng thời gian thực 62


Lập lịch kiểu Round Robin
• Tên của thuật toán này xuất phát từ nguyên tắc quay vòng (Round
Robin), trong đó mỗi người lần lượt nhận được một phần bằng nhau
của một thứ gì đó. Đây là thuật toán lập lịch đơn giản nhất, lâu đời
nhất, chủ yếu được sử dụng cho hệ điều hành đa nhiệm.
• Trong lập lịch Round Robin, mỗi tác vụ sẵn sàng chạy lần lượt chỉ
trong một hàng đợi theo chu kỳ trong một khoảng thời gian giới hạn.

04/06/2020 Hệ thống nhúng thời gian thực 63


Đặc điểm của lập lịch kiểu Round Robin
• Round Robin là một thuật toán ưu tiên.
• CPU được chuyển sang quy trình tiếp theo sau khoảng thời gian cố
định, được gọi là time quantum/time .
• Process được ưu tiên thì được thêm vào cuối hàng đợi.
• Round Robin là một mô hình lai được điều khiển bằng đồng hồ.

04/06/2020 Hệ thống nhúng thời gian thực 64


Đặc điểm của lập lịch kiểu Round Robin
• Time slice nên tối thiểu, được chỉ định cho một nhiệm vụ cụ thể cần
được xử lý. Tuy nhiên, nó có thể khác ở mỗi hệ điều hành.
• Đây là một thuật toán thời gian thực đáp ứng sự kiện trong một giới
hạn thời gian cụ thể.
• Phương pháp lập lịch sử dụng rộng rãi trong hệ điều hành truyền
thống.
• Round Robin là một trong những thuật toán lâu đời nhất, công bằng
nhất và dễ nhất.

04/06/2020 Hệ thống nhúng thời gian thực 65


Ví dụ: Lập lịch kiểu Round Robin
• Xử lý các công việc dưới đây sau 3 quá trình

04/06/2020 Hệ thống nhúng thời gian thực 66


Ví dụ: Lập lịch kiểu Round Robin

04/06/2020 Hệ thống nhúng thời gian thực 67


Ví dụ: Lập lịch kiểu Round Robin
• Bước 1) Quá trình thực thi bắt đầu với quy trình P1, có burst time là 4. Ở đây, mọi
quy trình thực hiện trong 2 giây. P2 và P3 vẫn đang trong hàng chờ.

04/06/2020 Hệ thống nhúng thời gian thực 68


Ví dụ: Lập lịch kiểu Round Robin
• Bước 2) Tại time = 2, P1 được thêm vào cuối Hàng đợi và P2 bắt đầu thực thi

04/06/2020 69
Hệ thống nhúng thời gian thực
Ví dụ: Lập lịch kiểu Round Robin
• Bước 3) Tại time = 4, P2 được ưu tiên và thêm vào cuối hàng đợi. P3
bắt đầu thực thi.

04/06/2020 Hệ thống nhúng thời gian thực 70


Ví dụ: Lập lịch kiểu Round Robin
• Bước 4) Tại time = 6, P3 được ưu tiên và thêm vào cuối hàng đợi. P1
bắt đầu thực thi.

04/06/2020 Hệ thống nhúng thời gian thực 71


Ví dụ: Lập lịch kiểu Round Robin
• Bước 5) Tại time = 8, P1 có thời gian nổ là 4. Nó đã hoàn thành thực
hiện. P2 bắt đầu thực thi

04/06/2020 Hệ thống nhúng thời gian thực 72


Ví dụ: Lập lịch kiểu Round Robin
• Bước 6) P2 có burst time là 3. Nó đã được thực hiện trong 2 khoảng
thời gian. Tại time = 9, P2 hoàn thành thực hiện. Sau đó, P3 bắt đầu
thực thi cho đến khi hoàn thành.

04/06/2020 Hệ thống nhúng thời gian thực 73


Ví dụ: Lập lịch kiểu Round Robin
• Bước 7) Hãy tính thời gian chờ trung bình cho ví dụ trên.
Wait time
P1= 0+ 4= 4
P2= 2+4= 6
P3= 4+3= 7

04/06/2020 Hệ thống nhúng thời gian thực 74


Ưu điểm của lập lịch kiểu Round Robin
• Tất cả các công việc có được sự phân bổ hợp lý của CPU.
• Nó xử lý tất cả quá trình mà không có bất kỳ ưu tiên
• Nếu bạn biết tổng số quy trình trên hàng đợi chạy, thì bạn cũng có thể giả sử
thời gian phản hồi trong trường hợp xấu nhất cho cùng một quy trình.
• Phương pháp lập lịch này không phụ thuộc vào burst time. Đó là lý do tại
sao nó có thể dễ dàng thực hiện trên hệ thống.
• Cho phép HĐH sử dụng phương thức chuyển đổi Ngữ cảnh để lưu trạng
thái của các quy trình được ưu tiên.
• Nó cho hiệu suất tốt nhất về thời gian phản hồi trung bình.
04/06/2020 Hệ thống nhúng thời gian thực 75
Nhược điểm của lập lịch kiểu Round Robin
• Nếu time slice của hệ điều hành thấp, đầu ra của bộ xử lý sẽ bị giảm.
• Phương pháp này dành nhiều thời gian hơn cho chuyển đổi ngữ cảnh
• Hiệu suất của nó phụ thuộc rất nhiều vào lượng tử thời gian.
• Ưu tiên không thể được đặt cho các quy trình.
• Round robin không ưu tiên đặc biệt cho các nhiệm vụ quan trọng hơn.
• Lượng tử thời gian thấp hơn dẫn đến chi phí chuyển đổi ngữ cảnh
trong hệ thống cao hơn.
• Tìm một lượng tử thời gian chính xác là một nhiệm vụ khá khó khăn
trong hệ thống này.
04/06/2020 Hệ thống nhúng thời gian thực 76
4.3. Tác vụ và dữ liệu
• Mỗi tác vụ có một hiện trường riêng, bao gồm các giá trị thanh ghi, bộ
đếm chương trình và một ngăn xếp. Tất cả những dữ liệu khác được
chia sẽ giữa các tác vụ.
• Khi chúng ta sử dụng biến chia sẻ dữ liệu giữa các tác vụ, điều đó rất
dễ dàng để chuyển dữ liệu từ tác vụ này tới tác vụ khác: Hai tác vụ cần
phải truy cập tới cùng biến.
• Tuy nhiên, vấn đề chia sẻ dữ liệu rất dễ dẫn tới việc không nhất quán
trong chương trình và có thể gây sụp đổ hệ thống, vì vậy cần có những
biện pháp trao đổi thông tin trong RTOS để giải quyết vấn đề này.

04/06/2020 Hệ thống nhúng thời gian thực 77


4.4. Đèn báo (Semaphore) và chia sẻ dữ liệu
• Một semaphore là một biến/chìa
khóa/cờ hoặc một loại dữ liệu
trừu tượng đơn giản nhưng hữu
ích cho việc kiểm soát sự truy
cập đa xử lý đến một nguồn tài
nguyên chung trong một môi
trường xử lý song song.

04/06/2020 Hệ thống nhúng thời gian thực 78


4.4. Đèn báo (Semaphore) và chia sẻ dữ liệu
(tt)
• Khi một semaphore được tạo ra lần đầu tiên, Kernel sẽ phân chia
chúng đến một Block điều khiển semaphore( semaphore control block
(SCB), với một ID duy nhất, một giá trị và một danh sách các Tasks
đang ở trọng thái chờ ( task waiting list).

04/06/2020 Hệ thống nhúng thời gian thực 79


4.4. Đèn báo (Semaphore) và chia sẻ dữ liệu
(tt)
• Một số RTOS thậm chí có nhiều hơn một loại semaphore.
• Một semaphore nhị phân RTOS điển hình có hai chức năng: Lấy đèn
báo (TakeSemaphore) và Giải phóng đèn báo (ReleaseSemaphore).
• Nếu một task vụ đã gọi là TakeSemaphore để lấy tín hiệu semaphore
thì không được gọi ReleaseSemaphore để giải phóng nó, sau đó tất cả
các tác vụ khác gọi TakeSemaphore sẽ bị chặn cho đến khi tác vụ đầu
tiên gọi ReleaseSemaphore.

04/06/2020 Hệ thống nhúng thời gian thực 80


4.4. Đèn báo (Semaphore) và chia sẻ dữ liệu
(tt)
• Ví dụ: Dùng hàm P(S) biểu thị TakeSemaphore và hàm V(S) biểu thị
ReleaseSemaphore, chương trình được viết như sau:

04/06/2020 Hệ thống nhúng thời gian thực 81


4.4. Đèn báo (Semaphore) và chia sẻ dữ liệu
(tt)
Void P (int S) • Chỉ có một tác vụ có semaphore
{ tại một thời điểm.
while (S == TRUE) • Chúng ta có thể sử dụng
S = TRUE; semaphore như tín hiệu để giao
} tiếp giữa các tác vụ với nhau
Void V (int S) hoặc giữa hàm ngắt và tác vụ
{
S = FALSE;
}
04/06/2020 Hệ thống nhúng thời gian thực 82
5. Các dịch vụ mở rộng của RTOS thương
mại
5.1. Message Queues
5.2. Mailboxes
5.3. Pipes
5.4. Sử dụng queue, mailbox, pipe
5.5. Các sự kiện – Event
5.6. Giới thiệu một số hệ điều hành thời gian thực

04/06/2020 Hệ thống nhúng thời gian thực 83


3.5.1. Message Queues
• Là một công cụ giao tiếp dữ liệu giữa các tác vụ. Một message Queue
là một đối tượng tương tự như Buffer ( bộ nhớ đệm) thông qua Task
hoặc chương trình phục vụ ngắt để gửi và nhận dữ “tin nhắn”
(message) để giao tiếp và đồng bộ dữ liệu.
• Khi một hàng đợi được tạo ra lần đầu tiên, nó được gán đến một khối
quản lý hàng đợi (Queue control Block QCB), tên hàng đợi/ID duy
nhất, bộ nhớ đệm (buffer), chiều dài hàng đợi, độ dài tối đa mỗi tin
nhắn, và môt hay nhiều danh sách các task đang chờ

04/06/2020 Hệ thống nhúng thời gian thực 84


3.5.1. Message Queues (tt)

04/06/2020 Hệ thống nhúng thời gian thực 85


3.5.1. Message Queues (tt)
• Một hàng đợi có 2 danh sách các task đang chờ có liên quan. Một danh
sách các task chờ nhận dữ liệu bao gồm các tác vụ đang chờ khi hàng
đợi rỗng( không có dữ liệu).
• Danh sách các tác vụ đang chờ gửi gồm những tác vụ đang chờ trong
khi hàng đợi đang đầy (full) dữ liệu.
• Hầu hết các RTOS cho phép sử dụng nhiều hàng đợi.
• Ta có thể thêm một số thông số để định danh hàng đợi và từ đó ta có
thể đọc hoặc ghi vào hàng đợi đó.

04/06/2020 Hệ thống nhúng thời gian thực 86


3.5.1. Message Queues (tt)
• Nếu ta cố ghi vào một hàng đợi khi nó đã đầy thì RTOS sẽ trả lại một
thông báo lỗi để chúng ta biết công việc đó bị hỏng hoặc bị khóa cho
đến khi có một tác vụ nào đó đọc dữ liệu ra khỏi hàng đợi.
• Rất nhiều RTOS sử dụng một hàm để đọc từ một hàng đợi nếu có dữ
liệu trong hàng đợi. Nếu ta cố đọc một hàng đợi rỗng thì nó sẽ trả ra
một thông báo lỗi.

04/06/2020 Hệ thống nhúng thời gian thực 87


3.5.1. Message Queues (tt)

04/06/2020 Hệ thống nhúng thời gian thực 88


3.5.2. Hộp thư – Mailbox
• Hộp thư là hàng đợi + semaphore.

04/06/2020 Hệ thống nhúng thời gian thực 89


3.5.2. Hộp thư – Mailbox (tt)
• RTOS điển hình có chức năng để tạo ra, để viết và đọc từ hộp thư và
có thể có chức năng để kiểm tra xem hộp thư có chứa bất kỳ tin nhắn
và hủy các hộp thư nếu nó không còn cần thiết.
• Tuy nhiên, các chi tiết của hộp thư khác nhau trong RTOS là khác
nhau.

04/06/2020 Hệ thống nhúng thời gian thực 90


3.5.2. Hộp thư – Mailbox (tt)
• Một số RTOS cho phép một số lượng nhất định tin nhắn trong mỗi hộp
thư.
• Trong một số RTOS khác, số lượng tin nhắn trong hộp thư mỗi là
không giới hạn.
• Có một giới hạn tổng số các tin nhắn được ghi ở tất cả các hộp thư
trong hệ thống, nhưng những tin nhắn này sẽ được phân chia vào các
hộp thư cá nhân khi cần thiết.
• Trong một số RTOS, bạn có thể đặt mức ưu tiên cho các tin nhắn trong
hộp thư. Tin nhắn ưu tiên cao sẽ được đọc trước tin nhắn ưu tiên thấp
hơn mà không quan tâm đến thứ tự mà chúng được viết vào hộp thư.
04/06/2020 Hệ thống nhúng thời gian thực 91
3.5.3. Đường ống – Pipe
• Pipe cũng giống như hàng đợi. RTOS có thể tạo ra chúng, viết vào
chúng, đọc từ chúng...
• Các chi tiết của pipe giống như các chi tiết của hộp thư và hàng đợi,
khác nhau tùy vào mỗi loại RTOS.
• Một số biến thể ta có thể thấy sau đây: Một số RTOS cho phép viết tin
nhắn của độ dài khác nhau vào đường ống (không giống như các hộp
thư và hàng đợi, trong đó chiều dài tin nhắn thường được cố định).

04/06/2020 Hệ thống nhúng thời gian thực 92


3.5.3. Đường ống – Pipe (tt)
• Đường ống trong một số RTOS hoàn toàn định hướng theo byte: nếu
tác vụ A ghi 11 byte đường ống và sau đó tác vụ B ghi 19 byte vào
đường ống, sau đó nếu tác vụ C đọc 14 byte từ đường ống, nó sẽ nhận
được 11 của tác vụ A đã viết cộng với 3 byte của tác vụ B. Còn 16 byte
của tác vụ B đã viết sẽ nằm lại trong đường ống dùng cho bất cứ tác
vụ nào đọc từ nó.
• Một số RTOS sử dụng các chức năng thư viện C chuẩn fread và fwrite
để đọc và ghi vào ống.

04/06/2020 Hệ thống nhúng thời gian thực 93


3.5.3. Đường ống – Pipe (tt)

04/06/2020 Hệ thống nhúng thời gian thực 94


3.5.4. Sử dụng queue, mailbox, pipe
• Mặc dù queue, mailbox và pipe có thể làm vấn đề chia sẻ dữ liệu giữa
các tác vụ trở nên dễ dàng hơn nhưng nó cũng rất dễ gây ra lỗi trong
hệ thống của chúng ta. Khi sử dụng ta chú ý mấy điểm chính sau:
• Queue: Xử lý thông tin theo kiểu FIFO (First In First Out).
• Mailbox: Xử lý thông tin theo kiểu không nghẽn và theo mức ưu tiên.
• Pipe: Xử lý những thông điệp có độ dài khác nhau

04/06/2020 Hệ thống nhúng thời gian thực 95


3.5.5. Các sự kiện – Event
• Một dịch vụ khác của RTOS là quản lý các sự kiện bên trong hệ thống.
Mỗi sự kiện cơ bản là một cờ Boolean mà một tác vụ có thể thiết lập
hoặc xóa và là cái mà các tác vụ khác có thể chờ đợi.
• Một số đặc điểm của sự kiện trong các RTOS là:
1) Một hay nhiều tác vụ bị khóa đợi chờ một sự kiện, RTOS sẽ giải
phóng tất cả chúng và thực hiện chúng theo thứ tự ưu tiên khi sự kiện
xảy ra.

04/06/2020 Hệ thống nhúng thời gian thực 96


3.5.5. Các sự kiện – Event (tt)
• Ví dụ, các tác vụ chờ đợi một động cơ chạy. Một cờ sự kiện được xác
định để đạidiện cho trạng thái của động cơ (off hoặc on).
• Khi các tác vụ phải chờ đợi động cơ thì chúng gọi Event Manager yêu
cầu chờ đợi cho đến khi cờ sự kiện kiểm soát động cơ cho biết động cơ
bắt đầu chạy.
• Khi tác vụ điều khiển động cơ hoặc thủ tục định thời gian phát hiện
động cơ chạy thì nó báo hiệu sự kiện với một cuộc gọi cho Event
Manager.
• Event Manager đánh thức tất cả các tác vụ đang chờ đợi cho động cơ
trên chạy.
04/06/2020 Hệ thống nhúng thời gian thực 97
3.5.5. Các sự kiện – Event (tt)
• RTOS mặc định hình thành một nhóm các sự kiện và các tác vụ đợi
cho bất kỳ tập con nào của nhóm sự kiện xảy ra.
• Các RTOS khác nhau đưa ra các cách khác nhau để thiết lập lại các sự
kiện sau khi nó đã xảy ra và các tác vụ đợi sự kiện đó sẽ được giải
phóng.
• Một số RTOS thiết lậplại các sự kiện một cách tự động, một số khác
đòi hỏi các tác vụ phần mềm của người sử dụng phải tự làm.
• Chúng ta sử dụng các queue, mailbox, pipe, semaphore và các sự kiện
cho việc giao tiếp giữa hai tác vụ hoặc giữa một ngắt và một tác vụ.
04/06/2020 Hệ thống nhúng thời gian thực 98
3.5.5. Các sự kiện – Event (tt)
Chúng có một số đặc điểm riêng sau :
- Semaphore là phương thức nhanh nhất và đơn giản nhất. Tuy nhiên, thông
tin thông qua một semaphore không nhiều. Chỉ một bit thông điệp được
chuyển đi để thông báo semaphore được giải phóng.
- Sự kiện ít phức tạp hơn semaphore nhưng lại tiêu tốn nhiều thời gian bộ xử
lý hơn semaphore. Sử dụng các sự kiện thuận lợi hơn semaphore là ở chỗ :
một tác vụ đợi một hay nhiều sự kiện trong cùng thời gian trong khi nó chỉ
đợi một semaphore.
- Hàng đợi cho phép chúng ta gửi một số lượng lớn thông tin từ tác vụ này tới
tác vụ khác, cho dù tác vụ chỉ đợi trên một hàng đợi tại một thời điểm nhưng
sự thật là chúng cho phép gửi dữ liệu thông qua một hàng đợi làm nó linh
hoạt hơn một sự kiện.
04/06/2020 Hệ thống nhúng thời gian thực 99
3.5.6. Giới thiệu một số hệ điều hành thời
gian thực
1) RTX51-Real Time Operating System
2) µC/OS
3) QNX Neutrino

04/06/2020 Hệ thống nhúng thời gian thực 100


RTX51-Real Time Operating System
Có hai phiên bản của RTX51: RTX51 full và RTX51 Tiny.
- RTX51 full cho phép thực hiện cả chuyển mạch xoay vòng và chuyển
tác vụ với 4 mức ưu tiên. Nó hỗ trợ 256 tác vụ và cung cấp dịch vụ điều
khiển semaphore, tín hiệu tác vụ, hàng đợi và vùng nhớ.
- RTX51 Tiny là một nhân thời gian thực nhỏ của RTX51 full. RTX51
Tiny dễ dàng chạy trên một chíp không có bộ nhớ dữ liệu ngoài. RTX51
Tiny cho phép chuyển mạch xoay vòng giữa các tác vụ, hỗ trợ thông tin
giữa các tác vụ và có thể hoạt động song song cùng với các hàm ngắt

04/06/2020 Hệ thống nhúng thời gian thực 101


µC/OS
µC/OS là nhân một hệ điều hành thời gian thực do J. Labrosse xây dựng, có
tính khả chuyển cao, mềm dẻo, có tính ưu tiên và đa tác vụ. µC/OS hỗ trợ các
tính năng sau:
- Bộ lập lịch
- Truyền thông điệp
- Đồng bộ và chia sẻ dữ liệu giữa các tác vụ
- Quản lý bộ nhớ
- Các thiết bị vào ra
- Hệ thống file
- Mạng truyền thông

04/06/2020 Hệ thống nhúng thời gian thực 102


µC/OS (tt)
• µC/OS còn hỗ trợ nhiều bộ vi xử lý và rất gọn nhẹ để sử dụng cho
nhiều hệ thống nhúng.
• Phiên bản µC/OS-II tăng cường thêm khả năng đặt tên tới mỗi đối
tượng của nhân.
• Đặc biệt với phiên bản V2.6, ta có thể gán tên cho một tác vụ, đèn báo,
hộp thư,hàng đợi, một nhóm sự kiện hay một vùng nhớ.
• Nhờ vậy mà bộ phát hiện lỗi có thể hiện thị tên của những đối tượng
đó và cho phép chúng ta nhanh chóng xem thông tin về đối tượng.
Ngoài ra, V2.6 cho phép bộ sửa lỗi đọc thông tin cấu hình của một ứng
dụng và hiển thị những thông tin đó.
04/06/2020 Hệ thống nhúng thời gian thực 103
QNX Neutrino
• QNX Neutrino là chuẩn mực cho các ứng dụng nhúng thời gian thực.
Nó có thể co giãn tới một kích thước rất nhỏ và cung cấp nhiều tác vụ
hoạt động đồng thời, các tiến trình, điều khiển lập lịch, thứ tự ưu tiên
và chuyển hiện trường nhanh.
• QNX Neutrino rất mềm dẻo: Người sử dụng có thể dễ dàng thay đổi
cấu hình OS cho phù hợp với ứng dụng của mình, từ một cấu hình cơ
bản nhất của một nhân nhỏ (microkernel) với một vài modul nhỏ cho
tới một hệ thống được trang bị khả năng phát triển mạng diện rộng để
phục vụ hàng trăm người sử dụng.

04/06/2020 Hệ thống nhúng thời gian thực 104


4. Câu hỏi
4.1. Hệ điều hành là gì? Phân loại hệ điều hành.
4.2. Hệ điều hành thời gian thực là gì? So sánh Hệ điều hành thời gian
thực và Hệ điều hành chung.
4.3. Nêu đặc điểm và chức năng của Hệ điều hành thời gian thực.

04/06/2020 Hệ thống nhúng thời gian thực 105


4. Câu hỏi (tt)
4.4. Hệ điều hành đa người dùng là
a. Cho phép tạo nhiều tài khoản người dùng
b. Cho phép nhiều người có thể đăng nhập vào hệ thống bằng các
tài khoản khác nhau
c. Cho phép người sử dụng có quyền như người quản trị
d. Cho phép nhiều người dùng đăng nhập vào hệ thống tại cùng
một thời điểm

04/06/2020 Hệ thống nhúng thời gian thực 106


4. Câu hỏi (tt)
4.5. Nêu các kiến trúc của Hệ điều hành thời gian thực và mô tả đặc
điểm của chúng.
4.6 Phát biểu nào sau đây đúng
a. Task là các ứng dụng chạy song song với nhau.
b. Mỗi task có một số hiệu (ID), số hiệu này có thể thay đổi
c. Tại một thời điểm CPU chỉ xử lý 1 task.
d. Tại một thời điểm CPU có thể xử lý nhiều task

04/06/2020 Hệ thống nhúng thời gian thực 107


4. Câu hỏi (tt)
4.7. Các trạng thái của một task
a. Có thể chuyển đổi qua lại với nhau
b. Trạng thái running có thể chuyển sang blocked nhưng ngược lại thì
không
c. Trạng thái ready có thể chuyển qua running nhưng ngược lại thì
không
d. Trạng thái blocked có thể chuyển qua ready nhưng ngược lại thì
không

04/06/2020 Hệ thống nhúng thời gian thực 108


4. Câu hỏi (tt)
3.8 Semaphore là gì? Mô tả cấu trúc của một semaphore.
3.9 Hàng đợi là gì? Mô tả cấu trúc của một hàng đợi.
3.10 Hộp thư là gì? Mô tả cấu trúc của một hộp thư.
3.11 Pipe là gì? Mô tả sự khác nhau giữa hàng đợi, hộp thư và pipe.
3.12 Nêu các qui tắc thực thi hàm ngắt trong môi trường RTOS.
3.13 Mô tả những đặc điểm giống và khác năng của các hệ điều hành
thời gian thực: RTX51, µC/OS, QNX Neutrino.

04/06/2020 Hệ thống nhúng thời gian thực 109


Chương 4 & 5
Nội dung bài học

Các vấn đề thiết kế hệ thống

Qui trình thiết kế hệ thống phần mềm

Thiết kế phần mềm theo phương pháp hướng đối tượng


Các vấn đề thiết kế hệ thống
• Thiết kế hệ thống thời gian thực là một nhiệm vụ đầy thử thách. Hầu
hết các khó khăn đều xuất phát từ thực tế do hệ thống thời gian thực
tương tác với các thực thể thế giới thực.
• Ví dụ: một hệ thống chuyển mạch điện thoại thường xuyên xử lý các
cuộc gọi từ hàng chục ngàn thuê bao.
Các vấn đề cần quan tâm (tt)

Đáp ứng thời gian thực

Phục hồi khi bị lỗi

Làm việc với kiến trúc phân tán

Truyền thông bất đồng bộ

Tình trạng tranh đua và định thời


Đáp ứng thời gian thực
• Đáp ứng các tương tác bên ngoài trong một khoảng thời gian định
trước.
• Hoạt động chính xác và kịp thời của hệ thống.
• Thiết kế phần cứng và phần mềm trong hệ thống là để đáp ứng yêu cầu
thời gian thực
Đáp ứng thời gian thực (tt)
• Ví dụ: một hệ thống chuyển mạch điện thoại nhận số quay pulse
đến từ hàng ngàn thuê bao trong một giới hạn định trước của mức
1 giây.
• Hệ thống này phải đáp ứng các yêu cầu cho tất cả các cuộc gọi
được thiết lập tại bất kỳ thời gian nào.
Đáp ứng thời gian thực (tt)
• Kiến trúc phù hợp?
• Tốc độ kết nối có phù hợp?
• Các thành phần xử lý đủ mạnh?
• Hệ điều hành phù hợp?
Phục hồi khi bị lỗi
• Hệ thống thời gian thực phải hoạt động tin cậy ngay cả trong
trường hợp bị lỗi.
• Những lỗi này có thể xuất phát từ nội bộ hoặc từ bên ngoài.
• Lỗi nội bộ
• Lỗi ngoài
Lỗi nội bộ
• Lỗi nội bộ có thể là do phần cứng và phần mềm hệ thống bị lỗi.
• Các loại lỗi:
a) Lỗi phần mềm trong một tác vụ
b) Khởi động lại bộ xử lý
c) Lỗi mạch
d) Lỗi kết nối
Lỗi ngoài
• Hệ thống thời gian thực phải làm việc trong thế giới thực.
• Vì vậy, nó phải có khả năng phục hồi từ lỗi trong môi trường bên
ngoài.
a) Hành vi của các thực thể bên ngoài không hợp lệ
b) Lỗi kết nối
Thiết kế kiến trúc phân tán
• Hầu hết các hệ thống thời gian thực liên quan đến việc xử lý trên các
nút khác nhau.
• Bản thân hệ thống phân phối công việc xử lý giữa các bộ vi xử lý này.
Thiết kế kiến trúc phân tán (tt)
• Duy trì tính nhất quán:
Duy trì tính thống nhất cấu trúc dữ liệu là một thách thức khi nhiều bộ
xử lý được tham gia vào việc thực hiện chức năng xử lý. Nhất quán
thường được duy trì bằng cách chạy kiểm tra cấu trúc dữ liệu.
• Khởi tạo hệ thống: Khởi tạo một hệ thống với nhiều bộ xử lý phức tạp
hơn rất nhiều so với một máy tính duy nhất.
• Giao tiếp giữa các bộ xử lý: Một trong những vấn đề đau đầu nhất
trong các hệ thống thời gian thực là xác định và duy trì giao tiếp.
Thiết kế kiến trúc phân tán (tt)
• Phân bố tải: Khi nhiều bộ xử lý và các liên kết trao đổi thông tin cho
nhau thì việc phân phối tải là một nhiệm vụ khó khăn.
• Phân bổ nguồn lực tập trung: Hệ thống phân tán được chạy trên
nhiều bộ xử lý, nhưng chúng phải chia sẻ chung nguồn tài nguyên.
Truyền thông bất đồng bộ
• Các cuộc gọi thủ tục từ xa (Remote procedure calls RPC) được sử
dụng trong các hệ thống máy tính để đơn giản hóa việc thiết kế phần
mềm.
• Sự linh động này được đưa ra với những vấn đề phức tạp riêng của nó,
cho nên người thiết kế phải hết sức chú ý các vấn đề liên quan.
Tranh đua và định thời
• Thiết kế hệ thống thời gian thực quan trọng nhất là thời gian.
• Tất cả các giao thức đều nhấn mạnh đến tầm quan trọng của thời gian.
• Tất cả các bước trong một giao thức được mô tả với các đặc điểm kỹ
thuật chính xác thời gian cho từng giai đoạn.
Tranh đua và định thời (tt)
• Tình trạng tranh đua xảy ra khi trạng thái của một tài nguyên phụ
thuộc vào các yếu tố thời gian và không thể dự đoán.
• Vấn đề chính ở đây là xác định tình trạng tranh đua?
Qui trình thiết kế phần mềm
Nội dung

Các mô hình quy trình tổng quát

Lặp lại qui trình

Các hoạt động chung nhất của các quy trình

18
Quy trình phần mềm
• Quy trình phần mềm (software process) là một tập các hoạt động cần thiết để phát
triển một hệ thống phần mềm:
• Đặc tả - Specification;
• Thiết kế - Design;
• Thẩm định - Validation;
• Tiến hóa - Evolution.
• Một mô hình quy trình phần mềm là một biểu diễn trừu tượng của một quy trình.
• Một mô tả về một quy trình từ một góc độ nào đó.

19
Các mô hình quy trình tổng quát

• Mô hình thác nước – The waterfall model


• Tách biệt các pha đặc tả và phát triển.
• Phát triển tiến hóa – Evolutionary development
• Các hoạt động đặc tả, phát triển và thẩm định xen kẽ nhau.
• CNPM dựa thành phần – Component-based SE
• Hệ thống được lắp ráp từ các thành phần sẵn có.
• Có nhiều biến thể của các mô hình này (kết hợp các mô hình khác nhau)
• v.d. hoạt động phát triển dùng quy trình kiểu thác nước nhưng hoạt động đặc tả được làm
mịn qua nhiều bước cho đến khi đạt được một thiết kế cài đặt được.

20
Mô hình thác nước
Requirements
definition

System and
software
design

Implementation
and unit testing

Integration
and system
testing
Operation
and
maintenance

21
Các pha trong mô hình thác nước

• Phân tích và định nghĩa yêu cầu


• Thiết kế hệ thống và phần mềm
• Cài đặt và kiểm thử đơn vị
• Tích hợp và kiểm thử hệ thống
• Vận hành và bảo trì

Nhược điểm chính của mô hình thác nước là khó khăn của việc
sửa đổi sau khi quy trình đã vào guồng. Pha này phải được hoàn
tất trước khi bước vào pha tiếp theo.

22
Các vấn đề của mô hình thác nước

• Khó đáp ứng việc khách hàng thay đổi yêu cầu.
• do việc phân dự án thành các giai đoạn tách biệt
• Chỉ thích hợp khi các yêu cầu được hiểu rõ và ít có thay đổi trong quy trình phát
triển.
• Ít hệ thống doanh nghiệp có các yêu cầu ổn định ít thay đổi theo thời gian.
• Chủ yếu dùng cho các dự án hệ thống lớn, khi một hệ thống được phát triển tại
các địa điểm khác nhau.

23
Phát triển tiến hóa
• Phát triển thăm dò (exploratory development)
• Mục đích là làm việc với khách hàng và từng bước phát triển (evolve) từ một
đặc tả sơ lược ban đầu tới một hệ thống là sản phẩm cuối cùng.
• nên bắt đầu từ một bộ yêu cầu được hiểu rõ và bổ sung các tính năng mới khi khách hàng
đề xuất.

• Các phiên bản thử nghiệm dùng tạm (throw-away prototyping)


• Mục đích để hiểu các yêu cầu hệ thống.
• nên bắt đầu từ bộ yêu cầu không được hiểu rõ để có thể làm rõ đâu là cái thực sự được
yêu cầu.

24
Phát triển tiến hóa
Các hoạt động
song song

Specification Initial version

Mô tả sơ lược Intermediate
outline Development Intermediate
Intermediate
version
version
description version

Final version
Validation

25
Phát triển tiến hóa
• Vấn đề
• Tính quy trình không thể hiện rõ ràng;
• Các hệ thống thường được cấu trúc tồi;
• Đòi hỏi các kỹ năng đặc biệt
• ví dụ kĩ năng dùng các ngôn ngữ cho việc xây dựng cấp tốc các phiên bản thử nghiệm
(rapid prototyping)

• Ứng dụng
• cho các hệ thống kích thước nhỏ và trung bình;
• Cho một số phần nào đó của hệ thống lớn (chẳng hạn giao diện người dùng);
• cho các hệ thống chỉ dùng trong thời gian ngắn.
26
Dựa thành phần

• dựa trên việc tái sử dụng một cách có hệ thống


• các hệ thống được tích hợp từ các thành phần có sẵn hoặc các hệ thống COTS
(Commercial-off-the-shelf – sẵn sàng để người dùng mua về cài vào máy)
• Các pha trong quy trình
• Phân tích thành phần (component analysis);
• Sửa yêu cầu (requirements modification);
• Thiết kế hệ thống trong đó tái sử dụng;
• Phát triển và tích hợp.
• Cách tiếp cận này ngày càng được sử dụng nhiều, khi các chuẩn thành phần đã bắt
đầu xuất hiện.

27
Hướng đến tái sử dụng

Requirement Component Requirement


specification analysis modification

Development
System design System
and
with reuse validation
integration

28
Lặp lại qui trình
• Các yêu cầu hệ thống LUÔN LUÔN thay đổi.
• Việc lặp lại có thể được áp dụng cho bất kì mô hình quy trình tổng
quát nào.
• Hai cách tiếp cận (có liên quan)
• Chuyển giao tăng dần – Incremental delivery;
• Phát triển kiểu xoắn ốc – Spiral development.

29
Chuyển giao tăng dần

• Việc chuyển giao được chia thành các đợt.


• Gắn độ ưu tiên cho các yêu cầu, các yêu cầu có độ ưu tiên cao nhất cần được
đáp ứng ngay từ các đợt đầu tiên
• Một khi hoạt động phát triển cho một đợt đã bắt đầu, bộ yêu cầu dùng được
đóng băng, các thay đổi đối với yêu cầu được dành cho đợt sau.

30
Phát triển tăng dần

Define Assign
Design system
outline requirements
architecture
requirement to increments

Develop
Validate Integrate Validate
system
increment increment system
increment

System incomplete
Final
system

31
Ưu điểm

• Khách hàng sớm được bàn giao sản phẩm dùng


được (theo từng phần).
• Các đợt đầu đóng vai trò phiên bản thử nghiệm
(prototype) để hỗ trợ việc làm rõ bộ yêu cầu
cho các đợt sau.
• Rủi ro thấp đối với thất bại toàn bộ dự án.
• Các dịch vụ hệ thống có ưu tiên cao nhất có xu
hướng được kiểm thử nhiều nhất.

32
Phát triển kiểu xoắn ốc

• Quy trình được biểu diễn dưới dạng xoắn ốc thay


vì một chuỗi các hoạt động với các bước quay
lui.
• Mỗi vòng trong đường xoắn ốc đại diện cho một
pha trong quy trình.
• Không có các pha cố định như pha đặc tả hay
pha thiết kế - các vòng xoắn được lựa chọn tùy
theo nhu cầu.

33
Mô hình xoắn ốc
Xác định mục tiêu,
Đánh giá các lựa chọn,
các lựa chọn khác,
xác định và giải quyết
và các ràng buộc phân tích
rủi ro các rủi ro
phân tích
rủi ro
phân tích
Operational
rủi ro
prototype
Prototype 3
phân tích
Prototype 2
rủi ro

REVIEW Prototype 1

Requirements plan Simulation, models, benchmarks


Life-cycle plan Concept of
Operation W/S
requirements
Product Detailed
Requirement design design
Development
plan validation Code
Test
Unit test
Integration and design
Integration
Phát triển, kiểm định
Test plan
Lập kế hoạch Acceptance test sản phẩm của mức
pha tiếp theo Service
test tiếp theo
34
Các phân khu trong mô hình xoắn ốc

• Đặt mục tiêu


• xác định các mục tiêu cụ thể của pha.
• Đánh giá và giảm rủi ro
• đánh giá các rủi ro và sắp xếp các hoạt động để giảm các rủi ro chính yếu.
• Phát triển và thẩm định
• Chọn một mô hình phát triển cho hệ thống, đây có thể là một trong các mô hình
tổng quát.
• Lập kế hoạch
• Review dự án và lập kế hoạch cho pha tiếp theo của đường xoắn ốc.

35
Các hoạt động chung nhất

Đặc tả
Thiết kế và cài đặt
Thẩm định
Tiến hóa

36
Đặc tả yêu cầu phần mềm

• Quy trình thiết lập danh sách các dịch vụ được yêu cầu và các ràng buộc đối
với hoạt động của hệ thống và việc phát triển hệ thống.
• Quy trình kĩ nghệ yêu cầu
• Nghiên cứu tính khả thi – Feasibility study;
• Thu thập và phân tích yêu cầu – Requirements elicitation and analysis;
• Đặc tả yêu cầu – Requirements specification;
• Thẩm định yêu cầu – Requirements validation.

37
Quy trình kĩ nghệ yêu cầu

Requirements
Feasibility
elicitation &
study
analysis
Requirements
specification
Feasibility
report Requirements
validation
User and
System
system
models
requirements
Requirements
documents

38
Thiết kế và cài đặt phần mềm

• Quy trình biến đổi từ đặc tả hệ thống thành một hệ thống chạy được.
• Thiết kế phần mềm
• Thiết kế một cấu trúc phần mềm mà hiện thực hóa được đặc tả;
• Cài đặt
• Dịch cấu trúc đó thành một chương trình chạy được;
• Các hoạt động thiết kế và cài đặt có quan hệ chặt chẽ với nhau và có thể
xen kẽ.

39
Các hoạt động quy trình thiết kế

• Thiết kế kiến trúc – Architectural design


• Đặc tả trừu tượng – Abstract specification
• Thiết kế giao diện – Interface design
• Thiết kế thành phần – Component design
• Thiết kế cấu trúc dữ liệu – Data structure design
• Thiết kế thuật toán – Algorithm design

40
Quy trình thiết kế phần mềm

41
Lập trình và tìm lỗi
• là hoạt động dịch một thiết kế thành một chương trình
và loại bỏ lỗi trong chương trình đó.
• lập trình là một hoạt động cá nhân – không có quy
trình lập trình tổng quát.
• trong quy trình tìm lỗi (debugging process), lập trình
viên thực hiện việc kiểm thử chương trình để phát hiện
lỗi trong chương trình và loại bỏ các lỗi đó.

42
Thẩm định phần mềm

• Kiểm định (verification) và thẩm định (validation) nhằm chứng tỏ rằng


một hệ thống
• tuân theo đặc tả của nó, và
• thỏa mãn các yêu cầu của khách hàng hệ thống.
• Bao gồm các quy trình checking và review và kiểm thử hệ thống
(system testing).
• Việc kiểm thử bao gồm việc chạy hệ thống với các test case được dẫn xuất từ
đặc tả.

43
Tiến hóa hệ thống

Define Assess Propose


Modify
system existing system
systems
requirements systems changes

Existing New
systems system

44
Tiến hóa phần mềm
• Về mặt cố hữu, phần mềm có tính mềm dẻo và có thể thay đổi.
• Các yêu cầu thay đổi do sự biến đổi của các hoàn cảnh doanh nghiệp,
phần mềm hỗ trợ doanh nghiệp cũng phải tiến hóa và thay đổi theo.
• Tuy đã có một ranh giới giữa phát triển và tiến hóa (bảo trì), ranh giới
này ngày càng ít ý nghĩa khi ngày càng ít hệ thống hoàn toàn mới.

45
Thiết kế hướng đối tượng
Mục tiêu

• Thiết kế phần mềm kiểu hướng đối tượng được trình bày như là một
tập các đối tượng tương tác với nhau
• Các đối tượng tự quản lý trạng thái và các thao tác của mình
• Mô tả các hoạt động trong quy trình thiết kế hướng đối tượng
• Giới thiệu một số mô hình có thể dùng để mô tả một thiết kế hướng
đối tượng
• Minh họa cách trình bày các mô hình này bằng ngôn ngữ UML
Các chủ đề

Đối tượng và các lớp đối tượng

Một quy trình thiết kế hướng đối tượng

Tiến hóa thiết kế


Phát triển hướng đối tượng

• Phân tích (OOA), thiết kế (OOD) và lập trình hướng đối tượng (OOP) có quan hệ
với nhau nhưng không trùng nhau
• Phân tích hướng đối tượng nhằm phát triển một mô hình đối tượng của miền ứng dụng
• Thiết kế hướng đối tượng nhằm phát triển một mô hình hệ thống hướng đối tượng để thực thi
bộ các yêu cầu hệ thống
• Lập trình hướng đối tượng nhằm hiện thực hóa một thiết kế hướng đối tượng bằng cách sử
dụng một ngôn ngữ lập trình hướng đối tượng như Java hoặc C++
Đặc điểm của OOD

• Các đối tượng là các trừu tượng hóa của các thực thể trong thế giới thực hoặc các
thực thể hệ thống, chúng tự quản lý bản thân
• Các đối tượng có tính độc lập, chúng đóng gói trạng thái và các thao tác liên quan
• Các chức năng hệ thống được diễn đạt theo các dịch vụ đối tượng
• Loại bỏ các vùng dữ liệu dùng chung
• Các đối tượng liên lạc với nhau bằng cách truyền thông điệp
• Các đối tượng có thể phân tán tại các máy tính khác nhau và có thể thực thi tuần tự
hoặc song song
Các đối tượng tương tác
Ưu điểm của OOD

• Dễ bảo trì hơn.


• Có thể xem các đối tượng như là các thực thể độc lập (stand-alone).
• Các đối tượng là các thành phần tái sử dụng được về tiềm năng. Vì
chúng đóng gói độc lập trạng thái và thao tác
• Dễ mô hình hóa hơn
• Có thể có một ánh xạ dễ thấy từ các thực thế trong thế giới thực tới các thực
thể hệ thống.
Đối tượng và lớp đối tượng

• Đối tượng là thực thể trong một hệ thống phần mềm, nó đại diện cho
các thể hiện của các thực thể trong thế giới thực và thực thể hệ thống.
• Lớp đối tượng là các khuôn mẫu (template) cho các đối tượng.
• Dùng để tạo các đối tượng.
• Các lớp đối tượng có thể thừa kế các thuộc tính và dịch vụ từ các lớp
đối tượng khác.
Đối tượng và lớp đối tượng
Một đối tượng là một thực thể có một trạng thái (state)
và một tập xác định trước gồm các thao tác (operation)
mà chúng sẽ hoạt động trên trạng thái đó. Trạng thái
được đại diện bởi một tập các thuộc tính đối tượng. Các
thao tác gắn với một đối tượng cung cấp dịch vụ cho các
đối tượng khác (client). Khi cần tính toán, các đối tượng
client sẽ gọi các dịch vụ đó.

Các đối tượng được tạo theo một định nghĩa lớp đối
tượng. Một định nghĩa lớp đối tượng là template cho các
đối tượng. Nó bao gồm khai báo cho tất cả các thuộc tính
và dịch vụ gắn với mỗi đối tượng thuộc lớp đó.
The Unified Modeling Language

• Một số kí pháp khác nhau cho việc mô tả các thiết kế hướng đối tượng
đã được đề xuất trong các thập kỉ 1980 và 1990.
• Unified Modeling Language (UML) là một tích hợp của các kí pháp
này.
• Nó mô tả các kí pháp cho một loạt các mô hình khác nhau có thể được tạo ra
trong quá trình phân tích thiết hế hướng đối tượng.
• Nó hiện là một chuẩn không chính thức cho mô hình hóa hướng đối tượng.
Employee object class (UML)

Emplo yee

name: string
address: string
dateOfBir th: Date
employeeNo: integer
socialSecurityNo: string
depar tment: Dept
manager: Employee
salar y: integer
status: {current, left, retired}
taxCode: integer
. ..

join ()
leave ()
retire ()
changeDetails ()
Liên lạc giữa các đối tượng

• Về mặt khái niệm, các đối tượng liên lạc với nhau bằng cách truyền thông điệp.
• Các thông điệp (message)
• Tên của dịch vụ mà đối tượng gọi yêu cầu chạy;
• Bản sao của thông tin cần thiết để chạy dịch vụ và tên của nơi chứa kết quả của dịch vụ.
• Trong thực tiễn, các thông điệp thường được cài đặt bằng các lời gọi hàm
• tên = tên hàm;
• Thông tin = danh sách tham số.
Ví dụ về thông điệp

// Call a method associated with a buffer


// object that returns the next value
// in the buffer
v = circularBuffer.Get () ;

// Call the method associated with a


// thermostat object that sets the
// temperature to be maintained
thermostat.setTemp (20) ;
Tổng quát hóa và thừa kế

• Các lớp đối tượng có thể được sắp xếp trong một cấu trúc phân cấp
• Trong đó một lớp (một lớp cha) là một tổng quát hóa (generalisation) của một vài lớp
khác (lớp con).
• Một lớp con thừa kế các thuộc tính và thao tác của lớp cha của nó và có thể bổ sung các
phương thức mới hoặc thuộc tính mới của riêng nó.
• Quan hệ tổng quát hóa trong UML được cài bằng quan hệ thừa kế trong các ngôn ngữ
OOP.
phân cấp của một tổng quát hóa

Employee

Manager Programmer

budgetsControlled project
progLanguages
dateAppointed

Project Dept. Strategic


Manager Manager Manager

projects dept responsibilities


Ưu điểm của thừa kế

• Là một cơ chế trừu tượng hóa có thể dùng để phân lớp các thực thể.
• Là một cơ chế tái sử dụng ở cả hai mức thiết kế và lập trình.
• Đồ thị thừa kế là một nguồn cho kiến thức tổ chức về miền ứng dụng
và hệ thống.
Nhược điểm của thừa kế

• Các lớp đối tượng không độc lập tự chủ


• Không thể hiểu chúng mà không cần biết đến các lớp cha.
• Các nhà thiết kế có xu hướng tái sử dụng biểu đồ thừa kế đã được lập
trong pha phân tích.
• Có thể dẫn đến sự không hiệu quả đáng kể.
• Các biểu đồ thừa kế sản phẩm của phân tích, thiết kế và cài đặt có các
chức năng khác nhau và nên được duy trì ở trạng thái tách biệt.
UML association

• Đối tượng và các lớp đối tượng có quan hệ với các đối tượng và lớp khác.

Emp loy ee Depar tmen t


is -member-o f

is -manag ed-by

manages
M anager
Các đối tượng song song

• Về bản chất, các đối tượng có tính độc lập (self-contained). Do đó,
chúng phù hợp cho cài đặt song song.
• Mô hình truyền thông điệp của các đối tượng có thể được cài trực tiếp
nếu các đối tượng chạy trên các bộ vi xử lý khác nhau trong một hệ
phân tán.
Server và các đối tượng chủ động

• Server
• Đối tượng được cài như là một tiến trình song song (server) với các điểm vào
(entry point) tương ứng với các thao tác của object.
• Nếu không có lời gọi nào được thực hiện đối với object, nó tự vào trạng thái
nghỉ (suspend) và đợi các yêu cầu dịch vụ.
• Các đối tượng chủ động
• Các đối tượng được cài như là các tiến trình song song và trạng thái trong của
đối tượng có thể được thay đổi bởi chính đối tượng chứ không chỉ bởi các lời
gọi thao tác từ bên ngoài.
Active transponder object

• thuộc tính của các đối tượng chủ động có thể bị sửa đổi bởi các thao
tác kích hoạt từ ngoài nhưng cũng có thể được tự động cập nhật bởi
các thao tác bên trong
• Một đối tượng transponder gửi broadcast vị trí của một máy bay.
• Vị trí của máy bay có thể được cập nhật bằng cách sử dụng hệ thống định vị vệ
tinh.
• Đối tượng định kì cập nhập vị trí bằng thông tin nhận được từ các vệ tinh
(phương pháp tam giác).
An active transponder object
Một quy trình thiết kế hướng đối tượng

• Các quy trình thiết kế có cấu trúc bao gồm việc phát triển một loạt các
mô hình hệ thống.
• Việc này đòi hỏi nhiều công sức phát triển và bảo trì các mô hình này,
và có thể không hiệu quả về chi phí đối với các hệ thống nhỏ.
• Tuy nhiên, với các hệ thống lớn do các nhóm khác nhau cùng phát
triển, các mô hình hệ thống lại là một cơ chế giao tiếp quan trọng.
Các giai đoạn của quy trình

• Đánh dấu các hoạt động quan trọng mà không bị phụ thuộc vào bất cứ
một quy trình có bản quyền nào (chẳng hạn RUP).
• Xác định ngữ cảnh và các hình thức sử dụng hệ thống;
• Thiết kế kiến trúc hệ thống;
• Xác định các đối tượng quan trọng của hệ thống;
• Phát triển các mô hình thiết hế;
• Đặc tả giao diện đối tượng.
Miêu tả hệ thống thời tiết
A weather mapping system is required to generate
weather maps on a regular basis using data collected
from remote, unattended weather stations and other data
sources such as weather observers, balloons and
satellites. Weather stations transmit their data to the area
computer in response to a request from that machine.

The area computer system validates the collected data


and integrates it with the data from different sources. The
integrated data is archived and, using data from this
archive and a digitised map database a set of local
weather maps is created. Maps may be printed for
distribution on a special-purpose map printer or may be
displayed in a number of different formats.
Ngữ cảnh hệ thống và mô hình sử dụng

• Các quan hệ giữa phần mềm đang được thiết kế và môi trường bên ngoài
• Ngữ cảnh hệ thống
• Một mô hình tĩnh mô tả các hệ thống khác trong môi trường.
• Dùng một mô hình hệ thống con (subsystem model) để mô tả các hệ thống khác.
• Mô hình sử dụng hệ thống
• Một mô hình động mô tả tương tác của hệ thống với môi trường.
• Dùng các use-case để mô tả các tương tác
Kiến trúc phân tầng
Tầng hiển thị dữ liệu, nơi các đối tượng
«subsystem» có nhiệm vụ chuẩn bị và trình bày dữ liệu
Data display
ở dạng con người đọc được

Tầng lưu trữ dữ liệu, nơi các đối tượng có


«subsystem»
Data archiving nhiệm vụ lưu trữ dữ liệu để phục vụ các
xử lý sau này

Tầng xử lý dữ liệu, nơi các đối tượng có


«subsystem»
Data processing
nhiệm vụ kiểm tra và tích hợp dữ liệu đã
thu thập được

«subsystem» Tầng thu thập dữ liệu, nơi các đối tượng có


Data collection nhiệm vụ thu thập dữ liệu từ các nguồn ở xa
Các hệ thống con trong hệ thống bản đồ thời tiết

«subsystem»
Data collection «subsystem»
Data display

Observer Satellite
User
User Map
inter
interface
face display
Comms

W eather Map
Map printer
station Balloon

«subsystem» «subsystem»
Data processing Data archiving

Data
Data
Data Data storage
storage
checking integ ration
Map store Data store
Các mô hình use-case
Các use-case cho
• Các mô hình use-case trạm thời tiết
dùng để biểu diễn từng Star tup
tương tác với hệ thống.
• Các hình e-líp biểu thị Shutdown
các chức năng của hệ
thống, hình người biểu Repor t
thị thực thể tương tác.
Calibrate
(chỉnh)

Test
Mô tả use-case
System Weather station
Use-case Report
Actors Weather data collection system, Weather station
Data The weather station sends a summary of the weather data that has been
collected from the instruments in the collection period to the weather data
collection system. The data sent are the maximum minimum and average
ground and air temperatures, the maximum, minimum and average air
pressures, the maximum, minimum and average wind speeds, the total rainfall
and the wind direction as sampled at 5 minute intervals.
Stimulus The weather data collection system establishes a modem link with the weather
station and requests transmission of the data.
ResponseThe summarised data is sent to the weather data collection system
Comments Weather stations are usually asked to report once per hour but this frequency
may differ from one station to the other and may be modified in future.
Thiết kế kiến trúc

• Kiến trúc phân tầng thích hợp cho trạm thời tiết
• Tầng interface dành cho việc xử lý các liên lạc;
• Tầng thu thập dữ liệu quản lý các thiết bị;
• Tầng thiết bị thu thập dữ liệu.
• Thông thường không nên có nhiều hơn 7 thực thể trong một mô hình
kiến trúc.
Kiến trúc trạm thời tiết

Weather station

Manages all
«subsystem»
external
Interface
communications

Collects and
«subsystem»
summarises
Data collection
weather data

«subsystem» Package of
Instruments instruments for raw
data collections
Xác định các đối tượng

• Việc xác định các đối tượng (hoặc lớp đối tượng) là phần khó khăn
nhất của thiết kế hướng đối tượng.
• Không có 'công thức kì diệu' cho việc xác định đối tượng.
• Nó phụ thuộc vào kĩ năng, kinh nghiệm, và kiến thức miền ứng dụng của
người thiết kế hệ thống.
• Việc xác định đối tượng là một quy trình lặp đi lặp lại.
• Bạn khó có thể làm đúng ngay từ đầu.
Các cách xác định đối tượng

• Dùng phân tích ngữ pháp dựa trên miêu tả hệ thống bằng ngôn ngữ tự nhiên
(dùng trong phương pháp thiết kế hướng đối tượng Hood).
• Dựa trên những thứ hữu hình trong miền ứng dụng.
• Dùng cách tiếp cận hành vi và xác định các đối tượng dựa trên những gì
tham gia vào hành vi nào.
• Dùng phân tích dựa theo kịch bản.
• Xác định các đối tượng, thuộc tính và phương thức trong từng kịch bản.
Miêu tả trạm thời tiết
A weather station is a package of software controlled instruments which
collects data, performs some data processing and transmits this data for
further processing. The instruments include air and ground
thermometers, an anemometer, a wind vane, a barometer and a rain
gauge. Data is collected periodically.
Một trạm thời tiết là một package gồm các thiết bị do phần mềm điều
khiển, nó thu thập dữ liệu, xử lý một chút và truyền dữ liệu này đi để
được xử lý tiếp. Các thiết bị bao gồm: máy đo nhiệt độ không khí, máy
đo nhiệt độ đất, máy đo gió, chong chóng gió, khí áp kế, máy đo lượng
mưa. Dữ liệu được thu thập định kì.
When a command is issued to transmit the weather data, the weather
station processes and summarises the collected data. The summarised
data is transmitted to the mapping computer when a request is received.
Khi nhận lệnh gửi dữ liệu thời tiết, trạm thời tiết xử lý và tổng hợp dữ liệu
đã thu thập được. Dữ liệu kết quả được gửi tới máy tính tạo bản đồ khi
nhận được yêu cầu.
Các lớp đối tượng trạm thời tiết

• Ground thermometer, Anemometer, Barometer


• Các đối tượng thuộc miền ứng dụng là các đối tượng 'phần cứng' liên quan đến các
thiết bị trong hệ thống.
• Weather station
• Giao diện cơ bản của trạm thời tiết với môi trường của nó. Do đó nó phản ánh các
tương tác được xác định trong mô hình use-case.
• Weather data
• Đóng gói dữ liệu đã được tổng hợp từ các thiết bị.
Các lớp đối tượng trạm thời tiết

WeatherStation WeatherData

identifier airTemper atures


groundT emper atures
repor tWeather ()
windSpeeds
calibrate (instruments)
windDirections
test ()
pressures
star tup (instruments)
rainf all
shutdown (instruments)
collect ()
summarise ()

Gr ound Anemomet er Bar omet er


thermomet er pressure
windSpeed
temper ature windDirection height
test () test ()
test ()
calibr ate () calibr ate ()
Các đối tượng khác và làm mịn đối tượng

• Dùng kiến thức về miền ứng dụng để xác định các đối tượng và thao tác khác
• Các trạm thời tiết nên có định danh riêng;
• Các trạm thời tiết thường đặt ở những nơi xa xôi nên các sự cố thiết bị phải được báo cáo tự
động. Do đó cần đến các thuộc tính và thao tác cho việc tự kiểm tra.
• Các đối tượng chủ động hoặc thụ động
• Trong trường hợp này, các đối tượng thụ động và thu thập dữ liệu theo yêu cầu thay vì tự chủ.
Nếu muốn có sự linh động thì sẽ cần đến thời gian xử lý của bộ điều khiển.
Các mô hình thiết kế

• Các mô hình thiết kế mô tả các đối tượng, lớp đối tượng và mối quan
hệ giữa các thực thể đó.
• Các mô hình tĩnh mô tả cấu trúc tĩnh của hệ thống bằng các lớp đối tượng và
quan hệ giữa chúng.
• Các mô hình động mô tả các tương tác động giữa các đối tượng.
Ví dụ về các mô hình thiết kế

• Mô hình hệ thống con mô tả sự phân nhóm lô-gic các đối tượng thành các hệ
thống con có tính gắn kết cao.
• Mô hình tuần tự mô tả trình tự các tương tác đối tượng.
• Sơ đồ trạng thái mô tả các đối tượng thay đổi trạng thái như thế nào để đáp ứng
các sự kiện.
• Các mô hình khác use-case models, aggregation models, generalisation models,
etc.
Các mô hình hệ thống con

• Miêu tả thiết kế được tổ chức thành các nhóm đối tượng có liên quan
đến nhau về lô-gic.
• Trong UML, các hệ thống con được thể hiện bằng các package – một
cấu trúc đóng gói. Đây chỉ là mô hình lô-gic, tổ chức thực tế của các
đối tượng trong hệ thống có thể không như vậy.
Weather station subsystems
«s u bs y s tem» «s u bs y s tem»
Inter face Data collectio n

Co mms Co ntro ller Weath erData

Ins tru men t


Weath erStation Statu s

«s u bs y s tem»
Ins tru men ts

Air
th ermo meter RainGau ge An emometer

Grou nd
th ermo meter Barometer Wind Vane
Các mô hình tuần tự

• Các mô hình tuần tự mô tả trình tự của các tương tác xảy ra giữa các đối tượng
• Các đối tượng xếp thành 1 hàng ngang trên đỉnh;
• Thời gian được biểu diễn theo chiều dọc, mô hình được đọc từ trên xuống dưới;
• Các tương tác được biểu thị bằng các mũi tên có nhãn. Các dạng mũi tên khác
nhau đại diện cho các loại tương tác khác nhau;
• Hình chữ nhật mỏng trong khoảng thời gian sống của một đối tượng đại diện cho
khoảng thời gian mà đối tượng đó là đối tượng giữ vai trò kiểm soát hệ thống.
Biểu đồ tuần tự thu thập dữ liệu

:CommsController :WeatherStation :WeatherData

request (repor t)

acknowledge ()
repor t ()
summarise ()

send (repor t)
reply (repor t)

acknowledge ()
Sơ đồ trạng thái

• Minh họa cách các đối tượng phản ứng với các yêu cầu dịch vụ
khác nhau và việc chuyển trạng thái được kích hoạt bởi các yêu
cầu đó
• Nếu trạng thái của đối tượng là Shutdown thì nó đáp ứng một thông
điệp Startup();
• Trong trạng thái waiting, đối tượng đang đợi các thông điệp tiếp theo;
• Nếu reportWeather () thì hệ thống chuyển sang trạng thái tổng hợp
(summarising state);
• Nếu calibrate () thì hệ thống chuyển sang trạng thái điều chỉnh
(calibrating);
• Hệ thống vào trạng thái collecting khi nhận được một tín hiệu đồng hồ.
Sơ đồ trạng thái trạm thời tiết
Operation calibrate ()
Calibrating

calibration OK

star tup () test ()


Waiting Testing
Shutdown

shutdown () transmission done test complete

T ransmitting
clock collection
done repor tW eather ()
weather summary
complete
Summarising
Collecting
Đặc tả giao diện đối tượng

• Các giao diện đối tượng phải được đặc tả để các đối tượng và các thành phần khác
có thể được thiết kế song song.
• Người thiết kế cần tránh thiết kế biểu diễn giao diện (interface representation) mà
nên giấu nó trong chính đối tượng.
• Các đối tượng có thể có vài giao diện, đó là các viewpoint dựa trên các phương
thức được cung cấp.
• UML dùng biểu đồ lớp để đặc tả giao diện hoặc có thể dùng cả Java.
Giao diện trạm thời tiết
interface WeatherStation {
public void WeatherStation();
public void startup();
public void startup(Instrument i);
public void shutdown();
public void shutdown(Instrument i);
public void reportWeather();
public void test();
public void test(Instrument i);
public void calibrate(Instrument i);
public int getID();
} //WeatherStation
Tiến hóa thiết kế

• Che dấu thông tin ở bên trong các đối tượng có nghĩa là các thay đổi
đối với đối tượng không ảnh hưởng tới các đối tượng khác một cách
không đoán trước được.
• Giả sử các thiết bị đo ô nhiễm được bổ sung cho các trạm thời tiết. Các
thiết bị này lấy mẫu không khí và tính lượng các chất ô nhiễm trong
không khí.
• Số liệu về tình trạng ô nhiễm được gửi cùng dữ liệu thời tiết.
Các thay đổi cần thiết

• Thêm lớp đối tượng AirQuality vào thành một phần của
WeatherStation.
• Thêm thao tác reportAirQuality vào WeatherStation. Sửa phần mềm
điều khiển để thu thập số liệu ô nhiễm.
• Thêm các đối tượng đại diện cho các thiết bị đo độ ô nhiễm.
Pollution monitoring
Weath erStation
Air qu ality
iden tifier
NOData
rep or tWeath er () s mok eData
rep or tAirQu ality () ben zeneData
calibrate (in s truments )
tes t () collect ()
s tartup (ins tru ments) s ummaris e ()
s hu td own (in stru ments)

Pollu tio n mon ito rin g in s truments

NOmeter Smo keM eter

BenzeneM eter
Tổng kết

• OOD là cách tiếp cận đối với thiết kế sao cho các thành phần thiết kế có
trạng thái riêng và các thao tác riêng.
• Các đối tượng nên có constructor và các thao tác kiểm tra.
• Cung cấp dịch vụ cho các đối tượng khác.
• Các đối tượng có thể được cài đặt lần lượt hoặc song song.
• Ngôn ngữ UML cung cấp các kí pháp khác nhau để định nghĩa các mô hình
đối tượng khác nhau.
Tổng kết

• Quy trình OOD dùng đến một loạt các mô hình khác nhau.
• Trong đó có các mô hình hệ thống tĩnh và động.
• Các giao diện đối tượng nên được định nghĩa chính xác, chẳng hạn
bằng cách sử dụng một ngôn ngữ lập trình như Java.
• Thiết kế hướng đối tượng có tiềm năng đơn giản hóa việc tiến hóa hệ
thống.
Software Design Approaches
Nội dung bài học

Các vấn đề thiết kế hệ thống

Qui trình thiết kế hệ thống phần mềm

Thiết kế phần mềm theo phương pháp hướng đối tượng


Các vấn đề thiết kế hệ thống
• Thiết kế hệ thống thời gian thực là một nhiệm vụ đầy thử thách. Hầu
hết các khó khăn đều xuất phát từ thực tế do hệ thống thời gian thực
tương tác với các thực thể thế giới thực.
• Ví dụ: một hệ thống chuyển mạch điện thoại thường xuyên xử lý các
cuộc gọi từ hàng chục ngàn thuê bao.
Các vấn đề cần quan tâm (tt)

Đáp ứng thời gian thực

Phục hồi khi bị lỗi

Làm việc với kiến trúc phân tán

Truyền thông bất đồng bộ

Tình trạng tranh đua và định thời


Đáp ứng thời gian thực
• Đáp ứng các tương tác bên ngoài trong một khoảng thời gian định
trước.
• Hoạt động chính xác và kịp thời của hệ thống.
• Thiết kế phần cứng và phần mềm trong hệ thống là để đáp ứng yêu cầu
thời gian thực
Đáp ứng thời gian thực (tt)
• Ví dụ: một hệ thống chuyển mạch điện thoại nhận số quay pulse
đến từ hàng ngàn thuê bao trong một giới hạn định trước của mức
1 giây.
• Hệ thống này phải đáp ứng các yêu cầu cho tất cả các cuộc gọi
được thiết lập tại bất kỳ thời gian nào.
Đáp ứng thời gian thực (tt)
• Kiến trúc phù hợp?
• Tốc độ kết nối có phù hợp?
• Các thành phần xử lý đủ mạnh?
• Hệ điều hành phù hợp?
Phục hồi khi bị lỗi
• Hệ thống thời gian thực phải hoạt động tin cậy ngay cả trong
trường hợp bị lỗi.
• Những lỗi này có thể xuất phát từ nội bộ hoặc từ bên ngoài.
• Lỗi nội bộ
• Lỗi ngoài
Lỗi nội bộ
• Lỗi nội bộ có thể là do phần cứng và phần mềm hệ thống bị lỗi.
• Các loại lỗi:
a) Lỗi phần mềm trong một tác vụ
b) Khởi động lại bộ xử lý
c) Lỗi mạch
d) Lỗi kết nối
Lỗi ngoài
• Hệ thống thời gian thực phải làm việc trong thế giới thực.
• Vì vậy, nó phải có khả năng phục hồi từ lỗi trong môi trường bên
ngoài.
a) Hành vi của các thực thể bên ngoài không hợp lệ
b) Lỗi kết nối
Thiết kế kiến trúc phân tán
• Hầu hết các hệ thống thời gian thực liên quan đến việc xử lý trên các
nút khác nhau.
• Bản thân hệ thống phân phối công việc xử lý giữa các bộ vi xử lý này.
Thiết kế kiến trúc phân tán (tt)
• Duy trì tính nhất quán:
Duy trì tính thống nhất cấu trúc dữ liệu là một thách thức khi nhiều bộ
xử lý được tham gia vào việc thực hiện chức năng xử lý. Nhất quán
thường được duy trì bằng cách chạy kiểm tra cấu trúc dữ liệu.
• Khởi tạo hệ thống: Khởi tạo một hệ thống với nhiều bộ xử lý phức tạp
hơn rất nhiều so với một máy tính duy nhất.
• Giao tiếp giữa các bộ xử lý: Một trong những vấn đề đau đầu nhất
trong các hệ thống thời gian thực là xác định và duy trì giao tiếp.
Thiết kế kiến trúc phân tán (tt)
• Phân bố tải: Khi nhiều bộ xử lý và các liên kết trao đổi thông tin cho
nhau thì việc phân phối tải là một nhiệm vụ khó khăn.
• Phân bổ nguồn lực tập trung: Hệ thống phân tán được chạy trên
nhiều bộ xử lý, nhưng chúng phải chia sẻ chung nguồn tài nguyên.
Truyền thông bất đồng bộ
• Các cuộc gọi thủ tục từ xa (Remote procedure calls RPC) được sử
dụng trong các hệ thống máy tính để đơn giản hóa việc thiết kế phần
mềm.
• Sự linh động này được đưa ra với những vấn đề phức tạp riêng của nó,
cho nên người thiết kế phải hết sức chú ý các vấn đề liên quan.
Tranh đua và định thời
• Thiết kế hệ thống thời gian thực quan trọng nhất là thời gian.
• Tất cả các giao thức đều nhấn mạnh đến tầm quan trọng của thời gian.
• Tất cả các bước trong một giao thức được mô tả với các đặc điểm kỹ
thuật chính xác thời gian cho từng giai đoạn.
Tranh đua và định thời (tt)
• Tình trạng tranh đua xảy ra khi trạng thái của một tài nguyên phụ
thuộc vào các yếu tố thời gian và không thể dự đoán.
• Vấn đề chính ở đây là xác định tình trạng tranh đua?
Qui trình thiết kế phần mềm
Nội dung

Các mô hình quy trình tổng quát

Lặp lại qui trình

Các hoạt động chung nhất của các quy trình

18
Quy trình phần mềm
• Quy trình phần mềm (software process) là một tập các hoạt động cần thiết để phát
triển một hệ thống phần mềm:
• Đặc tả - Specification;
• Thiết kế - Design;
• Thẩm định - Validation;
• Tiến hóa - Evolution.
• Một mô hình quy trình phần mềm là một biểu diễn trừu tượng của một quy trình.
• Một mô tả về một quy trình từ một góc độ nào đó.

19
Các mô hình quy trình tổng quát

• Mô hình thác nước – The waterfall model


• Tách biệt các pha đặc tả và phát triển.
• Phát triển tiến hóa – Evolutionary development
• Các hoạt động đặc tả, phát triển và thẩm định xen kẽ nhau.
• CNPM dựa thành phần – Component-based SE
• Hệ thống được lắp ráp từ các thành phần sẵn có.
• Có nhiều biến thể của các mô hình này (kết hợp các mô hình khác nhau)
• v.d. hoạt động phát triển dùng quy trình kiểu thác nước nhưng hoạt động đặc tả được làm
mịn qua nhiều bước cho đến khi đạt được một thiết kế cài đặt được.

20
Mô hình thác nước
Requirements
definition

System and
software
design

Implementation
and unit testing

Integration
and system
testing
Operation
and
maintenance

21
Các pha trong mô hình thác nước

• Phân tích và định nghĩa yêu cầu


• Thiết kế hệ thống và phần mềm
• Cài đặt và kiểm thử đơn vị
• Tích hợp và kiểm thử hệ thống
• Vận hành và bảo trì

Nhược điểm chính của mô hình thác nước là khó khăn của việc
sửa đổi sau khi quy trình đã vào guồng. Pha này phải được hoàn
tất trước khi bước vào pha tiếp theo.

22
Các vấn đề của mô hình thác nước

• Khó đáp ứng việc khách hàng thay đổi yêu cầu.
• do việc phân dự án thành các giai đoạn tách biệt
• Chỉ thích hợp khi các yêu cầu được hiểu rõ và ít có thay đổi trong quy trình phát
triển.
• Ít hệ thống doanh nghiệp có các yêu cầu ổn định ít thay đổi theo thời gian.
• Chủ yếu dùng cho các dự án hệ thống lớn, khi một hệ thống được phát triển tại
các địa điểm khác nhau.

23
Phát triển tiến hóa
• Phát triển thăm dò (exploratory development)
• Mục đích là làm việc với khách hàng và từng bước phát triển (evolve) từ một
đặc tả sơ lược ban đầu tới một hệ thống là sản phẩm cuối cùng.
• nên bắt đầu từ một bộ yêu cầu được hiểu rõ và bổ sung các tính năng mới khi khách hàng
đề xuất.

• Các phiên bản thử nghiệm dùng tạm (throw-away prototyping)


• Mục đích để hiểu các yêu cầu hệ thống.
• nên bắt đầu từ bộ yêu cầu không được hiểu rõ để có thể làm rõ đâu là cái thực sự được
yêu cầu.

24
Phát triển tiến hóa
Các hoạt động
song song

Specification Initial version

Mô tả sơ lược Intermediate
outline Development Intermediate
Intermediate
version
version
description version

Final version
Validation

25
Phát triển tiến hóa
• Vấn đề
• Tính quy trình không thể hiện rõ ràng;
• Các hệ thống thường được cấu trúc tồi;
• Đòi hỏi các kỹ năng đặc biệt
• ví dụ kĩ năng dùng các ngôn ngữ cho việc xây dựng cấp tốc các phiên bản thử nghiệm
(rapid prototyping)

• Ứng dụng
• cho các hệ thống kích thước nhỏ và trung bình;
• Cho một số phần nào đó của hệ thống lớn (chẳng hạn giao diện người dùng);
• cho các hệ thống chỉ dùng trong thời gian ngắn.
26
Dựa thành phần

• dựa trên việc tái sử dụng một cách có hệ thống


• các hệ thống được tích hợp từ các thành phần có sẵn hoặc các hệ thống COTS
(Commercial-off-the-shelf – sẵn sàng để người dùng mua về cài vào máy)
• Các pha trong quy trình
• Phân tích thành phần (component analysis);
• Sửa yêu cầu (requirements modification);
• Thiết kế hệ thống trong đó tái sử dụng;
• Phát triển và tích hợp.
• Cách tiếp cận này ngày càng được sử dụng nhiều, khi các chuẩn thành phần đã bắt
đầu xuất hiện.

27
Hướng đến tái sử dụng

Requirement Component Requirement


specification analysis modification

Development
System design System
and
with reuse validation
integration

28
Lặp lại qui trình
• Các yêu cầu hệ thống LUÔN LUÔN thay đổi.
• Việc lặp lại có thể được áp dụng cho bất kì mô hình quy trình tổng
quát nào.
• Hai cách tiếp cận (có liên quan)
• Chuyển giao tăng dần – Incremental delivery;
• Phát triển kiểu xoắn ốc – Spiral development.

29
Chuyển giao tăng dần

• Việc chuyển giao được chia thành các đợt.


• Gắn độ ưu tiên cho các yêu cầu, các yêu cầu có độ ưu tiên cao nhất cần được
đáp ứng ngay từ các đợt đầu tiên
• Một khi hoạt động phát triển cho một đợt đã bắt đầu, bộ yêu cầu dùng được
đóng băng, các thay đổi đối với yêu cầu được dành cho đợt sau.

30
Phát triển tăng dần

Define Assign
Design system
outline requirements
architecture
requirement to increments

Develop
Validate Integrate Validate
system
increment increment system
increment

System incomplete
Final
system

31
Ưu điểm

• Khách hàng sớm được bàn giao sản phẩm dùng


được (theo từng phần).
• Các đợt đầu đóng vai trò phiên bản thử nghiệm
(prototype) để hỗ trợ việc làm rõ bộ yêu cầu
cho các đợt sau.
• Rủi ro thấp đối với thất bại toàn bộ dự án.
• Các dịch vụ hệ thống có ưu tiên cao nhất có xu
hướng được kiểm thử nhiều nhất.

32
Phát triển kiểu xoắn ốc

• Quy trình được biểu diễn dưới dạng xoắn ốc thay


vì một chuỗi các hoạt động với các bước quay
lui.
• Mỗi vòng trong đường xoắn ốc đại diện cho một
pha trong quy trình.
• Không có các pha cố định như pha đặc tả hay
pha thiết kế - các vòng xoắn được lựa chọn tùy
theo nhu cầu.

33
Mô hình xoắn ốc
Xác định mục tiêu,
Đánh giá các lựa chọn,
các lựa chọn khác,
xác định và giải quyết
và các ràng buộc phân tích
rủi ro các rủi ro
phân tích
rủi ro
phân tích
Operational
rủi ro
prototype
Prototype 3
phân tích
Prototype 2
rủi ro

REVIEW Prototype 1

Requirements plan Simulation, models, benchmarks


Life-cycle plan Concept of
Operation W/S
requirements
Product Detailed
Requirement design design
Development
plan validation Code
Test
Unit test
Integration and design
Integration
Phát triển, kiểm định
Test plan
Lập kế hoạch Acceptance test sản phẩm của mức
pha tiếp theo Service
test tiếp theo
34
Các phân khu trong mô hình xoắn ốc

• Đặt mục tiêu


• xác định các mục tiêu cụ thể của pha.
• Đánh giá và giảm rủi ro
• đánh giá các rủi ro và sắp xếp các hoạt động để giảm các rủi ro chính yếu.
• Phát triển và thẩm định
• Chọn một mô hình phát triển cho hệ thống, đây có thể là một trong các mô hình
tổng quát.
• Lập kế hoạch
• Review dự án và lập kế hoạch cho pha tiếp theo của đường xoắn ốc.

35
Các hoạt động chung nhất

Đặc tả
Thiết kế và cài đặt
Thẩm định
Tiến hóa

36
Đặc tả yêu cầu phần mềm

• Quy trình thiết lập danh sách các dịch vụ được yêu cầu và các ràng buộc đối
với hoạt động của hệ thống và việc phát triển hệ thống.
• Quy trình kĩ nghệ yêu cầu
• Nghiên cứu tính khả thi – Feasibility study;
• Thu thập và phân tích yêu cầu – Requirements elicitation and analysis;
• Đặc tả yêu cầu – Requirements specification;
• Thẩm định yêu cầu – Requirements validation.

37
Quy trình kĩ nghệ yêu cầu

Requirements
Feasibility
elicitation &
study
analysis
Requirements
specification
Feasibility
report Requirements
validation
User and
System
system
models
requirements
Requirements
documents

38
Thiết kế và cài đặt phần mềm

• Quy trình biến đổi từ đặc tả hệ thống thành một hệ thống chạy được.
• Thiết kế phần mềm
• Thiết kế một cấu trúc phần mềm mà hiện thực hóa được đặc tả;
• Cài đặt
• Dịch cấu trúc đó thành một chương trình chạy được;
• Các hoạt động thiết kế và cài đặt có quan hệ chặt chẽ với nhau và có thể
xen kẽ.

39
Các hoạt động quy trình thiết kế

• Thiết kế kiến trúc – Architectural design


• Đặc tả trừu tượng – Abstract specification
• Thiết kế giao diện – Interface design
• Thiết kế thành phần – Component design
• Thiết kế cấu trúc dữ liệu – Data structure design
• Thiết kế thuật toán – Algorithm design

40
Quy trình thiết kế phần mềm

41
Lập trình và tìm lỗi
• là hoạt động dịch một thiết kế thành một chương trình
và loại bỏ lỗi trong chương trình đó.
• lập trình là một hoạt động cá nhân – không có quy
trình lập trình tổng quát.
• trong quy trình tìm lỗi (debugging process), lập trình
viên thực hiện việc kiểm thử chương trình để phát hiện
lỗi trong chương trình và loại bỏ các lỗi đó.

42
Thẩm định phần mềm

• Kiểm định (verification) và thẩm định (validation) nhằm chứng tỏ rằng


một hệ thống
• tuân theo đặc tả của nó, và
• thỏa mãn các yêu cầu của khách hàng hệ thống.
• Bao gồm các quy trình checking và review và kiểm thử hệ thống
(system testing).
• Việc kiểm thử bao gồm việc chạy hệ thống với các test case được dẫn xuất từ
đặc tả.

43
Tiến hóa hệ thống

Define Assess Propose


Modify
system existing system
systems
requirements systems changes

Existing New
systems system

44
Tiến hóa phần mềm
• Về mặt cố hữu, phần mềm có tính mềm dẻo và có thể thay đổi.
• Các yêu cầu thay đổi do sự biến đổi của các hoàn cảnh doanh nghiệp,
phần mềm hỗ trợ doanh nghiệp cũng phải tiến hóa và thay đổi theo.
• Tuy đã có một ranh giới giữa phát triển và tiến hóa (bảo trì), ranh giới
này ngày càng ít ý nghĩa khi ngày càng ít hệ thống hoàn toàn mới.

45
Thiết kế hướng đối tượng
Mục tiêu

• Thiết kế phần mềm kiểu hướng đối tượng được trình bày như là một
tập các đối tượng tương tác với nhau
• Các đối tượng tự quản lý trạng thái và các thao tác của mình
• Mô tả các hoạt động trong quy trình thiết kế hướng đối tượng
• Giới thiệu một số mô hình có thể dùng để mô tả một thiết kế hướng
đối tượng
• Minh họa cách trình bày các mô hình này bằng ngôn ngữ UML
Các chủ đề

Đối tượng và các lớp đối tượng

Một quy trình thiết kế hướng đối tượng

Tiến hóa thiết kế


Phát triển hướng đối tượng

• Phân tích (OOA), thiết kế (OOD) và lập trình hướng đối tượng (OOP) có quan hệ
với nhau nhưng không trùng nhau
• Phân tích hướng đối tượng nhằm phát triển một mô hình đối tượng của miền ứng dụng
• Thiết kế hướng đối tượng nhằm phát triển một mô hình hệ thống hướng đối tượng để thực thi
bộ các yêu cầu hệ thống
• Lập trình hướng đối tượng nhằm hiện thực hóa một thiết kế hướng đối tượng bằng cách sử
dụng một ngôn ngữ lập trình hướng đối tượng như Java hoặc C++
Đặc điểm của OOD

• Các đối tượng là các trừu tượng hóa của các thực thể trong thế giới thực hoặc các
thực thể hệ thống, chúng tự quản lý bản thân
• Các đối tượng có tính độc lập, chúng đóng gói trạng thái và các thao tác liên quan
• Các chức năng hệ thống được diễn đạt theo các dịch vụ đối tượng
• Loại bỏ các vùng dữ liệu dùng chung
• Các đối tượng liên lạc với nhau bằng cách truyền thông điệp
• Các đối tượng có thể phân tán tại các máy tính khác nhau và có thể thực thi tuần tự
hoặc song song
Các đối tượng tương tác
Ưu điểm của OOD

• Dễ bảo trì hơn.


• Có thể xem các đối tượng như là các thực thể độc lập (stand-alone).
• Các đối tượng là các thành phần tái sử dụng được về tiềm năng. Vì
chúng đóng gói độc lập trạng thái và thao tác
• Dễ mô hình hóa hơn
• Có thể có một ánh xạ dễ thấy từ các thực thế trong thế giới thực tới các thực
thể hệ thống.
Đối tượng và lớp đối tượng

• Đối tượng là thực thể trong một hệ thống phần mềm, nó đại diện cho
các thể hiện của các thực thể trong thế giới thực và thực thể hệ thống.
• Lớp đối tượng là các khuôn mẫu (template) cho các đối tượng.
• Dùng để tạo các đối tượng.
• Các lớp đối tượng có thể thừa kế các thuộc tính và dịch vụ từ các lớp
đối tượng khác.
Đối tượng và lớp đối tượng
Một đối tượng là một thực thể có một trạng thái (state)
và một tập xác định trước gồm các thao tác (operation)
mà chúng sẽ hoạt động trên trạng thái đó. Trạng thái
được đại diện bởi một tập các thuộc tính đối tượng. Các
thao tác gắn với một đối tượng cung cấp dịch vụ cho các
đối tượng khác (client). Khi cần tính toán, các đối tượng
client sẽ gọi các dịch vụ đó.

Các đối tượng được tạo theo một định nghĩa lớp đối
tượng. Một định nghĩa lớp đối tượng là template cho các
đối tượng. Nó bao gồm khai báo cho tất cả các thuộc tính
và dịch vụ gắn với mỗi đối tượng thuộc lớp đó.
The Unified Modeling Language

• Một số kí pháp khác nhau cho việc mô tả các thiết kế hướng đối tượng
đã được đề xuất trong các thập kỉ 1980 và 1990.
• Unified Modeling Language (UML) là một tích hợp của các kí pháp
này.
• Nó mô tả các kí pháp cho một loạt các mô hình khác nhau có thể được tạo ra
trong quá trình phân tích thiết hế hướng đối tượng.
• Nó hiện là một chuẩn không chính thức cho mô hình hóa hướng đối tượng.
Employee object class (UML)

Emplo yee

name: string
address: string
dateOfBir th: Date
employeeNo: integer
socialSecurityNo: string
depar tment: Dept
manager: Employee
salar y: integer
status: {current, left, retired}
taxCode: integer
. ..

join ()
leave ()
retire ()
changeDetails ()
Liên lạc giữa các đối tượng

• Về mặt khái niệm, các đối tượng liên lạc với nhau bằng cách truyền thông điệp.
• Các thông điệp (message)
• Tên của dịch vụ mà đối tượng gọi yêu cầu chạy;
• Bản sao của thông tin cần thiết để chạy dịch vụ và tên của nơi chứa kết quả của dịch vụ.
• Trong thực tiễn, các thông điệp thường được cài đặt bằng các lời gọi hàm
• tên = tên hàm;
• Thông tin = danh sách tham số.
Ví dụ về thông điệp

// Call a method associated with a buffer


// object that returns the next value
// in the buffer
v = circularBuffer.Get () ;

// Call the method associated with a


// thermostat object that sets the
// temperature to be maintained
thermostat.setTemp (20) ;
Tổng quát hóa và thừa kế

• Các lớp đối tượng có thể được sắp xếp trong một cấu trúc phân cấp
• Trong đó một lớp (một lớp cha) là một tổng quát hóa (generalisation) của một vài lớp
khác (lớp con).
• Một lớp con thừa kế các thuộc tính và thao tác của lớp cha của nó và có thể bổ sung các
phương thức mới hoặc thuộc tính mới của riêng nó.
• Quan hệ tổng quát hóa trong UML được cài bằng quan hệ thừa kế trong các ngôn ngữ
OOP.
phân cấp của một tổng quát hóa

Employee

Manager Programmer

budgetsControlled project
progLanguages
dateAppointed

Project Dept. Strategic


Manager Manager Manager

projects dept responsibilities


Ưu điểm của thừa kế

• Là một cơ chế trừu tượng hóa có thể dùng để phân lớp các thực thể.
• Là một cơ chế tái sử dụng ở cả hai mức thiết kế và lập trình.
• Đồ thị thừa kế là một nguồn cho kiến thức tổ chức về miền ứng dụng
và hệ thống.
Nhược điểm của thừa kế

• Các lớp đối tượng không độc lập tự chủ


• Không thể hiểu chúng mà không cần biết đến các lớp cha.
• Các nhà thiết kế có xu hướng tái sử dụng biểu đồ thừa kế đã được lập
trong pha phân tích.
• Có thể dẫn đến sự không hiệu quả đáng kể.
• Các biểu đồ thừa kế sản phẩm của phân tích, thiết kế và cài đặt có các
chức năng khác nhau và nên được duy trì ở trạng thái tách biệt.
UML association

• Đối tượng và các lớp đối tượng có quan hệ với các đối tượng và lớp khác.

Emp loy ee Depar tmen t


is -member-o f

is -manag ed-by

manages
M anager
Các đối tượng song song

• Về bản chất, các đối tượng có tính độc lập (self-contained). Do đó,
chúng phù hợp cho cài đặt song song.
• Mô hình truyền thông điệp của các đối tượng có thể được cài trực tiếp
nếu các đối tượng chạy trên các bộ vi xử lý khác nhau trong một hệ
phân tán.
Server và các đối tượng chủ động

• Server
• Đối tượng được cài như là một tiến trình song song (server) với các điểm vào
(entry point) tương ứng với các thao tác của object.
• Nếu không có lời gọi nào được thực hiện đối với object, nó tự vào trạng thái
nghỉ (suspend) và đợi các yêu cầu dịch vụ.
• Các đối tượng chủ động
• Các đối tượng được cài như là các tiến trình song song và trạng thái trong của
đối tượng có thể được thay đổi bởi chính đối tượng chứ không chỉ bởi các lời
gọi thao tác từ bên ngoài.
Active transponder object

• thuộc tính của các đối tượng chủ động có thể bị sửa đổi bởi các thao
tác kích hoạt từ ngoài nhưng cũng có thể được tự động cập nhật bởi
các thao tác bên trong
• Một đối tượng transponder gửi broadcast vị trí của một máy bay.
• Vị trí của máy bay có thể được cập nhật bằng cách sử dụng hệ thống định vị vệ
tinh.
• Đối tượng định kì cập nhập vị trí bằng thông tin nhận được từ các vệ tinh
(phương pháp tam giác).
An active transponder object
Một quy trình thiết kế hướng đối tượng

• Các quy trình thiết kế có cấu trúc bao gồm việc phát triển một loạt các
mô hình hệ thống.
• Việc này đòi hỏi nhiều công sức phát triển và bảo trì các mô hình này,
và có thể không hiệu quả về chi phí đối với các hệ thống nhỏ.
• Tuy nhiên, với các hệ thống lớn do các nhóm khác nhau cùng phát
triển, các mô hình hệ thống lại là một cơ chế giao tiếp quan trọng.
Các giai đoạn của quy trình

• Đánh dấu các hoạt động quan trọng mà không bị phụ thuộc vào bất cứ
một quy trình có bản quyền nào (chẳng hạn RUP).
• Xác định ngữ cảnh và các hình thức sử dụng hệ thống;
• Thiết kế kiến trúc hệ thống;
• Xác định các đối tượng quan trọng của hệ thống;
• Phát triển các mô hình thiết hế;
• Đặc tả giao diện đối tượng.
Miêu tả hệ thống thời tiết
A weather mapping system is required to generate
weather maps on a regular basis using data collected
from remote, unattended weather stations and other data
sources such as weather observers, balloons and
satellites. Weather stations transmit their data to the area
computer in response to a request from that machine.

The area computer system validates the collected data


and integrates it with the data from different sources. The
integrated data is archived and, using data from this
archive and a digitised map database a set of local
weather maps is created. Maps may be printed for
distribution on a special-purpose map printer or may be
displayed in a number of different formats.
Ngữ cảnh hệ thống và mô hình sử dụng

• Các quan hệ giữa phần mềm đang được thiết kế và môi trường bên ngoài
• Ngữ cảnh hệ thống
• Một mô hình tĩnh mô tả các hệ thống khác trong môi trường.
• Dùng một mô hình hệ thống con (subsystem model) để mô tả các hệ thống khác.
• Mô hình sử dụng hệ thống
• Một mô hình động mô tả tương tác của hệ thống với môi trường.
• Dùng các use-case để mô tả các tương tác
Kiến trúc phân tầng
Tầng hiển thị dữ liệu, nơi các đối tượng
«subsystem» có nhiệm vụ chuẩn bị và trình bày dữ liệu
Data display
ở dạng con người đọc được

Tầng lưu trữ dữ liệu, nơi các đối tượng có


«subsystem»
Data archiving nhiệm vụ lưu trữ dữ liệu để phục vụ các
xử lý sau này

Tầng xử lý dữ liệu, nơi các đối tượng có


«subsystem»
Data processing
nhiệm vụ kiểm tra và tích hợp dữ liệu đã
thu thập được

«subsystem» Tầng thu thập dữ liệu, nơi các đối tượng có


Data collection nhiệm vụ thu thập dữ liệu từ các nguồn ở xa
Các hệ thống con trong hệ thống bản đồ thời tiết

«subsystem»
Data collection «subsystem»
Data display

Observer Satellite
User
User Map
inter
interface
face display
Comms

W eather Map
Map printer
station Balloon

«subsystem» «subsystem»
Data processing Data archiving

Data
Data
Data Data storage
storage
checking integ ration
Map store Data store
Các mô hình use-case
Các use-case cho
• Các mô hình use-case trạm thời tiết
dùng để biểu diễn từng Star tup
tương tác với hệ thống.
• Các hình e-líp biểu thị Shutdown
các chức năng của hệ
thống, hình người biểu Repor t
thị thực thể tương tác.
Calibrate
(chỉnh)

Test
Mô tả use-case
System Weather station
Use-case Report
Actors Weather data collection system, Weather station
Data The weather station sends a summary of the weather data that has been
collected from the instruments in the collection period to the weather data
collection system. The data sent are the maximum minimum and average
ground and air temperatures, the maximum, minimum and average air
pressures, the maximum, minimum and average wind speeds, the total rainfall
and the wind direction as sampled at 5 minute intervals.
Stimulus The weather data collection system establishes a modem link with the weather
station and requests transmission of the data.
ResponseThe summarised data is sent to the weather data collection system
Comments Weather stations are usually asked to report once per hour but this frequency
may differ from one station to the other and may be modified in future.
Thiết kế kiến trúc

• Kiến trúc phân tầng thích hợp cho trạm thời tiết
• Tầng interface dành cho việc xử lý các liên lạc;
• Tầng thu thập dữ liệu quản lý các thiết bị;
• Tầng thiết bị thu thập dữ liệu.
• Thông thường không nên có nhiều hơn 7 thực thể trong một mô hình
kiến trúc.
Kiến trúc trạm thời tiết

Weather station

Manages all
«subsystem»
external
Interface
communications

Collects and
«subsystem»
summarises
Data collection
weather data

«subsystem» Package of
Instruments instruments for raw
data collections
Xác định các đối tượng

• Việc xác định các đối tượng (hoặc lớp đối tượng) là phần khó khăn
nhất của thiết kế hướng đối tượng.
• Không có 'công thức kì diệu' cho việc xác định đối tượng.
• Nó phụ thuộc vào kĩ năng, kinh nghiệm, và kiến thức miền ứng dụng của
người thiết kế hệ thống.
• Việc xác định đối tượng là một quy trình lặp đi lặp lại.
• Bạn khó có thể làm đúng ngay từ đầu.
Các cách xác định đối tượng

• Dùng phân tích ngữ pháp dựa trên miêu tả hệ thống bằng ngôn ngữ tự nhiên
(dùng trong phương pháp thiết kế hướng đối tượng Hood).
• Dựa trên những thứ hữu hình trong miền ứng dụng.
• Dùng cách tiếp cận hành vi và xác định các đối tượng dựa trên những gì
tham gia vào hành vi nào.
• Dùng phân tích dựa theo kịch bản.
• Xác định các đối tượng, thuộc tính và phương thức trong từng kịch bản.
Miêu tả trạm thời tiết
A weather station is a package of software controlled instruments which
collects data, performs some data processing and transmits this data for
further processing. The instruments include air and ground
thermometers, an anemometer, a wind vane, a barometer and a rain
gauge. Data is collected periodically.
Một trạm thời tiết là một package gồm các thiết bị do phần mềm điều
khiển, nó thu thập dữ liệu, xử lý một chút và truyền dữ liệu này đi để
được xử lý tiếp. Các thiết bị bao gồm: máy đo nhiệt độ không khí, máy
đo nhiệt độ đất, máy đo gió, chong chóng gió, khí áp kế, máy đo lượng
mưa. Dữ liệu được thu thập định kì.
When a command is issued to transmit the weather data, the weather
station processes and summarises the collected data. The summarised
data is transmitted to the mapping computer when a request is received.
Khi nhận lệnh gửi dữ liệu thời tiết, trạm thời tiết xử lý và tổng hợp dữ liệu
đã thu thập được. Dữ liệu kết quả được gửi tới máy tính tạo bản đồ khi
nhận được yêu cầu.
Các lớp đối tượng trạm thời tiết

• Ground thermometer, Anemometer, Barometer


• Các đối tượng thuộc miền ứng dụng là các đối tượng 'phần cứng' liên quan đến các
thiết bị trong hệ thống.
• Weather station
• Giao diện cơ bản của trạm thời tiết với môi trường của nó. Do đó nó phản ánh các
tương tác được xác định trong mô hình use-case.
• Weather data
• Đóng gói dữ liệu đã được tổng hợp từ các thiết bị.
Các lớp đối tượng trạm thời tiết

WeatherStation WeatherData

identifier airTemper atures


groundT emper atures
repor tWeather ()
windSpeeds
calibrate (instruments)
windDirections
test ()
pressures
star tup (instruments)
rainf all
shutdown (instruments)
collect ()
summarise ()

Gr ound Anemomet er Bar omet er


thermomet er pressure
windSpeed
temper ature windDirection height
test () test ()
test ()
calibr ate () calibr ate ()
Các đối tượng khác và làm mịn đối tượng

• Dùng kiến thức về miền ứng dụng để xác định các đối tượng và thao tác khác
• Các trạm thời tiết nên có định danh riêng;
• Các trạm thời tiết thường đặt ở những nơi xa xôi nên các sự cố thiết bị phải được báo cáo tự
động. Do đó cần đến các thuộc tính và thao tác cho việc tự kiểm tra.
• Các đối tượng chủ động hoặc thụ động
• Trong trường hợp này, các đối tượng thụ động và thu thập dữ liệu theo yêu cầu thay vì tự chủ.
Nếu muốn có sự linh động thì sẽ cần đến thời gian xử lý của bộ điều khiển.
Các mô hình thiết kế

• Các mô hình thiết kế mô tả các đối tượng, lớp đối tượng và mối quan
hệ giữa các thực thể đó.
• Các mô hình tĩnh mô tả cấu trúc tĩnh của hệ thống bằng các lớp đối tượng và
quan hệ giữa chúng.
• Các mô hình động mô tả các tương tác động giữa các đối tượng.
Ví dụ về các mô hình thiết kế

• Mô hình hệ thống con mô tả sự phân nhóm lô-gic các đối tượng thành các hệ
thống con có tính gắn kết cao.
• Mô hình tuần tự mô tả trình tự các tương tác đối tượng.
• Sơ đồ trạng thái mô tả các đối tượng thay đổi trạng thái như thế nào để đáp ứng
các sự kiện.
• Các mô hình khác use-case models, aggregation models, generalisation models,
etc.
Các mô hình hệ thống con

• Miêu tả thiết kế được tổ chức thành các nhóm đối tượng có liên quan
đến nhau về lô-gic.
• Trong UML, các hệ thống con được thể hiện bằng các package – một
cấu trúc đóng gói. Đây chỉ là mô hình lô-gic, tổ chức thực tế của các
đối tượng trong hệ thống có thể không như vậy.
Weather station subsystems
«s u bs y s tem» «s u bs y s tem»
Inter face Data collectio n

Co mms Co ntro ller Weath erData

Ins tru men t


Weath erStation Statu s

«s u bs y s tem»
Ins tru men ts

Air
th ermo meter RainGau ge An emometer

Grou nd
th ermo meter Barometer Wind Vane
Các mô hình tuần tự

• Các mô hình tuần tự mô tả trình tự của các tương tác xảy ra giữa các đối tượng
• Các đối tượng xếp thành 1 hàng ngang trên đỉnh;
• Thời gian được biểu diễn theo chiều dọc, mô hình được đọc từ trên xuống dưới;
• Các tương tác được biểu thị bằng các mũi tên có nhãn. Các dạng mũi tên khác
nhau đại diện cho các loại tương tác khác nhau;
• Hình chữ nhật mỏng trong khoảng thời gian sống của một đối tượng đại diện cho
khoảng thời gian mà đối tượng đó là đối tượng giữ vai trò kiểm soát hệ thống.
Biểu đồ tuần tự thu thập dữ liệu

:CommsController :WeatherStation :WeatherData

request (repor t)

acknowledge ()
repor t ()
summarise ()

send (repor t)
reply (repor t)

acknowledge ()
Sơ đồ trạng thái

• Minh họa cách các đối tượng phản ứng với các yêu cầu dịch vụ
khác nhau và việc chuyển trạng thái được kích hoạt bởi các yêu
cầu đó
• Nếu trạng thái của đối tượng là Shutdown thì nó đáp ứng một thông
điệp Startup();
• Trong trạng thái waiting, đối tượng đang đợi các thông điệp tiếp theo;
• Nếu reportWeather () thì hệ thống chuyển sang trạng thái tổng hợp
(summarising state);
• Nếu calibrate () thì hệ thống chuyển sang trạng thái điều chỉnh
(calibrating);
• Hệ thống vào trạng thái collecting khi nhận được một tín hiệu đồng hồ.
Sơ đồ trạng thái trạm thời tiết
Operation calibrate ()
Calibrating

calibration OK

star tup () test ()


Waiting Testing
Shutdown

shutdown () transmission done test complete

T ransmitting
clock collection
done repor tW eather ()
weather summary
complete
Summarising
Collecting
Đặc tả giao diện đối tượng

• Các giao diện đối tượng phải được đặc tả để các đối tượng và các thành phần khác
có thể được thiết kế song song.
• Người thiết kế cần tránh thiết kế biểu diễn giao diện (interface representation) mà
nên giấu nó trong chính đối tượng.
• Các đối tượng có thể có vài giao diện, đó là các viewpoint dựa trên các phương
thức được cung cấp.
• UML dùng biểu đồ lớp để đặc tả giao diện hoặc có thể dùng cả Java.
Giao diện trạm thời tiết
interface WeatherStation {
public void WeatherStation();
public void startup();
public void startup(Instrument i);
public void shutdown();
public void shutdown(Instrument i);
public void reportWeather();
public void test();
public void test(Instrument i);
public void calibrate(Instrument i);
public int getID();
} //WeatherStation
Tiến hóa thiết kế

• Che dấu thông tin ở bên trong các đối tượng có nghĩa là các thay đổi
đối với đối tượng không ảnh hưởng tới các đối tượng khác một cách
không đoán trước được.
• Giả sử các thiết bị đo ô nhiễm được bổ sung cho các trạm thời tiết. Các
thiết bị này lấy mẫu không khí và tính lượng các chất ô nhiễm trong
không khí.
• Số liệu về tình trạng ô nhiễm được gửi cùng dữ liệu thời tiết.
Các thay đổi cần thiết

• Thêm lớp đối tượng AirQuality vào thành một phần của
WeatherStation.
• Thêm thao tác reportAirQuality vào WeatherStation. Sửa phần mềm
điều khiển để thu thập số liệu ô nhiễm.
• Thêm các đối tượng đại diện cho các thiết bị đo độ ô nhiễm.
Pollution monitoring
Weath erStation
Air qu ality
iden tifier
NOData
rep or tWeath er () s mok eData
rep or tAirQu ality () ben zeneData
calibrate (in s truments )
tes t () collect ()
s tartup (ins tru ments) s ummaris e ()
s hu td own (in stru ments)

Pollu tio n mon ito rin g in s truments

NOmeter Smo keM eter

BenzeneM eter
Tổng kết

• OOD là cách tiếp cận đối với thiết kế sao cho các thành phần thiết kế có
trạng thái riêng và các thao tác riêng.
• Các đối tượng nên có constructor và các thao tác kiểm tra.
• Cung cấp dịch vụ cho các đối tượng khác.
• Các đối tượng có thể được cài đặt lần lượt hoặc song song.
• Ngôn ngữ UML cung cấp các kí pháp khác nhau để định nghĩa các mô hình
đối tượng khác nhau.
Tổng kết

• Quy trình OOD dùng đến một loạt các mô hình khác nhau.
• Trong đó có các mô hình hệ thống tĩnh và động.
• Các giao diện đối tượng nên được định nghĩa chính xác, chẳng hạn
bằng cách sử dụng một ngôn ngữ lập trình như Java.
• Thiết kế hướng đối tượng có tiềm năng đơn giản hóa việc tiến hóa hệ
thống.

You might also like