Cài đặt trong Kernel-space và User-space: Một số thread mức User được cài đặt bằng một thread mức kernel.

Một phần của tài liệu Giáo trình tổng quan về DHD (Trang 48)

- Đọc/Ghi ngày, tháng, năm

c/ Cài đặt trong Kernel-space và User-space: Một số thread mức User được cài đặt bằng một thread mức kernel.

Hình 3.8: một thread của hệđiều hành quản lý một số thread của tiến trình.

Ví dụ: giả sử quantum của process=50 msec, quantum của thread=5 msec và giả sử tiến trình A cĩ ba thread, tiến trình B cĩ 4 thread.

- Nếu việc điều phối thread được thực hiện mức user-space thì thứ tựđiều phối cĩ thể là A1, A2, A3, A1, A2, A3 nhưng khơng thể là A1, B1, A2, B2, A3, B3; vì khi tiến trình A được cho thực thi với quantum=50 và mỗi thread được thực thi với quantum=5 thì khơng thể A1 đến B1 được do thread của tiến trình nào tiến trình đĩ quản lý và tiến trình A chưa hết quantum nên thread của tiến trình B khơng thể thực hiện.

Hình 3.9: điều phối thread ở mức user, một thứ tựđiểu phối cĩ thể và khơng thể

- Nếu việc điều phối thread được thực hiện mức kernel-space thì thứ tựđiều phối A1 đến B1 là cĩ thể vì các thread do hệđiều hành quản lý

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

Việc chuyển trạng thái của tiến trình là do bộđiều phối (scheduler) thực hiện và tại một thời điểm, tiến trình cĩ thể nhận một trong các trạng thái sau đây :

a/ New: tiến trình mới được tạo đang ở trong bộ nhớ tạm trên đĩa cứng. b/ Ready: tiến trình trong bộ nhớ và chờđược cấp phát CPU.

c/ Running: tiến trình trong bộ nhớđang thực thi.

d/ Blocked (wait): tiến trình trong bộ nhớ chờ được cấp phát tài nguyên, hoặc chờ thao tác nhập/xuất hồn tất hoặc chờ một sự kiện nào đĩ.

e/ End: tiến trình trong bộ nhớ hồn tất xử lý.

3.1.3.1 Sơđồ chuyn trng thái tiến trình

Hình 3.11: sơđồ chuyển trạng thái giữa các tiến trình.

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ý nào đĩ. Trong khi đĩ, cĩ thể cĩ nhiều tiến trình ở 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 : - Cung 1: Tiến trình mới tạo, nếu bộ nhớ cịn trống, sẽ được đưa vào bộ nhớ và sẵn sàng nhận CPU, khi đĩ tiến trình từ trạng thái New được chuyển sang trạng thái Ready.

- Cung 2: Bộđiều phối cấp phát cho tiến trình một khoảng thời gian sử dụng CPU và cho tiến trình thực hiện, khi đĩ tiến trình từ trạng thái Ready được chuyển sang trạng thái Running.

- Cung 3: Khi tiến trình kết thúc việc thực hiện, khi đĩ tiến trình từ trạng thái Running được chuyển sang trạng thái End.

- Cung 4: Khi tiế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 hoặc tiến trình chờ thao tác nhập/xuất hồn tất hoặc tiến trình chờ một sự kiện nào đĩ, khi đĩ tiến trình được chuyển từ trạng thái Running sang trạng thái Blocked.

- Cung 5: Khi tiến trình tạm dừng vì hết thời gian sử dụng CPU, bộđiều phối sẽ chọn một tiến trình khác để cho xử lý, khi đĩ tiến trình được chuyển từ trạng thái Running sang trạng thái Ready.

- Cung 6: Khi 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 mà tiến trình đang đợi đã hồn tất, khi đĩ bộ tiến trình được chuyển từ trạng thái Blocked sang trạng thái Ready.

New End Ready Running Blocked 1 5 3 4 6 2

3.1.3.2 Các chếđộ x lý ca tiến trình

+ Tập lệnh của CPU được phân chia thành tập lệnh đặc quyền (các lệnh nếu sử dụng khơng chính xác, cĩ thểảnh hưởng xấu đến hệ thống) và tập lệnh khơng đặc quyền (khơng ảnh hưởng tới hệ thống). Phần cứng chỉ cho phép các lệnh đặc quyền được thực hiện trong chếđộđặc quyền. + Thơng thường chỉ cĩ hệđiều hành hoạt động trong chếđộ đặc quyền, các tiến trình của người dùng sẽ hoạt động trong chếđộ khơng đặc quyền.

3.1.4 Khối quản lý tiến trình (Process Control Block: PCB)

Hệđiều hành quản lý các tiến trình thơng qua bảng tiến trình (process table), mỗi mục trong bảng gọi là PCB (khối quản lý tiến trình), PCB lưu thơng tin về một tiến trình gồm cĩ các thơng tin sau:

Một phần của tài liệu Giáo trình tổng quan về DHD (Trang 48)