- •1.Классификация программного обеспечения(по). Базовый уровень по. Системный уровень по. Драйверы. Служебный уровень по. Утилиты. Прикладной уровень по.
- •2.Операционная система(ос). Классификация ос. Эволюция ос. Функции ос. Разновидности ос.
- •Современный этап развития ос
- •3. Обобщенная модель иерархической ос(13 уровней).
- •5. Понятие процесса и потока(нити). Классификация процессов. Многозначность и многопоточность. Проблемы разработки приложений для многопоточной среды.
- •6. Состояния процесса. Многоуровневые модели состояний (5,6,7) процесса. Причины переходов из одного состояния в другое. Причины возникновения и завершения процессов.
- •Модель с пятью состояниями
- •7.Трехуровневое планирование. Оптимизация работы системы: буферизация, кэширование, свопинг.
- •Алгоритм трёхуровневое планирование
- •8.Ресурсы компьютерной системы. Классификация ресурсов. Распределение и управление ресурсами. Управление памятью.
- •9. Планирование в однопроцессорных системах. Планирование в системах пакетной обработки, системах реального времени и интерактивных системах. Алгоритмы планирования. Планировщики.
- •10.Взаимодействующие процессы. Определение и уровни взаимодействия. Классификация средств обмена информацией.
- •11. Программно-аппаратные решения проблем взаимодействующих процессов (posix, монитор Хоара, алгоритм Деккара, примитивы Дейкстра, семафоры, мьютексы и др.).
- •12. Проблемы взаимодействующих процессов: "Обедающие философы", "Читатели и писатели", "Спящий брадобрей". Описание и решения задач.
- •13. Пользовательский интерфейс ос. Классификация, примеры.
- •Текстовые ос
- •Графические ос
- •Речевые ос
- •14.Файловые системы. Файловая система fat (таблица размещения, структура загрузочной записи). Примеры файловых систем: fat32, vfat, ntfs и hpfs.
- •Корневой каталог root
- •15.Типовые средства аппаратной поддержки операционных систем, bios.
10.Взаимодействующие процессы. Определение и уровни взаимодействия. Классификация средств обмена информацией.
Ситуации, когда приходится процессам взаимодействовать:
Передача информации от одного процесса другому
Контроль над деятельностью процессов (например: когда они борются за один ресурс)
Согласование действий процессов (например: когда один процесс поставляет данные, а другой их выводит на печать. Если согласованности не будет, то второй процесс может начать печать раньше, чем поступят данные).
Два вторых случая относятся и к потокам. В первом случае у потоков нет проблем, т.к. они используют общее адресное пространство. Процессы не могут взаимодействовать не общаясь. Общение процессов обычно приводит к изменению их поведения в зависимости от полученной информации. Процессы, которые влияют на поведение друг друга путем обмена информацией, принято называть кооперативными или взаимодействующими процессами, в отличие от независимых процессов, не оказывающих друг на друга никакого воздействия и ничего не знающих о взаимном сосуществовании в вычислительной системе.
Различные процессы в вычислительной системе изначально представляют собой обособленные сущности. Работа одного процесса не должна приводить к нарушению работы другого процесса. Для этого, в частности, разделены их адресные пространства и системные ресурсы, и для обеспечения корректного взаимодействия процессов требуются специальные средства и действия операционной системы.
(из лекции) При наличии обмена информацией процессы называют взаимодействующими. Обмен может осуществляться явным и неявным образом. Явный - прямая адресация от одного процесса к другому; неявная - через промежуточные объекты. Вне зависимости от связи, процессы могут быть конкурирующими - взаимосвязанными по ресурсу.
Прямая адресация -процессы непосредственно общаются друг с другом, явно указывая имя или номер, кому информация предназначается или от кого должна быть получена. Если оба процесса указывают имена своих партнеров, то такая адресация называется симметричной.( ни одни другой процесс не может вмешаться в процедуру симметричного прямого общения, перехватить послание или подменить ожидаемые данные). Если только из взаимодействующих процессов указывает имя/адрес, то это ассиметричная прямая адресация.
При непрямой адресации данные помещаются передающим процессом в некоторый промежуточный объект, имеющий свой адрес, их которого они могут быть изъяты другим процессом. При этом передающий процесс не знает, как идентифицирован получатель и наоборот. Для работы с непрямой адресацией объектам достаточно знать некий идентификатор промежуточного объекта для хранения данных.
Отношения процессов определяют синхронизирующее правило:
1. Отношение предшествования (для 2х процессов это означает, что один из них должен переходить в активное состояние раньше другого).
2. Отношение приоритетности (процесс с большим приоритетом может быть переведен в состояние при соблюдении 2х условий: 1) нет других процессов, приоритетом превышающий текущий, в состоянии готовности 2)процессор либо свободен, либо используется процессом с меньшим приоритетом)
3.Отношение взаимного исключения (оба процесса используют обобщенный ресурс. Совокупность действий над этим ресурсом в составе каждого процесса называется критической область. Критическая область одного процесса не должна выполняться одновременно с критической областью другого над одним и тем же ресурсом).
Категории средств обмена информацией.
Сигнальные. Передается минимальное количество информации – один бит, "да" или "нет". Используются, как правило, для извещения процесса о наступлении какого-либо события, в качестве флагов. Степень взаимодействия минимальна. При использовании этих средств получателю необходимо знать, что означает сигнал и как на него реагировать.
Канальные. Представляют собой выделенные линии связи для передачи информации. Характеристика: пропускная способность( объем информации за единицу времени:). Могут оказывать активное влияние на другой процесс, так как передается большое количество информации.
Разделяемая память. Использование выделенного пространства совместно несколькими процессами. Организацией раздельной памяти занимается ОС. Это наиболее быстрый способ взаимодействия процессов в ВС. При ее использовании не требуется специализации процессов, а достаточно самом процессам знать адреса для обмена. Причем не всегда обязательно, чтобы процесс- получатель информации был запущен одновременно с процессом-отправителем.