Hệ thống đơn điệu đều

Một phần của tài liệu Cơ bản về hệ điều hành (Trang 146 - 149)

Kiểu đơn giản nhất của lập lịch thời gian thực có các giả thiết sau: 1. Mọi tác vụ là chu kỳ và Ti là khoảng thời gian của tác vụ τi

2. Các tác vụ không truyền thông tới nhau

3. Các tác vụ có mức độ −u tiên và độ −u tiên đó là cố định (lập lịch −u tiên tĩnh). Việc cố định các độ −u tiên đã làm đơn giản hoá bài toán lập lịch. Trong lập lịch −u tiên tĩnh, bộ lập lịch chỉ tìm kiếm tác vụ có độ −u tiên cao nhất cho b−ớc kế tiếp. Trong khi đó ở hệ độ −u tiên động, bộ lập lịch phải tính toán lại giá trị −u tiên sau các b−ớc. Tuy nhiên, dẫu có nhiều tập tác vụ thích hợp với cách −u tiên động, nh−ng lớp bài toán lập lịch −u tiên tĩnh vẫn là ý t−ởng khởi đầu tốt và dễ thực hiện.

Quan sát tập tác vụ khả thi đơn giản ch−a đ−ợc lập lịch −u tiên tĩnh. Nếu tập tác vụ đó có một lịch khả thi đ−ợc tạo ra bằng bộ lập lịch −u tiên tĩnh thì gọi tập tác vụ nh− thế là

có một lịch phân công −u tiên tĩnh khả thi. Mục đích của phần này là tìm lịch trên nếu

nó tồn tại.

Nếu tác vụ τi đ−ợc yêu cầu thực hiện tại thời điểm t, τi sẽ không v−ợt điểm chết nếu thời gian thực hiện các tác vụ −u tiên cao hơn trong khoảng thời gian (t,t+Di) nhỏ hơn hay bằng Di-Ci. Khi thực hiện tác vụ đ−ợc đòi hỏi (tức là, bắt đầu thời khoảng của nó), tác vụ có thể hoặc không thể hoàn thành công việc tr−ớc điểm chết, phụ thuộc vào dịch vụ CPU đòi hỏi cho các tác vụ −u tiên cao hơn. Tuy nhiên, có thể định vị tr−ờng hợp tồi nhất. Mốc tới hạn của tác vụ τi xuất hiện khi nó và mọi tác vụ có độ −u tiên cao hơn đ−ợc lập lịch đồng thời. Mô tả mốc tới hạn của τ5 trong hình 5.13 (vùng rời nét là thực hiện tác vụ, khối biên liền nét là thời gian chờ tác vụ). Nếu tác vụ τi phù hợp điểm chết khi đ−ợc lập lịch theo mốc tới hạn thì nó luôn phù hợp điểm chết trong cách lập lịch khác.

Lý do đ−ợc minh họa trong hình 5.13. Hãy chú ý điều xảy ra khi lập lịch τi nếu di chuyển thời gian đòi hỏi của tác vụ −u tiên cao hơn τh lên hoặc xuống. Nếu cho thời điểm đòi hỏi của τh lên t+ε thì t−ơng ứng phải giảm thời gian thực hiện các tác vụ này trong khoảng (t, t+Dτi) đi ε. Tuy nhiên tổng số thời gian dành cho thực hiện τh trong (t,t+Dτi) không tăng lên. T−ơng tự với việc giảm. Do vậy, tại mốc tới hạn, tổng thời gian các tác vụ có độ −u tiên cao thực hiện là lớn nhất.

Vì thế, có thể xác định nếu kết quả phân công −u tiên trong một lịch khả thi bằng cách mô phỏng thực hiện các tác vụ tại mốc tới hạn của tác vụ có độ −u tiên nhỏ nhất. Nếu tác vụ có độ −u tiên nhỏ nhất phù hợp điểm chết khi bắt đầu từ khoảng tới hạn thì các tác vụ khác cũng phù hợp điểm chết của chúng. Tác vụ có khoảng thời gian quá ngắn sẽ có ít thời gian thực hiện công việc của nó hơn là tác vụ có khoảng thời gian dài. Bằng trực giác, thấy sẽ tốt hơn nếu gán mức −u tiên cao cho tác vụ có khoảng thời gian ngắn và ng−ợc lại.

Đặt PRh là độ −u tiên của tác vụ τh. Giả sử rằng nếu PRh>PR1, CPU sẽ xử lý τh tr−ớc τl

(tức là giá trị PR cao hơn t−ơng ứng mức −u tiên cao hơn). Qui tắc phân công −u tiên tác vụ đ−ợc gọi là phân công độ −u tiên tốc độ đều RM (Rate Monotonic) nh− sau:

Hệ phân công −u tiên RM Nếu Th<T1 thì PRh>PR1

Phép phân công −u tiên tốc dộ đều rất dễ thi hành vì chỉ cần xếp các tác vụ theo độ dài các khoảng thời gian của nó. RM cũng tạo ra một phân công độ −u tiên tốt. Có thể chỉ ra rằng nếu tồn tại một lập lịch −u tiên cố định cho một tập các tác vụ có chu kì thì RM sẽ tạo ra một lịch nh− vậy.

Nói ngắn gọn, RM là một thuật toán phân công độ −u tiên tối −u theo nghĩa nếu tồn tại một phân công −u tiên tĩnh mà lập lịch kết quả là khả thi thì phân công đơn điệu đều cũng sẽ sinh ra lịch khả thi.

