Билеты (Graur) (1114773), страница 8
Текст из файла (страница 8)
Некоторые из IP адресов являются зарезервированными, т.е. их интерпретация отличается от стандартной.
Протоколы TCP/IP были созданы для передачи данных через ARPANET, которая является сетью с коммутацией пакетов.
Пакет – это блок данных, который передаётся вместе с информацией, необходимой для его корректной доставки. Каждый пакет перемещается по сети независимо от остальных.
Дейтаграмма – это пакет протокола IP. Контрольная информация занимает первые пять или шесть 32-битных слов дейтаграммы. Это её заголовок (header). По умолчанию, его длина равна пяти словам, шестое является дополнительным. Для указания точной длины заголовка в нём есть специальное поле – длина заголовка (IHL, Internal Header Length).
Шлюз – устройство, передающее пакеты между различными сетями
Маршрутизация – процесс выбора шлюза или маршрутизатора
Шлюз – компьютер, который имеет >=2 сетевых адаптеров (каждый имеет свой IP адрес)
Компьютерные системы могут передавать данные только внутри той сети, к которой они подключены. Поэтому передача дейтаграмм из одной сети в другую идёт через шлюзы – от одного к другому. Внутри хоста данные проходят пути от уровня прикладных программ до уровня доступа к сети (и обратно). Дейтаграммы, которые переправляет шлюз, поднимаются только до межсетевого уровня. На этом уровне протокол IP, узнавая адрес получателя данных (на протяжении всего пути следования этот адрес не меняется – меняются промежуточные машины), принимает решение отправить дейтаграмму в одну из сетей, к которым подключен.
На рисунке выше показано, как используются шлюзы для ретрансляции пакетов.
Транспортный уровень
Протокол контроля передачи (TCP, Transmission Control Protocol) - обеспечивает надежную доставку данных с обнаружением и исправлением ошибок и с установлением логического соединения.
Протокол пользовательских дейтаграмм (UDP, User Datagram Protocol) - отправляет пакеты с данными, «не заботясь» об их доставке.
TCP Надежная передача данных. При отправке TCP пакета идет подтверждение о получении. Подтверждение должно прийти за некоторое детерминированное время. Если не пришло, то считается, что пакет потерялся. Обеспечивается порядок приема и передачи сообщений.
UDP Не требует подтверждения о доставки пакета.
TCP лучше, но за это мы платим содержательной скоростью и нагрузкой на сеть.
UDP быстрее, т.к. меньше мусора пересылается.
Выводы
UDP лучше для локальной сети, а TCP для межсетевого взаимодействия.
Уровень прикладных программ
На самой вершине архитектуры семейства протоколов TCP находится уровень прикладных программ.
Все процессы этого уровня пользуются протоколами транспортного уровня для обмена данными по сети.
Протоколы, опирающиеся на TCP
TELNET (Network Terminal Protocol), Протокол сетевого терминала, разработан для удаленного доступа к компьютерам сети (remote login).
FTP (File Transfer Protocol), Протокол передачи файлов, используется для интерактивной передачи файлов между компьютерами сети.
SMTP (Simple Mail Transfer Protocol), Простой протокол передачи почты. Основной протокол для обмена почтой, использующийся в Internet.
Протоколы, опирающиеся на UDP
DNS (Domain Name Service), Служба имен доменов, или просто Служба именования. С помощью этого протокола устанавливается взаимно однозначное соответствие между IP-адресами сетевых устройств и их именами.
RIP (Routing Information Protocol), Протокол информации о маршрутизации. Маршрутизация данных (поиск путей их передачи от хоста-отправителя к хосту-получателю) в Internet является одной из важнейших функций семейства протоколов
TCP/IP. RIP используется сетевыми устройствами для обмена информацией о маршрутизации.
NFS (Network File System), сетевая файловая система. С помощью этого протокола компьютеры могут совместно использовать файлы, разбросанные по сети.
-
БИЛЕТ 22 Управление процессами. Определение процесса, типы. Жизненный цикл, состояния процесса. Свопинг. Модели жизненного цикла процесса. Контекст процесса.
Рассмотрим типовые этапы обработки процесса в системе, совокупность этих этапов будем назвать жизненным циклом процесса в системе. Традиционно, жизненный цикл процесса содержит этапы:
-
образование (порождение) процесса;
-
обработка (выполнение) процесса;
-
ожидание (по тем или иным причинам) постановки на выполнение;
-
завершение процесса.
Однако жизненные циклы процессов в реальных системах могут иметь свою, системно-ориентированную совокупность этапов.
Рассмотрим модельную ОС.
Пусть имеется специальный буфер ввода процессов (БВП) – пространство, в котором размещаются и хранятся сформированные процессы от момента их образования, до момента начала выполнения. На данном этапе происходит формирование всех необходимых структур данных, соответствующих процессу. В частности, на данном этапе ОС формирует информацию о предварительно заказанных данным процессом ресурсах. Основная задача БВП – «подпитка» системы новыми процессами, готовыми к исполнению.
После начала выполнения процесса он попадает в буфер обрабатываемых процессов (БОП). В данном буфере размещаются все процессы, находящиеся в системе в мультипрограммной обработке.
Обобщенный жизненный цикл процесса можно представить в этом случае графом состояний. Рассмотрим, кратко, переходы процесса из состояния в состояние.
-
После формирования процесс поступает в очередь на начало обработки ЦП (попадает в БВП).
-
В БВП выбирается наиболее приоритетный процесс для начала обработки ЦП (попадает в БОП).
-
Процесс прекращает обработку ЦП по причине ожидания операции в/в, поступает в очередь завершения операции обмена (БОП).
-
Процесс прекращает обработку ЦП, но в любой момент может быть продолжен (например, истек квант времени ЦП, выделенный процессу). Поступает в очередь процессов, ожидающих продолжения выполнения центральным процессором (БОП).
-
Наиболее приоритетный процесс продолжает выполнение ЦП (БОП).
-
Операция обмена завершена и процесс поступает в очередь ожидания продолжения выполнения ЦП (БОП).
-
Переход из очереди готовых к продолжению процессов в очередь процессов, ожидающих завершения обмена (например, ОС откачала содержимое адресного пространства процесса из ОЗУ во внешнюю память) (БОП).
-
Завершение процесса, освобождение системных ресурсов. Корректное завершение работы процесса, разгрузка информационных буферов, освобождение ресурсов (например, реальный вывод информации на устройство печати).
Текущее состояние любого процесса из БОП изменяется во времени в зависимости от самого процесса и состояния ОС. С каждым из процессов из БОП система ассоциирует совокупность данных, характеризующих актуальное состояние процесса – контекст процесса. (в общем случае контекст процесса содержит информацию о текущем состоянии процесса, включая информацию о режимах работы процессора, содержимом регистровой памяти, используемой процессом, системной информации ОС, ассоциированной с данным процессом).
Процессы, находящиеся в одном из состояний ожидания в своих контекстах содержат всю информацию, необходимую для продолжения выполнения - состояние процесса в момент прерывания (копии регистров, режимы ОП, настройки аппарата виртуальной памяти и т. д.). Соответственно при смене выполняемого процесса ОС осуществляет «перенастройку» внутренних ресурсов ЦП, происходит смена контекстов выполняемых процессов.
На этапе выполнения процесса ОС обеспечивает возможность корректного взаимодействия процессов от передачи сигнальных воздействий от процесса к процессу до организации корректной работы с разделяемыми ресурсами.
Итак, контекст процесса может состоять из:
-
пользовательской составляющей – состояние программы, как совокупности машинных команд и данных, размещенных в ОЗУ;
системной составляющей – содержимое регистров и режимов работы процессора, настройки аппарата защиты памяти, виртуальной памяти, принадлежащие процессу ресурсы (как физические, так и виртуальные).
Типы процессов
В различных системах используются различные трактовки определения термина процесс. Рассмотрим уточнение понятия процесса.
Полновесные процессы - это процессы, выполняющиеся внутри защищенных участков памяти операционной системы, то есть имеющие собственные виртуальные адресные пространства для статических и динамических данных. В мультипрограммной среде управление такими процессами тесно связано с управлением и защитой памяти, поэтому переключение процессора с выполнения одного процесса на выполнение другого является достаточно дорогой операцией. В дальнейшем, используя термин процесс будем подразумевать полновесный процесс.
Легковесные процессы, называемые еще как нити или сопрограммы, не имеют собственных защищенных областей памяти. Они работают в мультипрограммном режиме одновременно с активировавшей их задачей и используют ее виртуальное адресное пространство, в котором им при создании выделяется участок памяти под динамические данные (стек), то есть они могут обладать собственными локальными данными. Нить описывается как обычная функция, которая может использовать статические данные программы. Для одних операционных систем можно сказать, что нити являются некоторым аналогом процесса, а в других нити представляют собой части процессов. Таким образом, обобщая можно сказать – в любой операционной системе понятие «процесс» включает в себя следующее:
-
исполняемый код;
-
собственное адресное пространство, которое представляет собой совокупность виртуальных адресов, которые может использовать процесс;
-
ресурсы системы, которые назначены процессу ОС;
-
хотя бы одну выполняемую нить.
При этом подчеркнем – понятие процесса может включать в себя понятие исполняемой нити, т. е. однонитевую организацию – «один процесс – одна нить». В данном случае понятие процесса жестко связано с понятием отдельной и недоступной для других процессов виртуальной памяти. С другой стороны, в процессе может несколько нитей, т. е. процесс может представлять собой многонитевую организацию.
Нить также имеет понятие контекста – это информация, которая необходима ОС для того, чтобы продолжить выполнение прерванной нити. Контекст нити содержит текущее состояние регистров, стеков и индивидуальной области памяти, которая используется подсистемами и библиотеками. Как видно, в данном случае характеристики нити во многом аналогичны характеристикам процесса. С точки зрения процесса, нить можно определить как независимый поток управления, выполняемый в контексте процесса. При этом каждая нить, в свою очередь, имеет свой собственный контекст.
Принципы организации свопинга.
Проблема планирования определяет эксплуатационные качества системы. Это планирование времени, памяти. Это организация стратегий очередей. Планирование дает тип ОС. Рассмотрим ОС разделения времени. ОС разделения времени может быть с разными квантами времени, от чего меняются качества работы ОС. Большой квант времени – выполняются много мелких программ; маленький квант времени – многопользовательский режим работы. В ОС реального времени должна быть гарантия обработки времени за некоторое время.
Проблема организации свопинга. Мультипрограммные ОС используют свопинг. Элементом планирования является планирование свопинга. Пример: простейшая операционная система типа UNIX: полная откачка процесса в свопинговую память. Сейчас все делается по частям. Правила откачки: в контексте процесса была переменная p_time – время непрерывного размещения процесса в область свопинга и обратно. Сначала p_time обнулилась и считала время, сколько процесс находится в этой области. Затем по определению расписания в ОС запускалась функция обработки, которая анализировала область свопинга и выбирала процесс с максимальным p_time, затем система анализировала наличие свободной оперативной памяти. Если ее достаточно, то процесс в нее загружался, иначе операционная система смотрела процесс, который закрыт по обмену и имеет максимальный p_time, и его откачивала в область свопинга. Затем вновь анализ оперативной памяти, если недостаточно, то далее анализировались процессы в оперативной памяти, затем отыскивался процесс с максимальным p_time и освобождал память. Он мешал в последнюю очередь тем процессам, которые нормально читались, однако мешал процессу в обмене. Это лишает ОС возможности сразу закончить обмен. Это простейшая схема.
БИЛЕТ 23 Процесс в Unix
Определение процесса. Контекст
В любой системе, оперирующей понятием процесс, существует системно-ориентированное определение процесса (определение, учитывающее конкретные особенности данной ОС).
С точки зрения Unix системно-ориентированное определение процесса:
Рассмотрим данные определения процесса Unix.
Процесс в ОС Unix – объект (не надо путать с объектом ООП!!!), зарегистрированный в таблице процессов Unix.
Таблица процессов
Каждый процесс характеризуется уникальным именем – идентификатором процесса (PID). PID – целое число от 0 до некоторого предельного значения, определяющего максимальное число процессов, существующих в системе одновременно.