- •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. Структура ос: множественные прикладные среды
1. Понятие ос
ОС – специальный набор программ, предназначенный для планирования выполнения пользовательских программ и отвечающий за управление всеми устройствами и ресурсами компьютерной системы (программами, данными, аппаратурой и т.д.) с целью повысить эффективность решения требуемых задач.
Две группы определений операционной системы: «набор программ, управляющих оборудованием» и «набор программ, управляющих другими программами».
2. Функции ос
– Загрузка программ в оперативную память и их выполнение.
– Управление оперативной памятью (распределение, виртуальная память).
– Распределение ресурсов компьютера между задачами.
– Обеспечение стандартизированного доступа к периферийным устройствам.
– Работа с устройствами долговременной памяти с различной файловой системой.
– Параллельное или псевдопараллельное выполнение задач.
– Обеспечение пользовательского интерфейса.
3. Классификация ос
1) По числу одновременно выполняемых задач
– Однозадачные (MS DOS)
– Многозадачные (OS/2, Unix, Windows)
– Системы пакетной обработки
– Системы с разделением времени (Unix, Linux, Windows)
– Системы реального времени
– Жёсткие системы
– Гибкие системы (допустим пропуск времени событий)
2) По числу одновременно работающих пользователей
– Однопользовательские (MS DOS)
– Многопользовательские (Unix, Linux, Windows 95 – 7)
3) По поддержке многопроцессорной обработки данных
– Однопроцессорные
– Многопроцессорные
– Асимметричные
– Симметричные
4) Локальные и сетевые.
4. Загрузка программ
Типы адресов:
1) Виртуальные (логические) – адрес, который видит программа, номер ячейки памяти в ее собственном адресном пространстве. У многих машин эти адресные пространства для разных программ различны.
2) Физические – адрес, который передается по адресным линиям шины процессора, когда этот процессор считывает или записывает данные в ОЗУ.
***
Виды загрузки программы в виртуальную память:
1) Абсолютная загрузка
Программа загружается с одного и того же адреса. Это возможно в следующих случаях:
– система может предоставить каждой программе свое адресное пространство;
– система может исполнять в каждый момент только одну программу.
Подобный программный модуль называется абсолютным загрузочным модулем или абсолютной программой. Начальное содержимое адресного пространства формируется путем простого копирования такого модуля в память.
2) Относительная загрузка
Программа каждый раз загружается с нового адреса. При этом она «настраивается» на новые адреса (зависит от способа адресации в программе):
– абсолютная адресация (нужно смещать все адреса в программе).
– базовая (относительная) адресация – изменяются значения лишь базовых регистров.
– базово-индексная адресация – адрес формируется сложением двух или более регистров с адресным полем.
3) Позиционно-независимый код
Адрес команды в программе получается сложением адресного поля команды и значения счётчика команд. Такая адресация накладывает жёсткие рамки на стиль программирования. На некоторых процессорах выполнение такого кода вообще невозможно.
4) Оверлеи (перекрытия)
Программа не загружается в память целиком, а разбивается на несколько модулей, которые помещаются в память по мере необходимости. При этом на одни и те же адреса в различные моменты времени будут отображены различные модули. Процессом смены модулей управляет менеджер перекрытий.
5) Загрузка самой ОС
При включении питания или аппаратном сбросе процессор исполняет команду, находящуюся по определенному адресу, например, 0xFFFFFFFA. Обычно по этому адресу находится ПЗУ, в котором содержится программа первичного загрузчика. Первичный загрузчик затем запускает вторичный загрузчик и т. д. вплоть до запуска системы.
В современных системах такая загрузка практически не используется — загрузка происходит с устройств с произвольным доступом. При этом обычно в память считывается нулевой сектор нулевой дорожки диска. Содержимое этого сектора называют вторичным загрузчиком. Иначе этот загрузчик называют загрузочным сектором, или boot-сектором. Как правило, этот загрузчик ищет на диске начало файловой системы ОС, ищет в этой файловой системе файл с определенным именем, закачивает его в память и передает на него управление. Часто такой файл и является ядром операционной системы.
Размер вторичного загрузчика ограничен, чаще всего размером сектора на диске, то есть 512 байтами. Если файловая система имеет сложную структуру, иногда вторичному загрузчику приходится подкачать третичный загрузчик, размер которого может быть намного больше. Из-за большего размера этот загрузчик намного умнее и в состоянии разобраться в структурах данных файловой системы.