Bài giảng Hệ điều hành - Chương 2: Quản lý tiến trình - Đỗ Quốc Huy

Hệ Điều Hành  
(Nguyên lý các hệ điều hành)  
Đỗ Quốc Huy  
Bộ môn Khoa Học Máy Tính  
Viện Công Nghệ Thông Tin và Truyền Thông  
Chương 2 Quản lý tiến trình  
Định nghĩa tiến trình  
Chương 2 Quản lý tiến trình  
Tiến trình (nhắc lại)  
lKhi chương trình đang thực hiện  
l Đượ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  
l Tài nguyên được cấp khi:  
l Bắt đầu chương trình  
l Trong khi chương trình đang thực hiện  
lGọi là tiến trình (process)  
lHệ thống bao gồm tập các tiến trình thực hiện đồng thời  
l Tiến trình hệ điều hành Thực hiện mã lệnh hệ thống  
l Tiến trình người dùng Thực hiện mã lệnh người dùng  
lTiến trình có thể chứa một hoặc nhiều tiểu trình  
lTrách nhiệm của Hệ điều hành:  
l Đảm bảo họat động của tiến trình và tiểu trình (luồng)  
l Tạo/xóa tiến trình (người dùng, hệ thống)  
l Điều phối tiến trình  
l 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  
Chương 2 Quản lí tiến trình  
Tiến trình  
Luồng (Thread)  
Điều phối CPU  
Tài nguyên găng và điều độ tiến trình  
Bế tắc và xử lý bế tắc  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.1. Khái niệm tiến trình  
lKhái niệm tiến trình  
lĐiều phối tiến trình (Process Scheduling)  
lThao tác trên tiến trình  
lHợp tác tiến trình  
lTruyền thông liên tiến trình  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.1. Khái niệm tiến trình  
* Trạng thái hệ thống  
l Vi xử lý: Giá trị các thanh ghi  
l Bộ nhớ: Nội dung các ô nhớ  
l Thiết bị ngoại vi: Trạng thái thiết bị  
l Thực hiện chương trình Trạng thái hệ thống thay đổi  
l Thay đổi rời rạc, theo từng câu lệnh được thực hiện  
l Tiến trình là một dãy thay đổi trạng thái của hệ thống  
l Xuất phát từ một trạng thái ban đầu  
l Chuyển từ trạng thái này sang trạng thái khác được thực hiện  
theo yêu cầu nằm trong chương trình của người sử dụng  
Tiến trình là sự thực hiện chương trình  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.1. Khái niệm tiến trình  
Tiến trình >< chương trình  
l Chương trình: thực thể thụ động (nội dung file trên đĩa)  
l Mã chương trình: Lệnh máy (CD2190EA...)  
l Dữ liệu:  
l Biến được lưu trữ và sử dụng trong bộ nhớ  
l Biến toàn cục  
l Biến được cung cấp động (malloc, new,..)  
l Biến stack (tham số hàm, biến cục bộ)  
l Thư viện liên kết động (DLL)  
l Không được dịch & liên kết cùng với chương trình  
Khi chương trình đang thực hiện, tài nguyên tối thiểu cần có  
l Bộ nhớ cho mã chương trình và dữ liệu  
l Các thanh ghi của VXL phục vụ cho quá trình thực hiện  
l Tiến trình: thực thể chủ động (bộ đếm lệnh, tập tài nguyên)  
Một chương trình có thể  
l Chỉ là một phần của trạng thái tiến trình  
l Một chương trình, nhiều tiến trình( bộ dữ liệu khác nhau)  
VD: gcc hello.c || gcc baitap.c  
l Gọi tới nhiều tiến trình  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.1. Khái niệm tiến trình  
Dịch và thực hiên một chương trình  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.1. Khái niệm tiến trình  
Dịch và thực hiên một chương trình  
l Hệ điều hành tạo một tiến trình và phân phối vùng nhớ cho nó  
l Bộ thực hiện (loader/exec)  
l Đọc và dịch (interprets) file thực thi (header file)  
l Thiết lập không gian địa chỉ cho tiến trình để chứa mã lệnh và dữ liệu  
từ file thực thi  
l Đặt các tham số dòng lệnh, biến môi trường (argc, argv, envp) vào  
stack  
l Thiết lập các thanh ghi của VXL tới các giá trị thích hợp và gọi hàm  
"_start()" (hàm của hệ điều hành)  
l Chương trình bắt đầu thực hiện tại "_start()". Hàm này gọi tới  
hàm main()(hàm của chương trình)  
"Tiến trình" đang thực hiện, không còn đề cập đến "chương  
trình" nữa  
l Khi hàm main() kết thúc, OS gọi tới hàm "_exit()" để hủy bỏ tiến  
trình và thu hồi tài nguyên  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.1. Khái niệm tiến trình  
Trạng thái tiến trình  
Khi thực hiện, tiến trình thay đổi trạng thái  
l Khởi tạo (New) Tiến trình đang được khởi tạo  
l Sẵn sàng (Ready) Tiến trình đang đợi sử dụng processor vật  
lý  
l Thực hiện (Running) Các câu lệnh của tiến trình đang được  
thực hiện  
l Chờ đợi (Waiting) Tiến trình đang chờ đợi một sự kiện nào  
đó xuất hiện (sự hoàn thành thao tác vào/ra)  
l Kết thúc (Terminated) Tiến trình thực hiện xong  
Trạng thái của tiến trình là một phần trong hoạt động hiện tại  
của tiến trình  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.1. Khái niệm tiến trình  
Lưu đồ thay đổi trạng thái tiến trình (Silberschatz 2002)  
Hệ thống có một processor  
l Có duy nhất một tiến trình ở trạng thái thực hiện  
l Có thể có nhiều tiến trình ở trạng thái chờ đợi hoặc sẵn sàng  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.1. Khái niệm tiến trình  
Khối điều khiển tiến trình (PCB: Process Control Block)  
l Mỗi tiến trình được thể hiện trong hệ thống bởi một khối điều khiển tiến  
trình  
l PCB: cấu trúc thông tin cho phép xác định duy nhất một tt  
l Trạng thái tiến trình  
l Bộ đếm lệnh  
l Các thanh ghi của CPU  
l Thông tin dùng để điều  
phối tiến trình  
l Thông tin quản lý bộ nhớ  
l Thông tin tài nguyên có thể  
sử dụng  
l Thông tin thống kê  
l Con trỏ tới một PCB khác  
l . . .  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.1. Khái niệm tiến trình  
Danh sách tiến trình  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.1. Khái niệm tiến trình  
Tiến trình đơn luồng và tiến trình đa luồng  
l Tiến trình đơn luồng : Là chương trình thực hiện chỉ một  
luồng thực thi  
Cho phép thực hiện chỉ một nhiệm vụ tại một thời điểm  
l Tiến trình đa luồng : Là tiến trình có nhiều luồng thực thi  
Cho phép thực hiện nhiều hơn một nhiệm vụ tại một thời  
điểm  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.1. Điều phối 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  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.2. Điều phối tiến trình  
Giới thiệu  
Mục đích Sử dụng tối đa thời gian của CPU  
Cần có nhiều tiến trình trong hệ thống  
Vấn đề Luân chuyển CPU giữa các tiến trình  
Phải có hàng đợi cho các tiến trình  
Hệ thống một processor  
Một tiến trình thực hiện  
Các tiến trình khác phải đợi tới khi CPU tự do  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.2. Điều phối tiến trình  
Các hàng đợi tiến trình I  
Hệ thống có nhiều hàng đợi dành cho tiến trình  
l Job-queue Tập các tiến trình trong hệ thống  
l Ready-Queue Tập các tiến trình tồn tại trong bộ nhớ, đang sẵn sàng và  
chờ đợi để được thực hiện  
l Device queues Tập các tiến trình đang chờ đợi một thiết bị vào ra.  
Phân biệt hàng đợi cho từng thiết bị  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.2. Điều phối tiến trình  
Các hàng đợi tiến trình II  
l Các tiến trình di chuyển giữa hàng đợi khác nhau  
l Tiến trình mới tạo, được đặt trong hàng đợi sẵn sàng, và đợi cho tới khi  
được lựa chọn để thực hiện  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.2. Điều phối tiến trình  
Các hàng đợi tiến trình III  
l Tiến trình đã được chọn và đang thực hiên  
Đưa ra một yêu cầu vào ra: đợi trong một hàng đợi thiết bị  
Tạo một tiến trình con và đợi tiến trình con kết thúc  
Hết thời gian sử dụng CPU, phải quay lại hàng đợi sẵn sàng  
l Trường hợp (1&2) sau khi sự kiện chờ đợi hoàn thành,  
l Tiến trình sẽ chuyển từ trạng thái đợi sang trạng thái sẵn sàng  
l Tiến trình quay lại hàng đợi sẵn sàng  
l Tiến trình tiếp tục chu kỳ (sẵn sàng, thực hiện, chờ đợi) cho tới khi kết  
thúc  
l Xóa khỏi tất cả các hàng đợi  
l PCB và tài nguyên đã cấp được giải phóng  
Chương 2 Quản lí tiến trình  
1. Tiến trình  
1.2. Điều phối tiến trình  
Bộ điều phối (Scheduler)  
Lựa chọn tiến trình trong các hàng đợi  
l Điều phối công việc (Job scheduler; Long-term scheduler)  
l Điều phối CPU (CPU scheduler; Short-term scheduler)  
Tải về để xem bản đầy đủ
pdf 280 trang Thùy Anh 27/04/2022 6780
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Chương 2: Quản lý tiến trình - Đỗ Quốc Huy", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_he_dieu_hanh_chuong_2_quan_ly_tien_trinh_do_quoc_h.pdf
  • pptxHệ Điều Hành-Chuong 2 _online.pptx