Xem Nhiều 1/2023 #️ Nói Chuyện Về Hệ Thời Gian Thực – Phần 3: Định Nghĩa # Top 3 Trend | 3mienmoloctrungvang.com

Xem Nhiều 1/2023 # Nói Chuyện Về Hệ Thời Gian Thực – Phần 3: Định Nghĩa # Top 3 Trend

Cập nhật thông tin chi tiết về Nói Chuyện Về Hệ Thời Gian Thực – Phần 3: Định Nghĩa mới nhất trên website 3mienmoloctrungvang.com. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất.

Như vậy, tới đây chúng ta đã hoàn thành phác thảo xong những đường nét, hình dáng chung của một hệ đáp ứng thời gian thực, theo cảm nhận của chúng ta. Những cảm nhận về tính chất liên tục, tức thời của các đối tượng vật lý theo thời gian, đặt ra cho một hệ thống chạy trên vi xử lý, để nó có thể tham gia vào thế giới thực, tương tác với các đối tượng thực. Đây là cách tiếp cận tương đối dễ dàng, trực quan nhưng lại có phần cảm tính, thiếu thuyết phục. Vì vậy, trong phần này, chúng ta sẽ cùng nhau phân tích các khái niệm về thời gian thực từ những tài liệu khác nhau để làm sáng tỏ hơn nội dung đó.

Nội dung cơ bản của hệ thời gian thực

Tác giả Hoàng Minh Sơn, trong bài viết được dẫn ở link số [2], có nhắc lại định nghĩa của Stankovic, như một quan niệm phổ biến và được công nhận rộng rãi về hệ thời gian thực:

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

Định nghĩa này nói lên mối quan tâm đặc biệt của hệ thời gian thực đối vời thời gian tính toán và thời điểm đưa ra đáp ứng của hệ thống. Cùng với quan điểm này, tác giả Robert Oshana trong tài liệu số [5], có nhắc lại định nghĩa trong từ điển Oxford như sau:

“Hệ thời gian thực là bất cứ hệ thống nào mà ở đó, thời gian nơi kết quả được xuất ra, là một yếu tố quan trọng.” ([5] tr. 19).

Ở một chương khác, ông cũng nhấn mạnh:

“Hãy luôn ghi nhớ điều này khi đề cập đến hệ thời gian thực, rằng: đưa ra quá muộn đáp án đúng thì cũng là kết quả sai.” ([5] tr. xii)

Giới hạn cho xử lý vào ra

Được rồi, hệ thời gian thực là hệ rất coi trọng tới thời điểm đưa ra kết quả, rồi sao nữa? hãy nói cụ thể hơn đi!

Về vấn đề này, tác giả Robert Oshana có lý giải thông qua một ví dụ về việc xếp hàng mua vé xem phim. Đây là một ví dụ khá hay, nên mình xin được trích dịch lại ra đây:

“Hãy quay trở lại ví dụ về thế giới thực của chúng ta. Gần đây, tôi có đưa bọn trẻ nhà tôi đi xem phim. Khi tới nơi, chúng tôi phải xếp hàng để mua vé. Thực tế là, chúng tôi đã được đưa vào một hàng đợi đang trong quá trình xử lý, và phải đứng sau những người đến xem phim khác. Nếu dòng người giữ nguyên độ dài và không tăng lên theo thời gian. Điều đó có nghĩa, hàng đợi đó đáp ứng được thời gian thực – theo khía cạnh: số lượng khách hàng đã được xử lý bằng với số lượng người mới thêm vào. Dòng người này có thể trở nên ngắn đi hoặc dài hơn một chút, nhưng không được phát triển tới mức không thể giới hạn. Nếu bạn nhớ lại cuộc di dân tại Houston, khi cơn bão Rita ập đến, nó là một hàng đợi đã phát triển tới mức không thể kiểm soát nổi! Hàng đợi này rõ ràng không đáp ứng thời gian thực vì đã tăng lên một cách không giới hạn, và hệ thống (hệ thống di dân) được xem như đã thất bại. Nếu một hệ real-time (real-time system) không thể thực thi trong thời gian thực thì nó sẽ thất bại.

Nếu hàng đợi là quá lớn (nghĩa là tôi phải đứng trong dòng người mua vé rất dài), mà không tăng thêm, hệ thống vẫn có thể  không đáp ứng. Nếu tôi mất 50 phút mới tới được đầu hàng để mua vé, tôi sẽ vô cùng nản chí và cùng các con bỏ đi trước khi mua được vé xem phim (các con tôi sẽ cho đó là một sự thất bại). Hệ thời gian thực cũng cần chú ý tới hàng đợi dài, chúng có thể khiến hệ thống bị lỗi. Hệ thời gian thực có thể xử lý thông tin (hàng đợi) theo một trong hai cách sau: hoặc là xử lý ngay từng phần dữ liệu tại từng thời điểm, hoặc là sử dụng bộ đệm để lưu thông tin, và sau đó xử lý ‘hàng đợi’. Kích thước hàng đợi sẽ không được quá dài, nếu không hệ thống sẽ có độ trễ đáng kể và sẽ không được coi là thời gian thực.

