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

Обычно процесс создается другим процессом вызовом Win32-функции CreateProcess. Создание процесса осуществляется в несколько этапов: 1) На диске отыскивается нужный файл-образ, после чего создается объект "раздел" памяти для проецирования на адресное пространство нового процесса (kernel32.dll); 2) Выполняется обращение к системному сервису NtCreateProcess для создания объекта "процесс". Формируются блоки EPROCESS, KPROCESS и блок переменных окружения PEB. Менеджер процессов инициализирует в блоке процесса маркер доступа (копируя аналогичный маркер родительского процесса), идентификатор и другие поля; 3) Создание первичного потока. (сервис NtCreateThread, библиотека kernel32.dll); 4) kernel32.dll посылает подсистеме Win32 сообщение, которое содержит информацию, необходимую для выполнения нового процесса. Данные о процессе и потоке помещаются, в список процессов и список потоков данного процесса, затем устанавливается приоритет процесса, создается структура, используемая частью Win32, которая работает в режиме ядра, и т.д.; 5) запускается первичный поток, для чего формируются его начальный контекст и стек, и выполняется запуск стартовой процедуры потока режима ядра KiThreadStartup. После этого стартовый код из библиотеки C/C++ передает управление функции main() запускаемой программы.

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

Было предложено организовать, так называемый, мультипрограммный (мультизадачный, многозадачный) режим работы вычислительной системы. Суть его заключается в том, что пока одна программа (один процесс или задача) ожидает завершения очередной операции ввода/вывода, другая программа (другая задача) может быть поставлена на решение.

  1. Стратегии планирования процессов.

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

В большинстве операционных систем универсального назначения планирование осуществляется динамически (on-line), то есть решения принимаются во время работы системы на основе анализа текущей ситуации. ОС работает в условиях неопределенности — потоки и процессы появляются в случайные моменты времени и также непредсказуемо завершаются. Динамические планировщики могут гибко приспосабливаться к изменяющейся ситуации и не используют никаких предположений о мультипрограммной смеси. Для того чтобы оперативно найти в условиях такой неопределенности оптимальный в некотором смысле порядок выполнения задач, операционная система должна затрачивать значительные усилия.

Другой тип планирования — статический — может быть использован в специализированных системах, в которых весь набор одновременно выполняемых задач определен заранее, например в системах реального времени. Планировщик называется статическим (или предварительным планировщиком), если он принимает решения о планировании не во время работы системы, а заранее (off-line).