Главная » Просмотр файлов » А. Робачевский - Операционная система UNIX

А. Робачевский - Операционная система UNIX (1114671), страница 66

Файл №1114671 А. Робачевский - Операционная система UNIX (А. Робачевский - Операционная система UNIX) 66 страницаА. Робачевский - Операционная система UNIX (1114671) страница 662019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 66)

Обычно функцияв свою очередь, вызы!вает функцию x x i n t r (), скажем, на каждый десятый сигнал таймера,обеспечивая тем самым независимое считывание и буферизацию данных.Буферизация данных для символьных устройств осуществляется с помо!щью специальных структур данных, называемыхКаждая структураимеет следующие поля:struct cblockstruct cblockПоле с_сс содержит число символов в буфере cblock. Поляиуказывают, соответственно, на первый и последний элементы cblock,организованные в виде связанного списка и фактически обеспечивающиебуферы хранения данных.

Каждая структура cblock может хранить не!сколько символов. Когда буфер хранения заполняется, ядро автоматическивыделяет новую структуру cblock и помещает ее в связанный список. По!ля структуры cblock и их использование приведены на рис. 5.9.5.9.64 символаданных с помощью clistwww.books-shop.com346Глава 5.Пример буферизации с использованием структурыминала показан на рис. 5.10.в драйвере тер!Рис. 5.10. Пример использованиябуферов clist в драйвере терминалаАрхитектура терминального доступаАлфавитно!цифровой терминал — последовательное устройство, и опера!ционная система производит обмен данными с терминалом через последо!вательный интерфейс, называемый терминальной линией. С каждой терми!нальной линией в UNIX ассоциирован специальный файл символьногоустройстваТерминальные драйверы выполняют ту же функцию, что и остальныедрайверы: управление передачей данных от/на терминалы.

Однако терми!В зависимости от версии UNIX вместо символов хх в имени файла терминала присутству!ет идентификатор, позволяющий поставить в соответствии специальному файлу конкрет!нуюлинию. Например, в SCO UNIX виртуальные экраны системного мо!нитора имеют имена/dev/tty02 и т. д.www.books-shop.comтерминального347налы имеют одну особенность, связанную с тем, что они обеспечиваютинтерфейс пользователя с системой. Обеспечивая интерактивное исполь!зование системы UNIX, терминальные драйверы имеют свой внутреннийинтерфейс с модулями, интерпретирующими ввод и вывод строк.

Модуль,отвечающий за такую обработку, называетсялинии (line dis!cipline).Существует два режима терминального ввода/вывода:1. Канонический режим. В этом режиме ввод с терминала обрабатывает!ся в виде законченных строк.2. Неканонический режим, при котором ввод не интерпретируется.В каноническом режиме интерпретаторы строк преобразуют нест!руктурированные последовательности данных, введенные с клавиатуры, вканоническую форму (то есть в форму, соответствующую тому, что поль!зователь имел в виду на самом деле) прежде, чем послать эти данные при!нимающему процессу.

Например, программисты работают на клавиатуретерминала довольно быстро, но иногда допускают ошибки. На этот случайимеется клавиша стирания, и пользователь имеет возможность удалятьчасть введенной строки и вводить коррективы. Драйвер терминала получа!ет всю введенную последовательность, включая и символы стирания. Вканоническом режиме модуль дисциплины линии буферизует информа!цию в строку (набор символов, заканчивающийся символом возврата ка!ретки) и стирает символы в буфере, прежде чем переслать исправленнуюпоследовательность считывающему процессу.

В таком режиме, например,работает командный интерпретатор shell.В режиме без обработки строковый интерфейс передает данные междупроцессами и терминалом без каких!либо преобразований. Например,текстовый редактор работает с драйвером в неканоническом режиме, бла!годаря чему любой символ, введенный пользователем интерпретируетсясамим процессом.В функции модуля дисциплины л и н и и входят:1.

Построчный разбор введенных последовательностей.2. Обработка символов стирания.Обработка символов удаления, отменяющих всех предыдущих символов.4. Отображение символов, полученных терминалом.5. Расширение выходных данных, например, преобразование символовтабуляции в последовательности пробелов.6. Предоставление возможности не обрабатывать специальные символы,такие как символы стирания, удаления и возврата каретки.Существует дополнительная возможность обработки данных, получаемыхи передаваемых устройству — отображение вводимых и выводимых символовwww.books-shop.com349Глава 5.в символы, определенные таблицей отображения.

Данную возможностьподдерживает утилитаПсевдотерминалыПсевдотерминалы являются специальным устройством, эмулирующимстандартную терминальную линию. Псевдотерминалы напоминают каналыкак средство межпроцессного взаимодействия, позволяющее двум процес!сам обмениваться данными.

