Quản lý tiến trình Quản lý tiến trình Bởi: Giảng viên Trần Hạnh Nhi Trong tìm hiểu chức quản lý tiến trình Hệ điều hành : làm để phân chia CPU cho tiến trình ? Theo vết xử lý tiến trình ? Và thao tác tiến trình ? Tổ chức quản lý tiến trình Các trạng thái tiến trình Trạng thái tiến trình thời điểm xác định hoạt động thời tiến trình thời điểm Trong trình sống, tiến trình thay đổi trạng thái nhiều nguyên nhân : phải chờ kiện xảy ra, hay đợi thao tác nhập/ xuất hoàn tất, buộc phải dừng hoạt động hết thời gian xử lý … Tại thời điểm, tiến trình nhận trạng thái sau : Mới tạo : tiến trình tạo lập Running : thị tiến trình xử lý Blocked : tiến trình chờ cấp phát tài nguyên, hay chờ mộtsự kiện xảy Ready : tiến trình chờ cấp phát CPU để xử lý Kết thúc : tiến trình hoàn tất xử lý 1/7 Quản lý tiến trình Hình 2.2 Sơ đồ chuyển trạng thái tiến trình Tại thời điểm, có tiến trình nhận trạng thái running xử lý Trong đó, nhiều tiến trình trạng thái blocked hay ready Các cung chuyển tiếp sơ đồ trạng thái biễu diễn sáu chuyển trạng thái xảy điều kiện sau : Tiến trình tạo đưa vào hệ thống Bộ điều phối cấp phát cho tiến trình khoảng thời gian sử dụng CPU Tiến trình kết thúc Tiến trình yêu cầu tài nguyên chưa đáp ứng tài nguyên chưa sẵn sàng để cấp phát thời điểm ; tiến trình phải chờ kiện hay thao tác nhập/ xuất Bộ điều phối chọn tiến trình khác 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 kiện thao tác nhập/xuất tiến trình đợi hoàn tất Chế độ xử lý tiến trình Để đảm bảo hệ thống hoạt động đắn, hệ điều hành cần phải bảo vệ khỏi xâm phạm tiến trình Bản thân tiến trình liệu cần bảo vệ để tránh ảnh hưởng sai lạc lẫn Một cách tiếp cận để giải vấn đề phân biệt hai chế độ xử lý cho tiến trình : chế độ không đặc quyền chế độ đặc quyền nhờ vào trợ giúp chế phần cứng Tập lệnh CPU phân chia thành lệnh đặc quyền lệnh không đặc quyền Cơ chế phần cứng cho phép lệnh đặc quyền thực chế độ đặc quyền Thông thường có hệ điều hành hoạt động chế độ đặc quyền, tiến trình người dùng hoạt động chế độ không đặc 2/7 Quản lý tiến trình quyền, không thực lệnh đặc quyền có nguy ảnh hưởng đến hệ thống Như hệ điều hành bảo vệ Khi tiến trình người dùng gọi đến lời gọi hệ thống, tiến trình hệ điều hành xử lý lời gọi hoạt động chế độ đặc quyền, sau hoàn tất trả quyền điều khiển cho tiến trình người dùng chế độ không đặc quyền Hình vẽ 2.3 Hai chế độ xử lý Cấu trúc liệu khối quản lý tiến trình Hệ điều hành quản lý tiến trình hệ thống thông qua khối quản lý tiến trình (process control block -PCB) PCB vùng nhớ lưu trữ thông tin mô tả cho tiến trình, với thành phần chủ yếu bao gồm : Định danh tiến trình (1) : giúp phân biệt tiến trình Trạng thái tiến trình (2): xác định hoạt động hành tiến trình Ngữ cảnh tiến trình (3): mô tả tài nguyên tiến trình trình, để phục vụ cho hoạt động tại, để làm sở phục hồi hoạt động cho tiến trình, bao gồm thông tin về: Trạng thái CPU: bao gồm nội dung ghi, quan trọng trỏ lệnh IP lưu trữ địa câu lệnh tiến trình xử lý Các thông tin cần lưu trữ xảy ngắt, nhằm cho phép phục hồi hoạt động tiến trình trước bị ngắt Bộ xử lý: dùng cho máy có cấu hình nhiều CPU, xác định số hiệu CPU mà tiến trình sử dụng Bộ nhớ chính: danh sách khối nhớ cấp cho tiến trình Tài nguyên sử dụng: danh sách tài mguyên hệ thống mà tiến trình sử dụng Tài nguyên tạo lập: danh sách tài nguyên tiến trình tạo lập 3/7 Quản lý tiến trình Thông tin giao tiếp (4): phản ánh thông tin quan hệ tiến trình với tiến trình khác hệ thống : Tiến trình cha: tiến trình tạo lập tiến trình Tiến trình con: tiến trình tiến trình tạo lập Độ ưu tiên : giúp điều phối có thông tin để lựa chọn tiến trình cấp CPU Thông tin thống kê (5): thông tin thống kê hoạt động tiến trình, thời gian sử dụng CPU,thời gian chờ Các thông tin có ích cho công việc đánh giá tình hình hệ thống dự đoán tình tương lai Hình vẽ 2.4 Khối mô tả tiến trình Thao tác tiến trình Hệ điều hành cung cấp thao tác chủ yếu sau tiến trình : tạo lập tiến trình (create) kết thúc tiến trình (destroy) tạm dừng tiến trình (suspend) 4/7 Quản lý tiến trình tái kích hoạt tiến trình (resume) thay đổi độ ưu tiên tiến trình Tạo lập tiến trình Trong trình xử lý, tiến trình tạo lập nhiều tiến trình cách sử dụng lời gọi hệ thống tương ứng Tiến trình gọi lời gọi hệ thống để tạo tiến trình gọi tiến trình cha, tiến trình tạo gọi tiến trình Mỗi tiến trình đến lượt lại tạo tiến trình mới…quá trình tiếp tục tạo tiến trình Hình vẽ2.5 Một tiến trình hệ thống UNIX Các công việc hệ điều hành cần thực tạo lập tiến trình bao gồm : định danh cho tiến trình phát sinh đưa tiến trình vào danh sách quản lý hệ thống xác định độ ưu tiên cho tiến trình tạo PCB cho tiến trình cấp phát tài nguyên ban đầu cho tiến trình Khi tiến trình tạo lập tiến trình con, tiến trình hệ điều hành trực tiếp cấp phát tài nguyên tiến trình cha cho thừa hưởng số tài nguyên ban đầu Khi tiến trình tạo tiến trình mới, tiến trình ban đầu xử lý theo hai khả sau : 5/7 Quản lý tiến trình Tiến trình cha tiếp tục xử lý đồng hành với tiến trình Tiến trình cha chờ đến tiến trình đó, tất tiến trình kết thúc xử lý Các hệ điều hành khác chọn lựa cài đặt khác để thực thao tác tạo lập tiến trình Kết thúc tiến trình Một tiến trình kết thúc xử lý hoàn tất thị cuối sử dụng lời gọi hệ thống để yêu cầu hệ điều hành hủy bỏ Đôi tiến trình yêu cầu hệ điều hành kết thúc xử lý tiến trình khác Khi tiến trình kết thúc, hệ điều hành thực công việc : thu hồi tài nguyên hệ thống cấp phát cho tiến trình hủy tiến trình khỏi tất danh sách quản lý hệ thống hủy bỏ PCB tiến trình Hầu hết hệ điều hành không cho phép tiến trình tiếp tục tồn tiến trình cha kết thúc Trong hệ thống thế, hệ điều hành tự động phát sinh loạt thao tác kết thúc tiến trình Cấp phát tài nguyên cho tiến trình Khi có nhiều người sử dụng đồng thời làm việc hệ thống, hệ điều hành cần phải cấp phát tài nguyên theo yêu cầu cho người sử dụng Do tài nguyên hệ thống thường giới hạn có chia sẻ, nên tất yêu cầu tài nguyên đồng thời thỏa mãn Vì cần phải nghiên cứu phương pháp để chia sẻ số tài nguyên hữu hạn nhiều tiến trình người dùng đồng thời Hệ điều hành quản lý nhiều loại tài nguyên khác (CPU, nhớ chính, thiết bị ngoại vi …), với loại cần có chế cấp phát chiến lược cấp phát hiệu qủa Mỗi tài nguyên biễu diễn thông qua cấu trúc liệu, khác chi tiết cho loại tài nguyên, chứa đựng thông tin sau : Định danh tài nguyên Trạng thái tài nguyên : thông tin mô tả chi tiết trạng thái tài nguyên : phần tài nguyên cấp phát cho tiến trình, phần sử dụng ? Hàng đợi tài nguyên : danh sách tiến trình chờ cấp phát tài nguyên tương ứng 6/7 Quản lý tiến trình Bộ cấp phát : đoạn code đảm nhiệm việc cấp phát tài nguyên đặc thù Một số tài nguyên đòi hỏi giải thuật đặc biệt (như CPU, nhớ chính, hệ thống tập tin), tài nguyên khác (như thiết bị nhập/xuất) cần giải thuật cấp phát giải phóng tổng quát Hình 2.6 Khối quản lý tài nguyên Các mục tiêu kỹ thuật cấp phát : Bảo đảm số lượng hợp lệ tiến trình truy xuất đồng thời đến tài nguyên không chia sẻ Cấp phát tài nguyên cho tiến trình có yêu cầu khoảng thời gian trì hoãn chấp nhận Tối ưu hóa sử dụng tài nguyên Để thõa mãn mục tiêu kể trên, cần phải giải vấn đề nảy sinh có nhiều tiến trình đồng thời yêu cầu tài nguyên chia sẻ 7/7 ... sau tiến trình : tạo lập tiến trình (create) kết thúc tiến trình (destroy) tạm dừng tiến trình (suspend) 4/7 Quản lý tiến trình tái kích hoạt tiến trình (resume) thay đổi độ ưu tiên tiến trình. .. Tạo lập tiến trình Trong trình xử lý, tiến trình tạo lập nhiều tiến trình cách sử dụng lời gọi hệ thống tương ứng Tiến trình gọi lời gọi hệ thống để tạo tiến trình gọi tiến trình cha, tiến trình. .. lý theo hai khả sau : 5/7 Quản lý tiến trình Tiến trình cha tiếp tục xử lý đồng hành với tiến trình Tiến trình cha chờ đến tiến trình đó, tất tiến trình kết thúc xử lý Các hệ điều hành khác chọn