ScholarGate
Ассистент

Управление процессами и потоками

Управление процессами и потоками — это то, как операционная система создает, планирует и уничтожает единицы выполнения — процессы с их собственными адресными пространствами и потоки, которые разделяют одно — и переключает процессор между ними.

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

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

Scope

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

Core questions

  • Какое состояние должна поддерживать операционная система для каждого процесса и потока?
  • Как создаются процессы, и чем потоки отличаются от процессов?
  • Что происходит во время переключения контекста и какова его стоимость?
  • Как процессы взаимодействуют и координируются через адресные пространства?

Key concepts

  • процесс и блок управления процессом
  • состояния процесса и жизненный цикл
  • поток и многопоточность
  • потоки пользовательского уровня против потоков уровня ядра
  • переключение контекста
  • fork и exec
  • межпроцессное взаимодействие
  • изоляция процессов

Key theories

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

Mechanisms

Каждый процесс описывается блоком управления процессом, содержащим его регистры, отображения памяти, открытые файлы и состояние планирования. Система создает процессы (например, с помощью fork и exec), переводит их через состояния (новый, готовый, выполняющийся, ожидающий, завершенный) и переключается между ними, сохраняя один контекст и восстанавливая другой. Потоки разделяют адресное пространство своего процесса, что делает переключение дешевле, но требует синхронизации; межпроцессное взаимодействие использует каналы, сообщения или общую память.

Clinical relevance

Управление процессами и потоками лежит в основе многозадачности в каждой современной системе. Изоляция процессов является краеугольным камнем безопасности и стабильности, потоки обеспечивают отзывчивые и параллельные приложения, а стоимость переключения контекста и межпроцессного взаимодействия формирует дизайн серверов, сред выполнения и параллельного программного обеспечения.

History

Концепция процесса развивалась вместе с системами мультипрограммирования и разделения времени в 1960-х годах, а UNIX установил модель fork/exec и абстракцию процесса, широко используемые сегодня. Потоки были добавлены для использования многопроцессорных систем и улучшения отзывчивости, при этом стандарты, такие как потоки POSIX, формализовали видимую пользователю многопоточность.

Debates

Потоки пользовательского уровня против потоков уровня ядра
Потоки пользовательского уровня дешевы в управлении, но не могут быть независимо запланированы на разных ядрах и блокируют весь процесс при блокирующем вызове, тогда как потоки уровня ядра интегрируются с планировщиком с более высокими накладными расходами; гибридные модели пытаются объединить преимущества.

Key figures

  • Ken Thompson
  • Dennis Ritchie
  • Per Brinch Hansen
  • Abraham Silberschatz
  • Andrew S. Tanenbaum

Related topics

Seminal works

  • silberschatz2018
  • tanenbaum2014os

Frequently asked questions

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

Methods for this concept

Related concepts