Взаимодействие удаленных процессов как основа работы вычислительных сетей.
Все перечисленные выше цели объединения компьютеров в вычислительные сети не могут быть достигнуты без организации взаимодействия процессов на различных вычислительных системах. Будь то доступ к разделяемым ресурсам или общение пользователей через сеть – в основе всего этого лежит взаимодействие удаленных процессов, т. е. процессов, которые находятся под управлением физически разных операционных систем. Сосредоточимся именно на вопросах кооперации таких процессов, в первую очередь выделив ее отличия от кооперации процессов в одной автономной вычислительной системе (кооперации локальных процессов).
Изучая взаимодействие локальных процессов, мы разделили средства обмена информацией по объему передаваемых между ними данных и возможности влияния на поведение другого процесса на три категории: сигнальные, канальные и разделяемая память. Мы фактически классифицировали средства связи по виду интерфейса обращения к ним, в то время как реальной физической основой для всех средств связи в том или ином виде являлось разделение памяти. Семафоры представляют собой просто целочисленные переменные, лежащие в разделяемой памяти, к которым посредством системных вызовов, определяющих состав и содержание допустимых операций над ними, могут обращаться различные процессы. Очереди сообщений и pip базируются на буферах ядра операционной системы, которые опять-таки с помощью системных вызовов доступны различным процессам. Иного способа реально передать информацию от процесса к процессу в автономной вычислительной системе просто не существует. Взаимодействие удаленных процессов принципиально отличается от ранее рассмотренных случаев. Общей памяти у различных компьютеров физически нет. Удаленные процессы могут обмениваться информацией, только передавая друг другу пакеты данных определенного формата через некоторый физический канал связи или несколько таких каналов, соединяющих компьютеры. Поэтому в основе всех средств взаимодействия удаленных процессов лежит передача структурированных пакетов инфо или сообщений.
При взаимодействии локальных процессов и процесс-отправитель информации, и процесс-получатель функционируют под управлением одной и той же операционной системы. Эта же операционная система поддерживает и функционирование промежуточных накопителей данных при использовании непрямой адресации. Для организации взаимодействия процессы пользуются одними и теми же системными вызовами, присущими данной операционной системе, с одинаковыми интерфейсами. Более того, в автономной операционной системе передача информации от одного процесса к другому, независимо от используемого способа адресации, как правило , происходит напрямую – без участия других процессов-посредников. Но даже и при наличии процессов-посредников все участники передачи информации находятся под управлением одной и той же операционной системы. При организации сети, конечно, можно обеспечить прямую связь между всеми вычислительными комплексами, соединив каждый из них со всеми остальными посредством прямых физических линий связи или подключив все комплексы к общей шине (по примеру шин данных и адреса в компьютере). Однако такая сетевая топология не всегда возможна по ряду физических и финансовых причин. Поэтому во многих случаях информация между удаленными процессами в сети передается не напрямую, а через ряд процессов-посредников, «обитающих» на вычислительных комплексах, не являющихся компьютерами отправителя и получателя и работающих под управлением собственных операционных систем. Однако и при отсутствии процессов-посредников удаленные процесс-отправитель и процесс-получатель функционируют под управлением различных операционных систем, часто имеющих принципиально разное строение.
Вопросы надежности средств связи и способы ее реализации для случая локальных процессов скорее теоретический характер. Мы выяснили, что физической основой «общения» процессов на автономной вычислительной машине является разделяемая память. Поэтому для локальных процессов надежность передачи информации определяется надежностью ее передачи по шине данных и хранения в памяти машины, а также корректностью работы операционной системы. Для хороших вычислительных комплексов и операционных систем мы могли забыть про возможную ненадежность средств связи. Для удаленных процессов вопросы, связанные с надежностью передачи данных, становятся куда более значимыми. Протяженные сетевые линии связи подвержены разнообразным физическим воздействиям, приводящим к искажению передаваемых по ним физических сигналов (помехи в эфире) или к полному отказу линий (мыши съели кабель). Даже при отсутствии внешних помех передаваемый сигнал затухает по мере удаления от точки отправления, приближаясь по интенсивности к внутренним шумам линий связи. Промежуточные вычислительные комплексы сети, участвующие в доставке информации, не застрахованы от повреждений или внезапной перезагрузки операционной системы. Поэтому вычислительные сети должны организовываться исходя из предпосылок ненадежности доставки физических пакетов информации.
При организации взаимодействия локальных процессов каждый процесс (в случае прямой адресации) и каждый промежуточный объект для накопления данных (в случае непрямой адресации) должны были иметь уникальные идентификаторы – адреса – в рамках одной операционной системы. При организации взаимодействия удаленных процессов участники этого взаимодействия должны иметь уникальные адреса уже в рамках всей сети.
Физическая линия связи, соединяющая несколько вычислительных комплексов, является разделяемым ресурсом для всех процессов комплексов, которые хотят ее использовать. Если два процесса попытаются одновременно передать пакеты информации по одной и той же линии, то в результате интерференции физических сигналов, представляющих эти пакеты, произойдет взаимное искажение передаваемых данных. Для того чтобы избежать возникновения такой ситуации (race condition!) и обеспечить эффективную совместную работу вычислительных систем, должны выполняться условия взаимоисключения, прогресса и ограниченного ожидания при использовании общей линии связи, но уже не на уровне отдельных процессов операционных систем, а на уровне различных вычислительных комплексов в целом.
- Связанный список. Хранение файла в виде связанного списка дисковых блоков.
- Индексные узлы.
- Управление свободным и занятым дисковым пространством.
- Структура файловой системы на диске. Примерная структура файловой системы на диске.
- Связывание файлов. Структура файловой системы с возможностью связывания файла с новым именем.
- Кооперация процессов при работе с файлами.
- Примеры разрешения коллизий и тупиковых ситуаций.
- Hадежность файловой системы.
- Целостность файловой системы.
- Порядок выполнения операций.
- Журнализация.
- Производительность файловой системы. Кэширование.
- Современные архитектуры файловых систем.
- Дополнительные возможности современных файловых систем (на примере ntfs ос Windows xp).
- Система управления вводом-выводом
- Физические принципы организации ввода-вывода.
- Общие сведения об архитектуре компьютера.
- Прямой доступ к памяти (Direct Memory Access – dma).
- Структура системы ввода-вывода. Логические принципы организации ввода-вывода.
- Структура подсистемы ввода-вывода. Драйверы.
- Функции подсистемы ввода-вывода.
- Компоненты подсистемы ввода-вывода (структурная схема).
- Диспетчер ввода-вывода.
- Типовая обработка ввода-вывода.
- Установка драйвера.
- Диспетчер электропитания.
- Сетевые и распределенные операционные системы.
- Взаимодействие удаленных процессов как основа работы вычислительных сетей.
- Основные вопросы логической организации передачи информации между удаленными процессами.
- Понятие протокола.
- Многоуровневая модель построения сетевых вычислительных систем. Семиуровневая эталонная модель osi/iso.
- Проблемы адресации в сети. Одноуровневые адреса. Двухуровневые адреса.
- Удаленная адресация и разрешение адресов. Схема разрешения имен с использованием dns-серверов.
- Основные понятия информационной безопасности. Угрозы безопасности
- Формализация подхода к обеспечению информационной безопасности.
- Криптография как одна из базовых технологий безопасности ос.
- Шифрование. Шифрование открытым ключом.
- Шифрование с использованием алгоритма rsa.
- Защитные механизмы ос. Идентификация и аутентификация
- Пароли, уязвимость паролей.
- Шифрование пароля.
- Авторизация. Разграничение доступа к объектам ос.
- Аудит системы защиты.
- Анализ некоторых популярных ос с точки зрения их защищенности: ms-dos; Windows nt/2000/xp; Windows Vista; Windows 7.
- Брандмауэр ос ms Windows.