Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену по ОС.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.03 Mб
Скачать

41. Семафор, механизм синхронизации.

Процессы, выполняемые в мультипрограммном режиме можно рассматривать как набор связанный последовательных процессов которые действуют независимо друг от друга, только иногда используя общие ресурсы. Взаимосвязь между таким процессами устанавливаются с помощью специальных сообщений и механизма синхронизации. Хотя каждый процесс, выполняемый в мультипрограммном режиме, существует критическая область, которая в фиксированный момент времени может использовать один процесс. Нарушение этого условия приводит к неизвестному порядку исполнения процесса. При использовании критической области возникают проблемы «гонок» и «тупиков».

Гонка возникает тогда, когда процессы настолько связны между собой что порядок их выполнения влияет ан результат. Условие тупиков появляется, если два взаимосвязанных процесса блокируют друг друга при обращении к критической области. Для разрешения подобных проблем в операционных системах используется понятии семафора. Семафором (байтом блокировки) называют целую переменную, сигнализирующую о готовности процесса к использованию критической области. Для разрешения этой ситуации был предложен механизм позволяющий выполнять над семафором Q следующие операции:

  1. P(Q) - операция с одним аргументом – семафором, которая уменьшает его величину на единицу, если Q >= 0. Эта операция является неделимой: то есть определение возможности уменьшения Q и последующее его уменьшение есть неделимая операция. P(Q) представляет собой операцию задержки. То есть если процесс P1 не может завершиться до тех пор, пока какой либо процесс P2 не выполнит операцию V(Q). Если несколько процессов P одновременно начинают операцию над Q, то Q изменит своё значение только тогда когда завершится одна из начавшихся операций.

  1. V(Q) – операция с одним аргументом – семафором, которая увеличивает значение аргумента на единицу.

Существуют другие операции над семафорами, но все операции в силу своей неделимости позволяют блокировать или активизировать процессы при освобождении ресурсов любого типа.

42. Компоненты ядра ос юникс и структура программного обеспечения.

Ядро операционной системы содержит системные программы, выполняющие диспетчерские функции: управление ресурсам, распределение памяти и доступ к дисковым устройствам. Условно ядро ОС UNIX можно представить в виде нескольких тесно взаимодействующих компонент.

Ядро минимизировано и не выполняет ни одной функции непосредственно служащей пользователю. Для этой цели применяются многочисленные утилиты, выполняющиеся в качестве посредника между пользователем и ядром. В этом состоит основная особенность архитектуры данной операционной системы. Ядро UNIX содержит важные системные таблицы, в которых находится важная системная информация для построения связанных координированных программных цепочек. Основная работа ядра сводится к поиску в таблицах и к их модификации.

Управляемые программы используют динамически связываемые или разделяемые библиотеки, то есть выполняемые программы могут совместно использовать библиотечную программу, представленную одним физическим файлом на диске. Это позволяет выполняемым файлам занимать меньше места на диске, особенно программам, многократно использующим библиотечные функции. Имеются так же статически связываемые библиотеки для случая, когда есть желание пользоваться отладкой на уровне объектных кодов.

В UNIX разделяемые библиотеки динамически связываются во время выполнения, позволяя программисту заменять библиотечные модули собственными. Использование дампа памяти и динамических отладчиков позволяет выяснять причину краха программы. В UNIX включена программа для шифрования, которую могут использовать программисты. Однако из-за ограничений введённых США экспорт шифрованной технологии и некоторые версии UNIX за пределы США не допускаются.

В общем виде структура программного обеспечения UNIX графически может быть представлена в следующем виде:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]