Главная страница
Навигация по странице:

  • 1.1 Что делают операционные системы

  • 1.1.1 Вид пользователя

  • 1.1.2. Представление системы

  • 1.1.3 Определение операционных систем

  • 1.2 Организация компьютерной системы

  • 1.2.1 Прерывания

  • 1.2.1.1 Обзор

  • Рисунок 1.3

  • Глава 1. Введение. Концепция операционных систем


    Скачать 0.54 Mb.
    НазваниеКонцепция операционных систем
    Анкорdmaster
    Дата13.10.2022
    Размер0.54 Mb.
    Формат файлаdocx
    Имя файлаГлава 1. Введение.docx
    ТипДокументы
    #731212
    страница2 из 7
    1   2   3   4   5   6   7

    ЦЕЛИ ГЛАВА

    • Описать общую организацию компьютерной системы и роль прерываний.

    • Описать компоненты в современной многопроцессорной компьютерной системе.

    • Проиллюстрировать переход из пользовательского режима в режим ядра.

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

    • Привести примеры бесплатных и открытых операционных систем.

    1.1 Что делают операционные системы

    Мы начнем наше обсуждение с рассмотрения роли операционной системы в общей компьютерной системе. Компьютерная система может быть разделена на четыре компонента: аппаратное обеспечение, операционную систему, прикладные программы и пользователя (рисунок 1.1). Аппаратное обеспечение - центральный процессор (ЦП), память и устройства ввода / вывода (I / O) - обеспечивает основные вычислительные ресурсы для системы. Прикладные программы, такие как текстовые процессоры, электронные таблицы, компиляторы и веб-браузеры, определяют способы использования этих ресурсов для решения компьютерных проблем пользователей. Операционная система управляет аппаратным обеспечением и координирует его использование в различных прикладных программах для различных пользователей. Мы также можем рассматривать компьютерную систему как состоящую из оборудования, программного обеспечения и данных. Операционная система предоставляет средства для правильного использования этих ресурсов в работе компьютерной системы. Операционная система похожа на правительство. Как и правительство, оно само по себе не выполняет никакой полезной функции. Это просто обеспечивает среду, в которой другие программы могут выполнять полезную работу. Чтобы более полно понять роль операционной системы, мы в следующий раз исследуем операционные системы с двух точек зрения: пользователя и этой системы.

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

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

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

    1.1.3 Определение операционных систем К настоящему времени вы, вероятно, можете видеть, что термин «операционная система» охватывает многие роли и функции. Это имеет место, по крайней мере частично, из-за бесчисленных конструкций и использования компьютеров. Компьютеры присутствуют в тостерах, автомобилях, кораблях, космических кораблях, домах и предприятиях. Это базовые игровые автоматы, тюнеры кабельного телевидения и промышленные системы управления. Чтобы объяснить эту диверсификацию, мы переходим к истории компьютеров. Несмотря на то, что компьютеры имеют относительно короткую историю, они развивались довольно быстро. Компьютерные вычисления начались как эксперимент с целью определения того, что можно сделать, и быстро перешли к системам фиксированного назначения для военных целей, таких как взлом кода и построение траекторий, и к правительственным применениям, таким как расчет переписи населения. Эти ранние компьютеры были созданы в универсальном, многофункциональном базовом блоке, и это были работающие системы. В 1960-х годах Мур Лав предсказал, что число транзисторов в интегральной схеме будет удваиваться каждые 18 месяцев, и этот прогноз подтвердился. Компьютеры приобрели функциональность и сократились в размерах, что привело к огромному количеству использования и огромному количеству и разнообразию операционных систем. (См. Приложение A для более подробной информации об истории операционных систем.) Как же тогда мы можем определить, что такое работающая система? В целом, мы не имеем полностью адекватного определения операционной системы. Операционные системы существуют, потому что они предлагают разумный способ решить проблему создания пригодной для использования вычислительной системы. Основной целью компьютерных систем является выполнение программ и облегчение решения пользовательских проблем. Компьютерное оборудование построено для этой цели. Поскольку одно только аппаратное обеспечение не особенно удобно, прикладные программы разрабатываются. Этим программам требуются определенные общие операции, например, те, которые управляют устройствами ввода-вывода. Общие функции управления и распределения ресурсов объединяются в одно программное обеспечение: операционную систему. Кроме того, у нас нет общепринятого определения того, что является частью операционной системы. Простая точка зрения заключается в том, что она включает в себя все, что относится к вашей «операционной системе». Однако функции в разных системах сильно различаются. Некоторые системы занимают меньше мегабайта пространства и не имеют даже полноэкранного редактора, в то время как другим требуются гигабайты пространства и базы данных для всех оконных систем. Более общее определение и, как правило, следующее, это то, что операционная система - это единственная программа, работающая на компьютере все время, обычно называемая ядром. Наряду с ядром существует два других типа программ: системные программы, которые связаны с операционной системой, но не обязательно являются частью ядра, и прикладные программы, которые включают в себя все программы, не связанные с работой системы. Вопрос о том, что представляет собой операционная система, становится все более важным, так как персональные компьютеры становятся все более распространенными, а операционные системы становятся все более изощренными. В 1998 году министерство юстиции Соединенных Штатов подало иск против Microsoft, в сущности утверждая, что Microsoft включила в свои операционные системы множество функциональных возможностей и, соответственно, препятствуя поставщикам приложений (например, веб-браузер стал неотъемлемой частью операционной системы Microsoft). Однако сегодня, если мы посмотрим на операционные системы для мобильных устройств, мы увидим, что число функций, составляющих операционную систему, снова увеличивается. Мобильные операционные системы часто включают в себя не только ядро, но и промежуточное программное обеспечение - набор программных сред, которые предоставляют дополнительные услуги разработчикам приложений. Например, каждая из двух наиболее известных мобильных операционных систем - Apple iOS и Android - имеет ядро и промежуточное программное обеспечение, которое поддерживает базы данных, мультимедиа и графику (и это лишь некоторые из них). Таким образом, для наших целей операционная система включает в себя постоянно работающее ядро, платформы промежуточного программного обеспечения, которые облегчают разработку приложений и предоставляют функции, и системные программы, которые помогают управлять системой во время ее работы. Большая часть этого текста посвящена ядру универсальных операционных систем, но другие компоненты обсуждаются по мере необходимости, чтобы полностью объяснить структуру и работу операционной системы.

    1.2 Организация компьютерной системы

    Компьютерная система общего назначения состоит из одного или нескольких ЦПУ и нескольких устройств-контроллеров, подключенных через шину, обеспечивающую доступ между компонентами и разделяемой памятью (рисунок 1.2). Каждый контроллер устройства отвечает за конкретный тип устройства (например, дисковод, аудиоустройство или графический дисплей). В зависимости от контроллера может быть подключено более одного устройства. Например, один системный USB-порт может подключаться к USB-концентратору, к которому могут подключаться несколько устройств. Контроллер устройства поддерживает некоторое локальное буферное хранилище и набор регистров специального назначения. Контроллер устройства отвечает за перемещение данных между периферийными устройствами, которыми он управляет, и его локальным буферным хранилищем. Как правило, операционные системы имеют драйвер устройства для каждого контроллера устройства. Этот драйвер устройства понимает контроллер устройства и предоставляет остальную часть операционной системы через интерфейс устройства. ЦПУ и устройства могут выполнять параллельные, конкурирующие между собой циклы. В следующих подразделах мы описываем некоторые основные принципы работы такой системы, фокусируясь на трех основных аспектах системы. Запускаем прерывания, которые предупреждают ЦП о событиях, требующих внимания. Затем мы обсудим структуру хранения и структуру ввода / вывода.

    1.2.1 Прерывания. Рассмотрим типичную компьютерную работу: при выполнении операций ввода-вывода с помощью программы ввода-вывода. Драйвер устройства загружает соответствующие регистры в контроллер устройства. Контроллер устройства, в свою очередь, проверяет содержимое этих регистров, чтобы определить, какое действие предпринять (например, «прочитать символ с клавиатуры»). Контроллер запускает передачу данных из локального буфера устройства. Как только передача данных завершена, контроллер устройства сообщает драйверу устройства, что он завершил свою работу. Затем драйвер устройства предоставляет управление другим частям операционной системы, возможно, возвращая данные или указатель на данные для операции. Для других операций драйвер устройства возвращает информацию о состоянии, такую как «запись успешно завершена» или «занято устройство». Но как контролер сообщает, что закончил свою работу? Это достигается с помощью прерывания.

    1.2.1.1 Обзор Аппаратное обеспечение может инициировать прерывание в любое время, посылая сигнал в ЦП, обычно через системную шину. (В компьютерной системе может быть много шин, но системная шина является основным каналом связи между основными компонентами.) Прерыватели также используются для многих других целей и являются ключевой частью взаимодействия операционных систем и аппаратного обеспечения. Когда процессор прерывается, он останавливает свою работу и немедленно передает выполнение в фиксированное место. Фиксированное местоположение обычно содержит начальный адрес, где находится служебная процедура для прерывания. Процедура обслуживания прерывания выполняется; по завершении CPU возобновляет прерванные вычисления. Временная шкала этой операции показана на рисунке 1.3. Чтобы запустить анимацию, связанную с этим рисунком, нажмите здесь. Прерывания являются важной частью архитектуры компьютера. Каждый компьютерный дизайн имеет свой собственный механизм прерываний, но некоторые функции являются общими. Контроллер службы прерывания, в свою очередь, вызовет специфичный для прерывания обработчик. Однако прерывания должны выполняться быстро, поскольку они происходят очень часто. Вместо них можно использовать таблицу указателей на прерывания, чтобы обеспечить необходимую скорость. Подпрограмма прерывания вызывается косвенно через таблицу, без промежуточной подпрограммы. Как правило, таблица указателей хранится в памяти (первые сто или несколько мест). Эти местоположения содержат адреса подпрограмм обработки прерываний для различных устройств. Этот массив или вектор прерываний адресов затем индексируется по уникальному номеру, указанному в запросе на прерывание, для предоставления адреса подпрограммы обработки прерывания для устройства прерывания. Операционные системы как разные, как Windows и UNIX диспетчеризируют прерывания в этом порядке. Архитектура прерывания должна сохранять информацию о том, что было прервано, чтобы она могла восстановить эту информацию после обслуживания прерывания. Если подпрограмме прерывания необходимо изменить состояние процессора, например, путем изменения значений регистра, она должна явно сохранить текущее состояние, а затем восстановить это состояние до возвращения. После обработки прерывания сохраненный адрес возврата загружается в счетчик программ, и прерванные вычисления возобновляются, хотя прерывание не произошло.



    Рисунок 1.3 Временная шкала прерывания для одной программы, выполняющей вывод.

    1.2.1.2 Реализация Основной механизм прерываний работает следующим образом. Аппаратное обеспечение ЦП имеет проводную связь с запросом прерывания, которая использует ПК для выполнения каждой инструкции. Когда ЦП обнаруживает, что контроллер установил сигнал в строке запроса прерывания, он считывает номер прерывания и переходит к процедуре обработчика прерываний, используя этот номер прерывания в качестве индекса в векторе прерываний. Затем он начинает выполнение по адресу, связанному с этим индексом. Обработчик прерываний сохраняет любое состояние, которое он будет изменять во время своей работы, определяет причину прерывания, выполняет необходимую обработку, выполняет восстановление состояния и выполняет команду возврата из прерывания, чтобы вернуть ЦП в состояние выполнения до прерывания. Мы говорим, что контроллер устройства вызывает прерывание, выдавая сигнал в строке запроса на прерывание, ЦП перехватывает прерывание и отправляет его обработчику прерываний, а обработчик прерывает, обслуживая устройство. Рисунок 1.4 суммирует цикл ввода-вывода, управляемый прерываниями. Базовый механизм прерывания должен описывать достоверность ЦП, чтобы ответить на любой случай, когда аппаратный контроллер становится уже готовым к обслуживанию. Однако в современной операционной системе появились более сложные функции обработки прерываний.

    1. Нужна была возможность отсрочить прерывание при критической обработке.

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

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

    В современном компьютерном оборудовании эти три функции предоставляются процессором и оборудованием контроллера прерываний.

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

    Большинство процессоров имеют две строки запроса прерывания. Одним из них является немаскируемое прерывание, которое зарезервировано для таких событий, как неисправимые ошибки памяти. Вторая строка прерывания является маскируемой: она может быть отключена ЦПУ до выполнения последовательности критических инструкций, которую нельзя прерывать. Маскируемое прерывание используется контроллерами устройств для запроса обслуживания. Напомним, что целью механизма исправленных прерываний является необходимость в едином обработчике прерываний для поиска всех возможных источников прерываний, чтобы определить, какой из них нуждается в обслуживании. На практике, однако, компьютеры имеют больше устройств (и, следовательно, блокировщиков прерываний), чем элементов адреса в векторе прерываний. Распространенным способом решения этой проблемы является использование цепочки прерываний, в которой каждый элемент в векторе прерываний указывает на заголовок списка обработчиков прерываний. Когда возникает прерывание, обработчики в соответствующем списке вызываются один за другим, пока не будет найден один, который сможет обслуживать запрос. Эта структура является компромиссом между накладными расходами огромного прерываемого прерывания и неэффективностью диспетчеризации одного обработчика прерываний. Рисунок 1.5 иллюстрирует конструкцию вектора прерываний для процессоров Intel. События от 0 до 31, которые не маскируются, используются для сигнализации о различных состояниях ошибки. События от 32 до 255, которые являются маскируемыми, используются для таких целей, как генерируемые устройством прерывания. Механизм прерываний также реализует систему уровней приоритета прерываний. Эти уровни позволяют ЦП откладывать обработку низкоприоритетного интерфейса.

    номер вектора

    описание

    0

    ошибки деления

    1

    исключение отладки

    2

    нулевая точка прерывания

    3

    точка прерывания

    4

    INTO-обнаруженное исключение переполненного диапазона

    5

    исключение ограничения

    6

    неверный код операции

    7

    устройство недоступно

    8

    двойная ошибка

    9

    Переполнение сегмента сопроцессора (зарезервировано)

    10

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

    11

    сегмент отсутствует

    12

    ошибка стека

    13

    общая защита

    14

    ошибка страницы

    15

    (Intel защищены, не используйте)

    16

    ошибка с плавающей точкой

    17

    проверка выравнивания

    18

    машинная проверка

    19–31

    (Intel защищены, не используйте)

    32–255

    маскируемые прерывания
    1   2   3   4   5   6   7


    написать администратору сайта