
- •Ответы на вопросы к зачету по дисциплине «Программное обеспечение аис»
- •1.Особенности современного развития сетевых Сетевые службы и сетевые сервисы
- •2. Ос в одноранговых сетях
- •3.Ос в сетях с выделенным сервером
- •4. Модели сетевых служб и распределенных приложений. Двухзвенные схемы
- •5.Модели распределенных приложений. Трехзвенные схемы
- •6.Механизм передачи сообщений в распределенных системах. Основные определения
- •7. Синхронизация
- •8. Буферизация в примитивах передачи сообщений
- •9. Способы адресации
- •10.Вызов удаленных процедур
- •11. Формат сообщений rpc
- •12. Связывание клиента с сервером
- •13.Программное обеспечение и функционирование лкс
- •19.Средства администрирования в Windows 2000 Server
- •20. Управление учетными записями пользователей и групп
- •21. Политика ведения учетных записей
- •22. Назначение прав и полномочий в Windows 2000 Server
- •23. Создание совместно используемых ресурсов
- •24.Управление серверами, сетевыми службами и дисками в Windows 2000 Server
- •25. Мониторинг сети с помощью просмотра событий
- •26. Определение особенностей поведения компьютерной сети. Технология 10Base2
- •27. Определение особенностей поведения компьютерной сети. Технология 10BaseТ
- •28. Установка сетевого адаптера
- •29.Настройка параметров драйвера сетевого адаптера
- •30.Технология 100BaseTx
- •31. Использование коммутаторов в сетях Ethernet
- •32. Установка имен компьютеров, сетевых служб и протоколов
- •33. Мониторинг сети средствами ms Network Monitor
- •34. Мониторинг стека протоколов NetBeui/smb, nwLink ipx/spx/NetBios
- •35. Построение одноранговой сети средствами ms Windows
7. Синхронизация
Центральным вопросом взаимодействия процессов в сети является способ их синхронизации, который полностью определяется используемыми в операционной системе коммуникационными примитивами. В этом отношении коммуникационные примитивы делятся на блокирующие (синхронные) и неблокирующие (асинхронные), причем смысл данных терминов в целом соответствует смыслу аналогичных терминов, применяемых при описании системных вызовов и операций ввода-вывода. В отличие от локальных системных вызовов при выполнении коммуникационных примитивов завершение запрошенной операции в общем случае зависит не только от некоторой работы локальной ОС, но и от работы удаленной ОС.
Коммуникационные примитивы могут быть оформлены в операционной системе двумя способами: как внутренние процедуры ядра ОС (в этом случае ими могут использоваться только модули ОС) или как системные вызовы (доступные в этом случае процессам в пользовательском режиме).
При использовании блокирующего примитива send процесс, выдавший запрос на его выполнение, приостанавливается до момента получения по сети сообщения-подтверждения о том, что приемник получил отправленное сообщение. А вызов блокирующего примитива receive приостанавливает вызывающий процесс до момента, когда он получит сообщение. При использовании неблокирующих примитивов send и receive управление возвращается вызывающему процессу немедленно, сразу после того, как ядру передается информация о том, где в памяти находится буфер, в который нужно поместить сообщение, отправляемое в сеть или ожидаемое из сети. Преимуществом этой схемы является параллельное выполнение вызывающего процесса и процедур передачи сообщения (не обязательно работающих в контексте вызвавшего соответствующий примитив процесса).
Важным вопросом при использовании неблокирующего примитива receive является выбор способа уведомления процесса-получателя о том, что сообщение пришло и помещено в буфер. Обычно для этой цели требуется один из двух способов.
Опрос (polling). Этот метод предусматривает наличие еще одного базового примитива test (проверить), с помощью которого процесс-получатель может анализировать состояние буфера.
Прерывание (interrupt). Этот метод использует программное прерывание для уведомления процесса-получателя о том, что сообщение помещено в буфер. Хотя такой метод и очень эффективен (он исключает многократные проверки состояния буфера), у него имеется существенный недостаток — усложненное программирование, связанное с прерываниями пользовательского уровня, то есть прерываниями, по которым вызываются процедуры пользовательского режима (например, вызов процедур АРС в ОС Windows NT по завершении операции ввода-вывода, рассмотренный в главе 8 «Дополнительные возможности файловых систем»).
При использовании блокирующего примитива send может возникнуть ситуация, когда процесс-отправитель блокируется навсегда. Например, если процесс получатель потерпел крах или же отправленное сообщение было утеряно из-за сетевой ошибки. Чтобы предотвратить такую ситуацию, блокирующий примитив send часто использует механизм тайм-аута. То есть определяется интервал времени, после которого операция send завершается со статусом «ошибка». Механизм тайм-аута может использоваться также блокирующим примитивом receive для предотвращения блокировки процесса-получателя на неопределенное время, когда процесс-отправитель потерпел крах или сообщение было потеряно вследствие сетевой ошибки.
Если при взаимодействии двух процессов оба примитива — send и receive — являются блокирующими, говорят^ что процессы взаимодействуют по сети синхронно , в противном случае взаимодействие считается асинхронным.