- •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. Дисковый кэш и спулинг
- •28. Файловые системы
- •29. Структуры файловых систем
- •30. Устойчивость фс к сбоям
- •31. Безопасность. Идентификация пользователя. Права доступа
- •32. Защита оперативной памяти. Кольца защиты
- •33. Взаимно недоверяющие подсистемы
- •34. Пользовательский интерфейс
- •35. Определение операционной системы
- •37. Структура сетевой ос (одноранговые, с выделенными серверами, для рабочих групп и ос для сетей масштаба предприятия)
- •38. Управление процессами (состояние, контекст и дескриптор процесса)
- •39. Алгоритмы планирования процессов (вытесняющие и невытесняющие)
- •40. Средства синхронизации и взаимодействия процессов. Нити исполнения
- •41. Управление памятью. Типы адресов
- •42. Методы распределения памяти без использования дискового пространства (разделы фиксированные, переменной величины и перемещаемые)
- •43. Методы распределения памяти с использованием дискового пространства (виртуальная память, страничное, сегметное, странично-сегментное распределение)
- •44. Иерархия запоминающих устройств (может быть исключён). Принцип кэширования данных
- •45. Аппаратная поддержка управления памятью и многозадачной среды
- •46. Средства поддержки сегментации памяти
- •47. Управление вводом-выводом. Физическая организация устройств ввода-вывода
- •48. Обработка прерываний. Драйверы устройств
- •49. Управление вводом-выводом. Независимый от устройств слой операционной системы
- •50. Пользовательский слой программного обеспечения
- •51. Фс. Имена файлов. Типы файлов.
- •52. Фс. Логическая и физическая организация файлов
- •53. Современные архитектуры фс (Олифер)
- •54. Фс. Отображаемые в память файлы
- •55. Управление распределёнными ресурсами. Способы адресации
- •56. Базовые примитивы передачи сообщений в распределённых системах
- •57. Синхронизация в распределённых системах. Логические часы. Взаимные исключения. Неделимые транзакции
- •58. Процессы и нити в распределённых системах. Понятие нити. Вопросы реализации нитей.
- •59. Распределённые фс. Интерфейсы файлового сервиса и сервиса каталогов
- •60. Распределённые фс. Семантика разделения файлов. Вопросы разработки структуры фс.
- •61. Распределённые фс. Кэширование. Репликация
- •1. Сквозная запись.
- •62. Основные подходы к реализации взаимодействия в гетерогенных сетях
- •63. Шлюзы. Мультиплексирование стеков протоколов в гетерогенных сетях
- •66. Расширяемость, переносимость, совместимость и безопасность современных ос
- •67. Структура ос: монолитные системы, многоуровневые системы
- •68. Структура ос: модели клиент-сервер и микроядра
- •69. Структура ос: объектно-ориентированный подход
- •70. Структура ос: множественные прикладные среды
11. Параллельное и псевдопараллельное исполнение (планировщик)
По-настоящему параллельное исполнение процессов возможно только в многопроцессорной системе, системе параллельных компьютеров или мультикомпьютере, поскольку только в них присутствуют несколько системных конвейеров для исполнения команд.
В однопроцессорной многозадачной системе поддерживается так называемое псевдопараллельное исполнение, при котором создается видимость параллельной работы нескольких процессов. В таких системах, однако, процессы выполняются последовательно, занимая малые кванты процессорного времени.
Виды многопроцессности:
– Кооперативная
Данная схема основана на том, что переключение процессов происходит по инициативе активного процесса.
– Вытесняющая
Планировщик вызывается не из пользовательской программы, а по прерыванию от системного таймера: каждому процессу выделяется квант времени. Если процесс не освободил процессор в течение этого кванта, то его снимают и переставляют в конец очереди. При этом все готовые к исполнению процессы более или менее равномерно получают управление.
– С использованием планировщика
При данном подходе главной является расстановка приоритетов между процессами:
1.Многоочередные дисциплины обслуживания.
2.Динамическое распределение приоритетов
12. Методы синхронизации при параллельной работе
1) Прерывания
Прерывание – сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается, и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.
Адреса подпрограмм обслуживания прерываний находятся в специальной таблице и называются векторами прерывания.
При наличии нескольких источников запросов прерывания должен быть установлен определенный порядок в обслуживании поступающих запросов.
Вектор прерывания содержит всю необходимую информацию для перехода к прерывающей программе, в том числе ее начальный адрес. Векторы прерывания обычно находятся в специально выделенных фиксированных ячейках памяти.
Различают абсолютный и относительный приоритеты. Запрос, имеющий абсолютный приоритет, прерывает выполняемую программу и инициирует выполнение соответствующей прерывающей программы. Запрос с относительным приоритетом является первым кандидатом на обслуживание после завершения выполнения текущей программы.
2) Сигналы
Процессы могут общаться с помощью программных прерываний — один процесс может послать другому сигнал. Процессы могут сообщить системе, какие действия необходимо совершить, когда придет сигнал. Процесс может перехватить сигнал, проигнорировать его или же быть убитым им. В случае перехвата для сигналов необходимо писать собственные обработчики — когда сигнал поступает, управление передается ему. Когда обработчик завершает свою работу, управление возвращается в то место процесса, в котором оно находилось на момент вызова сигнала. Обработка сигнала аналогична обработке аппаратных прерываний ввода-вывода.
Процесс может посылать сигналы только членам своей группы процессов — т. е. прямому родителю, всем прародителям, сиблингам и всем потомкам. Сигнал может быть послан всей группе за раз.
Сигналы также используются для сообщения процессу об исключительных ситуациях — ошибках сегментации, делении на ноль и т. д.
3) Семафоры
Семафор – целочисленная переменная, с которой ассоциирована очередь ожидающих процессов. Над семафором возможно проведение только двух операций - “открытия” и “закрытия”, названных соответственно P- и V-операциями. Операции над семафорами являются неделимыми (непрерываемыми), поэтому их часто называют примитивами. Пытаясь пройти через семафор, процесс пытается вычесть из значения переменной 1. Если значение переменной больше или равно 1, процесс проходит сквозь семафор успешно (семафор открыт). Если переменная равна нулю (семафор закрыт), процесс останавливается и ставится в очередь. Таким образом, семафор выполняет роль вспомогательного критического ресурса. Закрытие семафора соответствует захвату ресурса, доступ к которому контролируется этим семафором. Процесс, закрывший семафор, захватывает ресурс. Если ресурс захвачен, остальные процессы вынуждены ждать его освобождения. Закончив работу с ресурсом, процесс увеличивает значение семафора на единицу, открывая его.
4) Блокировка участков файлов
Два типа блокировок: на чтение и на запись. Блокировка на чтение разрешает другим процессам читать из заблокированного участка и даже ставить туда такую же блокировку, но запрещает писать в этот участок и, тем более, блокировать его на запись. Этим достигается уверенность в том, что структуры данных, считываемые из захваченного участка, никем не модифицируются, поэтому гарантирована их целостность и непротиворечивость.
В свою очередь, блокировка на запись запрещает всем, кроме блокирующего процесса, любой доступ к заблокированному участку файла. Это означает, что данный участок файла сейчас будет модифицироваться, и целостность данных в нем не гарантирована.
5) Гармонически взаимодействующие последовательные процессы
Эта концепция состоит в следующем:
– Каждый процесс представляет собой независимый программный модуль, для которого создается иллюзия чисто последовательного исполнения.
– Процессы не имеют разделяемых данных.
– Все взаимодействие происходит в выделенных точках процессов. Иными словами, все передачи данных неразрывно связаны с синхронизацией.
– Синхронизация, не сопровождающаяся передачей данных, лишена смысла – процессы, не имеющие разделяемых структур данных, совершенно независимы и не имеют ни критических точек, ни нерентабельных модулей.