Chương 2 trình bày những nội dung cơ bản về quản lý tiến trình trong hệ điều hành như: Giới thiệu tổng quan về tiến trình và luồng, điều phối tiến trình và luồng, cơ chế thông tin liên lạc giữa các tiến trình, đồng bộ hoá tiến trình.
Hệ điều hành Chương 2: Quản lý tiến trình Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Tổng quan • • • • Giới thiệu tổng quan tiến trình luồng Điều phối tiến trình luồng Cơ chế thơng tin liên lạc tiến trình Đồng hố tiến trình Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Tổng quan tiến trình luồng • • • • • • • Khái niệm tiến trình Khái niệm luồng Các trạng thái tiến trình Chế độ xử lý tiến trình Cấu trúc liệu khối quản lý tiến trình Thao tác tiến trình Tiến trình luồng LINUX Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Khái niệm tiến trình • Chương trình thực thể thụ động, chứa đựng thị điều khiển máy tính để tiến hành tác vụ • Tiến trình chương trình xử lý, sở hữu – trỏ lệnh, – tập ghi – biến Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Khái niệm tiến trình • Tiến trình nhớ Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Các trạng thái tiến trình • Khi tiến trình chạy, thay đổi trạng thái – – – – new: Tiến trình tạo running: Các lệnh xử lý waiting: Tiến trình đợi kiện ready: Tiến trình đợi để gán cho trình xử lý – terminated: Tiến trình kết thúc Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Các trạng thái tiến trình Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Khối quản lý tiến trình PCB Lưu giữ thơng tin tiến trình • Trạng thái tiến tình • Bộ đếm chương trình • Các ghi CPU • Thơng tin lập lịch CPU • Thơng tin quản lý nhớ • Thông tin tài khoản • Thông tin trạng thái I/O Dang Minh Quan: Institute of IT for Economics-NEU, 2011 Cấu trúc liệu khối quản lý tiến trình Dang Minh Quan: Institute of IT for Economics-NEU, 2011 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) tái kích hoạt tiến trình (resume) thay đổi độ ưu tiên tiến trình Dang Minh Quan: Institute of IT for Economics-NEU, 2011 10 Giải pháp Peterson while (TRUE) { int j = 1-i; // j tiến trình cịn lại interesse[i]= TRUE; turn = j; while (turn == j && interesse[j]==TRUE); critical-section (); interesse[i] = FALSE; Noncritical-section (); } Dang Minh Quan: Institute of IT for Economics-NEU, 2011 69 Cấm ngắt • cho phép tiến trình cấm tất ngắt trước vào miền găng, phục hồi ngắt khỏi miền găng • Khi đó, ngắt đồng hồ không xảy ra, hệ thống khơng thể tạm dừng hoạt động tiến trình xử lý để cấp phát CPU cho tiến trình khác Dang Minh Quan: Institute of IT for Economics-NEU, 2011 70 Chỉ thị TSL (Test-and-Set) Test-and-Setlock(boolean target){ Test-and-Setlock = target; target = TRUE; } while (TRUE) { while (Test-and-Setlock(lock)); critical-section (); lock = FALSE; Noncritical-section (); } Dang Minh Quan: Institute of IT for Economics-NEU, 2011 71 Nhận xét • Các giải pháp buộc tiến trình phải liên tục kiểm tra điều kiện để phát thời điểm thích hợp vào miền găng • Việc kiểm tra tiêu thụ nhiều thời gian sử dụng CPU, tiến trình chờ chiếm dụng CPU Dang Minh Quan: Institute of IT for Economics-NEU, 2011 72 Giải pháp « sleep and wakeup » while (TRUE) { if (busy){ blocked = blocked + 1; sleep(); } else busy = 1; critical-section (); busy = 0; if(blocked){ wakeup(process); blocked = blocked - 1; } Noncritical-section (); } Dang Minh Quan: Institute of IT for Economics-NEU, 2011 73 Semaphore (1) • semaphore s biến có thuộc tính sau: • Một giá trị nguyên dương e(s) • Một hàng đợi f(s) lưu danh sách tiến trình bị khóa (chờ) semaphore s Dang Minh Quan: Institute of IT for Economics-NEU, 2011 74 Semaphore (2) • Chỉ có hai thao tác định nghĩa semaphore – Down(s): giảm giá trị semaphore s đơn vị semaphore có trị e(s) > 0, tiếp tục xử lý Ngược lại, e(s) < 0, tiến trình phải chờ đến e(s) >0 – Up(s): tăng giá trị semaphore s lên đơn vị Nếu có nhiều tiến trình chờ semaphore s, bị khóa thao tác Down, hệ thống chọn tiến trình để kết thúc thao tác Down cho tiếp tục xử lý Dang Minh Quan: Institute of IT for Economics-NEU, 2011 75 Tổ chức truy xuất độc quyền với Semaphores – – – – – – while (TRUE) { Down(s) critical-section (); Up(s) Noncritical-section (); } Dang Minh Quan: Institute of IT for Economics-NEU, 2011 76 Tổ chức đồng hóa với Semaphores – P1: – while (TRUE) { – job1(); Up(s); //đánh thức P2 – } – P2: – while (TRUE) { – Down(s); // chờ P1 job2(); – } Dang Minh Quan: Institute of IT for Economics-NEU, 2011 77 Monitors (1) • Monitor cấu trúc đặc biệt bao gồm thủ tục, biến cấu trúc liệu có thuộc tính sau – Các biến cấu trúc liệu bên monitor thao tác thủ tục định nghĩa bên monitor (encapsulation) – Tại thời điểm, có tiến trình hoạt động bên monitor (mutual exclusive) Dang Minh Quan: Institute of IT for Economics-NEU, 2011 78 Monitors (2) • Trong monitor, định nghĩa biến điều kiện hai thao tác kèm theo Wait Signal sau : gọi c biến điều kiện định nghĩa monitor: – Wait(c): chuyển trạng thái tiến trình gọi sang blocked , đặt tiến trình vào hàng đợi biến điều kiện c – Signal(c): có tiến trình bị khóa hàng đợi c, tái kích hoạt tiến trình đó, tiến trình gọi rời khỏi monitor Dang Minh Quan: Institute of IT for Economics-NEU, 2011 79 Monitors (3) – monitor condition ;; procedure Action1(); { } procedure Actionn(); { } end monitor; – Cấu trúc monitor Dang Minh Quan: Institute of IT for Economics-NEU, 2011 80 Monitors (4) • while (TRUE) { • Noncritical-section (); .Actioni; //critical-section(); Noncritical-section (); • } • Cấu trúc tiến trình Pi giải pháp monitor Dang Minh Quan: Institute of IT for Economics-NEU, 2011 81 Trao đổi thông điệp (1) • Send(destination, message): gởi thơng điệp đến tiến trình hay gởi vào hộp thư • Receive(source,message): nhận thơng điệp thừ tiến trình hay từ tiến trình nào, tiến trình gọi chờ khơng có thơng điệp để nhận Dang Minh Quan: Institute of IT for Economics-NEU, 2011 82 Trao đổi thơng điệp (2) • while (TRUE) { • Send(process controler, request message); Receive(process controler, accept message); critical-section (); Send(process controler, end message); Noncritical-section (); • } Dang Minh Quan: Institute of IT for Economics-NEU, 2011 83 ... ghi – vùng nhớ stack riêng Dang Minh Quan: Institute of IT for Economics-NEU, 20 11 22 Khái niệm đa luồng Dang Minh Quan: Institute of IT for Economics-NEU, 20 11 23 Điều phối tiến trình • Khái niệm... chạy chương trình thay mặt cho người sử dụng – Monitor mode (chế độ giám sát chế độ hệ thống) - chạy chương trình thay mặt cho hệ điều hành Dang Minh Quan: Institute of IT for Economics-NEU, 20 11... nguyên Dang Minh Quan: Institute of IT for Economics-NEU, 20 11 30 Các danh sách sử dụng trình điều phối (2) Dang Minh Quan: Institute of IT for Economics-NEU, 20 11 31 Chuyển đổi danh sách điều phối