MS-DOS использует для взаимодействия со своими модулями и прикладными программами прерывания с номерами от 20h до 3Fh (числа даны вшестнадцатеричной системе счисления, как это принято при программировании на языке ассемблера x86). Например, доступ к основному множеству функций MS-DOS осуществляется исполнением инструкции Int 21h (при этом номер функции и её аргументы передаются в регистрах). Это распределение номеров прерываний не закреплено аппаратно и другие программы могут устанавливать свои обработчики прерываний вместо или поверх уже имеющихся обработчиков, установленных MS-DOS или другими программами, что, как правило, используется для изменения функциональности или расширения списка системных функций. Также, этой возможностью пользуются вирусы.
14. Понятие программного процесса. Основные состояния программного процесса
В простых программных процессах для продолжения программы после прерывания достаточно адреса следующей выполняемой команды. При возрастающей сложности ЭВМ эту информацию необходимо значительно расширить. Чтобы можно было прервать программу в каком-нибудь месте, а затем снова ее продолжить, наряду с адресом команды требуется передать информационные данные маски относительно прерываний, информацию о защите ЗУ, разряды состояния системы, сообщения о длине команд и условия разветвлений. Эта важная для выполнения программы информация управления о имеющемся состоянии программы хранится в регистре состояния, или, как его еще обозначают, в регистре состояния программы.
Создание и основные состояния процесса.
Процесс порождается с помощью системного вызова forkили CreateProcess, при котором происходит проверка на наличие свободной памяти, доступной для размещения нового процесса: если требуемая память доступна, то создается дочерний процесс (потомок), представляющий собой точную копию вызывающего процесса; при этом в таблице процессов для нового процесса строится соответствующая структура; новая структура создается также в таблице пользователя, и все ее переменные инициализируются нулями; создаваемому процессу присваивается новый уникальный идентификатор, а идентификатор родительского процесса запоминается в блоке управления процессом.
В UNIX-системах каждому процессу присваивается идентификатор процесса PID - Process Identifier.
Основные события, приводящие к созданию процесса (вызов fork или CreateProcess):
· загрузка системы;
· работающий процесс подает системный вызов на создание процесса;
· запрос пользователя на создание процесса.
Во всех случаях, активный текущий процесс посылает системный вызов на создание нового процесса.
· Выполнение – состояние, когда процесс занимает процессор, т. е. состояние активности процесса.
· Готовность – состояние, когда процесс временно приостановлен, чтобы позволить выполняться другому процессу; приостановленный процесс состоит из собственного адресного пространства, называемого образом памяти(core image), и компонентов таблицы процессов – в числе компонентов и его регистры.
· Ожидание – состояние, когда процесс заблокирован и не может быть запущен прежде, чем произойдет какое-то внешнее событие (например, операция ввода/вывода).
· Первые два состояния идентичны, поскольку процесс может быть запущен, но во втором состоянии процессор недоступен. В третьем состоянии запустить процесс невозможно.

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

