Файл: Лекция 4 Процессы и потоки.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 18.06.2021

Просмотров: 1433

Скачиваний: 9

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

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

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

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

 В зависимости от источника прерывания делятся на три больших класса: 

 внешние прерывания, связанные с сигналами от внешних устройств;

  внутренние прерывания, возникающие в результате ошибок вычислений;

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

 Механизм прерываний поддерживается аппаратными средствами компьютера и программными средствами операционной системы.

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

 Для упорядочивания процессов обработки прерываний все источники прерываний распределяются по нескольким приоритетным уровням, а роль арбитра выполняет диспетчер прерываний ОС. 

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

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



Задачи и упражнения


1. Поясните употребление терминов «программа», «процесс», «задача», «поток», «нить».

2. В чем состоит принципиальное отличие состояний «ожидания» и «готовности» потока, ведь и в том и в другом он ожидает некоторого события?

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

4. В какой очереди (ожидающих или готовых) скапливается большее число процессов:

A) в интерактивных системах разделения времени;

B) в системах пакетной обработки, решающих «счетные» задачи.

5. Известно, что программа А выполняется в монопольном режиме за 10 минут, а программа В — за 20 минут, то есть при последовательном выполнении они требуют 30 минут. Если Т — время выполнения обеих этих задач в режиме мультипрограммирования, то какое из неравенств, приведенных ниже, справедливо?

 А) Т<10; 

 В) 10<Т<20; 

 С) 20<Т<30;

  D) Т>30.

6. Может ли процесс в мультипрограммном режиме выполняться быстрее, чем в монопольном?

7. Чем объясняется потенциально более высокая надежность операционных систем, в которых реализована вытесняющая многозадачность?

8. В каких ОС реализована невытесняющая многозадачность? А вытесняющая многозадачность?

9. При невытесняющем планировании необходимо, чтобы во всех выполняющихся программах были предусмотрены кодовые последовательности, которые передают управление ОС. Эти точки возврата управления прикладной программист должен определить заранее еще до выполнения программы. Можно ли сказать, что в этом случае мы имеем дело со статическим планированием?

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

11. Могут ли быть применены сразу все перечисленные характеристики к одному алгоритму планирования потоков?

 А) вытесняющий, с абсолютными динамическими приоритетами; 

 В) невытесняющий, с абсолютными фиксированными приоритетами; 

 С) невытесняющий, с относительными динамическими приоритетами;

 D) вытесняющий, с абсолютными фиксированными приоритетами, основанный на квантовании с динамически изменяющейся длиной кванта;

 Е) невытесняющий, основанный на квантовании с фиксированной длиной кванта.

12. Для тех вариантов, которые вы считаете возможными, опишите более подробно алгоритм планирования.

13. Являются ли синонимами термины «планирование процессов» w. «диспетчеризация процессов»?


14. Можно ли задачу планирования процессов целиком возложить на приложения?

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

16. Возможно ли существование асимметричной мультипроцессорной ОС для компьютера с симметричной мультипроцессорной архитектурой?

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

18. Представьте себе ОС, разработанную для компьютера, в котором отсутствует система прерываний. Какой алгоритм планирования процессов может быть реализован в такой ОС?

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

 A) Windows NT; 

 В) Net Ware; 

 С) OS/2.

20. Какие события вызывают перепланирование процессов (потоков)?

21. Поясните разницу между программными и аппаратными прерываниями.

22. Что такое вектор прерываний?

23. Какой тип системы прерываний — векторный или опрашиваемый — реализован в процессоре Pentium?

24. Всегда ли прерывание вызывает перепланировку процессов?

25. Опишите механизм обработки прерываний в Windows NT.

26. Какими средствами синхронизации процессов располагает современная ОС?

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

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


77