1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Phân tích thiết kế hệ thống thời gian thực luận văn ths công nghệ thông tin 1 01 10

150 15 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 150
Dung lượng 1,82 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Và đây được gọi là tính đồng thời, các hệ thống máy tính sử dụng tính đồng thời để cải thiện thực thi và điều này hoàn toàn có thể thực hiện được trong cả các hệ thốngđơn và đa bộ xử lý.

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trang 2

MỤC LỤC

LỜI CAM ĐOAN 2

MỤC LỤC 3

DANH MỤC CÁC TỪ VIẾT TẮT 5

DANH MỤC CÁC BẢNG BIỂU 6

DANH MỤC CÁC HÌNH VẼ 8

MỞ ĐẦU 12

CHƯƠNG 1 - HỆ THỐNG THỜI GIAN THỰC 14

1.1 Hệ thống thời gian thực 14

1.1.1 Khái niệm 14

1.2.2 Phân loại 15

1.1.3 Đặc trưng 17

1.1.4 Xử lý thời gian thực 19

1.1.5 Ứng dụng 20

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

1.2.1 Định nghĩa về hệ điều hành thời gian thực 21

1.2.2 Một số đặc tính hiệu năng của hệ điều hành thời gian thực 22

1.2.3 Các dịch vụ và chức năng thời gian thực 23

1.2.4 Một số vấn đề cần quan tâm trong thiết kế hệ điều hành thời gian thực 24

1.2.5 Một số tiêu chuẩn liên quan đến hệ điều hành thời gian thực 28

1.2.6 Phân loại hệ điều hành thời gian thực 28

1.2.7 Một số hệ điều hành thời gian thực tiêu biểu 29

1.3 Nền tảng phần cứng 30

1.4 Ngôn ngữ lập trình cho hệ thống thời gian thực 31

1.4.1 Tổng quan về ngôn ngữ lập trình cho hệ thống thời gian thực 31

1.4.2 Các đặc điểm của ngôn ngữ lập trình thời gian thực 31

1.5 Truyền thông thời gian thực 32

1.5.1 Giới thiệu 32

1.5.2 Xử lý lời gọi RTC 32

1.5.3 Giao thức khởi tạo phiên SIP 33

1.5.4 Giao thức mô tả phiên SDP 45

1.5.5 Giao thức truyền thông thời gian thực 46

1.6 Cơ sở dữ liệu thời gian thực 52

1.6.1 Tổng quan 52

1.6.2 Duy trì tính nhất quán 52

Trang 3

1.6.3 Ràng buộc thời gian 53

1.6.4 Hệ quản trị cơ sở dữ liệu thời gian thực 53

1.7 Kết luận 54

CHƯƠNG 2 - NGÔN NGỮ MÔ HÌNH HOÁ UML 56

2.1 Giới thiệu 56

2.2 Kiến trúc của UML 58

2.3 Mô hình khái niệm của UML 59

