Афоризмы
Воскресенье, 05.05.2024, 15:13
ГлавнаяРегистрацияВход Приветствую Вас Гость | RSS

Меню сайта

Теги
эмоции возраст Внешность учение скромность женщина деньги жизнь дружба счастье Ревность любовь секс россия Характер отношения мужчина ум зависть работа человек разное правда брак смех совесть

Статистика

Афоризмов: 158
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Обмен кнопками

3.1. Операционные системы
Основы операционных систем (ОС). Назначение и функции ОС. Классификация ОС. Требования к ОС.
Архитектура ОС. Ядро и вспомогательные модули ОС. Многослойная структу-ра ОС. Микроядерная архитектура ОС.
Аппаратная зависимость и переносимость ОС.
Совместимость ОС. Способы реализации совместимости.
Основные принципы управления процессором и процессами. Управление про-цессором в однопрограммном режиме. Управление процессором в режиме мультипро-граммирования. Мультироцессорная обработка. Планирование процессов и потоков. Прерывания. Назначение и типы прерываний. Механизм прерываний. Синхронизация процессов и потоков. Средства синхронизации.
Управление памятью. Алгоритмы распределения памяти. Свопинг и виртуаль-ная память. Сегментно- страничное распределение памяти. Управление файлами и устройствами. Логическая и физическая организация файловой системы. Основные понятия безопасности. Базовые технологии безопасности ОС.

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

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

обеспечивать загрузку пользовательских программ в оперативную память и их исполнение

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

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

предоставлять некоторый пользовательский интерфейс. Слово некоторый здесь сказано не случайно - часть систем ограничивается командной строкой, в то время как другие на 90% состоят из средств интерфейса пользователя

Существуют ОС, функции которых этим и исчерпываются. Одна из хорошо известных систем такого типа - дисковая операционная система MS DOS.

Более развитые ОС предоставляют также следующие возможности:

параллельное (точнее, псевдопараллельное, если машина имеет только один процессор) исполнение нескольких задач

распределение ресурсов компьютера между задачами

организация взаимодействия задач друг с другом

взаимодействие пользовательских программ с нестандартными внешними устройствами

организация межмашинного взаимодействия и разделения ресурсов

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

Назначение операционной системы

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

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

Функции операционной системы:

- связь с пользователем в реальном времени для подготовки устройств к работе, переопределение конфигурации и изменения состояния системы.

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

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

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

- обработка исключительных условий во время выполнения задачи

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

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

Вверх

Вариантов классификации ОС может быт очень много, они зависят от признака, по которому одна ОС отличается от другой:
- по назначению;
- по режиму обработки;
- по способу взаимодействия с системой;
- по способу построения.
Основным предназначением ОС является:
- организация эффективных и надежных вычислений;
- создание различных интерфейсов для взаимодействия с этими вычислениями и самой вычислительной системой.
ОС разделяют по назначению:
- ОС общего назначения;
- ОС специально назначения.
ОС специального назначения подразделяются на следующие:
- для переносимых компьютеров и встроенных систем;
- для организации и ведения баз данных;
- для решения задач реального времени и т.д.
ОС разделяют по режиму обработки задач:
- однопрограммный режим;
- мультипрограммный режим.
Мультипрограммирование – способ организации вычислений, когда на однопроцессной вычислительной системе создается видимость одновременного выполнения нескольких задач. Любая задержка в выполнении одной программы используется для выполнения других программ.
Мультипрограммный и многозадачный режимы близки по смыслу, но синонимами не являются.
Мультипрограммный режим обеспечивает параллельное выполнение нескольких приложений, а программисты, создающие эти приложения, не должны заботиться о механизме организации их параллельной работы. Эти функции выполняет ОС, которая распределяет между выполняющимися приложениями ресурсы вычислительной системы, обеспечивает необходимую синхронизацию вычислений и взаимодействие.
Мультизадачный режим предполагает, что забота о параллельном выполнении и взаимодействии приложений ложится на прикладных программистов.
Современные ОС для ПК реализуют и мультипрограммный, и многозадачный режимы.
По организации работы в диалоговом режиме ОС делятся на следующие:
- однопользовательские (однотерминальные);
- мультитерминальные.
В мультитерминальных ОС с одной вычислительной системой одновременно могут работать несколько пользователей, каждый со своего терминала, при этом у пользователей возникает иллюзия, что у него имеется своя собственная вычислительная система. Для организации мультитерминального доступа необходим мультипрограммный режим работы вычислительной системы.
Основная особенность операционных систем реального времени (ОСРВ) – обеспечение обработки поступающих заданий в течение заданных интервалов времени, которые нельзя превышать. Поток заданий не является планомерным и не регулируется оператором, т.е. задания поступают в непредсказуемые моменты времени и без всякой очередности. В ОСРВ в общем случае отсутствуют накладные расходы процессорного времени на этап инициирования (загрузку программы, выделение ресурсов), так как набор задач обычно фиксирован и вся информация о задаче известна до поступления запроса. Для реализации режима реального времени необходим режим мультипрограммирования, который является основным средством повышения производительности вычислительной системы, а для задач реального времени производительность – решающий фактор. Лучшие по производительности характеристики для систем реального времени обеспечивают однотерминальные ОСРВ.
По способам построения (архитектуре) ОС подразделяются на следующие:
- микроядерные;
- монолитные.
Это деление условно. К микроядерным ОС относится ОСРВ QNX, а к монолитным – Windows 9x и Linux. Для ОС Windows 9x пользователь не может изменить ядро, так как не располагает исходными кодами и программой сборки ядра. Для ОС Linux такая возможность предоставлена, пользователь может сам собрать ядро, включив в него необходимые программные модули и драйверы.

Сегодня к ОС предъявляется множество требований. Главными из них, конечно же, являются выполнение функций эффективного управления ресурсами вычислительной системы и обеспечение удобного интерфейса для пользователя и прикладных программ. Кроме того, можно выделить ряд основных требований, которым должна удовлетворять любая современная ОС.
Производительность. ОС должна обладать настолько хорошим быстродействием и временем реакции, насколько это позволяет аппаратная платформа. На производительность ОС оказывает влияние множество факторов, среди которых основными являются архитектура ОС, многообразие реализуемых ею функций, количество ресурсов, потребляемых самой ОС для выполнения поставленных перед ней задач, качество программного кода.
Надежность. Это требование ОС определяется архитектурными решениями, положенными в ее основу, а также качеством реализации, обратно пропорциональным количеству ошибок в комплексе программ, составляющих ОС.
Защищенность. Система должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов. Ее действия должны быть всегда предсказуемы, а приложения не должны иметь возможности наносить вред. Современная ОС защищает данные и другие ресурсы вычислительной системы от несанкционированного доступа и от попыток непреднамеренного повреждения этих данных.
Расширяемость. ОС является расширяемой, если в нее можно вносить дополнения и изменения, не нарушая целостности системы. Расширяемость достигается за счет модульной структуры ОС, при которой программы строятся из отдельных модулей, взаимодействующих только через функциональный интерфейс. Такая архитектура позволяет в случае необходимости добавлять новые или удалять ненужные компоненты. Однако простота, с которой пользователь или системный программист сможет производить такие функциональные изменения, определяется совершенством и продуманностью применяемых при построении системы решений.
Переносимость. В идеальном случае ОС должна легко переноситься с одного типа аппаратной платформы на другой. Реально это далеко не всегда быстро и легко выполнимая задача. Как правило, ОС разрабатывается для определенного типа аппаратных платформ и перенос ее на платформу с принципиально иным строением может стать трудной задачей.
Совместимость. ОС всегда изменяются со временем, и эти изменения более значимы, чем изменения аппаратных средств. Изменения ОС обычно заключаются в приобретении ими новых свойств, добавлении новых и модификации имеющихся функций. Под требованием совместимости понимается сохранение возможности использования прикладных программ, написанных для "старой” или вообще другой ОС, в новой ОС.
Удобство. Средства ОС должны быть простыми и гибкими, а логика ее работы ясна пользователю. Современные ОС ориентированы на обеспечение пользователю максимально возможного удобства при работе с ними. Необходимым условием этого стало наличие у ОС графического пользовательского интерфейса и всевозможных мастеров – программ, автоматизирующих установку, настройку и эксплуатацию системы.

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

Архитектура ОС. Ядро и вспомогательные модули ОС. Многослойная структу-ра ОС. Микроядерная архитектура ОС.

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

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

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

Ядро и вспомогательные модули ОС

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

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

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

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

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

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

ПРИМЕЧАНИЕ

Термин «ядро» в разных ОС трактуется по-разному. Одним из определяющих свойств ядра является работа в привилегированном режиме. Этот вопрос будет рассмотрен в следующем разделе.

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

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

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

Некоторая программа может существовать определенное время как пользовательское приложение, а потом стать частью ОС, или наоборот. Ярким примером такого изменения статуса программы является Web-браузер компании Microsoft, который сначала поставлялся как отдельное приложение, затем стал частью операционных систем Windows NT 4.0 и Windows 95/98, а сегодня существует большая вероятность того, что по решению суда этот браузер снова превратится в самостоятельное приложение.

Многослойная структура ОС

Вычислительную систему, работающую под управлением ОС на основе ядра, можно рассматривать как систему, состоящую из трех иерархически расположенных слоев: нижний слой образует аппаратура, промежуточный — ядро, а утилиты, обрабатывающие программы и приложения, составляют верхний слой системы (рис. 3.6). Слоистую структуру вычислительной системы принято изображать в виде системы концентрических окружностей, иллюстрируя тот факт, что каждый слой может взаимодействовать только со смежными слоями. Действительно, при такой организации ОС приложения не могут непосредственно взаимодействовать с аппаратурой, а только через слой ядра.
Многослойный подход является универсальным и эффективным способом декомпозиции сложных систем любого типа, в том числе и программных. В соответствии с этим подходом система состоит из иерархии слоев. Каждый слой обслуживает вышележащий слой, выполняя для него некоторый набор функций, которые образуют межслойный интерфейс (рис. 3.7). На основе функций нижележащего слоя следующий (вверх по иерархии) слой строит свои функции — более сложные и более мощные, которые, в свою очередь, оказываются примитивами для создания еще более мощных функций вышележащего слоя. Строгие правила касаются только взаимодействия между слоями системы, а между модулями внутри слоя связи могут быть произвольными. Отдельный модуль может выполнить свою работу либо самостоятельно, либо обратиться к другому модулю своего слоя, либо обратиться за помощью к нижележащему слою через межслойный интерфейс.

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

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

Ядро может состоять из следующих слоев:
Средства аппаратной поддержки ОС. До сих пор об операционной системе говорилось как о комплексе программ, но, вообще говоря, часть функций ОС может выполняться и аппаратными средствами. Поэтому иногда можно встретить определение операционной системы как совокупности программных и аппаратных средств, что и отражено на рис. 3.8. К операционной системе относят, естественно, не все аппаратные устройства компьютера, а только средства аппаратной поддержки ОС, то есть те, которые прямо участвуют в организации вычислительных процессов: средства поддержки привилегированного режима, систему прерываний, средства переключения контекстов процессов, средства защиты областей памяти и т. п.
Машинно-зависимые компоненты ОС. Этот слой образуют программные модули, в которых отражается специфика аппаратной платформы компьютера. В идеале этот слой полностью экранирует вышележащие слои ядра от особенностей аппаратуры. Это позволяет разрабатывать вышележащие слои на основе машинно-независимых модулей, существующих в единственном экземпляре для всех типов аппаратных платформ, поддерживаемых данной ОС. Примером экранирующего слоя может служить слой HAL операционной системы Windows NT.
Базовые механизмы ядра. Этот слой выполняет наиболее примитивные операции ядра, такие как программное переключение контекстов процессов, диспетчеризацию прерываний, перемещение страниц из памяти на диск и обратно и т. п. Модули данного слоя не принимают решений о распределении ресурсов — они только отрабатывают принятые «наверху» решения, что и дает повод называть их исполнительными механизмами для модулей верхних слоев. Например, решение о том, что в данный момент нужно прервать выполнение текущего процесса А и начать выполнение процесса В, принимается менеджером процессов на вышележащем слое, а слою базовых механизмов передается только директива о том, что нужно выполнить переключение с контекста текущего процесса на контекст процесса В.
Менеджеры ресурсов. Этот слой состоит из мощных функциональных модулей, реализующих стратегические задачи по управлению основными ресурсами вычислительной системы. Обычно на данном слое работают менеджеры (называемые также диспетчерами) процессов, ввода-вывода, файловой системы и оперативной памяти. Разбиение на менеджеры может быть и несколько иным, например менеджер файловой системы иногда объединяют с менеджером ввода-вывода, а функции управления доступом пользователей к системе в целом и ее отдельным объектам поручают отдельному менеджеру безопасности. Каждый из менеджеров ведет учет свободных и используемых ресурсов определенного типа и планирует их распределение в соответствии с запросами приложений. Например, менеджер виртуальной памяти управляет перемещением страниц из оперативной памяти на диск и обратно. Менеджер должен отслеживать интенсивность обращений к страницам, время пребывания их в памяти, состояния процессов, использующих данные, и многие другие параметры, на основании которых он время от времени принимает решения о том, какие страницы необходимо выгрузить и какие — загрузить. Для исполнения принятых решений менеджер обращается к нижележащему слою базовых механизмов с запросами о загрузке (выгрузке) конкретных страниц. Внутри слоя менеджеров существуют тесные взаимные связи, отражающие тот факт, что для выполнения процессу нужен доступ одновременно к нескольким ресурсам — процессору, области памяти, возможно, к определенному файлу или устройству ввода-вывода. Например, при создании процесса менеджер процессов обращается к менеджеру памяти, который должен выделить процессу определенную область памяти для его кодов и данных.
Интерфейс системных вызовов. Этот слой является самым верхним слоем ядра и взаимодействует непосредственно с приложениями и системными утилитами, образуя прикладной программный интерфейс операционной системы. Функции API, обслуживающие системные вызовы, предоставляют доступ к ресурсам системы в удобной и компактной форме, без указания деталей их физического расположения. Например, в операционной системе UNIX с помощью системного вызова fd = open("/doc/a.txt", 0_RDONLY) приложение открывает файл a.txt, хранящийся в каталоге /doc, а с помощью системного вызова read(fd, buffer, count) читает из этого файла в область своего адресного пространства, имеющую имя buffer, некоторое количество байт. Для осуществления таких комплексных действий системные вызовы обычно обращаются за помощью к функциям слоя менеджеров ресурсов, причем для выполнения одного системного вызова может понадобиться несколько таких обращений.

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

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

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

