Главная страница
Навигация по странице:

  • 1. Виды прерываний. Их роль в ОС.

  • 2. Понятие ресурса. Свойства и классификация ресурсов. Действия над ресурсами.

  • 3. Понятие исключительной ситуации. Причины возникновения и механизмы обработки исключительных ситуаций.

  • 5. Понятия чередования, состояния гонки и взаимоисключения.

  • 6. Понятие атомарной операции. Механизмы поддержки атомарных операций. Атомарные операции

  • 7. Способы и алгоритмы синхронизации. Эквивалентность механизмов синхронизации. 1 Запрет прерываний

  • 4 Алгоритм булочной (Bakery algorithm)

  • Билеты_ОС_full. Виды прерываний. Роль прерываний в операционной системе


    Скачать 0.5 Mb.
    НазваниеВиды прерываний. Роль прерываний в операционной системе
    АнкорБилеты_ОС_full.doc
    Дата07.02.2018
    Размер0.5 Mb.
    Формат файлаdoc
    Имя файлаБилеты_ОС_full.doc
    ТипДокументы
    #15297
    страница1 из 6
      1   2   3   4   5   6

    1. Виды прерываний. Роль прерываний в операционной системе.

    2. Понятие ресурса. Свойства и классификация ресурсов. Действия над ресурсами.

    3. Понятие исключительной ситуации. Причины возникновения и механизмы обработки исключительных ситуаций.

    4. Задачи синхронизации.

    5. Понятия чередования, состояния гонки и взаимоисключения.

    6. Понятие атомарной операции. Механизмы поддержки атомарных операций.

    7. Способы и алгоритмы синхронизации. Эквивалентность механизмов синхронизации.

    8. Объект синхронизации «критическая секция».

    9. Объект синхронизации «семафор».

    10. Объект синхронизации «мьютекс».

    11. Понятие операционной системы. Назначение и функции операционной системы.

    12. Классификация операционных систем.

    13. Основные компоненты операционной системы. Взаимодействие компонентов операционной системы.

    14. Ядро операционной системы. Состав и функции ядра операционной системы.

    15. Архитектура операционных систем с «большим ядром».

    16. Архитектура микроядерных операционных систем.

    17. Архитектура нано- и пикоядерных операционных систем.

    18. Концепция монолитного ядра операционной системы.

    19. Концепция модульного ядра операционной системы.

    20. Понятие процесса. Свойства и характеристики процессов.

    21. Понятие вычислительного потока. Свойства и характеристики потоков (нитей).

    22. Понятие системного планировщика. Функции и алгоритмы работы системного планировщика.

    23. Многозадачность в операционных системах. Различные типы многозадачности.

    24. Простейшие схемы управления памятью.

    25. Критерии планирования процессов и требования к алгоритмам планирования.

    26. Страничная, сегментная и странично-сегментная организация памяти.

    27. Алгоритмы планирования процессов FCFS, RR, SJF.

    28. Понятие адресного пространства. Виды адресных пространств.

    29. Страничная, сегментная и странично-сегментная организация памяти.



    30. Понятие ресурса. Свойства и классификация ресурсов. Действия над ресурсами.



    31. Память как ресурс. Механизмы управления памятью.

    32. Аппаратная поддержка виртуальной памяти.

    33. Стратегии управления страничной памятью.

    34. Алгоритмы замещения страниц. FIFO, LRU, NFU, оптимальный алгоритм.

    35. Механизм трансляции адреса. Структура таблицы страниц. Аппаратная поддержка.

    36. Понятие файловой системы. Функции и назначение файловой системы.

    37. Понятие файла. Основные свойства и характеристики файла.

    38. Понятие директории. Реализация директории. Корневая директория.

    39. Совместная работа с файлами. Кооперация и защита файлов.

    40. Понятие таблицы размещения файлов. Файловые системы семейства FAT.

    41. Понятие индексного узла. Содержимое и функции индексного узла.

    42. Управление свободным пространством. Битовая карта использования блоков.

    43. Надежность файловой системы. Понятие журналирования.

    44. Использование сообщений для синхронизации.

    45. Понятие тупика. Условия возникновения тупиков.

    46. Основные способы борьбы с тупиками.

    47. Межпроцессное взаимодействие. Цели и задачи межпроцессного взаимодействия.

    48. Понятие разделяемой памяти. Механизмы реализации разделяемой памяти.

    49. Сообщения как механизм межпроцессного взаимодействия.

    50. Механизм межпроцессного взаимодействия «общая память».

    51. Механизм межпроцессного взаимодействия «пайп».

    52. Механизм межпроцессного взаимодействия «сокет».


    1. Виды прерываний. Их роль в ОС.

    Прерывание- событие при котором меняется нормальная последовательность команд в ЦП.

    1) управление передается ОС

    2) ос заполняет состояние прерванного процесса

    3) ос анализирует или останавливается на время для выполнения другой подпроргаммы.

    В зависимости от источника возникновения сигнала прерывания делятся на:

    - асинхронные, или внешние (аппаратные)

    . - синхронные, или внутренние

    . - программные

    Внешние прерывания в зависимости от возможности запрета делятся на

    - маскируемые

    - немаскируемы

    Одной из причин появления инструкций программных прерываний в системе команд процессоров является то, что их использование часто приводит к более компактному коду программ по сравнению с использованием стандартных команд выполнения процедур.

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

    Системные прерывания нужны для реализации обращения к системному ядру. Например для системных вызовов.



    2. Понятие ресурса. Свойства и классификация ресурсов. Действия над ресурсами.

    Всякий потребляемый объект (независимо от формы его существования), обладающий некоторой практической ценностью для потребителя, является ресурсом.

    Также  ресурсом является средство вычислительной системы, которое может быть выделено процессу на определенный интервал времени.

    . Одним из важнейших свойств ресурса является "реальность существования". В этом смысле ресурсы разделяют на физические и виртуальные (мнимые). Под физическим понимают ресурс, который реально существует и при распределении его между пользователями обладает всеми присущими ему физическими характеристиками. Виртуальный ресурс схож многими своими характеристиками с некоторым физическим, но по многим свойствам и отличен.

    В зависимости от того, допускает ли физический ресурс виртуализацию, то есть построение на его основе виртуального ресурса, ресурсы можно разделить наэластичные и жесткие. Жесткий - физический ресурс, который по своим внутренним свойствам не допускает виртуализации.

    В соответствии с признаком "степень активности" различают активные и пассивные ресурсы. Активный ресурс способен выполнять действия по отношению к другим ресурсам (или в отношении самого себя). ЦП - пример активного ресурса. Область памяти - пример пассивного.

    Динамика ресурсов в отношении процессов позволяет выделить ресурсы постоянные, существующие до порождения процесса и на всем протяжении его существования и ресурсы временные, появляющиеся динамически в течение времени существования рассматриваемого процесса.

    По "степени важности" можно выделить ресурсы главные и второстепенные. Главные - без которых данный процесс принципиально не может выполняться (ЦП, память). Второстепенные ресурсы допускают некоторое альтернативное развитие процесса при их отсутствии.

    . При централизованном распределении ресурсов соответствующими механизмами ОС в отношении каждого ресурса предполагается, что процесс-пользователь выполняет три типа действий: запросиспользованиеосвобождение. При выполнении действия запрос в ответ на требование процесса-пользователя система выделяет ресурс, либо отказывает в распределении. Отказ может быть вызван тем, что распределяемый ресурс находится в состоянии "Занят" либо обусловлен какой-то другой причиной. Если ресурс после выполнения действия запрос распределен процессу, то процесс может использовать его. Выполняется действие использование. Действие ОСВосвобождение выполняется по требованию процесса и сводится к переводу ресурса в состояние "Свободен".
    3. Понятие исключительной ситуации. Причины возникновения и механизмы обработки исключительных ситуаций.

    Исключительная ситуация – это изменение условий работы приложения, которые мотут быть причиной невозможности дальнейшего его выполнения. Любое взаимодействие с операционной системой на предмет получения ресурсов: места на диске, памяти, открытие файла — может завершиться неудачно.

    . Обработка исключительных ситуаций самой программой заключается в том, что при возникновении исключительной ситуации управление передаётся некоторому заранее определённому обработчику — блоку кода, процедуре, функции, которые выполняют необходимые действия.

    . Существует два принципиально разных механизма функционирования обработчиков исключений.

    Обработка с возвратом подразумевает, что обработчик исключения ликвидирует возникшую проблему и приводит программу в состояние, когда она может работать дальше по основному алгоритму. 

    Обработка без возврата заключается в том, что после выполнения кода обработчика исключения управление передаётся в некоторое, заранее заданное место программы, и с него продолжается исполнение. 

    . Существует два варианта подключения обработчика исключительных ситуаций к программе: структурная и неструктурная обработка исключений.

    Неструктурная обработка исключений реализуется в виде механизма регистрации функций или команд-обработчиков для каждого возможного типа исключения. 

    Структурная обработка исключений требует обязательной поддержки со стороны языка программирования — наличия специальных синтаксических конструкций. 

    4. Задачи синхронизации

    - Задача взаимного исключения
    Задача взаимоисключения: нескольких процессов стремится получить доступ к общему ресурсу, однако, в каждый момент времени только один из нескольких процессов может использовать общий для всех ресурс. И, пока один процесс использует общие данные, другим будет отказано в доступе.
    - Задача "производители-потребители"
    В задаче "производители-потребители" два процесса совместно используют буфер ограниченного размера. Один из процессов помещает в этот буфер данные, а другой, потребитель, считывает их оттуда. Начинает всегда производитель, и, пока он заполняет буфер, потребитель ожидает. Как только буфер наполнен, производитель сигнализирует потребителю, что можно потреблять, а сам переходит в состояние ожидания. Потребитель, окончив, в свою очередь, сигнализирует производителю, что буфер пуст и его следует наполнить, а сам "засыпает". В общем случае, в задаче участвуют m производителей и n потребителей.
    - Задача "читатели-писатели"
    Задача "читатели-писатели" моделирует доступ к базе данных. По условию задачи, несколько процессов "писателей" делают запись в общем буфере, из которого читают несколько процессов "читателей". Любое число читателей может одновременно иметь доступ к буферу, но только один писатель может работать с ним в каждый момент времени. Задача имеет 2 варианта решения. В первом предполагается, что наличие писателя, готового сделать запись в буфер, из которого в данный момент читают читатели, не должно мешать новому процессу-читателю приступить к чтению.
    Во втором варианте писатели имеют приоритет перед читателями в праве доступа к буферу: если некоторый писатель готов сделать запись, то новые читатели не допускаются к буферу.
    - Задача "Обедающие философы"

    Суть задачи обедающие философыв следующем. Имеется круглый стол, за которым сидят пять философов (впрочем, их число принципиального значения не имеет – для другого числа философов решение будет аналогичным). Перед каждым из них лежит тарелка с едой, слева и справа от каждого – две китайские палочки. Философ может находиться в трех состояниях: проголодаться, думатьи обедать. На голодный желудок философ думать не может. Но начать обедать он может, только если обе палочки слева и справа от него свободны. Требуется синхронизировать действия философов. В данном случае общим ресурсом являются палочки.

    5. Понятия чередования, состояния гонки и взаимоисключения.

    В мультипрограммных однопроцессорных системах процессы чередуются, обеспечивая эффективное выполнение программ. В многопроцессорных системах возможно не только чередование, но и перекрытие процессов.

    Про недетерминированный набор программ говорят, что он имеет race condition (состояние гонки, состояние состязания). 

    Каждый процесс, обращающийся к разделяемым ресурсам, исключает для всех других процессов возможность одновременного с ним общения с этими ресурсами, если это может привести к недетерминированному поведению набора процессов. Такой прием называется взаимоисключением (mutual exclusion). Если очередность доступа к разделяемым ресурсам важна для получения правильных результатов, то одними взаимоисключениями уже не обойтись.

    6. Понятие атомарной операции. Механизмы поддержки атомарных операций.

    Атомарные операции — операции, выполняющиеся как единое целое, либо не выполняющиеся вовсе. Атомарность операций имеет особое значение в многопроцессорных компьютерах (и многозадачных операционных системах), так как доступ к разделяемым ресурсам должен быть обязательно атомарным. Атомарная операция открыта влиянию только одного потока.

    В RISC-процессорах с архитектурой DEC AlphaPowerPCMIPS и ARM (ARMv6 и старше) поддерживается механизм неблокирующего эксклюзивного доступа к памяти. Метод основывается на паре инструкций эксклюзивного чтения-записи LL/SC:

    загрузка с пометкой (LL—load linked),

    попытка записи (SC—store conditional)

    Первая инструкция загружает переменную из памяти в регистр и помечает адрес памяти для эксклюзивного доступа. Далее производятся необходимые изменения в регистре. Запись из регистра в память производится только если значение в памяти не менялось с момента последней инструкции загрузки. Если операция не выполнена, следует повторить всю последовательность операций от момента чтения переменной из памяти до попытки сохранения в память.
    7. Способы и алгоритмы синхронизации. Эквивалентность механизмов синхронизации.

    1 Запрет прерываний

    Наиболее простым решением поставленной задачи является следующая организация пролога и эпилога:

    while (условие) {

    запретить все прерывания

    критическая секция

    разрешить все прерывания

    остальной код }

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

    2 Переменная-замок

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

    3 Алгоритм Петерсона

    Первое решение проблемы, удовлетворяющее всем требованиям и использующее идеи ранее рассмотренных алгоритмов, было предложено датским математиком Деккером (Dekker). В 1981 году Петерсон (Peterson) предложил более изящное решение. Пусть оба процесса имеют доступ к массиву флагов готовности и к переменной очередности.

    При исполнении пролога критической секции процесс Pi заявляет о своей готовности выполнить критический участок и одновременно предлагает другому процессу приступить к его выполнению. Если оба процесса подошли к прологу практически одновременно, то они оба объявят о своей готовности и предложат выполняться друг другу. При этом одно из предложений всегда последует после другого. Тем самым работу в критическом участке продолжит процесс, которому было сделано последнее предложение.

    4 Алгоритм булочной (Bakery algorithm)

    Алгоритм Петерсона дает нам решение задачи корректной организации взаимодействия двух процессов. Давайте рассмотрим теперь соответствующий алгоритм для n взаимодействующих процессов, который получил название алгоритм булочной. Основная его идея выглядит так. Каждый вновь прибывающий клиент (он же процесс) получает талончик на обслуживание с номером. Клиент с наименьшим номером на талончике обслуживается следующим. К сожалению, из-за неатомарности операции вычисления следующего номера алгоритм булочной не гарантирует, что у всех процессов будут талончики с разными номерами. В случае равенства номеров на талончиках у двух или более клиентов первым обслуживается клиент с меньшим значением имени (имена можно сравнивать в лексикографическом порядке). Разделяемые структуры данных для алгоритма - это два массива
      1   2   3   4   5   6


    написать администратору сайта