-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path3.2.html
101 lines (82 loc) · 10.1 KB
/
3.2.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Режимы мультипрограммирования, планирование и алгоритмы работы планировщика</title>
<link rel="stylesheet" href="./css/index.css">
</head>
<body>
<div class="container">
<h1>Режимы мультипрограммирования, планирование и алгоритмы работы планировщика</h1>
<div class="navigation-buttons">
<a href="3.1.html" class="button">⬅ Назад</a>
<a href="3.3.html" class="button">Вперёд ➡</a>
</div>
<h2>Режимы мультипрограммирования</h2>
<p><strong>Мультипрограммирование</strong> — это режим работы операционной системы, в котором в памяти одновременно находятся несколько процессов, каждый из которых использует процессор по очереди. Основная цель мультипрограммирования — максимизация использования процессорного времени и минимизация простоев процессора.</p>
<h3>Основные режимы мультипрограммирования</h3>
<ul>
<li><strong>Однопользовательское мультипрограммирование:</strong> Применяется в системах, где одновременно выполняются несколько задач одного пользователя. Этот режим позволяет выполнять несколько приложений на одном устройстве, например, текстовый редактор и веб-браузер.</li>
<li><strong>Многопользовательское мультипрограммирование:</strong> Применяется в многопользовательских системах, где несколько пользователей могут одновременно выполнять свои задачи. Этот режим характерен для серверов и больших вычислительных систем.</li>
<li><strong>Многозадачное мультипрограммирование:</strong> Ориентировано на параллельное выполнение задач. В этом режиме система быстро переключается между задачами, создавая иллюзию их одновременного выполнения.</li>
</ul>
<h2>Планирование в различных режимах мультипрограммирования</h2>
<p>Планирование задач — это процесс распределения процессорного времени между активными процессами. Планирование зависит от режима мультипрограммирования и характера задач. Оно может быть:</p>
<ul>
<li><strong>С приоритетами:</strong> Задачи с более высоким приоритетом получают доступ к процессору раньше.</li>
<li><strong>Сквозным:</strong> Задачи обрабатываются последовательно, по мере их поступления.</li>
<li><strong>Квантовым (тайм-шеринг):</strong> Каждая задача получает фиксированный временной интервал, после чего управление передаётся следующей задаче.</li>
</ul>
<h2>Алгоритмы работы планировщика</h2>
<p>Планировщик ОС использует различные алгоритмы для распределения процессорного времени между процессами. Выбор алгоритма зависит от типа задач, желаемой производительности и приоритетов пользователей. Рассмотрим основные алгоритмы:</p>
<h3>1. FCFS (First-Come, First-Served)</h3>
<p>Алгоритм <strong>FCFS</strong> (первым пришёл — первым обслужен) обрабатывает задачи в порядке их поступления. Этот алгоритм прост, но может приводить к эффекту конвоирования (convoy effect), когда одна длинная задача блокирует выполнение других.</p>
<h4>Особенности:</h4>
<ul>
<li>Подходит для систем с последовательным выполнением задач.</li>
<li>Может быть неэффективным для интерактивных задач.</li>
</ul>
<h3>2. SJF (Shortest Job First)</h3>
<p>Алгоритм <strong>SJF</strong> (наименьшая задача первой) обрабатывает задачи с минимальным временем выполнения в первую очередь. Этот подход минимизирует среднее время ожидания, но требует оценки длительности каждой задачи, что не всегда возможно.</p>
<h4>Особенности:</h4>
<ul>
<li>Оптимален для уменьшения времени ожидания.</li>
<li>Подвержен эффекту «голодания» для длинных задач.</li>
</ul>
<h3>3. Round Robin (RR)</h3>
<p>Алгоритм <strong>Round Robin</strong> распределяет процессорное время, выделяя каждому процессу определённый квант времени. После истечения кванта управление передаётся следующему процессу.</p>
<h4>Особенности:</h4>
<ul>
<li>Подходит для многозадачных систем с интерактивными приложениями.</li>
<li>Квант времени должен быть оптимальным: слишком маленький — увеличивает накладные расходы на переключение задач; слишком большой — ухудшает отклик системы.</li>
</ul>
<h3>4. Priority Scheduling (планирование с приоритетами)</h3>
<p>В алгоритме <strong>планирования с приоритетами</strong> процессорное время распределяется в зависимости от приоритета задач. Задачи с более высоким приоритетом выполняются первыми, при этом задачи с низким приоритетом могут ожидать.</p>
<h4>Особенности:</h4>
<ul>
<li>Позволяет гибко распределять ресурсы в зависимости от важности задачи.</li>
<li>Может привести к эффекту «голодания» для задач с низким приоритетом.</li>
</ul>
<h3>5. Multilevel Queue Scheduling (многоуровневое планирование)</h3>
<p>Алгоритм <strong>многоуровневого планирования</strong> разделяет процессы на несколько очередей в зависимости от их приоритета или типа (системные задачи, интерактивные задачи и т.д.). Каждая очередь обрабатывается по своему алгоритму, а между очередями может применяться другой алгоритм.</p>
<h4>Особенности:</h4>
<ul>
<li>Гибкость в управлении разными типами задач.</li>
<li>Сложность в настройке и балансировке между очередями.</li>
</ul>
<h3>6. Multilevel Feedback Queue Scheduling (многоуровневое планирование с обратной связью)</h3>
<p>Алгоритм <strong>многоуровневого планирования с обратной связью</strong> позволяет процессам перемещаться между очередями в зависимости от их поведения и времени выполнения. Например, задачи, которые долго не выполняются, могут перемещаться в очередь с более высоким приоритетом.</p>
<h4>Особенности:</h4>
<ul>
<li>Динамическое распределение процессорного времени в зависимости от поведения процессов.</li>
<li>Сложность реализации, но высокая адаптивность к изменяющимся условиям.</li>
</ul>
<h2>Заключение</h2>
<p>Мультипрограммирование и планирование процессов играют ключевую роль в операционных системах, обеспечивая эффективное использование ресурсов и повышение производительности. Выбор алгоритма планирования зависит от требований системы и типа задач, обеспечивая баланс между скоростью выполнения и справедливым распределением ресурсов.</p>
</div>
<div class="navigation-buttons">
<a href="3.1.html" class="button">⬅ Назад</a>
<a href="3.3.html" class="button">Вперёд ➡</a>
</div>
</body>
</html>