UkrReferat.com
найбільша колекція україномовних рефератів

Всього в базі: 75843
останнє поновлення: 2016-12-04
за 7 днів додано 10

Реферати на українській
Реферати на російській
Українські підручники

$ Робота на замовлення
Реклама на сайті
Зворотній зв'язок

 

ПОШУК:   

реферати, курсові, дипломні:

Українські рефератиРусские рефератыКниги
НазваІдея буферизації (реферат)
Автор
РозділІнформатика, компютерні науки
ФорматWord Doc
Тип документуРеферат
Продивилось1609
Скачало213
Опис
ЗАКАЧКА
Замовити оригінальну роботу

ПАСКАЛЬ: БУФЕРИЗАЦІЯ ВВЕДЕННЯ-ВИВЕДЕННЯ

 

1. Ідея буферизації

 

Дівчині Галі треба кілька склянок води, щоб полити квіти на вікні. Але

вона чомусь іде до колодязя з двома здоровенними відрами. Шлях туди не

зовсім короткий, відра важкі, але принісши їх, Галя не піде до колодязя

за наступними склянками, аж поки не вичерпає з відер усю воду.

 

Такі самі міркування лежать в основі організації обміну даних між

фізичними файлами та змінними програми. Фізичний файл можна порівняти з

колодязєм. Добування води з нього вимагає багато часу, і вигідно це

робити не надто часто та не зовсім малими дозами. У ролі відра під час

виконання програми виступає буфер – спеціальна ділянка пам’ яті

програми, яка надається кожній файловій змінній при її зв’ язуванні.

 

Спочатку розглянемо фізичні файли на диску. Дискова пам’ ять

розбивається на блоки – ділянки фіксованого розміру (найчастіше, по 512

байтів). Пристрої обміну (дисководи) створено так, що саме блоками дані

копіюються на диск або з диску.

 

Блок є одиницею фізичного обміну між диском та оперативною пам’ яттю.

Коли виконується виклик підпрограми читання, в буфер копіюється цілий

блок або кілька блоків даних із файла, і до змінних значення потрапляють

не з файла, а з буфера. За наступних читань жодних переміщень даних між

диском та оперативною пам’ яттю немає, а значення беруться з буфера.

 

Розмір буфера визначається операційною системою. Як правило, це 2, 8, 16

або навіть більше блоків.

 

З кожним буфером зв’ язана додаткова змінна, яка вказує на його поточний

елемент. Саме його значення копіюється при читанні, а поточним стає

наступний за ним. Можна вважати, що поточний елемент в буфері виступає

представником доступного елемента файла. Якщо весь буфер прочитано, то

за чергової спроби читання наступні кілька блоків файла копіюються в

буфер.

 

Підкреслимо, що буфер, як і вказівник поточного елемента, у

Паскаль-програмі явно не означається і не використовується.

 

Буфер можна розглядати як своєрідне вікно, крізь яке з програми видно

файл. Якщо фізичний файл менший буфера за розміром, тобто весь файл

"уміщається у вікні", то всі читання з нього вимагають лише одного

звернення до файла.

 

При записі у файл дані записуються в буфер до його заповнення, і фізичне

копіювання на диск, або скидання буфера, виконується лише за спроби

додати дані в заповнений буфер. Після скидання буфер заповнюється з

початку. Незаповнений буфер скидається у файл по закінченні виконання

програми.

 

Зауважимо, що організація буферів текстів у Турбо Паскалі має додаткові

особливості, які розглядаються далі. Наприклад, про тексти не можна

стверджувати, що незаповнений буфер скидається по закінченні програми.

Але буфери файлів усіх типів скидаються при виконанні процедури закриття

close. Ось чому варто роботу з файлом описувати в "дужках", утворених

викликами процедур відкривання та закривання.

 

Використання буфера дозволяє "вбити двох зайців". По-перше, враховуються

особливості зовнішніх пристроїв, які вимагають обмінювати дані великими

порціями (по кілька блоків). По-друге, за більшості викликів підпрограм

-----> Page:

0 [1] [2] [3] [4] [5] [6] [7]

ЗАМОВИТИ ОРИГІНАЛЬНУ РОБОТУ