Дисциплины - Операционные системы мобильных устройств

Что такое операционная система - Процессы

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

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

Операционная система контролирует следующую деятельность, связанную с процессами:

  1. создание и удаление процессов
  2. планирование процессов
  3. синхронизация процессов
  4. коммуникация процессов
  5. разрешение тупиковых ситуаций

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

Создание процесса

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

  • При запуске ОС;
  • При появлении запроса на создание процесса.

Инициализация

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

В UNIX системах устанавливаются строгая иерархия процессов по принципу родитель потомок. Родитель имеет право контролировать работу потомка, приостанавливать или завершать его выполнение. Потомок не имеет никаких прав по отношению к родителям, «братьям», «дядям».

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

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

Порождение нового процесса

Порождение нового процесса это длительная процедура, так как ОС должна выполнить множество действий:

  1. Выделить процессу необходимые ресурсы (адресное пространство, файлы, устройство и т.д.);
  2. Произвести инициализацию этих ресурсов (загрузить выполняемую программу в ОП, инициализировать первое начальное значение регистров и стеков, открыть файлы и т.д.);
  3. Занести всю необходимую информацию в специальную таблицу, описывающую процессу в системе;
  4. Передать управление новому процессу.

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

Планирование процессов

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

Для всех ОС соблюдается следующие принципы планирования:

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

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

  1. Максимальная пропускная способность ЭВМ в целом.
  2. Максимальное использование процессора.
  3. Минимальное время выполнения одного задания (процесса).

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

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

Состояния процесса

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

Linux Процесс в ОС Linux может находиться в одном из следующих состояний:

R (running) — процесс исполняется или ожидает своей очереди;

D — непрерываемый сон (ожидает события);

S — прерываемый сон (ожидает определённого события или сигнала);

T — остановка — процесс приостановлен чем-либо;

Z (zombie) — процесс уже завершился, но ещё не передал родительскому процессу свой код возврата.

Взаимоблокировка процессов

Блокировкой процессов называют состояние системы, при котором 2 или более процессов не могут продолжать свое выполнение из-за отсутствия необходимых для этого ресурсов.

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

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

  1. Снятие оператором выполняющихся процессов до тех пор, пока не исчезнет взаимоблокировка. Этот путь эффективен лишь в том случае, когда количество выполняющихся процессов не очень велико (не превышает 100). При большом количестве выполняющихся процессов этот путь чаще всего не помогает преодолеть блокировку.
  2. Перезагрузка системы этот путь преодоления блокировок наиболее радикальный, но и наиболее дорогой.
  3. Рестарт системы с так называемой контрольной точки.

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

Имеются два противоположных способа борьбы с взаимоблокировками:

  1. Полное игнорирование угроз возникновения взаимоблокировок.
  2. Построение такой ОС, которая просчитывает на несколько шагов вперед ситуацию, которая может возникнуть в ЭВМ после запуска определенного процесса. Такое построение ОС ведет к существенному усложнению ее структуры, однако не решает проблемы на 100%, так как любая сложная программа имеет большое количество не выявленных ошибок.

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

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

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться
Вопросы