Управление ресурсами ОС и процессы
| English | Русский |
|---|---|
| process/ˈprəʊses/ | процессом |
| scheduler/ˈʃedjʊlə/ | планировщик |
| multi-tasking/ˈmʌlti ˈtæskɪŋ/ | многозадачность |
| spooling/ˈspuːlɪŋ/ | буферизация вывода/ввода |
| caching/ˈkæʃɪŋ/ | кэширование |
| round robin/raʊnd ˈrɒbɪn/ | по кругу |
| context switch/ˈkɒntekst swɪtʃ/ | переключение контекста |
| process control block/ˈprəʊses kənˈtrəʊl blɒk/ | блок управления процессом |
Почему мышь все еще двигается, когда всё зависло
- Программа зависла. Окно не перерисовывается, индикатор загрузки останавливается, ничего не реагирует. Однако курсор мыши все еще плавно движется по экрану точно так же, как прежде.
- Операционная система сообщает вам об этом: машина не зависла, завис один процесс. Планировщик все еще выделяет ей фрагменты процессорного времени, а зависшая программа просто не использует их для чего-то полезного.
- Все ресурсы машины разделяются таким образом: процессор — по времени, память — по пространству, принтер — через очередь.
- Этот урок посвящен тому, как операционная система максимально эффективно использует ресурсы и управляет процессом от его создания до завершения.
Максимальное использование ресурсов
- Многозадачность: процессор быстро переключается между процессами, поэтому кажется, что они выполняются одновременно, хотя в любой момент времени выполняется только один.
- Страничная организация памяти (Paging): данные перемещаются между оперативной памятью и диском, что позволяет иметь открытыми больше программ, чем физическая память позволяет хранить полностью.
- СPOOLING: вывод для медленного устройства очереди на диск, чтобы процессор не ждал принтер. Кэширование хранит недавно использованные данные в быстрой памяти, чтобы их не нужно было загружать снова.
- Операционная система скрывает все это за пользовательским интерфейсом, командной строкой или графическим интерфейсом (GUI).
Многозадачность позволяет нескольким программам казаться работающими одновременно благодаря:
ОС быстро переключает единственный процессор между процессами, создавая впечатление, что они все развиваются параллельно.
Разбор примера: почему SPOOLING полезен
- Объясните, как SPOOLING улучшает использование ресурсов компьютера. [3]
- Принтер работает в тысячи раз медленнее процессора, поэтому программа, отправляющая вывод напрямую, вынуждена была бы ждать, а процессор простаивал бы без дела.
- При использовании SPOOLING вывод быстро записывается в очередь на диск, и программа продолжает работу немедленно.
- Отдельный процесс затем подает данные в принтер с его собственной скоростью, несколько задач могут стоять в очереди, пока процессор занимается другой работой. Назовите медленное устройство, очередь и то, что делает процессор вместо этого.
Spooling помогает системе, потому что:
Spooling буферизирует печатные задания на диске, чтобы быстрый процессор не тормозил из-за медленного принтера.
Какие методы помогают ОС максимально эффективно использовать ресурсы? Выберите все подходящие варианты.
Разделение времени, очереди для медленных устройств и хранение часто используемых данных близко к процессору. Удаление ожидающих процессов привело бы к потере данных пользователя, а не к улучшению утилизации.
Процессы и планировщик
- Процесс — это программа, находящаяся в выполнении: его код, текущее состояние, память и открытые файлы. Программа на диске не является процессом; процессом является запущенная программа.
- Планировщик решает, какой готовый процесс выполнится следующим и как долго. Его цели — держать процессор занятым, быстро реагировать на действия интерактивных пользователей и быть справедливым.
- По кругу (Round robin) выделяет каждому готовому процессу фиксированный тайм-слайс, после чего отправляет его в конец очереди: просто, справедливо и отзывчиво. Другие политики — по порядку поступления (FCFS), кратчайшая задача первой (SJF) и кратчайшее оставшееся время.