Однако в отличие от каналов, псевдотермина!лы обеспечивают дополнительную функциональность, специфичную длятерминальных линий. Схематически архитектура псевдотерминала пред!ставлена на рис.Ярким примером использования псевдотерминалов является регистрация всистеме по сети с использованием серверов удаленного доступаилиили использование графического эмулятора терминала xterm всистеме X Window System. Когда пользователь регистрируется в системеподобным образом, псевдотерминал эмулирует обычную терминальнуюлинию, поэтому пользователь не видит различия между удаленной и ло!кальной работой с помощью терминала, подключенного по последова!тельной линии. Например, пользователь может установить различные ре!жимы обработки и использовать соответствующие комбинации клавиш длягенерации сигналов, как он это делает в случае обычного терминала.Псевдотерминал по существу представляет собой два отдельных драйвера.Один из них выглядит как обычный терминальный драйвер и носит на!звание подчиненного устройства (slave).

Второй драйвер называется основ!нымРис.Взаимодействие процессов с помощью псевдотерминалаwww.books-shop.comАрхитектура терминальногоПоскольку подчиненное устройство имеет все характеристики терминала,процесс может связать свои стандартные потоки ввода, вывода и выводаошибок с этим устройством. Однако в отличие от обычного терминала, вслучае которого запись процесса приводит к отображению данных на фи!зическом устройстве, а ввод данных пользователем с клавиатуры можетбыть получен чтением терминальной линии, все данные, записанные вподчиненное устройство, передаются основному и наоборот — почти так,как работает канал. Однако модуль дисциплины л и н и и позволяет обеспе!чить дополнительные возможности этого канала, которые могут потребо!ваться некоторым приложениям, например, командному интерпретаторуshell.В качестве иллюстрации использования псевдотерминала, рассмотримсхему работы в режиме командной строки пользователя, находящегося нанекоторой удаленной системе в сети.Пользователь удаленной системы запускает программу удаленного доступакоторая формирует запрос и передает его по сети на требуемыйкомпьютер.

Там этот запрос доставляется серверу удаленного доступакоторый (после надлежащей проверки) запускает программуПри этом стандартные потоки ввода, вывода и вывода ошибокпрограммысвязываются не с терминальным файлом, как в случаевхода в систему с помощью сервераа с подчиненным устройст!вом псевдотерминала. Основное же устройство оказывается связанным ссерверомПрограммазапрашивает имя пользователя иего пароль точно так же, как она это делает при входе черезБо!лее того,и "не представляет", что на самом деле работает с эмуля!тором терминала, а не с традиционной терминальной линией. Весь вводпоступает серверуи затем передается по сети клиентскойчастина удаленном компьютере.

Далее работа ничем не отличает!ся от работы локального пользователя, подключенного к системе с помо!щью обыкновенного терминала или консоли. Если имя пользователя ипароль были введены правильно, программа login(l) запустит требуемыйкомандный интерпретатор (login shell), который также не заметит подме!ны. Действительно, по всем характеристикам терминал будет неотличим оттрадиционной последовательной линии, включая различные установки игенерацию сигналов при нажатии определенных клавиш клавиатуры.

Сле!дует, правда, оговориться, что поскольку псевдотерминал не является"полноценным" терминальным устройством, часть установок для него неимеют смысла (например, скорость передачи, четность и т. д.) и простоигнорируются.На рис.приведена схема работы удаленного пользователя в системе сиспользованием псевдотерминала.Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRSɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕɈɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.comГлава 5.350Рис.Архитектура удаленного доступа с использованием псевдотерминалаПодсистема STREAMSАрхитектура подсистемы потокового ввода/вывода STREAMS впервые былаописана в статье Ритчи "Потоковая система ввода/вывода" (Ritchie, D. М.,www.books-shop.comSTREAMS"A Stream Input!Output System", AT&T Bell Laboratories Technical Journal,Vol.

63, No. 8, Oct. 1984) в 1984 году. Двумя годами позднее эта система бы!ла реализована в коммерческой версии UNIX SVR3.Поводом для создания новой архитектуры ввода/вывода послужили не!сколько обстоятельств.Традиционная система ввода/вывода, ориентированная на посимвольнуюпередачу данных и рассмотренная ранее в этой главе, была изначальнопредназначена для работы с ограниченным числом низкоскоростных асин!хронных терминальных устройств. Операционная система взаимодействуетс такими устройствами (через точки входа в драйвер) на достаточно высо!ком уровне, возлагая основную обработку данных на драйвер.

При этомтолько часть кода драйвера аппаратно зависима. Остальная обработка мо!жет являться однотипной для широкого спектра периферийного оборудо!вания. По мере роста числа поддерживаемых операционной системой уст!ройств использование стандартной архитектуры подсистемы ввода/выводаприводило к существенным накладным расходам, в частности, к неоправ!данному дублированию кода в ядре UNIX.Другой побудительной причиной для разработки новой подсистемы вво!да/вывода явилось отсутствие стандартного механизма буферизации дан!ных для символьных устройств.

Характеристики

Тип файла
PDF-файл
Размер
8,11 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6447
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее