- •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. Структура ос: множественные прикладные среды
14. Блокировка участков файлов
Если говорить о файле с базой данных, оказывается удобно блокировать доступ к участкам файла. Выделяют два типа блокировок: на чтение и на запись. Блокировка на чтение разрешает другим процессам читать из заблокированного участка и даже ставить туда такую же блокировку, но запрещает писать в этот участок и блокировать его на запись. Этим достигается уверенность в том, что структуры данных, считываемые из захваченного участка, никем не модифицируются, поэтому гарантирована их целостность и непротиворечивость.
В свою очередь, блокировка на запись запрещает всем, кроме блокирующего процесса, любой доступ к заблокированному участку файла. Это означает, что данный участок файла сейчас будет модифицироваться, и целостность данных в нем не гарантирована.
В UNIX возможны два режима блокировки: допустимая (advisory) и обязательная (mandatory). Как та, так и другая блокировка может быть блокировкой на чтение либо на запись. Допустимая блокировка не оказывает влияния на подсистему ввода/вывода, поэтому программа, не проверяющая блокировок или игнорирующая их, сможет писать или читать из заблокированного участка без проблем. Обязательная блокировка требует больших накладных расходов, но запрещает физический доступ к файлу: чтение или запись, в зависимости от типа блокировки.
В современных версиях системы UNIX есть возможность отображать файл на виртуальную память. Используя при этом допустимую блокировку участков файла, программы могут синхронизовать доступ к нему (обязательная блокировка делает невозможным отображение на память).
15. Гармонически взаимодействующие последовательные процессы
Разделяемые структуры данных являются источником серьезных ошибок при разработке программ. Программа, работающая с разделяемыми структурами данных имеет критические секции — ими являются места, где программа модифицирует такие структуры или просто обращается к ним. Синхронизация доступа к разделяемым структурам часто приводит к усложнению программы, а стремление сократить участки исключительного доступа - к ошибкам.
Концепция ГВПП состоит в следующем:
1.Каждый процесс представляет собой независимый программный модуль, для которого создается иллюзия чисто последовательного исполнения.
2.Процессы не имеют разделяемых данных.
3.Все взаимодействие происходит в выделенных точках процессов. В этих точках процесс, передающий данные, останавливается и ждет, пока его партнер будет готов эти данные принять. В некоторых реализациях процесс-передатчик может не ожидать приема, а просто складывать данные в системный буфер. Аналогично, процесс, принимающий данные, ожидает, пока ему передадут данные. Иными словами, все передачи данных неразрывно связаны с синхронизацией.
4.Синхронизация, не сопровождающаяся передачей данных, лишена смысла - процессы, не имеющие разделяемых структур данных, совершенно независимы и не имеют ни критических точек, ни нерентабельных модулей.
Концепция гармонически взаимодействующих процессов позволяет легко писать правильные программы. Однако часто по соображениям производительности оказывается невозможно отказаться от разделяемой памяти.
В современных системах реализован целый ряд средств, которые осуществляют передачу данных одновременно с синхронизацией: почтовые ящики (mailboxes), трубы (pipes), рандеву в языке Ada, транспьютерные линки и т.д.