2.4.2 Các độc giả và nhà văn Vấn đề
Các triết gia ăn uống vấn đề là hữu ích cho quá trình xây dựng mô hình đang cạnh tranh để truy cập độc quyền cho một số lượng hạn chế của các nguồn tài nguyên, chẳng hạn như thiết bị I / O. Một vấn đề khác nổi tiếng là độc giả và các nhà văn có vấn đề (Courtois et al., 1971), trong đó mô hình truy cập vào một cơ sở dữ liệu. Hãy tưởng tượng, ví dụ, một hệ thống đặt phòng hãng hàng không, với nhiều quá trình cạnh tranh có nhu cầu đọc và viết nó. Có thể chấp nhận có nhiều quy trình đọc cơ sở dữ liệu cùng một lúc, nhưng nếu một quá trình được cập nhật (bằng văn bản) cơ sở dữ liệu, không có quy trình khác có thể có quyền truy cập vào cơ sở dữ liệu, thậm chí không đọc. Câu hỏi đặt ra là làm thế nào để bạn chương trình độc giả và các nhà văn? Một giải pháp được thể hiện trong hình. 2-34. Trong giải pháp này, người đọc đầu tiên để có được quyền truy cập vào cơ sở dữ liệu hiện một xuống trên db semaphore. Đọc tiếp theo chỉ đơn thuần là tăng số đếm, rc. Như độc giả rời đi, họ giảm các truy cập và người cuối cùng ra làm một lên trên semaphore, cho phép một nhà văn bị chặn, nếu có, để có được trong. Các giải pháp trình bày ở đây ngầm chứa một quyết định tinh tế đó là giá trị cho ý kiến về. Giả sử rằng trong khi một người đọc được bằng cách sử dụng cơ sở dữ liệu, đầu đọc khác đi cùng. Từ khi có hai người đọc cùng một lúc không phải là một vấn đề, người đọc thứ hai được thừa nhận. Một độc giả thứ ba và sau đó cũng có thể được chấp nhận nếu họ đi cùng. Bây giờ giả sử rằng một nhà văn đi cùng. Các nhà văn không thể được nhận vào cơ sở dữ liệu, kể từ khi nhà văn phải có quyền truy cập độc quyền, do đó, các nhà văn bị đình chỉ. Sau đó, đọc thêm hiện. Miễn là có ít nhất một người đọc vẫn còn hoạt động, độc giả tiếp theo được thừa nhận. Như một hệ quả của chiến lược này, miễn là có một nguồn cung cấp ổn định của độc giả, tất cả họ sẽ có được trong ngay sau khi họ đến nơi. Các nhà văn sẽ được giữ cho đến khi bị đình chỉ không có đầu đọc là hiện tại. . Nếu một người đọc mới đến, nói, mỗi 2 giây, và mỗi người đọc mất 5 giây để làm công việc của mình, người viết sẽ không bao giờ có được trong Để tránh tình trạng này, chương trình có thể được viết hơi khác nhau: khi một người đọc đến và một nhà văn đang chờ đợi, người đọc được treo phía sau nhà văn thay vì được thừa nhận ngay lập tức. Bằng cách này, một nhà văn đã phải chờ đợi cho các độc giả đã được hoạt động khi nó đến để kết thúc nhưng không phải chờ đợi cho độc giả mà đến cùng sau khi nó. Những bất lợi của giải pháp này là nó đạt được ít đồng thời và hiệu suất như vậy thấp hơn. Courtois et al. trình bày một giải pháp ưu tiên cho các nhà văn. Để biết chi tiết, chúng tôi giới thiệu bạn đến giấy.
đang được dịch, vui lòng đợi..
