2.4.2 The Readers and Writers ProblemThe dining philosophers problem i dịch - 2.4.2 The Readers and Writers ProblemThe dining philosophers problem i Việt làm thế nào để nói

2.4.2 The Readers and Writers Probl

2.4.2 The Readers and Writers Problem
The dining philosophers problem is useful for modeling processes that are competing for exclusive access to a limited number of resources, such as I/O devices. Another famous problem is the readers and writers problem (Courtois et al., 1971), which models access to a database. Imagine, for example, an airline reservation system, with many competing processes wishing to read and write it. It is acceptable to have multiple processes reading the database at the same time, but if one process is updating (writing) the database, no other processes may have access to the database, not even readers. The question is how do you program the readers and the writers? One solution is shown in Fig. 2-34.

In this solution, the first reader to get access to the database does a down on the semaphore db. Subsequent readers merely increment a counter, rc. As readers leave, they decrement the counter and the last one out does an up on the semaphore, allowing a blocked writer, if there is one, to get in.

The solution presented here implicitly contains a subtle decision that is worth commenting on. Suppose that while a reader is using the database, another reader comes along. Since having two readers at the same time is not a problem, the second reader is admitted. A third and subsequent readers can also be admitted if they come along.

Now suppose that a writer comes along. The writer cannot be admitted to the database, since writers must have exclusive access, so the writer is suspended. Later, additional readers show up. As long as at least one reader is still active, subsequent readers are admitted. As a consequence of this strategy, as long as there is a steady supply of readers, they will all get in as soon as they arrive. The writer will be kept suspended until no reader is present. If a new reader arrives, say, every 2 seconds, and each reader takes 5 seconds to do its work, the writer will never get in.

To prevent this situation, the program could be written slightly differently: when a reader arrives and a writer is waiting, the reader is suspended behind the writer instead of being admitted immediately. In this way, a writer has to wait for readers that were active when it arrived to finish but does not have to wait for readers that came along after it. The disadvantage of this solution is that it achieves less concurrency and thus lower performance. Courtois et al. present a solution that gives priority to writers. For details, we refer you to the paper.
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
2.4.2 các độc giả và các vấn đề nhà vănVấn đề ăn uống của nhà triết học là hữu ích cho việc mô hình hóa các quá trình đang cạnh tranh để độc quyền truy cập vào một số giới hạn các tài nguyên, chẳng hạn như thiết bị I/O. Một vấn đề nổi tiếng khác là độc giả và nhà văn vấn đề (Courtois et al., 1971), mô hình đó truy cập vào cơ sở dữ liệu. Hãy tưởng tượng, ví dụ, một hệ thống Đặt phòng của hãng, với nhiều quy trình cạnh tranh, mong muốn đọc và ghi lại nó. Nó được 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 đang Cập Nhật (văn bản) cơ sở dữ liệu, không có cá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 giả. Câu hỏi là làm thế nào bạn làm 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.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 không xuống trên semaphore db. Tiếp theo bạn đọc chỉ đơn thuần là tăng một truy cập, rc. Như độc giả để lại, họ giảm việc truy cập và ra cuối một hiện diện lên trên semaphore, cho phép một nhà văn bị cấm, nếu có một, để có được trong.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 trên. Giả sử trong khi một người đọc bằng cách sử dụng cơ sở dữ liệu, một độc giả đến cùng. Kể từ khi có hai độc giả 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. Thứ ba và sau đó độc giả cũng có thể thừa nhận nếu họ đi cùng.Now suppose that a writer comes along. The writer cannot be admitted to the database, since writers must have exclusive access, so the writer is suspended. Later, additional readers show up. As long as at least one reader is still active, subsequent readers are admitted. As a consequence of this strategy, as long as there is a steady supply of readers, they will all get in as soon as they arrive. The writer will be kept suspended until no reader is present. If a new reader arrives, say, every 2 seconds, and each reader takes 5 seconds to do its work, the writer will never get in.To prevent this situation, the program could be written slightly differently: when a reader arrives and a writer is waiting, the reader is suspended behind the writer instead of being admitted immediately. In this way, a writer has to wait for readers that were active when it arrived to finish but does not have to wait for readers that came along after it. The disadvantage of this solution is that it achieves less concurrency and thus lower performance. Courtois et al. present a solution that gives priority to writers. For details, we refer you to the paper.
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
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..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: