В КУРСЕ?

Разбираемся в теме

Операционная система: как приложения делят ресурсы компьютера

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

Программа, процесс и поток

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

Почему кажется, что всё работает одновременно

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

Память приложения и сохранённые данные

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

Файлы, устройства и границы доступа

Для чтения файла или взаимодействия с устройством приложение обращается к возможностям операционной системы. Система учитывает права доступа и передаёт работу соответствующим подсистемам, включая драйверы. Файловая система организует имена, каталоги и сведения о размещении данных. Название файла удобно человеку, но внутри работа включает больше шагов, чем поиск строки с этим названием. Буферизация позволяет не выполнять каждую маленькую операцию отдельно. При этом запись, закрытие файла и подтверждение долговременного хранения не всегда являются одним событием. Корректное приложение должно учитывать ошибки на всём пути сохранения.

Попробуйте на практике

Проследите работу знакомого текстового редактора на безопасном учебном документе.

  1. Создайте документ с двумя предложениями и сохраните его в отдельной учебной папке.
  2. Откройте штатное средство просмотра процессов и найдите процессы редактора, не завершая их.
  3. Добавьте текст, сохраните файл и запишите, какие ресурсы могли участвовать: процессор, память, накопитель, интерфейс.
  4. Закройте редактор обычным способом, вновь откройте файл и проверьте наличие сохранённого текста.

Как проверить результат. Вы можете объяснить разницу между файлом и процессом, назвать пример ожидания ввода-вывода и показать, что сохранённый документ существует после завершения редактора.

Частые вопросы

Почему у одного браузера много процессов?

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

Высокая загрузка памяти всегда означает неисправность?

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

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

Зарегистрируйтесь, чтобы уточнить возможность доступа к этому материалу

Зарегистрироваться
← К списку материалов