Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Классификация ОС в соответствии с особенностями алгоритмов управления ресурсами.





§ Поддержка многозадачности

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

· многозадачные (Unix, OS/2, Windows).

· однозадачные (например, MS-DOS) и

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

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

§ Поддержка многопользовательского режима.

По числу одновременно работающих пользователей ОС можно разделить на:

· однопользовательские (MS-DOS, Windows 3.x);

· многопользовательские (Windows NT, Unix).

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

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

· невытесняющая многозадачность (NetWare, Windows 3.x);

· вытесняющая многозадачность (Windows NT, OS/2, UNIX).

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

Preemptive multitasking - вытесняющая многозадачность - это такой способ, при котором решение о переключении процессора с выполнения одного процесса на выполнение другого процесса принимается планировщиком операционной системы, а не самой активной задачей.

§ Поддержка многопоточности.

Многопоточность (multithreading) – это технология, при которой процесс, выполняющий приложение, разделяется на несколько одновременно выполняемых потоков (threads). Иногда многопоточность также называют многонитевостью, а потоки, соответственно, нитями. Многопоточность оказывается весьма полезной для приложений, выполняющих несколько независимых заданий, которые не требуют последовательного исполнения. В качестве примера такого приложения можно привести сервер базы данных, который одновременно принимает и обрабатывает несколько запросов клиентов. Если в пределах одного и того же процесса обрабатываются несколько потоков, то при переключении между различными потоками непроизводительный расход ресурсов процессора меньше, чем при переключении между разными процессами. Фактически можно сказать, что многопоточность – возможность распараллеливания вычислений в рамках одной задачи на одном процессоре.

§ Многопроцессорная обработка

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

Это потребовало включения в ОС средств поддержки многопроцессорной обработки – мультипроцессирование (multiprocessing). Большинство современных ОС (Windows NT/2000/XP, Solaris, Linux) содержат средства поддержки мультипроцессирования.

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

В асимметричной архитектуре (ASMP - assymetric multiprocessing) процессоры неравноправны. Обычно существует главный процессор (master) и подчиненные (slave), загрузку и характер работы которых определяет главный процессор. Главный процессор распределяет задачи между подчиненными и координирует их работу. ОС для такой архитектуры целиком выполняется на главном процессоре системы, распределяя прикладные задачи по остальным процессорам. Основным недостатком ASMP является неравномерная загруженность процессоров или даже простой одних процессоров при полной загрузке других. При асимметричной мультипроцессорной обработке отказ в работе главного процессора может привести к отказу работы всей системы. К тому же в асимметричной системе увеличение числа процессоров и нагрузка на каждый из них приводит к тому, что операционная система не успевает выполнять обработку и начинает сдерживать рост производительности. Поэтому в настоящее время более перспективной считается архитектура симметричной многопроцессорности (SMP - symmetric multiprocessing).

Рис.2.Схема архитектур ASMP и SMP

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

Симметричную многопроцессорность можно определить как автономную компьютерную систему со следующими характеристиками:

1) в системе имеется несколько процессоров

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

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

Архитектура SMP позволяет эффективно использовать процессоры, уменьшая время их простоя. Операционная система, поддерживающая архитектуру SMP, исполняется или на любом свободном процессоре, или на всех процессорах одновременно. Она распределяет процессы или потоки между всеми процессорами. Большинство современных операционных систем поддерживают архитектуру SMP. В качестве примера можно привести Windows 2000 и Linux.

У многопроцессорных систем есть несколько потенциальных преимуществ по сравнению с однопроцессорными, в число которых входят следующие:

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

· Надежность (для SMP). При симметричной мультипроцессорной обработке отказ одного из процессоров не приведет к отказу всего компьютера, потому что все процессоры могут выполнять одни и те же функции. После такого сбоя система продолжит свою работу, хотя ее производительность несколько снизится. Для архитектуры ASMP надежность ниже, т.к. выход из строя центрального процессора парализует работу всей системы.

· Возможности наращивания. Добавляя в систему дополнительные процессоры, пользователь может повысить ее производительность.

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

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

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

Разница между многопоточностью и многопроцессорностью:

· многопоточность – концепция для структурирования процессов даже на компьютере с одним процессором.

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

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

§ Распределенные операционные системы.

В последние десятилетия получили широкое распространение кластерные системы. Кластер – слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений, и представляющихся пользователю единой системой. Одной из первых разработок в области кластерных технологий были решения компании Digital Equipment на базе компьютеров VAX. Несколько компаний предлагают кластеры на основе UNIX-машин.

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

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







ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.