- •История возникновения и развития ос
- •Основные версии unix.
- •Основные версии ос Windows
- •Установка unix-подобной ос Краткие сведения по установке Unix-подобных систем (на примере FreeBsd)
- •Установка ос Windows.
- •Ядро и вспомогательные модули ос
- •Ядро в привилегированном режиме
- •Микроядерная архитектура
- •Многослойная структура ос
- •Физическая память и виртуальное адресное пространство.
- •Виртуальное адресное пространство процесса
- •9.Способы доступа к памяти в защищенном режиме.
- •10. Многозадачность ос
- •11. Динамически подключаемая библиоте
- •Формат файлов dll придерживается тех же соглашений, что и формат исполняемых файлов, сочетая код, таблицы и ресурсы, отличаясь лишь интерпретацией некоторых полей. Цели введения
- •12) Файловая подсистема ос.
- •13) Типы файлов.
- •14) Блочные и символьные устройства
- •15) Файлы, проецируемые в память
- •16) Сокеты
- •17) Корневой каталог.
- •18) Права доступа к файлам в ос.
- •Возможные действия над файлом
- •Указание прав доступа с помощью буквенной нотации
- •Указание прав доступа с помощью числовой нотации
- •19. Системные процессы ос.
- •20. Прикладные процессы ос
- •21. Взаимодействие между процессами.
- •22. Сигналы межпроцессного взаимодействия
- •23. Алармымежпроцессного взаимодействия.
- •24. Каналы fifOмежпроцессного взаимодействия.
- •25. Сообщения межпроцессного взаимодействия.
- •Семафоры межпроцессорного взаимодействия. Семафоры
- •Командный интерпретатор ос.
- •Программирования на языке командного интерпретатора ос.
- •Команда в общем виде:
- •Цикл for
- •Операторы цикла while и until
- •Переменные в скриптах командного интерпретатора ос.
- •Перенаправление ввода/вывода командного интерпретатора ос.
- •Команды more и sort
- •Ветвления в скриптах командного интерпретатора ос. Оператор выбора
- •Условный оператор
- •Циклы в скриптах командного интерпретатора ос.
- •Цикл for
- •Операторы цикла while и until
- •33. Настройка локальной сети.
- •34. Протоколы tcp/ip сети.
- •35. Служба доменных имен.
- •36.Сетевая файловая система.
- •37. Методы управления локальной сетью.
- •38. Методы настройки служб ос.
- •39. Методы управления учетными записями пользователей ос.
- •Сервис печати ос.
- •Методы повышения отказоустойчивости ос.
- •Методы диагностики процесса загрузки ос.
- •Методы диагностики текущего состояния ос.
- •Актуальность защиты операционной системы.
- •Виды атак на ос.
- •Способы защиты ос от типовых атак.
22. Сигналы межпроцессного взаимодействия
Для достижения поставленной цели различные процессы (возможно, даже принадлежащие разным пользователям) могут исполняться псевдопараллельно на одной вычислительной системе или параллельно на разных вычислительных системах, взаимодействуя между собой.
Процессы не могут взаимодействовать не общаясь. Общение процессов обычно приводит к изменению их поведения в зависимости от полученной информации. Если деятельность процессов остается неизменной при любой принятой ими информации, то это означает, что они на самом деле не нуждаются во взаимном общении. Процессы, которые влияют на поведение друг друга путем обмена информацией, принято называть кооперативными или взаимодействующими процессами, в отличие от независимых процессов, не оказывающих друг на друга никакого воздействия и ничего не знающих о взаимном сосуществовании в вычислительной системе.
Различные процессы в вычислительной системе изначально представляют собой обособленные сущности. Работа одного процесса не должна приводить к нарушению работы другого процесса. Для этого, в частности, разделены их адресные пространства и системные ресурсы, и для обеспечения корректного взаимодействия процессов требуются специальные средства и действия операционной системы. Нельзя просто поместить значение, вычисленное в одном процессе, в область памяти, соответствующую переменной в другом процессе, не предприняв каких-либо дополнительных организационных усилий. Давайте рассмотрим основные аспекты организации совместной работы процессов.
Сигналы
Сигналы — одно из традиционных средств межпроцессного взаимодействия в UNIX. Сигнал может быть отправлен процессу операционной системой или другим процессом. Операционная система использует сигналы для доставки процессу уведомлений об ошибках и неправильном поведении.
При получении сигнала исполнение процесса приостанавливается и запускается специальная подпрограмма — обработчик сигнала. Обработчики сигналов могут быть явно определены в исходном тексте исполняемой программы, если же они отсутствуют, используется стандартный обработчик, определённый операционной системой.
У сигнала есть только одна характеристика, несущая информацию — его номер (целое число). Иначе говоря, сигналы — это заранее определённый и пронумерованный список сообщений. Для удобства использования каждый сигнал имеет сокращённое буквенное имя. Список сигналов и их имён стандартизован и практически не отличается в различных версиях UNIX. Для отправки сигналов процессам используется специальный системный вызов kill и одноимённая ему пользовательская утилита. Стандарт POSIX определяет 28 сигналов, вот несколько примеров:
SIGINT (2) — Сигнал передается активному приложению при нажатии сочетания Ctrl+C, по умолчанию завершает процесс.
SIGKILL (9) — Сигнал аварийного завершения процесса. По этому сигналу процесс завершается немедленно — без освобождения ресурсов. Этот сигнал не может быть перехвачен, заблокирован или переопределён самим процессом, всегда используется стандартный обработчик опрационной системы. Этот сигнал используется для гарантированного завершения процесса.
SIGTERM (15) — Сигнал завершения процесса, как правило используется для корректного завершения его работы.
SIGUSR1 (10) и SIGUSR2 (12) — Зарезервированные сигналы под нужды программистов.
Сигналы являются ограниченным средством межпроцесснного обмена. Они прекрасно подходят для уведомлений, но не могут использоваться для передачи информации между процессами. Сигналы передаются без каких-либо сопутствующих данных, поэтому они обычно комбинируются с другими способами обмена.
Вызовы POSIX — signal(), kill().
