Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Процессы и потоки в современных ОССодержание книги Поиск на нашем сайте В современной операционной системе одновременно выполняются код ядра (что принадлежит к его разным подсистемам) и код программ пользователя. При этом происходят разные действия: одни программы и подсистемы выполняют инструкции процессора, другие занятые вводом-выводом, еще некоторые ожидают запросы от пользователя или других приложений. Для упрощения управления этими действиями в системе целесообразно выделить набор элементарных активных элементов и определить интерфейс взаимодействия ОС с этими элементами. Если активный элемент системы связать с программой, которая выполняется, мы придем к понятию процесса. Дадим предыдущее определение процесса. Под процессом понимают абстракцию ОС, которая объединяет все необходимое для выполнение одной программы в определенный момент времени. Программа - это некоторая последовательность машинных команд, которая сохраняется на диске, в случае необходимости загружается в память и выполняется. Можно сказать, что во время выполнения программу представляет процесс. Однозначное соответствие между программой и процессом устанавливается только в конкретный момент времени: -один процесс в разное время может выполнять код нескольких программ, -код одной программы могут выполнять несколько процессов одновременно. Для успешного выполнения программы нужны определенные ресурсы. К ним принадлежат: -ресурсы, необходимые для последовательного выполнения программного кода (прежде всего процессорное время); -ресурсы, которые дают возможность сохранять информацию, которая обеспечивает выполнение программного кода (регистры процессора, оперативная память и т.п.). Эти группы ресурсов определяют две составные части процесса: -последовательность выполняемых команд процессора; -набор адресов памяти (адресное пространство), в котором расположенные эти команды и данные для них. Выделение этих частей оправдано еще и тем, что в рамках одного адресного просторную может быть несколько параллельно выполняемых последовательностей команд, которые совместно используют одни и те же самые данные. Необходимость размежевания последовательности команд и адресного пространства подводит к понятию потока. Потоком (іhгеаd) называют набор последовательно выполняемых команд процессора, которые используют общее адресное пространство процесса. Поскольку в системе может одновременно быть много потоков, задача ОС состоит в организации переключения процессора между ними и планирование их выполнения. В многопроцессорных системах код отдельных потоков может выполняться на отдельных процессорах. Теперь можно дать еще одно определение процесса. Процессом называют совокупность одного или нескольких потоков и защищенного адресного пространства, в котором эти потоки выполняются. Защищенность адресного пространства процесса есть его важнейшей характеристикой. Код и данные одного процесса не могут быть прямо прочитанные или перезаписанные другим процессом; таким образом защищаются от многих программных ошибок и попыток несанкционированного доступа. Естественно, что недопустимым будет только прямой доступ (например, запись в память с помощью простой инструкции перенесения данных); обмен данными между процессами принципиально возможный, но для этого должны быть использованы специальные средства, которые называют средствами межпроцессорного взаимодействия. Такие средства более сложные чем прямой доступ и работают медленнее, но при этом обеспечивают защиту от случайных ошибок в случае доступа к данным. В отличие от процессов потоки распоряжаются общей памятью. Данные потока не защищены от доступа к ним других потоков при условии, что все они выполняются в адресном пространстве одного процесса. Это предоставляет дополнительные возможности для разработки приложений, но усложняет программирование. Защищенное адресное пространство процесса задает абстракцию выполнения кода на отдельной машине, а поток обеспечивает абстракцию последовательного выполнения команд на одном выделенном процессоре. Адресное пространство процесса не всегда отвечает адресам оперативной памяти. Например, у него могут отображаться файлы или регистры контроллеров ввода-вывода, а потому запись по определенному адресу в этом пространстве приведет к записи в файл или к выполнению операции ввода-вывода. Такую технологию называют изображением в память (mamory mapping). Модели процессов и потоков Максимально возможное количество процессов (защищенных адресных пространств) и потоков, которые в них выполняются, может варьироваться в разных системах. ♦ В однозадачних системах есть только одно адресное пространство, в котором в каждый момент времени может выполняться один поток. ♦ В некоторых встроенных системах тоже есть одно адресное пространство (один процесс), но в нем разрешенное выполнение многих потоков. В этом случае можно организовывать параллельные вычисления, но защита данных приложения не реализованы. ♦ В системах, подобный традиционным версиям UNIX, допускается наличие многих процессов, но в рамках адресного пространства процесса выполняется только один поток. Это традиционная однопоточная модель процессов. Понятие потока в данной модели не применяют, а используют термин «переключение между процессами», «планирование выполнения процессов», «последовательность команд процесса» и т.п. (здесь под процессом понимают его единый поток). ♦ В большинстве современных ОС (таких, как линия Windows ХР, современные версии UNIX) может быть много процессов, а в адресном пространстве каждого процесса - много потоков. Эти системы поддерживают многопотоковость или реализуют модель потоков. Процесс в такой системе называют многопотоковым процессом. В дальнейшем для обозначения последовательности выполняемых команд будем употреблять термин «поток», за исключением ситуаций, когда будет обсуждаться реализация модели процессов.
|
||
|
Последнее изменение этой страницы: 2017-01-19; просмотров: 400; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.196 (0.005 с.) |