17. Выделение процессу ресурса. Понятие монопольного выделения и совместного использования ресурса
выделяемые (монопольно используемые, неперераспределяемые) ресурсы характеризуются тем, что выделяются процессам в момент их возникновения и освобождаются только в момент завершения процессов; в качестве такого ресурса может рассматриваться, например, устройство чтения на магнитных лентах;
многократно используемые (реентерабельные) ресурсы выделяются возможностью одновременного использования несколькими процессами (что может быть обеспечено, например, при неизменяемости ресурса при его использовании; в качестве примеров таких ресурсов могут рассматриваться реентерабельные программы, файлы, используемые только для чтения и т. д.).
18. Задача синхронизации процессов. Понятие критического пути.
Процессы могут выполняться параллельно до тех пор, пока не возникнет потребность в общении между ними. Для обеспечения такого рода взаимодействия необходимо специальным образом планировать и управлять ими в составе любой ОС. Специальные средства ОС устанавливают определенные ограничения на последовательность (очередность) выполнения взаимосвязанных параллельных процессов, обеспечения тем самым их синхронизацию и общение. В каждом конкретном случае синхронизация задается с помощью синхронизирующих правил, которые устанавливаются системой между процессами и определяют порядок их выполнения с целью обеспечения должного взаимодействия. Ранее нами были определены основные отношения типа: отношение предшествования, отношение приоритетности, отношение взаимного исключения. Эти отношения и определяют существо синхронизирующих правил. Реализация синхронизирующих правил осуществляется с помощью механизмов (средств) синхронизации. Такие механизмы весьма многочисленны по способам реализации, отличаются степенью эффективности и областями использования в различных ОС и будут рассмотрены в последующих разделах.
Особенности каждого конкретного взаимодействия между двумя или более параллельными процессами определяются задачей синхронизации. Количество различных задач синхронизации неограниченно. Однако некоторые из них являются типичными. К ним относятся: взаимное исключение, производители-потребители, читатели-писатели, обедающие философы и т. д. Большинство задач в реальных ОС по согласованию параллельных процессов можно ре шить либо с помощью этих типовых задач, либо с помощью их модификаций.
КРИТИЧЕСКИЙ ПУТЬ [critical path] — центральное понятие методов сетевого планирования и управления (СПУ): непрерывная последовательность работ и событий от начального до конечного события, требующая наибольшего времени (в некоторых системах — наибольших затрат) для ее выполнения.
Метод критического пути — инструмент планирования расписания и управления сроками проекта.
В основе метода лежит определение наиболее длительной последовательности задач от начала проекта до его окончания с учетом их взаимосвязи. Задачи, лежащие на критическом пути (критические задачи), имеют нулевой резерв времени выполнения, и, в случае изменения их длительности, изменяются сроки всего проекта. В связи с этим, при выполнении проекта критические задачи требуют более тщательного контроля, в частности, своевременного выявления проблем и рисков, влияющих на сроки их выполнения и, следовательно, на сроки выполнения проекта в целом. В процессе выполнения проекта критический путь проекта может меняться, так как при изменении длительности задач некоторые из них могут оказаться на критическом пути.
19. «Состязания» и «клинчи» для выполняющихся процессов в ОС.
20. Задача синхронизации процессов. Семафоры Дейкстры
Синхронизация процессов – актуальная задача, исследование которой началось с работ Э. Дейкстры в 1960-х гг. Совместный доступпроцессов к общим данным ( race condition) может привести к нарушению их целостности, поэтому необходима их синхронизация.
При решении задачи ограниченного буфера, переменная counter ( счетчик числа элементов в буфере) играет роль общего ресурса для производителя и потребителя, по которому необходима их синхронизация. Если ее не использовать, переменная может принять некорректное значение из-за совместного исполнения операций над ней в двух процессах ( interleaving). Операции над ней должны быть атомарны, и должно быть обеспечено их взаимное исключение.
В общем случае, если имеется n процессов, у каждого из них есть своя критическая секция – фрагмент кода, работающий с общим ресурсом, и необходимо обеспечить взаимное исключение исполнения критических секций. Для решения проблемы критических секцийнеобходимо выполнение трех условий: взаимное исключение, прогресс (выбор системой за конечное время одного из процессов для исполнения критической секции), ограниченное ожидание (ограничение на время ожидания от момента заявки процесса на исполнение критической секции до момента ее удовлетворения).
Рассмотрены три алгоритма решения проблемы критических секций. Первый использует переменную для номера текущего процесса, исполняющего критическую секцию (не удовлетворяет условию прогресс ). Второй хранит информацию о процессах-претендентах на исполнение критических секций, но не хранит информацию о номере текущего процесса (также не удовлетворяет условию прогресс ). Третий использует комбинацию этих подходов и решает проблему, однако он оказывается достаточно сложным для понимания и реализации.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 |


