Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС 13-16.docx
Скачиваний:
1
Добавлен:
28.08.2019
Размер:
161 Кб
Скачать
☆

16. Мультизадачные ос. Понятие процесс и поток.

Операционная система Windows является мультизадачной, т.е. она способна параллельно выполнять два или более программных приложений Windows. Пример 12.1. В мультизадачном режиме может выполняться фоновая задача программы почтовой связи - пересылка большого файла от какого-либо почтового сервера в компьютер, в то время как в окне переднего плана выполняется другая задача - подготовка письма в текстовом процессоре. В мультизадачном режиме каждой задаче поочередно выделяется какая-то доля процессорного времени. Поскольку процесс переключения идет очень быстро, а выделяемые задачам доли процессорного времени достаточно малы, то для пользователя создается впечатление одновременного выполнения задач. Различают два типа мультизадачное кооперативную (непревентивную или непре-емптивную) и преемптивную (превентивную, с разделением времени). * При кооперативном мультизадачном режиме, как, например, в Windows, операционная система не выполняет полноценный контроль за тем, как отдельные задачи распределяют ресурсы. Момент передачи управления системе здесь зависит от хода выполнения задачи. Таким моментом должен быть системный вызов, т.е. обращение к системе за какой-либо услугой, или системное событие (окончание ввода-вывода на внешнее устройство и пр.). Фоновым задачам дается время обработки при простое приоритетной задачи (ожидание нажатия клавиши и пр.). * При преемпт ивном мультизадачном режиме, как, например, в OS/2 или Windows NT, каждая задача получает фиксированный квант времени процессора. По истечении этого кванта времени система вновь получает управление, чтобы выбрать другую задачу для активизации. Впрочем, если возникает системное событие (завершение ввода-вывода) или задача обращается к системе до истечения ее кванта времени, то это также служит причиной передачи управления системе и последующего переключения задач.  Для реализации мультизадачного режима Windows 3.1 использует основные ресурсы компьютера (процессор, оперативную память и программы) как разделяемые ресурсы, т.е. предоставляет их для совместного использования сразу нескольким приложениям (программам).

Процессы и потоки

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

  • Процесс (более крупная единица работы).

  • Поток (нить или тред) – более мелкая единица работы, которую требует для своего выполнения процесс.

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

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

Для повышения быстродействия процессов есть возможность задействовать внутренний параллелизм в самих процессах.

Например, некоторые операции, выполняемые приложением, могут требовать для своего исполнения достаточно длительного использования ЦП. В этом случае при интерактивной работе с приложением пользователь вынужден долго ожидать завершения заказанной операции и не может управлять приложением до тех пор, пока операция не выполнится до самого конца. Такие ситуации встречаются достаточно часто, например, при обработке больших изображений в графических редакторах. Если же программные модули, исполняющие такие длительные операции, оформлять в виде самостоятельных «подпроцессов» (потоков), которые будут выполняться параллельно с другими «подпроцессами», то у пользователя появляется возможность параллельно выполнять несколько операций в рамках одного приложения (процесса).

Можно выделить следующие отличия потоков от процессов:

  • ОС для потоков не должна организовывать полноценную виртуальную машину.

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

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

Главное, что обеспечивает многопоточность, - это возможность параллельно выполнять несколько видов операций в одной прикладной программе. За счет чего реализуется эффективное использование ресурсов ЦП, а суммарное время выполнения задач становится меньше.

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