A variation on this approach is to have the getblock function take ano dịch - A variation on this approach is to have the getblock function take ano Việt làm thế nào để nói

A variation on this approach is to

A variation on this approach is to have the getblock function take another
parameter to indicate the “mode” of use for the information. If the mode is READ
then the buffer pool assumes that no changes will be made to the buffer’s contents
(and so no write operation need be done when the buffer is reused to store another
block). If the mode is WRITE then the buffer pool assumes that the client will not
look at the contents of the buffer and so no read from the file is necessary. If the
mode is READ AND WRITE then the buffer pool would read the existing contents
of the block in from disk, and write the contents of the buffer to disk when the
buffer is to be reused. Using the “mode” approach, the dirtyblock method is
avoided.
One problem with the buffer-passing ADT is the risk of stale pointers. When
the buffer pool user is given a pointer to some buffer space at time T1, that pointer
does indeed refer to the desired data at that time. As further requests are made to
the buffer pool, it is possible that the data in any given buffer will be removed and
replaced with new data. If the buffer pool user at a later time T2 then refers to the
data referred to by the pointer given at time T1, it is possible that the data are no
longer valid because the buffer contents have been replaced in the meantime. Thus
the pointer into the buffer pool’s memory has become “stale.” To guarantee that a
pointer is not stale, it should not be used if intervening requests to the buffer pool
have taken place.
We can solve this problem by introducing the concept of a user (or possibly
multiple users) gaining access to a buffer, and then releasing the buffer when done.
We will add method acquireBuffer and releaseBuffer for this purpose.
Method acquireBuffer takes a block ID as input and returns a pointer to the
buffer that will be used to store this block. The buffer pool will keep a count of the
number of requests currently active for this block. Method releaseBuffer will
reduce the count of active users for the associated block. Buffers associated with
active blocks will not be eligible for flushing from the buffer pool. This will lead
to a problem if the client neglects to release active blocks when they are no longer
needed. There would also be a problem if there were more total active blocks than
buffers in the buffer pool. However, the buffer pool should always be initialized to
include more buffers than should ever be active at one time.
An additional problem with both ADTs presented so far comes when the user
intends to completely overwrite the contents of a block, and does not need to read
in the old contents already on disk. However, the buffer pool cannot in general
know whether the user wishes to use the old contents or not. This is especially true
with the message-passing approach where a given message might overwrite only
part of the block. In this case, the block will be read into memory even when not
needed, and then its contents will be overwritten.
This inefficiency can be avoided (at least in the buffer-passing version) by separating
the assignment of blocks to buffers from actually reading in data for the
Sec. 8.3 Bu ers and Bu er Pools 281
block. In particular, the following revised buffer-passing ADT does not actually
read data in the acquireBuffer method. Users who wish to see the old contents
must then issue a readBlock request to read the data from disk into the
buffer, and then a getDataPointer request to gain direct access to the buffer’s
data contents.
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
Một biến thể về cách tiếp cận này là phải có các chức năng getblock mất một
tham số để chỉ "chế độ" sử dụng cho các thông tin. Nếu chế độ đọc
sau đó hồ bơi đệm giả định rằng không có thay đổi sẽ được thực hiện cho nội dung của bộ đệm
(và do đó, không có hoạt động viết cần được thực hiện khi bộ đệm tái sử dụng để lưu trữ một
khối). Nếu chế độ là viết sau đó hồ bơi đệm giả định rằng khách hàng sẽ không
xem xét nội dung của bộ đệm và vì vậy không có đọc từ các tập tin là cần thiết. Nếu các
chế độ là đọc và viết, sau đó hồ bơi đệm nào đọc nội dung hiện tại
của khối trong từ đĩa, và viết nội dung của bộ đệm để đĩa khi các
đệm là để được tái sử dụng. Sử dụng phương pháp tiếp cận "chế độ", phương pháp dirtyblock là
tránh.
là một vấn đề với đi qua bộ đệm ADT là nguy cơ cu con trỏ. Khi
người sử dụng hồ bơi bộ đệm được đưa ra một con trỏ đến một số không gian đệm lúc T1, con trỏ đó
thực sự đề cập đến dữ liệu mong muốn tại thời điểm đó. Khi tiếp tục yêu cầu được thực hiện để
hồ bơi đệm, có thể dữ liệu trong bất kỳ bộ đệm nhất định sẽ được gỡ bỏ và
thay thế với dữ liệu mới. Nếu người sử dụng hồ bơi bộ đệm sau T2 sau đó đề cập đến các
dữ liệu được gọi bằng con trỏ được đưa ra lúc T1, nó có thể rằng các dữ liệu là không có
còn hợp lệ vì các nội dung bộ đệm đã được thay thế trong khi chờ đợi. Do đó
con trỏ vào hồ bơi đệm bộ nhớ đã trở thành "cũ." Để đảm bảo rằng một
con trỏ không phải là cu, nó không nên được sử dụng nếu can thiệp yêu cầu cho hồ bơi bộ đệm
đã place.
chúng tôi có thể giải quyết vấn đề này bằng cách giới thiệu khái niệm về một người sử dụng (hoặc có thể
nhiều người dùng) đạt được quyền truy cập vào một bộ đệm, và sau đó phát hành các bộ đệm khi thực hiện.
chúng tôi sẽ thêm phương pháp acquireBuffer và releaseBuffer cho mục đích này.
phương pháp acquireBuffer mất một ID khối như đầu vào và trả về một con trỏ đến các
bộ đệm sẽ được sử dụng để lưu trữ khối này. Hồ bơi bộ đệm sẽ giữ số lượng các
số lượng yêu cầu đang được kích hoạt cho khối này. Phương pháp releaseBuffer sẽ
giảm đếm số người dùng cho khối kết hợp. Bộ đệm liên quan đến
hoạt động khối sẽ không được đủ điều kiện cho xả nước từ Hồ bơi bộ đệm. Điều này sẽ dẫn
cho một vấn đề nếu khách hàng neglects để phát hành hoạt động khối khi họ không còn
cần thiết. Nào cũng có một vấn đề nếu có là thêm khối tất cả hoạt động hơn
bộ đệm trong hồ bơi bộ đệm. Tuy nhiên, các hồ bơi đệm luôn luôn nên được khởi chạy để
bao gồm bộ đệm thêm hơn nên bao giờ được hoạt động ở một thời gian.
một vấn đề bổ sung với cả hai ADTs trình bày cho đến nay đến khi người sử dụng
dự định hoàn toàn ghi đè lên nội dung của một khối, và không cần phải đọc
trong nội dung cũ đã có trên đĩa. Tuy nhiên, Hồ bơi đệm không thể nói chung
biết cho dù người dùng muốn sử dụng nội dung cũ hay không. Điều này đặc biệt đúng
với phương pháp tiếp cận thông điệp đi qua nơi thư nhất định có thể ghi đè lên chỉ
là một phần của khối. Trong trường hợp này, khối sẽ được đọc vào bộ nhớ ngay cả khi không
cần thiết, và sau đó nội dung của nó sẽ được ghi đè.
này không hiệu quả có thể tránh được (tối thiểu trong phiên bản đi qua bộ đệm) bằng cách tách
sự phân công của khối để đệm từ thực sự đọc trong các dữ liệu cho các
Sec. 8.3 Bu ers và Bu er Hồ bơi 281
khối. Đặc biệt, sau sửa đổi thông qua bộ đệm ADT hiện không thực sự
đọc dữ liệu trong các phương pháp acquireBuffer. Người sử dụng có muốn xem nội dung cũ
phải sau đó phát hành một yêu cầu readBlock để đọc dữ liệu từ đĩa vào các
đệm, và sau đó là một yêu cầu getDataPointer để truy cập trực tiếp vào bộ đệm
dữ liệu nội dung.
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Một biến thể của phương pháp này là có chức năng getblock mất một
tham số để chỉ ra "chế độ" sử dụng cho các thông tin. Nếu chế độ là ĐỌC
sau đó vùng đệm dữ liệu giả định rằng không có thay đổi sẽ được thực hiện các nội dung của bộ đệm
(và do đó không có hoạt động viết cần được thực hiện khi bộ đệm được tái sử dụng để lưu trữ một
khối). Nếu chế độ là VIẾT sau đó vùng đệm dữ liệu giả định rằng khách hàng sẽ không
xem xét các nội dung của bộ đệm và do đó, không đọc từ tập tin là cần thiết. Nếu
chế độ được ĐỌC VÀ VIẾT sau đó vùng đệm dữ liệu có thể đọc được các nội dung hiện có
của khối từ đĩa CD, và ghi các nội dung của bộ đệm vào đĩa khi
bộ đệm sẽ được tái sử dụng. Sử dụng "chế độ" phương pháp tiếp cận, phương pháp dirtyblock được
tránh.
Một vấn đề với ADT đệm đi qua là rủi ro của con trỏ cũ. Khi
người sử dụng hồ bơi đệm được đưa ra một con trỏ đến một số không gian đệm vào thời điểm T1, con trỏ đó
không thực sự tham khảo các dữ liệu cần thiết tại thời điểm đó. Theo yêu cầu tiếp tục được thực hiện cho
các vùng đệm, có thể là các dữ liệu trong bộ đệm cho bất kỳ sẽ được gỡ bỏ và
thay thế bằng dữ liệu mới. Nếu người sử dụng hồ bơi đệm tại một thời điểm T2 sau đó đề cập đến các
dữ liệu được đề cập đến bởi con trỏ được đưa ra tại thời điểm T1, có thể là các dữ liệu không
còn giá trị vì các nội dung đệm đã được thay thế trong khi chờ đợi. Như vậy
con trỏ vào bộ nhớ đệm hồ bơi đã trở thành "cũ." Để đảm bảo rằng một
con trỏ không phải là cũ, nó không nên được sử dụng nếu can thiệp yêu cầu đưa vào vùng đệm
đã diễn ra.
Chúng ta có thể giải quyết vấn đề này bằng cách giới thiệu các khái niệm về một người sử dụng (hoặc có thể
nhiều người dùng) tiếp cận với một bộ đệm, và sau đó phát hành các bộ đệm khi thực hiện xong.
Chúng tôi sẽ bổ sung thêm phương pháp acquireBuffer và releaseBuffer cho mục đích này.
Phương pháp acquireBuffer có một mã số cấm là đầu vào và trả về một con trỏ đến
bộ đệm sẽ được được sử dụng để lưu trữ khối này. Vùng đệm sẽ giữ một số của các
số lượng yêu cầu hiện đang hoạt động cho khối này. Phương pháp releaseBuffer sẽ
làm giảm số lượng người dùng hoạt động cho khối liên quan. Bộ đệm kết hợp với
các khối hoạt động sẽ không đủ điều kiện để xả từ các hồ bơi đệm. Điều này sẽ dẫn
đến một vấn đề nếu khách hàng bỏ qua việc phát hành các khối hoạt động khi họ không còn
cần thiết. Ngoài ra, còn một vấn đề nếu có nhiều hoạt động hơn so với tổng khối
bộ đệm trong vùng đệm. Tuy nhiên, hồ bơi đệm nên luôn luôn được khởi tạo
bao gồm nhiều bộ đệm hơn bao giờ hết cần được hoạt động cùng một lúc.
Một vấn đề nữa với cả hai ADTs giới cho đến nay xảy ra khi người dùng
có ý định để ghi đè lên hoàn toàn nội dung của một khối, và không cần phải đọc
các nội dung cũ đã có trên đĩa. Tuy nhiên, vùng đệm có thể không nói chung
biết liệu người sử dụng muốn sử dụng các nội dung cũ hay không. Điều này đặc biệt đúng
với cách tiếp cận thông điệp đi qua nơi một tin nhắn cho có thể ghi đè lên chỉ
một phần của khối. Trong trường hợp này, khối sẽ được đọc vào bộ nhớ ngay cả khi không
cần thiết, và sau đó nội dung của nó sẽ được ghi đè.
không hiệu quả này có thể tránh được (ít nhất là trong phiên bản đệm đi qua), phân chia
nhiệm vụ của khối để bộ đệm từ thực sự đọc trong dữ liệu cho
Sec. 8.3? Ers Bu và Bu? Hồ bơi er 281
khối. Đặc biệt, các sửa đổi sau đây đệm đi qua ADT không thực sự
đọc dữ liệu trong phương pháp acquireBuffer. Người dùng muốn xem nội dung cũ
sau đó phải ra một yêu cầu readBlock để đọc dữ liệu từ đĩa vào
bộ đệm, và sau đó yêu cầu getDataPointer để truy cập trực tiếp vào bộ đệm
dữ liệu nội dung.
đ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 ©2024 I Love Translation. All reserved.

E-mail: