Кто что является основным претендентом на ресурсы вычислительной системы
Кто что является основным претендентом на ресурсы вычислительной системы
Концепция ресурса
Одной из важнейших задач, решаемых современными ОС, является обеспечение эффективного и бесконфликтного распределения ресурсов вычислительной системы между процессами.
Основными ресурсами вычислительной системы являются: процессоры; области основной памяти; наборы данных; периферийные устройства; программы.
Для осуществления планирования и распределения ресурсов ОС необходима информация об их свойствах, что достигается введением упорядочения ресурсов по ряду классификационных признаков.
Наиболее законченным и естественным проявлением концепции виртуальности является понятие виртуальной машины. Любая операционная система, будучи посредником между пользователем и аппаратной частью вычислительной системы, создает у пользователя определенное представление о вычислительной системе и ее ресурсах, т.е. формирует у пользователя видимость виртуальной машины. Восприятие характеристик виртуальной машины различными пользователями неоднозначно. Чаще всего виртуальная машина, предоставляемая пользователю, воспроизводит архитектуру реальной машины, однако архитектурные элементы этого представления выступают с новыми, зачастую улучшенными, качествами.
Чем больше машина, реализуемая средствами конкретной ОС на базе конкретной аппаратной части, приближена к “идеальной” по характеристикам машине, чем больше ее архитектурно-логические характеристики отличаются от реально существующих, тем больше уровень виртуальности получаемой пользователем виртуальной машины.
Концепция виртуальности машины нашла широкое применение при проектировании и реализации операционных систем, позволяя наиболее рационально представить структуру системы в виде определенного набора планировщиков и распределителей ресурсов.
Концепция прерывания
Реализация мультипрограммного режима работы вычислительных систем возможна только на применении концепции прерываний, которая состоит в том, что любой процесс, обслуживаемый операционной системой, может быть прерван процессом, имеющим более высокий приоритет.
Приведенное определение исчерпывающе характеризует суть понятия прерывания, оставляя за рамками рассмотрения физическую природу аппаратного средства, где возникает это прерывание. Существует другое определение, в котором конкретизируется устройство, в котором происходит прерывание [1,2]:
управление передается операционной системе;
операционная система запоминает состояние прерванного процесса;
операционная система анализирует тип прерывания и передает управление соответствующей программе обработки этого прерывания;
программа обработки прерывания выполняет предписанные действия и передает управление операционной системе;
операционная система по результатам работы программы обработки прерываний либо восстанавливает состояние прерванного процесса и позволяет развиваться ему дальше, либо аварийно заканчивает его.
Следует иметь в виду, что инициатором прерывания может быть также и выполняющийся процесс.
Количество источников сигналов прерывания достигает в современных вычислительных системах нескольких сотен и даже тысяч. Все возможные в системе прерывания можно классифицировать по месту (причине) их возникновения. Различают шесть основных классов прерываний: прерывания от схем контроля ЭВМ; прерывания по рестарту (повторному пуску); прерывания ввода/вывода; внешние прерывания; прерывания по вызову супервизора; программные прерывания.
Прерывание от схем контроля возникает в случае появления любой аппаратной ошибки в ЭВМ. Продолжение работы машины становится невозможным, и процесс аварийно заканчивает свое существование.
Прерывание по рестарту может наступить в следующих случаях: на пульте управления была нажата кнопка (клавиша, сочетание клавиш) повторного пуска ЭВМ; процесс, выполняющий в данной ЭВМ, выдал команду рестарта; в многомашинной системе получена команда рестарта от другого компьютера. В любом случае в ЭВМ, получившей команду рестарта, выполняются действия по загрузке операционной системы.
Прерывания ввода/вывода инициируются аппаратурой, обеспечивающей операции ввода и вывода данных. Они сигнализируют центральному процессору об изменении состояния устройств ввода/вывода.
Система ввода-вывода
В состав любой операционной системы входят программные модули, обеспечивающие управление устройствами ввода-вывода ЭВМ. Эти программные модули называют драйверами устройств, а совокупность драйверов ввода-вывода образует систему ввода-вывода, входящую в состав операционной системы.
Основной задачей системы ввода-вывода является обеспечение непрерывной организации (планирования, управления) и двусторонней передачи данных между основной памятью и внешними устройствами с целью достижения максимального перекрытия во времени работы этой аппаратуры и процессора.
Состав систем ввода-вывода и, следовательно, перечень драйверов устройств в различных операционных системах не совпадают, что объясняется имеющимися отличиями в аппаратуре ввода-вывода, а также множеством методов, используемых для управления этой аппаратурой. Вместе с тем в большинстве операционных систем существует некоторое ядро системы ввода-вывода, получившее название базовой системы ввода-вывода.
При построении систем ввода-вывода аппаратура ввода-вывода рассматривается как совокупность аппаратурных процессоров, которые способны работать параллельно и независимо друг от друга, а также относительно центрального процессора. На таких процессорах развиваются так называемые внешние процессы.
Внешние процессы, используя аппаратуру ввода-вывода, могут взаимодействовать как между собой, так и с внутренними процессами, которые развиваются на центральном процессоре. Важным фактом является то, что скорости развития внешних и внутренних процессов существенно различаются, причем эти различия могут достигать нескольких порядков.
Система управления вводом-выводом представляет собой один или несколько системных процессов (т.е. процессов, принадлежащих операционной системе), обеспечивающих информационное и управляющее взаимодействие внутренних и внешних процессов. Через эту систему происходит инициализация, управление развитием и уничтожение внешних процессов.
С точки зрения внутренних (программных) процессов-пользователей система управления вводом-выводом представляет собой программный интерфейс с необходимыми для этих процессов внешними устройствами. В составе этого интерфейса пользователь имеет возможность выражать запросы на выполнение действий в отношении внешних устройств. При этом различают три типа действий: операции чтения и записи данных, операции управления устройством, операции по проверке состояния устройств. При построении систем управления вводом-выводом руководствуются стремлением сделать большинство ее компонентов «невидимыми» для пользователей, что достигается созданием развитых драйверов внешних устройств с понятным интерфейсом и доступными из любой системы программирования.
Для сглаживания эффекта несоответствия скоростей между внутренними и внешними процессами в системах управления вводом-выводом применяют три основных метода: синхронизация по прерываниям ввода-вывода; буферизация ввода-вывода; блокирование данных.
Для синхронизации параллельной работы могут применяться различные методы, среди которых наиболее совершенными являются средства, основанные на использовании системы прерывания. Канал ввода-вывода через систему прерываний прерывает работу центрального процессора всякий раз при завершении операции ввода-вывода или при возникновении ошибки. Такие сигналы прерывания являются по своему смыслу синхронизирующими, т.к. они используются для оповещения определенного внутреннего процесса о событии, которое произошло при работе канала ввода-вывода или внешнего устройства. После возникновения прерывания и определения его причины управление передается на программную систему, которую называют супервизором ввода-вывода.
Буферизация ввода-вывода основана на размещении между внешним и внутренним процессами одного или нескольких буферов, роль которых выполняют, как правило, непрерывные области первичной памяти.
Буфер является критическим ресурсом для связанных с ним внутренних и внешних процессов (рис.5.10). Введение буферов как средства информационного взаимодействия выдвинуло задачу управления буферами, которая решается средствами супервизора ввода-вывода. На супервизор ввода-вывода возлагаются функции по выделению и уничтожению буферов в первичной памяти, синхронизации обращения к буферам внутренних и внешних процессов, устранения одновременного обращения к буферу этих процессов и т.п.
При решении задачи буферизации важным является определение количества буферов, закрепляемых за отдельным каналом или устройством, а также размер области первичной памяти, отводимой под каждый буфер
27.__ Машинно-независимые свойства операционных систем
Организация управления задачами
Теория и практика создания операционных систем, концентрированно выраженных в принципах и концепциях построения ОС, позволили в качестве основы применять двухуровневую схему управления прохождением пакетов заданий в вычислительной системе. Применение не менее двух уровней в схеме управления опирается на использование частотного принципа при построении ОС. Различают уровни долгосрочного (внешнего) и краткосрочного (внутреннего) планирования.
Объектом управления на уровне краткосрочного планирования являются процессы, которые выступают как конкурирующие друг с другом потребители ресурсов вычислительной системы.
Пакет заданий представляет собой заявку пользователя на выполнение вычислительной системой обработки данных и состоит из следующих компонентов:
данные для идентификации пользователя;
общую управляющую информацию пакета заданий (например, максимально необходимый объем ОЗУ, приоритет, вид выдачи сообщений ОС и т.п.);
одно или несколько заданий на обработку.
Каждое задание на обработку, будучи компонентом заявки пользователя, содержит следующие данные, передаваемые операционной системе:
программы заданий (или их имена) и параметры запуска программ;
управляющую информацию задания;
требования на аппаратные и информационные ресурсы (ОЗУ, внешние устройства, библиотеки программ и т.д.);
исходные данные обработки.
Обслуживание заявок на обработку данных в соответствии с требованиями пользователей осуществляется операционной системой с привлечением различных программно-аппаратных средств.
Средства управления ресурсами
Под управлением ресурсами в ОС понимается распределение ресурсов системы между различными задачами и процессами, одновременно функционирующими в ней.
В ОС, как правило, отсутствует отдельный супервизор ресурсов, поскольку функции распределения ресурсов реализуются как на уровне внешнего планирования, так и на уровне внутреннего планирования.
Основными функциями управления ресурсами являются:
учет наличия и состояния ресурсов;
прием и учет заявок на ресурсы от задач и процессов;
распределение ресурсов между задачами и процессами;
организация использования ресурсов, выделенных каждой задаче или процессу;
возврат ресурса в систему по мере его освобождения потребителем.
Для реализации функций управления ресурсами в ОС формируются информационные таблицы, в которых отражаются следующие основные данные:
учетная информация о ресурсе (идентификатор, класс, количество каналов и т.п.);
код состояния ресурса;
идентификатор процесса-владельца и т.п
для заявок на ресурсы:
идентификатор и требуемый объем ресурса и т.п.
В ходе организации использования ресурсов формируются таблицы, в которых указываются списки распределенных и свободных ресурсов, связи между ресурсами и процессами.
Наряду с проблемой рационального распределения ресурсов между процессами существует также проблема синхронизации протекания параллельных процессов и исключение возникновения тупиков в вычислительной системе.
Для реализации функций управления ресурсами операционная система осуществляет постоянный учет их наличия и состояния. В современных ОС наиболее употребительным является идентификация ресурса с помощью файла его описания.
Существуют также комбинированные способы формирования запросов на ресурсы с предварительным заказом в пакете заданий или в программе и исполнительным запросом во время выполнения программы.
28__ Динамические, последовательные и параллельные структуры программ;
Последовательная структура программ
Видимо, речь идет о простой однозадачной системе типа Доса, когда выполняется только один процесс и ни о какой многозадачности речи нет.
Параллельная структура программ
Компьютеры с несколькими центральными процессорами (ЦП) могут выполнять несколько программ или компонентов одной программы параллельно. Вычисление, таким образом, может завершиться за меньшее время счета (количество часов), чем на компьютере с одним ЦП, с учетом затрат дополнительного времени ЦП на синхронизацию и связь. Несколько программ могут также совместно использовать компьютер с одним ЦП, так быстро переключая ЦП с одной программы на другую, что возникает впечатление, будто они выполняются одновременно. Несмотря на то, что переключение ЦП не реализует настоящую параллельность, удобно разрабатывать программное обеспечение для этих систем так, как если бы выполнение программ действительно происходило параллельно. Параллелизм — это термин, используемый для обозначения одновременного выполнения нескольких программ без уточнения, является вычисление параллельным на самом деле или только таким кажется.
Прямой параллелизм знаком большинству программистов в следующих формах:
— Мультипрограммные (multi-programming) операционные системы дают возможность одновременно использовать компьютер нескольким пользователям. Системы разделения времени, реализованные на обычных больших машинах и миникомпьютерах, в течение многих лет были единственным способом сделать доступными вычислительные средства для таких больших коллективов, как университеты.
— Многозадачные (multi-tasking) операционные системы дают возможность одновременно выполнять несколько компонентов одной программы (или программ одного пользователя). С появлением персональных компьютеров мультипрограммные компьютеры стали менее распространенными, но даже одному человеку часто необходим многозадачный режим для одновременного выполнения разных задач, как, например, фоновая печать при диалоговом режиме работы с документом.
— Встроенные системы (embedded systems) на заводах, транспортных системах и в медицинской аппаратуре управляют наборами датчиков и приводов в «реальном масштабе времени». Для этих систем характерно требование, чтобы они выполняли относительно небольшие по объему вычисления через очень короткие промежутки времени: каждый датчик должен быть считан и проинтерпретирован, затем программа должна выбрать соответствующее действие, и, наконец, данные в определенном формате должны быть переданы к приводам. Для реализации встроенных систем используются многозадачные операционные системы, позволяющие координировать десятки обособленных вычислений.
Проектирование и программирование параллельных систем являются чрезвычайно сложным делом. Параллельная программа (concurent program) состоит из одного или нескольких программных компонентов (процессов), которые могут выполняться параллельно. Параллельные программы сталкиваются с двумя проблемами:
1.Синхронизация. Даже если процессы выполняются одновременно, иногда один процесс должен будет синхронизировать свое выполнение с другими процессами. Наиболее важная форма синхронизации — взаимное исключение: два процесса не должны обращаться к одному и тому же ресурсу (такому, как диск или общая таблица) одновременно.
2.Взаимодействие. Процессы не являются полностью независимыми; они должны обмениваться данными. Например, в программе управления полетом процесс, считывающий показания датчика высоты, должен передать результат процессу, который делает расчеты для автопилота.
Самая простая модель параллельного программирования — это модель с общей памятью (рис.5). Два или несколько процессов могут обращаться к одной и той же области памяти, хотя они также могут иметь свою собственную частную, или приватную, (private) память.
Рис.5. Модель с общей памятью
Важно понять, что это может произойти даже на компьютере, который реализует многозадачный режим путем использования единственного ЦП. Когда ЦП переключается с одного процесса на другой, регистры, которые используются заблокированным процессом, сохраняются, а затем восстанавливаются, когда этот процесс продолжается.
В теории параллелизма выполнение параллельной программы определяется как любое чередование атомарных команд задач. Атомарная команда — это всего лишь команда, которую нельзя выполнить «частично» или прервать, чтобы продолжить выполнение другой задачи. В модели параллелизма с общей памятью команды загрузки и сохранения являются атомарными.
Если говорить о чередующихся вычислениях, то языки и системы, которые поддерживают параллелизм, различаются уровнем определенных в них атомарных команд. Реализация команды должна гарантировать, что она выполняется атомарно. В случае команд загрузки и сохранения это обеспечивается аппаратным интерфейсом памяти. Атомарность команд высокого уровня реализуется с помощью базисной системы поддержки времени выполнения и поддерживается специальными командами ЦП.
Истинно параллельные структуры могут быть реализованы только в многопроцессорных системах.
29__ Способы построения операционных систем
Операционная система является сердцевиной сетевого программного обеспечения, она создает среду для выполнения приложений и во многом определяет, какими полезными для пользователя свойствами эти приложения будут обладать. В связи с этим рассмотрим требования, которым должна удовлетворять современная ОС.
Очевидно, что главным требованием, предъявляемым к операционной системе, является способность выполнения основных функций: эффективного управления ресурсами и обеспечения удобного интерфейса для пользователя и прикладных программ. Современная ОС, как правило, должна реализовывать мультипрограммную обработку, виртуальную память, свопинг, поддерживать многооконный интерфейс, а также выполнять многие другие, совершенно необходимые функции. Кроме этих функциональных требований к операционным системам предъявляются не менее важные рыночные требования. К этим требованиям относятся:
Тенденции в структурном построении ОС
Для удовлетворения требований, предъявляемых к современной ОС, большое значение имеет ее структурное построение. Операционные системы прошли длительный путь развития от монолитных систем к хорошо структурированным модульным системам, способным к развитию, расширению и легкому переносу на новые платформы.
Монолитные системы
В общем случае «структура» монолитной системы представляет собой отсутствие структуры (рисунок 4.1). ОС написана как набор процедур, каждая из которых может вызывать другие, когда ей это нужно. При использовании этой техники каждая процедура системы имеет хорошо определенный интерфейс в терминах параметров и результатов, и каждая вольна вызвать любую другую для выполнения некоторой нужной для нее полезной работы.
Рис. 4.1. Монолитная структура ОС
Для построения монолитной системы необходимо скомпилировать все отдельные процедуры, а затем связать их вместе в единый объектный файл с помощью компоновщика (примерами могут служить ранние версии ядра UNIX или Novell NetWare). Каждая процедура видит любую другую процедуру (в отличие от структуры, содержащей модули, в которой большая часть информации является локальной для модуля, и процедуры модуля можно вызвать только через специально определенные точки входа).
Однако даже такие монолитные системы могут быть немного структурированными. При обращении к системным вызовам, поддерживаемым ОС, параметры помещаются в строго определенные места, такие, как регистры или стек, а затем выполняется специальная команда прерывания, известная как вызов ядра или вызов супервизора. Эта команда переключает машину из режима пользователя в режим ядра, называемый также режимом супервизора, и передает управление ОС. Затем ОС проверяет параметры вызова для того, чтобы определить, какой системный вызов должен быть выполнен. После этого ОС индексирует таблицу, содержащую ссылки на процедуры, и вызывает соответствующую процедуру. Такая организация ОС предполагает следующую структуру:
1. Главная программа, которая вызывает требуемые сервисные процедуры.
2. Набор сервисных процедур, реализующих системные вызовы.
3. Набор утилит, обслуживающих сервисные процедуры.
В этой модели для каждого системного вызова имеется одна сервисная процедура. Утилиты выполняют функции, которые нужны нескольким сервисным процедурам. Это деление процедур на три слоя показано на рисунке 4.2.
Рис. 4.2. Простая структуризация монолитной ОС
Многоуровневые системы
Первой системой, построенной таким образом была простая пакетная система THE, которую построил Дейкстра и его студенты в 1968 году.
Кто что является основным претендентом на ресурсы вычислительной системы
Архитектура ЭВМ – это общее описание структуры и функций ЭВМ, ее ресурсов.
Ресурсы ЭВМ – средства вычислительной системы, которые могут быть выделены процессу обработки данных на определенный интервал времени. К ресурсам ЭВМ традиционно относят объем доступной памяти, процессорное время и др.
При разработке принципов архитектуры компьютеров широко используется идея о разделении отдельных операций процесса решения задачи (процесса вычислений) между отдельными “специализированными” устройствами.
К центральным (системным) устройствам ПК относятся прежде всего центральный процессор и оперативная память.
Архитектура современных персональных компьютеров основана на магистрально-модульном принципе организации обмена информации. В соответствии с этим принципом центральные устройства компьютера взаимодействуют между собой (обмениваются информацией) и с периферийными устройствами через системную (информационную) магистраль.
Системная магистраль предназначена для передачи данных, адресов, команд управления.
Центральные устройства подсоединены к шине непосредственно, а периферийные – через устройства сопряжения (контроллеры или адаптеры).
Устройства компьютера целесообразно характеризовать по следующим признакам: класс устройств (название), назначение, принципы работы, основные технические характеристики (потребительские свойства), особенности, программная поддержка.
Основные устройства ввода информации (Таблица 1)
Ввод алфавитно-цифровых символов, управление курсором
получение электронной копии документа, созданного на бумаге
К устройствам ввода информации относятся:
Важной характеристикой устройств ввода, вывода и отображения информации является разрешающая способность или разрешение.
Рис.1. Виды дисплеев
Пользовательские характеристики дисплеев :
Наиболее распространенными в настоящее время являются видеокарты VGA (Video Graphics Array), SVGA (Super VGA), XGA (eXtended Graphics Array).
Пользовательские характеристики видеоадаптеров:
Передача информации внутри компьютера осуществляется с помощью шин.
Передача информации между компьютерами, не объединенными в локальную сеть (отсутствует прямая кабельная связь), осуществляется с использованием телефонных линий с помощью модемов.
Системная шина имеет следующие компоненты:
Основными характеристиками шины являются:
Основными характеристиками модемов являются:
Скорость модема оценивается числом бит, передаваемых за одну секунду (чаще всего учитываются только “информационные биты”, а блоки с контрольными суммами и вся информация, добавляемая в соответствии с используемым протоколом передачи данных, не учитавыются)
Наиболее важными протоколами являются:
Центральный процессор (ЦПУ ) определяет производительность, эффективность всей вычислительной системы, он регулирует, управляет и контролирует рабочий процесс.
В современных персональных компьютерах центральный процессор конструктивно выполнен как микропроцессор на базе сверхбольшой интегральной схемы (СБИС). Это полупроводниковый кристалл или комплект кристаллов, на которых реализуются компоненты процессора.
Логически центральный процессор представляет собой совокупность арифметико-логического устройства (АЛУ) и центрального устройства управления (УУ).
Математический сопроцессор предназначен для выполнения арифметических операций с плавающей точкой. Он может быть как самостоятельным устройством и располагаться на материнской плате, так и быть встроенным в центральный процессор.
Платы расширения вставляются в слоты расширения, располагающиеся на системной плате. Наличие свободных разъемов обеспечивает возможность добавления к компьютеру новых устройств.
Как правило, на платах расширения располагаются специальные процессор и память, а также адаптеры (контроллеры) соответствующих устройств.
Основные виды плат расширения:
Основные устройства вывода информации (Таблица 2)
вывод на бумагу, пленку алфавитно-цифровой и графической информации
вывод на бумагу, пленку чертежей, схем, графиков и т.п.