русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-23; просмотров: 3709; Нарушение авторских прав


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В любой операционной системе поддерживается механизм, который позволяет пользовательским программам обращаться к услугам ядра ОС. В операционных системах наиболее известной советской вычислительной машины БЭСМ-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. Какие события могут вызвать внутренние прерывания?


<== предыдущая лекция | следующая лекция ==>
Расчёт поля лигандов и штарковских расщеплений | Обработка прерываний


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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