Để hiểu đ−ợc tính chất này của phân công RM, giả sử rằng có một phân công A không RM sản sinh ra một lịch khả thi. Có thể hiển thị các tác vụ đã xếp theo −u tiên giảm dần mà τ1 cao nhất còn τn thấp nhất. Vì A là hệ không-RM nên tồn tại cặp 2 tác vụ τi

và τi+1 mà Ti>Ti+1. Nếu thay đổi độ −u tiên của 2 tác vụ này thì hệ vẫn sẽ là hệ khả thi?

Nhớ lại, chỉ cần xem nếu τi và τi+1 phù hợp điểm chết tại mốc tới hạn. Chú ý điều gì xảy ra tại mốc tới hạn theo phân công độ −u tiên A (hình 5.14). Trong khoảng thời gian (0,Ti+1) sau mốc tới hạn, tác vụ τi sau τi+1 là H giây. Do τi+1 phù hợp điểm chết của nó nên

H+Ci+Ci+1 ≤ Ti+1

Tiếp đó, khi thay đổi độ −u tiên của τi và τi+1. Tác vụ τi+1 chắc chắn phù hợp điểm chết vì đã tăng độ −u tiên của nó. τi cũng phù hợp điểm chết vì nó sẽ hoàn thành công việc trong khoảng Ti+1<Ti. Do vậy, việc thay đổi trên vẫn dẫn đến một kết quả lịch khả thi. τ1 τ2 τ3 τ4 τ5

Thể hiện tới hạn đối với τk

Cho τk tại t+ε Cho τk tại t-ε

Nếu lặp các b−ớc hoán đổi sẽ tạo ra một phân công RM. Suy ra nếu một tập các tác vụ có chu kì có phân công −u tiên cố định khả thi thì RM sẽ là một trong số các lịch đó.

Phân tích thời gian

Để chắc chắn tất cả các tác vụ phù hợp điểm chết, CPU sẽ đ−ợc đặt ở chế độ rỗi trong một số chu kì thời gian (những chu kì này đ−ợc sử dụng thực hiện các tác vụ không tới hạn) Chúng ta cũng phải cần chắc chắn về mức độ tốt của CPU mà thuật toán đem lại (ví dụ thời gian nhàn rỗi không quá dài).

Định nghĩa tải L của các tác vụ thời gian thực là phân số thời gian mà các tác vụ này sử dụng CPU ∑ = = n i i i T C L 1 Các nghiên cứu chỉ ra rằng điều kiện đủ để RM là một phân công −u tiên khả thi là L≤ (21/n −1) n . Có nghĩa

là nếu việc tải các tác vụ thời gian thực là tối thiểu thì RM sẽ là một phân công −u tiên khả thi của chúng ta. Chứng minh điều này khá phức tạp và không cần thiết nên không đề cập đến. Tuy nhiên, biết rằng n.((21/n −1)

sẽ lớn hơn 69 phần trăm khi n đủ lớn và do vậy RM sẽ không lãng phí quá 31 phần trăm của CPU.

Cận n.((21/n −1)

tải không tỏ ra tốt, đây chỉ dùng để đánh giá, không phải là điều kiện tiên quyết. Trong ví dụ tập tác vụ V={(1,2), (1,3), (1,6)} có lịch phân công theo RM khả thi và 100 phần trăm CPU dành cho việc tải.

Có thể tìm thấy điều kiện cần thiết để xác định liệu tập tác vụ đã cho có thể lập lịch khả thi đ−ợc hay không bằng cách thử đặt chúng (tức các tác vụ) vào các mốc tới hạn của chúng. Sắp các tác vụ theo độ −u tiên giảm dần vào một danh sách. Đặc ri là thời gian trả lời của tác vụ τi tại mốc tới hạn. Nên, τi sẽ thực hiện xong sau ri sau mốc tới hạn. Trong thời gian đó, tác vụ có độ −u tiên cao τh sẽ yêu cầu dịch vụ [ri/Th] lần và sẽ cần Ch giây của CPU cho các yêu cầu đó. Suy ra ri phải thoả mãn mệnh đề sau.

∑ ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ + = h h i i i C T r C r (adsbygoogle = window.adsbygoogle || []).push({});

Vì ri xuất hiện ở hai vế của mệnh đề nên tính trực tiếp nó khá là khó khăn. Nh−ng có thể tính đ−ợc ri theo cách gián tiếp. Đầu tiên, giả sử τi không chờ bất kì một tác vụ có độ −u tiên cao nào. Đặt giá trị ri vào vế phải mệnh đề và tính đ−ợc giá trị ri mới biểu diễn số các dịch vụ đã thực hiện trong Ci đầu tiên sau điểm tới hạn. Trong QT soát lại

ττ τ τi+1 H H H H τ1 τi+1 τ2 τ1 τi τ2 τi Hình 5.14. Ví dụ về swapping tác vụ

thời gian trả lời việc thực hiện một số tác vụ có độ −u tiên cao có thể xảy ra. Tiếp tục đặt ri vào vế phải mệnh đề và tiếp tục tính giá trị ri đến khi ta tìm thấy giá trị ổn định. Các b−ớc trên đ−ợc biểu diễn t−ơng đ−ơng bằng toán học nh− sau

ri (0)=Ci ∑− = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ + = + 1) 1 ( ) ( i i h h h i i i C T k r C k r

thực hiện đến khi ri (k) = ri(k+1). Nếu tại một số b−ớc ri(k)>Ti thì tập tác vụ không thể đ−ợc sắp lịch khả thi.

Một phần của tài liệu Cơ bản về hệ điều hành (Trang 146 - 149)