slide hệ điều hành chương 3 quản lý tiến trình chương 3 phần 2

63 16 0
slide hệ điều hành chương 3 quản lý tiến trình chương 3 phần 2

Đ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

.c om ng co ng th an Chương cu u du o QUẢN LÝ TIẾN TRÌNH CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Nội dung chương co Tiểu trình (thread) ng Khái niệm tiến trình (process) th an Điều phối tiến trình du o ng Đồng tiến trình cu u Tình trạng tắc nghẽn (deadlock) CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Đồng tiến trình  Liên lạc tiến trình co ng  Mục đích: an  Để chia sẻ thơng tin dùng chung file, nhớ,… ng  Các chế: th  Hoặc hợp tác hồn thành cơng việc du o  Liên lạc tín hiệu (Signal) cu u  Liên lạc đường ống (Pipe)  Liên lạc qua vùng nhớ chia sẻ (shared memory)  Liên lạc thông điệp (Message)  Liên lạc qua socket CuuDuongThanCong.com https://fb.com/tailieudientucntt co ng  Liên lạc tín hiệu (Signal) c om Đồng tiến trình Mơ tả SIGINT Người dùng nhấn phím Ctl-C để ngắt xử lý tiến trình SIGILL Tiến trình xử lý thị bất hợp lệ SIGKILL Yêu cầu kết thúc tiến trình SIGFPT Lỗi chia cho cu u du o ng th an Tín hiệu SIGSEG Tiến trình truy xuất đến địa bất V hợp lệ SIGCLD Tiến trình kết thúc CuuDuongThanCong.com Tín hiệu gởi bởi: - Phần cứng - Hệ điều hành: - Tiến trình: - Người sử dụng: Khi tiến trình nhận tín hiệu: - Gọi hàm xử lý tín hiệu - Xử lý theo cách riêng tiến trình - Bỏ qua tín hiệu https://fb.com/tailieudientucntt .c om Đồng tiến trình ng th an co ng  Liên lạc đường ống (Pipe) du o  Dữ liệu truyền: dòng byte (FIFO) cu u  Tiến trình đọc pipe bị khóa pipe trống, đợi đến pipe có liệu truy xuất  Tiến trình ghi pipe bị khóa pipe đầy, đợi đến pipe có chỗ trống để chứa liệu CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Đồng tiến trình  Liên lạc qua vùng nhớ chia sẻ (shared memory) u du o ng th an co ng  Vùng nhớ chia sẻ độc lập với tiến trình  Tiến trình phải gắn kết vùng nhớ chung vào không gian địa riêng tiến trình cu  Vùng nhớ chia sẻ là:  Phương pháp nhanh để trao đổi liệu tiến trình  Cần bảo vệ chế đồng hóa  Khơng thể áp dụng hiệu hệ phân tán CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Đồng tiến trình Send(A, message): gởi thông điệp tới port A Receive(A, message): nhận thông điệp từ port A du o - ng th an co ng  Liên lạc thông điệp (Message)  Thiết lập mối liên kết hai tiến trình  Sử dụng hàm send, receive hệ điều hành cung cấp để trao đổi thông điệp  Cách liên lạc thông điệp:  Liên lạc gián tiếp (indirect communication) - cu u  Liên lạc trực tiếp (direct communication) Send(P, message): gởi thông điệp đến process P Receive(Q,message): nhận thông điệp từ process Q CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Đồng tiến trình co ng Ví dụ: Bài tốn nhà sản xuất - người tiêu thụ (producer-consumer) { tạo_sp(); th while(1) ng { an void nsx() du o send(ntt,sp); //gởi sp cho ntt cu { u void ntt() }} while(1) { receive(nsx,sp); //ntt chờ nhận sp tiêu_thụ(sp); }} CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng tiến trình c om  Liên lạc qua socket u “tiến trình gởi” ghi liệu vào socket mình, liệu chuyển cho socket “tiến trình nhận” “tiến trình nhận” nhận liệu cách đọc liệu từ socket “tiến trình nhận” cu - du o ng th an co ng  Mỗi tiến trình cần tạo socket riêng  Mỗi socket kết buộc với cổng khác  Các thao tác đọc/ghi lên socket trao đổi liệu hai tiến trình  Cách liên lạc qua socket:  Liên lạc kiểu thư tín (socket đóng vai trị bưu cục) - CuuDuongThanCong.com https://fb.com/tailieudientucntt Đồng tiến trình c om  Liên lạc qua socket u du o ng th Hai tiến trình cần kết nối trước truyền/nhận liệu kết nối trì suốt trình truyền nhận liệu cu - an co ng  Cách liên lạc qua socket (tt):  Liên lạc kiểu điện thoại (socket đóng vai trị tổng đài) CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Tình trạng tắc nghẽn (deadlock)  Giải thuật xác định trạng thái an toàn //số tài nguyên ng int NumResources; //số tiến trình hệ thống co int NumProcs; an //số lượng tài nguyên tự th int Available[NumResources] ng int Max[NumProcs, NumResources]; du o //Max[p,r]= nhu cầu tối đa tiến trình p tài nguyên r int Allocation[NumProcs, NumResources]; cu u //Allocation[p,r] = số tài nguyên r cấp phát cho tiến trình p int Need[NumProcs, NumResources]; //Need[p,r] = Max[p,r] - Allocation[p,r]= số tài nguyên r mà tiến trình p cần sử dụng int Finish[NumProcs] = false; //=true process P thực thi xong; CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Tình trạng tắc nghẽn (deadlock)  Giải thuật xác định trạng thái an toàn B1 cu u du o ng th an co ng If i: Finish[i] = false //tiến trình i chưa thực thi xong Need[i,j] « hệ thống trạng thái an tồn », else « khơng an tồn » CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Tình trạng tắc nghẽn (deadlock) co ng  Giải thuật Banker: Pi yêu cầu kr thể tài nguyên r an B1 If kr

Ngày đăng: 03/02/2021, 08:38

Từ khóa liên quan

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

Tài liệu liên quan