Bài giảng Hệ điều hành: Chương 4 - Trần Công Án

87 97 0
Bài giảng Hệ điều hành: Chương 4 - Trần Công Án

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mục tiêu của chương 4 nhằm giới thiệu các khái niệm về Tiến trình và những thao tác cơ bản trong Quản lý tiến trình như tạo, định thời và kết thúc tiến trình. Các phương thức Giao tiếp liên tiến trình và vấn đề Tắc nghẽn của tiến trình cũng sẽ được trình bày.

Hệ Điều Hành Chương Quản Lý Tiến Trình, Đồng hóa Tiến trình & Tắc nghẽn Giảng viên TS Trần Công Án tcan@cit.ctu.edu.vn Khoa Công Nghệ Thông Tin & Truyền Thông Đại học Cần Thơ 2018 [HĐH] Ch4 Quản lý tiến trình Mục Tiêu Giới thiệu khái niệm Tiến trình thao tác Quản lý Tiến trình tạo, định thời kết thúc tiến trình Các phương thức Giao tiếp liên tiến trình vấn đề Tắc nghẽn tiến trình trình bày TS Trần Cơng Án [HĐH] Ch4 Quản lý tiến trình [HĐH] Ch4 Quản lý tiến trình Nội Dung Tổng quan tiến trình Giao tiếp liên tiến trình Định thời tiến trình Các giải thuật định thời Đồng hóa tiến trình Tắc nghẽn (Deadlock) TS Trần Cơng Án [HĐH] Ch4 Quản lý tiến trình [HĐH] Ch4 Quản lý tiến trình Tổng quan tiến trình Tổng quan tiến trình TS Trần Cơng Án [HĐH] Ch4 Quản lý tiến trình [HĐH] Ch4 Quản lý tiến trình Tổng quan tiến trình Khái niệm Tiến trình Khái Niệm Tiến Trình Tiến trình thể (instance) chương trình máy tính nhớ, thực thi chờ thực thi Mỗi tiến trình thường gán số định danh tiến trình (process identifier, pid), dùng để định danh tiến trình Một tiến trình bao gồm: Mã lệnh chương trình (program code) Bộ đếm chương trình (program counter) ghi CPU Ngăn xếp (stack) Phần liệu (data section) Có thể gồm phần nhớ cấp phát động tiến trình thực thi (heap) TS Trần Cơng Án [HĐH] Ch4 Quản lý tiến trình [HĐH] Ch4 Quản lý tiến trình Tổng quan tiến trình Khái niệm Tiến trình Chương Trình & Tiến Trình max stack Chương trình thực thể bị động, lưu trữ đĩa Tiến trình thực thể chủ động, lưu trú nhớ Khi chương trình kích hoạt (nhấp chuột, CLI, ), thể chương trình nạp lên nhớ, tạo tiến trình heap data Một chương trình có vài tiến trình nhớ text TS Trần Công Án [HĐH] Ch4 Quản lý tiến trình [HĐH] Ch4 Quản lý tiến trình Tổng quan tiến trình Trạng thái Tiến trình (Process state) Trạng Thái Của Tiến Trình (Process State) Một tiến trình có trạng thái sau: new: tiến trình khởi tạo running: thị tiến trình thực thi waiting: tiến trình chờ đợi kiện xảy (hồn thành I/O, tín hiệu từ tiến trình khác, ) ready: tiến trình sẵn sàng để thực thi (đang đợi để sử dụng CPU) terminated: tiến trình kết thúc TS Trần Cơng Án [HĐH] Ch4 Quản lý tiến trình [HĐH] Ch4 Quản lý tiến trình Tổng quan tiến trình Trạng thái Tiến trình (Process state) Sơ Đồ Chuyển Trạng Thái Của Tiến Trình new admitted interrupt ready I/O or event completion exit terminated running scheduler dispatch I/O or event wait waiting TS Trần Công Án [HĐH] Ch4 Quản lý tiến trình [HĐH] Ch4 Quản lý tiến trình Tổng quan tiến trình Khối điều khiển Tiến trình (Process Control Block – PCB) Khối Điều Khiển Tiến Trình (PCB) Trạng thái trình: ready, running, Bộ đếm chương trình: thị thực thi Các ghi: phụ thuộc vào k/trúc máy tính Thơng tin định thời sử dụng CPU Thơng tin quản lý nhớ Thông tin chi phí: t/gian sử dụng CPU, pid, process state process number program counter registers memory limits list of open files • • • Chứa thơng tin tiến trình Hệ điều hành: Thơng tin trạng thái nhập/xuất: thiết bị cấp phát, danh sách tập tin mở, TS Trần Công Án [HĐH] Ch4 Quản lý tiến trình [HĐH] Ch4 Quản lý tiến trình Tổng quan tiến trình Chuyển CPU Tiến trình Chuyển CPU Giữa Các Tiến Trình PCB nơi lưu giữ trạng thái tiến trình process P0 operating system process P1 interrupt or system call executing save state into PCB0 Trạng thái tiến trình phải lưu trữ vào PCB interrupt xuất hiện, nhằm cho phép tiến trình tiếp tục xác sau Tác vụ chuyển CPU gọi chuyển ngữ cảnh (context switch) TS Trần Cơng Án • • • reload state from PCB1 idle interrupt or system call idle executing save state into PCB1 • • • reload state from PCB0 idle executing [HĐH] Ch4 Quản lý tiến trình 10 [HĐH] Ch4 Quản lý tiến trình Tắc nghẽn (Deadlock) Deadlock gì? Deadlock Là Gì? Deadlock trạng thái hệ thống đó: tập hợp tiến trình bị nghẽn tiến trình giữ tài nguyên chờ tài nguyên bị giữ tiến trình khác tập tiến trình bị nghẽn Ví dụ 1: Giả sử hệ thống có tiến trình P Q F1, F2 tập tin Tiến trình P giữ F1 cần truy xuất thêm F2 Tiến trình Q giữ F2 cần truy xuất thêm F1 TS Trần Công Án [HĐH] Ch4 Quản lý tiến trình 73 [HĐH] Ch4 Quản lý tiến trình Tắc nghẽn (Deadlock) Deadlock gì? Ví Dụ – Traffic Deadlock Chapter Deadlocks 342 • • • • • • • • • • • • TS Trần Công Án Figure 7.10 Traffic deadlock for Exercise 7.11 [HĐH] Ch4 Quản lý tiến trình 74 [HĐH] Ch4 Quản lý tiến trình Tắc nghẽn (Deadlock) Điều kiện phát sinh deadlock Điều Kiện Phát Sinh Deadlock Loại trừ hỗ tương: tài nguyên giữ chế độ không chia sẻ (nonsharable mode) Giữ chờ: tiến trình giữ tài nguyên đợi thêm tài nguyên bị giữ tiến trình khác Khơng trưng dụng tài ngun: khơng trưng dụng tài ngun cấp phát tiến trình, trừ tiến trình tự hồn trả Chờ đợi vòng tròn: tồn tập tiến trình {P0 , P1 , , Pn } chờ đợi sau: P0 đợi tài nguyên P1 giữ, P1 đợi tài nguyên P2 giữ, , Pn đợi tài nguyên P0 giữ TS Trần Công Án [HĐH] Ch4 Quản lý tiến trình 75 [HĐH] Ch4 Quản lý tiến trình Tắc nghẽn (Deadlock) Mơ hình hóa hệ thống Mơ Hình Hóa Hệ Thống Hệ thống gồm tập loại tài nguyên, kí hiệu R1 , R2 , , Rm Ví dụ: CPU cycles, memory space, I/O devices, Mỗi loại tài nguyên Ri có tập thể (instances) Wi Tiến trình sử dụng tài nguyên theo bước: Yêu cầu (request) – phải chờ không đáp ứng Sử dụng (use) Giải phóng (release) Các tác vụ yêu cầu hoàn trả thực lời gọi hệ thống TS Trần Công Án [HĐH] Ch4 Quản lý tiến trình 76 [HĐH] Ch4 Quản lý tiến trình Tắc nghẽn (Deadlock) Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG) Đồ Thị Cấp Phát Tài Nguyên – RAG Là đồ thị có hướng, với tập đỉnh V tập cạnh E Tập đỉnh V gồm loại: Tập P = {P1 , P2 , , Pn }: tập tiến trình hệ thống Tập R = {R1 , R2 , , Rm }: tập tài nguyên hệ thống Tập cạnh gồm loại: Cạnh yêu cầu (request edge): có hướng từ Pi đến Rj Cạnh cấp phát (assignment edge): có hướng từ RJ đến Pi TS Trần Cơng Án [HĐH] Ch4 Quản lý tiến trình 77 [HĐH] Ch4 Quản lý tiến trình Tắc nghẽn (Deadlock) Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG) Ký Hiệu Tiến trình: Pi   ●● ●● Loại tài nguyên (với thể hiện): Pi yêu cầu thể Rj : Pi giữ thể Rj : TS Trần Công Án Pi   Pi   ●● ●● ●● ●● [HĐH] Ch4 Quản lý tiến trình Rj Rj 78 [HĐH] Ch4 Quản lý tiến trình Tắc nghẽn (Deadlock) Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG) Đồ Thị Cấp Phát Tài Nguyên – Ví Dụ ks Đồ thị cấp phát tài ngun (khơng có chu trình khơng deadlock): R1 R3 P = {P1 , P2 , P3 } R = {R1 , R2 , R3 , R4 } P1 P2 P3 E = {P1 → R1 , P2 → R3 , R1 → P2 , R2 → P2 , R2 → P1 , R3 → P3 } Thể loại tài nguyên: R1 : 1; R2 : 2; R3 : 1; R4 : Trạng thái tiến trình: P1 : giữ (R2 , 1); chờ (R1 , 1) R2 R4 Figure TS 7.1 Trần Resource-allocation graph Công Án [HĐH] Ch4 P2 : giữ (R1 , 1), (R2 , 1); chờ (R3 , 1) P3 : giữ (R3 , 1) Quản lý tiến trình 79 [HĐH] Ch4 Quản lý tiến trình Tắc nghẽn (Deadlock) Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG) Đồ Thị Cấp Phát Tài Nguyên – Ví Dụ Characterization Đồ thị cấp 7.2 phátDeadlock tài nguyên với chu trình 321 deadlock: R1 R3 Trạng thái tiến trình: P1 : giữ (R2 , 1); chờ (R1 , 1) P1 P2 P3 P2 : giữ (R1 , 1), (R2 , 1); chờ (R3 , 1) P3 : giữ (R3 , 1); chờ (R2 , 1) chu trình nhỏ (minimal cycles): P1 → R1 → P2 → R3 → P3 → R2 → P1 P2 → R3 → P3 → R2 → P2 R2 R4 Deadlock: tiến trình P1 , P2 , P3 e 7.2 Resource-allocation graph with[HĐH] a deadlock TS Trần Công Án Ch4 Quản lý tiến trình 80 by[HĐH] process P3 lýProcess Ch4 Quản tiến trìnhP3 is waiting for either process P1 or Tắc nghẽn (Deadlock) ase resource R2 In addition, process P1 is waiting for process thị cấp phát tài nguyên (Resourece Allocation Graph – RAG) urce RĐồ r the resource-allocation graph in Figure 7.3 In this example, Đồ Thị Cấp Phát Tài Nguyên – Ví Dụ ycle: P1 → R1 → P3 → R2 → P1 Đồ thị cấp phát tài ngun có chu trình khơng deadlock: R1 P2 P3 P1 Chu trình: P1 → R1 → P3 → R2 → P1 Tại không deadlock? R2 P4 Resource-allocation graph with a cycle but no deadlock TS Trần Công Án [HĐH] Ch4 Quản lý tiến trình 81 [HĐH] Ch4 Quản lý tiến trình Tắc nghẽn (Deadlock) Đồ thị cấp phát tài nguyên (Resourece Allocation Graph – RAG) Đồ Thị Cấp Phát Tài Nguyên & Deadlock Nếu đồ thị khơng có chu trình: chắn khơng có deadlock Nếu đồ thị có chu trình: Nếu loại tài nguyên có thể hiện: chắn có deadlock Nếu loại tài nguyên có nhiều thể hiện: có deadlock TS Trần Cơng Án [HĐH] Ch4 Quản lý tiến trình 82 [HĐH] Ch4 Quản lý tiến trình Tắc nghẽn (Deadlock) Các Cách Tiếp Cận Đối Với Vấn Đề Deadlock Các Cách Tiếp Cận Đối Với Vấn Đề Deadlock Đề giao thức để đảm bảo cho hệ thống không rơi vào trạng thái deadlock Cho phép hệ thống rơi vào trạng thái deadlock, sau sử dụng giải thuật để phát deadlock phục hồi Không quan tâm không xử lý vấn đề deadlock hệ thống Khá nhiều hệ điều hành sử dụng phương pháp Tuy nhiên, deadlock không phát xử lý dẫn đến việc giảm hiệu suất hệ thống Cuối cùng, hệ thống ngưng hoạt động phải khởi động lại TS Trần Công Án [HĐH] Ch4 Quản lý tiến trình 83 [HĐH] Ch4 Quản lý tiến trình Tắc nghẽn (Deadlock) Các Cách Tiếp Cận Đối Với Vấn Đề Deadlock Ngăn chặn tránh deadlock Có hai biện pháp để đảm bảo hệ thống khơng rơi vào trạng thái deadlock: Ngăn chặn deadlock (deadlock prevention): khơng cho phép (ít nhất) bốn điều kiện cần cho deadlock xảy Tránh deadlock (deadlock avoidance): tiến trình cần cung cấp thơng tin tài nguyên cần để hệ thống cấp phát tài ngun cách thích hợp TS Trần Cơng Án [HĐH] Ch4 Quản lý tiến trình 84 [HĐH] Ch4 Quản lý tiến trình Tắc nghẽn (Deadlock) Các Cách Tiếp Cận Đối Với Vấn Đề Deadlock Phát Hiện Deadlock Trong cách tiếp cận “phát phục hồi” vấn đề deadlock: Chấp nhận cho deaclock xảy hệ thống Sử dụng giải thuật để phát deadlock Nếu có deadlock tiến hành phục hồi hệ thống, dùng sơ đồ phục hồi thích hợp Các giải thuật phát deadlock thường sử dụng RAG Có loại giải thuật: Cho trường hợp loại tài nguyên Cho trường hợp loại tài ngun có nhiều thể TS Trần Cơng Án [HĐH] Ch4 Quản lý tiến trình 85 [HĐH] Ch4 Quản lý tiến trình Tổng Kết Tổng Kết Tổng quan tiến trình Giao tiếp liên tiến trình Định thời tiến trình Các giải thuật định thời Đồng hóa tiến trình Tắc nghẽn (Deadlock) TS Trần Cơng Án [HĐH] Ch4 Quản lý tiến trình 86 ... pid = 22 34! bash! pid = 8111! TS Trần Công Án kthreadd! pid = 2! sshd! pid = 2 244 ! khelper! pid = 6! khelper! pid = 6! [HĐH] Ch4 Quản lý tiến trình sshd! pid = 2 244 ! 11 [HĐH] Ch4 Quản lý... (Deadlock) TS Trần Công Án [HĐH] Ch4 Quản lý tiến trình [HĐH] Ch4 Quản lý tiến trình Tổng quan tiến trình Tổng quan tiến trình TS Trần Cơng Án [HĐH] Ch4 Quản lý tiến trình [HĐH] Ch4 Quản lý tiến... bị chặn TS Trần Công Án [HĐH] Ch4 Quản lý tiến trình 25 [HĐH] Ch4 Quản lý tiến trình Định thời tiến trình Định thời tiến trình TS Trần Cơng Án [HĐH] Ch4 Quản lý tiến trình 26 [HĐH] Ch4 Quản lý

Ngày đăng: 30/01/2020, 00:44

Từ khóa liên quan

Mục lục

  • Tổng quan về tiến trình

  • Giao tiếp liên tiến trình

  • Định thời tiến trình

  • Các giải thuật định thời

  • Đồng bộ hóa tiến trình

  • Tắc nghẽn (Deadlock)

Tài liệu cùng người dùng

Tài liệu liên quan