Bài giảng Hệ điều hành: Chương cung cấp cho người học những kiến thức như: Đồng bộ tiến trình; Tình trạng tắc nghẽn (deadlock). Mời các bạn cùng tham khảo! | Chương 3 QUẢN LÝ TIẾN TRÌNH 1 Nội dung chương 3 1. Khái niệm về tiến trình process . 2. Tiểu trình thread . 3. Điều phối tiến trình. 4. Đồng bộ tiến trình. 5. Tình trạng tắc nghẽn deadlock 2 Đồng bộ tiến trình Liên lạc giữa các tiến trình Mục đích Để chia sẻ thông tin như dùng chung file bộ nhớ Hoặc hợp tác hoàn thành công việc Các cơ chế Liên lạc bằng tín hiệu Signal Liên lạc bằng đường ống Pipe Liên lạc qua vùng nhớ chia sẻ shared memory Liên lạc bằng thông điệp Message Liên lạc qua socket 3 Đồng bộ tiến trình Liên lạc bằng tín hiệu Signal Tín hiệu được gởi đi bởi Tín hiệu Mô tả - Phần cứng - Hệ điều hành SIGINT Người dùng nhấn phím Ctl-C để ngắt - Tiến trình xử lý tiến trình - Người sử dụng SIGILL Tiến trình xử lý một chỉ thị bất hợp lệ Khi tiến trình nhận SIGKILL Yêu cầu kết thúc một tiến trình tín hiệu SIGFPT Lỗi chia cho 0 - Gọi hàm xử lý tín SIGSEG Tiến trình truy xuất đến một địa chỉ bất hiệu. V hợp lệ - Xử lý theo cách riêng của tiến trình. SIGCLD Tiến trình con kết thúc - Bỏ qua tín hiệu. Đồng bộ tiến trình Liên lạc bằng đường ống Pipe Dữ liệu truyền dòng các byte FIFO Tiến trình đọc pipe sẽ bị khóa nếu pipe trống và đợi đến khi pipe có dữ liệu mới được truy xuất. Tiến trình ghi pipe sẽ bị khóa nếu pipe đầy và đợi đến khi pipe có chỗ trống để chứa dữ liệu. Đồng bộ tiến trình Liên lạc qua vùng nhớ chia sẻ shared memory Vùng nhớ chia sẻ độc lập với các tiến trình Tiến trình phải gắn kết vùng nhớ chung vào không gian địa chỉ riêng của tiến trình Vùng nhớ chia sẻ là Phương pháp nhanh nhất để trao đổi dữ liệu giữa các tiến trình. Cần được bảo vệ bằng những cơ chế đồng bộ hóa. Không thể áp dụng hiệu quả trong các hệ phân tán Đồng bộ tiến trình Liên lạc bằng thông điệp Message Thiết lập một mối liên kết giữa hai tiến trình Sử dụng các hàm send receive do hệ điều hành cung cấp để trao đổi thông điệp Cách liên lạc bằng thông điệp Liên lạc gián tiếp indirect communication - 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 Liên