Chương 6 Đồng bộ hóa tiến trình

58 1.2K 3
Chương 6 Đồng bộ hóa 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

Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Chương 6: ĐỒNG BỘ HOÁ TIẾN TRÌNH 6.2 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Tóm tắt nội dung  Giới thiệu  Tổng quan về đồng bộ hóa tiến trình  Vấn đề đoạn găng  Các giải pháp  Các bài toán đồng bộ hóa nguyên thủy 6.3 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Giới thiệu Một tiến trình cộng tác là một tiến trình ảnh hưởng hay bị ảnh hưởng tới các tiến trình khác đang thực thi trong hệ thống. Các tiến trình hợp tác có thể chia sẽ trực tiếp không gian địa chỉ vật lý, hay được phép chia sẽ dữ liệu thông qua tập tin. 6.4 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Tổng quan  Sự truy cập đồng thời để chia sẽ dữ liệu có thể đem lại kết quả không nhất quán.  Tính nhất quán của việc duy trì dữ liệu yêu cầu cơ chế để đảm bảo thứ tự thi hành của việc điều độ tiến trình.  Giả định rằng chúng ta muốn cung cấp một giải pháp để bài toán người tiêu dùng - người sản xuất mà nó làm tràn vùng đệm.  Chúng ta nên tạo một biến count kiểu nguyên để giữ đoạn mã của vùng đệm bị tràn.  Ban đầu, count =0. Count được tăng lên khi người sản xuất thêm một sản phẩm tới vùng đệm và giảm khi lấy một sản phẩm ra khỏi vùng đệm. 6.5 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Mã của tiến trình người sản xuất 6.6 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Mã của tiến trình người tiêu thụ 6.7 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Điều kiện cạnh tranh (race condition)  count++ được cài đặt trên ngôn ngữ máy : register1 = count register1 = register1 + 1 count = register1  Tương tự cài đặt count - - như sau: register2 = count register2 = register2 - 1 count = register2  Giả thiết thực thi ban đầu với “count = 5” : T0: producer thực thi register1 = count {register1 = 5} T1: producer thực thi register1 = register1 + 1 {register1 = 6} T2: producer thực thi register2 = count {register2 = 5} T3: producer thực thi register2 = register2 - 1 {register2 = 4} T4: producer thực thi count = register1 {count = 6 } T5: producer thực thi count = register2 {count = 4} 6.8 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Đoạn găng Xét một hệ thống gồm n tiến trình (P 0 ,P 1 , …,P n-1 ). Mỗi tiến trình có một phân đoạn mã gọi là đoạn găng (critical section), trong đó tiến trình này có thể thay đổi những biến dùng chung, cập nhật một bản, ghi đến tập tin,… 6.9 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Đoạn găng 1. Điều kiện cạnh tranh - Nhiều quá trình truy xuất cùng thao tác dữ liệu đồng hành để chia sẽ dữ liệu và kết quả của việc thực thi phụ thuộc vào thứ tự xác định ở đó việc truy xuất xảy ra. 2. Đoạn găng – Phân đoạn mã chia sẽ dữ liệu được truy cập trong các tiến trình đồng thời. 3. Phần đi vào – Vùng mã thực hiện yêu cầu quyền để đi vào đoạn găng của nó. 4. Phần kết thúc – Vùng mã được chạy sau khi ra khỏi đoạn găng. 6.10 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Đoạn găng [...]... Nov 15, 20 06 6.33 Silberschatz, Galvin and Gagne ©2007 Mỗi semaphore có một giá trị nguyên và một danh sách các tiến trình L Khi một tiến trình phải chờ trên một semaphore, nó được thêm vào danh sách các tiến trình L Một thao tác signal xóa một tiến trình ra khỏi danh sách các tiến trình đang chờ và đánh thức tiến trình đó Operating System Concepts with Java – 7th Edition, Nov 15, 20 06 6.34 Silberschatz,...Đoạn găng 1 Loại trừ hỗ tương -Nếu tiến trình Pi đang thực thi trong đoạn găng của nó thì không tiến trình nào khác được thực thi trong đoạn găng đó 2 Tiến trình - Nếu không có tiến trình nào đang thực thi trong đoạn găng và ở đó tồn tại vài tiến trình mà muốn tham gia vào đoạn găng, sau đó chọn lựa những tiến trình sẽ đi vào đoạn găng tiếp theo không thể trì hoãn vô hạn... S.value ; If (S.value . 20 06 Chương 6: ĐỒNG BỘ HOÁ TIẾN TRÌNH 6. 2 Silberschatz, Galvin and Gagne ©2007 Operating System Concepts with Java – 7 th Edition, Nov 15, 20 06 Tóm tắt nội dung  Giới thiệu  Tổng quan về đồng. 7 th Edition, Nov 15, 20 06 Giới thiệu Một tiến trình cộng tác là một tiến trình ảnh hưởng hay bị ảnh hưởng tới các tiến trình khác đang thực thi trong hệ thống. Các tiến trình hợp tác có thể. 20 06 Tóm tắt nội dung  Giới thiệu  Tổng quan về đồng bộ hóa tiến trình  Vấn đề đoạn găng  Các giải pháp  Các bài toán đồng bộ hóa nguyên thủy 6. 3 Silberschatz, Galvin and Gagne ©2007 Operating

Ngày đăng: 13/05/2014, 00:26

Từ khóa liên quan

Mục lục

  • Chương 6: ĐỒNG BỘ HOÁ TIẾN TRÌNH

  • Tóm tắt nội dung

  • Giới thiệu

  • Tổng quan

  • Mã của tiến trình người sản xuất

  • Mã của tiến trình người tiêu thụ

  • Điều kiện cạnh tranh (race condition)

  • Đoạn găng

  • Đoạn găng

  • Slide 10

  • Slide 11

  • Giải pháp

  • Giải pháp “chờ đợi bận”:

  • Giải pháp “chờ đợi bận”

  • Cấu trúc của tiến trình pi trong giải thuật 1

  • Slide 16

  • Cấu trúc của tiến trình pi trong giải thuật 2

  • Slide 18

  • Giải thuật 3 (giải pháp Peterson)

  • Giải pháp Peterson

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

Tài liệu liên quan