Состояния потока

UC выполняет планирование потоков, принимая во внимание их состояние вмультипрограммной системе поток может находиться в одном из трех основ­ных состояний:

· выполнение — активное состояние потока, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;

· ожидание — пассивное состояние потока, находясь в котором, поток заблоки­рован по своим внутренним причинам (ждет осуществления некоторого со­бытия, например завершения операции ввода-вывода, получения сообщения от другого потока или освобождения какого-либо необходимого ему ресурса);

· готовность — также пассивное состояние потока, но в этом случае поток за­блокирован в связи с внешним по отношению к нему обстоятельством (имеет все требуемые для него ресурсы, готов выполняться, однако процессор занят выполнением другого потока).

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

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

Рассмотрим типичный граф состояния потока (рис. 4.3).

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

Эти потоки образуют очереди соответственно ожидающих и готовых потоков. Очереди потоков организуются путем объединения в списки описателей отдельных потоков. Таким образом, каждый описатель потока, кроме всего прочего, содержит по крайней мере один указатель на другой описатель, соседствующий с ним в очереди. Такая организация очередей позволяет легко их переупорядочивать, включать и исключать потоки, переводить потоки из одного состояния в другое. Если предположить, что на рис. 4.4 показана очередь готовых потоков, то заплани­рованный порядок выполнения выглядит так: А, В, Е, D, С.

Домашнее задание: § конспект.

Закрепление материала:

Ответьте на вопросы:

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

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

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

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

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

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

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

А) Т<10; В) 10<Т<20; С) 20<Т<30; D)Т>30.

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

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

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

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

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

11. Объясните функции подсистема управ­ления процессами и потоками, за что она ответственна?

12. Для чего необходима синхронизация потоков?

13. В чем суть процесса, или задачи и когдаисполь­зуют термины «поток», или «нить».

14. Для чего производится изоляция одного процесса от другого?

15. Что такое виртуальное адресное пространство процесса?

16. Какие функции выполняет операционная система для процессов, суть конвейера системы?

17. Поясните механизм многопо­ точной обработки (multithreading).

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

19. Что значит - Создать процесс? Что в себя включает эта процедура?

20. Дайте определение термину ПЛАНИРОВАНИЕ ПОТОКА.

21. Какие задачи включает в себя планирование потоков?

22. Планирование осуществляется динамически (on-line), и статически. Опишите оба процесса.

23. В чем заключается диспетчеризация?

24. В каком состоянии может находиться поток в мультипрограммной системе? Дайте расшифровку каждому.

Литература:

1. Богумирский Б. Энциклопедия Windows 98 (второе издание). — СПб.: Питер, 1999,896с.

2. Борланд Р. Знакомство с Windows 98. — М.: Microsoft Press Русская редакция,

3. 1997,376с.

4. Борланд Р. Эффективная работа с Word 97. - СПб.: Питер, 1998,960 с.

5. Коварт Р., Уотерс Б. Windows NT Server 4: Учебный курс. — СПб.: Питер, 1999, 448с.

6. Мэтьюз М. Windows 98: Книга ответов. - СПб.: Питер, 1999, 464 с.

7. Немнюгин С. Pascal: Учебный курс. — СПб.: Питер, 1999.

8. Новейший самоучитель работы на компьютере. Под ред. Симоновича С. — М.: Десс; Инфорком-Пресс, 1999,656 с.

9. Нортон П., Мюллер Дж. Windows 98: энциклопедия системных ресурсов. — СПб.: BHV-Санкт-Петербург, 1998,578 с.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: