Шпаргалка по "Операционным системам"

Автор работы: Пользователь скрыл имя, 29 Марта 2011 в 00:47, шпаргалка

Описание работы

Работа содержит ответы на вопросы по дисципине "Операционные системы".

Файлы: 1 файл

шпора(My)2.doc

— 204.00 Кб (Скачать файл)

Прерывания происходят в произвольной точке

В зависимости  от источника прерывания делятся  на:

1) внешние

2) внутренние

3) программные

Внешние или  аппаратные обрабатываются драйвером  соответсв. внешних устройств. Внутренние – спец.модулями ядра, а программные  – процедурами ОС , обслужив. системные вызовы.

Внешние прерывания – могут возникать в результате действий пользователя или в результате поступления сигналов от аппар.устр-в. Поэтому внешние прер-я называют аппаратными, отражая тот факт, что возникает прерывание вследствии подачи нек-й аппаратурой электр.сигнала. Сигнал подается на специальный вход  прерываний процессора

Является  асинхронным по отношению  к потоку команд выполняемой  программы. Бывают прерывания:

А) маскируемые (можно сделать так, что прерывание происходить не будет)

Б) немаскируемые

Внутренние  прерывания (исключения) – происходят внутри процессора в процессе выполнения программы: синхронно выполнению программы при появлении аварийной ситуации в ходе выполнения некоторой инструкции программы. Происходят синхронно выполнению текущих потоков команд

Программные прерывания – они не являются истинными прерываниями. Возникают при выполнении особой команды процессора, выполнение к-й имитирует прерывание, т.е. переход на новую последовательность инструкций.

Механизм  обработки прерываний - два основных способа реализации прерываний:

1)векторный

2)опрашиваемый.

 В  обоих случаях предоставляется  приоритет, а  в случае векторного  – адреса обработчика прерываний.

Вектор  прерываний – электр. сигнал, доставляемый на соответствующие коды процессора, несущих в себе информацию об определенном, закрепленном на данном у-ве номере, который идентифицирует соответствующий обработчик прерываний

Векторные механизмы –  каждому уст-ву назначается вектор прерываний. Вектор прерыв., передаваемый в процессор предств.собой целое число 0..255, указывающее на 1 из 256 программ обработки прерываний. Вектор прерываний бывает фиксир., конфиг., программн.

Опрашиваемые  – есть уровни  приоритета прерываний, например IRQ, может быть связано несколько устройств и неск-о обр.прерываний. При появлении на шине прерываний с д.уровнем процессов опрашивает все устр-ва , к-е связаны с данным уровнем прерываний до тех пор пока разработчик не подтвердит, что это прерывание.

Учет  приоритета прерываний

При использовании схемы  с относительными приоритетами, при одновременном использовании запросов прерываний из разных классов выбирается запрос, имеющий высший приоритет. После выполнения его обработчика выполняется обработчик 2-го прерывания

Решение о выборе какой запрос обрабатывать принимается только в момент завершения обработки прерывания. В случае абсолютных приоритетов при поступлении более приоритетного прерывания во время работы обработчика менее приоритетного текущий обработчик прерывается и обрабатывается на вновь поступившем

14. Варианты межпроцессного взаимодействия

Причины взаимодействия: 1. повышение скорости работы; 2. совместное использование данных; 3. модульная  конструкция системы; 4.удобство пользователя (процесс текстового редактора).

Взаимодействующие (кооперативные). Категория средств взаимодействия: 1. сигнальные – передается минимальное количество информ вплоть до 1 бита. Степень воздействия сигнала на поведение процесса минимальна. Все зависит от того, знает ли процесс как интерпретировать сигнал. Неправильная реакция на сигнал или игнорирование могут привести к трагическим последствиям. Сигналы вызывают прерывание выполнения задачи и выполнения заранее предусмотрен действий. Два типа сигнала: 1. синхронный – чаще всего приходят от системы прерывания проц блокируемых аппаратурой, например деление на 0.

2. Асинхронный  – могут поступать в любой  момент.

В ОС набор сигналов определен для каких-то дополнительных сигналов. Необходимо определить как  их обрабатывать. Канальные средства. Процессы взаимодействуют через линии связи предоставляемые ОС. Канальные средства могут обладать или не обладать буфером. 1. буфер нулевой емкости или отсутствующ. Никакая информация не сохраняется на линии связи. Процесс посылающий информ должен дождаться пока принимающая сторона не получит информацию и только тогда продолжит свое выполнение.. 2. буфер ограниченной емкости может хранить не более n единиц информации. 3. буфер неограниченной емкости. Теоретически возможет практически нет.  

15. Синхронизация параллельных процессов. Критические ресурсы.

Атомарная операция – это неделимая операция в рассматриваемом контексте.

P:a b c   R(P).

Q:d e f   W(P)

a b c d e f

Детерминированный набор активностей – когда  всякий раз при псевлоисполнении для одного и того же набора вх.данных получаются одинаковые вых.данные.

Его можно  безбоязненно выполнять в режиме разделения времени. Существует так  называемые условия Бернстайна, к-е  определяют насколько набор активностей  детерминирован. R(P)и W(P) – наборы вх.и вых данных прог-мы или активности P.

