69292

Організація термінального введення-виведення

Лекция

Информатика, кибернетика и программирование

Є спеціальні символи керуючі коди і послідовності символів які не відображаються а керують виведенням на екран термінала. Передаючи такі послідовності термінала можна переміщати курсор у довільну позицію екрана керувати яскравістю відображення символів для деяких...

Украинкский

2014-10-02

52 KB

3 чел.

Лекція № 19

Тема: Організація термінального введення-виведення

План

  1.  Поняття термінала
  2.  Емуляція термінала
  3.  Віддалені термінали і консоль
  4.  Термінальне введення
  5.  Термінальне виведення

У цьому розділі опишемо особливості організації взаємодії із користувачем в операційних системах.

Термінальне введення-виведення

У цьому розділі зупинимося на базовій технології для організації взаємодії із користувачем в операційних системах — термінальному введенні-виведенні. Хоч історія цієї технології нараховує кілька десятиліть, проте вона продовжує залишатися важливою складовою сучасних ОС.

Організація термінального введення-виведення

Спочатку розглянемо принципи організації термінального введення-виведення, що не залежать від конкретної ОС [44].

Поняття термінала

Історично термінали (terminals) використовували для організації багатокористувацької роботи із мейнфреймами або мінікомп'ютерами. Це були апаратні пристрої, що складалися із клавіатури і дисплея, які підключали до комп'ютера через інтерфейс послідовного порту. Особливе поширення такі термінали здобули у 70—80-ті роки: усі розроблені в той час операційні системи включали засоби їхньої підтримки, було створено багато прикладного програмного забезпечення, розрахованого на роботу із ними.

Такі термінали працюють у текстовому режимі, за якого обмін даними і їхнє відображення на програмному рівні відбуваються посимвольно. Для відображення використовують екран розміром у символах (звичайно 25 на 80), причому відображатися можуть тільки стандартні символи із кодами ASCII. За подання на екрані розширеного набору символів із кодами 127-255, зокрема символів кирилиці, відповідає символьна таблиця, яка використовується терміналом.

Є спеціальні символи (керуючі коди) і послідовності символів, які не відображаються, а керують виведенням на екран термінала. До керуючих кодів належать такі символи, як повернення каретки, переведення рядка, Backspace тощо. Керуючі послідовності називають також £5С-послідовностями (вони починаються із символу із ASCII-кодом 27 — ESC). Передаючи такі послідовності термінала, можна переміщати курсор у довільну позицію екрана, керувати яскравістю відображення символів, для деяких моделей терміналів - кольорами тощо.

Емуляція термінала

У сучасних умовах апаратні термінали застосовують рідко. Проте інтерфейс зв'язку з терміналами (термінальне введення-виведення) не втратив свого значення й досі. Це пояснюється тим, що текстовий режим роботи дуже зручний для розв'язання багатьох задач (організації адміністрування системи, віддаленого доступу до неї тощо), а також широким вибором програмного забезпечення, яке використовує цей режим.

Для спрощення організації термінального введення-виведення у сучасних ОС широко використовують емуляцію термінала. Програмне забезпечення (емулятор) приймає дані згідно із домовленостями щодо обміну із відповідним терміналом і відображає на дисплеї комп'ютера інформацію згідно керуючих послідовностей, визначених для термінала (для цього може бути виділене окреме вікно на графічному екрані). У результаті програмне забезпечення, розраховане на роботу із терміналом, можна використовувати із таким емулятором без змін. Одночасно у системі може бути запущено кілька емуляторів термінала (наприклад, кожен у своєму вікні), і користувач має змогу перемикатися між ними, чергово виконуючи введення-виведення. Найпоширеніша емуляція термінала vtlOO, програмне забезпечення, розраховане на використання цього термінала, із великою ймовірністю працюватиме із будь-яким емулятором.

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

Віддалені термінали і консоль

Емулятор термінала може бути запущений на віддаленому комп'ютері, при цьому необхідно забезпечити обмін даними мережею між ним і програмним забезпеченням. Прикладом розв'язання такої задачі є протокол telnet, який працює поверх TCP/IP. Відповідний сервер (telnet-сервер) запускають на машині, яка надає віддалений доступ. Він перехоплює дані, що їх застосування передають на термінал, і пересилає їх на віддалену систему. Там працює емулятор термінала (telnet-клієнт), який інтерпретує отримані дані й, у свою чергу, відсилає серверу інформацію, введену на віддаленій машині. Сервер доставляє її застосуванням.

З іншого боку, якщо дисплей комп'ютера, на якому запущена ОС, працює у текстовому режимі, за відображення інформації на ньому теж може відповідати емулятор термінала. У багатокористувацьких ОС із мережним доступом (наприклад, в UNIX) такий термінал часто називають консоллю, на відміну від терміналів, які використовують для доступу до системи через мережу.

