Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

To_chto_doktor_prpopisal

.pdf
Скачиваний:
0
Добавлен:
22.12.2025
Размер:
18.91 Mб
Скачать

что такое взаимоблокировка процессов? Edit

Взаимоблокировка процессов (или deadlock) — это ситуация в многозадачных системах, когда два или более процессов не могут продолжить выполнение, потому что каждый из них ожидает освобождения ресурса, удерживаемого другим процессом.

Условия возникновения взаимоблокировки

Для возникновения deadlock необходимо одновременное выполнение четырёх условий (условия Коффмана):

1.Взаимное исключение (Mutual Exclusion)

oРесурс может использоваться только одним процессом в данный момент.

2.Удержание и ожидание (Hold and Wait)

oПроцесс удерживает хотя бы один ресурс и запрашивает ещё один, который занят другим процессом.

3.Отсутствие вытеснения (No Preemption)

oРесурс нельзя отобрать у процесса — он должен освободить его сам.

4.Кольцевое ожидание (Circular Wait)

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

Пример взаимоблокировки

Два процесса A и B блокируют два ресурса R1 и R2:

1.A захватывает R1 и ждёт R2.

2. B захватывает R2 и ждёт R1. → Оба процесса зависают навсегда.

Способы борьбы с взаимоблокировками

1.Предотвращение (нарушение одного из условий Коффмана): o Запрет удержания ресурсов при запросе новых.

o Принудительное отбирание ресурсов (вытеснение).

o Упорядоченное выделение ресурсов (линейный порядок).

2.Обнаружение и восстановление:

oПостроение графа ожидания и обнаружение циклов.

oПерезапуск процессов или откат (rollback).

3.Игнорирование (стратегия "страуса"):

oВ некоторых системах (например, Linux) deadlock'и редко возникают, и их просто не обрабатывают.

Вывод

Взаимоблокировка — серьёзная проблема в ОС и параллельном программировании, требующая либо предотвращения, либо корректного разрешения.

Особенности систем реального времени, которые учитываются при разработке алгоритмов планирования:

Необходимость выполнения всех заданий во время (жёсткие временные ограничения)

oВ системах реального времени критично, чтобы задачи завершались строго в заданные временные рамки.

Отсутствие интерактивности (в большинстве случаев)

oВ отличие от интерактивных систем (например, пользовательских ОС), системы реального времени часто работают в автоматическом режиме без взаимодействия с пользователем.

Почему не подходят другие варианты?

Наличие интерактивности — не является типичной чертой систем реального времени, так как их основная задача — гарантированное выполнение задач в строгие сроки, а не взаимодействие с пользователем.

Итог:

 

 

Правильные

ответы: отсутствие

интерактивности и необходимость

выполнения всех заданий во время.

 

правильно ли решена задача? объясни решение

Edit

Проверка решения задачи Дано:

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

A: 9 мин.

B: 1 мин.

C: 8 мин.

D: 7 мин.

E: 4 мин.

Алгоритм: «Кратчайшая задача — первая» (SJF, Shortest Job First).

Шаг 1: Определение правильной последовательности выполнения задач

При SJF задачи выполняются в порядке возрастания их времени выполнения:

1.B (1 мин.) — самая короткая.

2.E (4 мин.) — следующая по длительности.

3.D (7 мин.)

4.C (8 мин.)

5.A (9 мин.) — самая длинная.

Правильная последовательность: B → E → D → C → A.

Среди вариантов ответа это соответствует:

B-E-D-C-A

Остальные последовательности не соответствуют SJF.

Шаг 2: Расчёт среднего оборотного времени

Оборотное время (Turnaround Time) для каждой задачи — это время от поступления до завершения (включая ожидание).

Задача

Время

Время

Время

Оборотное

выполнения

начала

завершения

время

 

B

1

0

1

1

E

4

1

5

5

D

7

5

12

12

C

8

12

20

20

A

9

20

29

29

Среднее оборотное время:

 

1+5+12+20+295=675=13.4 мин.51+5+12+20+29=567=13.4 мин.

 

Правильный

ответ:

13,4

 

Вывод

Решение верное:

1.Последовательность задач: B-E-D-C-A.

2.Среднее оборотное время: 13,4 мин. Остальные варианты не соответствуют условиям задачи.

Решение задачи Дано:

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

A: 2 мин.

B: 5 мин.

C: 4 мин.

D: 6 мин.

E: 8 мин.

Алгоритм: «Кратчайшая задача — первая» (SJF, Shortest Job First).

Шаг 1: Определение последовательности выполнения задач

При SJF задачи выполняются в порядке возрастания их времени выполнения:

1.A (2 мин.) — самая короткая.

2.C (4 мин.) — следующая по длительности.

3.B (5 мин.)

4.D (6 мин.)

5.E (8 мин.) — самая длинная.

Правильная последовательность: A → C → B → D → E.

Среди предложенных вариантов нет точного соответствия, но ближайший (с ошибкой):

A-C-B-D-E — этот вариант правильный, но в списке он отмечен как неверный (возможно, опечатка в задании).

Остальные последовательности не соответствуют SJF.

Шаг 2: Расчёт среднего оборотного времени

Оборотное время (Turnaround Time) для каждой задачи — это время от поступления до завершения (включая ожидание).

Задача

Время

Время

Время

Оборотное

выполнения

начала

завершения

время

 

A

2

0

2

2

Задача

Время

Время

Время

Оборотное

выполнения

начала

завершения

время

 

C

4

2

6

6

B

5

6

11

11

D

6

11

17

17

E

8

17

25

25

Среднее оборотное время:

 

2+6+11+17+255=615=12.2 мин.52+6+11+17+25=561=12.2 мин.

 

Правильный

ответ:

12,2

 

Вывод

1.Последовательность задач (по SJF): A-C-B-D-E (но в списке она помечена как неверная, что странно).

2.Среднее оборотное время: 12,2 мин. — это верный ответ.

Ошибка в задании:

Вариант A-C-B-D-E должен

быть

правильным

для

последовательности, но он отмечен как неверный.

 

 

Возможно, в задании опечатка, и правильная последовательность

— другая (например, если задачи пришли не одновременно).

 

Итог:

Если считать, что все задачи поступают одновременно, то:

o Последовательность: A-C-B-D-E.

oСреднее время: 12,2 мин. (этот ответ верен).

Если же в задании подразумевался другой сценарий (например, задачи приходят в разное время), то данных недостаточно.

Рекомендация:

Уточнить условие задачи, особенно момент поступления заданий (одновременно или нет). В текущем виде 12,2 — верный ответ для SJF при одновременном поступлении.

Решение задачи Дано:

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

A: 6 мин. (доступна сразу)

B: 8 мин. (доступна сразу)

C: 4 мин. (появляется в T = 7 мин.)

D: 3 мин. (появляется в T = 7 мин.)

E: 5 мин. (появляется в T = 7 мин.)

Алгоритм: «Кратчайшая задача — первая» (SJF), но с учётом времени поступления задач.

Шаг 1: Определение последовательности выполнения задач

1.Время от 0 до 7 мин.

o Доступны только задачи A и B.

oПо SJF выбираем A (6 мин.), так как она короче B (8 мин.).

oA выполняется с 0 до 6 мин.

2.Время 6–7 мин.

oОсталась только задача B (8 мин.), но в момент T = 7 мин. поступают новые задачи C, D, E.

oНа момент T = 7 мин.:

B уже выполняется 1 мин. (осталось 7 мин.).

Новые задачи: D (3 мин.), C (4 мин.), E (5 мин.).

3.Сравнение оставшегося времени B и новых задач:

oОстаток B: 7 мин.

o Новые задачи: D (3 мин.) — самая короткая.

o По SJF прерываем B и запускаем D (3 мин.), затем C (4 мин.), затем E (5 мин.), и только потом завершаем B (остаток 7

мин.).

Итоговая последовательность: o A (0–6 мин.)

o D (7–10 мин.) o C (10–14 мин.) o E (14–19 мин.)

o B (19–26 мин., включая прерванные 1 мин. в начале). Правильный порядок: A-D-C-E-B (но такого варианта нет в списке). Ближайший вариант из предложенных:

o B-D-C-E-A — не совсем верный, но если предположить, что в условии ошибка (например, B запускается первой), то это единственный логичный ответ.

Шаг 2: Расчёт среднего оборотного времени

 

 

Задач

Время

Время

Время

Время

Оборотно

выполнени

поступлени

начал

завершени

а

е время

я

я

а

я

 

 

A

6

0

0

6

6

B

8

0

19

26

26

C

4

7

10

14

7

D

3

7

7

10

3

E

5

7

14

19

12

Оборотное время = Время завершения - Время поступления:

A: 6 - 0 = 6

B: 26 - 0 = 26

C: 14 - 7 = 7

D: 10 - 7 = 3

E: 19 - 7 = 12

Среднее оборотное время:

6+26+7+3+125=545=10.8 мин.56+26+7+3+12=554=10.8 мин.

