Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!!!ГОСы информатика и вычислительная техника.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.93 Mб
Скачать
  1. Понятие процесса и потока в ос.

Понятия «процесс» и «поток»

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

Итак, в чем же состоят принципиальные отличия в понятиях «процесс» и «поток»?

Очевидно, что любая работа вычислительной системы заключается в выполнении некоторой программы. Поэтому и с процессом, и с потоком связывается определенный программный код, который для этих целей оформляется в виде исполняемого модуля. Чтобы этот программный код мог быть выполнен, его необходимо загрузить в оперативную память, возможно, выделить некоторое место на диске для хранения данных, предоставить доступ к устройствам ввода-вывода, например к последовательному порту для получения данных по подключенному к этому порту модему; и т. д. В ходе выполнения программе может также понадобиться доступ к информационным ресурсам, например файлам, портам TCP/UPD, семафорам. И, конечно же, невозможно выполнение программы без предоставления ей процессорного времени, то есть времени, в течение которого процессор выполняет коды данной программы.

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

В простейшем случае процесс состоит из одного потока, и именно таким образом трактовалось понятие «процесс» до середины 80-х годов (например, в ранних версиях UNIX) и в таком же виде оно сохранилось в некоторых современных ОС. В таких системах понятие «поток» полностью поглощается понятием «процесс», то есть остается только одна единица работы и потребления ресурсов — процесс. Мультипрограммирование осуществляется в таких ОС на уровне процессов.

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

  1. Понятие процессов. Виды процессов.

Процесс (задача) – представляет собой базовое понятие современных ОС и часто кратко определяется как программа в стадии выполнения. Программа – это статический объект, представляющий собой файл с кодами и данными, процесс является динамическим объектом, который возникает в операционной системе после того, как пользователь или ОС решает запустить программу на выполнение. Во многих современных ОС для обозначения минимальной единицы работы ОС используют термин “нить”, или “поток”, при этом изменяется суть термина “процесс”. Подробнее об этом будет рассказано в юните 2 “Управление процессами”. Чтобы процесс выполнялся, ОС должна назначить ему область оперативной памяти, в которой будут размещены коды и данные процесса, а также предоставить необходимое количество процессорного времени и доступ к требуемым ресурсам других типов. В информационные структуры процесса часто включается дополнительная информация, характеризующая историю пребывания процесса в системе, его текущее состояние, степень привилегированности процесса.

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

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

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

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

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

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

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