Міністерство освіти і науки Російської Федерації
Федеральне державне бюджетне освітня установа вищої професійної освіти
«Новгородський державний університет імені Ярослава Мудрого»
Старорусский політехнічний коледж (філія)
Курсова робота
з дисципліни «Системне програмування»
АСИНХРОННИЙ вводу/виводу
Керівник Шанаєв І.Н
Студентка групи 22 351
Михайлова А.Г.
Стара Русса
г.
ЗМІСТ
ВСТУП
ФУНКЦІЇ АСИНХРОННОГО вводу/виводу
ПРОЦЕДУРИ DELPHI
СТВОРЕННЯ блокнот на DELPHI
ВИСНОВОК
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
ДОДАТОК А
ВСТУП
Під асинхронний ввід/виводом в основному розуміється можливість процесу виконувати введення/висновок одночасно з багатьох джерел. Зокрема асинхронним називають такий введення/висновок, який вироблятимуться в тому момент, коли вхідні дані доступні або вихідні буфери вільні для ухвалення чергової порції даних. Це відрізняє асинхронних введення/висновок від блокуючого, при якому операції читання/запису намагаються виконуватися, незважаючи на доступність ресурсів, що типово призводить до блокувань. Асинхронний ввід/вивід сам по собі нескладний, звичайно питання в тому, щоб одночасно контролювати багато каналів, через які повинен виконуватися введення/висновок.
Введення і виведення завжди виконувалися повільніше інших операцій. Ця низька швидкість викликана наступними факторами:
затримки внаслідок пошуку доріжки і сектора на пристроях довільного доступу;
затримки, викликані відносно малою швидкістю передачі даних між фізичним пристроєм і системною пам'яттю;
затримки при передачі даних через мережу;
Операції введення-виведення в багатьох випадках є синхронними з потоками. Іншими словами, весь потік повинен був чекати, поки введення-виведення не завершиться.
Асинхронний введення/висновок - принципово нова можливість введена вперше в Win32 з появою реальної багатозадачності. Викликаючи функції читання і запису даних, ви насправді передаєте вихідні дані одного з потоків (threads) операційної системи, який і здійснює фактичні обов'язки по роботі з пристроєм. Час доступу всіх периферійних пристроїв набагато більше доступу до ОЗУ, і ваша програма, яка викликала Read або write, буде чекати закінчення операції введення/виводу. Уповільнення роботи програми наявності.
Асинхронний введення/висновок не може здійснити жодна з рідних Delphi функцій: ні функції FileRead/FileWrite, ні функції, що дісталися нам від pascal BlockRead/BlockWrite, ні клас TFileStream. Асинхронний ввід/вивід можна здійснити тільки через API функції ..
Малюнок 1.Схема асинхронного введення/виводу
ФУНКЦІЇ АСИНХРОННОГО вводу/виводу
Функція CreateFile. За допомогою цієї функції можна
відкрити на читання або запис багато об'єктів: порти COM, дискові пристрої (для
прямої роботи з диском), пайпи і т.д.
HANDLE CreateFile (lpFileName,//ім'я файлаdwDesiredAccess,//тип доступаdwShareMode,//параметри загального доступа_ATTRIBUTES lpSecurityAttributes,//атрибути защітиdwCreationDistribution,//створювати або откриватьdwFlagsAndAttributes,//додаткові атрібутиhTemplateFile//потрібен при створенні файлів
ПРОЦЕДУРИ DELPHI
Створення процедури Delphi є оптимальним рішенням для розумного використання блоку операторів. Нам не потрібно щоразу прописувати блок операторів, а просто написавши його один раз, його потрібно буде просто викликати по імені, і він зробить всю роботу.
Як виглядатиме загальна схема процедури буде виглядати таким чином:
delphi блокнот оператор
Малюнок 2. Загальна схема процедури
Опис процедури складається з двох основних частин: заголовка і тіла процедури. Заголовок процедури включає в себе зарезервоване слово procedure, ім'я процедури і список формальних параметрів. У списку формальних параметрів потрібно вказувати тип цього параметра. Також допускається відсутність формальних параметрів. Ім'я процедури - це унікальний ідентифікатор, за яким звертаються до процедури. Неважко помітит...