Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Процессы-ресурсы - теория.doc
Скачиваний:
14
Добавлен:
20.08.2019
Размер:
894.46 Кб
Скачать

Операционная система

П роцесс 1 Процесс 2 . . . Процесс n

Поток 1 Поток2 ... Поток P

ЦП ЦП ЦП ЦП ЦП

ВС

Рис.2.1. Иерархия процессов в ВС

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

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

В современных ОС (например, OS/2, Windows NT, Windows 95, Novell NetWare, UNIX, UnixWare) поддерживается возможность разбиения каждой решаемой задачи на несколько потоков или нитей (threads). Поток можно упрощенно представить себе как подзадачу.

Процесс в этих операционных системах обычно определяется как “экземпляр” (копия) выполняемой программы, для размещения кода и данных которой отводится память (например, в Win32 процессу отводится 4 Гб адресного пространства). Таким образом, процессы не могут разделять между собой одну и ту же область памяти. Каждый процесс представляет собой самостоятельный объект и изолирован от других процессов. Это защищает процессы от несанкционированного вмешательства со стороны других процессов.

В отличие от своих аналогов в MS-DOS и 16-битной Windows, процессы в перечисленных выше операционных системах, поддерживающих возможность разработки многопотоковых приложений, инертны, то есть эти процессы сами по себе ничего не исполняют, они просто “владеют” своим адресным пространством, содержащим код и данные выполняемой программы приложения. Кроме того, код и данные динамически загружаемых библиотек (если они используются процессами) также могут размещаться в адресном пространстве этих процессов. Помимо адресного пространства, процессам принадлежат такие ресурсы, как файлы, динамические области памяти.

Последовательность выполнения кода внутри процесса описывается потоками. Всякий раз при инициализации процесса система создает его первичный поток (primary thread). Первичный поток отвечает за инициализацию процесса, обработку системных сигналов и событий. Этот поток “живет” до того момента, когда управление не будет возвращено операционной системе для завершения процесса. Во время своего выполнения потоки способны создавать дополнительные потоки. Таким образом, внутри одного процесса может быть создано несколько потоков. Многопотоковые приложения позволяют добиться минимальных простоев процессора, а значит, сделать выполнение приложений более эффективным.

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

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