Nếu thời gian thực bị vi phạm, hệ thống sẽ xảy ra lỗi, và phải khởi động lại. Nếu phân tích chi tiết hơn, sẽ có hai khía cạnh của hệ thời gian thực. Khía cạnh thứ nhất là quan điểm rằng: với mỗi chu kỳ trích mẫu, một nhóm dữ liệu ở đầu vào phải được cập nhật và một nhóm dữ liệu đầu ra phải được gửi đi. Khía cạnh thứ 2 là quan điểm về trễ. Độ trễ ở đây là thời gian trễ từ khi có tín hiệu đi vào hệ thống cho đến lúc có tín hiệu đi ra khỏi hệ thống đó, nó phải được đảm bảo gần như tức thì.

Hãy luôn ghi nhớ điều này khi đề cập đến hệ thời gian thực, rằng: đưa ra quá muộn đáp án đúng thì cũng là kết quả sai! Nếu tôi nhận được vé và trả đủ số tiến sau khi chờ đợi nhưng bộ phim thì đã bắt đầu thì hệ thống vẫn không đáp ứng. ” ([5] tr. xii).

Như vậy, bằng ví dụ về việc xếp hàng mua vé, tác giả đã minh họa những khía cạnh của hệ thời gian thực với lĩnh vực xử lý tín hiệu. Theo đó, hệ thời gian thực được đặt trong hoàn cảnh phải liên tục xử lý thông tin đi vào hệ thống, chúng cần có tốc độ xử lý phù hợp để nhanh chóng đưa ra được đáp ứng trước khi có dữ liệu mới đẩy tới. Thời gian ‘trễ’ từ khi nhận được dữ liệu cho tới khi đưa ra kết quả phải đủ nhỏ đến mức gần như tức thời.

Một cách không thực sự rõ ràng tác giả Robert Oshana cũng đã đề cập đến việc một hệ thống muốn đáp ứng thời gian thực, chúng phải có khả năng đưa ra kết quả trong một khung thời gian cho trước, mà nếu nó bị vi phạm (hàng đợi phát triển tới mức không thể giới hạn) thì hệ thống sẽ bị lỗi. Ở một chương khác, chương 2 ‘Overview of Embedded Systems and Real-Time Systems’, tác giả có đề cập cụ thể hơn:

“Hệ thống thời gian thực là hệ thống được yêu cầu để phản ứng lại với kích thích của môi trường (bao gồm sự thay đổi của thời gian vật lý) bên trong những khoảng thời gian được quy định bởi môi trường đó” … “Một cách hiểu khác về hệ thống thời gian thực là bất cứ những hoạt động hay hệ thống xử lý thông tin nào, mà phải đáp ứng lại kích thích từ bên ngoài trong những chu kỳ hữu hạn và xác định. Thông thường, hệ thời gian thực là hệ mà có thể duy trì sự tương tác liên tục theo thời gian với môi trường của chúng ”  ([5] tr. 19).

Trong các ứng dụng xử lý tín hiệu, khung thời gian này thường gắn với chu kỳ trích mẫu (mà ta đã đề cập tới ở phần trước). Tác giả cũng nhắc tới ý này khi viết về một khía cạnh của hệ thời gian thực: “Khía cạnh thứ nhất là quan điểm rằng: với mỗi chu kỳ trích mẫu,một nhóm dữ liệu ở đầu vào phải được cập nhật và một nhóm dữ liệu đầu ra phải được gửi đi”.

Các khung thời gian

Về ý này, tác giả Lưu Hồng Việt trong ‘Tài liệu tóm tắt bài giảng hệ thống điều khiển nhúng’ có viết

“Thực chất, theo cách hiểu nếu nói trong các hệ thống kỹ thuật đặc biệt các hệ thống yêu cầu khắt khe về sự ràng buộc thời gian, thời gian thực được hiểu là yêu cầu của hệ thống phải đảm bảo thoả mãn về tính tiền định trong hoạt động của hệ thống. Tính tiền định nói lên hành vi của hệ thống thực hiện đúng trong một khung thời gian cho trước hoàn toàn xác định. Khung thời gian này được quyết định bởi đặc điểm hoặc yêu cầu của hệ thống, có thể là vài giây và cũng có thể là vài nano giây hoặc nhỏ hơn nữa.” ([1] tr. 6).

Để nhấn mạnh yêu cầu phải liên tục hoàn thành các thao tác trong khung thời gian định trước đối với hệ thời gian thực. Tác giả Michael J. Pont, trong chương 6: Meeting real-time constraints, ở tài liệu [8] có viết:

“Như ví dụ sau, hãy xem sét ứng dụng điều khiển bay tự động ở hình trên. Chúng ta giả sử rằng, phi công đã nhập vào hướng lộ trình cần thiết, khi đó, hệ thống phải đưa ra những thay đổi thường xuyên và ổn định cho cánh lái hướng, cánh lái độ cao, cánh liệng và động cơ (ví dụ như vậy) để giữ cho máy bay đi theo lộ trình ấy.

Một đặc điểm quan trọng của hệ thống nhúng là phải xử lý đầu vào và đưa ra kết quả đầu ra thật nhanh, theo đơn vị thời gian được đo bằng ms. Đối với trường hợp này, thậm chí một khoảng trễ nhỏ trong thay đổi cánh lái hướng (ví dụ như thế) có thể gây ra cho máy bay những dao động không mong muốn, đi vào các trạng thái cực đoan hoặc thậm chí bị rơi. Tuy nhiên, để có thể giúp hệ thống bay tự động như vậy được chứng nhận và đi vào sử dụng, thì việc đảm bảo rằng quá trình xử lý đã ‘nhanh nhất mà chúng tôi có thể’ không thỏa mãn được các nhà chức năng. Trong trường hợp này, cũng như với rất nhiều các ứng dụng thời gian thực khác, tính năng trọng yếu là khả năng xử lý tiền định. Điều đó có nghĩa rằng, trong rất nhiều các hệ thống nhúng thời gian thực, chúng ta cần có khả năng để đảm bảo rằng từng chức năng riêng biệt sẽ luôn luôn được hoàn thành trong 2 ms (ví dụ như thế). Nếu quá trình xử lý không đáp ứng đặc tính kỹ thuật này, thì ứng dụng không chỉ đơn thuần là chậm hơn những gì mà chúng ta muốn, mà là – chúng đã vô dụng” ([8] tr.113).

Như vậy, với hệ thời gian thực, nội dung quan trọng trong việc đưa ra đáp ứng đúng thời điểm là chúng phải nằm trong một khung thời gian cho trước, khung thời gian này phải đủ nhanh để đảm bảo tính tức thời với môi trường mà hệ thống tương tác.

Tính tiền định

Cùng với các khung thời gian quy định trước, ta thấy đi kèm với nó trong các phát biểu trên là tính tiền định. Tức tính chất cho biết trước thời hạn mà hệ đưa ra đáp ứng kể từ khi nhận được kích thích. Tính tiền định là một khái niệm quan trọng của hệ thời gian thực. Đối với hệ thống đơn giản, chỉ phải đáp ứng với 1 kích thích đơn, tính tiền định gắn liền với một khung thời gian đã biết trước khi thiết kế hệ thống (ví dụ với các ứng dụng xử lý tín hiệu, thì là các chu kỳ trích mẫu). Trong các hệ thống khác, phải đáp ứng nhiều tác vụ, phản ứng với nhiều kích thích, khái niệm này cũng được mở rộng thêm.

Tác giả Dave Stewart, trong bài viết ‘Introduction to Real Time’ ở tài liệu số [6] có bàn luận thêm về tính tiền định này trong hệ thống có nhiều tác vụ, với 2 cách gọi cùng mang ý nghĩa chỉ tính tiền định. Đó là tính tất định ‘deterministic’ và tính có thể dự đoán trước ‘predictable’. Hai khái niệm này có nội dung tương tự nhau và thường hay được dùng lẫn cho nhau với ý nghĩa chỉ tính tiền định. Tuy nhiên, nếu phải phân biệt, thì từ predictable thường đề cập tới hệ thống thời gian thực một cách tổng thể, nơi ‘tất cả các tác vụ đều thỏa mãn thời hạn deadline của mình’, còn từ deterministic để chỉ một cách tiếp cận rõ ràng, rạch ròi hơn trong quá trình thiết kế hệ thống, với sự phân chia cụ thể toàn thời gian thực thi của hệ thống thành các khung (khe, lát) thời gian xác định, ứng với từng tác vụ tương ứng.

“Các nhà nghiên cứu hệ thống thời gian thực thường sử dụng thuật ngữ có thể dự đoán được (predictable) để đề cập tới một hệ thống, nơi mà tính định thời luôn được đảm bảo nằm trong một phạm vi chấp nhận được. Tính chất này xác định trên cơ sở là toàn hệ thống, chẳng hạn như “tất cả các tác vụ đều đáp ứng tất cả deadline của chúng”. Thông thường, người thiết kế cần phải biết trước chu kỳ xử lý, deadline, và thời gian giải quyết trường hợp xấu nhất của mỗi tác vụ, để xây dựng một hệ thống đáp ứng tính dự đoán được (predictable). Một thuật toán lập lịch phù hợp, cùng với quá trình phân tích lập lịch tương ứng sẽ được sử dụng để đảm bảo hệ thống là dự đoán được.

Một hệ thống có tính tất định (deterministic) là một trường hợp đặc biệt của hệ dự đoán được.Ở đó tính chất định thời không chỉ đáp ứng nằm trong phạm vi yêu cầu mà nó còn cho phép được xác định từ trước. Như ví dụ về việc thiết kế một hệ thống với những khe thời gian được sắp đặt, tổ chức từ trước cho mỗi tác vụ. Việc thực thi mỗi tác vụ chỉ được diễn ra bên trong những khe thời gian đó. Và với những hệ thống như thế, cần phải biết trước thời gian thực thi cho tất cả các tác vụ, cũng như chắc chắn rằng sẽ không có sự kiện bất thường nào có thể xảy ra đe dọa tính chất tiền định của hệ thống. Vì vậy, đương nhiên, chúng rất khó đạt được. ” ([6]).

Cũng tương tự với ý này, tác giả Hoàng Minh Sơn có viết trong bài viết được dẫn ở tài liệu số [2] như sau:

“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.” [2].

Tựu chung lại, từ yêu cầu về tính kịp thời của môi trường đặt ra cho các thiết bị xử lý tính toán mà hình thành nên các khung thời gian giới hạn cho quá trình tính toán của hệ thời gian thực.  Từ khung thời gian đó, người ta phải – ít nhất – ước lượng được từ trước: khối lượng của công tác xử lý tính toán bằng ngần nào, tốc độ hoạt động của khối CPU là bao nhiêu, có sự kiện nào xen vào chương trình tính toán hay không? … để hệ thống đáp ứng deadline của chúng. Điều này hình thành nên tính tiền định cho các hệ thời gian thực.

 Cũng với ý này, tác giả Ulrich Kiffmeier trong bài ‘Real-Time Implementation’ có viết:

“Các bộ điều khiển số gián đoạn yêu cầu thao tác thời gian thực, khi kết nối với thiết bị thực, ví dụ như chức năng điều khiển cần phải được kích hoạt tại những thời điểm xác định và được hoàn thành bên trong một giới hạn thời gian quy định từ trước. Khi thiết kế những hệ thống như thế, kỹ sư điều khiển cần xác định được những ảnh hưởng từ năng lực xử lý có hạn của phần cứng bộ điều khiển và các khối vào ra. Trễ tính toán và sự biến động cần được chú ý một cách cẩn thận khi thiết kế hệ thời gian thực, bởi vì chúng sẽ tạo ra những khoảng trễ khác nhau vào hệ thống, dẫn đến suy giảm chất lượng điều khiển, thậm chí là mất ổn định, làm hư hại tới hệ thống.” [4].

Thời gian thực cứng và thời gian thực mềm

Nói một cách ngắn gọn, hệ thời gian thực cứng là hệ đòi hỏi một cách tuyệt đối việc chấp hành giới hạn của các khung thời gian. Nếu giới hạn này bị vi phạm thì hệ thống sẽ bị lỗi nghiêm trọng hoặc bị phá hủy. Còn với hệ thời gian thực mềm, thì yêu cầu này là tương đối. Tức, chúng cho phép chức năng thời gian thực có thể bị vi phạm trong một giới hạn, điều kiện nào đó.

Trên trang chúng tôi tác giả David B. Stewart có cách tiếp cận khá thú vị về vấn đề này. Trong đó, tác giả cho rằng rất khó để phân biệt một cách rõ ràng khi nào thì ứng dụng là hệ thời gian thực cứng và khi nào thì hệ là thời gian thực mềm. Tùy thuộc vào mức độ cần thiết của việc chấp hành deadline, mà ứng dụng sẽ nằm đâu đó trong dải phân bố giữa hệ không đáp ứng thời gian thực và hệ đáp thời gian thực cứng.

Về cách thức tổ chức chương trình đáp ứng thời gian thực

Đến đây, câu hỏi đặt ra là chương trình trên vi xử lý được thiết kế như thế nào để đảm bảo đặc tính thời gian thực. Để đơn giản, chúng ta hãy xem sét ở một ứng dụng điều khiển đáp ứng lại một kích thích đơn. Ở đó, trong phần ‘Phác thảo’, chúng ta đã xác định, để thỏa mãn cho hoạt động của hệ thống luôn nằm trong những khung thời gian định trước, chương trình trong vi xử lý sẽ được cài đặt trong một hàm phục vụ ngắt của timer, với chu kỳ đếm được cài đặt bằng chu kỳ trích mẫu. Mình cũng đã từng viết một chương trình như thế cho thiết bị điều khiển nghịch lưu cầu 6 van IGBT, với chương trình điều khiển được cài đặt trong ngắt của bộ định thời của khối PWM trong DSP, chu kỳ đếm được cài đặt bằng chu kỳ trích mẫu và đồng bộ với chu kỳ phát xung tương ứng với tần số 5 kHz.

Trong mục này, mình sẽ trích dẫn lại một vài điểm trong bài viết “Real-Time Implementation” của tác giả Ulrich Kiffmeier để củng cố thêm luận điểm ấy. Theo nội dung này, tác giả có viết:

“Không nhất thiết lúc nào cũng phải chạy chương trình điều khiển trong môi trường của một hệ điều hành thời gian thực. Với rất nhiều ứng dụng nhỏ mà chỉ có một tác vụ yêu cầu đáp ứng thời gian thực, thì chỉ cần một chương trình thực thi đơn giản là đủ. Trái tim của chương trình thời gian thực có kích thước tối ưu như thế là một hàm phục vụ ngắt (ISR). Hàm ngắt này sẽ được gọi ra một cách định kỳ bởi bộ định thời nằm trong phần cứng của khối điều khiển. Các hàm phục vụ ngắt này cũng tương tự như các tác vụ thời gian thực, nhưng chúng không nằm dưới sự điều khiển của hệ điều hành. Khi nhận được ngắt của bộ định thời, vi xử lý sẽ nhảy vào chương trình phục vụ ngắt (ISR) để thực thi các bước tính trong cấu trúc điều khiển. Sau khi hoàn thành chương trình ISR, vi xử lý sẽ quay trở lại chương trình background đang bị gián đoạn và tiếp tục thực hiện nó .” ([4])

Như trên hình, ta thấy chương trình chạy trên vi xử lý cho các thiết bị điều khiển thời gian thực được chia là hai phần. Phần thực hiện chức năng điều khiển thời gian thực sẽ nằm trong chương trình phục ngắt (ISR) của timer, với chu kỳ đếm thường được cài đặt là chu kỳ trích mẫu của bộ điều khiển. Phần còn lại là một chương trình được gọi là ‘Background’ đây là phần chương trình không yêu cầu đáp ứng thời gian thực (hoặc có thể nhưng ở mức độ rất thấp) thực hiện các chức năng như truyền thông, giao tiếp người dùng … Trong đó, phần chức năng điều khiển thời gian thực có mức ưu tiên cao hơn, chúng có quyền yêu cầu vi xử lý dừng chương trình background để thực thi chức năng điều khiển, và vi xử lý chỉ được giải phóng để trở lại chương trình background sau khi chương trình điều khiển hoàn thành.

