а) Двухконтекстность работы процессора. В каждый момент времени процессор исполняет программу либо из состава ОС, либо некоторую прикладную программу. В первом случае могут выполняться любые команды, в том числе и системные (то есть привилегированные), которые могут изменить состояние всей системы. Во втором случае необходимо гарантировать невозможность выполнения привилегированных команд. Это достигается введением в архитектуру ЭВМ как минимум двух режимов. Первый -привилегированный, в котором могут выполняться все команды, включая системные, и в котором работает большинство программ ОС; второй - непривилегированный, в котором выполняются все пользовательские программы, и запрещено выполнение системных команд, а попытка выполнить такую команду пользовательской программой обнаруживается аппаратными средствами, которые автоматически переводят процессор в привилегированный режим и передают управление программе ОС, которая выдает сообщение об ошибке. В современных процессорах, начиная с 486-го и выше, используются четыре уровня привилегий:
|
Рисунок называется «кольца защиты». На наиболее привилегированном уровне 1 разрешено выполнение всех команд, включая системные, а на 2, 3, 4 уровнях системные команды запрещены. Доступ к данным i-го уровня для программы j-го уровня при i>j запрещен. Обращение к подпрограммам разрешено только в пределах одного кольца, то есть программа i-го уровня может передать управление другой программе, но только i-го уровня.
б) Контекстная защита. В общем случае программы одного пользователя размещаются в непрерывной области адресного пространства оперативной памяти фиксированного размера. Преднамеренная или случайная попытка любой программы из этой области выйти за границы выделенного адресного пространства аппаратно обнаруживается схемами контроля процессора, а затем программа-нарушитель прерывается и управление передается на программу ОС.
в) Пароль. Традиционно используется для защиты долговременно хранимых данных (файлов). Доступ к данным получает лишь тот пользователь, который правильно назовет пароль, известный системе.
9. Принцип независимости программ от внешних устройств.
Позволяет одинаково осуществлять обмен данными и управление внешними устройствами, независимо от их конкретных характеристик. Это достигается путем включения в состав ОС специальных программ, реализующих непосредственное управление передачей данных между ЭВМ и определенным типом устройства. Такая программа называется драйвер. Для каждого внешнего устройства в ОС имеется свой драйвер, который (только он!) учитывает особенности обслуживаемого устройства. Процедура обращения и состав передаваемых при этом параметров универсален для всех драйверов конкретной ОС. Поэтому пользовательские программы, обращаясь к некоторому функциональному устройству (например, жесткому диску), активизируют соответствующий драйвер, который и реализует требуемую операцию с учетом специфики конкретного накопителя (например, числа дорожек).
10. Принцип открытости и наращиваемости.
Открытая ОС – это программная система, каждый компонент которой (любая подпрограмма, структура данных) доступен для анализа пользователем. Наращиваемая (модифицируемая) ОС позволяет, кроме возможности использования генерации, вводить в состав новые, доработанные или измененные модули.
Основные концепции ОС.
При некотором обобщении можно утверждать, что архитектура современной мультипрограммной ЭВМ является многопроцессорной. Под процессором при этом можно понимать любое устройство из состава ЭВМ, способное автономно выполнять допустимые для него операции в определенном порядке, то есть по программе. Тогда кроме центрального процессора (одного или нескольких), процессором может быть назван канал или устройство, работающее под управлением канала. При таком подходе можно и оператора рассматривать как процессор. Любая работа или деятельность в вычислительной системе может быть представлена как выполнение некоторой программы на некотором процессоре. В отношении каждого пользователя, претендующего на выполнение своей программы на некотором процессоре, и системы, распределяющей этот процессор среди множества пользователей, вводится понятие «процесс».
ПРОЦЕСС – это некоторая абстракция, под которой понимается определенная деятельность, связанная с выполнением программы на процессоре. Таким образом, процесс не эквивалентен программе и не то же самое, что процессор. Для операционной системы процесс представляет собой единицу работы, заявку на потребление системных ресурсов
Процесс – это пара: процессор + программа. Подсистема управления процессами планирует выполнение процессов, то есть распределяет процессорное время между несколькими одновременно существующими в системе процессами, а также занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает взаимодействие между процессами. Для процесса, образованного центральным процессором и программой, чаще всего различают следующие состояния:
а) ПОРОЖДЕНИЕ (подготовка условий для первого исполнения на процессоре, то есть загрузка, ввод паролей и т.д.);
б) ВЫПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;
в) ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса;
г) ГОТОВНОСТЬ - также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.
д) ОКОНЧАНИЕ (нормальное или аварийное завершение исполнения программы, после которого процессор и другие ресурсы ей не предоставляются).
В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ - несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов. Жизненный цикл процесса начинается с состояния ГОТОВНОСТЬ, когда процесс готов к выполнению и ждет своей очереди. При активизации процесс переходит в состояние ВЫПОЛНЕНИЕ и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ОЖИДАНИЯ какого-нибудь события, либо будет насильно "вытеснен" из процессора, например, вследствие исчерпания отведенного данному процессу кванта процессорного времени. В последнем случае процесс возвращается в состояние ГОТОВНОСТЬ. В это же состояние процесс переходит из состояния ОЖИДАНИЕ, после того, как ожидаемое событие произойдет.
Рис. 2.1. Граф состояний процесса в многозадачной среде
Состав допустимых состояний, а также допустимые переходы из состояния в состояние, могут быть заданы в виде графа существование процесса.
Свойства и классификация процессов.
Процесс может быть порожден в некоторый момент времени и в некоторый момент времени закончен. Интервал времени между этими двумя моментами называется интервалом существования процесса. Порядок и длительность пребывания процесса в допустимых состояниях на интервале существования называется трассой. В момент порождения некоторого процесса последовательность, а также длительность пребывания его в общем случае непредсказуемы, поэтому непредсказуема и длительность существования процесса. Однако, существуют такие виды процессов, которые требуют гарантированно завершить свою работу к некоторому моменту времени. Такие процессы называются процессами реального времени. Процессы, время существования которых должно быть не больше допустимой реакции на запросы пользователя, называют интерактивными. Все остальные процессы называют пакетными. Если на рассматриваемом интервале времени одновременно существуют два процесса, то они на этом интервале являются параллельными (на схеме они обозначены).
Если на рассматриваемом интервале найдется хотя бы одна точка, в которой существует один процесс, но не существует другой и хотя бы одна точка, в которой оба процесса существует одновременно, то такой процесс называется комбинированным (процессы В и С, например). Процессы, которые порождаются на центральном процессоре, называются программными (внутренними), а остальные, проходящие под контролем и управлением ОС, на процессорах, отличных от центрального, называют внешними (например, процесс ввода-вывода в канале). Если процесс развивается по программе из состава ОС, то такой процесс называется системным, а если по программе пользователя, то пользовательским. В ОС по требованиям существовавшего или существующего процесса могут выполняться действия по порождению процесса. Процесс, задающий это требование, называется порождающим (родительским), а создаваемый процесс – порожденным (дочерним). Два процесса, которые имеют один конечный результат обработки одних и тех же исходных данных по одной и той же или различным программам, на одном и том же или различных процессорах, называются эквивалентными. Если в каждом из эквивалентных процессов обработка данных происходит по одной и той же программе, но трасса в общем случае не совпадают, то такие процессы называются тождественными. При совпадении трасс у тождественных процессов их называют равными. Во всех остальных случаях процессы всегда различны. Процессы могут быть взаимосвязанными или изолированными друг от друга. Два процесса являются взаимосвязанными, если между ними поддерживаются с помощью ОС какого - либо рода связи (функциональные, управленческие, информативные и т.д.). В противном случае они являются изолированными или, точнее, слабосвязанными. Если 2 изолированных процесса (например, один запускает другой) при своем развитии совместно используют использование некоторые ресурсы, но не обмениваются между собой информацией, то такие процессы называются информационно независимыми. При наличии информационных связей между двумя процессами их называют взаимодействующими. Когда необходимо отметить связь двух процессов, использующих одни ресурсы, то их называют конкурирующими.
Процессы |
По исполнении процессором. | По принадлежности. к ОС | По родословной | По результативности | По динамике развития | По связи |
Внутренний | Системный | Порождающий | Различные | Последовательные | Информационно- независимые |
Внешний | Пользовательские | Порожденное | Тождественное | Параллельные | Изолированные |
|
|