Khái niệm về tiến trình và các trạng thái của tiến trình
Trang 1 trong tổng số 1 trang
Khái niệm về tiến trình và các trạng thái của tiến trình
1. Khái niệm về tiến trình:
Tiến trình là một chương trình đang thực thi, đang chiếm lấy tài nguyên hệ thống như là CPU, memory, các tập tin để hoàn thành công việc. Cần phân biệt giữa một tiến trình và một chương trình Một chương trình là một thực thể thụ động chẳng hạn như những file lưu trữ trên đĩa, chứa các đoạn code để yêu cầu máy tính thực hiện một tác vụ nào đó. Một tiến trình là một thực thể hoạt động với bộ đếm chương trình được chỉ đến câu lệnh kế tiếp được thực thi và một tập các tài nguyên có liên quan
Mặc dù 2 tiến trình có thể được sinh ra từ một chương trình nhưng chúng vẫn được xem là 2 tiến trình độc lập với nhau. Ví dụ , chúng ta có thể chạy cùng lúc nhiều chương trình mail, nhiều chương trình Word.
Một tiến trình thường có chứa một số thông tin chẳng hạn như là bộ đếm chương trình, stack, vùng chứa mã lệnh, vùng chứa liệu và biến môi trường....
2. Các trạng thái của tiến trình:
Chức năng chính của CPU là thực thi những lệnh máy ở trong bộ nhớ chính. Khi một chương trình được thực thi thì một tiến trình được tạo ra cho chương trình đó. Khi một tiến trình đang thực thi nó có thể thay đổi trạng thái. Trạng thái của tiến trình có thể được định nghĩa như là hoạt động hiện thời của tiến trình. Mỗi một tiến trình có thể có một trong những trạng thái sau:
✦ New: một tiến trình được tạo ra nhưng chưa được cho vào trong hàng đợi tiến trình bởi hệ điều hành. Thông thường một tiến trình mới thì chưa được nạp vào ộ nhớ. Khi này hệ điều hành thực hiện những công việc sau: Tạo một định danh cho process (proces i entifier – pid),Tạo các cấu trúc để quản lý process như là: Memory table, file table, Process Control Block (PCB),... Process mới ạo ra có thể chưa được thực thi ngay, bởi vì tài nguyên hệ thống có hạn, thông thường chỉ phục vụ một process tại một thời điểm. Process có thể đặt trong bộ nhớ thứ cấp để tiết kiệm không gian bộ nhớ chính
✦ Running: tiến trình đang được thực thi, với môn học này ta giả sử chỉ có một vi xử lý nên tại một thời điểm chỉ có một tiến trình được thực thi
✦ Blocked: tiến trình không thể được thực thi cho đến khi nào một sự kiện xuất hiện như là việc hoàn tất I/O
✦ Ready: tiến trình chờ được thực thi khi có cơ hội sở hữu CPU
✦ Terminate : tiến trình đã hoàn thành sự thực thi, rời khỏi bảng hàng đợi các tiến trình.
Tại một thời điểm chỉ có một tiến trình được chạy trên processor, mặc dù có thể có nhiều tiến trình khác đang trong trạng thái sẵn sàng hay trạng thái bị blocke. Việc chuyển trạng thái của các tiến trình có thể diễn tả như sau:
✦ Null – new: một tiến trình mới được tạo để thực thi một chương trình
✦ New – ready: hệ điều hành sẽ chuyển từ trạng thái new sang ready khi nó đã chuẩn bị được tất cả các yêu cầu của tiến trình. Hầu hết các hệ thống thiết lập một vài giới hạn dựa trên các tiến trình đã tồn tại hay số lượng bộ nhớ ảo đã được trao cho các tiến trình đax tồn tại. Việc giới hạn này đảm bảo rằng không có quá nhiều tiến trình hoạt động để mà làm giảm sự tối ưu
✦ Ready – running: khi thời gian được chọn cho một tiến trình mới chạy, hệ điều hành chọn một tiến trình đang ở trong trong thái sẵn sàng
✦ Running – exit: tiến trình hiện tại đang được chạy được kết thúc bởi hệ điều hành nếu tiến trình chỉ định hoàn tất hay là nó đã bị bỏ dở
✦ Running – ready: lý do thông thường cho chuyển trạng thái trên là tiến trình đang chạy đã đạt đến thời gian tối đa cho phép. Thật sự, tất cả các hệ điều hành đa chương đều áp đặt quy tắc về thời gian như thế. Có một số nguyên nhân cho sự thay đổi trạng thái mà không được hiện thực trong tất cả các hệ điều hành. Ví dụ , nếu một hệ điều hành nó có gán một mức ưu tiên khác nhau cho các tiến trình khi đó nó có thể cho phép một tiến trình được ưu tiên trước. Giả sử rằng tiến trình A đang chạy ở độ ưu tiên, tiến trình B có độ ưu tiên cao hơn tiến trình A đã bị khóa. Nếu hệ điều hành nhận ra rằng những sự kiện mà tiến trình B đang chờ đã xuất hiện, khi đó nó có thể ngắt tiến trình A và giao quyền xử lý cho tiến trình B. Cuối cùng một tiến trình có thể tự mình trả quyền điều khiển CPU cho hệ thống
✦ Running – locke : một tiến trình sẽ bị đặt vào trong trạng thái Blocke nếu nó yêu cầu một vài tài nguyên nào đó mà nó bị buộc phải đợi. Một yêu cầu đến hệ điều hành thông thường là một lời gọi đến một dịch vụ của hệ thống, chẳng hạn như là lời gọi từ chương trình đang chạy đến một dịch vụ mà là một phần mã của hệ điều hành. Ví dụ , một tiến trình có thể yêu cầu một dịch vụ từ hệ điều hành mà hệ điều hành không thể thực hiện ngay lập tức. Nó có thể yêu cầu một tài nguyên, chẳng hạn một File hay là một phần chia sẽ trên bộ nhớ ảo mà ngay thời điểm đó nó không có sẵn. Hay một tiến trình có thể khởi tạo một hoạt động chẳng hạn như là một thao tác I/O mà thao tác này phải hoàn tất trước khi tiến trình có thể tiếp tục. Hoặc khi một tiến trình liên kết với một tiến trình khác nó có thể bị Blocke khi nó phải đợi đầu vào từ tiến trình khác hoặc khi nó phải đợi thông điệp từ tiến trình khác
✦ Blocked – ready: một tiến trình đang ở trong trạng thái bị khóa sẽ chuyển sang trạng thái sẵn sàng khi mà sự kiện mà nó yêu cầu đã xuất hiện
✦ Ready – exit: rõ ràng trong sơ đồ trên không có chuyển trạng thái này
Trong một vài hệ thống một tiến trình cha có thể kết thúc tiến trình con bất cứ lúc nào, cũng thế nếu một tiến trình cha nếu bị kết thúc thì tất cả các tiến trình con cũng sẽ bị kết thúc theo.
Tiến trình là một chương trình đang thực thi, đang chiếm lấy tài nguyên hệ thống như là CPU, memory, các tập tin để hoàn thành công việc. Cần phân biệt giữa một tiến trình và một chương trình Một chương trình là một thực thể thụ động chẳng hạn như những file lưu trữ trên đĩa, chứa các đoạn code để yêu cầu máy tính thực hiện một tác vụ nào đó. Một tiến trình là một thực thể hoạt động với bộ đếm chương trình được chỉ đến câu lệnh kế tiếp được thực thi và một tập các tài nguyên có liên quan
Mặc dù 2 tiến trình có thể được sinh ra từ một chương trình nhưng chúng vẫn được xem là 2 tiến trình độc lập với nhau. Ví dụ , chúng ta có thể chạy cùng lúc nhiều chương trình mail, nhiều chương trình Word.
Một tiến trình thường có chứa một số thông tin chẳng hạn như là bộ đếm chương trình, stack, vùng chứa mã lệnh, vùng chứa liệu và biến môi trường....
2. Các trạng thái của tiến trình:
Chức năng chính của CPU là thực thi những lệnh máy ở trong bộ nhớ chính. Khi một chương trình được thực thi thì một tiến trình được tạo ra cho chương trình đó. Khi một tiến trình đang thực thi nó có thể thay đổi trạng thái. Trạng thái của tiến trình có thể được định nghĩa như là hoạt động hiện thời của tiến trình. Mỗi một tiến trình có thể có một trong những trạng thái sau:
✦ New: một tiến trình được tạo ra nhưng chưa được cho vào trong hàng đợi tiến trình bởi hệ điều hành. Thông thường một tiến trình mới thì chưa được nạp vào ộ nhớ. Khi này hệ điều hành thực hiện những công việc sau: Tạo một định danh cho process (proces i entifier – pid),Tạo các cấu trúc để quản lý process như là: Memory table, file table, Process Control Block (PCB),... Process mới ạo ra có thể chưa được thực thi ngay, bởi vì tài nguyên hệ thống có hạn, thông thường chỉ phục vụ một process tại một thời điểm. Process có thể đặt trong bộ nhớ thứ cấp để tiết kiệm không gian bộ nhớ chính
✦ Running: tiến trình đang được thực thi, với môn học này ta giả sử chỉ có một vi xử lý nên tại một thời điểm chỉ có một tiến trình được thực thi
✦ Blocked: tiến trình không thể được thực thi cho đến khi nào một sự kiện xuất hiện như là việc hoàn tất I/O
✦ Ready: tiến trình chờ được thực thi khi có cơ hội sở hữu CPU
✦ Terminate : tiến trình đã hoàn thành sự thực thi, rời khỏi bảng hàng đợi các tiến trình.
Tại một thời điểm chỉ có một tiến trình được chạy trên processor, mặc dù có thể có nhiều tiến trình khác đang trong trạng thái sẵn sàng hay trạng thái bị blocke. Việc chuyển trạng thái của các tiến trình có thể diễn tả như sau:
✦ Null – new: một tiến trình mới được tạo để thực thi một chương trình
✦ New – ready: hệ điều hành sẽ chuyển từ trạng thái new sang ready khi nó đã chuẩn bị được tất cả các yêu cầu của tiến trình. Hầu hết các hệ thống thiết lập một vài giới hạn dựa trên các tiến trình đã tồn tại hay số lượng bộ nhớ ảo đã được trao cho các tiến trình đax tồn tại. Việc giới hạn này đảm bảo rằng không có quá nhiều tiến trình hoạt động để mà làm giảm sự tối ưu
✦ Ready – running: khi thời gian được chọn cho một tiến trình mới chạy, hệ điều hành chọn một tiến trình đang ở trong trong thái sẵn sàng
✦ Running – exit: tiến trình hiện tại đang được chạy được kết thúc bởi hệ điều hành nếu tiến trình chỉ định hoàn tất hay là nó đã bị bỏ dở
✦ Running – ready: lý do thông thường cho chuyển trạng thái trên là tiến trình đang chạy đã đạt đến thời gian tối đa cho phép. Thật sự, tất cả các hệ điều hành đa chương đều áp đặt quy tắc về thời gian như thế. Có một số nguyên nhân cho sự thay đổi trạng thái mà không được hiện thực trong tất cả các hệ điều hành. Ví dụ , nếu một hệ điều hành nó có gán một mức ưu tiên khác nhau cho các tiến trình khi đó nó có thể cho phép một tiến trình được ưu tiên trước. Giả sử rằng tiến trình A đang chạy ở độ ưu tiên, tiến trình B có độ ưu tiên cao hơn tiến trình A đã bị khóa. Nếu hệ điều hành nhận ra rằng những sự kiện mà tiến trình B đang chờ đã xuất hiện, khi đó nó có thể ngắt tiến trình A và giao quyền xử lý cho tiến trình B. Cuối cùng một tiến trình có thể tự mình trả quyền điều khiển CPU cho hệ thống
✦ Running – locke : một tiến trình sẽ bị đặt vào trong trạng thái Blocke nếu nó yêu cầu một vài tài nguyên nào đó mà nó bị buộc phải đợi. Một yêu cầu đến hệ điều hành thông thường là một lời gọi đến một dịch vụ của hệ thống, chẳng hạn như là lời gọi từ chương trình đang chạy đến một dịch vụ mà là một phần mã của hệ điều hành. Ví dụ , một tiến trình có thể yêu cầu một dịch vụ từ hệ điều hành mà hệ điều hành không thể thực hiện ngay lập tức. Nó có thể yêu cầu một tài nguyên, chẳng hạn một File hay là một phần chia sẽ trên bộ nhớ ảo mà ngay thời điểm đó nó không có sẵn. Hay một tiến trình có thể khởi tạo một hoạt động chẳng hạn như là một thao tác I/O mà thao tác này phải hoàn tất trước khi tiến trình có thể tiếp tục. Hoặc khi một tiến trình liên kết với một tiến trình khác nó có thể bị Blocke khi nó phải đợi đầu vào từ tiến trình khác hoặc khi nó phải đợi thông điệp từ tiến trình khác
✦ Blocked – ready: một tiến trình đang ở trong trạng thái bị khóa sẽ chuyển sang trạng thái sẵn sàng khi mà sự kiện mà nó yêu cầu đã xuất hiện
✦ Ready – exit: rõ ràng trong sơ đồ trên không có chuyển trạng thái này
Trong một vài hệ thống một tiến trình cha có thể kết thúc tiến trình con bất cứ lúc nào, cũng thế nếu một tiến trình cha nếu bị kết thúc thì tất cả các tiến trình con cũng sẽ bị kết thúc theo.
VoThanhTrung11H1010141- Tổng số bài gửi : 4
Join date : 23/02/2012
Age : 36
Similar topics
» Thảo luận Bài 4
» Thảo luận Bài 4
» Khái niệm và trạng thái của tiến trình
» Thảo luận Bài 4
» Trình bày khái niệm và mô hình chuyển trạng thái của tiến trình?
» Thảo luận Bài 4
» Khái niệm và trạng thái của tiến trình
» Thảo luận Bài 4
» Trình bày khái niệm và mô hình chuyển trạng thái của tiến trình?
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết