Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Основные понятия, концепции ОС

В процессе эволюции возникло несколько важных концепций, кото­рые стали неотъемлемой частью теории и практики ОС. Рассмотрим и опишем некоторые из них.

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

Функции ядра:

­ Обработка прерываний.

­ Создание/уничтожение процесса.

­ Переключение процесса из состояния в состояние.

­ Диспетчеризация (регулировка).

­ Приостановка и активизация.

­ Синхронизация процесса.

­ Организация взаимодействия между процессами.

­ Манипулирование БУП.

­ Поддержка операций ввода/вывода.

­ Поддержка распределения и перераспределения памяти.

­ Поддержка работы файловой системы.

Системные вызовы

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

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

Основное отличие состоит в том, что при системном вызове задача переходит в привилегированный режим или режим ядра (kernel mode). По­этому системные вызовы иногда еще называют программными прерыва­ниями, в отличие от аппаратных прерываний, которые чаще называют просто прерываниями.

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

В большинстве операционных систем системный вызов осуществля­ется командой программного прерывания (INT). Программное прерыва­ние — это синхронное событие, которое может быть повторено при выпол­нении одного и того же программного кода.

Прерывания

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

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

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

­ установление факта прерывания (прием сигнала запроса на прерывание) и идентификация прерывания;

­ запоминание состояния прерванного процесса вычислений;

­ управление аппаратно передается на подпрограмму обработку прерывания;

­ сохранение информации о прерванной программе, которую не удалось спасти на шаге 2 с помощью аппаратуры;

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

­ восстановление информации, относящейся к прерванному процессу;

­ возврат на прерванную программу.

Шаги 1-3 реализуются аппаратно, шаги 4-7 – программно.

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

- прерывания от таймера;

- прерывания от внешних устройств;

- прерывания по нарушению питания;

- прерывания с пульта оператора вычислительной системы.

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

- при нарушении адресации (в адресной части выполняемой команды указан запрещенный или несуществующий адрес;

- при делении на ноль;

- от средств контроля (например, вследствие обнаружения ошибки четности, ошибок в работе различных устройств).

Таблица 1. Основные классы прерываний

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

 

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

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

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

Цикл исполнения программы с прерываниями

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

Контрольные вопросы

  1. Что понимают под ядром операционной системы?
  2. Перечислите функции ядра.
  3. Для чего служат системные вызовы7
  4. Дайте определение понятию «прерывание».
  5. Какова цель введения прерываний?
  6. Что представляет собой механизм обработки прерываний?
  7. На какие классы делятся прерывания?
  8. Каковы причины возникновения внешних прерываний?
  9. Какие события могут вызвать внутренние прерывания?
<== предыдущая лекция | следующая лекция ==>
 | Обработка прерываний
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 786; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.