Состояние процессов

Преимущества и неудобства буферного кеша

  • Использование буферов позволяет внести единообразие в процедуру обращения к диску, поскольку ядру нет необходимости знать причину ввода-вывода. Вместо этого, ядро копирует данные в буфер и из буфера, невзирая на то, являются ли данные частью файла, индекса или суперблока.
  • Система не накладывает никаких ограничений на выравнивание информации пользовательскими процессами, выполняющими ввод-вывод.
  • Благодаря использованию буферного кеша, сокращается объем дискового трафика и время реакции и повышается общая производительность системы.
  • Алгоритмы буферизации помогают поддерживать целостность файловой системы, так как они сохраняют общий, первоначальный и единственный образ дисковых блоков, содержащихся в кеше. Если два процесса одновременно попытаются обратиться к одному и тому же дисковому блоку, алгоритмы буферизации параллельный доступ преобразуют в последовательный, предотвращая разрушение данных.
  • Сокращение дискового трафика является важным преимуществом с точки зрения обеспечения хорошей производительности или быстрой реакции системы, однако стратегия кеширования также имеет некоторые неудобства. Так как ядро в случае отложенной записи не переписывает данные на диск немедленно, такая система уязвима для сбоев, которые оставляют дисковые данные в некорректном виде.
  • Использование буферного кеша требует дополнительного копирования информации при ее считывании и записи пользовательскими процессами. Процесс, записывающий данные, передает их ядру и ядро копирует данные на диск; процесс, считывающий данные, получает их от ядра, которое читает данные с диска. При передаче большого количества данных дополнительное копирование отрицательным образом отражается на производительности системы.

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

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

В рамках одного процесса может выполняться один или несколько потоков или нитей.

Некоторые системы представляют и более крупные структурные единицы, чем процесс. Например, в Unix существуют группы процессов, которые используются для реализации логического объединения процессов в задания.