Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС шпоры 1.docx
Скачиваний:
24
Добавлен:
25.09.2019
Размер:
876.45 Кб
Скачать
  1. Понятие пространственной и временной локальности

В реальных системах вероятность попадания в кэш составляет примерно 0,9. Высокое значение вероятности нахождения данных в кэш-памяти связано с наличием у данных объективных свойств: пространственной и временной локальности.

  • Пространственная локальность. Если произошло обращение по некоторому адресу, то с высокой степенью вероятности в ближайшее время произойдет обращение к соседним адресам.

  • Временная локальность. Если произошло обращение по некоторому адресу, то следующее обращение по этому же адресу с большой вероятностью произойдет в ближайшее время.

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

  1. Понятие процесса и потока. Создание процессов и потоков. Управляющие структуры процессов и потоков.

Понятие процесса

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

Понятие потока

Потоки – последовательности команд.

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

Существует две основных категории реализации потоков:

Пользовательские потоки – потоки, реализуемые через специальные библиотеки потоков.

Потоки уровня ядра – потоки, реализуемые через системные вызовы.

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

Основное отличие процесса от потока заключается в способе использования системных ресурсов. Дочерний процесс практически независим от родительского, для него системой выделяется отдельное адресное пространство, и он на равных правах с родительским процессом «конкурирует» за процессорное время. При этом можно уничтожить родительский процесс, не затронув дочерний, который может выполняться и после завершения родительского процесса. В отличие от дочернего процесса, поток, порожденный данным процессом, полностью зависим от процесса и завершение процесса влечет уничтожение всех созданных им потоков, поскольку происходит освобождение системных ресурсов, выделенных для этого процесса. Еще одним отличием является невозможность изменить права доступа для потока, тогда как дочерний процесс в редких случаях (например, при смене пароля для входа в систему) может обладать правами доступа отличными от прав родительского процесса.

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

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

Управляющие структуры процессов

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

• идентификатор процесса (PID);

• тип (или класс) процесса, который определяет для супервизора некоторые правила предоставления ресурсов;

• приоритет процесса, в соответствии с которым супервизор предоставляет ресурсы (в рамках одного класса процессов в первую очередь, обслуживаются более приоритетные процессы);

• переменную состояния, которая определяет, в каком состоянии находится процесс (готов к работе, исполняется, ожидает устройства ввода-вывода и т.д.);

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

• информацию о ресурсах, которыми процесс владеет и/или имеет право пользоваться (указатели на открытые файлы, информация о незавершённых операциях ввода-вывода и др.);

• место (или его адрес) для организации общения с другими процессами;

• параметры времени запуска (момент времени, когда процесс должен активизироваться, и периодичность этой процедуры);

• адрес задачи на диске (в случае отсутствия системы управления файлами) в её исходном состоянии и адрес на диске, куда она выгружается из ОП, если её вытесняет другая задача.

Операции над процессами

Изменением состояния процессов занимается ОС, совершая операции над ними.Основные операции над процессами удобно объединить в три пары:

• создание процесса – завершение процесса (одноразовые);

• приостановка процесса (перевод из состояния исполнение в состояние готовность) – запуск процесса (перевод из состояния готовность в состояние исполнение);

• блокирование процесса (перевод из состояния исполнение в состояние ожидание) – разблокирование процесса (перевод из состояния ожидание в состояние готовность).

Необходимо помнить, что существует еще одна (непарная) операция: изменение приоритета процесса