Книги, научные публикации Pages:     | 1 |   ...   | 2 | 3 | 4 |

Московский государственный университет имени М. В. Ломоносова Факультет вычислительной математики и кибернетики А. В. Столяров Введение в операционные системы конспект лекций Москва 2006 УДК 681.3.066 ...

-- [ Страница 4 ] --

При работе с X-терминалом пользователю необходим доступ к его домаш нему каталогу и другим ресурсам, которые находятся, естественно, на удален ной машине (на самом сервере приложений, на файловом сервере и т.д.), ведь X-терминал никаких задач, кроме отображения графики (то есть выполне ния программы X-сервера), не решает. Таким образом, необходимо обеспечить возможность аутентификации пользователя на удаленной машине, создание сеанса работы, включающего, например, программу оконного менеджера, ко торая уже управляет X-сервером и имеет средства запуска программ пользо вателя. Для проведения такой удаленной аутентификации система X Window имеет специальные средства. На сервере приложений запускается специаль ный процесс, называемый обычноxdm(X Display Manager). Запущенный на терминале пользователя X-сервер обращается к программеxdmс использо ванием протокола XDMCP (X Display Manager Control Protocol). Функцио нированиеxdmнесколько напоминает традиционную схемуgetty: на графи ческий экран пользователя выдается приглашение к вводу входного имени и пароля, после чего (уже с правами аутентифицировавшегося пользователя) запускается головной процесс нового сеанса. В традиционной схеме работы текстовых терминалов таким главным процессом выступает интерпретатор командной строки, в случае же сеанса работы с X-терминалом в качестве главного процесса запускается обычно либо оконный менеджер, либо (чаще) некий командный файл, который производит всевозможные подготовитель ные действия, в том числе и запуск оконного менеджера.

Со схемой взаимодействия X-терминала, сервера приложений, програм мыxdmи пользовательских программ (X-клиентов) связана, к сожалению, определенная терминологическая путаница. Как можно было заметить, X терминал - это клиентская рабочая станция, в конечном счете обращаю щаяся к серверной (обслуживающей) машине - серверу приложений. Более того, на сервере приложений запускается программаxdm, представляющая собой ни что иное как сервер протокола XDMCP. С другой стороны, про грамма, выполняющаяся на X-терминале (клиентской машине!), называется X-сервером, а пользовательские программы, выполняющиеся на сервере при ложений (!), называются X-клиентами.

Дело в том, что с точки зрения X Window System сервером, предоставля ющим услугу по отображению графических объектов, является как раз X терминал, а обращающиеся за такой услугой программы (пользовательские приложения) оказываются, соответственно, клиентами. Попросту говоря, ис пользуемая терминология зависит от уровня, на котором мы рассматриваем участников взаимодействия. На уровне X Window System X-терминал явля ется сервером, на уровне пользовательских услуг - безусловно, клиентом.

Достоинством схемы с использованием нескольких мощных серверов при ложений и множества X-терминалов является крайняя простота администри рования и обслуживания такой сети. X-терминалы обычно не имеют дисковых подсистем и, более того, некоторые из них способны обходиться и без вентиля торов за счет использования сравнительно медленных процессоров. Соответ ственно, в них попросту нечему ломаться. Никакой настройки большинство X-терминалов не требуют, все необходимые параметры они получают при подключении к сети. Таким образом, обслуживания и администрирования требуют только серверные машины.

Безусловно, в организации, имеющей несколько сот рабочих мест, в ка честве серверов приложений приходится использовать очень мощные и до рогостоящие компьютеры, однако вложения в них быстро окупаются за счет экономии расходов на текущий ремонт и прочее обслуживание пользователь ских рабочих станций. Такие расходы при использовании X-терминала могут быть в десятки раз ниже, чем при использовании обычных персональных компьютеров.

Благодарности Автор выражает глубокую признательность Александру Владимировичу Чернову, прочитавшему рукопись и сделавшему ряд ценных замечаний как технического, так и редакторского характера. Автор также хотел бы побла годарить Александра Песляка, известного в Unix-сообществе под псевдони мом Solar Designer, за профессиональные консультации по некоторым тонким техническим вопросам, и Глеба Семенова за своевременные замечания по со держанию.

Список литературы [1] С. Баурн. Операционная система Unix. М.:Мир, 1986.

[2] А. М. Робачевский. Операционная система Unix. Изд-во BHV-Санкт Петербург, Санкт-Петербург, 1997.

[3] Эрик С. Реймонд. Искусство программирования для Unix. М.: изд-во Вильямс, 2005.

[4] Линус Торвальдс, Девид Даймон. Just For Fun (рассказ нечаянного ре волюционера). М.: изд-во Эксмо-пресс, 2002.

[5] Уильям Стивенс. UNIX: Взаимодействие процессов. СПб.: Питер, 2002.

[6] У. Р. Стивенс. UNIX: Разработка сетевых приложений. СПб.: Питер, 2004.

[7] Э. Танненбаум. Современные операционные системы. 2-е издание. СПб.:

Питер, 2002.

[8] Э. Танненбаум. Архитектура компьютера. 4-е издание. СПб.: Питер, 2003.

[9] Dennis M. Ritchie. The Evolution of the Unix Time-sharing System.

In: Lecture Notes in Computer Science 79: Language Design and Programming Methodology, Springer-Verlag, 1980. Online version:

