LỜI NÓI ĐẦU Trong lĩnh vực công nghệ thông tin, người ta nói về hệ thống thông tin thời gian thực khi hệ thống đó điều khiển một vật thể vật lý với một tốc độ phù hợp với sự tiến triển của tiến trình chủ. Một ví dụ dễ hiểu (hệ thống thông tin điều khiển màn hình hiển thị giờ chính xác của các tàu điện ngầm sẽ đến và đi tại một ga nhất định). Hệ thống thông tin thời gian thực khác với những hệ thống thông tin khác bởi sự gò bó về thời gian, do đó, việc tuân thủ các nguyên tắc cũng quan trọng như độ chính xác của kết quả, nói một cách khác, hệ thống không chỉ đơn giản là đưa ra kết quả chính xác mà nó còn phải thực hiện một xử lý trong một thời gian rất ngắn. Hệ thống thông tin thời gian thực ngày nay được ứng dụng trong rất nhiều lĩnh vực như: trong ngành công nghiệp sản xuất, kiểm soát tiến trình (trong nhà máy, hay trong viện hạt nhân, trong hệ thống hàng không, thông qua các hệ thống dẫn đường tích hợp trên máy bay và vệ tinh). Sự phát triển của hệ thống thông tin thời gian thực yêu cầu mỗi phần tử của hệ thống phải ở thời gian thực, và một hệ thống được thiết kế theo cách như vậy được gọi là hệ điều hành thời gian thực. Trong đề tàinày, nhóm sẽ làm rõ về Hệ điều hành thời gian thực (RTOS) MỤC LỤC LỜI NÓI ĐẦU 2 MỤC LỤC 3 CHƯƠNG I 6 GIỚI THIỆU CHUNG HỆ ĐIỀU HÀNH THỜI GIAN THỰC (RTOS) 6 1.1 Định nghĩa 6 1.2 Các thành phần trong RTOS: 8 Chương II 16 VẤN ĐỀ QUẢN LÝ CÁC TASKS 16 2.1 Định nghĩa Tasks: 16 2.2 Task hệ thống ( System Task): 16 2.3 Các trạng thái của một Task: 17 2.4 Các điều khiển liên quan đến Task: 22 2.5 Cấu trúc của một Task: 24 Chương III 26 VẤN ĐỂ VỀ QUẢN LÝ SEMAPHORE 26 3.1 Vấn đề chia sẻ tài nguyên ( Resourse sharing) và đồng bộ hóa ( Synchronization): 26 3.2 Định nghĩa một Semaphore: 28 3.3 Các điều khiền liên quan đến Semaphore: 31 3.4 Vấn đề sử dụng semaphore: 32 Chương IV 35 VẤN ĐỀ QUẢN LÝ QUEUE 35 4.1 Định nghĩa Queue: 35 4.2 Các trạng thái của Queue: 36 4.3 Các điều khiển liên qua đên Message Queue: 37 4.4 Sử dụng Message Queue: 38 KẾT LUẬN 40 TÀI LIỆU THAM KHẢO 41 Ý KIẾN GIẢNG VIÊN CHƯƠNG I GIỚI THIỆU CHUNG HỆ ĐIỀU HÀNH THỜI GIAN THỰC (RTOS) 1.1 Định nghĩa Hệ thống thời gian thực ( Real time System): Thời gian ( Time) : Sự chính xác của hệ thống không chỉ phụ thuộc vào kết quả tính toán logic mà còn phụ thuộc vào thời gian cho ra kết quả. Thực ( Real): Đáp ứng của hệ thống với những sự kiện bên ngoài. Thời gian thực ( RealTime): Phải đảm bảo các yếu tố : • Đáp ứng nhanh • Dự đoán được. • Các tác vụ ( Realtime Task) được xác định bằng deadline. • Deadline là thời gian tối đa một tác vụ phải hoàn thành việc thính toán. Thời gian thực cứng ( Hard Realtime) và thời gian thực mềm ( Soft RealTime): Hình 1.1.1: Thời gian thực cứng và thời gian thực mềm. Thời gian thực cứng: Một tác vụ là thời gian thực cứng nếu như thời gian tính toán vượt quá deadtime có thể gây ra sự phá vỡ môi trường điều khiển. Thời gian thực mềm: Một tác vụ là thời gian thực mềm nếu như đảm bảo thực thi trong deadtime cho phép và nếu như không
Trang 1BÁO CÁO BÀI TẬP LỚN MÔN HỌC
NGUYÊN LÝ HỆ ĐIỀU HÀNH
Chủ đề số 6:
TÌM HIỂU VỀ HỆ ĐIỀU HÀNH THỜI GIAN THỰC
Giảng viên: Lê Đức Thuận
Sinh viên thực hiện:
HÀ NỘI, 2014
LỜI NÓI ĐẦU
Trong lĩnh vực công nghệ thông tin, người ta nói về hệ thống thông tin thờigian thực khi hệ thống đó điều khiển một vật thể vật lý với một tốc độ phù hợp với
sự tiến triển của tiến trình chủ Một ví dụ dễ hiểu (hệ thống thông tin điều khiển
Trang 2định) Hệ thống thông tin thời gian thực khác với những hệ thống thông tin khácbởi sự gò bó về thời gian, do đó, việc tuân thủ các nguyên tắc cũng quan trọng như
độ chính xác của kết quả, nói một cách khác, hệ thống không chỉ đơn giản là đưa rakết quả chính xác mà nó còn phải thực hiện một xử lý trong một thời gian rất ngắn
Hệ thống thông tin thời gian thực ngày nay được ứng dụng trong rất nhiều lĩnh vựcnhư: trong ngành công nghiệp sản xuất, kiểm soát tiến trình (trong nhà máy, haytrong viện hạt nhân, trong hệ thống hàng không, thông qua các hệ thống dẫn đườngtích hợp trên máy bay và vệ tinh) Sự phát triển của hệ thống thông tin thời gianthực yêu cầu mỗi phần tử của hệ thống phải ở thời gian thực, và một hệ thống đượcthiết kế theo cách như vậy được gọi là hệ điều hành thời gian thực Trong đề tàinày,nhóm sẽ làm rõ về Hệ điều hành thời gian thực (RTOS)
Trang 3MỤC LỤC
MỤC LỤC 3 CHƯƠNG I 6 GIỚI THIỆU CHUNG HỆ ĐIỀU HÀNH THỜI GIAN THỰC (RTOS) 6
1.1 Định nghĩa 6
1.2 Các thành phần trong RTOS: 8
Chương II 16
VẤN ĐỀ QUẢN LÝ CÁC TASKS 16
2.1 Định nghĩa Tasks: 16
2.2 Task hệ thống ( System Task): 16
2.3 Các trạng thái của một Task: 17
2.4 Các điều khiển liên quan đến Task: 22
2.5 Cấu trúc của một Task: 24
Chương III 26
VẤN ĐỂ VỀ QUẢN LÝ SEMAPHORE 26
3.1 Vấn đề chia sẻ tài nguyên ( Resourse sharing) và đồng bộ hóa ( Synchronization): 26
3.2 Định nghĩa một Semaphore: 28
3.3 Các điều khiền liên quan đến Semaphore: 31
3.4 Vấn đề sử dụng semaphore: 32
Chương IV 35
VẤN ĐỀ QUẢN LÝ QUEUE 35
4.1 Định nghĩa Queue: 35
4.2 Các trạng thái của Queue: 36
4.3 Các điều khiển liên qua đên Message Queue: 37
4.4 Sử dụng Message Queue: 38
KẾT LUẬN 40
Trang 4TÀI LIỆU THAM KHẢO 41
Ý KIẾN GIẢNG VIÊN
Trang 6CHƯƠNG I GIỚI THIỆU CHUNG HỆ ĐIỀU HÀNH THỜI GIAN THỰC (RTOS) 1.1Định nghĩa
Hệ thống thời gian thực ( Real time System):
Thời gian ( Time) :
Sự chính xác của hệ thống không chỉ phụ thuộc vào kết quả tính toánlogic mà còn phụ thuộc vào thời gian cho ra kết quả
Thực ( Real):
Đáp ứng của hệ thống với những sự kiện bên ngoài
Thời gian thực ( Real-Time):
Phải đảm bảo các yếu tố :
Đáp ứng nhanh
Dự đoán được
Các tác vụ ( Real-time Task) được xác định bằng deadline
Deadline là thời gian tối đa một tác vụ phải hoàn thành việcthính toán
Thời gian thực cứng ( Hard Real-time) và thời gian thực mềm
( Soft Real-Time):
Hình 1.1.1: Thời gian thực cứng và thời gian thực mềm.
Trang 7xử của hệ thống.
Định nghĩa hệ điều hành thời gian thực RTOS:
Hệ điều hành thời gian thực (RTOS) là phần mềm quản lí thời gian của một vi xử lýhoặc viđiều khiển Đặc tính của hệ thống thời gian thực nằm ở chỗ nhiều kết quảtính tóan liên tụcđều có kết quả nếu tính logic cũng như tính chính xác về thời gianđựoc thỏa mãn
Đặc điểm:
Lịch trình thực thi theo thời gian
Quản lý tài nguyên hệ thống
Cung cấp những nền tảng cơ bản để phát triển các ứng dụng trên nó
Một số RTOS:
Adeos, ART Linux, ChorusOS, eCos, ELinOS, FreeRTOS, iRmx, ITRON, Linux, LynxOS, MicroC/ OS-II, Nucleus, OS-9, OSE, OSEK/VDX, pSOS, PikeOS, QNX, RedHawk, RSX-11, VxWorks,
Windows CE, Xenomai
Trang 81.2Các thành phần trong RTOS:
Hình 1.2.1 : Các đối tượng trong RTOS
Bộ lịch trình ( scheduler):
Là một tập các thuật toán để xác định tác vụ ( Task) nào được thực thi
Đối tượng (Object) :
Là những cấu trúc đặc biệt (Kernel) giúp người lập trình tạo ra các ứngdụng
Dịch vụ ( Service) :
Là những điều khiển mà Kernel ( lõi) thực thi trong đối tượng ( object):chia thời gian ( Timing), Ngắt( interrupt), Đáp ứng ( handling) và quản lýtài nguyên hệ thống ( resource management)
Bộ lịch trình ( Scheduler):
Là một phần vô cùng quan trọng của lõi hệ thống điều khiển ( Operating System Kernel)
Trang 9 Nó giúp xác định tác vụ (task) nào sẽ dành quyền CPU để thực thitiếp theo Sau đó, nó thực hiện việc chuyển trạng thái ( contextswitching) được thực hiện bằng bộ điều phối ( dispatcher).
Chuyển đổi trạng thái ( Context Switching)
Hình 1.2.2: Chuyển đổi trạng thái ( ngữ cảnh)
Trạng thái ( ngữ cảnh) của tác vụ ( Task)
Mỗi task có một trạng thái riêng của nó, nó chính là trạng thái củanhững thanh ghi ( registers)
Mỗi thời điểm 1 task mới được tạo ra , kernel sẽ tạo ra và lưu giữmột block điều khiển liên quan đến task đó ( TCBs ) TCBs là những cấutrúc dữ liệu hệ thống mà kernel dùng để lưu trữ những thông tin đặctrung của task TCBs chứa mọi thứ mà một kernel cần để biết về một task
cụ thể nào đó Khi task đnag chạy, trạng thái của nó là động Trạng tháiđộng này được lưu trữ trong TCB Khi task không còn chạy nữa, trạngthái sẽ bị đóng bang ( frozen) trong TCB, và được sử dụng cho lần thựcthi tiếp theo của task
Công tắc chuyển đổi trạng thái ( Context Switch):
Sẽ xãy ra khi bộ lịch trình ( scheduler) chuyển từ một trạng thái nàysang một trạng thái khác
Việc chuyển đổi trạng thái bao gồm:
Thời gian chuyển đổi:
Trang 10Là thời gian tiêu tốn để cho bộ lịch trình chuyển từ task này sangtask khác.
Nó không có liên quan nào đến các lệnh thực hiện trong task
Nếu một ứng dụng được thiết kế mà xảy ra chuyển đổi trạng tháithường xuyên thì có thể dẫn đến những thực thi không cần thiết Vìvậy, nên thiết kế ứng dụng theo cách mà tạo ra ít chuyển đổi trạng tháinhất
Khi nào chuyển đổi xãy ra:
Mỗi khi ứng dụng tạo một lời gọi hệ thống ( System Call) , bộ lịchtrình sẽ xác định rằng có cần chuyển đổi trạng tháu hay không Khi
bộ lịch trình xác định việc chuyển đổi là cần thiết thì sẽ gọi bộ phânphối ( dispatcher) để thực hiện việc chuyển đổi
nào RTOS đang chạy, dòng thực thi sẽ chuyển đến 3 vùng: đến các Taskứng dụng ( application Task), đến một chương trình phục vụ ngắt ( ISR),hoặc đến Kernel
Khi nào bộ phân phối được thực hiên:
Trang 11 Khi một Task hoặc ISR tạo một lời gọi hệ thống, dòng điều khiển
sẽ chuyển đến Kernel để thực thi một trong số những thủ tục được cungcấp bởi Kernel
Khi rời khỏi kernel, Dispatcher sẽ có trách nhiệm là chuyển lệnhđiều khiển đến một trong số những Task ứng dụng
Cách thực hiện như sau:
Không cần thiết để chuyển toàn bộ lệnh điều khiển đến cùng mộttask gọi System Call Điều này sẽ được xác định bằng giải thuật phânchia thời gian biểu (scheduling algorithms ) của bộ lịch trình ( scheduler)
Chuyển đổi thực thi từ một Task
Hình 1.2.4: Điều phối từ một Task
Tùy thuộc vào cách truy cập vào Kernel như thế nào màdispatching sẽ xãy ra khác nhau Khi một Task thực hiện một lời gọi hệthống, dispatcher sẽ được sử dụng để thoát khỏi Kernel mỗi khi Lời gọi
hệ thống được hoàn thành Trong trường hợp này, dispatcher được dùngnhư một lời gọi của lời gọi ( call- by –call basic) để nó có thể hỗ trợ choviệc chuyển đổi trạng thái của Task Bất kì Task nào cũng có thể gọisystem call Một hay nhiều Task có thể ở trạng thái sắn sàng cho thực thi
Trang 12 Chuyển đổi thực thi từ 1 chương trình phục vụ ngắt(ISR):
Hình 1.2.5: Điều phối từ một ISR
Khi một ISR tạo một System Call, Dispatcher sẽ bị bỏ vô hiệuhóa cho đến khi ISR thưc thi xong Quá trinh này sẽ đúng miễn là có đủtài nguyên để chuyển đổi giữa các Task Chuyển đổi trạng thái này sẽkhông được diễn ra bởi vì ISR phải được thực thi xong mà không đượcngắt bởi các Tasks Sau khi ISR thực thi xong, Kernel sẽ thoát đếndispatcher để có thể điều phối đến đúng task thực thi tiếp theo
Giải thuật cho lịch trình:
Lịch trình thay thế theo độ ưu tiên:
Hình 1.2.6: Giải thuật lịch trình theo độ ưu tiên.
Hầu hết các Real – time Kernel sử dụng giải thuật lịch trình thaythế theo độ ưu tiên ( preemptive priority- based scheduling) làm mặcđịnh
Trang 13 Các task sẽ được thực thi tại bất kì một thời điểm là task có độ ưutiên cao nhất so với các task khác đang ở trạng thái sẵn sàng.
Real –Time Kernel hỗ trợ 256 cấp độ ưu tiên, với 0 là độ ưu tiêncao nhất và 255 là độ ưu tiên thấp nhất Một số Kernel thì ngược lại với
255 là độ ưu tiên cao nhất và 0 là độ ưu tiên thâp nhất
Với bộ chuyển đổi theo đọ ưu tiên, mỗi task phải có một độ ưu tiên,
và task có độ ưu tiên cao nhất chạy đầu tiên Nếu một Task có độ ưu tiêncao hơn task đang chạy trở nên sẵn sàng để chạy thì kernel sẽ ngay lậptức lưu lại trạng thái Task hiện tại và chuyển sang Task có độ ưu tiên caohơn
Mặc dù việc phân chia độ ưu tiên của Task được thực hiện khi task
đó được tạo nhưng độ ưu tiên của Task là có thể thay đổi một cách linhđộng sử dụng Lời gọi do kernel cung cấp ( Kernel – providedcalls) Khả năng này dùng để thay đổi một cách linh động cho phép mộtứng dụng nhúng có độ linh hoạt để ứng xử với sự kiện bên ngoài khichúng xuất hiện, tạo ra một hệ thống thời gian thực và đáp ứng tốt Lưu
ý là việc sử dụng không đúng khả năng thay đổi độ ưu tiên này có thểdẫn đến đảo độ ưu tiên ( priority inversion), vùng chết ( deadlock), và cóthể dẫn đến treo hệ thống ( system failure)
Lịch trình theo Round- Robin( Gọi vòng)
Trang 14Hình 1.2.7 : Lịch trình theo Round- Robin
Mỗi Task sẽ cùng chia sẻ thời gian thực thi của CPU Robin thuần túy không thỏa mãn yêu cầu của hệ thống thời gian thực bởi
Round-vì một hệ thống thời gian thực các task phải làm việc theo mức độ quantrong khác nhau
bộ đếm sẽ bị xóa, và task này sẽ được đặt ở cuổi cùng của chu kì( end of circle)
Trang 15 Nếu như một task round-robin bị thay thế bởi mọt task có độ ưu tiêncao hơn, thì bộ đếm thời gian sẽ lưu lại và phục hồi khi task bị thay thếdành quyền thực thi lại.
Các đối tượng ( Objects) trong RTOS:
Real-time embedded applications:
Là sự kết nối giữa các đối tượng của Kernel để giải quyết vấn đề thờigian thực như sự đồng thời, sự đồng bộ,và trao đổi dữ liệu
Chương II VẤN ĐỀ QUẢN LÝ CÁC TASKS
Trang 162.1Định nghĩa Tasks:
Hình 2.1.1.: Sơ đồ cấu trúc của một Task cơ bản.
Task là một luồng thực thi độc lập mà có thể cạnh tranh chiếm quyềnthực thi Một ứng dụng được chia ra làm nhiều Tasks đồng thời( Concurrent Task) để tối ưu khả năng đáp ứng vào ra trong luật thờigian
Một Task được định nghĩa thuần túy là một tập các tham số và cấutrúc dữ liệu
Các thành phần của một Task:
Khi được tạo ra, Task sẽ có tên, ID duy nhất, độ ưu tiên, mộtblock điều khiển Task ( TCB), Stack, và Các thủ tục thực thi Task
2.2Task hệ thống ( System Task):
Bao gồm các Task sau:
Task khởi tạo ( Initialization or Startup Task)
Khởi tạo hệ thống và tạo task khởi động hệ thống
Task “Rỗi” ( Idle Task)
Trang 17Idle Task chạy theo chu kì rỗi của hệ thống ( idle cycles), được đặt ở
độ ưu tiên thấp nhất
Thực thi một vòng lặp vô tận Idle task chắc chắn rằng bộ đếm chươngtrình luôn luôn có giá trị cho trong trường hợp không có task nào thựcthi
Kernel cho phép các thao tác được cấu hình bời người dùng( developer) để chạy những yêu cầu đặc biệt : sleep mode …
Task “đăng nhập” ( Logging Task)
Là tin nhắn truy cập vào hệ thống
Task “Lỗi” ( Exception- Handling Task)
Thực thi các trường hợp lỗi hệ thống hoặc ứng dụng
Task “ sữa lỗi” ( Debug Agent Task)
Cho phép sữa lỗi thông qua công cụ debug ( host debugger) Chú ýrằng các task hệ thống khác có thể được tạo ra trong quá trình khởi tạo,phụ thuộc vào các thành phần có trong kernel
2.3Các trạng thái của một Task:
Hình 2.3.1 : Các trạng thái của một Task.
Trạng thái của một Task:
Trang 18Tại bất kì một thời điểm, mỗi task tồn tại một trong số những trạng thái nhỏbao gồm: Sẵn sàng ( Ready), Đang thực thi ( Running), hoặc Khóa ( Blocked).Khi một hệ thống nhúng thời gian thực chạy, mỗi task thay đổi từ trạng tháinày đến trạng thái khác theo quy luật logic của một mấy trang thái hữu hạnđơn giản ( Finite state machine (FSM)).
Về cơ bản, 3 trạng thái chính được sử dụng trong hầu hết các hệ thốngKernel sử dụng phương pháplịch trình thây thế ( preemptive – scheduling)
Trạng thái sẵn sàng ( Ready State):
Task đã sẵn sàng thực thi nhưng chưa thể thực thi vì task có độ ưu tiên caohơn đang chiếm quyền thực thi
Khi một Task được tạo lần đầu tiên, Kernel sẽ tự động đặt task này vào trạng thái sẵn sàng
Ở trạng thái này, Task sẽ dành quyền thực thi với các Task ở trạng thái sẵn sàng khác để chiếm thời gian thực thi của bộ vi xử lý
Task ở trạng thái sẵn sàng không thề chuyển vào trạng thái
Khóa( blocked) một cách trực tiếp Một Task đầu tiên cần phải chạy để
có thể gọi “blocking call”, blocking call là lời gọi đến một hàm mà khôngthể chạy đến việc hoàn thành ngay lập tức
Đối với những Kernel chỉ hỗ trợ mỗi mức ưu tiên cho một Task duy nhất, giải thuật lich trình sẽ được chuyển thẳng tới Task có độ ưu tiên caonhất sẵn sàng cho lần chạy tiếp theo Với việc hiện thực theo cách này , Kernel giới hạn số lượng Task trong một ứng dụng tương ứng với số mức
ưu tiên được hỗ trợ
Tuy nhiên, hầu hết các kernel hỗ trợ nhiều hơn một Task cho mỗi mức
ưu tiên trong một ứng dụng cụ thể nào đó Trong trường hợp này, giảithuật lịch trình sẽ phức tạp hownvaf bao gồm cả việc lưu trữ một danhsách cá task ổ trạng thái sẵn sàng Một số Kernel lưu giữ danh sách task ở
Trang 19trạng thái sẵn sàng một cách rời rạc cho từng độ ưu tiên; một số khác thì
có một danh sách duy nhất
Ví dụ: ( Hình 2.3.2)
Giả sử hệ thống sử dụng giải thuật lịch trình thay thế theo độ ưutiên ( priority- based preemptive scheduling algorithm) với 255 mức ưutiên và quy định mức ưu tiên 0( lowest) là mức ưu tiên cao nhất
Trong ví dụ này, Task 1, 2, 3, 4 và 5 đang ở trạng thái sẵn sàngthực thi, và Kernel xếp hang chúng bằng trong dang sách các task sẵnsàng( task –ready list) Task 1 là task có độ ưu tiên cao nhất (70); task 2,
3, 4 là những Task có độ ưu tiên tiếp theo (80), và Task 5 có độ ưu tiênthấp nhất( 90) Các bước sau giải thích việc Kernel dùng danh sách nàynhư thế nào:
Vì Task 1 có độ ưu tiên cao nhất nên nó là Task đầu tiên sẵn sàng đểchạy Kernel sẽ chuyển Task 1 từ danh sách Task sẵn sàng sang trạngthái đang thực thi
Suốt trong quá trình thực thi, Task 1 tạo ra một Blocking call Kếtquả là Kernel chuyển Task 1 vào trạng thái Blocked Tiếp theo, Task 2 có
độ ưu tiên cao thứ 2 nên sẽ được chuyển vào trạng thái đang thực thi
Tiếp theo, Task 2 gọi Blocking call Kernel chuyển Task 2 vào trạngthái Blocked.Quá trình tương tự diễn ra cho Task 3
Khi Task 3 thực thi, tài nguyên hệ thống được yêu cầu bởi Task 2.Kernel sẽ chuyển Task 2 vào trạng thái sẵn sàng và chèn vào cuối danhsách các trạng thái sẵn sàng ở độ ưu tiên là là 80 Task 3 vâc tiếp tục làTask hiện thời đang chạy
Task 3 tại thời điểm này sẽ được chuyển đến trạng thái sẵn sàng vàchèn sau Task 2 trong danh sách ( cùng độ ưu tiên là 80), đứng trướcTask 5
Trang 20Hình 2.3.2 : Ví dụ về trạng thái sẵn sàng của Task
Trạng thái đang thực thi ( Running state):
Task có độ ưu tiên cao nhất và đang chạy
Ở hệ thống đơn vi xử lý ( Single – processor system), chỉ duy nhấtmột Task có thể chạy tại một thời điểm Trong trường hợp này, khi Taskđược chuyển vào trạng thái đang thực thi, bộ xử lý lấy dữ liệu từ cácthanh ghi ứng với với trạng thái của Task Bộ xử lý có thể thực thi thựcthi những lệnh trong Task và quản lý Stack liên quan
Như đã đề cập đến trong phần 1.2.3.1, một Task có thể chuyển đếntrạng thái sẵn sàng trong khi đang chạy Khi một Task chuyển từ trạngthái đang chạy đến trạng thái Sẵn sàng, nó bị chiếm quyền thực thi bởiTask có độ ưu tiên cao hơn Trong trường hợp này, Task bị chiếm quyềnthực thi sẽ được đặt vào vị trí chính xác về mức ưu tiên trong danh sáchcác Task đang trạng thái sẵn sàng thực thi, và Task có độ ưu tiên cao hơnđược chuyển từ trạng thái sẵn sàng sang trạng thái đang thực thi
Không giống như một Task wor trạng thái sẵn sàng, Task ở trạng tháiđang thực thi sẽ chuyển đến trạng thái Blcoked theo cách sau:
Bằng cách tạo ra một lời gọi yêu cầu một tài nguyên nhưngkhông có sẵn để đáp ứng