- •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 Безопасные и небезопасные состояния. Алгоритм банкира. Предотвращение взаимоблокировок.
36 Семафоры. Решение проблемы производителя и потребителя с помощью семафоров.
Дейкстра предложил использовать целочисленную переменную для подсчёта количества активаций, отложенных на будущие , он предложил учредить новый тип переменной – семафор. Значение семафора может быть равно 0, что будет свидетельствовать об отсутствии сохраненных активизаций или иметь какое-нибудь положительное значение, если ожидается не менее одной активизации. Дейкстра предложил использовать 2 операции down и up. Операция down выясняет, отличается ли значение семафора от 0, если отличается, она уменьшает его значение на 1и продолжает работу, если значение равно 0, процесс приостанавливается, не завершая в этот раз операцию down. Проверка значения, и его изменение, и приостановление процесса осуществляется как единое не делимое атомарное действие. Гарантируя что до окончания семафорной операции никакой другой процесс не может получить доступ к семафору до тех пор пока операция не будет завершена или заблокирована. Операция up увеличивает значение, адресуемое семафором, на 1, если с этим семафором связаны один или более приостановленных процессов, способны завершить ранее начатые операции down, система выбирает один из них и позволяет ему завершить его операцию down, после применение операции up в отношении семафор, с которым были связанны приостановленные процессы, значения семафора так и останется нулевым.а кол. приостан. процессов уменьш. на 1. Операция увеличения семафора на 1 и активации одного из процессов является так же неделимой , ни один из процессов не может быть заблокирован привыполнение операции up.
37 Мьютексы и мониторы.
Мьютекс – это переменная которая может находиться в одном из двух состояний: заблокированном или не заблокированным. Для их представления нужен один бит не заблокированное 0 а остальное заблокированное состояние, для работы с мьютексами используется 2 процедуры, когда потоку необходим доступ к критической области он вызывает процедуру мьютекс lock если мьютекс находиться в незаблокированном состояние вызов проходит удачно и вызывающий поток может свободно войти в критическую область, если мьютекс уже заблокирован вызывающий поток блокируется пока поток находящийся в критической области не завершит свою работу и не вызовет свою процедуру мьютекс unlock.Что бы облегчить написание безошибочных программ Хансен и Хоар предложили высоко уровневый синхронизационный примитив названый монитором. Монитор представляет собой коллекцию переменных и структур данных с груперованных вместе в специальные разновидности модуля или пакета процедур. У монитора есть свойства: в любой момент времени в мониторе может быть активен только один процесс. Монитор является конструкцией для языка программирования поэтому компилятор осведомлён об их особенастях и способен обрабатывать вызовы процедур монитора не так как вызовы всех остальных процедур.
38 Передача сообщений и барьеры.
Передача сообщения это метод взаимодействия процессов использует 2 приметива: send и receive, которы подобно семофорам и в отличии от мониторов являются системными вызовами а не конструкциями языка, они легко могут быть помещены в библиотечные процедуры. Что бы обезопаситься от утраты в сообщение отправитель и получатель должны договориться о том что как только сообщение будет полученье получатель должен отправить в ответь специально сообщения подтверждения. Не один из процессов не может перейти к следующей фазе пока все процессы не будут готовы перейти в следующей фазе, для этого используются барьеры поставленные в конце каждой фазы. Когда процесс достигает барьера он блокируется пока этого барьера не достигнут все остальные процессы.
