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

Структурная схема ядра.

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

В любой ОС процессы могут быть:

1) активными;

2) пассивными (куда входят готовые к выполнению и ожидающие).

         
   
пассивные
 
 
 
   

 


 


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

Реентерабельность – повторная входимость.

Если критический ресурс – программный код (подпрограмма), то все просто (создаются ее копии).

А если критический ресурс – физическое устройство, то здесь могут возникнуть проблемы.

Также реентерабельными могут быть и прерывания (как DOS, так и BIOS). Здесь тоже могут возникнуть серьезные трудности.

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

Диспетчер решает вопрос об очередности активности процессов. Иными словами, занимается переключением задач по времени.

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

На уровне пользователя решается вопрос о том, какие процессы необходимо запускать.

 

1) без переключения контекста или выполнения до конца;

2) с переключением (близко к разделению времени);

а) с постоянным шагом (размер тика не меняется);

б) с переменным шагом (размер тика меняется, соответственно).

 

Смена размера тика необходима, в частности, при использовании приоритетов.

 

3) с приоритетом;

а) постоянный;

б) динамический.

 

Значения очередей следующее:

- позволяет упорядочить доступ к ресурсам в режиме FIFO (с учетом приоритетов);

- позволяет обращаться к процессам на абстрактном уровне.

 

Содержание дескриптора процессов:

1. имя процесса;

2. состояние ЭВМ (все регистры, состояния памяти процесса);

3. данные о состоянии процесса (т.е. он готовый, активный или блокированный);

4. данные для планирования (указ_очередь, в которой находится процесс, указ_на_сам_проц, указ_след_проц, указ_пред_проц);

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

 

Ядро управляется 2-умя способами:

1) прерываниями (с физического низкого уровня);

2) примитивами (с высокого уровня).