Bài giảng Hệ điều hành - Phạm Đăng Hải - Chương 2: Quản lý tiến trình

Chương trình đang thực hiện

Được cung cấp tài nguyên (CPU, bộ nhớ, thiết bị vào/ra. . .)

để hoàn thành công việc

Tài nguyên được cấp khi khởi tạo tiến trình hay khi tiến trình

đang thực hiện

Gọi là tiến trình (process )

Hệ thống là tập các tiến trình thực hiện đồng thời

Tiến trình hệ điều hành Thực hiện mã lệnh hệ thống

Tiến trình người dùng Thực hiện mã lệnh người dùng

Tiến trình có thể chứa một hoặc nhiều luồng điều khiển

Trách nhiệm của Hệ điều hành: Đảm bảo họat động của tiến

trình và tiểu trình (luồng )

Tạo/xóa tiến trình (người dùng, hệ thống)

Điều phối tiến trình

Cung cấp cơ chế đồng bộ, truyền thông và ngăn ngừa tình

trạng bế tắc giữa các tiến trình

pdf419 trang | Chuyên mục: Hệ Điều Hành | Chia sẻ: dkS00TYs | Lượt xem: 1844 | Lượt tải: 4download
Tóm tắt nội dung Bài giảng Hệ điều hành - Phạm Đăng Hải - Chương 2: Quản lý tiến trình, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 3 0 3
P3 2 1 1
P4 0 0 2
Allocation
R0 R1 R2
P0 0 0 0
P1 2 0 2
P2 0 0 1
P3 1 0 0
P4 6 0 2
Request
Thực hiện thuật toán chỉ ra bế tắc
Tiến trình P0 P1 P2 P3 P4
Finish T F F F F
Work (0, 1, 0)
P0 có thể kết thúc nhưng hệ thống đang bế tắc.
Các tiến trình đang chờ đợi lẫn nhau (P1,P2,P3,P4)
197 / 201
Chương 2: Quản lý tiến trình
5. Bế tắc và xử lý bế tắc
5.6 Nhận biết và khắc phục
Ví dụ minh họa (tiếp)
P2 yêu cầu thêm 1 đơn vị tài nguyên R2
Trạng thái cung cấp tài nguyên tại thời điểm t1
R0 R1 R2
P0 0 1 0
P1 2 0 0
P2 3 0 3
P3 2 1 1
P4 0 0 2
Allocation
R0 R1 R2
P0 0 0 0
P1 2 0 2
P2 0 0 1
P3 1 0 0
P4 6 0 2
Request
Thực hiện thuật toán chỉ ra bế tắc
Tiến trình P0 P1 P2 P3 P4
Finish T F F F F
Work (0, 1, 0)
P0 có thể kết thúc nhưng hệ thống đang bế tắc.
Các tiến trình đang chờ đợi lẫn nhau (P1,P2,P3,P4)
197 / 201
Chương 2: Quản lý tiến trình
5. Bế tắc và xử lý bế tắc
5.6 Nhận biết và khắc phục
Ví dụ minh họa (tiếp)
P2 yêu cầu thêm 1 đơn vị tài nguyên R2
Trạng thái cung cấp tài nguyên tại thời điểm t1
R0 R1 R2
P0 0 1 0
P1 2 0 0
P2 3 0 3
P3 2 1 1
P4 0 0 2
Allocation
R0 R1 R2
P0 0 0 0
P1 2 0 2
P2 0 0 1
P3 1 0 0
P4 6 0 2
Request
Thực hiện thuật toán chỉ ra bế tắc
Tiến trình P0 P1 P2 P3 P4
Finish T F F F F
Work (0, 1, 0)
P0 có thể kết thúc nhưng hệ thống đang bế tắc.
Các tiến trình đang chờ đợi lẫn nhau (P1,P2,P3,P4)
197 / 201
Chương 2: Quản lý tiến trình
5. Bế tắc và xử lý bế tắc
5.6 Nhận biết và khắc phục
Ví dụ minh họa (tiếp)
P2 yêu cầu thêm 1 đơn vị tài nguyên R2
Trạng thái cung cấp tài nguyên tại thời điểm t1
R0 R1 R2
P0 0 1 0
P1 2 0 0
P2 3 0 3
P3 2 1 1
P4 0 0 2
Allocation
R0 R1 R2
P0 0 0 0
P1 2 0 2
P2 0 0 1
P3 1 0 0
P4 6 0 2
Request
Thực hiện thuật toán chỉ ra bế tắc
Tiến trình P0 P1 P2 P3 P4
Finish T F F F F
Work (0, 1, 0)
P0 có thể kết thúc nhưng hệ thống đang bế tắc.
Các tiến trình đang chờ đợi lẫn nhau (P1,P2,P3,P4)
197 / 201
Chương 2: Quản lý tiến trình
5. Bế tắc và xử lý bế tắc
5.6 Nhận biết và khắc phục
Khắc phục bế tắc: Phương pháp kết thúc tiến trình
Nguyên tắc: Hủy bỏ các tiến trình đang trong tình trạng bế tắc và
lấy lại tài nguyên đã cấp cho tiến trình bị hủy bỏ
Hủy bỏ tất cả các tiến trình
Nhanh chóng hủy bỏ bế tắc
Quá tốn kém
Các tiến trình bị hủy bỏ có thể gần kết thúc
Hủy bỏ lần lượt tiến trình cho tới khi bế tắc không xảy ra
Sau khi hủy bỏ, phải kiểm tra xem bế tắc còn tồn tại không
Thuật toán kiểm tra bế tắc có độ phức tạp m ∗ n2
Cần chỉ ra thứ tự tiến trình bị hủy bỏ để phá vỡ bế tắc
Độ ưu tiên của tiến trình.
Tiến trình đã tồn tại bao lâu, còn bao lâu nữa thì kết thúc
Tài nguyên tiến trình đang chiếm giữ, còn cần để kết thúc
. . .
Vấn đề hủy bỏ tiến trình
Tiến trình đang cập nhật file ⇒ File không hoàn chỉnh
Tiến trình sử dụng máy in ⇒ Reset trạng thái máy in
198 / 201
Chương 2: Quản lý tiến trình
5. Bế tắc và xử lý bế tắc
5.6 Nhận biết và khắc phục
Khắc phục bế tắc: Phương pháp kết thúc tiến trình
Nguyên tắc: Hủy bỏ các tiến trình đang trong tình trạng bế tắc và
lấy lại tài nguyên đã cấp cho tiến trình bị hủy bỏ
Hủy bỏ tất cả các tiến trình
Nhanh chóng hủy bỏ bế tắc
Quá tốn kém
Các tiến trình bị hủy bỏ có thể gần kết thúc
Hủy bỏ lần lượt tiến trình cho tới khi bế tắc không xảy ra
Sau khi hủy bỏ, phải kiểm tra xem bế tắc còn tồn tại không
Thuật toán kiểm tra bế tắc có độ phức tạp m ∗ n2
Cần chỉ ra thứ tự tiến trình bị hủy bỏ để phá vỡ bế tắc
Độ ưu tiên của tiến trình.
Tiến trình đã tồn tại bao lâu, còn bao lâu nữa thì kết thúc
Tài nguyên tiến trình đang chiếm giữ, còn cần để kết thúc
. . .
Vấn đề hủy bỏ tiến trình
Tiến trình đang cập nhật file ⇒ File không hoàn chỉnh
Tiến trình sử dụng máy in ⇒ Reset trạng thái máy in
198 / 201
Chương 2: Quản lý tiến trình
5. Bế tắc và xử lý bế tắc
5.6 Nhận biết và khắc phục
Khắc phục bế tắc: Phương pháp kết thúc tiến trình
Nguyên tắc: Hủy bỏ các tiến trình đang trong tình trạng bế tắc và
lấy lại tài nguyên đã cấp cho tiến trình bị hủy bỏ
Hủy bỏ tất cả các tiến trình
Nhanh chóng hủy bỏ bế tắc
Quá tốn kém
Các tiến trình bị hủy bỏ có thể gần kết thúc
Hủy bỏ lần lượt tiến trình cho tới khi bế tắc không xảy ra
Sau khi hủy bỏ, phải kiểm tra xem bế tắc còn tồn tại không
Thuật toán kiểm tra bế tắc có độ phức tạp m ∗ n2
Cần chỉ ra thứ tự tiến trình bị hủy bỏ để phá vỡ bế tắc
Độ ưu tiên của tiến trình.
Tiến trình đã tồn tại bao lâu, còn bao lâu nữa thì kết thúc
Tài nguyên tiến trình đang chiếm giữ, còn cần để kết thúc
. . .
Vấn đề hủy bỏ tiến trình
Tiến trình đang cập nhật file ⇒ File không hoàn chỉnh
Tiến trình sử dụng máy in ⇒ Reset trạng thái máy in
198 / 201
Chương 2: Quản lý tiến trình
5. Bế tắc và xử lý bế tắc
5.6 Nhận biết và khắc phục
Khắc phục bế tắc: Phương pháp kết thúc tiến trình
Nguyên tắc: Hủy bỏ các tiến trình đang trong tình trạng bế tắc và
lấy lại tài nguyên đã cấp cho tiến trình bị hủy bỏ
Hủy bỏ tất cả các tiến trình
Nhanh chóng hủy bỏ bế tắc
Quá tốn kém
Các tiến trình bị hủy bỏ có thể gần kết thúc
Hủy bỏ lần lượt tiến trình cho tới khi bế tắc không xảy ra
Sau khi hủy bỏ, phải kiểm tra xem bế tắc còn tồn tại không
Thuật toán kiểm tra bế tắc có độ phức tạp m ∗ n2
Cần chỉ ra thứ tự tiến trình bị hủy bỏ để phá vỡ bế tắc
Độ ưu tiên của tiến trình.
Tiến trình đã tồn tại bao lâu, còn bao lâu nữa thì kết thúc
Tài nguyên tiến trình đang chiếm giữ, còn cần để kết thúc
. . .
Vấn đề hủy bỏ tiến trình
Tiến trình đang cập nhật file ⇒ File không hoàn chỉnh
Tiến trình sử dụng máy in ⇒ Reset trạng thái máy in
198 / 201
Chương 2: Quản lý tiến trình
5. Bế tắc và xử lý bế tắc
5.6 Nhận biết và khắc phục
Khắc phục bế tắc: Phương pháp trưng dụng tài nguyên
Nguyên tắc:
Trưng dụng liên tục một vài tài nguyên từ một số tiến trình đang
bế tắc cho các tiến trình khác đến khi bế tắc được hủy bỏ
Các vấn đề cần quan tâm
1 Lựa chọn nạn nhân (victime)
Tài nguyên nào và tiến trình nào được chọn?
Trật tự trưng dụng để chi phí nhỏ nhất?
Lượng tài nguyên nắm giữ, thời gian sử dụng. . .
2 Quay lui (Rollback)
Quay lui tới một trạng thái an toàn trước đó và bắt đầu lại
Yêu cầu lưu giữ thông tin trạng thái của t/trình đang thực hiện
3 Đói tài nguyên (Starvation)
Một tiến trình bị trưng dụng quá nhiều lần ⇒chờ đợi vô hạn
Giải pháp: ghi lại số lần bị trưng dụng
199 / 201
Chương 2: Quản lý tiến trình
5. Bế tắc và xử lý bế tắc
5.6 Nhận biết và khắc phục
Khắc phục bế tắc: Phương pháp trưng dụng tài nguyên
Nguyên tắc:
Trưng dụng liên tục một vài tài nguyên từ một số tiến trình đang
bế tắc cho các tiến trình khác đến khi bế tắc được hủy bỏ
Các vấn đề cần quan tâm
1 Lựa chọn nạn nhân (victime)
Tài nguyên nào và tiến trình nào được chọn?
Trật tự trưng dụng để chi phí nhỏ nhất?
Lượng tài nguyên nắm giữ, thời gian sử dụng. . .
2 Quay lui (Rollback)
Quay lui tới một trạng thái an toàn trước đó và bắt đầu lại
Yêu cầu lưu giữ thông tin trạng thái của t/trình đang thực hiện
3 Đói tài nguyên (Starvation)
Một tiến trình bị trưng dụng quá nhiều lần ⇒chờ đợi vô hạn
Giải pháp: ghi lại số lần bị trưng dụng
199 / 201
Chương 2: Quản lý tiến trình
5. Bế tắc và xử lý bế tắc
5.6 Nhận biết và khắc phục
Khắc phục bế tắc: Phương pháp trưng dụng tài nguyên
Nguyên tắc:
Trưng dụng liên tục một vài tài nguyên từ một số tiến trình đang
bế tắc cho các tiến trình khác đến khi bế tắc được hủy bỏ
Các vấn đề cần quan tâm
1 Lựa chọn nạn nhân (victime)
Tài nguyên nào và tiến trình nào được chọn?
Trật tự trưng dụng để chi phí nhỏ nhất?
Lượng tài nguyên nắm giữ, thời gian sử dụng. . .
2 Quay lui (Rollback)
Quay lui tới một trạng thái an toàn trước đó và bắt đầu lại
Yêu cầu lưu giữ thông tin trạng thái của t/trình đang thực hiện
3 Đói tài nguyên (Starvation)
Một tiến trình bị trưng dụng quá nhiều lần ⇒chờ đợi vô hạn
Giải pháp: ghi lại số lần bị trưng dụng
199 / 201
Chương 2: Quản lý tiến trình
5. Bế tắc và xử lý bế tắc
5.6 Nhận biết và khắc phục
Khắc phục bế tắc: Phương pháp trưng dụng tài nguyên
Nguyên tắc:
Trưng dụng liên tục một vài tài nguyên từ một số tiến trình đang
bế tắc cho các tiến trình khác đến khi bế tắc được hủy bỏ
Các vấn đề cần quan tâm
1 Lựa chọn nạn nhân (victime)
Tài nguyên nào và tiến trình nào được chọn?
Trật tự trưng dụng để chi phí nhỏ nhất?
Lượng tài nguyên nắm giữ, thời gian sử dụng. . .
2 Quay lui (Rollback)
Quay lui tới một trạng thái an toàn trước đó và bắt đầu lại
Yêu cầu lưu giữ thông tin trạng thái của t/trình đang thực hiện
3 Đói tài nguyên (Starvation)
Một tiến trình bị trưng dụng quá nhiều lần ⇒chờ đợi vô hạn
Giải pháp: ghi lại số lần bị trưng dụng
199 / 201
Chương 2: Quản lý tiến trình
5. Bế tắc và xử lý bế tắc
Tổng kết
Bế tắc là tình trạng 2 hay nhiều tiến trình cùng chờ đợi độc
lập một sự kiện chỉ có thể xảy ra bởi sự hoạt động của các
tiến trình đang đợi
Bế tắc xảy ra khi hội đủ 4 điều kiện
Tồn tại tài nguyên găng
Phải chờ đợi trước khi vào đoạn găng
Không tồn tại hệ thống phân phối lại tài nguyên
Tồn tại hiện tượng chờ đợi vòng tròn
Để xử lý bế tắc có 3 lớp thuật toán
Phòng ngừa bế tắc
Tác động vào các điều kiện xảy ra bế tắc
Dự báo và phòng tránh
Ngăn ngừa hệ thống rơi vào tình trạng có thể dẫn đến bế tắc
Nhận biết và khắc phục
Cho phép bế tắc xảy ra, chỉ ra bế tắc và khắc phục sau
200 / 201
Chương 2: Quản lý tiến trình
Kết luận
1 Tiến trình
Khái niệm tiến trình
Điều phối tiến trình (Process
Scheduling)
Thao tác trên tiến trình
Hợp tác tiến trình
Truyền thông liên tiến trình
2 Luồng (Thread)
Giới thiệu
Mô hình đa luồng
Cài đặt luồng
3 Điều phối CPU
Các khái niệm cơ bản
Tiêu chuẩn điều phối
Các thuật toán điều phối CPU
Điều phối đa xử lý
4 Tài nguyên găng và điều độ
tiến trình
Khái niệm tài nguyên găng
Phương pháp khóa trong
Phương pháp kiểm tra và xác
lập
Kỹ thuật đèn báo
Ví dụ về đồng bộ tiến trình
Công cụ điều độ cấp cao
5 Bế tắc và xử lý bế tắc
Khái niệm bế tắc
Điều kiện xảy ra bế tắc
Các phương pháp xử lý bế tắc
Phòng ngừa bế tắc
Phòng tránh bế tắc
Nhận biết và khắc phục
201 / 201

File đính kèm:

  • pdfBài giảng Hệ điều hành - Phạm Đăng Hải - Chương 2 Quản lý tiến trình.pdf