Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Вопрос 417(




Зеркальный том

)Вопрос 417


Вариант 4 Вопрос 3, 4(


Вопрос 50( Иерархия уровней параллелизма выглядит следующим образом: 1. Сеанс - запуск прикладной EXE-программы2. Процесс - запуск одного EXE-файла из другого 3. Поток - параллельно выполняющиеся процедуры в рамках одного процесса )Вопрос 95, 96, 97( S: = New(PSemaphore, Init); Процесс 1 Процесс 2 Процесс 3.........S^.P; S^.P; S^.P; Кр. уч-к; Кр. уч-к; Кр. уч-к; S^.V; S^.V; S^.V;......... Dispose(S, Done); Пусть П1 первым подошел к критическому участку. Count = 1.Dec(Count); Count = 0; Входит в критический участок, т.к. условие блокировки Count < 0.Пусть П2 вторым подошел к критическому участку. Count = 0.Dec(Count); Count = -1; Встает в очередь семафора, т.к. выполняется условие блокировки.Пусть П3 третьим подошел к критическому участку. Count = -1.Dec(Count); Count = -2; Встает в очередь семафора за П2, т.к. выполняется условие блокировки.Теперь П1 выходит из критического участка. Count = -2.Inc(Count); Count = -1; Активизирует процесс П2, как первый в очереди, т.к. выполняется условие активизацииCount < = 0.Процесс П2 входит в критический участок.Теперь П2 выходит из критического участка. Count = -1.Inc(Count); Count = 0; Активизирует процесс П3, как первый в очереди, т.к. выполняется условие активизацииCount < = 0.Процесс П3 входит в критический участок.Теперь П3 выходит из критического участка. Count = 0.Inc(Count); Count = 1; Активизировать некого и не выполняется условие активизации Count < = 0.Семафор приходит в исходное состояние. Рассмотрим теперь вторую задачу. Рассматривая вторую задачу, мы подбираемся к изучению методов обмена сообщениями в ядре. Общая схема взаимодействия двух процессов при обмене данными выглядит следующим образом.Процесс 1 Процесс 2......Записать в ЯП; Если не записано, то ЖДАТЬ; Сообщить, что записал; Прочитать из ЯП;......Решим указанную задачу с помощью семафоров.Инициализируем семафор S в 0, т.е. S^.Count: = 0.П1 П2......Записать в ЯП; S^.P; S^.V; Прочитать из ЯП;......Пусть процесс П1 записал в ЯП данные и первым подошел к выполнению операции S^.V.Inc(Count); Count = 1; Т.к. условие активизации процессов в операции S^.V - Count < = 0, то активизировать некого.Пусть теперь к выполнению операции S^.P подошел процесс П2.Dec(Count); Count = 0; Т.к. условие блокировки в операции S^.P - Сount < 0, то процесс П2 не блокируется и переходит к чтению ЯП.Таким образом, чтение произошло после записи.Пусть теперь первым подошел к выполнению операции S^.P процесс П2.Dec(Count); Count = -1; Выполняется условие блокировки и процесс П2 встает в очередь, не прочитав ячейку памяти.Теперь процесс П1 пишет в ЯП и подходит к выполнению операции S^.V.Inc(Count); Count = 0; Т.к. условие активизации Count < = 0 выполняется, то происходит активизация процесса П2 и чтение ЯП.Таким образом, чтение опять произошло после записи.Для решения данной задачи в современных ОС используются семафоры событий.Обычно процессы - это некие циклические программы. Поэтому, если организовать запись и чтение ЯП так, как это описано выше, то может иметь место следующая ситуация: пока процесс П2 не подошел к операции чтения, процесс П1 может выполнить несколько операций записи, возвращаясь к ней в цикле. Т.е. может произойти потеря данных.Поэтому, чтобы потери данных не происходили, необходимо организовать синхронизацию так, чтобы количество записей равнялось количеству чтений.Следующая схема позволяет это сделать.П1 П2While True Do Begin While True Do Begin...... Запись в ЯП; S^.P; S^.V; Чтение из ЯП; A^.P; A^.V;......End {While}; End {While}; Первый процесс пишет в ЯП, активизирует П2, если тот уже блокирован в очереди первого семафора, а сам блокируется в очереди второго семафора.Активизация П1 выполняется процессом П2 после чтения ЯП. Первый семафор используется как подтверждение записи, а второй - как подтверждение чтения. )Вопрос 142( Алгоритм обладает рядом ограничений: 1. алгоритм исходит из фиксированного количества ресурсов, хотя на самом деле оно может меняться; 2. алгоритм исходит из фиксированного количества процессов, хотя оно тоже может меняться на самом деле; 3. алгоритм требует возвращения ресурсов процессами в конечное, но не определенное, время; 4. алгоритм требует, чтобы процессы заранее объявили о максимальном количестве используемых ими ресурсов, что не всегда возможно; 5. алгоритм предполагает, что процессы завершаются, использовав однажды требуемое количество ресурсов, не ясно как быть с процессами типа " бесконечный цикл"; 6. сам просчет надежности состояния приводит к затратам времени. ) Вопрос 188( Это основная идея протокола наследования приоритета. Однако, анализ показал, что этот протокол может вести к цепным блокированиям и тупикам. Чтобы решить эти проблемы и был разработан протокол предельного приоритета. )

Данная страница нарушает авторские права?





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.