Основные функции и структура ОС




Классификация ОС

Существуют различные виды классификации ОС по тем или иным признакам, отражающие разные существенные характеристики систем.

· По назначению.

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

- Системы реального времени. Этот важный класс систем предназначен для работы в контуре управления объектами (такими, как летательные аппараты, технологические установки, автомобили, сложная бытовая техника и т.п.). Из подобного назначения вытекают жесткие требования к надежности и эффективности системы. Должно быть обеспечено точное планирование действий системы во времени. Особый подкласс составляют системы, встроенные в оборудование. Такие системы годами могут выполнять фиксированный набор программ, не требуя вмешательства человека-оператора на более глубоком уровне, чем нажатие кнопки «Вкл.».

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

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

· По характеру взаимодействия с пользователем.

- Пакетные ОС, обрабатывающие заранее подготовленные задания.

- Диалоговые ОС, выполняющие команды пользователя в интерактивном режиме. Красивое слово «интерактивный» означает постоянное взаимодействие системы с пользователем.

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

- Встроенные ОС, не взаимодействующие с пользователем.

· По числу одновременно выполняемых задач.

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

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

· По числу пользователей.

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

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

· По аппаратурной основе.

- Однопроцессорные ОС. В данном курсе будут рассматриваться только они.

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

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

- Распределенные ОС. Их отличие от сетевых заключается в том, что распределенная система, используя ресурсы локальной сети, представляет их пользователю как единую систему, не разделенную на отдельные машины.

 

Основные функции и структура ОС

Операционная система – это набор программ, обеспечивающих организацию вычислительного процесса на ЭВМ.

Принято выделять четыре основных группы функций, выполняемых системой:

· Управление устройствами. Имеются в виду все периферийные устройства, подключаемые к компьютеру, – клавиатура, монитор, принтеры, диски и т.п.

· Управление данными. Под этим старинным термином сейчас понимается работа с файлами, хотя были времена, когда обращение к данным на магнитных носителях выполнялось путем указания адреса размещения данных на устройстве, а понятия файла не существовало.

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

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

Имеется также несколько важных функций, ложащихся на ОС:

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

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

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

Ядро ОС – это основная, резидентная часть системы, т.е. к ядру относится тот программный код, который постоянно находится в памяти в течение всей работы системы. В ос Windows ядро взаимодействует с 3 основными диспетчерами:

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

2. Диспетчер настраиваемой файловой системы (ФС) – здесь поддерживается FAT и NTFS для установки ОС и сторонние ФС – для чтения или редактирования.

3. Диспетчер конфигурации – обеспечивает технологию Plug-&-Play. Он идентифицирует все устройства, загружает необходимые драйверы, с целью выделения ресурсов обращается к арбитрам ресурсов.

Основные функции ядра в ос Linux:

  1. Инициализация системы – запуск, bootstrap – процедура раскрутки и загрузки полного ядра в память, запуск ядра;
  2. Управление процессами и нитями – создание, завершение и отслеживание процессов и нитей, разделение между запущенными процессами времени процессора(-ов в SMP), распараллеливание процессов;
  3. Управление памятью – создание ФС, файлов, доступ к внешним устройствам на уровне ФС;
  4. Коммуникации и обмен данными между процессами локальными и сетевыми (IPC = Inter-Process Communications), а также между процессами и драйверами;
  5. Создание программного интерфейса – функция доступа к возможностям ядра со стороны пользовательских процессов с помощью системных вызовов, оформленных в виде библиотек функций.

 

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

Нити имеют собственные:

  • программный счетчик, стек, регистры, нити-потомки, состояние.

Нити разделяют:

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

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

· утилиты (utilities) – отдельные системные программы, решающие частные задачи, такие как форматирование и проверку диска, поиск данных в файлах, мониторинг (отслеживание) работы системы и многое другое;

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

· интерпретатор команд – программа, выполняющая ввод команд пользователя, их анализ и вызов других модулей для выполнения команд;

· системный загрузчик – программа, которая при запуске ОС (например, при включении питания) обеспечивает загрузку системы с диска, ее инициализацию и старт;

· другие виды программ, в зависимости от конкретной системы.

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

В качестве программного интерфейса системы, т.е. средств для обращения прикладных программ к услугам ОС, используется документированный набор системных вызовов или функций API (Applied Programming Interface).

Систе́мный вы́зов - обращение прикладной программы к ядру операционной системы для выполнения какой-либо операции.

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

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

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

 

19.09.2012

Драйвера устройств

Это системная программа, которая под управлением ОС выполняет все операции с конкретным периферийным устройством.

Перед драйверами стоят две задачи:

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

2. Добиться максимально эффективного использования всех функциональных возможностей конкретных устройств.

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

К наиболее важным функциям драйвера относятся следующее:

· Открытие устройства – как минимум при этом увеличивается счетчик текущих обращений к устройствам, что позволяет ставить обращения к устройствам в очередь, если устройство занято.

· Закрытие устройства – обратное «открытию устройства».

· Обработка прерывания – выполняется ввод или вывод очередной порции данных, когда устройство переходит в состояние готовности.

· Опрос устройства – эта функция выполняется для тех устройств, которые не генерируют прерывание.

· Вызов стратегии – это способ выполнения операций ввода-вывода характерные для блочных устройств.

· Выполнение специальных функций –

Типичный драйвер устройство содержит как минимум три основных устройства:

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

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

3. Блок прерывания – система его вызывает, когда получает сигнал прерывания от устройства. Закончив выполнения заявки, данный блок возвращает управление блоку стратегии для завершения операции.

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

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

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

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

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

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

 

03.10.2012



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: