
- •8.Файл config.Sys
- •9. Файлы autoexec. Bat
- •10. Начальная загрузка dos
- •11. Структурное программирование
- •12. Концепция модульного программирования.
- •13. Процедуры в языке assembler
- •14. Директивы extern и public
- •15. Передача данных процедуру через common области.
- •16.Использование директив extern и public для передачи данных в процедуру.
- •17. Передача аргументов через стек
- •18. Возврат результата из процедуры.
- •19. Связь ассемблера с языками высокого уровня
- •20. Понятия процесса и его состояния
- •21. Асинхронные параллельные процессы и способы их синхронизации
20. Понятия процесса и его состояния
Процесс – это абстракция, описывающая выполняющуюся программу. Для ОС это единица работы, заявка на потребление системных ресурсов.Состояние процесса:зарождение, готовность, выполнение, ожидание, готовность (завершение).Дескриптор процесса, handle – это описатель (идентификатор) процесса, который содержит номер процесса, область памяти, где размещен сегмент кода, данные приоритетности процесса, данные о состоянии процесса. Каждый дескриптор процесса содержит ссылку на другой дескриптор.
Контекст – хранит состояние регистров, состояние программного счетчика, режим работы процессора, незавершенные операции ввода-вывода, информация о выполненных системных вызовах. Структура данных, в которой хранится информация, необходимая для совершения операции над процессом называется PCB – Process Control Block – блок управления процессов. Информация в PCB разделяется на 2 части: 1.регистровый контекст процессора – все регистры и программный счетчик2.системный контекст процессора –Помимо PCB используется информация для характеристики внутренней работы процесса, его код и данные, адресное пространство - пользовательский контекст процесса.
21. Асинхронные параллельные процессы и способы их синхронизации
Процессы называются параллельными, если они существуют одновременно. Параллельные процессы могут работать совершенно независимо друг от друга или они могут быть асинхронными— это значит, что им необходимо периодически синхронизироваться и взаимодействовать. Параллельное выполнение нескольких программ заманчиво, как один из вариантов повышения быстродействия, и как следствие – производительности ОС.В отличие от программирования последовательных вычислений, концептуальную основу которого составляет понятие алгоритма, реализуемого по шагам строго последовательно во времени, в параллельном программировании программа порождает совокупность параллельно протекающих процессов обработки информации, полностью независимых. Относительная простота алгоритмов распараллеливания выражений позволяет реализовать их автоматически в ЭВМ с помощью специальных программ или аппаратными средствами.Большее ускорение может быть получено за счет распараллеливания обработки структурных данных. Наиболее известными и простыми программными механизмами синхронизации являются семафоры и события. Семафор - это специальная управляющая переменная, принимающая целочисленные значения. Семафор обычно связан с некоторым конфликтным ресурсом.Механизм семафоров широко используется в языках управления процессами в операционных системах ЭВМ и в ряде универсальных языков программирования. Механизм событий включает управляющие переменные, текущие значения которых отмечают наступление каких-либо программных или системных событий и специальные операторы ожиданиясобытий. Стремление повысить надежность программирования приводит к появлению более сложных механизмов синхронизации: "почтовые ящики" - особые структуры для обмена сообщениями, для которых фиксированы правила работы с ними параллельных процессов; мониторы - наборы процедур и данных, к к-рым процессы могут обращаться только поочередно и к-рые содержат заданные программистом правила организации взаимодействий.Чисто асинхронное П. п. используется для организации вычислений в распределенных вычислительных системах, в которых полностью исключены конфликты по ресурсам. Стремление упростить организацию взаимодействий между процессами с общими ресурсами привлекает внимание к асинхронным методам вычислений, в к-рых разрешен нерегламентированный доступ параллельных процессов к общим ресурсам.Напр., разрабатываются асинхронные алгоритмы, в к-рых параллельные процессы обмениваются данными собщей памятью, причем неупорядоченный доступ к памяти не мешает достижению однозначного результата.