Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Ресурсы компьютераВажнейшей функцией операционной системы является организация рационального исполь-зования всех аппаратных и программных ресурсов системы. К основным ресурсам могут быть от-несены: процессоры, память, внешние устройства, данные и программы. Располагающая одними и теми же ресурсами, но управляемая различными ОС, вычислительная система может работать с разной степенью эффективности. Поэтому знание внутренних механизмов операционной системы позволяет косвенно судить о ее эксплуатационных возможностях и характеристиках. Важнейшей частью операционной системы, непосредственно влияющей на функционирова-ние вычислительной машины, является подсистема управления процессами. Процесс (или, по- другому, задача) — абстракция, описывающая выполняющуюся программу. Для операционной системы процесс представляет собой единицу работы, заявку на потребление системных ресурсов. Подсистема управления процессами планирует выполнение процессов, то есть распределяет про-цессорное время между несколькими одновременно существующими в системе процессами, а также занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает взаимодействие между процессами. В многозадачной (многопроцессной) системе процесс может находиться в одном из трех ос-новных состояний: ВЫПОЛНЕНИЕ — активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором; ОЖИДАНИЕ — пассивное состояние процесса, процесс заблокирован, он не может выпол-няться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения ка-кого-либо необходимого ему ресурса; ГОТОВНОСТЬ — также пассивное состояние процесса, но в этом случае процесс заблоки-рован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса. В ходе жизненного цикла каждый процесс переходит из одного состояния в другое в соот-ветствии с алгоритмом планирования процессов, реализуемым в данной операционной системе. В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ - несколько процессов, эти про-цессы образуют очереди соответственно ожидающих и готовых процессов. Жизненный цикл про-цесса начинается с состояния ГОТОВНОСТЬ, когда процесс готов к выполнению и ждет своей очереди. При активизации процесс переходит в состояние ВЫПОЛНЕНИЕ и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ОЖИДАНИЯ какого-нибудь события, либо будет насильно "вытеснен" из процессора, например, вследствие исчерпания отве-денного данному процессу времени. В последнем случае процесс возвращается в состояние ГО-ТОВНОСТЬ. В это же состояние процесс переходит из состояния ОЖИДАНИЕ, после того, как ожидаемое событие произойдет.
Планирование процессов Планирование процессов включает в себя решение следующих задач: 1) определение момента времени для смены выполняемого процесса; 2) выбор процесса на выполнение из очереди готовых процессов; 3) переключение "старого" и "нового" процессов. Первые две задачи решаются программными средствами, а последняя в значительной степе-ни аппаратно. Существует множество различных алгоритмов планирования процессов, по разному решаю-щих вышеперечисленные задачи, преследующих различные цели и обеспечивающих различное качество программирования. Рассмотрим только две группы наиболее часто встречающихся алго-ритмов: основанные на квантовании и основанные на приоритетах. В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит, если: · процесс завершился и покинул систему, · произошла ошибка, · процесс перешел в состояние ОЖИДАНИЕ, · исчерпан квант процессорного времени, отведенный данному процессу. Процесс, который исчерпал свой квант, переводится в состояние ГОТОВНОСТЬ и ожидает, когда ему будет предоставлен новый квант процессорного времени, а на выполнение в соответст-вии с определенным правилом выбирается новый процесс из очереди готовых. Таким образом, ни один процесс не занимает процессор надолго, поэтому квантование широко используется в систе-мах разделения времени. Другая группа алгоритмов использует понятие "приоритет" процесса. Приоритет - это число, характеризующее степень привилегированности процесса при использовании ресурсов вычисли- тельной машины, в частности, процессорного времени: чем выше приоритет, тем выше привиле-гии. Приоритет может выражаться целыми или дробными, положительным или отрицательным значением.Чем выше привилегии процесса, тем меньше времени он будет проводить в очередях. Приоритет может назначаться директивно администратором системы в зависимости от важности работы или внесенной платы, либо вычисляться самой ОС по определенным правилам, он может оставаться фиксированным на протяжении всей жизни процесса либо изменяться во времени в со-ответствии с некоторым законом. В последнем случае приоритеты называются динамическими. Во многих операционных системах алгоритмы планирования построены с использованием как квантования, так и приоритетов. Например, в основе планирования лежит квантование, но ве-личина кванта и/или порядок выбора процесса из очереди готовых определяется приоритетами процессов. Возможны ситуации, при которых продолжение выполнения процессов по установленному плану невозможно или нецелесобразно. В таких случаях генерируется прерывание. Прерывание — сигнал, заставляющий ЭВМ менять обычный порядок исполнения потока команд. При прерывании процессор осуществляет автоматическое запоминание текущего состоя-ния ЦПУ, что позволяет возобновить прерванную работу, после чего вызывает автоматическую передачу управления заданной программе (обработчику прерывания). Физически прерывание представляется сигналом о прерывании работы, посылаемым процес-сору. Данный сигнал вызывает изменение состояния указателя, проверяемого в ходе выполнения каждой инструкции. Прерывание принуждает процессор приостановить в ближайшей точке пре-рывания выполнение текущей программы и приступить к выполнению другой, специальной про-граммы. Данная программа носит несколько названий: программа обработки прерываний; про-граммой прерываний; обработчик прерываний. Работа происходит в другом по отношению к пре-рываемой программе контексте.
Существует два основных типа процедур планирования процессов - вытесняющие (preemp-tive) и невытесняющие (non-preemptive). Невытесняющая многозадачность - это способ планирования процессов, при котором ак-тивный процесс выполняется до тех пор, пока он сам, по собственной инициативе, не отдаст управление планировщику операционной системы для того, чтобы тот выбрал из очереди другой, готовый к выполнению процесс. При невытесняющей многозадачности механизм планирования распределен между системой и прикладными программами. Прикладная программа, получив управление от операционной сис-темы, сама определяет момент завершения своей очередной итерации и передает управление ОС с помощью какого-либо системного вызова, а ОС формирует очереди задач и выбирает в соответст-вии с некоторым алгоритмом (например, с учетом приоритетов) следующую задачу на выполне-ние. Такой механизм создает проблемы как для пользователей, так и для разработчиков. Для пользователей это означает, что управление системой теряется на произвольный период времени, который определяется приложением (а не пользователем). Если приложение тратит слишком много времени на выполнение какой-либо работы, например, на форматирование диска, пользователь не может переключиться с этой задачи на другую задачу, например, на текстовый редактор, в то время как форматирование продолжалось бы в фоновом режиме. Эта ситуация не-желательна, так как пользователи обычно не хотят долго ждать, когда машина завершит свою за-дачу. Вытесняющая (истинная) многозадачность - это такой способ, при котором решение о пе-реключении процессора с выполнения одного процесса на выполнение другого процесса принима-ется планировщиком операционной системы, а не самой активной задачей. Почти во всех современных операционных системах, ориентированных на высокопроизво-дительное выполнение приложений (UNIX, Windows NT, Windows 2000, Windows XP, Linux), реа-лизована вытесняющая многозадачность. В последнее время дошла очередь и до ОС класса на-стольных систем, например, Windows 95 и Windows 98. Создание программных приложений для многозадачных ОС называется мультипрограмми-рованием. В низкоуровневом понимании мультипрограммирование — это квантование времени между группой одновременно выполняющихся процессов. Приостановление и возобновление процессов происходит много раз в секунду, поэтому создается эффект непрерывного протекания процесса, т.е. выполнение нескольких программ одновременно.
|