- •1. Что такое критическая область? Условия избегания состязания для эффективной работы процессов.
- •Строгое чередование
- •Что такое примитивы взаимодействия процессов, и для чего они применяются? в чем заключается проблема переполненного буфера?
- •Что такое семафор? Для чего применяются операции up и down?
- •8. Решение проблемы переполнения буфера с помощью семафоров (producer-consumer).
- •10. Образ процесса, регистры процесса.
- •12. Основные атрибуты процесса.
- •13. Что такое контекст и дескриптор процесса? Из каких частей состоит контекст процесса в unix-системах? Контекст и дескриптор процесса
- •14. Назвать состояния процесса в unix-системах.
- •15. Этапы жизненного цикла процесса в unix-системах.
- •16. В каких случаях происходит переключение контекста
- •17. Приоритеты процессов
- •18. Синхронизация процессов.
- •Критерии планирования и требования к алгоритмам
- •24. Методы разделения процессов на группы в интерактивных системах.
- •25. Какие существуют системы реального времени? Необходимое условие для планирования процессов в системе реального времени
- •26. Статический алгоритм планирования процессов (rms) в системах реального времени.
- •27. Динамический алгоритм планирования процессов (edf) в системах реального времени
- •28. Понятие взаимоблокировки процессов. Что такое ресурс? Типы ресурсов, последовательность событий, необходимых для использования ресурса
- •34. Способы выхода из взаимоблокировки:
10. Образ процесса, регистры процесса.
образом процесса - программный код (сегмент кода) и разделы данных процесса, определяющие среду выполнения. С каждым процессом связывается его адресное пространство, из которого он может читать данные и в которое может их писать, и которое содержит:
текст программы – текстовый сегмент (сегмент кода) содержит реальные инструкции центральному процессору (ЦП);
данные к программе – сегмент данных – данные, связанные с процессом и являющиеся частью образа процесса, хранятся в регистрах (в области памяти, к которой ЦП оперативно получает доступ), для ускорения доступа обычно представленных регистрами процессора; регистры играют важную роль в работе процессов, с каждым процессом связывается набор регистров, обычно выделяются четыре регистра, имеющих специальное значение: счетчик команд (программный счетчик) PC (в процессоре) указывает на текущую строку кода – регистр, содержащий адрес следующей команды, стоящей в очереди на выполнение (после выбора команды из памяти счетчик команд корректируется, указатель переходит к следующей команде), PS указывает состояние процесса, указатель стека SP указывает на вершину стека, FP указывает на текущий фрейм стека.
стек программы – сегмент стека, в котором при запуске программы автоматически размещаются переменные; используется для хранения локальных переменных программы и передачи параметров. Когда процесс выполняет обращение к подпрограмме, в стек отправляется новая запись – фрейм, одной из частей которого является указатель на предыдущий фрейм, позволяющий легко вернуться из вызова подпрограммы; при этом важно знать местоположение текущего фрейма и вершину стека.
11. Типы процессов. Системные процессы. Эти процессы являются частью ядра. Они всегда находятся в оперативной памяти. Системные процессы не имеют соответствующих исполняемых файлов. Они запускаются при запуске системы особым образом. Выполняемые инструкции для таких процессов находятся в ядре и эти процессы могут вызывать функции и получать доступ у данным, недоступным другим процессам.
Демоны. Это процессы, которые загружаются обычным путем. Путем загрузки исполняемых файлов. Демоны, как правило, обеспечивают работу различных подсистем unix систем. Обычно они находятся в состоянии ожидания, пока кто-нибудь не запросит соответствующую услугу.
Прикладные процессы. К этой категории относятся все остальные процессы. Одним из важнейших прикладных процессов является процесс командного интерпретатора. Этот процесс интерактивный. Он ожидает ввода команд и для каждой команды порождает дочерний процесс интерпретатора.
Процессы могут функционировать в двух режимах: системном и пользовательском.
Системный режим является наиболее важным, поскольку в нем выполняется следующее:
обработка прерываний, вызванных внешними сигналами и системными вызовами, а также управлением доступа к диску;
распределение дополнительной динамической памяти и других ресурсов системы.
Пользовательский режим: процесс функционирует, когда выполняется код программы, заданный пользователем.