У всех есть очередь, никто не удерживает процессор надолго
Планировщик Round-robin предоставляет каждому готовому процессу фиксированный временной квант, после чего перемещает его в конец очереди — обеспечивая справедливость и отзывчивость.
Равные временные кванты по очереди предотвращают захват процессора одним процессом, поэтому интерактивные программы остаются отзывчивыми.
Что такое процесс?
Файл на диске — это программа; после загрузки и запуска со своим собственным состоянием она становится процессом.
Состояния процесса
- New (Новый): создается. Ready (Готовый): может выполняться, ожидает только процессора. Running (Выполняемый): выполняется в данный момент. Blocked (Блокированный): ждет чего-либо другого, обычно ввода или вывода. Terminated (Завершенный): завершил работу.
- Переходы между состояниями именно то, о чем спрашивают на экзаменах. Из running в ready при истечении тайм-слайса. Из running в blocked при запросе ввода/вывода (I/O). Из blocked в ready при завершении I/O. Из ready в running, когда планировщик выбирает его.
- Обратите внимание на асимметрию: заблокированный процесс никогда не возвращается прямо в выполнение. Он присоединяется к очереди готовых и ждет своей очереди.

Пять состояний и причины каждой стрелки
Соотнесите каждое состояние процесса с его значением.
Процесс циклично проходит состояния: готов → выполняет → (ожидание) → готов, пока не завершится.
Разбор примера: отслеживание процесса
- Процесс выполняется, когда просит прочитать файл. Опишите, что с ним происходит.
- Он переходит из running в blocked, так как не может продолжить работу, пока данные не поступят, и планировщик немедленно отдает процессор другому готовому процессу, вместо того чтобы ждать.
- Когда диск заканчивает работу, процесс переходит из blocked в ready. Он не возобновляется немедленно; он присоединяется к очереди готовых.
- Позже планировщик выбирает его, и он переходит из ready в running, продолжая работу ровно с того места, где остановился.
Жизненный цикл процесса
Процесс движется по кругу цикла. Он выполняется только тогда, когда планировщик выбирает его; необходимость ввода/вывода переводит его в состояние ожидания (blocked), а истечение временного кванта возвращает обратно в готовность (ready) — снова и снова, пока он не завершится.
Выполняющийся процесс запрашивает чтение файла. Расставьте происходящее с ним по порядку.
Ожидающий процесс никогда не возвращается непосредственно в выполнение: он возвращается в очередь готовности и ждет своей очереди.
Контекстное переключение
- Чтобы изменить выполняемый процесс, операционная система сохраняет состояние текущего процесса, его регистры, счетчик команд и статус в его блоке управления процессом (PCB), а затем загружает состояние следующего процесса из соответствующего блока.
- Это называется контекстным переключением. Оно имеет реальную стоимость: во время него процессор выполняет служебные операции, а не работу пользователя.
- Поэтому тайм-слайс представляет собой компромисс. Слишком длинный — интерактивные программы кажутся медленными; слишком короткий — машина тратит время на переключения вместо вычислений.
Контекстное переключение включает в себя:
ОС сохраняет регистры/счетчик команд выполняемого процесса в его PCB и загружает данные следующего процесса — небольшой накладные расходы при каждом переключении.
Во время контекстного переключения регистры и счетчик команд процесса сохраняются в его ____.
Затем состояние следующего процесса загружается из его собственного блока. Сохранение и загрузка — реальная работа, именно это занимает время при переключении.
Прерывания и ядро
- Ядро (Kernel), основа операционной системы, фактически выполняет эту задачу: оно реагирует на прерывания от устройств и программ, а прерывание — это механизм возврата управления операционной системе от выполняемого процесса.
- Прерывание таймера в конце тайм-слайса делает возможным preemptive scheduling (предварительное планирование); без него программа, которая никогда не уступала бы процессор, удерживала бы его навсегда.
- Вот ответ на начальную загадку: зависшая программа удерживает процессор не дольше своего тайм-слайса, поэтому мышь продолжает двигаться.
Потерянные баллы
- Процесс — это программа в исполнении, а не файл на диске.
- Из blocked в ready, никогда не из blocked сразу в running. Планировщик сам решает, когда он снова будет выполнен.
- Контекстное переключение сохраняет и восстанавливает состояние через блок управления процессом, и это занимает время.
- Многозадачность означает, что процессы чередуются так быстро, что они кажутся одновременными, а не что они действительно выполняются одновременно на одном ядре.
Вы поняли
- Операционная система максимизирует использование ресурсов благодаря многозадачности, страничной организации памяти (paging), SPOOLING в очередь на диск и кэшированию.
- Процесс — это программа в исполнении; планировщик выбирает следующий готовый, при round robin каждому выделяется фиксированный тайм-слайс.
- Состояния new, ready, running, blocked, terminated: истечение тайм-слайса переводит running в ready, запрос I/O переводит его в blocked, а завершение I/O возвращает его в ready.
- Контекстное переключение сохраняет и восстанавливает состояние через блок управления процессом и требует времени, поэтому длина слайса является компромиссом.