Bài giảng Quản trị kinh doanh - Bài 2: Quản lý tiến trình

42 48 0
Bài giảng Quản trị kinh doanh - Bài 2: Quản lý tiến trình

Đ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ời các bạn cùng tham khảo Bài giảng Quản trị kinh doanh - Bài 2: Quản lý tiến trình để nắm chi tiết các nội dung về khái niệm tiến trình; đồng bộ và giải pháp giải quyết tranh chấp; tắc nghẽn.

Bài 2: Quản lý tiến trình BÀI 2: QUẢN LÝ TIẾN TRÌNH Nội dung    Mục tiêu    Trình bày khái niệm tiến trình, trạng thái tiến trình trình biến đổi trạng thái Trình bày khái niệm luồng, đồng giải tranh chấp Trình bày vấn đề liên quan đến Deadlock IT101_Bai 2_v1.0010110225 Khái niệm tiến trình Đồng giải pháp giải tranh chấp Tắc nghẽn Thời lượng học  tiết 15 Bài 2: Quản lý tiến trình TÌNH HUỐNG DẪN NHẬP Tình Task Manager tiện ích giúp quản lý tiến trình máy tính Vậy tiến trình hoạt động nào? Câu hỏi Đơi lúc ta gặp tình máy bị treo Tại lại có tượng đó? Có thể ngăn chặn khơi phục tượng xảy khơng? 16 IT101_Bai 2_v1.0010110225 Bài 2: Quản lý tiến trình 2.1 Khái niệm tiến trình (Process) 2.1.1 Định nghĩa Trong xem xét khái niệm tiến trình, khái niệm quan trọng để hình dung cơng việc máy tính ngày Chúng ta tìm hiểu khái niệm trạng thái (rời rạc) tiến trình cách mà tiến trình chuyển từ trạng thái sang trạng thái khác với thao tác tiến trình Khái niệm tiến trình lần kỹ sư thiết kế hệ thống MULTICS vào năm 60 Trong thời kỳ đầu tiên, tiến trình hiểu nhiều trường hợp đồng nghĩa chương trình, tốn (Task) đối tượng xử lý phục vụ, Người ta thường dùng định nghĩa tiến trình chương trình lúc chạy 2.1.2 Khối điều khiển tiến trình (Process Control Block – PCB) Đại diện cho tiến trình hệ điều hành khối điều khiển tiến trình (PCB) PCB cấu trúc liệu chứa thông tin quan trọng tiến trình khác hệ thống khác nhau, thường có:  Trạng thái tiến trình  ID (Identifier) cho tiến trình  Độ ưu tiên (Priority) tiến trình  Thơng tin nhớ  Thơng tin tài ngun tiến trình sử dụng  Vùng ghi PCB đối tượng quan trọng, nhờ hệ điều hành có tồn thơng tin tiến trình Khi hệ điều hành chuyển (Switch) xử lý từ phục vụ tiến trình sang phục vụ tiến trình khác, dùng vùng cho ghi PCB lưu thông tin giá trị ghi hệ thống để tiếp tục thực tiến trình tiến trình đến lượt sử dụng xử lý Tóm lại, PCB đối tượng đại diện cho tiến trình hệ điều hành Vì hệ điều hành phải có khả thực thao tác với PCB khác cách nhanh chóng, nhiều hệ thống có ghi đặc biệt ln tới PCB tiến trình chạy (Running Process) có lệnh cài đặt phần cứng để đảm bảo nhanh chóng ghi thơng tin trạng thái vào PCB nhanh chóng đọc thơng tin Các thao tác với tiến trình: Hệ thống điều khiển tiến trình cần có khả thực thao tác với tiến trình, có:  Tạo tiến trình (Create)  Huỷ tiến trình (Free, Destroy)  Thay đổi độ ưu tiên (Priority)  Dừng (Block) tiến trình  Kích hoạt (Waikup) tiến trình  Thực (Dispatch) tiến trình IT101_Bai 2_v1.0010110225 17 Bài 2: Quản lý tiến trình Tiến trình tạo tiến trình gồm nhiều thao tác nhỏ:  Gán tên cho tiến trình A  Đưa tên tiến trình vào danh sách tiến trình hệ thống  Xác định mức ưu tiên (Priority) ban đầu cho tiến trình B C  Tạo, nạp thông tin PCB  Phân chia tài nguyên khởi đầu cho tiến trình D E F Tạo tiến trình: Một tiến trình tạo tiến trình Tiến trình tiến trình cha (Parent Process) cịn tiến trình tạo tiến trình (Child Process) Để tạo tiến trình cần tiến trình có Tức tiến trình có tiến trình cha cịn tiến trình cha có nhiều tiến trình Các quan hệ tạo kiến trúc tiến trình Xố tiến trình: Xố tiến trình loại bỏ khỏi hệ thống Khi tài nguyên phân chia cho tiến trình giải phóng, trả lại cho hệ điều hành, tên tiến trình xoá khỏi tất danh sách hệ thống, cịn PCB giải phóng Dừng/ hỗn tiến trình: Một tiến trình bị hỗn–dừng (Suspended Process) tiến trình khơng tiếp tục thực đến có tiến trình khác kích hoạt Tạm dừng (Suspending) thao tác quan trọng sử dụng nhiều hệ thống với cách cài đặt, thực khác Tạm dừng thường diễn khoảng thời gian ngắn Ví dụ: hệ điều hành phải tạm dừng số tiến trình (khơng phải ln tất cả) thời gian ngắn hệ thống tải,… Trong trường hợp tiến trình bị dừng thời gian dài tài ngun phải giải phóng trả lại cho hệ điều hành Việc loại tài ngun có cần giải phóng hay khơng cịn phụ thuộc vào kiểu Ví dụ: nhớ cần giải phóng ngay, cịn thiết bị vào thuộc quyền sử dụng tiến trình trường hợp tiến trình bị hỗn–dừng thời gian ngắn cịn giải phóng thời gian Suspend dài hay khơng xác định Tiến trình kích hoạt (Activate) thao tác chuẩn bị để tiến trình tiếp tục thực từ trạng thái mà bị dừng trước Q trình huỷ bỏ tiến trình phức tạp tiến trình cha Trong số hệ thống tiến trình tự động bị huỷ bỏ theo, số hệ thống khác tiến trình tồn (độc lập với tiến trình cha) Sự thay đổi độ ưu tiên tiến trình thường đơn giản thay đổi giá trị ưu tiên PCB hệ điều hành 2.1.3 Trạng thái tiến trình Trong thời gian tồn mình, tiến trình tồn trang thái tách biệt (rời rạc) Sự đổi từ trạng thái sang trạng thái khác xảy kiện khác 18 IT101_Bai 2_v1.0010110225 Bài 2: Quản lý tiến trình Ta nói tiến trình trạng thái hoạt động (Running State) xử lý phục vụ Cịn tiến trình sẵn sàng để xử lý phục vụ chờ đến lượt tiến trình trạng thái sẵn sàng (Ready State) Nói tiến trình trạng thái bị cản, chặn (Blocked State) chờ kiện (ví dụ kết thúc tác vụ vào/ra) để tiếp tục hoạt động Ngồi trạng thái nói cịn số trạng thái khác tạm thời xem xét quan hệ trạng thái Để đơn giản xem xét trường hợp máy tính có xử lý Trong hệ thống xử lý, thời điểm có tiến trình thực hiện, cịn số tiến trình nằm trạng thái sẵn sàng (Ready) số khác trạng thái bị chặn (Blocked) Do lập danh sách chứa tiến trình trạng thái Ready danh sách tiến trình bị khóa Mỗi tiến trình sẵn sàng nằm danh sách thứ có mức độ ưu tiên riêng (Priority) mình– tức tiến trình xếp theo thứ tự tiến trình nằm đầu danh sách tiến trình có độ ưu tiên cao xử lý thực (có nhiều tiêu chuẩn để gán độ ưu tiên thay đổi độ ưu tiên) Cịn danh sách Blocked Process nói chung khơng có thứ Blocked Process giải phóng (Unblock) kiện mà chờ 2.1.4 Biến đổi trạng thái Khi có chương trình (Task) bắt đầu thực hiện, hệ thống sinh tiến trình tương ứng tiến trình đưa vào danh sách tiến trình sẵn sàng, đơn giản đưa vào cuối danh sách – tức có mức ưu tiên thấp Tiến trình dịch chuyển dần lên phía đầu danh sách tiến trình trước xử lý phục vụ Khi tiến trình nằm đầu danh sách xử lý giải phóng tiến trình xử lý phục vụ lúc xảy thay đổi trạng thái tiến trình – chuyển từ trạng thái Ready sang Running Việc trao quyền sử dụng xử lý cho tiến trình danh sách tiến trình sẵn sàng gọi tiến trình dispatching, điều thực module chương trình nằm OS gọi Dispatcher tiến trình đổi trạng thái biểu diễn ký hiệu: dispatch(Process name): Ready  Running Tiến trình sử dụng xử lý gọi tiến trình thực Để ngăn chặn trường hợp vơ tình cố ý độc quyền chiếm tài nguyên hệ thống tiến trình, hệ Running điều hành sinh ngắt cứng đặc biệt ngắt thời Blocking Dispatch gian (Timer Interrupt) nhằm xác định khoảng thời gian lớn mà tiến trình sử dụng xử lý liên tục Nếu sau khoảng thời gian đó, Over time tiến trình khơng tự giải phóng xử lý hệ thống Ready Blocked sinh ngắt, theo quyền điều khiển Waik up chuyển lại cho hệ điều hành Lúc hệ điều hành chuyển tiến trình thực từ trạng thái Running trạng thái Ready, đưa vào danh sách tiến trình sẵn sàng, sau đưa tiến trình danh sách (tiến trình có mức ưu tiên cao nhất) vào thực (Running State) Các biến đổi biểu diễn hai thao tác: IT101_Bai 2_v1.0010110225 19 Bài 2: Quản lý tiến trình interval gone (Process name): Running  Ready dispatch (Process name): Ready  Running Nếu tiến trình sử dụng xử lý (Running State) trình hoạt động thực tác vụ vào/ra (I/O) tự giải phóng xử lý (tự chuyển vào trạng thái Blocked để chờ tác vụ vào/ra kết thúc) Sự chuyển trạng thái biểu diễn: blocking (Process name): Running  Blocked Còn tiến trình thay đổi trạng thái cuối cùng, kết thúc tác vụ vào/ra (hay nói chung xảy kiện mà tiến trình bị khóa chờ) lúc tiến trình chuyển từ trạng thái Blocked sang trạng thái Ready – sẵn sàng để thực tiếp Tiến trình biểu diễn: waikup(Process name): Blocked  Ready Với trạng thái trên, có khả chuyển trạng thái tiến trình là: Dispatch (Process name): Ready  Running interval gone(Process name): Running  Ready blocking (Process name): Running  Blocked waikup (Process name): Blocked  Ready Chú ý: Trong khả trên, có khả thứ sinh chương trình người sử dụng, cịn lại khả khác đối tượng khác bên tiến trình gây Tạm dừng kích hoạt (Suspending and Activating): Chúng ta biết khái niệm tạm dừng kích hoạt Các thao tác quan trọng lý do:  Nếu hệ thống hoạt động khơng ổn định có dấu hiệu trục trặc tiến trình diễn cần tạm dừng để lại kích hoạt sau sửa lỗi  Người sử dụng (lập trình viên) cần tạm dừng (khơng phải huỷ bỏ) tiến trình để kiểm tra kết trung gian xem chương trình có hoạt động hay không Event Terminated Ready Dispatch Over time Blocked Waik up Suspend Activate Running Suspend Activate ACTIVE STATE SUSPENDED STATE Suspend Ready suspend Blocked suspend Event Terminated  Một số tiến trình bị tạm dừng khoảng thời gian ngắn hệ thống tải sau lại kích hoạt có đủ tài ngun (hệ thống trở trạng thái bình thường) So với mục trước, ta có thêm hai trạng thái ứng với thao tác tạm dừng kích hoạt Tác nhân dừng thân tiến trình tiến trình khác Trong hệ có xử lý tiến trình dừng thân khơng có tiến trình khác chạy đồng thời với Cịn hệ điều hành có nhiều xử lý tiến trình bị dừng tiến trình khác chạy xử lý khác 20 IT101_Bai 2_v1.0010110225 Bài 2: Quản lý tiến trình Một tiến trình trạng thái Ready bị dừng tiến trình khác, lúc xảy chuyển trạng thái: Suspend (Process name): Ready  Suspended–Ready Tiến trình trạng thái Suspended–Ready chuyển trạng thái Ready tiến trình khác; tiến trình chuyển trạng thái biểu diễn bởi: Activate (Process name): Suspend–Ready  Ready Tiến trình trạng thái Blocked chuyển sang trạng thái Suspend tiến trình khác, diễn đổi trạng thái: Suspend (Process name): Blocked  Suspend–Blocked Và ngược lại, tiến trình trạng thái Suspended Blocked kích hoạt tiến trình khác Activate (Process name): Suspended–Blocked  Blocked Chúng ta đặt vấn đề khơng thay tạm dừng tiến trình trạng thái Blocked, ta chờ đến có kiện (kết thúc I/O) mà tiến trình đợi xảy để tiến trình chuyển trạng thái Ready Tuy nhiên tác vụ I/O hay kiện tiến trình chờ khơng xảy hay khơng biết xảy Như thế, nhà thiết kế cần phải chọn lựa: tạm dừng Blocked Process (đưa trạng thái Suspended–Blocked) phải sinh chế cho phép đưa tiến trình từ trạng thái Blocked sang trạng thái Ready sau chuyển thành trạng thái Suspended–Ready kết thúc I/O hay diễn kiện tiến trình chờ Mặt khác thao tác tạm dừng thường có mức ưu tiên cao cần thực ngay, phần lớn hệ thống sử dụng cách thứ Khi kiện tiến trình chờ xảy (nếu xảy ra), trạng thái tiến trình chuyển từ Suspended – Blocked sang trạng thái Suspended – Ready: Incommingevent (Process name): Suspended–Blocked  Suspended–Ready 2.1.5 Khái niệm luồng Khái niệm: Luồng dịng điều khiển phạm vi tiến trình Tiến trình đa luồng gồm nhiều dịng điều khiển khác không gian địa Một luồng thường gọi tiến trình nhẹ (Lightweight Process–LWP), đơn vị việc sử dụng CPU; hình thành gồm:  Một định danh luồng (Thread ID)  Một đếm chương trình  Tập ghi  Ngăn xếp Một luồng chia sẻ với luồng khác thuộc tiến trình phần mã, phần liệu, tài nguyên hệ điều hành tập tin mở tín hiệu Một tiến trình truyền thống (hay tiến trình nặng) có luồng điều khiển đơn Nếu tiến trình có nhiều luồng điều khiển, thực nhiều tác vụ thời điểm Tại đa luồng? Trong nhiều trường hợp, ứng dụng yêu cầu thực nhiều tác vụ IT101_Bai 2_v1.0010110225 21 Bài 2: Quản lý tiến trình Ví dụ: Một máy chủ Web thể phải phục vụ hàng trăm trình duyệt truy xuất đồng thời Nếu máy chủ Web chạy tiến trình đơn luồng truyền thống phục vụ trình khách thời điểm Dẫn đến thời gian mà trình khách phải chờ yêu cầu phục vụ lớn Giải pháp thứ sử dụng đa tiến trình, có tiến trình phục vụ chạy tiến trình đơn tiếp nhận yêu cầu Khi trình phục vụ nhận u cầu, tạo tiến trình để phục vụ yêu cầu Phương pháp đa tiến trình cách sử dụng thơng thường trước luồng trở nên phổ biến Tuy nhiên, việc tạo tiến trình chiếm nhiều tài nguyên thời gian hệ thống Nếu tiến trình thực tác vụ Hình vẽ: Tiến trình đa luồng với tiến trình có lại phải chịu tất chi hệ thống xử lý phí đó? Thường hiệu cho tiến trình gồm nhiều luồng phục vụ mục đích Tiếp cận đa luồng hóa tiến trình máy chủ Web Tiến trình tạo luồng riêng lắng nghe yêu cầu; yêu cầu thực khơng tạo tiến trình khác mà tạo luồng khác xử lý yêu cầu Ưu điểm đa luồng: Khả đáp ứng: đa luồng ứng dụng cho phép chương trình tiếp tục chạy, chí phần bị khóa hay thực thao tác dài Do cải thiện đáp ứng người dùng Ví dụ, máy chủ Web đáp ứng yêu cầu người dùng luồng yêu cầu người dùng cũ xử lý Chia sẻ tài nguyên: mặc định, luồng chia sẻ nhớ tài nguyên tiến trình mà chúng thuộc Thuận lợi việc chia sẻ mã cho phép ứng dụng có nhiều hoạt động luồng khác nằm không gian địa Kinh tế: cấp phát nhớ tài nguyên cho việc tạo tiến trình đắt Vì luồng chia sẻ tài nguyên tiến trình mà chúng thuộc nên kinh tế để tạo chuyển ngữ cảnh luồng Khó để đánh giá theo kinh nghiệm khác biệt chi phí cho việc tạo trì tiến trình luồng, thường nhiều thời gian để tạo quản lý tiến trình luồng Ví dụ, hệ điều hành Sun Solaris 2, tạo tiến trình chậm khoảng 30 lần tạo luồng chuyển đổi ngữ cảnh chậm lần Khai thác kiến trúc đa xử lý: lợi điểm đa luồng phát huy kiến trúc đa xử lý, luồng thực thi song song xử lý khác Một tiến trình đơn luồng chạy CPU Đa luồng máy nhiều CPU gia tăng tính đồng hành Trong kiến trúc đơn xử lý, CPU thường chuyển đổi qua lại luồng nhanh để tạo hình ảnh song song thực tế luồng chạy thời điểm Luồng người dùng luồng nhân: Chúng ta vừa thảo luận xem xét luồng chiều hướng chung Tuy nhiên, hỗ trợ luồng cung cấp cấp người dùng, cho luồng người dùng cấp nhân, cho luồng nhân Luồng người dùng: hỗ trợ nhân cài đặt thư viện luồng cấp người dùng Thư viện cung cấp hỗ trợ cho việc tạo luồng, lập thời biểu, quản lý 22 IT101_Bai 2_v1.0010110225 Bài 2: Quản lý tiến trình mà khơng có hỗ trợ từ nhân Vì nhân khơng biết luồng cấp người dùng, tất việc tạo luồng lập thời biểu thực không gian người dùng mà không cần can thiệp nhân Do đó, luồng cấp người dùng thường tạo quản lý nhanh, nhiên chúng có trở ngại Ví dụ, nhân đơn luồng luồng cấp người dùng thực lời gọi hệ thống nghẽn làm cho tồn tiến trình bị nghẽn Luồng nhân: hỗ trợ trực tiếp hệ điều hành Nhân thực việc tạo luồng, lập thời biểu, quản lý khơng gian nhân Vì quản lý luồng thực hệ điều hành, luồng nhân thường tạo quản lý chậm luồng người dùng Tuy nhiên, nhân quản lý luồng luồng thực lời gọi hệ thống nghẽn, nhân lập thời biểu luồng khác ứng dụng thực thi Trong mơi trường đa xử lý, nhân lập thời biểu luồng xử lý khác Hầu hết hệ điều hành Windows NT, Windows 2000, Solaris 2, BeOS Tru64 UNIX (trước Digital UNIX) – hỗ trợ luồng nhân 2.1.6 Xử lý ngắt Trong thực tế có nhiều trường hợp tương tự ngắt máy tính Khái niệm: Trong kỹ thuật máy tính, ngắt (Interrupt) kiện làm thay đổi trình tự thực lệnh bình thường xử lý Tín hiệu ngắt phần cứng xử lý Khi xảy ngắt, trình tự thực sau: Bước 1: Điều khiển chuyển cho hệ điều hành Bước 2: Hệ điều hành lưu lại trạng thái tiến trình bị ngắt Trong nhiều hệ thống thơng tin lưu PCB tiến trình bị ngắt Bước 3: Hệ điều hành phân tích loại ngắt chuyển điều khiển cho chương trình xử lý ngắt tương ứng Bước 4: Tác nhân gây ngắt thân tiến trình chạy, kiện liên quan khơng liên quan đến tiến trình 2.1.6.1 Các dạng ngắt Chúng ta xem xét dạng ngắt hệ thống máy lớn IBM: Dạng SVC– Interrupt Ngắt tiến trình chạy sinh SVC chương trình ứng dụng sinh để yêu cầu dịch vụ hệ thống, ví dụ thực tác vụ vào/ra, cấp phát nhớ Cơ chế SVC giúp bảo vệ hệ điều hành, người sử dụng không tự xâm nhập OS mà phải yêu cầu dịch vụ thơng qua lệnh SVC Do hệ điều hành ln kiểm sốt thao tác vượt q giới hạn ứng dụng hồn tồn từ chối yêu cầu Dạng Ngắt vào/ra Do thiết bị vào/ra sinh Các ngắt thông báo cho xử lý thay đổi trạng thái ví dụ kết thúc tác vụ in, máy in hết giấy, Dạng External Interrupt Ngắt nhiều nguyên nhân sinh ra, có ngắt thời gian overtime, ngắt bàn phím, ngắt từ xử lý khác hệ thống đa xử lý, IT101_Bai 2_v1.0010110225 23 Bài 2: Quản lý tiến trình Dạng Restart Interrupt Sinh người điều kiển cần khởi động lại hệ thống, hay lệnh Restart SIGP xử lý khác hệ thống đa xử lý Dạng Program check Interrupt Ngắt sinh lỗi hoạt động chương trình ví dụ lệnh chia cho 0, Dạng Machine check Interrupt Sinh lỗi phần cứng hệ thống 2.1.6.2 Chuyển ngữ cảnh – (Context Switching) Để xử lý loại ngắt, hệ điều hành có chương trình chuyên biệt gọi Interrupt Handler Như nêu, hệ thống có loại ngắt, hệ điều hành có IH (Interrupt Handler) để xử lý loại ngắt khác Khi có ngắt hệ điều hành ghi lại trạng thái tiến trình bị ngắt chuyển điều khiển cho chương trình xử lý ngắt tương ứng Điều thực phương pháp gọi “chuyển ngữ cảnh” (Context Switching) Trong phương pháp sử dụng ghi trạng thái chương trình PSW (Program status word), chứa thứ tự thực lệnh thông tin khác liên quan đến trạng thái tiến trình Có loại PSW:  PSW thời (Current)  PSW (New)  PSW cũ (Old) Địa lệnh (sẽ thực hiện) chứa Current PSW, Current PSW chứa thông tin loại Interrupt bị cấm (Disable) hay phép (Enable) Bộ xử lý phản ứng với loại ngắt phép, ngắt bị cấm xử lý sau bỏ qua Có số Interrupt không bị cấm: SVC, Restart, Trong hệ có xử lý có Current PSW, có New PSW (tương ứng cho loại ngắt) Old PSW tương ứng New PSW loại ngắt chứa địa chương trình xử lý ngắt (Interrupt Handler) loại Khi xảy ngắt (nếu loại ngắt khơng bị cấm), lúc tự động (do phần cứng thực hiện) xảy tiến trình chuyển đổi PSW sau: New PSWs Old PSWs SVC SVC I/O I/O External 24 Current PSW External Restart Restart Program check Program check Machine check Machine check IT101_Bai 2_v1.0010110225 Bài 2: Quản lý tiến trình nextResult:integer; begin while true begin P(bufferReady); P(enable); nextResult:= buffer; V(enable); {tiếp nhận thông tin nextResult } end; end; Begin Init(enable,1); Init(bufferReady,0); parbegin process1; process2; parend End Chúng ta xem xét hoạt động cặp tiến trình Giả sử tiến trình (tiến trình cho) sinh thơng tin tiến trình thứ (tiến trình nhận) sử dụng Giả sử chúng tương tác với thông qua biến số nguyên mang thơng tin có tên buffer Tiến trình cho tạo thông tin lưu kết vào biến buffer, sau tiến trình nhận đọc thơng tin từ biến buffer để có thơng tin Các tiến trình hoạt động với tốc độ khác nhiều Nếu tiến trình có kết quả, lưu vào buffer, tiến trình đọc thơng tin in ra, sau đến tiến trình 1, đầu dãy kết dãy tiến trình tính Bây giả sử tiến trình hoạt động khơng đồng Nếu tiến trình hoạt động nhanh dẫn đến tình kết tính tốn (của tiến trình 1) in hay nhiều lần Còn ngược lại tiến trình hoạt động nhanh có kết tính tốn bị bỏ qua khơng in Tất nhiên muốn trường hợp nào, tiến trình phải tương tác cho kết tính tốn in khơng nhiều không lặp, nghĩa ta muốn chúng đồng Chương trình ví dụ thực đồng tiến trình Semaphore Trong Semaphore Enable đảm bảo biến buffer chung không bị truy cập đồng thời, Semaphore bufferReady đảm bảo đồng Counting Semaphore Counting Semaphore hữu ích có tài ngun lấy từ nhóm (Pool) tài nguyên loại Khi khởi tạo Semaphore, giá trị số lượng tài nguyên nhóm Mỗi lệnh P giảm giá trị Semaphore 1, tương ứng với việc có tài nguyên lấy từ nhóm Mỗi lệnh V tăng giá trị semaphare tương ứng với việc tiến trình trả lại tài nguyên cho nhóm tài nguyên cấp cho tiến trình khác Trong trường hợp thực lệnh P mà giá trị Semaphore 0, nghĩa khơng cịn tài ngun trống, tiến trình phải chờ đến giá trị Semaphore khác nghĩa có lệnh V thực (ứng với kiện có tài nguyên giải phóng) 42 IT101_Bai 2_v1.0010110225 Bài 2: Quản lý tiến trình 2.3 Tắc nghẽn 2.3.1 Định nghĩa Trong hệ thống đa chương trình, tiến trình nằm trạng thái Deadlock hay treo, chờ kiện (Event) khơng xảy Tình treo hệ thống tình có hay nhiều tiến trình nằm trạng thái treo Trong hệ thống đa chương trình chức quan trọng hệ điều hành quản lý, phân chia tài nguyên Khi tài nguyên chia sẻ user, người có tồn quyền điều khiển, sử dụng tài nguyên phân chia cho anh ta, hồn tồn xảy Deadlock tiến trình người dùng chẳng kết thúc Trong chương xem xét vấn đề Deadlock số kết nghiên cứu vấn đề ngăn ngừa, phòng tránh phát tình trạng Deadlock khơi phục sau Chúng ta xem xét vấn đề liên quan chờ vơ tận (Indefinite Postponement – hỗn khơng xác định) tiến trình chờ kiện chẳng xảy lý chủ quan hệ thống điều khiển tài nguyên Các khả năng, giải pháp cân giá phải trả cho phương tiện ngăn chặn Deadlock với lợi ích mang lại xem xét Trong nhiều trường hợp, giá phải trả cho việc loại trừ tình trạng Deadlock cao Còn trường hợp khác (ví dụ hệ thống điều khiển thời gian thực) giá khơng tránh khỏi Deadlock gây hậu khơng lường trước Ví dụ tình trạng tắc nghẽn Có lẽ cách đơn giản để tạo Deadlock chương trình mà Holt đưa ngôn ngữ PL/1, chạy OS 360: Revenge: procedure options (main,Task); wait (event) end revenge; Tiến trình gắn với chương trình ln chờ kiện (event) lại khơng xem xét dấu hiệu xuất kiện Hệ thống bắt buộc nhận thấy tiến trình bị treo sau phải loại bỏ tiến trình để khỏi tình trạng Deadlock Deadlock lỗi chương trình hay thuật tốn thường khó phát Ví dụ 1: Tắc nghẽn giao thơng thực tế Hình 2.3.1–1 IT101_Bai 2_v1.0010110225 43 Bài 2: Quản lý tiến trình Ví dụ 2: Deadlock phân chia tài nguyên Trong hệ điều hành, Deadlock phần lớn xuất hậu tranh chấp sử dụng (chiếm) tài nguyên mà thời điểm cấp cho user, đơi gọi tài ngun sử dụng Trên hình 2.3.1–2 đưa ví dụ đơn giản Deadlock dạng Trên sơ đồ phân chia tài ngun có hai tiến trình hai tài nguyên Mũi tên từ tài nguyên vào tiến trình tài ngun thuộc quyền sử dụng tiến trình Cịn mũi tên từ tiến trình vào tài nguyên tiến trình yêu cầu sử dụng tài nguyên chưa cấp phát tài nguyên tương ứng Sơ đồ biểu diễn hệ thống tình trạng Deadlock: tiến trình A chiếm resource1 để tiếp tục hoạt động cần resource2 Trong tiến trình B chiếm resource2 lại cần resource1 để tiếp tục Mỗi tiến trình đợi để tiến trình Resource giải phóng resource mà cần, mặt khác tiến trình khơng giải Process A Process B phóng resource mà tiến trình chưa giải phóng tài ngun Resource Tình đợi vịng quanh đưa Hình 2.3.1–2 hệ thống vào tình trạng Deadlock Ví dụ 3: Deadlock hệ thống dùng Spooling Hệ thống Spooling thường xảy Deadlock Chế độ Spooling (vào/ra với buffer) áp dụng để nâng cao hiệu suất hệ thống cách phân cách chương trình khỏi liên lạc trực tiếp với thiết bị ngoại vi tốc độ thấp máy in, Nếu chương trình đưa dịng văn máy in mà phải đợi đến in xong dịng tiếp tục in dịng chương trình hoạt động chậm nhiều hạn chế tốc độ máy in Để tăng tốc độ thực chương trình, dòng liệu ghi thiết bị có tốc độ cao đĩa cứng lưu tạm thời trước đưa máy in Trong số hệ thống Spooling, chương trình phải định dạng (Format) tồn thơng tin ra, sau bắt đầu thực in Do vài tiến trình đưa liệu vào (Spooling File) để in, hệ thống rơi vào tình trạng Deadlock, buffer định trước bị đầy chưa hồn tất cơng việc Để khơi phục, hay khỏi tình trạng phải Restart System – dẫn đến tồn kết cơng việc tiến hành, phải loại bỏ số chương trình để chương trình cịn lại hoạt động tiếp tục Khi người điều hành bắt đầu cơng việc thiết lập kích thước cho Spooling File Một cách làm giảm khả xuất Deadlock Spooling thiết lập kích thước ban đầu lớn so với dự tính Nhưng cách thực (khả thi) nhớ thiếu, Giải pháp thông dụng tiến trình thiết lập ngưỡng để Spooling khơng tiếp nhận thêm cơng việc từ chương trình khác Spooling File sử dụng ví dụ tới 75% khơng gian Giải pháp dẫn tới giảm hiệu suất hệ thống giá phải trả để giảm xác suất xảy Deadlock Các hệ thống ngày hồn thiện hơn, cho phép bắt đầu in trước kết tất liệu định dạng nhờ phần hay tồn Spooling File giải phóng (xố) tiến trình thực cơng việc Trong nhiều hệ thống có khả 44 IT101_Bai 2_v1.0010110225 Bài 2: Quản lý tiến trình cấp phát đệm (Buffer) động để Spooling File đầy tăng kích thước Dù ưu Spooling lớn nhiều vấn đề Deadlock nảy sinh Vấn đề chờ vơ tận–hỗn khơng xác định (Indefinite Postponement) Trong hệ thống, tiến trình phải chờ ví dụ chờ cấp phát tài nguyên hay lập lịch trình, xuất tình mà (quyền) sử dụng xử lý bị hỗn khơng xác định Tình gọi hỗn vơ thời hạn (khơng xác định) dẫn tới tình khơng chấp nhận tình trạng Deadlock Tình trạng hỗn vơ thời hạn xảy cách điều khiển tài nguyên hệ thống Khi tài nguyên phân bố theo ngun tắc ưu tiên xảy trường hợp tiến trình chờ cấp tài ngun lâu vơ hạn, ln có tiến trình khác với độ ưu tiên cao Khi thiết kế hệ điều hành cần xem xét chiến lược điều khiển tiến trình nằm trạng thái chờ Trong nhiều hệ thống tình trạng hỗn vơ hạn ngăn chặn độ ưu tiên tiến trình tăng dần với thời gian chờ cấp tài ngun Do cuối tiến trình có độ ưu tiên cao phục vụ Khái niệm tài nguyên Một chức quan trọng hệ điều hành quản lý điều khiển tài nguyên hệ thống Nó có trách nhiệm phân phối tài nguyên thuộc loại khác hệ thống Chúng ta xem xét tài nguyên coi Preemtible (được xử dụng nhiều nhất) xử lý hay nhớ; Chương trình nằm nhớ bị đưa ngồi để cấp vùng nhớ cho chương trình khác cần nhớ Ví dụ 1: Khi chương trình thực u cầu vào/ra nói chung khơng sử dụng nhớ suốt khoảng thời gian thực thao tác vào/ra Nói chung, hệ thống, tài nguyên sử dụng nhiều (năng động nhất) xử lý, xử lý phải phục vụ tiến trình song song, chuyển từ tiến trình sang tiến trình khác để tất tiến trình tiếp tục với tốc độ chấp nhận Nếu tiến trình khơng sử dụng hợp lý xử lý ví dụ thực thao tác I/O, quyền sử dụng xử lý tiến trình cần tạn thời ngăn cấm, trao cho tiến trình khác Do đó, việc tổ chức phân chia tài nguyên động tiêu quan trọng để đảm bảo hoạt động hiệu hệ thống đa chương trình Các dạng tài ngun xác định "khơng phân chia" với ý nghĩa chúng tuỳ ý lấy lại từ tiến trình mà chúng cấp Ví dụ 2: Băng từ, thông thường cấp cho tiến trình khoảng thời gian dài Thiết bị kiểu khơng thể đơn giản lấy lại từ tiến trình để cấp cho tiến trình khác Có loại tài nguyên khác cho phép chia sẻ vài tiến trình, cịn có loại tiến trình độc quyền sử dụng Ví dụ 3: Ổ đĩa thường chứa File thuộc nhiều tiến trình đơi tiến trình chiếm giữ Bộ nhớ xử lý sử dụng chia sẻ nhiều tiến trình Dữ liệu chương trình tài nguyên chúng cần cấu điều khiển, cấp phát tương ứng IT101_Bai 2_v1.0010110225 45 Bài 2: Quản lý tiến trình Ví dụ 4: Trong hệ, nhiều user cần chạy chương trình Bởi user có copy chương trình nhớ khơng tiết kiệm, nạp copy chương trình vào nhớ cịn user có vùng liệu riêng Code chương trình mà khơng thay đổi thời gian chạy gọi Reentrant (hay chạy nhiều lần đồng thời) cịn Code chương trình thay đổi thời gian chạy gọi Code sử dụng nối tiếp (Serial Reusable) Với Reentrant Code – có số tiến trình làm việc cịn với Code nối tiếp tiến trình làm việc với thời điểm Khi nói tài nguyên đó, cần hình dung xem chúng sử dụng nhiều tiến trình đồng thời hay nhiều tiến trình tiến trình thời điểm Chính loại tài nguyên thứ hai thường gây Deadlock 2.3.2 Các điều kiện cần để xảy tắc nghẽn Coffman, Elphick Sheshani phát biểu điều kiện xuất Deadlock:  Các tiến trình yêu cầu quyền độc quyền sử dụng tài nguyên cấp phát cho (điều kiện loại trừ nhau)  Tiến trình giữ cho tài nguyên cấp đồng thời yêu cầu tài nguyên bổ sung (điều kiện chờ tài nguyên)  Tài nguyên không lấy lại từ tiến trình tài ngun chưa sử dụng để kết thúc công việc (điều kiện khơng phân chia)  Tồn vịng kín tiến trình, tiến trình giữ tài ngun mà tiến trình địi hỏi (điều kiện chờ vòng) 2.3.3 Phương pháp giải Vấn đề Deadlock vấn đề nghiên cứu nhiều lĩnh vực công nghệ thông tin, thành tựu lĩnh vực cho phép đề thuật tốn giải nhiều tốn Các nghiên cứu chia làm hướng sau:  Ngăn chặn Deadlock  Tránh Deadlock  Phát Deadlock  Khôi phục sau Deadlock Hướng thứ 1: Ngăn chặn Deadlock: có mục đích tìm điều kiện để loại trừ khả xuất tình trạng Deadlock Hướng giải pháp trực diện vấn đề Deadlock, thường dẫn tới việc sử dụng tài ngun khơng hiệu Nhưng dù phương pháp ngăn chặn Deadlock áp dụng phổ biến Hướng thứ 2: Tránh Deadlock: Mục đích biện pháp tránh Deadlock chỗ cho phép điều kiện nghiêm ngặt so với biện pháp ngăn chặn Deadlock đảm bảo sử dụng tài nguyên tốt Các biện pháp tránh Deadlock khơng địi hỏi loại bỏ hồn tồn để khơng xảy tình trạng deadlock hệ thống Ngược lại ý khả xuất Deadlock, trường hợp xác suất xuất Deadlock tăng lên áp dụng biện pháp tránh xảy Deadlock Hướng thứ 3: Phát Deadlock: Các phương pháp phát Deadlock áp dụng hệ thống có khả xuất Deadlock hậu thao tác vô ý 46 IT101_Bai 2_v1.0010110225 Bài 2: Quản lý tiến trình hay cố ý Mục đích biện pháp phát xác định tồn tình trạng Deadlock hệ thống, xác định tiến trình tài nguyên nằm tình trạng Deadlock Sau áp dụng biện pháp thích hợp để khắc phục Hướng thứ 4: Khơi phục sau Deadlock: Các biện pháp khôi phục sau Deadlock áp dụng loại bỏ tình trạng Deadlock để hệ thống tiếp tục hoạt động, cịn tiến trình rơi vào tình trạng Deadlock phải kết thúc tài nguyên giải phóng Sau tiến trình thường nạp đầu (các công việc thực đến lúc xảy Deadlock bị mất) 2.3.4 Ngăn chặn Đến nhà thiết kế giải vấn đề Deadlock thường theo hướng loại trừ tình Deadlock hay xảy Chúng ta xem xét phương pháp ngăn chặn Deadlock đánh giá hậu user với hệ thống đặc biệt mặt hiệu cơng việc tính sử dụng Havender khả xuất Deadlock khơng thể có tồn bốn điều kiện xuất Deadlock Havender đề chiến lược sau:  Mỗi tiến trình phải yêu cầu tất tài ngun cần lần khơng thể bắt đầu chưa có đủ tài ngun  Nếu tiến trình có tài nguyên đó, bị từ chối cấp phát tài nguyên (bổ sung) phải giải phóng tài nguyên ban đầu (đã có) trường hợp cần thiết phải yêu cầu cấp lại với tài nguyên bổ sung  Đưa vào tài nguyên tuyến tính tất tiến trình, tức tiến trình cấp tài ngun loại (phân loại theo thứ tự) sau yêu cầu tài nguyên loại có bậc lớn  Chúng ta thấy có ba chiến lược (chứ khơng phải bốn)  Mỗi ngun tắc có mục đích loại trừ (phá vỡ) điều kiện tồn Deadlock Điều kiện (điều kiện loại trừ nhau), theo tiến trình có độc quyền điều khiển tài nguyên cấp cho nó, khơng muốn loại trừ cần cho phép khả làm việc với tài nguyên đơn Nguyên tắc 1: Loại bỏ điều kiện “chờ tài nguyên bổ sung” Nguyên tắc thứ Havender đòi hỏi tiến trình phải u cầu tất (tồn bộ) tài nguyên mà cần từ đầu Hệ thống phải cấp tài nguyên theo nguyên tắc "có tất khơng có gì" Nếu tập hợp tài ngun có đủ hệ thống cấp tất tiến trình tiếp tục cơng việc Nếu lúc khơng có đủ tài ngun tiến trình phải chờ đến tài ngun có đủ (nhờ tiến trình khác giải phóng) Bởi tiến trình nằm trạng thái chờ khơng giữ tài nguyên nào, ngăn chặn xuất điều kiện "chờ tài nguyên bổ sung" tình Deadlock khơng thể xảy Kết trả giá việc sử dụng tài nguyên không hiệu Ví dụ, chương trình vào lúc cần 10 thiết bị băng từ, bắt buộc phải yêu cầu có đủ 10 thiết bị trước bắt đầu Nếu 10 thiết bị cần suốt thời gian hoạt động khơng có vấn đề hiệu suất sử dụng Nhưng nói chung khơng phải tất chúng sử dụng tiến trình tồn tiến trình mà chúng cần khoảng thời gian đó, thiết bị sử dụng với hiệu suất thấp, chấp nhận IT101_Bai 2_v1.0010110225 47 Bài 2: Quản lý tiến trình Một cách để nâng cao hiệu suất phân chia chương trình thành vài giai đoạn tương đối độc lập với Do thực việc cấp phát tài nguyên cho giai đoạn chương trình thay cấp lần cho chương trình Điều cho phép giảm việc lãng phí tài nguyên lại tăng chi phí thiết kế thực chương trình Chiến lược làm tăng khả tiến trình phải chờ vơ hạn (khơng xác định) khơng phải tất tài ngun cần thiết có vào lúc tiến trình cần Như hệ thống phải thực (đến kết thúc) số lượng lớn tốn khác giải phóng tài ngun cấp cho chúng để tốn chờ hoạt động Vào khoảng thời gian tài nguyên cần có thu thập chúng khơng thể cấp cho Task khác, tức lúc chúng khơng hoạt động Từ khía cạnh kinh tế chi phí cần phải tính Có nhiều ý kiến khác việc phải trả chi phí Có người cho tài ngun thu thập cho người sử dụng nên người dùng phải trả tiền cho thời gian chúng dừng Còn người khác cho điều khơng hợp lý lúc người dùng khơng thực sử dụng tài ngun Nếu người dùng muốn thực chương trình vào cao điểm phải trả nhiều đáng kể so với trường hợp thực vào thời gian khác Nguyên tắc 2: Loại bỏ điều kiện “không phân bố lại” Tiêu chuẩn thứ hai Havender (xem xét độc lập), ngăn chặn việc xuất điều kiện "không phân bố lại" Giả sử hệ thống cho phép tiến trình yêu cầu thêm tài nguyên bổ sung giữ tài nguyên cấp Nếu hệ thống có đủ tài nguyên trống để phân phối khơng có tình trạng Deadlock Nhưng u cầu khơng giải có tình tiến trình chiếm giữ tài ngun mà tiến trình khác yêu cầu để tiếp tục hoạt động, cịn tiến trình thứ hai lại chiếm giữ tài nguyên mà tiến trình đầu cần tức xuất Deadlock Nguyên tắc Havender thứ hai đòi hỏi tiến trình khơng cấp phát tài ngun bổ sung u cầu phải giải phóng tất tài nguyên chiếm giữ trường hợp cần thiết phải yêu cầu lại tất với tài nguyên bổ sung Nguyên tắc thật loại trừ yếu tố "không phân bố lại" lấy tài nguyên từ tiến trình chiếm chúng trước tiến trình hồn thành Ngun tắc có nhiều nhược điểm Nếu tiến trình tiến trình làm việc sử dụng tài nguyên mà sau giải phóng chúng kết làm việc đến lúc Giá lớn, nhiên cịn phụ thuộc vào tần số (xác suất) xảy Nếu tình xảy nói tiêu chuẩn khơng phải q đắt Cịn thường xun xảy giá đắt, đặc biệt với tiến trình có mức ưu tiên cao hay khẩn cấp Một nhược điểm lớn biện pháp xác suất xảy 'chặn vô hạn' (Indefinite Posponement) Sự thực tiến trình mà nhiều lần phải yêu cầu giải phóng tài nguyên bị dừng thời hạn không xác định Trong trường hợp hệ thống phải loại tiến trình để tiến trình khác tiếp tục Cũng khơng thể khơng tính khả tiến trình bị chặn vô hạn hệ thống không nhận ra, tình làm lãng phí tài ngun giảm hiệu suất hệ thống Nguyên tắc 3: Loại trừ điều kiện “chờ vòng quanh” Nguyên tắc thứ ba Havender loại trừ xuất tình trạng chờ vịng Vì tất tài ngun gán số tiến trình phải yêu cầu tài nguyên với 48 IT101_Bai 2_v1.0010110225 Bài 2: Quản lý tiến trình số tăng dần khơng thể xuất tình trạng 'chờ vịng quanh' Ngun tắc thực nhiều hệ điều hành gây khó khăn định Vì tài nguyên yêu cầu (cấp phát) theo thứ tự tăng dần số gán cho tài nguyên gán từ đầu trường hợp đưa thêm vào hệ thống tài nguyên loại gây tình phải thiết kế lại chương trình hệ thống Rõ ràng việc gán số cho tài nguyên cần thể thứ tự thông thường mà phần lớn Task sử dụng tài nguyên Đối với Task thực theo thứ tự tài nguyên sử dụng có hiệu Còn Task lại yêu cầu tài nguyên theo thứ tự ngược lại chiếm giữ tài nguyên lâu cần thiết (tính đến lúc tài nguyên thực dùng) Bởi chức quan trọng hệ điều hành cho phép người dùng sử dụng thuận tiện Người dùng phải có khả thiết kế chương trình với thứ khơng cần thiết hạn chế từ phía máy tính hệ điều hành Nguyên tắc thứ ba Havender ngăn chặn tình trạng 'chờ vịng' lại ảnh hưởng xấu đến cơng việc user tiến trình làm việc (lập trình) Ngăn chặn Deadlock thuật tốn Banker Ngay tồn điều kiện xuất Deadlock tránh tình trạng tài nguyên cấp phát theo qui tắc định Có lẽ thuật tốn thơng dụng để tránh tình trạng Deadlock thuật tốn Banker Dijstra đề xuất Thuật toán Banker Dijstra:  Khi xem xét thuật toán Banker xem xét tài nguyên giới hạn xét tài nguyên loại, thuật tốn dễ dàng thay đổi để áp dụng cho tài nguyên nhiều loại khác  Chúng ta xem trường hợp ví dụ phân chia t thiết bị lưu trữ băng từ  Hệ điều hành phải đảm bảo phân chia số thiết bị t cho số cố định người sử dụng Mỗi người dùng phải báo trước số thiết bị lớn mà cần thực toán Hệ điều hành chấp nhận yêu cầu người dùng yêu cầu cao khơng vượt q số thiết bị t  Người dùng chiếm hay giải phóng thiết bị Có thể phải chờ cấp tài nguyên hệ điều hành đảm bảo chờ đợi khơng phải vơ hạn Số thiết bị cấp cho người dùng thời điểm không vượt số thiết bị nhiều cần đến Nếu hệ điều hành có đủ số thiết bị thoả mãn yêu cầu lớn người dùng người sử dụng đảm bảo thiết bị sử dụng trả lại cho hệ điều hành sau khoảng thời gian hữu hạn  Trạng thái thời máy tính gọi ổn định hệ điều hành đảm bảo tất chương trình ứng dụng thời hệ thống hồn thành (kết thúc bình thường) sau khoảng thời gian hữu hạn Cịn trường hợp ngược lại trạng thái không ổn định  Giả sử có n người sử dụng  Giả sử l(i) số thiết bị cấp cho người sử dụng thứ i Ví dụ người dùng thứ dùng thiết bị l(5) =  Giả sử m(i) số thiết bị lớn mà người dùng thứ i cần ví dụ người dùng thứ cần nhiều thiết bị m(5) = Tại thời điểm, c(i) yêu cầu lớn IT101_Bai 2_v1.0010110225 49 Bài 2: Quản lý tiến trình thời người dùng i– hiệu số thiết bị nhiều yêu cầu số thiết bị có, tức c(i) = m(i) – l(i) ví dụ ta có c(5) = m(5) – l(5) = – =  Trong hệ thống với t thiết bị số thiết bị cịn rỗi thời điểm a t trừ tổng thiết bị cấp phát: a = t – l(i)  Thuật toán Banker Dijkstra yêu cầu thiết bị cấp phát cho người dùng theo yêu cầu trường hợp sau cấp phát hệ thống trạng thái ổn định Trạng thái ổn định trạng thái mà với tài nguyên có, tất ứng dụng người dùng có khả kết thúc (bình thường) cơng việc Cịn trạng thái khơng ổn định trạng thái dẫn tới Deadlock Ví dụ trạng thái ổn định: Giả sử hệ thống có 12 thiết bị chúng phân chia người dùng với trạng thái status1 biểu diễn bảng sau: Trạng thái status1 Số thiết bị cấp Số thiết bị lớn cần Người dùng 1 Người dùng Người dùng Dự trữ cịn lại Trạng thái ổn định người dùng có khả kết thúc cơng việc Ví dụ trạng thái khơng ổn định: Giả sử hệ thống có 12 thiết bị chúng phân chia người dùng với trạng thái status2 biểu diễn bảng sau: Trạng thái status2 Số thiết bị cấp Số thiết bị lớn cần Người dùng 10 Người dùng 2 Người dùng 3 Dự trữ lại Trong trường hợp 11 thiết bị trạng thái cấp phát thiết bị dự trữ Trạng thái khơng ổn định người dùng u cầu thêm thiết bị hệ thống đáp ứng khơng thể đảm bảo chương trình kết thúc bình thường Chúng ta cần ý thuật ngữ 'trạng thái khơng ổn định' khơng có nghĩa vào lúc thời điểm 'nhất định' xuất tình trạng Deadlock, mà nói trường hợp xấu, hệ thống 'có thể' rơi vào tình trạng Deadlock Ví dụ chuyển từ trạng thái ổn định sang không ổn định: Nếu trạng thái thời hệ thống ổn định điều khơng có nghĩa tất trạng thái sau ổn định Cơ chế cấp phát cần phải phân tích yêu cầu trước cấp phát tài nguyên Giả sử hệ thống trạng thái 3, rõ ràng trạng thái ổn định Người dùng thứ yêu cầu tài nguyên bổ sung Nếu thoả mãn u cầu hệ thống chuyển sang trạng thái Dễ thấy trạng thái trạng thái không ổn định 50 IT101_Bai 2_v1.0010110225 Bài 2: Quản lý tiến trình Trạng thái Số thiết bị cấp Số thiết bị lớn cần Người dùng 1 Người dùng Người dùng Dự trữ lại Trạng thái Số thiết bị cấp Số thiết bị lớn cần Người dùng 1 Người dùng Người dùng Dự trữ lại Tất nhiên trạng thái không thiết dẫn tới tình trạng Deadlock Tuy nhiên hệ thống chuyển từ trạng thái (ổn định) sang trạng thái (khơng ổn định) Phân phối tài ngun theo thuật tốn Banker:  Chúng ta xem xét phân phối tài nguyên theo Dijkstra thực Các điều kiện 'loại trừ nhau', 'chờ tài nguyên bổ sung' 'khơng phân chia lại' xảy Các tiến trình độc quyền sử dụng tài ngun cấp cho Các tiến trình quyền yêu cầu chờ tài nguyên bổ sung giữ tài nguyên cấp, tài ngun khơng bị lấy khỏi tiến trình Người dùng khơng đặt cho hệ thống tốn q phức tạp thời điểm yêu cầu tài nguyên Hệ thống thoả mãn từ chối yêu cầu Nếu yêu cầu bị từ chối user giữ tài nguyên cấp chờ khoảng thời gian (hữu hạn) đến cấp  Hệ thống thoả mãn yêu cầu mà sau trạng thái hệ thống ổn định Cịn u cầu dẫn hệ thống tới trạng thái khơng ổn định bị hỗn khoảng thời gian cuối thoả mãn Bởi thế, hệ thống trạng thái ổn định, tất yêu cầu thoả mãn tất user kết thúc cơng việc Những nhược điểm thuật tốn Banker: Thuật tốn Banker có nhiều ưu điểm cho phép cấp phát tài ngun, tránh tình trạng Deadlock Nó cho phép tiếp tục thực tiến trình mà trường hợp dùng biện pháp ngăn chặn chúng bị dừng Nhưng thuật tốn Banker có nhược điểm mà nhà thiết kế hệ thống phải lựa chọn cách khác để giải vấn đề Deadlock:  Thuật toán Banker xuất phát từ giả thiết số tài nguyên cố định Nhưng tài ngun khơng thể làm việc (ví dụ dừng lại để bảo dưỡng) khơng thể cho số lượng tài nguyên cố định IT101_Bai 2_v1.0010110225 51 Bài 2: Quản lý tiến trình  Thuật tốn địi hỏi số người dùng khơng đổi u cầu khơng thực tế, hệ đa chương trình, số lượng người dùng ln thay đổi  Thuật tốn địi hỏi phận phân phối tài nguyên phải đảm bảo thoả mãn tất yêu cầu sau khoảng thời gian hữu hạn Tuy nhiên thực tế người ta cần số cụ thể nhiều  Cũng thế, thuật tốn địi hỏi người dùng phải trả lại tài nguyên cấp, sau khoảng thời gian đó– thực tế cần số cụ thể  Thuật toán yêu cầu người dùng phải báo trước số lượng lớn tài nguyên cần Nhưng phân phối tài nguyên ngày phải linh động khó đánh giá yêu cầu lớn Vì máy tính ngày thân thiện với người dùng nên ngày nhiều người dùng khơng có hình dung xác số tài ngun lớn mà cần, thay vào cần tài nguyên người dùng yêu cầu 2.3.5 Phát tắc nghẽn Phát Deadlock – xác định kiện xuất trạng thái Deadlock, xác định tiến trình tài nguyên nằm tình trạng Deadlock Các thuật toán xác định Deadlock thường áp dụng hệ thống có xuất ba điều kiện số điều kiện làm xuất Deadlock sau xác định xem có tồn trạng thái 'chờ vịng' hay khơng Tất nhiên sử dụng thuật toán phát Deadlock phải trả giá, chi phí thời gian máy lại gặp vấn đề phải xác định giải pháp trung hồ: chi phí thực thuật tốn phát Deadlock có tiết kiệm hẳn so với dùng biện pháp cô lập, loại bỏ Deadlock hay không Graph phân bố tài nguyên: Trong thuật toán phát Deadlock, thường áp dụng cách biểu diễn phân bố tài nguyên dạng đồ thị có hướng Các hình vng biểu diễn tiến trình, cịn hình trịn lớn biểu diễn lớp tài ngun Các vòng tròn nhỏ biểu diễn số lượng tài nguyên lớp R3 R1 a) c) P1 P4 P3 R4 R2 b) P2 d) P6 P5 R5 Hình 2.3.5–1: quan hệ đồ thị tiến trình tài ngun Ví dụ vịng trịn lớn R1 có vịng nhỏ tức hệ thống có tài nguyên thuộc lớp R1 Trong hình 2.3.5–1a tiến trình P1 yêu cầu tài nguyên lớp R1 Mũi tên từ P1 đến vịng trịn lớn có nghĩa thời yêu cầu tiến trình xem xét Hình 2.3.5–1b thể tiến trình P2 cấp tài nguyên lớp R2, mũi tên từ vòng tròn nhỏ nằm vòng tròn lớn R2 đến tiến trình P2 52 IT101_Bai 2_v1.0010110225 Bài 2: Quản lý tiến trình Trên hình.2.3.5–1c biểu diễn tình ý nghĩa gần với tình trạng Deadlock: tiến trình P3 yêu cầu tài nguyên lớp R3 cấp cho tiến trình P4 Hình 2.3.5–1d biểu diễn tình trạng Deadlock: tiến trình P5 yêu cầu tài nguyên lớp R4, tất tài nguyên lớp cấp cho tiến trình P6 ngược lại tiến trình P6 yêu cầu tài nguyên lớp R5 – cấp cho P5 – tình trạng chờ vịng tình trạng Deadlock hay gặp Đồ thị phân bố yêu cầu cấp phát tài nguyên thay đổi tiến trình tiến trình yêu cầu tài nguyên, nhận tài nguyên sau trả lại cho hệ điều hành Sử dụng đồ thị phân bố tài nguyên Cơ chế phát Deadlock – xác định xem có xuất tình trạng Deadlock hay khơng Một phương pháp phát rút gọn đồ thị phân bố tài nguyên (Reduction of a Resource Allocation Graph), cho phép xác định tiến trình kết thúc tiến trình có mặt tình Deadlock Nếu yêu cầu tài nguyên tiến trình thoả mãn nói graph rút gọn tiến trình Sự rút gọn tương đương với biểu diễn graph dạng mà có tiến trình kết thúc cơng việc trả lại tài nguyên cho hệ thống Sự rút gọn graph tiến trình thể việc ngắt bỏ cung tới tiến trình từ tài nguyên (tức tài nguyên cấp cho tiến trình) cung từ tiến trình đến tài nguyên (tức yêu cầu cấp phát thời tiến trình) Nếu graph rút gọn thành tất tiến trình lập có nghĩa khơng có tình trạng Deadlock, cịn khơng thể làm tiến trình khơng rút gọn tiến trình nằm trạng thái Deadlock Trên hình 2.3.5–2 dãy thao tác rút gọn graph, kết cho ta thấy trường hợp không xuất trạng thái Deadlock Chúng ta cần để ý thứ tự thực thao tác không quan trọng Dù ta rút gọn theo thứ tự kết cuối R6 R6 P8 P8 Giảm P9 P7 P7 R7 R7 P9 P9 Giảm P7 R6 R6 P8 P7 P8 P7 R7 R7 P9 Giảm P8 P9 Hỡnh 2.3.52 Khụi phục sau Deadlock Hệ thống nằm trạng thái Deadlock cần khỏi tình trạng cách loại bỏ điều kiện tồn Deadlock Thơng thường số tiến trình phần IT101_Bai 2_v1.0010110225 53 Bài 2: Quản lý tiến trình hay tồn kết thực Nhưng giá nhỏ nhiều hệ thống bị treo hoàn toàn Mức độ phức tạp việc khôi phục hệ thống phụ thuộc nhiều yếu tố Ngay từ đầu việc xác định tình trạng Deadlock khơng phải ln rõ ràng Trong nhiều hệ thống khơng có cơng cụ đủ hiệu để dừng tiến trình thời hạn khơng xác định, đưa khỏi hệ thống lại khởi động sau Trong thực tế có số tiến trình phải làm việc liên tục khơng cho phép dừng lại khởi động Ngay hệ thống có cơng cụ hữu hiệu để dừng/khởi động tiến trình việc sử dụng chúng địi hỏi chi phí đáng kể thời gian máy, Khơi phục tình trạng Deadlock quy mơ nhỏ (có tiến trình nằm tình trạng đó) thường địi hỏi cơng sức có nhiều tiến trình nằm tình trạng Deadlock địi hỏi chi phí lớn Trong hệ thống việc khôi phục thường thực cách loại số tiến trình để sử dụng tài nguyên chúng Kết tiến trình bị huỷ thường bị nhờ tiến trình cịn lại tiếp tục, kết thúc cơng việc Thuật ngữ 'khơi phục' khơng xác lắm, ý nghĩa khơi phục khả làm việc bình thường hệ thống Việc lựa chọn tiến trình để loại khỏi hệ thống cần phải theo tiêu đó, ví dụ mức độ ưu tiên tiến trình Nhưng có số khó khăn Tiến trình nằm tình trạng Deadlock khơng cịn giá trị ưu tiên Độ ưu tiên tiến trình khơng ngun nhân ví dụ độ ưu tiên tiến trình tăng lên theo thời gian phải chờ Có lẽ phương pháp khơi phục tốt chế tạm dừng/khởi động tiến trình (Suspend/Activate) Cơ chế cho phép chuyển tiến trình vào trạng thái chờ, sau khởi động, kết làm việc giữ nguyên không bị Deadlock dẫn tới hậu lớn hệ thống thời gian thực Các hệ thống phải hoạt động liên tục khơng cho phép xảy tình trạng Deadlock Nhưng khơng thể đảm bảo tuyệt đối khơng xảy – vấn đề cần giải 54 IT101_Bai 2_v1.0010110225 Bài 2: Quản lý tiến trình TĨM LƯỢC CUỐI BÀI  Các trạng thái tiến trình, trình biến đổi trạng thái đó: o Dispatch (Process Name): Ready  Running o Interval Gone (Process Name): Running  Ready o Blocking (Process Name): Running  Blocked o Waitup (Process Name): Blocked  Ready  Chuyển đổi ngữ cảnh, tiến trình đồng thời  Deadlock: o Phát deadlock o Điều kiện loại trừ o Điều kiện chờ tài nguyên o Điều kiện không phân chia o Điều kiện chờ vịng  Ngăn chặn deadlock  Khơi phục sau deadlock,… IT101_Bai 2_v1.0010110225 55 Bài 2: Quản lý tiến trình CÂU HỎI TỰ LUẬN Câu Trình bày rõ trình biến đổi trạng thái? Câu Nêu dạng ngắt hệ thống máy lớn IBM? Câu Nêu thuật toán Dekker Version 4? Ưu điểm thuật tốn so với thuật tốn trước đó? Câu Thuật toán Banker ngăn chặn Deadlock? Câu Nêu ví dụ trạng thái ổn định, q trình chuyển từ trạng thái ổn định sang không ổn định? BÀI TẬP TRẮC NGHIỆM Tiến trình gì? a) Một chương trình lưu đĩa b) Một chương trình nạp vào nhớ c) Một chương trình nạp vào nhớ CPU thực thi d) Tất đáp án sai Việc chuyển trạnh thái tiến trình khơng thể thực hiện? a) Blocked =>Running b) Ready =>Running c) Blocked =>Ready d) Running =>Blocked Độ ưu tiên tiến trình cho biết: a) Tiến trình sử dụng CPU nhiều hay c) Tầm quan trọng tiến trình b) Tiến trình chiếm nhiều hay vùng nhớ d) Tất đáp án ……… trạng thái tiến trình? a) Blocked b) Privileged c) Ready d) Running Điều kiện để xảy Deadlock? a) Các tiến trình yêu cầu quyền độc quyền sử dụng tài nguyên cấp phát cho b) Tiến trình giữ cho tài nguyên cấp đồng thời yêu cầu tài nguyên bổ sung c) Tồn vịng kín tiến trình, tiến trình giữ tài nguyên mà tiến trình đòi hỏi d) Tất đáp án Trạng thái BLOCKED tiến trình do: a) Đang chờ nhập xuất c) Cả đáp án b) Đang chờ kiện chưa xảy d) Khơng có đáp án Để cài đặt loại trừ sử dụng thuật toán a) Dekker b) Dijkstra c) Banker d) Havender Hàng đợi dành cho tiến trình xếp hàng chờ xử lý gọi là? a) Busy–Waitting buffer b) Ready queue c) Waitting queue d) Suspended queue Khi tiến trình chuẩn bị vào hay khỏi vùng Critical Section phải? a) Xin phép hệ điều hành c) Cả hai đáp án 56 b) Phất cờ hiệu vào trả d) Khơng có đáp án IT101_Bai 2_v1.0010110225 ... tiến trình D E F Tạo tiến trình: Một tiến trình tạo tiến trình Tiến trình tiến trình cha (Parent Process) cịn tiến trình tạo tiến trình (Child Process) Để tạo tiến trình cần tiến trình có Tức tiến. .. (Priority)  Dừng (Block) tiến trình  Kích hoạt (Waikup) tiến trình  Thực (Dispatch) tiến trình IT101_Bai 2_v1.0010110225 17 Bài 2: Quản lý tiến trình Tiến trình tạo tiến trình gồm nhiều thao tác... tiến trình có tiến trình cha cịn tiến trình cha có nhiều tiến trình Các quan hệ tạo kiến trúc tiến trình Xố tiến trình: Xố tiến trình loại bỏ khỏi hệ thống Khi tài nguyên phân chia cho tiến trình

Ngày đăng: 27/02/2021, 09:34

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

Tài liệu liên quan