Chương trình điều khiển thường là một chu trình bao gồm: trích mẫu (đọc ADC), tính toán bộ điều khiển (như trên hình là ví dụ về bộ PI số), đưa ra kết quả điều khiển cho khối chấp hành thực thi (trên hình là hàm WriteDAC(y)). Quá trình này liên tục được thực hiện mỗi khi có ngắt định thời kích hoạt.

Toàn bộ chương trình cài đặt trên vi xử lý, ngoài phần chương trình điều khiển trên ISR, chương trình nền Background thì còn có phần khởi tạo hệ thống. Đây là phần chương trình chạy đầu tiên khi vi xử lý khởi động, nó sẽ thiết lập các tham số hoạt động chung cho hệ thống, khởi tạo các ngoại vi, khối I/O, cài đặt chu kỳ đếm cho bộ định thời bằng chu kỳ trích mẫu, cho phép ngắt định thời … Sau khi quá trình khởi tạo hoàn thành, bộ đếm sẽ được kích hoạt, chương trình điều khiển sẽ được gọi ra khi bố định thời đếm đủ chu kỳ trích mẫu. Trong những lúc không bị ngắt bởi chương trình điều khiển, chương trình nền Background sẽ thực hiện chức năng quản lý giám sát của nó trong vòng lặp vô tận (vòng while(1)). Chương trình nền này có thể bao gồm: thông báo các trường hợp lỗi, truyền thông người dùng với dữ liệu không bị quy định ngặt nghèo về thời gian đáp ứng, …

Hệ thời gian thực và hệ chia sẻ thời gian

Để khái niệm thời gian thực được phác họa một cách chân thực hơn, mục này sẽ đưa ra những so sánh giữa hệ thời gian thực và một hệ thống khác là hệ chia sẻ thời gian (đại diện cho hệ thống này là các phần mềm chạy trên PC). Nội dung này đã được đề cập trong tài liệu số [5] ‘DSP Software Development Techniques for Embedded and Real-Time Systems’, nhận thấy đây là một nội dung hay, nên mình xin dịch lại, để đưa thêm một góc tiếp cận khác giúp cho chúng ta có một cái nhìn toàn diện hơn.

Hệ thời gian thực khác với hệ chia sẻ thời gian trên 3 phương diện chính. Chúng bao gồm khả năng đáp ứng nhanh một cách tiền định với những sự kiện bất thường:

1.      Chế độ lập lịch ở mức độ cao – những yêu cầu về định thời trong hệ thống cần phải được thỏa mãn với mức độ sử dụng tài nguyên cao.

2.      Độ trễ trường hợp tồi tệ nhất – chắc chắn rằng hệ thống vẫn duy trì hoạt động và đáp ứng với thời gian của trường hợp xấu nhất dành cho các sự kiện.

3.      Năng lực ổn định trong quá tải tạm thời: khi hệ thống bị quá tải bởi các sự kiện và chúng không có khả năng để đảm bảo đáp ứng tất cả các deadline. Trong trường hợp ấy, những deadline của các tác vụ trọng yếu vẫn phải được đảm bảo.

Đặc tính

Hệ chia sẻ thời gian

Hệ thời gian thực

Năng lực của hệ thống

Năng suất cao

Chế độ lập lịch và năng lực của các tác vụ thỏa mãn đáp ứng toàn bộ các deadline

Mức độ đáp ứng

Tốc độ đáp ứng trung bình là cao

Luôn đảm bảo thời gian trễ của trường hợp xấu nhất, tức thời gian đáp ứng trong trường hợp xấu nhất cho các sự kiện

Quá tải

Tất cả đều giống nhau

Ổn định – khi hệ thống bị quá tải, những tác vụ quan trọng vẫn phải đáp ứng deadline của chúng trong khi những tác vụ khác có thể không được ưu tiên

V0.0 – 12/05/2017

Thanh Phong dịch và tổng hợp

Tài liệu tiếng Việt

[1] TS. Lưu Hồng Việt, Tài liệu tóm tắt bài giảng hệ thống điều khiển nhúng, Trường Đại học Bách khoa Hà Nội, Bộ môn Điều khiển tự động.

[2] chúng tôi Hệ thời gian thực và điều khiển thời gian thực, thành viên PPIICC đăng lại bài viết cùng tên của tác giả Hoàng Minh Sơn trên tạp chí TĐHNN.

http://www.dientuvietnam.net/forums/forum/x%E1%BB%AD-l%C3%BD-t%C3%ADn-hi%E1%BB%87u-v%C3%A0-h%E1%BB%87-th%E1%BB%91ng-nh%C3%BAng/h%E1%BB%87-th%E1%BB%91ng-nh%C3%BAng/441-h%E1%BB%87-th%E1%BB%9Di-gian-th%E1%BB%B1c-v%C3%A0-%C4%91i%E1%BB%81u-khi%E1%BB%83n-th%E1%BB%9Di-gian-th%E1%BB%B1c

[3] embedded247, Hệ thống thời gian thực

https://sites.google.com/site/embedded247/embedded_system/rtsystem

Tài liệu tiếng Anh

[4] Ulrich Kiffmeier, Real-Time Implementation, Control System, Robotics, and Automation – Vol. II

[5] Robert Oshana, DSP Software Development Techniques for Embedded and Real-Time Systems, Newnes, 2006

[6] Dave Stewart, Introduction to Real Time, embedded.com

http://www.embedded.com/electronics-blogs/beginner-s-corner/4023859/Introduction-to-Real-Time