Содержание Лекция 1 1 О чем этот курс 2 Краткая история вычислительной техники 2.1 Ранние вычислительные устройства........................ 2.2 Электромеханические и релейные машины.................... 2.3 Первое поколение ЭВМ (радиолампы)...................... 2.4 Второе поколение ЭВМ (машины на транзисторах)............... 2.5 Третье поколение ЭВМ (интегральные схемы).................. 2.6 Четвертое поколение (персональные компьютеры)............... 3 Задачи современных операционных систем Лекция 2 4 Мультизадачность 4.1 Одновременное исполнение нескольких задач.................. 4.2 Пакетный режим................................... 4.3 Другие способы планирования времени ЦП. Режим разделения времени.. 4.4 Планирование времени ЦП в режиме реального времени............ 4.5 Требования к аппаратуре для обеспечения мультизадачного режима..... 5 Аппарат прерываний 5.1 Внешние (аппаратные) прерывания........................ 5.2 Внутренние прерывания (ловушки)........................ 5.3 Программные прерывания. Системные вызовы.................. 6 Привилегированный и ограниченный режимы. Ядро и процессы. 6.1 Эмуляция физического компьютера........................ Лекция 3 7 Иерархия запоминающих устройств 8 Управление оперативной памятью 8.1 Проблемы, решаемые менеджером памяти.................... 8.2 Управление памятью: общие понятия....................... 8.3 Модели организации виртуальной памяти.................... Лекция 4 9 История ОС Unix 10 Краткое введение в Unix 10.1 Сеанс работы..................................... 10.2 Дерево каталогов и навигация. Файлы...................... 10.3 Аргументы командной строки........................... 10.4 Перенаправления ввода-вывода.......................... 10.5 Управление процессами............................... 10.6 Выполнение в фоновом режиме.......................... 10.7 Командные файлы.................................. 10.8 Переменные окружения............................... Лекция 5 11 Ввод-вывод 11.1 Необходимость абстрагирования.......................... 11.2 Две точки зрения на ввод-вывод.......................... 11.3 Драйверы....................................... 11.4 Ввод-вывод на разных уровнях ВС........................ 11.5 Уровни программной организации ввода-вывода................ 11.6 Взаимодействие ОС с аппаратурой........................ 11.7 Буферизация ввода-вывода............................. Лекция 6 12 Файловый ввод-вывод 12.1 Общие понятия файловых систем......................... 12.2 Файловая система ОС Unix............................. 12.3 Системные вызовы для работы с файлами.................... 12.4 Файлы устройств и классификация устройств.................. Лекция 7 13 Процессы: общие сведения 13.1 Свойства процесса.................................. 13.2 Легковесные процессы................................ 14 Процессы в ОС Unix 14.1 Свойства процесса.................................. 14.2 Управление процессами............................... 14.3 Жизненный цикл процесса............................. 15 Ситуация гонок (race condition) Лекция 8 16 Управление свойствами процесса 16.1 Текущий и корневой каталоги........................... 16.2 Окружение...................................... 16.3 Параметрumask................................... 16.4 Манипуляция таблицей дескрипторов....................... 16.5 Управление прочими свойствами процесса.................... 17 Общая классификация средств взаимодействия процессов в ОС Unix 18 Сигналы 18.1 Предназначение некоторых сигналов....................... 18.2 Отправка сигнала.................................. 18.3 Обработка сигналов................................. 18.4 Системный вызовalarm()............................. 18.5 Заключение...................................... 19 Каналы 19.1 Неименованные каналы............................... 19.2 Использование неименованных каналов для построения конвейеров..... 19.3 Именованные каналы (FIFO)............................ Лекция 9 20 Отображение файлов в виртуальное адресное пространство;

разделяемая память 21 Взаимодействие процессов через псевдотерминал 22 Краткие сведения о трассировке Лекция 10 23 Взаимодействие по сети. Сокеты 23.1 Понятие протокола. Модель ISO OSI....................... 23.2 Сокеты. Семейства адресации и типы взаимодействия............. 23.3 Работа с адресами сокетов. Вызовbind().................... 23.4 Прием и передача дейтаграмм........................... 23.5 Потоковые сокеты. Клиент-серверная модель.................. 23.6 Использование сокетов для связи родственных процессов........... Лекция 11 24 Проблема очередности действий и ее решения 24.1 Суть проблемы.................................... 24.2 Решение на основе обслуживающих процессов.................. 24.3 Мультиплексирование ввода-вывода. Событийно-управляемое программиро вание......................................... 25 Группы процессов и сеансы в ОС Unix 25.1 Общие сведения................................... 25.2 Управление сеансами и группами......................... 25.3 Процессы-демоны.................................. 26 Загрузка и жизненный цикл ОС UNIX Лекция 12 27 Взаимоисключения 27.1 Ситуация гонок (race condition).......................... 27.2 Взаимоисключения. Критические секции..................... 27.3 Устаревшие подходы к организации взаимного исключения.......... 27.4 Мьютексы и семафоры............................... Лекция 13 28 Примеры взаимоисключений 28.1 Задача производителей и потребителей...................... 28.2 Задача о пяти философах и проблема тупиков................. 28.3 Проблема читателей и писателей......................... Лекция 14 29 Семафоры и мьютексы в ОС Unix 29.1 Два типа семафоров в ОС Unix.......................... 29.2 Pthreads: легковесные процессы в ОС Unix.................... 29.3 Мьютексы pthreads................................. 29.4 POSIX-семафоры.................................. 29.5 Пример........................................ Лекция 15 30 Графический интерфейс в ОС Unix. Система X Window 30.1 Базовые принципы построения X Window.................... 30.2 Оконные менеджеры................................ 30.3 Сетевые X-терминалы................................ Благодарности Литература Pages:     | 1 |   ...   | 2 | 3 | 4 |    Книги, научные публикации