Основы организации операционных систем

Автор: Пользователь скрыл имя, 24 Марта 2013 в 11:42, курс лекций

Описание работы

Первые шаги по созданию электронных вычислительных машин были предприняты в конце второй мировой войны. В середине 40-х были созданы первые ламповые вычислительные устройства, и появился принцип программы, хранимой в памяти машины (John Von Neumann, июнь 1945г). В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не регулярное использование компьютеров в качестве инструмента решения каких-либо практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке.

Работа содержит 1 файл

Konspekt_lektsy_tekuschy_variant.doc

— 825.50 Кб (Скачать)

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

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

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

Так, операционные системы  делятся:

  • По числу одновременно выполняющихся задач: на однозадачные (MS DOS) и многозадачные (OS/2, Unix, Windows, QNX).

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

  • по числу одновременно работающих пользователей на ЭВМ: на однопользовательские и многопользовательские.

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

  • однопроцессорные и многопроцессорные системы.

В многопользовательских ОС существуют средства защиты информации каждого  пользователя от несанкционированного доступа других пользователей. Одним из важных свойств ОС является наличие в ней средств поддержки многопроцессорной обработки  данных. Такие средства существуют в OS/2, Net Ware, Windows NT, QNX. По способу организации вычислительного процесса эти ОС могут быть разделены на асимметричные и симметричные

  • локальные и сетевые.

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

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

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

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

Термин спулинг (spooling) не имеет общепринятого русского аналога. В соответствии с программистским фольклором, слово это происходит от аббревиатуры Simultaneous Peripherial Operation Off-Line. Эту фразу трудно дословно перевести на русский язык; имеется в виду метод работы с внешними устройствами вывода (реже — ввода) в многозадачной ОС или многомашинной среде, при котором задачам создается иллюзия одновременного доступа к устройству. При этом, однако, задачи не получают к устройству прямого доступа, а работают в режиме offline (без прямого подключения). Выводимые данные накапливаются системой (например, на внешнем запоминающем устройстве), а затем выводятся на устройство так, чтобы вывод различных задач не смешивался.

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

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

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

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

 

Глава 3 (лекция 5)

Аппаратная  часть ЭВМ (HardWare) и её влияние на ОС

 

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

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

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

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

Структура адресации.

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

где слева регистры процессора R1, R2 … Rn, а справа ячейки памяти. Зачем  нужны регистры? В процессор поступает некоторое количество данных (несколько операндов), и с ними необходимо провести некоторые действия. Поступили эти операнды из оперативной памяти, и процессор по команде начал с ними работать. Поскольку действий над ними несколько, то работа разбивается на несколько этапов и результат каждого необходимо запомнить. Самый простой способ - сохранить в ячейках оперативной памяти, но на передачу и запись этих данных в память уйдет время, так как память работает значительно медленнее процессора. К тому же речь идет о промежуточных результатах, которые необходимо будет еще много раз использовать, поэтому будут большие временные потери. Поэтому используются регистры внутри процессора, которые работают значительно быстрее, по сути дела на тактовой частоте процессора. К тому же адресация к ним происходит быстрее.

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

Команда делится на две области: область кода операции и область  адресов. Вначале идет код операции (КОП) который говорит, что вообще необходимо делать, а затем идет адрес операнда/операндов с которым/которыми это надо делать. Адресная область может состоять из нескольких частей – это, так называемые многоадресные команды. С точки зрения программиста, наиболее удобны трехадресные (ранее были распространены четырехадресные, которые уже практически не применяются).

Адресная область  состоит из трех полей: в первых двух лежат адреса операндов, а в третье будет записан адрес результата действия над операндами.

В двухадресных командах адресная область состоит  из двух полей: поле адреса первого операнда и поле адреса второго операнда. Адрес результата действия над операндами будет записан в первое поле.

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

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

Адресный код - это информация об адресе операнда, содержащаяся в команде.

Исполнительный адрес - это номер ячейки памяти, к которой производится фактическое обращение.  

В современных  ЭВМ адресный код, как правило, не совпадает с исполнительным адресом.

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

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

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

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

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

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

 

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

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

Все выше приведенные типы адресации  касались одного операнда. А как же быть в случае с несколькими операндами или говоря другим языком – массивами? Тогда обычно указывается адрес массива и номер (индекс) элемента. Базовый (начальный) адрес указывается в команде. Кроме этого, там же, в команде, есть поле, где указан номер регистра, в котором лежит значение индекса или номер ячейки в массиве относительно начального адреса. Тогда адрес каждой ячейки массива будет получаться из суммы начального адреса и того, что содержит указанный регистр. Такой способ называется модификацией адресов.

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

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

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

Информация о работе Основы организации операционных систем