Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Вычислительные ресурсы и операционная система



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

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

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

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

Рассмотрим основные ресурсы, которыми управляет операционная система (Рис. 1.1). Кроме обеспечения связи прикладных программ с аппаратными средствам компьютера, большинство операционных систем обеспечивают распределение вычислительных ресурсов между пользователями и процессами. Таких ресурсов несколько, но самыми важными вычислительными ресурсами являются время процессора и оперативная память. Часть операционной системы находится в оперативной памяти. В эту часть входит ядро, содержащее основную часть наиболее часто используемых функций. В зарубежной литературе и ряде отечественных изданий вместо ядра используется английский термин –kernel. Также в оперативной памяти находятся и некоторые другие компоненты операционной сис темы, использующиеся в данный момент времени.

Вычислительные ресурсы

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

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

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

- Программа, получившая время процессора работает до тех пор, пока у нее не возникнет возможность освободить процессор, например, для операции ввода-вывода. Этот метод плох тем, что очень велика вероятность монопольного захвата процессора одной программой и, следовательно, остановкой остальных, в том числе и служебных программ операционной системы, что приводит к зависанию последней. По подобному принципу построены надстройки над системой DOS и ранние версии системы Windows (до Windows95).

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

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

Система с одной очередью

Дисциплина обслуживания с несколькими очередями позволяет сократить потери времени на переключение процессов. Приоритет очереди убывает с возрастанием ее номера. Вновь поступающий запрос ставиться в конец очереди, имеющей старший приоритет (Рис. 1.3).

В такой системе подлежит обслуживанию запрос из начала очереди с номером m, если очереди с меньшим номером пусты. Если за выделенный квант времени обслуживание не завершено, процесс переходит в конец очереди m+1. Таким образом, квант времени, выделяемый процессу, возрастает с увеличением номера очереди по правилу:

Km = K 2m

где Km - квант, выделяемый программе из очереди m,

K – квант, выделяемый для процесса из первой очереди.

Система с несколькими очередями

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

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

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

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

- Запоминание состояния прерываемой программы и осуществление перехода к прерывающей программе.

- Восстановление состояния прерванной программы и возврат к ней.

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

Для оценки эффективности систем прерывания могут быть использованы следующие характеристики:

- Общее количество обрабатываемых запросов прерывания.

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

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

Время реакции обозначено tp. Для одного и того же запроса задержки в исполнении прерывающей программы зависят от того, сколько программ с большим приоритетом ждет обслуживания. Поэтому время реакции определяют для запроса с наивысшим приоритетом. Время tз описывает интервал, необходимый для запоминания состояния прерываемой программы. Восстановление состояния прерванной программы по окончании прерывания занимает время tв. Затраты времени на переключение программ или издержки прерывания равны суммарному расходу времени на запоминание и восстановление состояния программы: t = tз + tв.

Рис. 1.4. Процесс прерывания

Глубина прерывания – это максимальное число программ, которые могут прерывать друг друга. Если после перехода к прерывающей программе и вплоть до ее окончания прием других запросов запрещается, то говорят, что система имеет глубину прерывания, равную 1. Глубина равна n, если допускается последовательное прерывание до n программ. Глубина прерывания обычно совпадает с числом уровней приоритета в системе прерываний. Системы с большим значением глубины прерывания обеспечивают более быструю реакцию на срочные запросы.

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

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

Операционные системы с мультипроцессорной обработкой делятся на две категории – с асимметричной либо симметричной обработкой (Рис. 1.5, слева). Операционные системы с асимметричной мультипроцессорной обработкой (ASMP - ASymmetric MultiProcessing, ) обычно выбирают для исполнения собственного кода один и тот же процессор, например, А, в то время как другие процессоры выполняют только пользовательские задачи. Так как код операционной системы исполняется на одном процессоре, то систему ASMP довольно просто создать, усовершенствовав существующую однопроцессорную операционную систему.

Виды мультипроцессорной обработки

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

Системы с симметричной мультипроцессорной обработкой (SMP - Symmetric MultiProcessing, ) позволяют коду операционной системы выполняться на любом свободном процессоре или на всех процессорах одновременно, причем каждому из процессоров доступна вся память (Рис. 1.5, справа). Такой подход полнее реализует возможности нескольких процессоров, так как сама операционная система может использовать значительную часть процессорного времени компьютера, в зависимости от того, какие приложения на нем исполняются. Исполнение операционной системы только на одном процессоре, как в случае ASMP, может сильно загружать его, в то время как остальные простаивают, что уменьшит производительность системы. При увеличении числа процессоров в системе возрастает вероятность того, что узким местом станут именно действия, выполняемые самой операционной системой. Помимо равномерного распределения системной загрузки, системы SMP сокращают время простоя из-за неисправностей, так как при сбое одного процессора код операционной системы может исполняться на других процессорах. Наконец, поскольку симметричная аппаратура реализуется разными производителями сходным образом, имеется возможность создания переносимой операционной системы с SMP.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 


Поделиться:



Популярное:

  1. III. КУЛЬТУРА КАК СИСТЕМА ЦЕННОСТЕЙ
  2. IV. КУЛЬТУРА КАК ЗНАКОВО–СИМВОЛИЧЕСКАЯ СИСТЕМА
  3. V. Понятия моделирующая система и вторичная моделирующая система
  4. А 144. Из каких элементов образуется система права РФ?
  5. Абсолютно твердое тело - система материальных точек, расстояние между которыми не изменяются в данной задаче. Абсолютно твердое тело обладает только поступательными и вращательными степенями свободы.
  6. Агрегатные индексы. Система индексов
  7. Административные наказания: понятие, цели, система, виды.
  8. Активно, систематически и непрестанно избавляйтесь от хлама
  9. Алматова Г. - Экосистема (по мотивам настольной игры «Эволюция»)
  10. Анализатор – это сложная нейродинамическая система, которая представляет собой афферентную часть рефлекторного аппарата.
  11. Античная система стихосложения.
  12. Архитектура архаического периода. Ордерная система в архитектуре Древней Греции.


Последнее изменение этой страницы: 2016-08-24; Просмотров: 1287; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.026 с.)
Главная | Случайная страница | Обратная связь