- •1.Структура вычислительной системы. Функции операционной системы.
- •2. История развития операционных систем.
- •3.Основные понятия, концепции операционных систем.
- •4.Архитектурные особенности ос. Способы построения.
- •2. Управление памятью.
- •5.Классификация ос.
- •6.Процессы. Понятие процесса. Состояния процесса.
- •7.Операции над процессами. Pcb и контекст процесса. Переключение контекста.
- •8. Планирование процессов. Уровни планирования. Критерии планирования и требования к алгоритмам.
- •9. Параметры планирования. Вытесняющее и невытесняющее планирование.
- •10. Алгоритмы планирования. Fcfs. Rr. Sjf.
- •11. Алгоритмы планирования. Гарантированное. Приоритетное. Многоуровневые очереди.
- •12. Взаимодействие процессов. Категории средств обмена информацией
- •13. Логическая организация механизма передачи информации. Устанавка связи. Информационная валентность процессов и средств связи.
- •14. Особенности передачи информации с помощью линий связи. Буферизация. Поток ввода-вывода и сообщения. Надежность средств связи. Завершение связи.
- •15.Нити исполнения. Способы организации нитей.
- •16. Алгоритмы синхронизации. Interleaving, race condition и взаимоисключения. Критическая секция.
- •Interleaving, race condition и взаимоисключения
- •Критическая секция
- •17. Программные алгоритмы организации взаимодействия процессов. Требования, предъявляемые к алгоритмам. Запрет прерываний. Переменная-замок.
- •18. Программные алгоритмы организации взаимодействия процессов. Строгое чередование. Флаги готовности. Алгоритм Петерсона. Строгое чередование
- •Флаги готовности
- •Алгоритм Петерсона
- •19. Программные алгоритмы организации взаимодействия процессов. Алгоритм булочной (Bakery algorithm). Аппаратная поддержка взаимоисключений. Test-and-Set. Swap.
- •Команда Test-and-Set (проверить и присвоить 1)
- •Команда Swap (обменять значения)
- •20. Механизмы синхронизации процессов. Семафоры. Концепция семафоров. Решение проблемы producer-consumer с помощью семафоров.
- •Решение проблемы producer-consumer с помощью семафоров
- •21. Механизмы синхронизации процессов. Мониторы. Сообщения
- •22. Эквивалентность семафоров, мониторов и сообщений. Реализация мониторов и передачи сообщений с помощью семафоров.
- •23. Реализация семафоров и передачи сообщений с помощью мониторов. Реализация семафоров и мониторов с помощью очередей сообщений.
- •24. Тупики. Концепция ресурса. Условия возникновения тупиков.
- •25. Основные направления борьбы с тупиками. Алгоритм страуса. Обнаружение тупиков
- •Обнаружение тупиков
- •26. Восстановление после тупиков. Перераспределение ресурсов. Откат. Ликвидацию одного из процессов.
- •27. Способы предотвращения тупиков путем тщательного распределения ресурсов. Алгоритм банкира. Недостатки.
- •28. Предотвращение тупиков за счет нарушения условий возникновения тупиков (взаимоисключения, ожидания дополнительных ресурсов, неперераспределяемости, кругового ожидания)
- •29. Родственные проблемы тупиков. Двухфазная локализация. Тупики не ресурсного типа. Голод (starvation).
- •1.Двухфазная локализация
- •2.Тупики не ресурсного типа
- •3.Голод (starvation)
- •30. Управление памятью. Функции. Связывание адресов.
- •Физическая организация памяти компьютера
- •31. Простейшие схемы управления памятью. Схема с фиксированными разделами. Один процесс в памяти. Оверлейная структура.
- •32. Простейшие схемы управления памятью. Свопинг. Мультипрограммирование с переменными разделами.
- •Динамическое распределение. Свопинг
- •33. Понятие виртуальной памяти. Архитектурные средства поддержки виртуальной памяти. Страничная память.
- •34. Сегментная и сегментно-страничная организации памяти. Таблица страниц.
- •35. Ассоциативная память. Иерархия памяти. Размер страницы.
- •36. Аппаратно-независимый уровень управления виртуальной памятью. Исключительные ситуации при работе с памятью. Стратегии управления страничной памятью.
- •37. Алгоритмы замещения страниц. Fifo алгоритм. Оптимальный алгоритм.
- •38. Алгоритмы замещения страниц. Lru, nfu алгоритмы и другие.
- •Выталкивание дольше всего не использовавшейся страницы. Алгоритм lru
- •Выталкивание редко используемой страницы. Алгоритм nfu
- •Другие алгоритмы
- •39. Thrashing. Свойство локальности. Модель рабочего множества. Демоны пейджинга. Трешинг (Thrashing)
- •Модель рабочего множества
- •Страничные демоны
- •40. Аппаратно-независимая модель памяти процесса. Структуры данных, используемые для описания сегментной модели. Функционирование менеджера памяти.
- •41. Файловая система. Определение. Функции. Имена файлов.
- •42. Структура файлов. Типы и атрибуты файлов. Доступ к файлам. Операции над файлами.
- •43. Директории. Логическая структура файлового архива. Операции над директориями. Защита файлов. Контроль доступа к файлам. Списки прав доступа.
- •44. Реализация файловой системы. Интерфейс файловой системы. Общая структура файловой системы.
- •45. Структура файловой системы на диске. Методы выделения дискового пространства.
- •46. Управление свободным и занятым дисковым пространством. Размер блока. Структура файловой системы на диске.
- •47. Монтирование файловых систем. Связывание файлов. Организация связи между каталогом и разделяемым файлом. Кооперация процессов при работе с файлами.
- •48. Надежность файловой системы. Целостность файловой системы. Управление плохими блоками. Производительность файловой системы. Современные архитектуры файловых систем.
- •49. Система управления вводом-выводом. Физические принципы организации ввода-вывода. Общие сведения об архитектуре компьютера. Структура контроллера устройства.
- •50. Опрос устройств и прерывания. Исключительные ситуации и системные вызовы. Dma.
- •51. Логические принципы организации ввода-вывода. Структура системы ввода-вывода. Систематизация внешних устройств и интерфейс между базовой подсистемой ввода-вывода и драйверами
- •52. Функции базовой подсистемы ввода-вывода. Блокирующиеся, не блокирующиеся и асинхронные системные вызовы. Буферизация и кэширование. Spooling и захват устройств. Обрабо
- •Spooling и захват устройств
- •Обработка прерываний и ошибок
- •Планирование запросов
- •53. Алгоритмы планирования запросов к жесткому диску. Строение жесткого диска и параметры планирования. Алгоритмы fcfs, sstf, scan, c-scan, look, c-look.
- •54. Основные понятия информационной безопасности. Классификация угроз. Формализация подхода к обеспечению информационной безопасности. Классы безопасности.
- •55. Политика безопасности. Криптография, как одна из базовых технологий безопасности ос.
- •56. Защитные механизмы операционных систем. Идентификация и аутентификация. Пароли, уязвимость паролей.
- •57. Авторизация. Разграничение доступа к объектам ос. Домены безопасности.
- •58. Матрица доступа. Недопустимость повторного использование объектов. Аудит, учет использования системы защиты
44. Реализация файловой системы. Интерфейс файловой системы. Общая структура файловой системы.
Интерфейс файловой системы.
Файловая система должна организовать эффектив работу с данными, хранящимися во внеш памяти и предоставить пользователю возможности для запоминания и выборки данных в нем.
Для организации хранения инфы на диске user вначале обычно выполняет его форматирование, выделяя на нем место для структур данных, кот описывают состояние файловой системы в целом. Затем user создает нужную ему структуру каталогов (или директорий). И, наконец, заполняет дисковое пространство файлами, приписывая их тому или иному каталогу. Т.о, ОС должна предоставить в распоряжение userа совокупность сервисов традиционно реализованных через системные вызовы, кот обеспечивают:
создание файловой системы на диске
необход операции для работы с каталогами
необход операции для работы с файлами
Кроме того, файловые службы м. решать проблемы проверки и сохранения целостности файловой системы, проблемы повышения производительности и ряд др.
Прежде чем приступить к описанию работы отдельных файловых операций, необходимо рассмотреть ключевые алгоритмы и структуры данных, кот обеспечивают ф-ционирование файловой системы.
Общая структура файловой системы:
1.Символьный уровень
2.Базовый уровень
3.Уровень проверки прав доступа.
4.Логический уровень
5.Физический уровень
45. Структура файловой системы на диске. Методы выделения дискового пространства.
Общая структура файловой системы:
1.Символьный уровень
2.Базовый уровень
3.Уровень проверки прав доступа.
4.Логический уровень
5.Физический уровень
Методы выделения дискового пространства
Ключевым, безусловно, является вопрос, какой тип структур используется для учета отдельных блоков файла, то есть способ связывания файлов с блоками диска. В ОС используется несколько методов выделения файлу дискового пространства. Для каждого из методов запись в директории, соответствующая символьному имени файла, содержит указатель, следуя которому можно найти все блоки данного файла.
Выделение непрерывной последовательностью блоков
Простейший способ - хранить каждый файл как непрерывную последовательность блоков диска. При непрерывном расположении файл характеризуется адресом и длиной (в блоках). Файл, стартующий с блока b, занимает затем блоки b+1, b+2, ... b+n-1.
Эта схема имеет два преимущества. Во-первых, ее легко реализовать, так как выяснение местонахождения файла сводится к вопросу, где находится первый блок. Во-вторых, она обеспечивает хорошую производительность, так как целый файл может быть считан за одну дисковую операцию. Когда содержимое диска постоянно изменяется, данный метод нерационален. Однако для стационарных файловых систем, например для файловых систем компакт-дисков, он вполне пригоден.
Связный список
Внешняя фрагментация - основная проблема рассмотренного выше метода - может быть устранена за счет представления файла в виде связного списка блоков диска. Запись в директории содержит указатель на первый и последний блоки файла (иногда в качестве варианта используется специальный знак конца файла - EOF). Каждый блок содержит указатель на следующий блок
Внешняя фрагментация для данного метода отсутствует. Любой свободный блок может быть использован для удовлетворения запроса. Заметим, что нет необходимости декларировать размер файла в момент создания. Файл может расти неограниченно.
Связное выделение имеет, однако, несколько существенных недостатков.
Во-первых, при прямом доступе к файлу для поиска i-го блока нужно осуществить несколько обращений к диску, последовательно считывая блоки от 1 до i-1, то есть выборка логически смежных записей, которые занимают физически несмежные секторы, может требовать много времени. Здесь мы теряем все преимущества прямого доступа к файлу.
Во-вторых, данный способ не очень надежен. Наличие дефектного блока в списке приводит к потере информации в оставшейся части файла и потенциально к потере дискового пространства, отведенного под этот файл.
Наконец, для указателя на следующий блок внутри блока нужно выделить место, что не всегда удобно. Емкость блока, традиционно являющаяся степенью двойки (многие программы читают и пишут блоками по степеням двойки), таким образом, перестает быть степенью двойки, так как указатель отбирает несколько байтов.
Поэтому метод связного списка обычно в чистом виде не используется.
Таблица отображения файлов
Одним из вариантов предыдущего способа является хранение указателей не в дисковых блоках, а в индексной таблице в памяти, которая называется таблицей отображения файлов ( FAT - file allocation table ). Этой схемы придерживаются многие ОС (MS-DOS, OS/2, MS Windows и др.)
По-прежнему существенно, что запись в директории содержит только ссылку на первый блок. Далее при помощи таблицы FAT можно локализовать блоки файла независимо от его размера. В тех строках таблицы, которые соответствуют последним блокам файлов, обычно записывается некоторое граничное значение, например EOF.
Главное достоинство данного подхода состоит в том, что по таблице отображения можно судить о физическом соседстве блоков, располагающихся на диске, и при выделении нового блока можно легко найти свободный блок диска, находящийся поблизости от других блоков данного файла. Минусом данной схемы может быть необходимость хранения в памяти этой довольно большой таблицы.
Индексные узлы
Наиболее распространенный метод выделения файлу блоков диска - связать с каждым файлом небольшую таблицу, называемую индексным узлом ( i-node ), которая перечисляет атрибуты и дисковые адреса блоков файла. Запись в директории, относящаяся к файлу, содержит адрес индексного блока. По мере заполнения файла указатели на блоки диска в индексном узле принимают осмысленные значения.
Индексирование поддерживает прямой доступ к файлу, без ущерба от внешней фрагментации. Индексированное размещение широко распространено и поддерживает как последовательный, так и прямой доступ к файлу.
Обычно применяется комбинация одноуровневого и многоуровневых индексов. Первые несколько адресов блоков файла хранятся непосредственно в индексном узле, таким образом, для маленьких файлов индексный узел хранит всю необходимую информацию об адресах блоков диска. Для больших файлов один из адресов индексного узла указывает на блок косвенной адресации. Данный блок содержит адреса дополнительных блоков диска. Если этого недостаточно, используется блок двойной косвенной адресации, который содержит адреса блоков косвенной адресации. Если и этого не хватает, используется блок тройной косвенной адресации.
Данную схему используют файловые системы Unix (а также файловые системы HPFS, NTFS и др.). Такой подход позволяет при фиксированном, относительно небольшом размере индексного узла поддерживать работу с файлами, размер которых может меняться от нескольких байтов до нескольких гигабайтов. Существенно, что для маленьких файлов используется только прямая адресация, обеспечивающая максимальную производительность.
Данную схему используют файловые системы Unix (а также файловые системы HPFS, NTFS и др.). Такой подход позволяет при фиксированном, относительно небольшом размере индексного узла поддерживать работу с файлами, размер которых может меняться от нескольких байтов до нескольких гигабайтов. Существенно, что для маленьких файлов используется только прямая адресация, обеспечивающая максимальную производительность.