Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OSSO.docx
Скачиваний:
9
Добавлен:
21.08.2019
Размер:
175.27 Кб
Скачать

Организация вычислительного процесса ос. Концепция процессов и потоков.

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

Все функционирующее на компьютере ПО, включая ОС, можно представить как набор процессов.

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

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

Мультипрограммирование (МП) – такой способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняется несколько программ. Для поддержки МП ОС должна иметь внутренние единицы работы, между которыми будет разделяться процессорное время и другие ресурсы ЭВМ.

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

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

Каждый процесс начинается с одного потока, но новые потоки могут порождаться процессом динамически.

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

У каждого потока 2 стека: один - в режиме пользователя, другой – в режиме ядра. Также у каждого потока есть контекст, в котором сохраняются его регистры, когда поток временно не работает, частная область его локальных переменных и собственных маркеров доступа. Когда поток прекращает работу, он завершает своё существование. Процесс завершится, когда прекратит свое существование последний активный поток.

Мультипрограммирование.

Формы многопрограммной системы ОС:

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

т" ≈ 0,02

  • Системы разделения времени - предоставляет возможность интерактивной работы сразу с несколькими приложениями. Это обеспечивается средствами ОС, которая принудительно периодически приостанавливает приложения, не дожидаясь, когда они самостоятельно освободят процессор. Всем приложениям выделяются кванты времени процессора (t≈0,02). Если время кванта достаточно небольшое, то у всех складывается впечатление единоличной работы.

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

  1. управления техническими объектами, такими как спутник, самолёт и т.д.

  2. Технологические процессы (доменный процесс)

  3. Системой обслуживания разного рода: терминальная покупка билетов, оплата покупок…и т.д.

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

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

Мультипроцессорные системы:

А. Симметричная архитектура.

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

Масштабируемость (возможность увеличения числа процессов) ограничена, так как все они используют одну и ту же оперативную память и как следствие должны располагаться в одном корпусе. Такая схема называется масштабируемостью по вертикали, и ограничивает число процессоров диапазоном от 4 до 8 (масштабирование по вертикали).

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

Данная схема позволяет легко реализовать симметричное мультипроцессирование с использованием единой ОС.

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

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

Б. Ассиметричная архитектура.

Процессоры могут быть различными как и по характеристикам, так и по функциональной роли. Один только за вычисление, другой может отвечать только за ввод-вывод и др. Это ведёт к структурным различиям во фрагментах системы, содержащих разные типы процессоров с разными целевыми задачами. Это позволяет монтировать разные процессоры в разных корпусах, то есть требования единого корпуса не является обязательным. Масштабирование называют горизонтальным, а мультипроцессорную систему – кластерной. Управление может быть реализовано только по ассиметричному принципу «ведущий - ведомый», то есть ОС загружается на один процессор, который управляет всеми остальными и распределяет все ресурсы системы.

Управления процессами и потоками.

Одной из основных подсистем любой современной ОС является подсистема управления процессами и потоками.

Её функции:

● создание процессов и потоков.

● обеспечение процессов и потоков необходимыми ресурсами.

● изоляция процессов.

● планирования выполнения процессов и потоков.

● диспетчеризация потоков.

● организация межпроцессного взаимодействия.

● синхронизация.

● завершение и уничтожение процессов и потоков.

Независимо от способа создания новый процесс формируется одинаково: текущий процесс выполняет системный запрос на создание нового процесса. Подсистема управления процессами отвечает за обеспечение их необходимыми ресурсами.

ОС имеет в памяти специальные информационные структуры, в которые записывает, какие ресурсы выделены каждому процессу. Ресурсы могут быть предоставлены в единоличное или совместное пользование. Часть ресурсов выделяется процессу при его создании, а часть - динамически по запросам в период выполнения. Ресурсы могут быть выделены процессу на весь период жизни или на какое-то определенное время.

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

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

Планирование потоков осуществляется на основе информации, хранящейся в описателях процессов и потоков. Во внимание принимается приоритет потоков (системный/несистемный, архивный/неархивный и т.д.), время их ожидания в очереди, суммарное время выполнения и интенсивность обращения к устройствам ввода-вывода и др.

Диспетчеризация заключается в реализации найденного в результате клонирования решения, то есть переключение процессора с одного потока на другой.

Диспетчеризация проходит в 3 этапа:

  1. Сохранение контекста текущего потока.

  2. Загрузка контекста потока, выбранного на выполнение в результате клонирования.

  3. Запуск нового потока на выполнение.

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

Завершение процессов происходит благодаря одному из событий:

  • Обычный выход, связанный с естественным окончанием процесса решения задачи;

  • Выход по ошибке;

  • Выход по неисправимой ошибке;

  • Уничтожение другим процессом (например, вирусом).

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]