2.3.1 Các khối xây dựng (building blocks 59

2.3.2 Các quy tắc của UML 67

2.3.3 Các kỹ thuật chung của UML 67

2.4 Kết luận 69

CHƯƠNG 3 - TIẾN TRÌNH ROPES 70

3.1 Giới thiệu 70

3.2 Các pha 73

3.2.1 Phân tích 73

3.2.2 Thiết kế 79

3.2.3 Cài đặt và kiểm thử đơn vị 82

3.2.4 Kiểm thử hệ thống 83

3.3 Kết luận 84

CHƯƠNG 4 - PHÂN TÍCH THIẾT KẾ HỆ THỐNG KIỂM SOÁT KHÔNG LƯU 85

4.1 Giới thiệu 85

4.1.1 Tại sao chọn hệ thống kiểm soát không lưu? 85

4.1.2 Mô tả hoạt động của hệ thống kiểm soát không lưu 85

4.2 Phân tích hệ thống 95

4.2.1 Các thuật ngữ 95

4.2.2 Phân tích yêu cầu 97

4.2.3 Phân tích cấu trúc 111

4.2.4 Phân tích hành vi 118

4.3 Thiết kế 119

4.4 Kết luận 123

KẾT LUẬN 124

TÀI LIỆU THAM KHẢO 125

Trang 4

DANH MỤC CÁC TỪ VIẾT TẮT

ARTCC Air Route Traffic Control Centers

ATCSCC Air Traffic Control System

Command Center

Rapid Object-Oriented Process Tiến trình phát triển hướng đốiROPES

Giao thức truyền thông thời gian

thực

TRACON Terminal Radar Approach Control

Trang 5

DANH MỤC CÁC BẢNG BIỂU

Trang 6

Bảng 4.7 Luồng sự kiện chính của ca sử dụng ―create the flight plan‖ 108Bảng 4.8 Luồng sự kiện chính ca sử dụng ―create flight progress trip‖ 110

Trang 7

Hình 1.8 Hệ điều hành thời gian thực mở rộng từ các hệ điều hành khác 29

Hình 1.10 Luồng sự kiện một phiên SIP trực tiếp giữa các user agent 35

Trang 9

Hình 3.1 Các pha và luồng công việc trong ROPES 71

kiểm soát viên mặt đất

Hình 4.5 Các hành lang khởi hành và tiếp cận giao thông phía Tây của 91

không gian TRACON khu vực cảng San Francisco

khu vực phía Đông sân bay

Hình 4.9 Các kiểm soát viên không lưu trong tháp điều khiển điều khiển 95

việc cất cánh, hạ cánh và giao thông trên mặt đất bằng radar vàcác công cụ trực quan

Hình 4.10 Biểu đồ ca sử dụng nhóm các ca sử dụng điều khiển trên đường 100

bay

Hình 4.11 Biểu đồ ca sử dụng nhóm các ca sử dụng quản lý cất và hạ cánh 100

Hình 4.14 Biểu đồ tuần tự hệ thống ca sử dụng ―Identify Aircraft‖ 106

Trang 10

Hình 4.16 Biểu đồ tuần tự hệ thống ca sử dụng ―create the flight plan‖ 108Hình 4.17 Biểu đồ lớp phân tích thực thi ca sử dụng ―Create Flight Plan‖ 109Hình 4.18 Biểu đồ tuần tự đối tượng ca sử dụng ―Create Flight Plan‖ 109Hình 4.19 Biểu đồ tuần tự hệ thống ca sử dụng ―create flight progress trip‖ 110Hình 4.20 Biểu đồ tuần tự đối tượng ca sử dụng ―create flight progress trip‖ 111

Trang 11

MỞ ĐẦU

Xã hội càng phát triển, công nghệ thông tin càng giữa vị trí quan trọng trong đờisống và kỹ thuật Cùng với xu hướng phát triển của công nghệ thông tin, việc xâydựng các hệ thống thời gian thực, đặc biệt là các hệ thống điều khiển trở thành một vấn

đề tất yếu, một nhu cầu cấp thiết

Không có hệ thống điều khiển nào có thể hoạt động bình thường nếu như nókhông đáp ứng được các yêu cầu về thời gian, bất kể là hệ thống điều khiển nhiệt độ,điều khiển áp suất, điều khiển lưu lượng hay điều khiển chuyển động Tất cả các hệthống điều khiển đều là các hệ thống thời gian thực

Hệ thống thời gian thực được ứng dụng phổ biến trong rất nhiều lĩnh vực, nhưthương mại, quân đội, y tế, giáo dục, cơ sở hạ tầng,… và hiện nay đang phát triển rấtmạnh mẽ

Hệ thống kiểm soát không lưu (Air Traffic Control System) là một ví dụ tiêu biểucho hệ thống thời gian thực bởi rất nhiều lý do Trước hết, hệ thống kiểm soát khônglưu là một ứng dụng quan trọng, phức tạp, phổ biến và có mặt ở hầu hết các nước trênthế giới Hơn nữa, hệ thống này mang đầy đủ các đặc trưng của một hệ thống thời gianthực Và cuối cùng, các bộ phận của hệ thống này có thể tách ra để minh họa cho các ýtưởng kỹ thuật khác nhau

Giao thông phát triển, số lượng máy bay tăng, số lượng các chuyến bay trongkhông phân một nước và giữa các nước tăng nhanh, do đó yêu cầu có hệ thống kiểmsoát không lưu hoạt động để điều khiển giao thông hàng không trở thành nhu cầukhông của riêng quốc gia nào

Mục tiêu của luận văn này là tìm hiểu các vấn đề về hệ thống thời gian thực,ngôn ngữ mô hình hoá UML, tiến trình phát triển phần mềm cho các hệ thống thờigian thực ROPES và sử dụng tiến trình này để phân tích thiết kế hệ thống kiểm soátkhông lưu

Luận văn được trình bày trong bốn chương với nội dung mỗi chương như sau:Chương 1 giới thiệu hệ thống thời gian thực: khái niệm, phân loại, đặc trưng, ứngdụng và các vấn đề thời gian thực liên quan như hệ điều phần thời gian thực, cơ sở dữ

Trang 12

Chương 4 tìm hiểu hệ thống kiểm soát không lưu, tầm quan trọng, hoạt động và

mô hình của một hệ thống kiểm soát không lưu, phân tích và thiết kế một hệ thốngkiểm soát không lưu đơn giản sử dụng tiến trình phát triển ROPES

Chắc chắn, luận văn còn có những thiếu sót trong nội dung cũng như trong trìnhbày Tác giả của luận văn rất mong nhận được sự đóng góp ý kiến của các thầy cô giáo

và của các anh/chị học viên

Trang 13

CHƯƠNG 1 - HỆ THỐNG THỜI GIAN THỰC

1.1 Hệ thống thời gian thực

1.1.1 Khái niệm

Trong các tài liệu cũng như trong thực tế, khái niệm thời gian thực và hệ thốngthời gian thực không phải lúc nào cũng được hiểu một cách thống nhất Nhiều ngườicho rằng, hệ thống thời gian thực là một hệ thống phải làm việc với yêu cầu thời gianrất nhanh (trong phạm vi một vài micro-giây gì đó), ví dụ các hệ thống điều khiển taymáy, điều khiển động cơ, Không ít ý kiến cho rằng, khái niệm thời gian thực luôngắn với các hệ nhúng và điều khiển thời gian thực là một vấn đề của riêng điều khiểnnhúng, tức là các giải pháp sử dụng vi điều khiển, Lại cũng có quan niệm cho rằngthời gian thực là thời gian tuyệt đối, hệ thống thời gian thực là một hệ thống có khảnăng làm việc với thời gian tuyệt đối theo giờ-phút-giây của ngày tháng Vậy chúng tanên hiểu như thế nào đây?

Một quan điểm được ủng hộ và trích dẫn nhiều nhất là của Stankovic [Sta96]:

“Hệ thống thời gian thực là hệ thống mà tính đúng đắn của nó không chỉ phụ thuộc vào các kết quả logic nó tạo ra mà còn phụ thuộc vào thời điểm các kết quả đó được tạo ra”.

Như vậy, hệ thống thời gian thực là một hệ thống mà sự hoạt động tin cậy của

nó không chỉ phụ thuộc vào sự chính xác của kết quả, mà còn phụ thuộc vào thời điểm

đưa ra kết quả, hệ thống có lỗi khi yêu cầu về thời gian không được thoả mãn.

Trong một bài báo nổi tiếng khác [Sta88], Stankovic cũng đã chỉ ra một số quanniệm sai lầm về khái niệm thời gian thực Ví dụ, khái niệm hệ thống thời gian thựckhô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ếumộ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ệ thống điều khiển vớichu kỳ trích mẫu 5ms, 6 ms, 7ms có được gọi là hệ thống thời gian thực hay không?

Trang 14

1.2.2 Phân loại

Về cơ bản, chương trình có tính thời gian thực phải có khả năng phản ứng lại các

sự kiện trong môi trường mà hệ thống làm việc trong khoảng thời gian nhất định chotrước Những hệ thống như vậy được gọi là hệ thống "điều khiển sự kiện" và có thểđược mô tả bằng thời gian trễ tính từ khi sự kiện xảy ra tới khi hệ thống có hoạt độngphản ứng lại sự kiện đó

Thời gian thực, mặt khác, đòi hỏi một giới hạn cao hơn về thời gian trễ, được gọi

là " thời hạn lập lịch" (scheduling deadline) hoặc gọi tắt là thời hạn Hệ thống thời gian

thực thường được phân thành hai loại: hệ thống thời gian thực cứng (hard real-time system) và hệ thống thời gian thực mềm (soft real- time system).

Hệ thống thời gian thực cứng là hệ thống mà các hành động của nó phải không

bao giờ được vi phạm các ràng buộc thời gian trong đó có thời hạn lập lịch, hệ thốngphải tiếp nhận và nắm bắt được thời hạn lập lịch của nó tại mọi thời điểm Hệ thống cólỗi hoặc sai sót trong việc tiếp nhận thời hạn sẽ gây ra các hậu quả rất nghiêm trọng,thiệt hại về vật chất, gây ảnh hưởng xấu đến sức khoẻ, đời sống của con người, thậmchí chết người Với hệ thống thời gian thực cứng, dữ liệu trễ là dữ liệu tồi Một ví dụ

về hệ thống thời gian thực cứng là hệ thống kiểm soát không lưu Trong hệ thống này,một phân phối đường bay, thời gian cất cánh, thời gian 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à hậu quả của nó khó mà lường trước được.Một ví dụ khác, máy hỗ trợ nhịp tim cho bệnh nhân khi phẫu thuật Thuật toán điềukhiển phụ thuộc vào thời gian nhịp tim của người bệnh, nếu thời gian này bị trễ, tínhmạng của người bệnh sẽ bị ảnh hưởng

Ngược lại, hệ thống thời gian thực mềm là hệ thống có các ràng buộc về thời

gian, tuy nhiên, trong trường hợp các ràng buộc này bị vi phạm, tức là thời gian trả lờicủa hệ thống vượt quá thời hạn đặt ra, hệ thống vẫn hoạt động được tiếp và kết quả nótạo ra bị giảm ―giá trị‖ theo một nghĩa nào đó Nói cách khác, những kết quả tạo rakhông đúng hạn tuy không hữu ích/không làm hài lòng người sử dụng bằng khi nóđược tạo ra đúng hạn nhưng vẫn được chấp nhận Chúng ta mong muốn hệ thống phảnứng lại các sự kiện trong thời gian cho phép nhưng không có gì thực sự nghiêm trọngxảy ra nếu hệ thống thỉnh thoảng bị trễ Lỗi về mặt thời gian có thể chỉ đơn giản là dẫnđến hậu quả giảm độ tin cậy của đối tượng đối với hệ thống mà không có hậu quả thêthảm nào khác xảy ra Mạng lưới thu ngân tự động của ngân hàng là ví dụ rõ nhất cho

hệ thống thời gian thực mềm Mạng rút tiền tự động ATM là hệ thống thời gian thực?Chẳng ai dám đánh cược cả Khi bạn đưa thẻ ATM vào máy, bạn mong là máy sẽ phản

Trang 15

ứng lại trong vòng 1 hay 2 giây Nhưng nếu nó lâu hơn thế, điều tồi tệ nhất có thể xảy

ra là bạn sốt ruột và thấy khó chịu vì cái máy đó

Ta có thể quan niệm hệ thống thời gian thực cứng là hệ thống phải thỏa mãn cácràng buộc cứng về thời gian - ràng buộc thời gian không được phép vi phạm Tương

tự, hệ thống thời gian thực mềm là hệ thống phải thỏa các ràng buộc mềm về thời gian

- ràng buộc thời gian được phép vi phạm, nhưng các vi phạm sẽ làm giảm giá trị củakết quả Một hệ thống có thể có cả các ràng buộc cứng lẫn ràng buộc mềm về thời gian

Trang 16

hơn, phần mềm thời gian thực phải thỏa mãn các khẳng định (assertion) thời gian,

khẳng định này bao gồm cả quan hệ đối với thời gian tuyệt đối và thời gian tương đối.Cách xác nhận đơn giản nhất và phổ biến nhất là một mốc tới hạn (thời hạn) - giới hạn

về thời gian tương đối hoặc tuyệt đối mà một tính toán phải hoàn thành Ví dụ, trong

hệ thống điều khiển robot, có thể có một thời hạn hoặc một giới hạn giữa thời gian mộtrobot đang di chuyển cảm thấy một vật cản trên đường đi và thời gian actuator, chẳnghạn bộ điều khiển chuyển hướng, được kích hoạt để di chuyển robot theo hướng antoàn hơn

Đặc trưng thứ hai của hệ thống thời gian thực là tính đồng thời (concurrency) 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ámsá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ơ Đa

số các hệ thống thời gian thực thực hiện một hoặc một tập nhỏ các nhiệm vụ mức cao

Sự thực thi các nhiệm vụ mức cao này yêu cầu đồng thời nhiều hoạt động mức thấphơn Và đây được gọi là tính đồng thời, các hệ thống máy tính sử dụng tính đồng thời

để cải thiện thực thi và điều này hoàn toàn có thể thực hiện được trong cả các hệ thốngđơn và đa bộ xử lý Các hệ thống gồm một bộ xử lý chỉ có thể thực hiện được mộtcông việc tại một thời điểm, chúng thực hiện chiến lược lập lịch để điều khiển khi cácnhiệm vụ thực thi Còn trong các hệ thống đa bộ xử lý, các bộ xử lý thực thi khôngđồng bộ, từng bộ xử lý riêng lẻ tạo lập một số luồng giả trùng hợp, chỉ một luồng đơn

có thể được thực hiện tại một thời điểm bất kỳ đã cho, nhưng các luồng hoạt động thayđổi theo một số chiến lược lập lịch Nhiều hệ thống cũng sử dụng tính đồng thời nhưmột mô hình để mô tả các hoạt động song song về mặt logic, ngay cả khi các hoạtđộng này được thực thi bằng cách xen kẽ từng hành động trên một bộ xử lý đơn Hơnnữa, các hệ thống thời gian thực cũng phải giải quyết tính đồng thời về vật lý vốn có

và các trùng hợp này là một bộ phận của thế giới thực mà hệ thống được kết nối Cáctín hiệu đến từ môi trường có thể đến đồng thời; tách rời theo quy luật tự nhiên và cáchành động đồng thời có thể được giám sát và điều khiển bởi một hệ thống máy tính

Trang 17

đơn; cần thiết phải biết thời điểm tín hiệu được nhận; và các tín hiệu ra có thể phảiđược phát tại thời điểm xấp xỉ với ràng buộc thời gian.

Thiết kế hệ thống trở nên đặc biệt khó khăn khi hệ thống là tổ hợp của các vấn đềtrùng hợp về thời gian Trong một bài báo minh họa các chương trình thời gian thực,Wirth77 đã định nghĩa một cách không hình thức mô hình độ phức tạp chương trình:mức đầu tiên hay mức thấp nhất của độ phức tạp phần mềm (mức có độ phức tạp nhỏnhất) là các chương trình tuần tự, mức tiếp theo là các đa chương trình tạo cảm giácsong song bởi các nhân tố thời gian (khử tính liên tục tai mức cao hơn), thực thi cácchương trình song song, mức cao nhất và có độ phức tạp lớn nhất là các chương trìnhthời gian thực

Đặc trưng thứ ba của các hệ thống thời gian thực là tầm quan trọng và ý nghĩa

của độ tin cậy (reliability) và dung thứ lỗi (fault tolerance) Độ tin cậy là độ đo mức độ

xảy ra lỗi của một hệ thống Hay nói một cách khác, độ tin cậy là xác suất hệ thốngthực thi hiệu quả trong một chu kỳ thời gian Khoảng chấp nhận lỗi liên quan đến việcnhận ra và xử lý lỗi Lỗi xảy ra có thể phải trả giá rất đắt và nguy hiểm, ví dụ, chếtngười, mất tiền… Tuy nhiên, không có một hệ thống nào là tuyệt đối đáng tin cậy vàlỗi luôn luôn là một phần của hệ thống Vì vậy, vấn đề quan trọng là tránh xảy ra lỗinếu có thể được bằng các kỹ thuật đáng tin cậy, thích hợp, …, với chi phí thấp hơn rấtnhiều so với chi phí cần đến khi lỗi xảy ra

Đặc trưng thứ tư của hệ thống thời gian thực là tính chuyên biệt Nếu như hầu hết

các hệ thống máy tính truyền thống được xây dựng để sử dụng cho các mục đíchchung, nghĩa là các hệ thống này thực hiện một vài ứng dụng trong cùng một khoảngthời gian và các ứng dụng này thường không được biết trước đối với các nhà thiết kế

hệ thống; thì các hệ thống thời gian thực thường là các ứng dụng đặc thù (application)

và độc lập, đơn lẻ (stand-alone), nghĩa là tất cả các phần mềm, kể cả hệ điều hành,

hoàn toàn phù hợp với ứng dụng cụ thể

Với các hệ thống thời gian thực, nhiều ứng dụng và cấu hình do một hoặc nhiềungười trực tiếp điều khiển và giám sát các hành vi của hệ thống, do đó, giao diệnngười máy phải được thiết kế rất cẩn thận để tránh các lỗi do con người tạo ra

Đặc trưng cuối cùng của hệ thống thời gian thực liên quan đến kiểm thử (testing)

và xác thực (certification) Vì chi phí liên quan đến lỗi cao, thật sự không khả thi khi

kiểm thử và gỡ lỗi các hệ thống trong các môi trường thực tế Thay vào đó, người taphải sử dụng mô phỏng, kiểm thử các hệ thống con, đặc tả cẩn thận, phân tích toàndiện các thiết kế, …, để phát hiện và xử lý lỗi

Trang 18

1.1.4 Xử lý thời gian thực

Xử lý thời gian thực là hình thức xử lý thông tin trong một hệ thống để đảm bảo

tính năng thời gian thực của nó Như vậy, xử lý thời gian thực cũng có các đặc điểmtiêu biểu nêu trên như tính bị động, tính nhanh nhạy, tính đồng thời và tính tiền định

Để có thể phản ứng với nhiều sự kiện diễn ra cùng một lúc, một hệ thống xử lý thờigian thực sử dụng các quá trình tính toán đồng thời

Quá trình tính toán là một tiến trình thực hiện một hoặc một phần chương trìnhtuần tự do hệ điều hành quản lý trên một máy tính, có thể tồn tại đồng thời với các quátrình khác kể cả trong thời gian thực hiện lệnh và thời gian xếp hàng chờ đợi thựchiện

Các hình thức tổ chức các quá trình tính toán đồng thời:

- Xử lý tương tranh: Nhiều quá trình tính toán chia sẻ thời gian xử lý thông tin của

một bộ xử lý

- Xử lý song song: Các quá trình tính toán được phân chia thực hiện song song trên

nhiều bộ xử lý của hệ thống máy tính

- Xử lý phân tán: Mỗi quá trình tính toán được thực hiện riêng trên một máy tính.

Trong các hình thức trên đây thì hình thức xử lý tương tranh có vai trò chủ chốt.Mặc dù hệ thống điều khiển có thể có nhiều trạm, và mỗi trạm có thể là một hệ đa vi

xử lý, số lượng các quá trình tính toán cần thực hiện thường bao giờ cũng lớn hơn sốlượng vi xử lý Trong khi một vi xử lý không thể thực hiện song song nhiều lệnh, nóphải phân chia thời gian để thực hiện xen kẽ nhiều nhiệm vụ khác nhau theo thứ tự tùytheo mức ưu tiên và phương pháp lập lịch

Trong các hệ thống điều khiển, khái niệm tác vụ (task) cũng hay được sử dụng

bên cạnh quá trình tính toán Có thể nói, tác vụ là một nhiệm vụ xử lý thông tin trong

hệ thống có thể thực hiện theo cơ chế tuần hoàn (periodic task) hoặc theo sự kiện(event task) Các dạng tác vụ qui định trong chuẩn IEC 61131-3 (ProgrammableControllers – Part3: Programming Languages) Ví dụ, một tác vụ thực hiện nhiệm vụđiều khiển cho một hoặc nhiều mạch vòng kín có chu kỳ trích mẫu giống nhau Hoặc,một tác vụ có thể thực hiện nhiệm vụ điều khiển logic, điều khiển trình tự theo các sựkiện xảy ra Tác vụ có thể thực hiện dưới dạng một quá trình tính toán duy nhất, hoặcmột dãy các quá trình tính toán khác nhau

Trang 19

1.1.5 Ứng dụng

Có thể nói, tất các các hệ thống điều khiển là hệ thời gian thực Ngược lại, một

số lớn các hệ thống thời gian thực là các hệ thống điều khiển Không có hệ thống điềukhiển nào có thể hoạt động bình thường nếu như nó không đáp ứng được các yêu cầu

về thời gian, bất kể là hệ thống điều khiển nhiệt độ, điều khiển áp suất, điều khiển lưulượng hay điều khiển chuyển động Một bộ điều khiển phải đưa ra được tín hiệu điềukhiển kịp thời sau một thời gian nhận được tín hiệu đo để đưa quá trình kỹ thuật vềtrạng thái mong muốn Một mạng truyền thông trong một hệ thống điều khiển có tínhnăng thời gian thực phải có khả năng truyền tin một cách tin cậy và kịp thời đối vớicác yêu cầu của các bộ điều khiển, các thiết bị vào/ra, các thiết bị đo và thiết bị chấphành Tính năng thời gian thực của một hệ thống điều khiển phân tán không chỉ phụthuộc vào tính năng thời gian thực của từng thành phần trong hệ thống, mà còn phụthuộc vào sự phối hợp hoạt động giữa các thành phần đó

Hệ thống thời gian thực được ứng dụng phổ biến trong rất nhiều lĩnh vực, nhưthương mại, quân đội, y tế, giáo dục, cơ sở hạ tầng,… và hiện nay đang phát triển rấtmạnh mẽ Ta có thể kể ra một số lĩnh vực ứng dụng tiêu biểu:

- Các hệ thống phương tiện như: xe ô tô, xe điện ngầm, máy bay, tàu hỏa, tàu thủy, …

- Hệ thống điều khiển giao thông trên đường cao tốc, không phận, đường ray, đường dành riêng cho tàu biển, …, ví dụ, hệ thống kiểm soát không lưu

- Hệ thống điều khiển trong các nhà máy: như nhà máy năng lượng, nhà máy hóa chất và các nhà máy sản xuất bia và nước uống có ga, …

- Hệ thống y tế như hệ thống chữa bệnh bằng bức xạ, giám sát bệnh nhân, phục hồi nhịp đập bình thường của tim

- Hệ thống vũ khí quân sự sử dụng trong quân đội tạo các vũ khí cháy nổ, hiệu chỉnh tín hiệu, …

- Hệ thống chế tạo sử dụng robot

- Hệ thống xử lý các luồng Video và Audio

Trang 20

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

Các hệ thống thông thường thường nhằm các mục tiêu: tính chính xác, tính hiệu

quả, năng lực thực hiện trung bình ở mức có thể chấp nhận được; trong khi đó các hệ

thống thời gian thực, một số tiêu chí được đề cao: tính chính xác, tính kịp thời, hoạt

động phải có tính nhất quán.

Hệ điều hành trong các hệ thống thời gian thực cũng có các chức năng giống nhưcác chức năng của hệ điều hành thông thường, điểm khác là các hệ điều hành thời gianthực phải có các đặc điểm thoả mãn các tiêu chí của các hệ thống thời gian thực

Yêu cầu đầu tiên đối với một hệ điều hành thời gian thực là khả năng dự đoán

trước (predictibility) Yêu cầu thứ hai là có thể nhận biết và điều khiển tất cả các thành phần hệ thống; trong các hệ điều hành truyền thống, phần lớn phần cứng và hệ

thống là ẩn hoặc khá trừu tượng đối với người sử dụng hoặc các nhà thiết kế ứng dụng;tuy nhiên người sử dụng các hệ điều hành thời gian thực phải truy cập và điều khiểnđược các hành vi của các thành phần hệ thống để bảo đảm tính tiên đoán được Yêu

cầu thứ ba nên đạt được đó là hệ điều hành thời gian thực nên là hệ thống mở, nghĩa là

hệ thống định nghĩa một tập các cơ chế mềm dẻo, phù hợp chứ không tập trung vàocác chiến lược cụ thể

Trước đây các ứng dụng thời gian thực thường đơn giản, được thiết kế và thựchiện trên các phần cứng đặc thù, ngày nay, các ứng dụng thời gian thực được sử dụngrộng rãi hơn và cũng phức tạp hơn rất nhiều Để có thể cung cấp được các hàm chứcnăng phức tạp, sự linh hoạt cao và độ tin cậy cho các ứng dụng thời gian thực thì cácứng dụng này không thể chạy trên các phần cứng đặc thù nữa, một hệ điều hành thờigian thực là một đòi hỏi cần thiết để có thể thoả mãn được các yêu cầu đó

1.2.1 Định nghĩa về hệ điều hành thời gian thực

Chuẩn POSIX 1003.1 định nghĩa: ―tính thời gian thực trong các hệ điều hànhthời gian thực: là khả năng của hệ điều hành có thể cung cấp cho các dịch vụ đòi hỏicác đáp ứng có yêu cầu ràng buộc về thời gian‖

Các ràng buộc về thời gian khác nhau trong các hệ thống tính toán khác nhau cóthể từ vài giây đến mức s Để có thể thoả mãn các đòi hỏi của các hệ thống thời gian

thực, một hệ điều hành thời gian thực cần phải: đơn giản, nhỏ gọn, tiên đoán được và

dự đoán được trường hợp xấu nhất Hệ điều hành cũng phân loại thành hệ điều hànhthời gian thực cứng và hệ điều hành thời gian thực mềm tương ứng với sự phân loạicác hệ thống thời gian thực

Trang 21

1.2.2 Một số đặc tính hiệu năng của hệ điều hành thời gian thực

Tính chất sống còn của một hệ điều hành thời gian thực là hệ điều hành sẽ đápứng thế nào đối với các sự kiện bên trong và bên ngoài để đáp ứng tính kịp thời và tính

tiên đoán được được phản ánh ra ngoài thông qua 2 thông số của hệ điều hành là: độ

trễ đáp ứng sự kiện (event latency) và độ lệch chu kỳ (periodic jitter), đây cũng là các

thông số cơ bản để đánh giá hệ điều hành là có tính thời gian thực Độ trễ đáp ứng sự

kiện là khoảng thời gian được tính từ khi sự kiện xảy ra đến khi sự kiện được xử lý bởi

những mã lệnh phục vụ đầu tiên Các sự kiện có thể sinh ra do các ngắt cứng hoặc từ các ngắt mềm tạo ra bởi chính hệ điều hành Độ trễ đáp ứng sự kiện được biểu diễn

trong Hình 1.3 Trong trường hợp do ngắt từ phần cứng, độ trễ là khoảng thời gian từkhi bị ngắt đến thời gian mà mã lệnh phục vụ ngắt đầu tiên được xử lý Trong trườnghợp hệ điều hành phát sinh ra các sự kiện thông qua các ngắt mềm, độ trễ là khoảngthời gian từ khi tín hiệu được phát ra đến khi mã lệnh đầu tiên của trình phục vụ ngắtmềm đó được xử lý

Độ trễ sự kiện

Độ trễ chu kỳ

Hình 1.3 Trễ đáp ứng sự kiện

Độ lệch chu kỳ là sự thay đổi của chu kỳ đáp ứng đối với các sự kiện xảy ra có

chu kỳ cố định Độ lệch chu kỳ được chỉ ra như trong Hình 1.4 Công việc xử lý lặp cóchu kỳ cố định (fixed cycle) này có trong hầu hết các thiết bị điều khiển có tích hợpchức năng lấy mẫu theo thời gian Các thuật toán điều khiển đưa ra các quyết định phụthuộc vào các mẫu này, nếu có sự xê dịch của các xử lý này thì các quyết định đưa ra

có thể tác động đến hệ thống không như yêu cầu mong muốn

Tính kịp thời và tính tiên đoán được là hai yêu cầu quan trọng nhất mà mỗi hệ

điều hành thời gian thực cần thoả mãn Tính kịp thời của hệ điều hành thường bị ảnhhưởng trực tiếp của phân hệ lập lịch, tính tiên đoán được lại bị ảnh hưởng của các yếutố: Các hoạt động ngắt, vào/ra, đồng bộ, truyền thông nội bộ (IPC), quản lý bộ nhớ và

cả phân hệ lập lịch

Trang 22

Chức năng quan trọng nhất là các chức năng truy cập và điều khiển thời gian

tương đối và tuyệt đối, ví dụ các thao tác độc lập và thiết lập đồng hồ, hoặc làm trễ

thời gian

Tập dịch vụ thứ hai là quản lý luồng và tiến trình, bao gồm các thao tác tạo và

khởi tạo, kích hoạt, và kết thúc các tác vụ thời gian thực

Tập dịch vụ thứ ba là các dịch vụ giải quyết ngoại lệ, các dịch vụ này cung cấp

các thao tác để tạo và thiết kế ngoại lệ, định nghĩa các phương thức giải quyết ngoại lệ

thích hợp

Các tiêu chuẩn quản lý thiết bị phần cứng thường không được chấp nhận đối với

các ứng dụng Tuy nhiên, các tiêu chuẩn này là cần đối với các hệ thống thời gian thực

để điều khiển và truy cập tới các bộ cảm biển (sensor), bộ điều khiển (controller), đồng

hồ (timer) và các thiết bị vào – ra truyền thống

Các dịch vụ mạng thời gian thực là các phần mềm thực hiện truyền thông Các cơ

chế và giao thức truyền thông có các ràng buộc dự đoán được và đáng tin cậy hơn

trong các hệ điều hành truyền thống – các thông báo phải được nhận đúng thời gian,

kể cả khi có lỗi phần cứng

Các dịch vụ tệp cũng cần được quan tâm Các tệp thời gian thực có thể được lưu

trũ trong bộ nhớ chính để tránh các vấn đề về truy cập và lỗi có thể có

Trang 23

1.2.4 Một số vấn đề cần quan tâm trong thiết kế hệ điều hành thời gian thực

1 Lập lịch (scheduling)

Việc lập lịch xảy ra dưới tác động của các ngắt cứng, các ngắt mềm hay do một

số sự kiện khác được quy định trước Nói chung, việc lập lịch trong một hệ điều hành

hướng tới một số mục tiêu: Tính công bằng trong chia sẻ tài nguyên, tính hiệu quả,

khả năng đáp ứng, giảm thiểu thời gian chờ xử lý, thông lượng cực đại, Tuy nhiên

không có bộ lập lịch nào thoả mãn đồng thời được các đòi hỏi trên, tuỳ theo mô trườngứng dụng mà bộ lập lịch sẽ ưu tiên mục tiêu nào đó Chẳng hạn mục tiêu một hệ điều

hành thông thường hướng tới là tính hiệu quả, sự chia sẻ tài nguyên công bằng và đạt

được thông lượng cao nhất Một hệ điều hành hướng đến các mục tiêu thời gian thực

lại coi tính hiệu quả, tính khả năng dự đoán trước (Predictability) và tính kịp thời (Timeliness) đóng vai trò quan trọng Với các hệ nhúng thì lại hướng đến mục tiêu gọn

nhẹ, tiêu thụ ít năng lượng Có rất nhiều thuật toán đánh lịch thời gian thực nhưng chỉ

một số trong số chúng được hỗ trợ bởi các hệ điều hành thời gian thực

Để tổ chức việc thực hiện các tác vụ được hiệu quả, một hệ điều hành thời gianthực cần các phương pháp lập lịch Trước hết, cơ chế lập lịch thực hiện cho các tác vụ

có thể được thực hiện theo hai cách:

- Lập lịch tĩnh: thứ tự thực hiện các tác vụ không thay đổi và được xác định trước

khi hệ thống đi vào hoạt động

- Lập lịch động: hệ điều hành xác định lịch sau khi hệ thống đã đi vào hoạt động.

Sau khi xác định được cơ chế lập lịch, hệ điều hành cần sử dụng một chiến lượclập lịch để áp dụng đối với từng tình huống cụ thể Có thể chọn một trong những cáchsau:

- FIFO (First In First Out): một tác vụ đến trước sẽ được thực hiện trước.

- Mức ưu tiên cố định/động: tại cùng một thời điểm, các tác vụ được đặt các mức

ưu tiên cố định hoặc có thể thay đổi nếu cần

- Chen hàng (Preemptive): chọn một tác vụ để thực hiện trước các tác vụ khác.

- Không chen hàng (Non-preemptive): các tiến trình được thực hiện bình thường

dựa trên mức ưu tiên của chúng

Việc tính mức ưu tiên của mỗi tiến trình được thực hiện theo một trong số các thuật toán sau:

Trang 24

- Ưu tiên theo tỷ xuất (Rate monotonic): tác vụ nào càng diễn ra thường xuyên

càng được ưu tiên

- Ưu tiên theo thời hạn: tác vụ nào càng gấp, có thời hạn cuối càng sớm càng

được ưu tiên

- Ưu tiên thời hạn cuối (Least laxity): tác vụ nào có tỷ lệ thời gian tính toán/thời

hạn cuối cùng (thời hạn) càng lớn càng được ưu tiên

Bên cạnh phương pháp lập lịch, cơ chế xử lý thời còn đặt ra nhiều vấn đề khác nữa như quản lý và đồng bộ hóa việc sử dụng tài nguyên, giao tiếp liên quá trình,

2 Ƣu tiên (priority)

Tác vụ nào sẽ được chọn để chạy tiếp theo? Đây là vấn đề bộ lập lịch cần giảiquyết căn cứ trên chính sách do người thiết kế hệ điều hành đặt ra Trong các hệ thốngđơn nhiệm đầu tiên, các công việc được xếp hàng xử lý tuần tự Trong các hệ thốngchia sẻ thời gian tiếp theo, thời gian được chia sẻ giữa các ứng dụng, mỗi ứng dụng sẽchiếm quyền điều khiển CPU trong một khoảng thời gian nhất định (timeslice) Trongthời gian dành cho mình, tác vụ có thể nhường quyền điều khiển cho tác vụ khác dophải đợi các truy xuất vào/ra chậm Ở đây, việc xếp lịch xử lý không có cơ chế ưu tiên,các công việc được đối xử như nhau

Khi việc lập lịch có tính đến sự ưu tiên nghĩa là công việc tiếp theo được chọnphụ thuộc vào tính chất của công việc đó Sự ưu tiên cũng dựa trên các nguyên tắc

khác nhau như: tác vụ đến trước sẽ được phục vụ trước; việc ngắn nhất được phục vụ

trước; việc có ưu tiên cao được phục vụ trước; việc có thời hạn gần nhất sẽ được phục

vụ trước Việc gán mức ưu tiên có thể tĩnh hoặc động

3 Đảo ƣu tiên (priority inversion)

Một tác vụ có mức ưu tiên cao có thể bị chặn lại khi nó đang chạy hoặc sẵn sàngchạy nhưng phải đợi việc sử dụng tài nguyên do các tác vụ có ưu tiên thấp khác đangkiểm soát (Hình 1.5), đây gọi là hiện tượng đảo ưu tiên

Để giải quyết trường hợp này, một số kỹ thuật được đưa vào như PIP (PriorityInheritance Protocol) và PCP (Priority Ceiling Protocol)

Trang 25

Đảo ƣu tiên

Hình 1.5 Ví dụ về đảo ƣu tiên

4 Sự đoạt quyền (preemtion)

Sự đoạt quyền được biểu diễn trong hình dưới Với các HĐH được thiết kếkhông hỗ trợ khả năng đoạt quyền (hay non-preemptive nhân), khi một tác vụ đangchạy ở chế độ nhân sẽ không thể bị dừng bởi các tác vụ nhân hay các tác vụ user khác,Sau ISR, tác vụ cũ tiếp tục chạy (Hình 1.6)

Tác vụ ưu tiên thấp

Tác vụ ưu tiên thấp

giải phóng CPU

ISR đặt trạng thái cho tác

vụ ưu tiên cao là ReadyTác vụ ưu tiên cao

Hình 1.6 Sự đoạt quyền: (a) không hỗ trợ

Trang 26

Tác vụ ưu tiên thấp

Tác vụ ưu tiên cao

ISR đặt tác vụ ưu tiên cao Thời gianvào trạng thái sẵn sàng

Hình 1.6 Sự đoạt quyền: (b) có hỗ trợ

Quá trình này diễn ra như sau: (1) Tác vụ có ưu tiên tháp đang xử lý thì có mộtngắt tới, (2) Nếu ngắt được phép, CPU dựa vào vector ngắt nhảy đến trình phục vụngắt ISR, (3) ISR xử lý sự kiện và chuyển tác vụ ưu tiên cao(sở hữu ngắt) sang trạngthái sẵn sàng chạy bằng cách xếp tác vụ vào run queue, (4) Sau phần xử lý của ISR,lệnh RTI (return from intertupt) được gọi và CPU tiếp tục công việc đang làm trướckhi xảy ra ngắt, (5) Các mã lệnh của tác vụ ban đầu tiếp tục được xử lý, (6) Khi tác vụnày kết thúc (hoặc hết time slice dành cho nó), bộ lập lịch sẽ chuyển quyền điều khiểncho tác vụ tiếp theo đang đợi, giả sử có ưu tiên thì tác vụ ưu tiên cao nhất sẽ được gọi

để xử lý, (7) Tác vụ mới có mức ưu tiên cao vừa được gọi sẽ xử lý các sự kiện đượcbáo bởi ISR trên đây Trong preemptive nhân, thủ tục lập lịch được gọi ngay sau ISRnên sẽ có cơ hội ưu tiên các tác vụ thời gian thực (Hình 1.6(b)) Cơ chế đánh lịch ở đây

là kết hợp của Round-Robin và Preemption và là cơ chế phổ biến trong các hệ điềuhành hiện nay Quá trình xử lý diễn ra như sau: (1) Tác vụ đang xử lý thì có một ngắttới, (2) Nếu ngắt được phép, CPU dựa vào vector ngắt nhảy đến trình phục vụ ngắtISR, (3) ISR xử lý sự kiện và chuyển tác vụ ưu tiên cao sang trạng thái sẵn sàng chạybằng cách xếp tác vụ vào run queue, (4) Sau phần xử lý của ISR, thủ tục đánh lịch củanhân được gọi, (5) Vì tác vụ sở hữu ngắt có ưu tiên cao nên tác vụ này sẽ được chạy(thay vì việc thực hiện lệnh RTI), (6) Khi tác vụ có ưu tiên cao này hoàn thành côngviệc, nó sẽ gọi một hàm hệ thống để chuyển vào trạng thái đợi sự kiện tiếp theo, (7)Nhân nhận thấy rằng đang còn tác vụ ưu tiên thấp đang đợi xử lý, nó sẽ phục hồi trạngthái các thanh ghi của tác vụ này và chuyển quyền cho nó tiếp tục chạy

Trang 27

1.2.5 Một số tiêu chuẩn liên quan đến hệ điều hành thời gian thực

Hệ điều hành thời gian thực rất đa dạng và thường gắn với các ứng dụng tươngđối cụ thể, chính vì vậy mà chúng được thiết kế theo các đòi hỏi có tính đặc thù theotừng ứng dụng hơn là tuân theo các chuẩn công khai IEEE và WSTAWG là hai trong

số các tổ chức chuẩn hoá liên quan đến thời gian thực Trong số hơn 30 chuẩn củaPOSIX, có một số chuẩn liên quan đến sự phát triển của các hệ thời gian thực:

IEEE1003.1b (realtime extenssion), 1003.1d (addition realtime extension), 1003.1j (advanced realtime extension) và 1003.21 (distributed realtime) Bên cạnh POSIX thì

các chuẩn của Bộ Quốc phòng Mỹ STAWG cũng đề cập đến

1.2.6 Phân loại hệ điều hành thời gian thực

1 Hệ điều hành thời gian thực thuần tuý

Đây là các hệ điều hành thời gian thực được thiết kế từ đầu mà không phải là sựsửa chữa hay mở rộng từ một hệ điều hành thời gian thực khác (Hình 1.7)

Ứng dụng thời gian thực

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

Phần cứng

Hình 1.7 Hệ điều hành thời gian thực thuần tuý

Các hệ điều hành thời gian thực này được thiết kế cho các đòi hỏi có tính đặc thù

và hướng đến đáp ứng thời gian thực một cách triệt để, cấu trúc bên trong hệ điều hànhthời gian thực này thường đơn giản nên giảm được overhead trong các phân chức năngcủa nhân nhưng các hệ điều hành thời gian thực này thường chức năng nghèo nàn, khóphát triển các ứng dụng và kém tương thích Các hệ điều hành thời gian thực thuộc loạinày như: eCos [40], Nucleus [41], pSOS [42], VxWork [25], QNX [27], OSE [43],Lyra Những bản thương mại của các hệ điều hành thời gian thực loại này có giá thànhrất cao

Trang 28

2 Hệ điều hành thời gian thực mở rộng từ các hệ điều hành khác

Đây không phải là một hệ điều hành thời gian thực được thiết kế hoàn chỉnh mà

nó là sự cải tiến từ các hệ điều hành khác để có tính đáp ứng thời gian thực Phần cải

tiến được thêm vào hệ điều hành và coi như một bộ phận của hệ điều hành (Hình 1.8)

Hình 1.8 Hệ điều hành thời gian thực là mở rộng của các hệ điều hành khác

Các hệ điều hành thời gian thực dạng này thường cho phép các ứng dụng thời

gian thực và không thời gian thực hoạt động đồng thời nên thường phong phú về chức

năng và có tính tương thích cao Tuy nhiên chức năng đáp ứng thời gian thực không

hoàn toàn triệt để, đòi hỏi nhiều tài nguyên CPU và bộ nhớ, overhead lớn Ví dụ về

các hệ điều hành thời gian thực loại này là RT-Linux [23], RTAI [10], Solaris,

Windows NT

Sự cải thiện các đặc tính của các hệ điều hành đa dụng theo hướng cải tiến các

tác vụ có thể làm trễ và làm giảm tải của một số tác vụ của nhân.

1.2.7 Một số hệ điều hành thời gian thực tiêu biểu

Có khá nhiều hệ điều hành thời gian thực trên thị trường, một số trong số chúng

là hệ điều hành thời gian thực thuần tuý, một số khác thuộc loại kia Hệ điều hành thời

gian thực được xem xét trên quan điểm khác nhau về năng lực, khả năng tương thích,

hỗ trợ người dùng Một số hệ điều hành thời gian thực nổi tiếng theo đánh giá của tạp

chí Real-Time Magazine: VxWorks của Windriver; Windows CE.NET của Microsoft;

QNX Neutrino RTOS; RTLinux, RTAI, Hệ điều thời gian thực có thể thực hiện

được theo hướng thiết kế từ đầu hoặc cải tiến từ các hệ điều hành đa dụng nhưng dù

thiết kế theo phương án nào thì hệ điều hành thời gian thực cũng vẫn phải đáp ứng các

Trang 29

ưu trong thiết kế hệ điều hành thời gian thực rất phong phú.

Trang 30

1.3 Nền tảng phần cứng

Hệ thống thời gian thực có những đặc tính khác với hệ thống thông thường, bởivậy, phần cứng máy tính thời gian thực cũng cần có những đặc tính khác với phầncứng của máy tính thông thường Yêu cầu thứ nhất đối với phần cứng máy tính thời

gian thực là hoạt động của nó có thể dự đoán trước Phần cứng máy tính thời gian thực phải tin cậy và dung thứ lỗi (fault-tolerant) để nó có thể dự đoán và tránh được các lỗi

hoặc chủ động khắc phục lỗi một cách có dự báo trước Với lý do tương tự, các tàinguyên máy tính như bộ nhớ, vùng đệm, bộ xử lý, thiết bị vào-ra, các thành phầntruyền thông phải có thể truy cập và điều khiển được Thêm nữa, để đáp ứng các ràngbuộc thời gian, các thành phần cần có tốc độ xử lý/truy cập cao

Từ góc nhìn logic, cấu hình phần cứng máy tính thời gian thực không khác cấuhình phần cứng máy tính thông thường, bao gồm nhiều nút (node) được kết nối vớinhau qua một mạng truyền thông Cấu hình này có thể bao gồm nhiều bộ cảm ứng(sensors), bộ khởi động (actuators), và thiết bị hiển thị (displays), cũng như các đồng

hồ (clocks) hay bộ định thời gian (timers)

Để thỏa mãn các yêu cầu thời gian thực, một số vấn đề cần được quan tâm trong

sử dụng kiến trúc phần cứng Thứ nhất, các bộ nhớ ảo phải có thể điều khiển và mởrộng bởi ứng dụng thời gian thực Cụ thể, một phần bộ nhớ ảo cần được khóa (locked)hay định cư cố định trên bộ nhớ chính, để những lỗi trang hoặc lỗi đoạn không thểđoán trước cùng thời gian quản lỗi không xảy ra Tương tự, các bộ đệm dữ liệu và bộđệm lệnh phải được nạp trước Ở mức thấp hơn, những yếu tố nâng nhằm cao hiệusuất hoạt động như dẫn ống (pipelining) và dự đoán nhánh (branch prediction) làm cho

dự đoán thời gian trở nên khó hơn

Các hệ thống vào-ra có thể rất đơn giản như thiết bị có trình điều khiển nhưng cóthể rất phức tạp như các kênh kết nối vào-ra Tuy nhiên, thông thường hệ thống cungcấp cả hai loại ngắt là ngắt ưu tiên (priority interrupt) và ngắt bỏ phiếu (pollinginterrupt) cho các bộ cảm ứng, bộ khởi động thời gian thực cũng như các thiết bị vào-

ra khác.Các thiết bị vào-ra và bộ xử lý có thể truy cập cùng bộ nhớ một cách đồng thờihoặc dùng chung các bus Việc dùng chung và đồng thời các tài nguyên này có thể gây

ra các thực hiện không đoán trước được Các giải pháp phần cứng và phần mềm được

đề xuất nhằm tránh và di trú những vấn đề này Ví dụ, sử dụng các bus vào-ra riêng; vàchương trình được tổ chức sao cho các bộ xử lý và thiết bị vào-ra không truy cập cùng

bộ nhớ một cách đồng thời

Trang 31

Trong môi trường mạng, việc dự đoán thời gian đơn định càng trở nên khó khăn,phụ thuộc vào cấu trúc và phương thức truyền thông Nếu tồn tại nhiều đường đi từmột nút đến một nút khác trong mạng, hoặc nhiều phương tiện truyền thông, hoặcmạng được dùng chung thì thời gian truyền một thông báo không thể dự đoán trướcđược Giải pháp về phần cứng yêu cầu sử dụng các đường truyền riêng và cấp pháttrước các đường truyền cũng như các khe thời gian (time slot) trên mỗi đường truyền.

1.4 Ngôn ngữ lập trình cho hệ thống thời gian thực

1.4.1 Tổng quan về ngôn ngữ lập trình cho hệ thống thời gian thực

Phần lớn các ứng dụng thời gian thực không thể viết bằng các ngôn ngữ lập trình(NNLT) truyền thống với các hệ điều hành truyền thống vì các ngôn ngữ này không hỗtrợ các xử lý có ràng buộc khắt khe về thời gian thực thi

Ngày nay có nhiều ngôn ngữ lập trình được thiết kế hoặc sửa đổi hỗ trợ viết cácchương trình xử lý thời gian thực, ví dụ Ada[Ada95] chuyên dùng để viết các ứngdụng trong lĩnh vực quân sự; Ada được công nhận là chuẩn quốc tế năm 1987 Javađược thiết kế để viết các ứng dụng nhúng trong các thiết bị dân dụng và truyền thông;Java có cơ chế hỗ trợ đa nhiệm riêng không phụ thuộc vào hệ điều hành; và Java chính

là ngôn ngữ hướng đối tượng phổ biến nhất những năm cuối thế kỷ 20, đầu thế kỷ 21.C/C++ có các thư viện hàm hỗ trợ cơ chế xử lý thời gian thực phù hợp với nhiều hệđiều hành thời gian thực khác nhau

1.4.2 Các đặc điểm của ngôn ngữ lập trình thời gian thực

Một ngôn ngữ lập trình được sử dụng để viết ứng dụng thời gian thực nếu nó cóbốn đặc điểm sau:

1 Điều khiển và truy cập theo thời gian (time access and control): Nhằm theo

dõi và điều khiển thời gian, ngôn ngữ lập trình phải cung cấp cơ chế làm việc với cả thờigian tuyệt đối và thời gian tương đối Các thao tác cơ sở là những thao tác nhằm cài đặtphục vụ đồng hồ (clock server) để thiết lập đồng hồ (clock) và bộ định thời gian (timer),

và đọc giá trị các đối tượng định thời gian Các lệnh ở mức cao dùng để hoãn (delay) mộttác vụ, đưa tác vụ về chế độ ngủ (sleep), hoặc sinh ra tín hiệu timeout để hủy bỏ một tác

vụ hết hạn Ở mức thấp nhất, ngôn ngữ lập trình phải cho truy nhập đến các nhịp (stick)sung đồng hồ

Trang 32

2 Điều khiển tương tranh (concurrency control): Các ứng dụng thời gian thực

thường phải thực hiện xử lý song song nhiều tác vụ, bởi vậy ngôn ngữ lập trình cần phảicung cấp cơ chế điều khiển tương tranh

3 Xử lý bắt ngoại lệ (exception hanling): Ngoại lệ là vấn đề hay gặp ở bất kỳ

ứng dụng nào, kể cả các ứng dụng thông thường Các ngôn ngữ thường cung cấp phươngthức nắm bắt và xử lý ngoại lệ bằng cơ chế try-catch

4 Khả năng dự đoán trước (predictability): Ứng dụng thời gian thực phải có

thể dự đoán trước thời gian Dự đoán trước thời gian yêu cầu các lệnh phải được xác định

cụ thể các đặc tính thời gian Bởi vậy, ngôn ngữ lập trình thời gian thực phải cung cấp cơchế xác định và xử lý các đặc tính thời gian

1.5 Truyền thông thời gian thực

1.5.1 Giới thiệu

Trong phần này, sẽ trình bày một tập giao thức truyền thông thời gian thực, viếttắt là RTC (Real–Time Communication), của Microsoft Tập giao thức này hoạt độngtrên một mạng chuyển gói (packet-switching) hoặc chuyển mạch (circuit-switching)với sự hỗ trợ của các giao thức truyền thông chuẩn như TCP (Transmition ControlProtocol), UDP (User Datagram Protocol), và IP (Internet Protocol)

1.5.2 Xử lý lời gọi RTC

Trong tiến trình truyền thông thời gian thực từ một điểm đến một điểm khác,nhiều bước được thực hiện và nhiều giao thức được sử dụng kết hợp Đầu tiên, một sốkiểu báo hiệu (signaling) và điều khiển lời gọi được sử dụng để thiết lập, sửa đổi, vàkết thúc lời gọi Với mạng chuyển mạch, Signaling System 7 (SS7) được sử dụng đểthiết lập và kết thúc lời gọi Trong các mạng chuyển gói, SIP (Session InitiationProtocol) được sử dụng để điều khiển lời gọi SIP sẽ được trình bày trong các phần tiếptheo

Sau khi phiên gọi được thiết lập, dữ liệu cần truyền sau khi đã số hóa được đónggói trong các gói RTP (Real-Time Transport Protocol) RTP được thiết kế chủ yếu chotruyền thông thời gian thực trên mạng chuyển gói

Gói PTP sau đó được đóng gói theo một giao thức truyền thông mạng như TCPhoặc UDP Nếu dữ liệu cần truyền là âm thanh hoặc hình ảnh, UDP hay được sử dụng

vì UDP không cần truyền lại các gói Nếu dữ liệu là văn bản thì TCP được sử dụng vì

Trang 33

TCP là giao thức không mất mát thông tin Giao thức điều khiển thời gian thực RTCP(Real-Time Control Protocol) được sử dụng để theo dõi chất lượng của phiên RTP.RTP và RTCP được trình bày trong các mục tiếp theo.

Tiếp theo, gói UDP hoặc TCP được đóng gói trong gói IP rồi được đóng gói lầncuối trong giao thức tầng liên kết, ví dụ Ethernet Sau đó, gói giao thức tầng liên kếtđược chuyển đến đích Hình 1.9 mô tả việc đóng gói gói tin thời gian thực

Hình 1.9 Đóng gói RTCP.

1.5.3 Giao thức khởi tạo phiên SIP

Giao thức khởi tạo phiên SIP (Session Initiation Protocol), tương tự HTTP(HyperText Transfer Protocol) , là một giao thức điều khiển lời gọi và báo hiệu tầngứng dụng dựa trên văn bản SIP được sử dụng để tạo, sửa đổi, và kết thúc các phiênSIP Giao thức này hỗ trợ cả truyền thông đơn phát (unicast) và đa phát (multicast) VìSIP dựa trên văn bản nên dễ cài đặt, triển khai

Trang 34

Bảng 1.1 SIP Servers

Proxy server Hoạt động trung gian giữa một SIP user agent client và một

SIP user agent server Proxy server thực hiện các chức năng củaSIP user agent client hoặc của SIP user agent server, tùy thuộcvào hướng của truyền thông giữa client và server Một proxyserver có thể sửa SIP request trước khi chuyển tiếp nó hoặc đơngiản chỉ chuyển tiếp SIP request

Registrar server Nhận các yêu cầu REGISTER, mỗi yêu cầu chứa cả địa chỉ IP

và địa chỉ SIP — hay URL — của user agent Điều này chophép registrar server biết được vị trí của các user agents

Redirect server Chấp nhận khởi tạo, dưới dạng một yêu cầu SIP INVITE, của

một phiên SIP từ một user agent gọi, nhận địa chỉ SIP đúng củauser agent được gọi, và trả lời user agent gọi với địa chỉ đúng.Sau đó, user agent gọi sẽ sử dụng địa chỉ SIP đúng để khởi tạophiên SIP với user agent được gọi

SIP servers — proxy, registrar, and redirect — có thể được phát triển như cácứng dụng riêng biệt hoặc một ứng dụng duy nhất tích hợp các chức năng của cả baservers

Bảng 1.2 đưa ra các dạng SIP user agents và chức năng của chúng

Bảng 1.2 SIP User Agents

2 Luồng sự kiện cuộc gọi SIP

Trang 35

giữa các SIP user agents hay có một SIP server (proxy, registrar, or redirect) nằm giữacác SIP user agents.

Trang 36

Hình 1.10 thể hiện luồng sự kiện của một phiên gọi trực tiếp giữa hai user agents,với thứ tự sự kiện được để trong ngoặc đơn Đầu tiên, user agent A gửi một thông điệpINVITE nhằm khởi tạo lời gọi User agent B trả lời bằng thông báo Trying (100), thểhiện rằng yêu cầu lời gọi đang được xử lý Tiếp đó, user agent B trả lời bằng thông báo

OK (200), thể hiện rằng yêu cầu lời gọi đã được chấp nhận User agent A gửi thôngbáo ACK tới user agent B, thể hiện rằng nó đã nhận được OK của user agent

B Các thông báo trên được sử dụng để thiết lập cuộc gọi Sau khi cuộc gọi được thiếtlập, dữ liệu thời gian thực được đóng gói trong các gói RTP và gửi giữa agent A và useragent B Một trong hai user agent có thể kết thúc truyền thông thời gian thực bằng cáchgửi thông báo BYE đến user agent kia, thể hiện rằng nó muốn kết thúc cuộc gọi Khinhận được thông báo BYE, user agent gửi thông báo OK đến đối tác rồi kết thúc phiêngiao dịch

Hình 1.10 Luồng sự kiện một phiên SIP trực tiếp giữa các user agent

Hình 1.11 thể hiện luồng sự kiện của một phiên SIP có proxy server trên đường

đi giữa hai user agents Proxy server hoạt động như điểm truyền thông trung gian,đóng vai trò cả user server và user agent Khi đóng vai trò user server, proxy nhận cácyêu cầu SIP và chuyển tiếp nó đến user agent đích Khi đóng vai trò user agent, proxynhận các trả lời SIP và chuyển tiếp chúng đến user agent đích

Hình 1.11 Luồng sự kiện một phiên SIP có Proxy Server.

Trang 37

Hình 1.12 mô tả luồng sự kiện của một phiên SIP giữa một user agent và mộtregistrar server Registrar server chấp nhận yêu cầu REGISTER từ user agent, thể hiệnđịa chỉ mà user agent có thể đến được Một registrar server thường được đặt với mộtproxy server hoặc một redirect server.

Hình 1.12 Luồng sự kiện một phiên SIP với Registrar Server.

Hình 1.13 mô tả luồng sự kiện của một phiên SIP với một redirect server giữa haiuser agents User agent A gửi INVITE để khởi tạo cuộc gọi Redirect server trả lời vớithông báo Moved (302), thể hiện rằng user agent B hiện thời đã duy chuyển đến địachỉ mới User agent A trả lời bằng thông báo ACK Sau đó, user agent A gửi INVITEtrực tiếp đến user agent B

Hình 1.13 Luồng sự kiện một phiên SIP với Redirect Server.

Trang 38

4 Giao thức SIP

Thông báo SIP dựa trên định dạng của thông báo Internet chuẩn Thông báo SIP

có thể là request hay response Mỗi thông báo SIP có ba phần, như trong Bảng 1.3

Trang 39

Bảng 1.3 Các phần của thông báo SIP

Phần thông báo

Miêu tảSIP

Start line Nội dung tùy thuộc vào thông báo là request hay response

Trong cả hai loại thông báo, start line chứa Phiên bản SIP.Start line của thông báo request chứa Phương thức SIP vàĐịa chỉ SIP hoặc URI đích Start line của thông báo responsechứa Mã trạng thái SIP Response và Nội dung trả lời xácđịnh response của request

Message body Chứa thông tin được cung cấp bởi Giao thức Miêu tả Phiên –

SDP (Session Description Protocol), như miêu tả dung lượng

đa phương tiện cho phiên SIP

SIP xác định các giá trị của start line và các headers Giao thức Miêu tả Phiên (SDP) xác định giá trị nội dung thông báo

Response Phiên bản SIP, Mã trạng thái SIP response, Nội dung

trả lời

Trang 40

Mục đầu tiên trong start line của thông báo request là Phương thức SIP, một lệnh báo hiệu Các phương thức SIP được liệt kê trong Bảng 1.5.

Ngày đăng: 11/11/2020, 22:12

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w