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.  Термінальне виведення


 

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

8280. Правовідносини. Види, зміст, об’єкти і суб’єкти правовідносин 47.5 KB
  Тема уроку. Правовідносини. Види, зміст, об’єкти і суб’єкти правовідносин. Мета: Актуалізувати знання ліцеїстів з питання правовідносини, поглибити їх з урахуванням вікових та індивідуальних особливостей учнів розвивати вміння аналізувати...
8281. Теорії виникнення держави. Історичні типи держав 48.5 KB
  Тема №. 2. Теорії виникнення держави. Історичні типи держав. Мета уроку: Ознайомлення учнів з теорією виникнення держави та історичними типами держав розвивати в учнів здатність застосовувати отримані знання на практиці виховання в ліцеїстів право...
8282. Перегляд воєнних договорів у двадцятих роках 44 KB
  Тема. Перегляд воєнних договорів у двадцятих роках. Мета: розглянути спроби повоєнного переділу світу у 20-х роках розвивати аналітичні вміння при вивченні всесвітньої історії виховувати в учнів зацікавленість до новітнього періоду всесвітньої іст...
8283. Радянсько-польська війна та її наслідки для України 66.5 KB
  Радянсько-польська війна та її наслідки для України Скориставшись слабкістю своїх сусідів на сході, польські війська на кінець 1919 р. окупували майже всю Білорусію, Західну Волинь. У квітні 1920 р. між представниками польського уряду та Петлюри бул...
8284. Доба Воєнного комунізму 69 KB
  Доба Воєнного комунізму Засади Заміна приватної власності на соціалістичну Зростання ролі держави в управлінні економікою: а) централізований контроль і управління б) заміна дрібних підприємств крупними в) запровадження єдиного планування. На...
8285. Характеристика планів військово-політичних сил, учасники війни 351.27 KB
  Зазнавши нищівної поразки у війні, в жовтні 1918 р. Австро-Угорська імперія почала розпадатися, майже через двадцять місяців після падіння Російської. Намагаючись збудувати в Східній Галичині на руїнах імперії українську державу й долаючи запеклий опір, західні українці опинилися у становищі, подібному до того, в якому перебували їх співвітчизники на сході...