Tại sao không có chuyển đổi từ trạng thái ready sang trạng thái blocked?

Tin học :: Your first category :: Hoàn chỉnh kiến thức I12A

Tại sao không có chuyển đổi từ trạng thái ready sang trạng thái blocked?

Tại sao không có chuyển đổi từ trạng thái ready sang trạng thái blocked?
  quocbao2021 8/3/2012, 08:37

.1. Các trạng thái của tiến trìnhTrạng thái của tiến trình tại một thời điểm được xác định bởi hoạt động hiện thời của tiến trình tại thời điểm đó. Trong quá trình sống, một tiến trình thay đổi trạng thái do nhiều nguyên nhân như : phải chờ một sự kiện nào đó xảy ra, hay đợi một thao tác nhập/xuất hoàn tất, buộc phải dừng hoạt động do đã hết thời gian xử lý …Tại một thời điểm, một tiến trình có thể nhận trong một các trạng thái sau đây :Mới tạo : tiến trình đang được tạo lập. Running : các chỉ thị của tiến trình đang được xử lý. Blocked : tiến trình chờ được cấp phát một tài nguyên, hay chờ mộtsự kiện xảy ra .Ready : tiến trình chờ được cấp phát CPU để xử lý.Kết thúc : tiến trình hoàn tất xử lý.Tại một thời điểm, chỉ có một tiến trình có thể nhận trạng thái running trên một bộ xử lý bất kỳ. Trong khi đó, nhiều tiến trình có thể ở trạng thái blocked hay ready.Các cung chuyển tiếp trong sơ đồ trạng thái biễu diễn sáu sự chuyển trạng thái có thể xảy ra trong các điều kiện sau :Tiến trình mới tạo được đưa vào hệ thốngBộ điều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPUTiến trình kết thúcTiến trình yêu cầu một tài nguyên nhưng chưa được đáp ứng vì tài nguyên chưa sẵn sàng để cấp phát tại thời điểm đó ; hoặc tiến trình phải chờ một sự kiện hay thao tác nhập/xuất.Bộ điều phối chọn một tiến trình khác để cho xử lý .Tài nguyên mà tiến trình yêu cầu trở nên sẵn sàng để cấp phát ; hay sự kiện hoặc thao tác nhập/xuất tiến trình đang đợi hoàn tất.


quocbao2021
Tổng số bài gửi : 10
Join date : 22/02/2012

Tại sao không có chuyển đổi từ trạng thái ready sang trạng thái blocked?
 
Tại sao không có chuyển đổi từ trạng thái ready sang trạng thái blocked?

Tại sao không có chuyển đổi từ trạng thái ready sang trạng thái blocked?
  TranTrungHienI12C 9/3/2012, 11:00

Mình xin bổ sung thêm về các trạng thái tiến trình:Từ khi được đưa vào hệ thống cho đến khi kết thúc tiến trình tồn tại ở các trạng thái khác nhau. Trạng thái của tiến trình tại một thời điểm được xác định bởi hoạt động hiện thời của tiến trình tại thời điểm đó.

Tiến trình hai trạng thái:

Một số ít hệ điều hành chỉ cho phép tiến trình tồn tại ở một trong hai trạng thái: Not Running và Running. Khi hệ điều hành tạo ra một tiến trình mới, hệ điều hành đưa tiến trình đó vào hệ thống ở trạng thái Not Running, tiến trình ở trạng thái này để chờ được chuyển sang trạng thái Running. Vì một lý do nào đó, tiến trình đang thực hiện bị ngắt thì bộ điều phối tiến trình của hệ điều hành sẽ thu hồi lại processor của tiến trình này và chọn một tiến trình ở trạng thái Not running để cấp processor cho nó và chuyển nó sang trạng thái Running. Tiến trình bị thu hồi processor sẽ được chuyển về lại trạng thái Not running.Tại một thời điểm xác định chỉ có duy nhất một tiến trình ở trạng thái Runnig, nhưng có thể có nhiều tiến trình ở trạng thái Not running, các tiến trình ở trạng thái Not running được chứa trong một hàng đợi (Queue). Tiến trình đang ở trạng thái Running bị chuyển sang trạng thái Not running sẽ được đưa vào hàng đợi. Hình vẽ sau đây mô tả việc chuyển trạng thái tiến trình trong các hệ điều hành sử dụng 2 trạng thái tiến trình.

Tiến trình ba trạng thái:

Đa số hệ điều hành đều cho phép tiến trình tồn tại ở một trong ba trạng thái, đó là: ready, running, blocked:• Trạng thái Ready (sẵn sàng): Ngay sau khi khởi tạo tiến trình, đưa tiến trình vào hệ thống và cấp phát đầy đủ tài nguyên (trừ processor) cho tiến trình, hệ điều hành đưa tiến trình vào trạng thái ready. Hay nói cách khác, trạng thái ready là trạng thái của một tiến trình trong hệ thống đang chờ được cấp processor để bắt đầu thực hiện.• Trạng thái Running (thực hiện): Là trạng thái mà tiến trình đang được sở hữu processor để hoạt động, hay nói cách khác là các chỉ thị của tiến trình đang được thực hiện/ xử lý bởi processor.• Trạng thái Blocked (khoá): Là trạng thái mà tiến trình đang chờ để được cấp phát thêm tài nguyên, để một sự kiện nào đó xảy ra, hay một quá trình vào/ra kết thúc.

Tiến trình 4 trạng thái:

Trong môi trường hệ điều hành đa nhiệm thì việc tổ chức các Queue để lưu các tiến trình chưa thể hoạt động là cần thiết, nhưng nếu tồn tại quá nhiều tiến trình trong Queue, hay chính xác hơn trong bộ nhớ chính, sẽ dẫn đến trình trạng lãng phí bộ nhớ, không còn đủ bộ nhớ để nạp các tiến trình khác khi cần thiết. Mặt khác nếu các tiến trình trong Queue đang chiếm giữ tài nguyên của hệ thống, mà những tài nguyên này lại là những tài nguyên các tiến trình khác đang cần, điều này dẫn đến tình trạng sử dụng tài nguyên không hợp lý, làm cho hệ thống thiếu tài nguyên (thực chất là thừa) trầm trọng và có thể làm cho hệ thống tắc nghẽn. Với những lý do trên các hệ điều hành đa nhiệm thiết kế thêm một trạng thái tiến trình mới, đó là trạng thái Suspend (tạm dừng). Trạng thái này rất cần thiết cho các hệ thống sử dụng kỹ thuật Swap trong việc cấp phát bộ nhớ cho các tiến trình. Trạng thái Suspend là trạng thái của một tiến trình khi nó đang được lưu trữ trên bộ nhớ phụ, hay chính xác hơn đây là các tiến trình đang ở trong trạng thái blocked và/hoặc ready bị hệ điều hành chuyển ra đĩa để thu hồi lại không gian nhớ đã cấp cho tiến trình hoặc thu hồi lại tài nguyên đã cấp cho tiến trình để cấp cho một tiến trình khác đang rất cần được nạp vào bộ nhớ tại thời điểm hiện tại.

Tiến trình 5 trạng thái:

Trong thực tế hệ điều hành thiết kế 2 trạng thái suspend, một trạng thái suspend dành cho các tiến trình từ blocked chuyển đến, trạng thái này được gọi là blocked-suspend và một trạng thái suspend dành cho các tiến trình từ ready chuyển đến, trạng thái này được gọi là ready-suspend.Tới đây ta có thể hiểu các trạng thái tiến trình như sau:Ở trạng thái Ready tiến trình được định vị trong bộ nhớ chính và đang chờ được cấp processor để thực hiện.Ở trạng thái Blocked tiến trình được định vị trong bộ nhớ chính và đang đợi một sự kiện hay một quá trình I/O nào đó. Ở trạng thái Blocked-suspend tiến trình đang bị chứa trên bộ nhớ phụ (đĩa) và đang đợi một sự kiện nào đó..Ở trạng thái Ready-suspend tiến trình đang bị chứa trên bộ nhớ phụ nhưng sẵn sàng thực hiện ngay sau khi được nạp vào bộ nhớ chính.

Tại sao không có chuyển đổi từ trạng thái ready sang trạng thái blocked?

TranTrungHienI12C
Tổng số bài gửi : 19
Join date : 16/02/2012

Tại sao không có chuyển đổi từ trạng thái ready sang trạng thái blocked?
 
Tại sao không có chuyển đổi từ trạng thái ready sang trạng thái blocked?

Tại sao không có chuyển đổi từ trạng thái ready sang trạng thái blocked?

Tại sao không có chuyển đổi từ trạng thái ready sang trạng thái blocked?
 Similar topics

Tin học :: Your first category :: Hoàn chỉnh kiến thức I12A

Permissions in this forum:

Bạn không có quyền trả lời bài viết

Trong bài viết trước mình đã giới thiệu sơ lược về định nghĩa, đặc điểm và phân loại tiến trình, ở bài viết này, mình xin tiếp tục trình bày về vấn đề quan trọng đó là điều phối tiến trình trong hệ điều hành.

Các trạng thái của tiến trình

Trạng thái của tiến trình tại một thời điểm được xác định bởi hoạt động hiện thời của tiến trình tại thời điếm đó. Trong quá trình sống một tiến trình thay đổi trạng thái do nhiều nguyên nhân như: phải chờ một sự kiện nào đó xảy ra ,hay đợi một thao tác nhập xuất hoàn tất, buộc phải dừng hoạt động do hết thời gian xử lý…… Tại một thời điểm một tiến trình có thể nhận một trong các trạng thái sau đây: * Mới tạo(new): tiến trình đang được tạo lập * Running: các chỉ thị của tiến trình đang được xử lý. * Blocked: tiến trình chờ được cấp phát tài nguyên,hay chờ một sự kiện xảy ra. * Ready(ready): tiến trình chờ được cấp phát CPU để xử lý. * Waiting (đợi): tiến trình phải dừng vì thiếu tài nguyên hoặc chờ một sự kiện nào đó. * Kết thúc(halt) : tiến trình hoàn tất xử lý Các trạng thái của tiến trình được biểu diễn qua sơ đồ sau:

Tại sao không có chuyển đổi từ trạng thái ready sang trạng thái blocked?

Mục đích

Sự công bằng: Các tiến trình chia sẻ CPU một cách công bằng,không có tiến trình nào phải chờ đợi vô hạn để được cấp phát CPU. Tính hiệu quả: Hệ thống phải tận dụng được CPU 100% thời gian.(thời gian chờ trung bình ngắn). Thời gian đáp ứng hợp lý: Cực tiểu hóa thời gian hồi đáp cho các tương tác của người sử dụng. Thời gian lưu lại trong hệ thống: Cực tiểu hóa thời gian hoàn tất các ác vụ xử lý. Thông lượng tối đa: Cực đại hóa số công việc được xử lý trong một đơn vị thời gian .

Tuy nhiên thường không thể thỏa mãn tất cả các mục tiêu kể trên vì bản thân chúng có sự mâu thuẩn nhau mà chỉ có thể dung hòa chúng ở mức độ nào đó.

Cơ chế điều phối độc quyền

Nguyên lý: Cơ chế này cho phép một tiến trình khi nhận được CPU sẽ có quyền đọc chiếm CPU đến khi hoàn tất xử lý hoặc tự giải phóng CPU.Khi đó quyết định điều phối sẻ xảy ra các trường hợp sau. • Tiến trình chuyển từ trạng thái running --> blockit • Kết thúc tiến trình. Các giải thuật độc quyền dễ cài đặt thuật toán.Tuy nhiên lại không thích hợp cho hệ thống tổng quát nhiều người dùng.Vì nếu cho tiến trình thời gian chiếm giử CPU tùy ý thì sẻ ngăn cản quá trình xử lý của các tiến trình còn lại.

Cơ chế điều phối không độc quyền.

Ngược với nguyên lý độc quyền ,điều phối theo nguyên lý không đọc quyền cho phép tạm dừng hoạt động của tiến trình đang sẵn sang xử lý.Khi một tiến trình nhận CPU nó vấn được sử dụng CPU cho đến khi hoàn tất hoặc tự nguyện giải phóng CPU,nhưng một tiến trình khác có độ ưu tiên cao hơn có thể dành quyền sử dụng CPU của tiến trình ban đầu.Như vậy tiến trình có thể dừng hoạt động bắt cứ lúc nào mà không được báo trước để tiến trình khác xử lý.Các quyết định điều phối xảy ra khi: • Tiến trình chuyển từ trạng thái running --> blocked. • Một tiến trình chờ trạng thái xử lý. • Chuyển từ trạng thái chờ(blocked) --> ready. • Khi một tiến trình kết thúc. Các thuật toán điều phối theo nguyên tắc không đọc quyến ngăn cản tình trạng một tiến trình đọc chiếm CPU.

Trong bài viết sau mình sẽ trình bày về chiến lược một hàng đợi nhiều tiến trình chờ phân phối xử lý. Trong chiến lược một hàng đợi này có 4 thuật toán chính FIFO, SJF ,RR, thuật toán ƯU TIÊN

Mr.Nara