[7] Kanaka Juvva, Real-Time Systems, users.ece.cmu.edu

https://users.ece.cmu.edu/~koopman/des_s99/real_time/

[8] Michael J. Pont, Embedded C,Addison-Wesley Professional 2002. Chapter 6: Meeting real-time constraints

Cách Dùng By Khi Nói Về Thời Gian

1. By được dùng với nghĩa “muộn nhất là” – By có thể được dùng với nghĩa “muộn nhất là” (not later than). Ví dụ: I’ll be home by five o’clock. (Tớ sẽ có mặt ở nhà muộn nhất là 5 giờ.) A: Can I borrow you car? (Tớ mượn xe cậu có được không?)

– By cũng có thể dùng để diễn đạt quá trình xảy tra trước 1 thời điểm nào đó. Ví dụ: By the end of the meal, everybody was drunk. (Khi bữa ăn kết thúc thì tất cả mọi người đã say mèm rồi.)

– Khi đứng trước động từ, ta thường dùng by the time (that)…. Ví dụ: I’ll be in bed by the time you get home. (Con sẽ đi ngủ trước khi mẹ về tới nhà.) By the time that the guards realised what was happening, the gang were already inside the bank. (Trước khi đội bảo vệ nhận ra chuyện gì đang xảy ra thì băng nhóm đó đã vào bên trong ngân hàng rồi.)

2. Các nghĩa khác – By cũng có thể được dùng khi nói về thời gian trong các cụm như by day (vào ban ngày) và by night (vào ban đêm). Ví dụ: He worked by night and slept by day. (Anh ấy làm việc vào ban đêm và ngủ vào ban ngày.)

– Lưu ý các cụm day by day (từng ngày) và hour by hour (từng giờ)…. Ví dụ: The situation is getting more serious day by day. (Tình hình càng ngày càng trở nên nghiêm trọng hơn.)

– Và có thể dùng by trong các cụm pay/hire by the hour (trả lương/thuê theo giờ), by the day (theo ngày)…. Ví dụ: In this job, we’re paid by the hour. (Khi làm công việc này chúng tôi được trả lương theo giờ.) You can hire a bicycle by the day or by the week. (Cậu có thể thuê xe đạp theo ngày hoặc theo tuần.)

Cách Nói Thời Gian Trong Tiếng Trung

chủ yếu về:

Giờ giấc  (8点40分)

Ngày tháng  (2009年7月7日)

Các ngày trong tuần  (星期四)

Trước đi vào cách nói thời gian trong tiếng Trung, chúng ta cần biết cách đọc của con số từ 1 đến 10 như sau:

Từ số 10 trở đi, các bạn hãy ghép như tiếng Việt là ra. Ví dụ:11 = mười + một = 十一20 = hai + mươi = 二十21 = hai + mươi + mốt = 二十一 (không có cách nói tắt thành “hai mốt” như tiếng Việt)99 = chín + mươi + chín = 九十九

Mở rộng: Các con số khác:trăm = 百 (bǎi)nghìn = 千 (qiān)10 nghìn = 万 (wàn),100 nghìn = 十万 (shí wàn)1 triệu = 百万 (bǎi wàn)10 triệu = 千万 (qiān wàn)100 triệu = 亿 (yì)1 tỷ = 十亿 (shí yì)

Cách nói giờ

Trong tiếng Trung, có các từ để nói giờ giấc như sau:

点 (diǎn):  giờ

刻 (kè):  khắc, 1 khắc = 15 phút, 3 khắc = 45 phút, 30 phút thì dùng 半 (bàn) = rưỡi

半 (bàn):  rưỡi = 30 phút

分 (fēn):  phút

秒 (miǎo):  giây

Khi hỏi giờ giấc, chúng ta nói:

Xiànzài jǐ diǎn (le)?    → Xiànzài shí diǎn.

现在几点(了)?    ➝ 现在十点。

Bây giờ là mấy giờ (rồi)? → Bây giờ là 10 giờ.

Cấu trúc nói giờ giấc như sau:

1. ……点……分  =  … giờ … phút2. ……点半  =  … giờ rưỡi3. 差……分……点  =  … giờ kém … phút

Lưu ý:  ① Trong tiếng Trung, phần kém nói trước. ② Với cấu trúc ……点……分 = … giờ … phút, nếu số phút lớn hơn 10 thì có thể nói hoặc không nói 分.③ Nếu là phút lẻ thì có thể nói ……点零……(分) : … giờ lẻ… (phút)

10:00  十点 (Shí diǎn)10:05  十点零五 (Shí diǎn líng wǔ) /      十点五分 (shí diǎn wǔ fēn)10:15  十点一刻 (Shí diǎn yī kè) /      十点十五分 (shí diǎn shíwǔ fēn)10:30  十点半 (Shí diǎn bàn) /      十点三十分 (shí diǎn sānshí fēn)10:45  十点三刻 (Shí diǎn sān kè) /      十点四十五分(shí diǎn sìshíwǔ fēn) /     差一刻十一点(chà yīkè shíyī diǎn)10:55  十点五十五分 (Shí diǎn wǔshíwǔ fēn) /      差五分十一点 (chà wǔ fēn shíyī diǎn)

Nếu đi kèm với các từ chỉ giờ giấc thì những từ nêu trên đứng trước, còn ……点……分 đứng sau. Ví dụ: Shàngwǔ shí diǎn shíwǔ fēn 上午十点十五分  10 giờ 15 phút sáng

Cách nói ngày tháng năm

Trong tiếng Trung, cách nói ngày tháng năm giờ giấc theo trình tự từ lớn đến bé nên ngược lại với tiếng Việt, họ nói năm → tháng→ ngày với cấu trúc như sau:

……nián……yuè……rì

……年 ……月 ……日

Lưu ý:  ①Cách nói năm là đọc rõ từng con số là được     ②…….月 ……日 là văn viết, còn văn nói là ……月 ……号 (hào)

Ví dụ:  Ngày 15 tháng 8 năm 2010→二零一零年 八月 十五日 Èr líng yī líng nián bā yuè shíwǔ rì

Nếu có thêm giờ giấc nữa thì giờ giấc sẽ phải đứng sau ngày tháng. Ví dụ: 8: 30 sáng, ngày 19 tháng 5→五月十九日上午八点半 Wǔ yuè shíjiǔ rì shàngwǔ bā diǎn bàn

Cách nói ngày trong tuần

星期一      xīng qī yī       Thứ 2星期二      xīng qī èr       Thứ 3星期三      xīng qī sān      Thứ 4星期四      xīng qī sì       Thứ 5星期五      xīng qī wǔ       Thứ 6星期六      xīng qī liù       Thứ 7星期日・星期天  xīng qī rì / xīng qī tiān Chủ nhật

Lưu ý:  Có thể thay thế 星期 = 周 (zhōu) và 礼拜 (lǐ bài).

Nếu nói thêm ngày thàng thì “Thứ” đứng sau ngày tháng. Ví dụ:  Thứ 6 ngày 5 tháng 12→十二月五日星期五 Shí’èr yuè wǔ rì xīngqíwǔ

Nếu muốn nói thêm giờ thì “Thứ” đứng trước giờ. Ví dụ:  9 giờ 20 phút Thứ 7→星期六九点二十分 Xīngqí liùjiǔ diǎn èrshí fēn

Tổng kết

Các bạn cùng xem ví dụ sau để

2019 Nián 9 yuè 2 rì xīngqí yī wǎnshàng 8 diǎn 15 fēn

2019年9月2日星期一晚上8点15分

8: 15 phút tối thứ 2 ngày 2 tháng 9 năm 2019

#3 Bài Viết Tiếng Anh Về Việc Làm, Công Việc Bán Thời Gian

Cách viết bài viết về việc làm, công việc bán thời gian

Should students work part-time? (Sinh viên có nên làm bán thời gian không?)

Advantages of working part-time while studying at university (Lợi ích của làm bán thời gian trong khi đang học đại học)

Talk about your favourite part-time job (Nói về công việc bán thời gian yêu thích của bạn)

How to balance your studying at university and working part-time? (Làm thế nào để cân bằng việc học và làm thêm?)

Mở bài

Đặt vấn đề (bắt buộc phải có): thường đặt cuối mở bài, nêu lên yêu cầu của đề bài.

Example (Ví dụ): Một vài mẫu câu xác định yêu cầu của đề bài

– Should students work part-time? (Sinh viên có nên làm bán thời gian không?)

(Có rất nhiều lợi ích nếu sinh viên làm thêm khi đang học đại học)

– Talk about your favourite part-time job (Nói về công việc làm thêm yêu thích của bạn)

(Tôi hứng thú với việc làm ở quán cà phê vào ban đêm vì nó mang lại nhiều lợi ích cho tôi)

Thân bài

Thường được chia thành 2-3 đoạn để làm rõ yêu cầu của đề bài. Mỗi đoạn thường chứa một luận điểm và ta phải làm rõ luận điểm đó ra.

Nếu đề bài yêu cầu mô tả công việc bán thời gian yêu thích của bạn, bạn có thể có những luận điểm sau:

– Giới thiệu qua những đặc điểm của công việc đó (bạn sẽ làm bao nhiêu giờ một ngày, nhiệm vụ của bạn khi làm công việc đó…)

– Giải thích tại sao bạn là yêu thích công việc này.

Một vài cụm từ thích hợp sử dụng cho đề tài công việc bán thời gian:

Part-time job: công việc bán thời gian

Full-time job: công việc toàn thời gian

A well-paid job/ A low-paid job: việc lương cao/ việc lương thấp

To get promoted: được thăng chức

Find it difficult to balance studying at school and working part-time: Gặp khó khăn trong việc cân bằng giữa việc học và làm bán thời gian

To quit/ leave a job: nghỉ việc

Get fired by the employers: bị sa thải bởi người lãnh đạo

Kết bài

Example (Ví dụ): Một vài kết bài mẫu

– Should students work part-time? (Sinh viên có nên làm bán thời gian không?)

(Tóm lại, tôi tin rằng việc sinh viên làm thêm bán thời gian trước khi tốt nghiệp là vô cùng hại. Sinh viên nên tập trung vào việc học và đợi đến khi tốt nghiệp để tìm công việc toàn thời gian)

– How to balance your studying at university and working part-time? (Làm thế nào để cân bằng việc học và làm thêm?)

Bài viết số 1: Should students work part-time? (Sinh viên có nên làm bán thời gian không?)

These days, there are a lot of part-time jobs available for students at university. Many people choose to work part-time as they can earn money themselves. However, I think students should not have a part-time job while studying due to those below reasons.

(Đầu tiên, một công việc bán thời gian có thể làm sinh viên sao nhãng việc học hành. Rõ ràng nhiệm vụ của chúng ta ở đại học là tập trung toàn bộ vào học hành và lấy được bằng giỏi khi tốt nghiệp. Tuy nhiên, nếu chúng ta làm thêm thì sẽ rất tốn thời gian vì chúng ta phải làm từ 4 đến 6 tiếng một ngày. Làm hai việc cùng lúc sẽ làm bạn thụt lùi và không thể bắt kịp những bạn học khác.)

Second, working part-time will harm your health as well. Except for some part-time jobs that only require working online or at home, most part-time jobs now need you to work hard such as working at a coffee shop, a restaurant and so on. Sometimes, we have to come home late, which means we will have less time to sleep. If this case lasts for a long time, we will suffer from many health problems.

(Thứ hai, làm thêm sẽ ảnh hưởng đến sức khỏe của bạn. Ngoài trừ những công việc làm thêm chỉ yêu cầu làm online hoặc tại gia, hầu hết các công việc bán thời gian cần bạn làm việc vất vả như làm ở quán cà phê, ở nhà hàng… Nếu tình huống này diễn ra dài lâu, chúng ta sẽ mắc nhiều vấn đề sức khỏe)

In conclusion, I suggest students should not choose a part-time job to earn money. As a student, we should prioritize learning rather than working part-time.

(Tóm lại, tôi đề xuất sinh viên không nên chọn làm thêm để kiếm tiền. Là sinh viên, chúng ta nên ưu tiên việc học trước rồi mới đến làm thêm.)

Bài viết số 2: Advantages of working part-time while studying at university (Lợi ích của làm bán thời gian trong khi đang học đại học)

(Những công việc làm thêm rất có sức hút với sinh viên đại học. Rõ ràng, họ có thể có được rất nhiều lợi ích khi làm những việc này vì những lý do sau.)

First, a part-time job can give us money. A student who is studying at university have to be independent and pay a lot of things such as school fee, living expense and so on. Therefore, a part-time job will ease their financial burden, especially if they are poor students.

(Đầu tiên, một công việc bán thời gian cung cấp tiền cho ta. Một sinh viên học đại học phải tự lập và chi rất nhiều như học phí và sinh hoạt phí… Vì thế, một công việc làm thêm sẽ giảm bớt gánh nặng tài chính cho họ, đặc biệt nếu học là sinh viên nghèo.)

Second, a part-time job can provide a lot of experience for students. All part-time jobs will somehow help us for our future. For example, teaching a pupil will provide us some teaching experience, which is very useful for those who intend to become a teacher in the future. Or translating will help us improve our foreign language.

(Tóm lại, nhiều sinh viên làm thêm vì có rất nhiều lợi ích. Tuy nhiên, chúng ta nên chọn đúng việc phù hợp với ngành nghề tương lai của chúng ta)

Bài viết số 3: How to balance your studying at university and working part-time? (Làm thế nào để cân bằng việc học và làm thêm?)

It is obvious that working part-time is beneficial and even necessary for poor students. However, we need to manage our time properly to make sure that job will not badly affect our studying. Here are some possible ways to balance these two jobs.

(Rõ ràng là làm thêm rất hữu ích và cần thiết cho những sinh viên nghèo. Tuy nhiên, chúng ta cần kiểm soát thời gian đúng cách để đảm bảo rằng công việc đó sẽ không ảnh hưởng xấu đến việc học của chúng ta. Đây là một số cách khả thi để cân bằng hai công việc này)

First, we should choose a job that does not require much manual labor. For example, working at a coffee shop or being a salesman will be very time-consuming and wasting a lot of energy. Also, those jobs will not help us much for our career in the future. Instead, we should work online or at home. This will take less time and we feel less tired.

(Đầu tiên, chúng ta nên chọn việc không yêu cầu lao động tay chân nhiều. Ví dụ, làm việc ở quán cà phê hay bán hàng sẽ rất tốn thời gian và năng lượng. Ngoài ra, những công việc hay sẽ không giúp ích nhiều cho tương lai chúng ta. Thay vào đó, chúng ta nên làm online hoặc tại gia. Điều này sẽ tốn ít thời gian hơn và chúng ta cũng cảm thấy đỡ mệt mỏi)

Second, we should prioritize studying rather than working part-time. Although for some students, part-time jobs are important as they help them to earn money, studying cannot be ignored. Make sure that part-time work cannot affect our studying process by working for about 2 or 3 days a week. Also, if the workload is too heavy, we should quit that job and find another way of earning money such as taking a scholarship.

(Thứ hai, chúng ta nên ưu tiên việc học hơn làm thêm. Mặc dù đối với một vài sinh viên, việc bán thời gian rất quan trọng vì họ có thể kiếm được tiền nhưng việc học thì không thể lơ là. Hãy đảm bảo rằng làm thêm không thể ảnh hưởng đến quá trình học tập của chúng ta bằng cách chỉ làm khoảng 2 đến 3 ngày một tuần. Ngoài ra, nếu khối lượng công việc quá nhiều, chúng ta nên nghỉ việc và tìm cách kiếm tiền khác như giành học bổng của trường.)

In conclusion, those are some ways that students can use to manage their time and balance two jobs at the same time. Apparently, studying should always be prioritized the most so that we can lead a successful life in the future.

Bạn đang xem bài viết Nói Chuyện Về Hệ Thời Gian Thực – Phần 3: Định Nghĩa trên website 3mienmoloctrungvang.com. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!