3 Основные понятия и концепция операционных систем. Режимы работы ос. Системные вызовы

1
Операцио́нная систе́ма
,
сокр. ОС (англ. operating
system, OS
) —
комплекс взаимосвязанных программ,
предназначенных для управления ресурсами
компьютера и организации взаимодействия
с пользователем.

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

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

В
большинстве вычислительных систем
операционная система является основной,
наиболее важной (а иногда и единственной)
частью системного
программного обеспечения.
С 1990-х годов наиболее распространёнными
операционными системами являются
системы семейства Windows и
системы класса UNIX (особенно Linuxи Mac
OS).

Основные
функции:

  • Исполнение
    запросов программ (ввод и вывод данных,
    запуск и остановка других программ,
    выделение и освобождение дополнительной
    памяти и др.).

  • Загрузка
    программ в
    оперативную память и их выполнение.

  • Стандартизованный
    доступ к периферийным устройствам
    (устройства
    ввода-вывода).

  • Управление
    оперативной памятью (распределение
    между процессами, организация виртуальной
    памяти).

  • Управление
    доступом к данным на энергонезависимых
    носителях (таких как жёсткий
    диск, оптические
    диски и
    др.), организованным в той или иной файловой
    системе.

  • Обеспечение пользовательского
    интерфейса.

  • Сохранение
    информации об ошибках системы.

Дополнительные
функции:

  • Параллельное
    или псевдопараллельное выполнение
    задач (многозадачность).

  • Эффективное
    распределение ресурсов вычислительной
    системы между процессами.

  • Разграничение
    доступа различных процессов к ресурсам.

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

  • Взаимодействие
    между процессами:
    обмен данными, взаимная синхронизация.

  • Защита
    самой системы, а также пользовательских
    данных и программ от действий пользователей
    (злонамеренных или по незнанию) или
    приложений.

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

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

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

Ниже
приведена классификация ОС по нескольким
наиболее основным признакам.

Особенности алгоритмов управления
ресурсами

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

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

  • однозадачные
    (например, MS-DOS, MSX) и

  • многозадачные
    (OC EC, OS/2, UNIX, Windows 95).

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

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

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

  • однопользовательские
    (MS-DOS, Windows 3.x, ранние версии OS/2);

  • многопользовательские
    (UNIX, Windows NT).

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

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

  • невытесняющая
    многозадачность (NetWare, Windows 3.x);

  • вытесняющая
    многозадачность (Windows NT, OS/2, UNIX).

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

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

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

В наши дни
становится общепринятым введение в ОС
функций поддержки многопроцессорной
обработки данных. Такие функции имеются
в операционных системах Solaris 2.x фирмы
Sun, Open Server 3.x компании Santa Crus Operations, OS/2
фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы
Novell.

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

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

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

3 Основные понятия и концепция операционных систем. Режимы работы ос. Системные вызовы

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

Системные
вызовы
 (system
calls) – это интерфейс между операционной
системой
 и
пользовательской программой.

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

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

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

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

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

Прерывания

Прерывание (hardware
interrupt) – это событие, генерируемое
внешним (по отношению к процессору)
устройством.

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

Важный
тип аппаратных прерываний – прерывания таймера,
которые генерируются периодически
через фиксированный промежуток времени.

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

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

Исключительные
ситуации

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

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

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

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

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

Файлы

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

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

Leave a Comment