- •1.Ос как расширенная машина
- •2.Ос как система управления ресурсами.
- •3.Особенности алгоритмов управления ресурсами.
- •Методы распределения памяти .
- •4.Особенноти аппаратных платформ.
- •5.Особенности областей использования
- •6. Особенности методов построения.
- •Управление процессами. Состояние процессов.
- •Управление процессами. Контекст и дескриптор процесса.
- •Управление процессами. Алгоритмы планирования процессов.
- •Проблема синхронизации процессов.
- •11. Средства синхронизации и взаимодействия процессов. Критическая секция.
- •Средства синхронизации и взаимодействия процессов. Тупики.
- •Средства синхронизации и взаимодействия процессов. Нити.
- •Управление памятью. Типы адресов.
- •Распределение памяти фиксированными разделами.
- •Распределение памяти разделами переменной величины (динамическими).
- •Перемещаемые разделы.
- •Страничное распределение памяти.
- •21. Странично-сегментное распределение.
- •Сегментное распределение памяти.
- •Физическая организация устройств ввода-вывода.
- •Организация программного обеспечения ввода-вывода.
- •Обработка прерываний. Драйверы устройств.
- •Независимый от устройств слой операционной системы. Пользовательский слой по.
- •28. Логическая организация файла.
- •Файловая система. Имена файлов.
- •Типы файлов.
- •Физическая организация и адрес файла.
- •31. Кэширование диска
- •Права доступа к файлу.
- •Общая модель файловой системы.
- •33. Современные архитектуры файловых систем
- •34. Распределенные файловые системы
- •35. Интерфейс файлового сервиса
- •Интерфейс сервиса каталогов.
- •Семантика разделения файлов в распределенных файловых системах.
- •Способы адресации в распределенных системах.
- •Кэширование в распределенных файловых системах.
- •Репликация в распределенных файловых системах.
- •Базовые примитивы передачи сообщений в распределенных системах.
- •Блокирующие и неблокирующие примитивы.
- •Буферизуемые и небуферизуемые примитивы.
- •Надежные и ненадежные примитивы.
- •Вызов удаленных процедур (rpc).
- •Проблемы взаимодействия операционных систем в гетерогенных сетях. Гетерогенность.
- •Основные подходы к реализации взаимодействия сетей.
- •Шлюзы в гетерогенных сетях.
- •Мультиплексирование стеков протоколов.
- •50. Вопросы реализации гетерогенных сетей. Варианты сетевого взаимодействия.
- •51.Вопросы реализации гетерогенных сетей
- •52.Сравнение вариантов организации взаимодействия сетей.
- •53.Службы именования ресурсов.
- •54.Доменный подход.
- •55.Четыре модели организации связи домена.
Репликация в распределенных файловых системах.
Распределенные системы часто обеспечивают репликацию (тиражирование) файлов в качестве одной из услуг, предоставляемых клиентам.
Репликация - это асинхронный перенос изменений данных исходной файловой системы в файловые системы, принадлежащие различным узлам распределенной файловой системы.
Другими словами, система оперирует несколькими копиями файлов, причем каждая копия находится на отдельном файловом сервере. Имеется несколько причин для предоставления этого сервиса, главными из которых являются:
Увеличение надежности за счет наличия независимых копий каждого файла на разных файл-серверах.
Распределение нагрузки между несколькими серверами.
Чтобы сделать концепцию репликации более понятной, рассмотрим, как может быть реализована репликация в системах, основанных на удаленном монтировании, типа UNIX.
Имеется два принципиальных различия в использовании групповых связей и ленивой репликации.
Во-первых, при ленивой репликации адресуется один сервер, а не группа.
Во-вторых, ленивая репликация происходит в фоновом режиме, когда сервер имеет промежуток свободного времени, а при групповой репликации все копии создаются в одно и то же время.
Базовые примитивы передачи сообщений в распределенных системах.
Важным отличием распределенных систем от централизованных является межпроцессная взаимосвязь.
В централизованных системах связь между процессами, как правило, предполагает наличие разделяемой памяти.
В распределенных системах нет разделяемой памяти.
Основой этого взаимодействия может служить только передача по сети сообщений. В самом простом случае системные средства обеспечения связи могут быть сведены к двум основным системным вызовам (примитивам), один - для посылки сообщения, другой - для получения сообщения.
На их базе могут быть построены более мощные средства сетевых коммуникаций, такие как распределенная файловая система или вызов удаленных процедур, которые, в свою очередь, также могут служить основой для построения других сетевых сервисов.
Существуют два системных вызова - ПОСЛАТЬ и ПОЛУЧИТЬ. Также существуют различные варианты их реализации, от правильного выбора которых зависит эффективность работы сети.
В частности, эффективность коммуникаций в сети зависит от способа задания адреса, от того, является ли системный вызов блокирующим или неблокирующим, какие выбраны способы буферизации сообщений и насколько надежным является протокол обмена сообщениями.
Блокирующие и неблокирующие примитивы.
Примитивы бывают блокирующими и неблокирующими, иногда они называются соответственно синхронными и асинхронными.
При использовании блокирующего примитива, процесс, выдавший запрос на его выполнение, приостанавливается до полного завершения примитива. Например, вызов примитива ПОЛУЧИТЬ приостанавливает вызывающий процесс до получения сообщения.
При использовании неблокирующего примитива управление возвращается вызывающему процессу немедленно, еще до того, как требуемая работа будет выполнена. Преимуществом этой схемы является параллельное выполнение вызывающего процесса и процесса передачи сообщения.
Обычно в ОС имеется один из двух видов примитивов и очень редко - оба. Однако выигрыш в производительности при использовании неблокирующих примитивов компенсируется серьезным недостатком: отправитель не может модифицировать буфер сообщения, пока сообщение не отправлено, а узнать, отправлено ли сообщение, отправитель не может. Отсюда сложности в построении программ, которые передают последовательность сообщений с помощью неблокирующих примитивов.
Имеется два возможных выхода. Первое решение - это заставить ядро копировать сообщение в свой внутренний буфер, а затем разрешить процессу продолжить выполнение. Второе решение заключается в прерывании процесса-отправителя после отправки сообщения, чтобы проинформировать его, что буфер снова доступен.