Термінальне введення

Є два підходи до організації термінального введення.

У режимі без обробки, або неканонічному режимі (non-canonical mode), дані передають програмі без зміни (включаючи керуючі коди, такі, як переведення каретки або Backspace). За інтерпретацію цих кодів відповідає програма. Такий режим складніший у використанні (потрібно інтерпретувати керуючі коди), але більш гнучкий. Найчастіше його використовують текстові редактори.

У разі використання режиму з обробкою, або канонічного режиму (canonical mode), дані додатково оброблятимуться перед тим як надійти у програму. Така обробка відбувається після натискання користувачем клавіші Enter (введення символу переведення рядка), при цьому керуючі коди буде інтерпретовано і відповідно до них змінено весь уведений рядок (наприклад, якщо в ньому тричі поспіль трапиться Backspace, ці три символи і ще три, введені перед ними, із рядка будуть вилучені). Такий режим простіший для програміста, у програму в даному разі потрапляє вже підготовлений символьний рядок.

Прикладом програмного забезпечення, що реалізує компроміс між цими режимами, може бути розповсюджена в UNIX-системах бібліотека геасПіпе. Вона надає розширені засоби редагування введеного рядка, які потребують підтримки неканонічного режиму, але її програмний інтерфейс аналогічний до введення в канонічному режимі (у програму потрапляє підготовлений внаслідок редагування рядок).

Введені із клавіатури символи зберігаються у буфері, навіть у неканонічному режимі (трапляються ситуації, коли застосування не може відразу прийняти дані від клавіатури, і потрібно зберегти їх до того моменту, коли з'явиться така можливість). У канонічному режимі дані із буфера передаються програмі після введення символу переведення рядка, у неканонічному — як тільки програма буде готова їх прийняти. Звичайно для кожного термінала створюється свій окремий буфер введення. У разі заповнення буфера може бути виділена додаткова пам'ять.

У більшості випадків уведені символи відразу відображаються на екрані (робота в режимі луни). Можливе відключення цього режиму, наприклад під час введення паролів або команд текстових редакторів.

Термінальне виведення

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

Головна проблема полягає в тому, що різні модифікації терміналів сприймають різні набори послідовностей. Для її вирішення у сучасних ОС звичайно створюють базу даних терміналів, що містить список терміналів і послідовності, які відповідають кожному із них. В UNIX-системах таку базу називають terminfo.

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

Питання для самоконтролю:

  1.  Поняття термінала
  2.  Емуляція термінала
  3.  Віддалені термінали і консоль
  4.  Термінальне введення
  5.  Термінальне виведення


 

А также другие работы, которые могут Вас заинтересовать

60297. Виконання кольорових розтяжок в теплих і холодних тонах. Змішування кольорів 213 KB
  Виконання роботи аквареллю є досить клопіткий і водночас цікавий процес кий потребує наполегливості спостережливості відчуття кольору і гри світла. Акварельна фарба любить прозорість майже виключає примінення чорного кольору.
60298. Потреби і виробничі можливості суспільства. Економічні інтереси 460.5 KB
  Методична розробка пропонує використання інтерактивних методів навчання, таких як, дослідницька робота студентів (робота з документами, обробка статистичних даних, анкетування, соціологічне опитування студентів та працівників технікуму, а також мешканців міста, соціологічне опитування населення м. Маріуполь в співпраці з міським телеканалом ТВ – 7)...
60299. Показове заняття на тему: «Руховий режим на прогулянці» 40 KB
  Удосконалювати вміння підлізати під шнур і бігати врозтіч в рухливій грі Бджілки. А тепер бджілки ми всі разом заспіваємо пісеньку: Жу-жу-жу жу-жу-жу Я із сонечком дружу. Бджілки цевеликий кущ спіреї. Знову бджілки розправили свої крильця та полетіли і побачили чудову галявинку.
60302. 1/3 Регулятор частоты вращения 1.62 MB
  Регулятор частоты вращения поддерживает постоянную частоту вращения коленчатого вала при заданном положении педали управления подачи топлива. При перемещении реек изменяется подача топлива форсунками и частота вращения коленчатого вала.
60304. Основы реанимации. Методические рекомендации 959.5 KB
  Понятно что этого времени будет достаточно для наступления необратимых изменений в коре головного мозга пострадавшего. Попытки оживления вдуванием воздуха в рот пострадавшего были впервые описаны в 1753 году в Санкт-Петербургских ведомостях когда профессор...
60305. Первая помощь при острой сердечно-сосудистой недостаточности 5.91 MB
  Практический навык первичная диагностика пострадавшего НМС и ИВЛ. Началу оказания первой медицинской помощи предшествует оперативное принятие верных и безопасных для спасателя решений так как этот шаг предопределяет успех и в сохранении жизни самого пострадавшего.