з

К предыдущей странице

л

К предыдущей главе

о

К следующей главе

и

К следующей странице


1.Общие положения

1.1.Управление процессами

Центральной частью ОС является ядро. BOC UNIX написано в основном на языке СИ и занимает примерно 10% программного кода всей системы.

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

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


рис.1 Образ памяти

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


рис.2. Таблицы управления процессом.

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

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

  • состояние регистров;
  • дискрипторы (описатели) открытых файлов;
  • данные для расчетов за использование машины;
  • область рабочих данных;
  • стек для системной фазы выполнения процесса.

Сам процесс к этому сегменту адресоваться не может. Когда процесс не активен, система хранит информацию о процессе в таблице процессов. В ней содержится имя процесса, расположение его сегментов и информация для планировщика.

Сегмент стека (рис.1) начинается со старшего адреса в виртуальном адресном пространстве и растет вверх по мере занесения в него информации при вызовах подпрограмм и прерываниях.


з

К предыдущей странице

л

К предыдущей главе

о

К следующей главе

и

К следующей странице