- •1 Операционная система. Определение. Назначение. Функции ос.
- •2 История ос. Развитие операционных систем.
- •3 Классификация операционных систем.
- •4 Специальные регистры центрального процессора (счетчик команд, указатель стека, rsw)
- •5 Конвейерная и скалярная конструкция процессора
- •6 Устройство памяти. Виды памяти.
- •7 Базовый и предельный регистры. Диспетчер памяти.
- •8 Драйвера устройств ввода-вывода. Способы установки драйверов.
- •9 Три способа организации ввода-вывода.
- •10 Шины и их назначение.
- •11 Процесс. Характеристики процесса. Понятия, связанные с процессом (таблица процессов, оболочка и т.Д.)
- •12 Взаимоблокировки. Определение. Примеры.
- •13 Файловые системы. Определение. Понятия, связанные с файловыми системами.
- •14 Код защиты файлов в unix.
- •15 Оболочка. Определение. Командный интерпретатор unix.
- •16 Системные вызовы. Назначение, схема работы системного вызова.
- •17 Основные системные вызовы posix.
- •18 Системные вызовы для управления процессами. Работа, примеры.
- •19 Системные вызовы для управления файлами. Работа. Примеры.
- •20 Системные вызовы для управления каталогами. Работа. Примеры.
- •21 Системные вызовы в unix и windows сравнение.
- •22 Структура ос. Монолитные ос.
- •23 Многоуровневые ос.
- •24 Виртуальные машины.
- •25 Экзоядро. Модель клиент-сервер.
- •26 Многозадачность. Создание и завершение процесса.
- •27 Состояния процессов.
- •28 Последовательность обработки прерываний нижним уровнем ос.
- •29 Поток. Определение. Отличие потока от процесса. Примеры применения потоков.
- •30 Реализация потоков в пространстве пользователя и в ядре. Схема и отличия.
- •31 Всплывающие потоки. Проблемы при переводе программы из однопоточной в многопоточную.
- •32 Межпроцессорное взаимодействие. Состояние состязания. Примеры. 4 условия для эффективной совместной работы процессов.
- •33 Методы решения проблем межпроцессорного взаимодействия с активным ожиданием. Запрещение прерываний, переменные блокировки, строгое чередование.
- •34 Алгоритм Петерсона и команда tsl.
- •35 Примитивы межпроцессорного взаимодействия. Проблема производителя и потребителя.
- •36 Семафоры. Решение проблемы производителя и потребителя с помощью семафоров.
- •37 Мьютексы и мониторы.
- •38 Передача сообщений и барьеры.
- •40 Планирование. Назначение. Поведение процессов. Категории алгоритмов планирования.
- •41 Планирование в системах пакетной обработки: «Первым пришел – первым обслужен», «Кратчайшая задача – первая».
- •42 Алгоритмы планирования: Наименьшее оставшееся время выполнения, трехуровневое планирование.
- •43 Циклическое планирование и приоритетное планирование.
- •44 Алгоритмы планирования: «Самый короткий процесс – следующий», Гарантированное планирование, Лотерейное планирование.
- •45 Справедливое планирование и планирование в системах реального времени.
- •46 Выгружаемые и невыгружаемые ресурсы. Условия взаимоблокировки.
- •47 Моделирование взаимоблокировок.
- •48 Четыре стратегии избегания взаимоблокировок. Страусовый алгоритм.
- •49 Обнаружение взаимоблокировки при наличии одного ресурса каждого типа.
- •51 Выходы из взаимоблокировки. Траектории ресурсов.
- •52 Безопасные и небезопасные состояния. Алгоритм банкира. Предотвращение взаимоблокировок.
26 Многозадачность. Создание и завершение процесса.
Создание
В самых простых системах, или в системах, сконструированных для запуска только одного приложения (например, в контроллере микроволновой печи), появляется возможность присутствия абсолютно всех необходимых процессов при вводе системы в действие. Но в универсальных системах нужны определенные
способы создания и прекращения процессов по мере необходимости. Существуют четыре основных события, приводящие к созданию процессов: 1. Инициализация системы. 2. Выполнение работающим процессом системного вызова, предназначенного для создания процесса. 3. Запрос пользователя на создание нового процесса. 4. Инициация пакетного задания. При запуске операционной системы создаются, как правило, несколько процессов. Некоторые из них представляют собой высокоприоритетные процессы, то есть процессы, взаимодействующие с пользователями и выполняющие для них определенную работу. Остальные являются фоновыми процессами, не связанными с конкретными пользователями, но выполняющими ряд специфических функций.В обеих системах, и в UNIX и в Windows, после создания процесса родительский и дочерний процессы обладают своими собственными, отдельными адресными пространствами. Если какой-нибудь процесс изменяет слово в своем адресном пространстве, другим процессам эти изменения не видны.
Завершение
После создания процесс начинает работать и выполняет свою задачу. Но ничто не длится вечно, даже процессы. Рано или поздно новые процессы будут завершены, обычно в силу следующих обстоятельств:
1) обычного выхода (добровольно);. 2) выхода при возникновении ошибки (добровольно); 3) возникновения фатальной ошибки (принудительно); 4) уничтожения другим процессом (принудительно). Большинство процессов завершаются по окончании своей работы. Когда компилятор откомпилирует заданную ему программу, он осуществляет системный вызов, сообщающий операционной системе о завершении своей работы. Этим вызовом в UNIX является exit, а в Windows — ExitProcess. Программы, работающие с экраном, также поддерживают добровольное завершение. Текстовые процессоры, интернет-браузеры и аналогичные программы всегда содержат значок или пункт меню, на котором пользователь может щелкнуть, чтобы приказать процессу удалить все временные файлы, которые им были открыты, и завершить свою работу Вторая причина завершения — обнаружение процессом фатальной ошибки. Третья причина завершения — ошибка, вызванная самим процессом, чаще всего связанная с ошибкой в программе. Четвертая причина, из-за которой процесс может быть завершен, — это выполнение процессом системного вызова, приказывающего операционной системе завершить некоторые другие процессы.
27 Состояния процессов.
Три состояния, в которых может находиться процесс:
1) выполняемый (использующий в данный момент центральный процессор);
2) готовый (работоспособный, но временно приостановленный, чтобы дать возможность выполнения другому процессу);
3) заблокированный (неспособный выполняться, пока не возникнет какое-нибудь внешнее событие).
Логически первые два состояния похожи друг на друга. В обоих случаях процесс желает выполняться, но во втором состоянии временно отсутствует доступный для этого процессор. Третье состояние отличается от первых двух тем, что процесс не может выполняться, даже если процессору кроме него больше нечем заняться.
Переход 1 происходит в том случае, если операционная система определит, что процесс в данный момент выполняться не может. Переходы 2 и 3 вызываются планировщиком процессов, который является частью операционной системы, без какого-либо оповещения самого процесса. Переход 2 происходит в том случае, когда планировщик решит, что выполняемый процесс продвинулся достаточно далеко и настало время позволить другому процессу получить долю рабочего времени центрального процессора. Переход 3 происходит в том случае, когда все другие процессы получили причитающуюся им долю времени и настал момент получить центральный процессор первому процессу для возобновления его выполнения. Переход 4 осуществляется в том случае, если происходит внешнее событие, ожидавшееся процессом (к примеру, поступление входных данных). Если к этому моменту нет других выполняемых процессов, будет вызван переход 3 и процесс возобновится. В противном случае ему придется немного подождать в состоянии готовности, пока не станет доступен центральный процессор и придет его очередь.