Выбор количества слоев ядра является ответственным и сложным делом: увеличение числа слоев ведет к некоторому замедлению работы ядра за счет дополнительных накладных расходов на межслойное взаимодействие, а уменьшение числа слоев ухудшает расширяемость и логичность системы. Обычно операционные системы, прошедшие долгий путь эволюционного развития, например многие версии UNIX, имеют неупорядоченное ядро с небольшим числом четко выделенных слоев, а у сравнительно «молодых» операционных систем, таких как Windows NT, ядро разделено на большее число слоев и их взаимодействие формализовано в гораздо большей степени.

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

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

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

Основные принципы управления процессором и процессами.

Управление процессором в однопрограммном режиме. Управление процессором в режиме мультипрограммирования.
Однопрограммный режим работы вычислительной системы (ВС)

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

В однопрограммном режиме работы в памяти ЭВМ находится и выполняется только одна программ. Такой режим обычно характерен для микро-ЭВМ и персональных ЭВМ, то есть для ЭВМ индивидуального пользования.

Мультипрограммный режим работы вычислительной системы (ВС)

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

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

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

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

Мультироцессорная обработка.
Это такой способ организации вычислительного процесса в системах с несколькими процессорами, при котором несколько задач (процессов, потоков) могут одновременно выполняться на разных процессорах системы.
Эта концепция известна с начала 70-х, но до середины 80-х доступных многопроцессорных систем не существовало. Однако к настоящему времени стало обычным включение нескольких процессоров в архитектуру даже ПК (пример - сопроцессор). Более того, многопроцессорность теперь является одним из необходимых требований, предъявляемых к компьютерам, используемым в качестве центрального сервера более-менее крупной сети.
Не путать мультипрограммную и мультипроцессорную обработки!
В мультипрограммных системах параллельная работа разных устройств позволяет одновременно вести обработку разных программ, но при этом в процессоре в каждый момент времени выполняется только одна программа, т.е. несколько задач выполняются попеременно но одном процессоре. Здесь лишь видимость параллелизма.
В мультипроцессорных системах несколько задач выполняются одновременно, т.к. имеется несколько обрабатывающих устройств - процессоров.
Мультипроцессорная организация системы приводит к усложнению всех алгоритмов управления ресурсами. Планировать задачи для нескольких процессоров значительно сложнее, чем для одного. Кроме того, кто именно из процессоров будет это делать? Есть и другие сложности - возникают конфликтные ситуации при обращении к УВВ, ОП, памяти данных и т.д.
Всё это решается СО путём синхронизации процессов, введения очередей, при помощи системы приоритетов (процессоров или процессов) и планирования ресурсов, но всё предусмотреть непросто.
В наши дни общепринято вводить в ОС функции поддержки мультипроцессорной обработки данных. Такие функции имеются во всех популярных ОС:
Microsoft Windows NT;
Novell NetWare 4.x;
IBM OS/2;
Sun Solaris 2.x;
Santa Cruz Operations Open Server 3.x.

Планирование процессов и потоков.

Планирование процессов и потоков

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

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

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

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

Прерывания. Назначение и типы прерываний. Механизм прерываний.
Назначение и типы прерываний

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

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

Книги
  • Золотые афоризмы для руководителя фирмы
  • Словарь современных цитат
  • Афоризмы, крылатые выражения, пословицы и поговорки
  • Жить, как говорится, хорошо! А хорошо жить - еще лучше! Афоризмы из кинофильмов
  • Мысли на каждый день
  • 1000 лучших афоризмов человечества
  • 10000 афоризмов, мыслей, высказываний великих и знаменитых
  • 365 стильных советов молодой маме
  • Английские крылатые выражения
  • Афоризмы и мысли великих людей
  • Афоризмы, мысли и высказывания выдающихся женщин
  • Большая книга афоризмов
  • Восточная мудрость (миниатюрное издание)
  • Законы и правила Малкина
  • Книга лидера в афоризмах

  • Скажи админу спасибо


    Форма входа

    Copyright MyCorp © 2024