P: х=u*w

   Y=a+u

W(P)={x,y}

R(P)= {a,u,w}

Условия:

1.для  двух активностей P и Q: W(P)(знак пересечения – перевернутая буква U) W(Q)=0 - непересекаются

W(P)(тот же знак) R(Q)=0 – непер. наборы вых.данных

R(P)(тот же знак)W(Q)=0 – не должны пересекаться вых.д.активностей.

Если  выполняется 1-3 то P и Q детерминированы.

Про дет.набор  команд говорят, что они находятся  в состоянии гонки либо состязания.Один из вариантов решения проблемы –  вариант взаимоисключения. Каждый процесс, обращающийся к разделению ресурсам исключает для всех других процессов возможность одновремменого общения с этими ресурсами, если это может привести к недетерм.их поведению наборов процессов.

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

While(some condition)

 { entry section

   Critical section

Exit section

Remainder section}

Критические ресурсы.

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

Определим два уровня собственной сигналобезопасности программ.

1. Безусловная  сигналобезопасность. Обеспечивается  повторно-входимыми программными  компонентами, обращение к которым  может происходить в любой  момент времени без каких-либо  конфликтов. Такие программы должны выполняться независимо от любой другой программы, включая самою себя. Это достигается несколькими способами:

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

- Программа блокирует все события (прерывания) в системе на время своего выполнения. Этот метод делает сигналобезопасной любую программу, однако должен использоваться лишь для минимальных сегментов кода. Блокировка всех событий может оказаться полезной для гарантированного обеспечения атомарности семафорных операций.

- Программа в состоянии восстановить в начальное состояние свои разделяемые ресурсы по завершении повторного вызова. Технология восстановления – на любителя, но весьма удобна для практического использования в частности, в управляющих программах, выполняемых без поддержки операционной системы и диспетчера потоков.

2. Транзакционная сигналобезопасность. Программные компоненты с транзакционной сигналобезопасностью могут вызываться в любой момент времени, но без повторной входимости. То есть выполнение программы должно полностью завершаться до ее очередного вызова. Транзакционно безопасная программа зависит только от самой себя, но независима от любой другой программы. Например, операции чтения и записи кольцевого буфера являются безусловно сигналобезопасными друг относительно друга, поскольку манипуляции головой и хвостом буфера независимы. Чтение буфера может быть прервано операцией записи и наоборот. Однако, ни чтение, ни запись сами по себе не являются повторно входимыми и должны рассматриваться как критические секции. Если программные компоненты зависят как от самих себя, так и от других программ, они не являются сигналобезопасными. Например, операции чтения и записи разделяемой памяти не являются сигналобезопасными: их наложение и на самих себя и друг на друга может привести к искажениям данных. Такие программы следует рассматривать как критические разделяемые ресурсы и применять внешние методы их защиты: семафоры или взаимные исключения (mutexes).

16. Понятие взаимного исключения. Критический участок.

В многопроцессной  системе из-за взаимодействия процессов возможны 4 ситуации 1) взаимное исключение 2) синхронизация  3)взаимоблокировка 4)коммуникация.  Критические области- ресурс, который допускает обслуживание пользователя за один раз наз. критическим. Если несколько процессов пользуются таким ресурсом, они должны синхронизировать свои действия. Место в программе, где процесс обращается к такому ресурсу наз. критическим участком. В каждый момент времени только один  процесс может выполнять свой критический участок при работе с ресурсом. Для предотвращения этого используется взаимное исключение. Для реализации задач взаимного исключения необход.  выполнение след. условий. 1) 2 процесса не должны одновременно находиться в критич. областях. 2)при запросе критич. ресурса несколькими процессами, только один получает разрешение. 3) процесс вне крит. Области не может блокир. Другие процессы. 4) процесс использует Крит область конечное время 5)любой процесс переходит в неактивное состояние только за пределами критич. области. 6) невозможна ситуация, когда процесс вечно ждет попадания в крит. область.

17. Способы реализации  взаимного исключения: запрещение прерываний, блокировка памяти, строгое чередование.

1. Запрет прерываний

Выход процесса из состояния исполнения может быть по 2-ум причинам:

- блокировка  из-за нехватки ресурсов

- конец кванта  времени

Квант времени  заканчивается по прерыванию таймера, поэтому, если запретить системе  получать и обрабатывать прерывания, то процесс из состояний выполнения не выйдет, пока сам не разрешит прерывания.

Недостаток:

В случае зацикливания программы в КС или невыполнения эпилога, систему приходится перезагружать.

Этот алгоритм используется внутри ядра системы.

2. Блокировка  памяти (переменная «Замок»)

shared int lock = 0;

while (1){

while (lock)

lock = 1;

КС

lock = 0;

}

Пролог не является атомарным, поэтому до того, как замок  будет закрыт (lock = 1), управление может быть передано другому процессу, который тоже сможет войти в КС. Нарушается условие взаимоисключения.

Информация о работе Шпаргалка по "Операционным системам"