Но в вариантах ответа 10.8 нет, ближайший — 16.0.

Ошибка в условии:

Либо неверно указаны варианты последовательностей,

Либо ошибка в расчётах (например, если B не прерывается).

Если не прерывать B, то:

1.A (0–6)

2.B (6–14)

3.D (14–17)

4.C (17–21)

5.E (21–26)

Тогда среднее время:

6+14+10+14+195=635=12.6 мин.56+14+10+14+19=563=12.6 мин.

Это тоже не совпадает с вариантами.

Вывод:

Вероятно, в задании ошибка.

Наиболее близкий вариант из предложенных:

o Последовательность: B-D-C-E-A (не идеально, но других нет).

o Среднее время: 16.0 (возможно, округление или иная логика).

Итоговый ответ:

B-D-C-E-A

16,0

(Но строго математически правильный ответ — 10.8 или 12.6, в зависимости от трактовки прерывания.)

Шаг 2: Расчёт среднего оборотного времени Задача Время выполнения Время поступления Время начала Время завершения Оборотное время A 6 0 0 6 6 B 8 0 19 26 26 C 4 7 10 14 7 D 3 7 7 10 3 E 5 7 14 19 12 напиши эту таблицу для варианта B-D-C-E-A

Edit

Таблица для последовательности B-D-C-E-A:

Задач

Время

Время

Время

Время

Оборотно

выполнени

поступлени

начал

завершени

а

е время

я

я

а

я

 

 

B

8

0

0

8

8

D

3

7

8

11

4

C

4

7

11

15

8

E

5

7

15

20

13

A

6

0

20

26

26

Пояснения:

1.B (0-8 мин.) - запускается первой, так как доступна сразу и длится

8минут.

2.В момент T=7 мин. поступают задачи D, C, E.

3.После завершения B в T=8 мин. выбирается D (3 мин.) как самая короткая из доступных (D, C, E).

4.Затем выполняется C (4 мин.), потом E (5 мин.).

5.Последней выполняется A (6 мин.), которая ждала с начала.

Расчёт оборотного времени:

B: 8 - 0 = 8 мин.

D: 11 - 7 = 4 мин.

C: 15 - 7 = 8 мин.

E: 20 - 7 = 13 мин.

A: 26 - 0 = 26 мин.

Среднее оборотное время:

8+4+8+13+265=595=11.8 мин.58+4+8+13+26=559=11.8 мин.

Вывод:

Для последовательности B-D-C-E-A среднее время = 11.8

мин. (но в вариантах ответа такого нет).

В задании указан вариант 16.0, что не совпадает с расчётами.

Возможны ошибки в условии.

Рекомендация:

Уточните, корректно ли указано время поступления задач или их порядок в вариантах ответа.

Решение задачи Дано:

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

Задание

Время

выполнения Приоритет (чем больше, тем

(мин.)

выше)

 

A

4

5

(наивысший)

B

8

3

 

C

5

4

 

D

9

2

 

E

2

1

(наинизший)

Алгоритм: Планирование по приоритету (выполняется задача с наивысшим приоритетом).

Шаг 1: Определение последовательности выполнения задач

Задачи выполняются в порядке убывания приоритета:

1.A (приоритет 5) — наивысший.

2.C (приоритет 4).

3.B (приоритет 3).

4.D (приоритет 2).

5.E (приоритет 1) — последняя.

Правильная последовательность: A → C → B → D → E.

Среди предложенных вариантов:

A-C-B-D-E — верный.

Шаг 2: Расчёт среднего оборотного времени

Оборотное время (Turnaround Time) = время от поступления до завершения задачи (предполагаем, что все задачи поступают одновременно в момент времени 0).

Задача

Время

Время

Время

Оборотное

выполнения

начала

завершения

время

 

A

4

0

4

4

C

5

4

9

9

B

8

9

17

17

D

9

17

26

26

E

2

26

28

28

Среднее оборотное время:

 

4+9+17+26+285=845=16.8 мин.54+9+17+26+28=584=16.8 мин.

 

Правильный

ответ:

16,8

 

Вывод

1.Последовательность выполнения задач: A-C-B-D-E.

2.Среднее оборотное время: 16,8 мин.

Почему другие варианты не подходят?

A-B-C-D-E — нарушен порядок приоритетов (B выполняется перед C, хотя у C приоритет выше).

B-A-C-D-E — B имеет приоритет 3 и не должна выполняться первой.

E-A-C-B-D — E имеет наинизший приоритет (1) и не должна выполняться первой.

Итог:

Выбранные варианты A-C-B-D-E и 16,8 — верные.