- •Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования
- •Учебно-методический комплекс
- •1. Рабочая учебная программа дисциплины
- •1.1. Цели и задачи дисциплины
- •1.2. Структура и объем дисциплины Распределение фонда времени по семестрам, неделям, видам занятий
- •1.3. Содержание дисциплины Распределение фонда времени по темам и видам занятий
- •1.4. Требования к уровню освоения дисциплины и формы текущего и промежуточного контроля
- •Примерный перечень вопросов для подготовки к экзамену по дисциплине «Сети эвм и телекоммуникации»
- •1.5. Содержание самостоятельной работы
- •Распределение самостоятельной работы студентов по темам с указанием времени
- •Содержание каждого вида самостоятельной работы и вида контроля
- •2. Учебно-методическое пособие
- •2.1. Теоретические сведения
- •2.1.1. Введение
- •2.1.2.1. Эталонная модель osi
- •2.1.2.2. Аппаратура локальных сетей
- •2.1.2.3. Стандартные сетевые протоколы
- •2.1.2.4. Протоколы высоких уровней
- •2.1.2.5. Взаимодействие между стеками протоколов
- •2.1.2.6. Стандартные сетевые программные средства
- •2.1.2.7. Применение модели osi
- •2.1.2.8. Методы и технологии проектирования средств телекоммуникаций
- •2.1.3. Конфигурации локальных вычислительных сетей и методы доступа в них
- •2.1.3.1. Топология локальных сетей
- •2.1.3.2. Назначение пакетов и их структура
- •2.1.3.3. Методы управления обменом
- •2.1.3.4. Метод управления обменом csma/cd
- •2.1.3.5. Оценка производительности сети
- •2.1.3.6. Использование помехоустойчивых кодов для обнаружения ошибок в сети
- •2.1.4. Сети эвм с моноканалом и кольцевые. Проектирование сетей эвм по принципу «клиент-сервер»
- •2.1.4.1. Сети Ethernet и Fast Ethernet
- •2.1.4.2. Сеть Token-Ring
- •2.1.4.3. Сеть fddi
- •2.1.4.4. Сеть 100vg-Any lan
- •2.1.4.5. Сверхвысокоскоростные сети
- •2.1.4.6. Беспроводные сети
- •2.1.4.7. Стандартные сегменты семейства Ethernet
- •2.1.4.8. Стандартные сегменты Fast Ethernet
- •2.1.4.9. Автоматическое определение типа сети (Auto-Negotiation)
- •2.1.4.10. Производительность эвм и информационно-вычислительных сетей
- •2.1.4.11. Проектирование сетей эвм по принципу «клиент-сервер»
- •2.1.5. Конфигурации глобальных сетей и методы коммутации в них. Менеджмент в телекоммуникационных системах
- •2.1.5.1. Глобальные связи компьютерных сетей
- •2.1.5.2. Глобальные связи на основе выделенных каналов
- •2.1.5.3. Глобальные сети на основе коммутации каналов
- •2.1.5.4. Глобальные сети с коммутацией пакетов
- •2.1.6. Аппаратные средства телекоммуникации
- •2.1.6.1. Аппаратные средства локальных сетей
- •2.1.6.2. Аппаратные средства глобальных сетей
- •2.1.7. Составные и корпоративные сети
- •2.1.7.1. Принципы построения составных сетей
- •2.1.7.2. Алгоритмы и протоколы выбора маршрута
- •2.1.7.3. Иерархическая маршрутизация
- •2.1.7.4. Общие сведения о корпоративных сетях
- •2.1.7.5. Уровни и протоколы
- •2.1.7.6. Структура территориальных сетей
- •2.1.7.7. Адресация компьютеров в сети Интернет
- •2.1.7.8. Службы обмена данными
- •2.1.7.9. Сервисы сети Интернет
- •2.1.7.10. Виды конференц-связи
- •2.1.8. Программные средства телекоммуникации
- •2.1.8.1. Классификация операционных систем
- •2.1.8.2. Обобщенная структура операционных систем
- •2.1.8.3. Модель клиент-сервер и модель ос на базе микроядра
- •2.1.8.4. Топологии распределенных вычислений
- •2.1.8.5. Функции сетевых операционных систем
- •2.1.8.6. Распределенная обработка приложений
- •2.1.8.7. Адресация прикладных процессов в сетях эвм
- •2.1.8.8. Сетевые службы
- •2.1.9. Обеспечение безопасности телекоммуникационных связей и административный контроль. Проблемы секретности в сетях эвм и методы криптографии
- •2.1.9.1. Общие сведения и определения
- •2.1.9.2. Виды угроз информации
- •2.1.9.3. Классификация угроз безопасности и их нейтрализация
- •2.1.9.4. Методы и средства защиты информации в сетях. Программные средства защиты информации
- •2.1.9.5. Стандартные методы шифрования и криптографические системы
- •2.1.9.6. Администрирование сети
- •2.1.9.7. Безопасность в корпоративных сетях
- •2.1.9.8. Архивирование. Источники бесперебойного питания
- •2.1.10. Тенденции развития телекоммуникационных систем
- •2.3. Лабораторный практикум
- •Распределение тем лабораторных занятий по времени
- •2.3.1. Лабораторная работа № 1 Расчет конфигурации сети Ethernet
- •1.1. Критерии корректности конфигурации
- •1.2. Методика расчета времени двойного оборота и уменьшения межкадрового интервала
- •1.3. Пример расчета конфигурации сети
- •1.4. Задание на лабораторную работу
- •1.5. Справочные данные ieee
- •2.3.2. Лабораторная работа № 2 Изучение структуры ip-адреса
- •2.1. Типы адресов стека tcp/ip
- •2.2. Классы ip-адресов
- •2.3. Особые ip-адреса
- •2.4. Использование масок в ip-адресации
- •2.5. Задание на лабораторную работу
- •2.3.3. Лабораторная работа № 3 Взаимодействие прикладных программ с помощью транспортного протокола тср
- •3.1. Транспортный протокол tcp
- •3.2. Транспортный протокол udp
- •3.3. Порты, мультиплексирование и демультиплексирование
- •3.4. Логические соединения
- •3.5. Программирование обмена данными на основе транспортных протоколов
- •3.6 Пример реализации простейшего клиент-серверного приложения на основе сокетов
- •3.7. Задание на лабораторную работу
- •3.8. Справочные данные Основные свойства компонента ServerSocket:
- •2.3.4. Лабораторная работа № 4 Взаимодействие прикладных программ с помощью протоколов электронной почты smtp и pop3
- •4.1. Модель протокола, команды и коды ответов smtp
- •4.2. Кодировка сообщений
- •4.3. Процесс передачи сообщений
- •4.4. Пример последовательности команд почтовой транзакции
- •4.5. Модель протокола рор3, его назначение и стадии рор3-сессии
- •4.6. Формат сообщений
- •4.7. Процесс получения сообщений. Команды и ответы протокола рор3
- •4.8. Задание на лабораторную работу
- •4.9. Справочные данные
- •2.3.5. Лабораторная работа № 5 Взаимодействие прикладных программ с помощью протокола передачи данных ftp
- •5.1. Назначение и модели работы протокола ftp
- •5.2. Особенности управления процессом обмена данными
- •5.3. Команды и ответы протокола ftp
- •5.4. Задание на лабораторную работу
- •5.5. Справочные данные
- •2. Команды управления потоком данных.
- •3. Команды ftp-сервиса.
- •2.3.6. Лабораторная работа № 6 Построение и исследование компьютерных сетей с помощью системы NetCracker
- •6.1. Основы компьютерной системы NetCracker
- •6.2. Задание на лабораторную работу
- •2.3.7. Лабораторная работа № 7 Изучение алгоритма маршрутизации ospf
- •7.1. Алгоритмы маршрутизации
- •7.2. Задание на лабораторную работу
- •3. Учебно-методическое обеспечение дисциплины
- •3.1. Перечень основной и дополнительной литературы
- •3.1.1. Основная литература:
- •3.1.2. Дополнительная литература:
- •3.2. Методические рекомендации преподавателю
- •3.3. Методические указания студентам по изучению дисциплины
- •3.4. Методические указания и задания для выполнения курсовой работы
- •3.4.1. Постановка задачи курсовой работы. Обязательное содержание разделов
- •3.4.2. Выбор конфигурации сети Ethernet
- •3.4.3. Выбор конфигурации Fast Ethernet
- •3.4.4. Методика и начальные этапы проектирования сети
- •3.4.5. Выбор с учетом стоимости сети
- •3.4.6. Проектирование кабельной системы
- •3.4.7. Оптимизация и поиск неисправностей в работающей сети
- •3.4.8. Проектирование локальной корпоративной компьютерной сети с помощью системы автоматизированного проектирования NetWizard
- •3.4.9. Правила выполнения и оформления курсовой работы
- •Пример правильного оформления расчета
- •3.5. Учебно-методическая карта дисциплины
- •3.6. Материально-техническое обеспечение дисциплины
- •3.7. Программное обеспечение использования современных информационно-коммуникативных технологий
- •3.8. Технологическая карта дисциплины Поволжский государственный университет сервиса
- •Образец оформления титульного листа лабораторной работы
- •Образец оформления титульного листа журнала отчетов по лабораторным работам
- •Лист обложки пояснительной записки курсовой работы
- •Титульный лист пояснительной записки курсовой работы
- •Поволжский государственный университет сервиса
- •Задание по курсовому проектированию
- •Типовые варианты* задания на выполнение курсовой работы
2.1.8.3. Модель клиент-сервер и модель ос на базе микроядра
Модель клиент-сервер. Модель клиент-сервер – это еще один подход к структурированию ОС. В широком смысле такая модель предполагает наличие программного компонента – потребителя какого-либо сервиса (клиента) и программного компонента – поставщика этого сервиса (сервера). Взаимодействие между клиентом и сервером стандартизуется, так что сервер может обслуживать клиентов, реализованных различными способами и, может быть, разными производителями. При этом главным является требование, чтобы клиенты запрашивали услуги сервера понятным ему способом. Инициатором обмена обычно является клиент, который посылает запрос на обслуживание серверу, находящемуся в состоянии ожидания запроса (рис. 142). Один и тот же программный компонент может быть клиентом по отношению к одному виду услуг и сервером для другого вида услуг. Модель клиент-сервер является скорее удобным средством ясного представления функций того или иного программного элемента в той или иной ситуации, нежели технологией. Эта модель успешно применяется не только при построении ОС, но и на всех уровнях программного обеспечения и имеет в некоторых случаях более узкий, специфический смысл, сохраняя, естественно, при этом все свои общие черты.
Рис. 142. Структура ОС клиент-сервер |
В целях обеспечения эффективности и целостности работы ОС реализуется исходя из двух режимов: режима пользователя (user mode) и режима ядра (kernel mode).
Операционная система разбивается на несколько подсистем, каждая из которых выполняет определенный набор сервисных функций, например управление памятью, создание или планирование процессов. Каждая подсистема реализуется в пользовательском режиме. Клиент, которым может быть либо другой компонент ОС, либо прикладная программа, запрашивает сервис, посылая сообщение на сервер. Ядро ОС, работая в привилегированном режиме, доставляет сообщение нужному серверу, сервер выполняет операцию, после чего ядро возвращает результаты клиенту с помощью другого сообщения (см. рис. 142).
Режим пользователя. Это менее привилегированный режим работы процессора по сравнению с режимом ядра. Он не предусматривает прямого доступа к аппаратуре. Выполняющийся в этом режиме код непосредственно имеет дело лишь с объектами своего адресного пространства (рис. 143). Системные службы он вызывает через интерфейсы прикладных программ (API – Application Program Interface). Поддерживающие их приложения и подсистемы работают в режиме пользователя. При запуске приложения создается процесс (process), реализованный в виде объекта (object). Объект состоит из исполняемой программы, пространства адресов виртуальной памяти и одного или нескольких потоков.
Особенности процесса режима пользователя:
– не имеет прямого доступа к оборудованию. Это сделано в целях защиты от неверно работающих приложений или от несанкционированного доступа. Запросы на использование аппаратных ресурсов должны быть разрешены компонентом режима ядра;
– ограничен размерами выделенного адресного пространства. Ограничение размера памяти, используемой процессом, позволяет обеспечить дополнительную защиту ОС. Это ограничение устанавливается путем выделения процессу диапазона фиксированных адресов;
– может быть выгружен из физической памяти в виртуальную память (VRAM – virtual memory) на жестком диске. Виртуальная память использует пространство жесткого диска как дополнительную оперативную память. В результате процесс режима пользователя получает доступ к памяти, размер которой превышает объем ОЗУ;
– приоритет процесса данного типа ниже, чем у процессов режима ядра, поэтому в сравнении с последними ему, как правило, предоставляется меньше процессорного времени. Это предохраняет ОС от снижения производительности или возникновения задержек, связанных с ожиданием завершения работы приложений.
Рис. 143. Представление режима пользователя |
Подход с использованием ядра заменил вертикальное распределение функций операционной системы на горизонтальное. Компоненты, лежащие выше микроядра, хотя и используют сообщения, пересылаемые через микроядро, взаимодействуют друг с другом непосредственно. Микроядро играет роль регулировщика. Оно проверяет сообщения, пересылает их между серверами и клиентами и предоставляет доступ к аппаратуре.
Режим ядра. Это привилегированный режим работы, в котором код имеет прямой доступ ко всем аппаратным ресурсам и всей памяти, включая адресные пространства всех процессов режима пользователя (рис. 144).
Компоненты режима ядра имеют: прямой доступ к оборудованию; прямой доступ ко всем видам памяти компьютера; более высокий приоритет исполнения, чем процессы режима пользователя. Кроме того, компоненты не выгружаются на жесткий диск в файл подкачки виртуальной памяти.
Функционирование режима ядра обеспечивается исполнительной системой, включающей в себя системные службы, микроядро и слой абстрагирования от оборудования (HAL).
Исполнительная система представляет собой обобщенный ряд подсистем и компонентов ОС, работающих в режиме ядра.
Рис. 144. Представление режима ядра. |
Поскольку системные (исполнительные) службы обеспечивают все основные функции ОС, очень важно защитить их от влияния приложений и подсистем пользовательского режима. Такую защиту обеспечивают системные службы, работающие в режиме ядра:
диспетчеры – различные модули, осуществляющие управление вводом–выводом, объектами, безопасностью, процессами, взаимодействием между процессами, виртуальной памятью, окнами и графикой;
драйверы устройств – программные компоненты, управляющие доступом к оборудованию;
микроядро – предоставляет наиболее общие службы ОС, такие как диспетчеризация потоков, обработка прерываний первого уровня и отложенный вызов процедур. Микроядро расположено между слоем системных служб и HAL.
Слой абстрагирования от оборудования (HAL) представляет собой библиотеку режима ядра, включающую процедуры управления оборудованием. Этот программный слой позволяет скрыть особенности аппаратных платформ, предоставив ОС стандартные точки входа в процедуры, благодаря чему для нее исчезают различия между платформами и архитектурами. Поэтому ОС может функционировать на разных платформах с разными процессорами. Сетевая операционная система способна работать на одно- и многопроцессорных компьютерах и позволяет высокоуровневым драйверам графических адаптеров форматировать данные для мониторов разных типов.
Сетевые ОС обеспечивают работу с приложениями с помощью подсистем среды. Подсистема среды предоставляет API приложениям, разработанным под конкретную среду или ОС. Рассмотрим ее функционирование на примере широко распространенной подсистемы Win32.
Подсистемы среды являются промежуточным звеном между приложением, спроектированным для работы в конкретной операционной среде, и службами исполнительной системы. Подсистема среды транслирует инструкции, специфичные для рабочей среды приложения, в команды, которые могут быть выполнены службами исполнительной системы. Работа приложений, созданных для других ОС, поддерживается двумя подсистемами среды Windows NT: POSIX и OS/2. Эти подсистемы обрабатывают все функциональные запросы от поддерживаемых приложений. Подсистема либо самостоятельно обрабатывает запрос, либо передает его службам исполнительной системы СОС.
На подсистему Win32 иногда ссылаются как на подсистему клиент-сервер – CSR (Client/Server) или CSRSS (Client/Server Subsystem). Подсистема поддерживает Win32-пpилoжeния (позволяющие организовать многопоточность выполнения задач, а также метод передачи и совместного использования информации между приложениями), MS-DOS-, Windows 3.х-приложения (содержащие команды платформы Intel х86) и остальные подсистемы среды. Подсистема Win32 также поддерживает консольные приложения, завершение работы приложений и функции обработки ошибок.
Взаимодействие подсистем с исполнительной системой. Службы исполнительной системы СОС обеспечивают выполнение основных функций ОС для всех подсистем. Службы работают в режиме ядра, что позволяет гарантировать устойчивость ОС, поскольку прямого доступа к ним не имеет ни одно приложение. В результате неправильно работающий компонент режима пользователя (приложение) не сможет случайно остановить функционирование компонента режима ядра.
Подсистемы, построенные на базе исполнительной системы, формируют операционные среды, соответствующие требованиям конкретных клиентских приложений. Благодаря этому общие функции ОС единственный раз реализуются в исполнительной системе, не повторяясь в каждой из подсистем. Это упрощает разработку новых подсистем и облегчает их поддержку.
Такая теоретическая модель является идеализированным описанием системы клиент-сервер, в которой ядро состоит только из средств передачи сообщений. В действительности различные варианты реализации модели клиент-сервер в структуре ОС могут существенно различаться по объему работ, выполняемых в режиме ядра.
На одном краю этого спектра находится разрабатываемая фирмой IBM на основе микроядра Mach операционная система Workplace OS, придерживающаяся чистой микроядерной доктрины, которая заключается в том, что все несущественные функции ОС должны выполняться не в режиме ядра, а в непривилегированном (пользовательском) режиме. На другом краю – Windows NT, в составе которой имеется исполнительная система (NT executive), работающая в режиме ядра и выполняющая функции обеспечения безопасности, ввода–вывода и др.
Микроядро реализует функции, лежащие в основе операционной системы. Это основа для менее существенных системных служб и приложений. В общем случае, подсистемы, бывшие традиционно неотъемлемыми частями операционной системы (файловые системы, системы управления окнами и обеспечения безопасности), становятся периферийными модулями, взаимодействующими с ядром и друг с другом.
Главный принцип разделения работы между микроядром и окружающими его модулями – включать в микроядро только те функции, которым абсолютно необходимо исполняться в режиме супервизора и в привилегированном пространстве. Под этим обычно подразумеваются машинозависимые программы (включая поддержку нескольких процессоров), некоторые функции управления процессами, обработка прерываний, поддержка пересылки сообщений, некоторые функции управления устройствами ввода–вывода, связанные с загрузкой команд в регистры устройств.
Есть два пути построения подсистем. Первый заключается в размещении нескольких чувствительных к режиму работы процессора серверов в пространстве ядра, что обеспечивает им полный доступ к аппаратуре и в то же время связь с другими процессами с помощью обычного механизма сообщений. Такой подход был использован, например, при разработке Windows NT: кроме микроядра в привилегированном режиме работает часть Windows NT, называемая управляющей программой (executive). Она включает ряд компонентов, которые управляют виртуальной памятью, объектами, вводом–выводом и файловой системой (включая сетевые драйверы), взаимодействием процессов и частично системой безопасности.
Другой путь состоит в том, чтобы оставить в ядре только небольшую часть сервера, представляющую собой механизм реализации решения, а часть, отвечающую за принятие решения, переместить в пользовательскую область. В соответствии с этим подходом, например, в микроядре Mach, на базе которого разработана Workplace OS, размещается только часть системы управления процессами (и нитями), реализующая диспетчеризацию (т.е. непосредственное переключение с процесса на процесс), а все функции, связанные с анализом приоритетов, выбором очередного процесса для активизации, принятием решения о переключении на новый процесс и т.п., выполняются вне микроядра. Этот подход требует тесного взаимодействия между внешним планировщиком и резидентным диспетчером.
Здесь важно отметить, что запуск процесса или нити требует доступа к аппаратуре, так что по логике – это функция ядра. Но ядру все равно, какую из нитей запускать, поэтому решения о приоритетах нитей и дисциплине постановки в очередь может принимать работающий вне ядра планировщик.