Стратегия планирования.
Структурная схема ядра.
Состояния процессов.
В любой ОС процессы могут быть:
1) активными;
2) пассивными (куда входят готовые к выполнению и ожидающие).
| ||||
![]() | ||||
![]() |
Если разным процессам необходим один и тот же ресурс, то этот ресурс называется критическим. Код программы, на котором осуществляется вход в критический ресурс, называется критическим участком.
Реентерабельность – повторная входимость.
Если критический ресурс – программный код (подпрограмма), то все просто (создаются ее копии).
А если критический ресурс – физическое устройство, то здесь могут возникнуть проблемы.
Также реентерабельными могут быть и прерывания (как DOS, так и BIOS). Здесь тоже могут возникнуть серьезные трудности.
Метод взаимного исключения – если программа работает с критическим участком, то она работает с ним до самого конца, и никакая другая программа ей не может помешать. Следовательно, этот метод работает против систем разделения времени.
Диспетчер решает вопрос об очередности активности процессов. Иными словами, занимается переключением задач по времени.
В курсовой работе вдобавок к диспетчеру будет еще необходим и планировщик, который будет рассматривать, какие процессы можно допустить к борьбе за процессор.
На уровне пользователя решается вопрос о том, какие процессы необходимо запускать.
1) без переключения контекста или выполнения до конца;
2) с переключением (близко к разделению времени);
а) с постоянным шагом (размер тика не меняется);
б) с переменным шагом (размер тика меняется, соответственно).
Смена размера тика необходима, в частности, при использовании приоритетов.
3) с приоритетом;
а) постоянный;
б) динамический.
Значения очередей следующее:
- позволяет упорядочить доступ к ресурсам в режиме FIFO (с учетом приоритетов);
- позволяет обращаться к процессам на абстрактном уровне.
Содержание дескриптора процессов:
1. имя процесса;
2. состояние ЭВМ (все регистры, состояния памяти процесса);
3. данные о состоянии процесса (т.е. он готовый, активный или блокированный);
4. данные для планирования (указ_очередь, в которой находится процесс, указ_на_сам_проц, указ_след_проц, указ_пред_проц);
5. сведения о потомках и родителях (сведения о том, из какого процесса был запущен данный процесс и для какого из процессов он является родителем).
Ядро управляется 2-умя способами:
1) прерываниями (с физического низкого уровня);
2) примитивами (с высокого уровня).