
- •1. Определение ос. Назначение и функции операционной системы. Место ос в структуре вычислительной системы.
- •3. Понятие ресурса. Основные ресурсы вычислительной системы. Управление ресурсами.
- •4. Критерии эффективности и классы ос.
- •8. Прерывания (понятие, классификация, обработка прерываний).
- •9. Требования, предъявляемые к современным ос.
- •10. Виртуализация. Гипервизор 1 и 2 типа. Контейнеры.
- •11. Архитектура ос. Ядро и вспомогательные модули.
- •12. Классическая архитектура ос. Монолитные и многослойные ос.
- •13. Микроядерная архитектура ос.
- •14. Процессы и потоки. Состояния потока
- •15. Планирование и диспетчеризация потоков, моменты перепланировки.
- •16. Алгоритм планирования, основанный на квантовании.
- •17. Приоритетное планирование.
- •18. Алгоритмы планирования в ос пакетной обработки: «первым пришел – первым обслужен», «кратчайшая задача – первая», «наименьшее оставшееся время выполнения».
- •Наименьшее оставшееся время выполнения
- •19. Алгоритмы планирования в интерактивных ос: циклическое, приоритетное, гарантированное, лотерейное, справедливое планирование.
- •Циклическое планирование (квантование)
- •Гарантированное планирование
- •Лотерейное планирование
- •Справедливое планирование
- •Приоритетное планирование
- •20. Алгоритм планирования Windows nt.
- •21. Алгоритмы планирования Linux: о(1), cfs.
- •22. Синхронизация процессов и потоков: цели и средства синхронизации.
- •23. Ситуация состязаний (гонки). Способы предотвращения.
- •24. Способы реализации взаимных исключений: блокирующие переменные, критические секции, мьютексы
- •25. Взаимные блокировки. Условия, необходимые для возникновения тупика.
- •26. Предотвращение взаимоблокировки. Алгоритм банкира для одного вида ресурсов.
- •27. Предотвращение взаимоблокировки. Алгоритм банкира для нескольких видов ресурсов.
- •28. Синхронизирующие объекты ос: системные семафоры, мьютексы, события, сигналы, барьеры, ждущие таймеры.
- •29. Организация обмена данными между процессами (каналы, разделяемая память, почтовые ящики, сокеты).
- •Каналы.
- •Разделяемая память
- •Почтовые ящики
- •Сокеты.
- •30. Функции ос по управлению памятью.
- •31. Алгоритмы распределения памяти без использования внешних носителей (фиксированные, динамические, перемещаемые разделы).
- •Распределение памяти динамическими разделами
- •32. Понятие виртуальной памяти Виртуализация памяти
- •Виртуальное адресное пространство - совокупность виртуальных адресов процесса. И эта совокупность может превышать объем физической памяти.
- •Структура виртуального адресного пространства
- •Виды виртуального адресного пространства:
- •33. Страничное распределение памяти.
- •34. Таблицы страниц для больших объемов памяти.
- •1 Многоуровневые таблицы страниц
- •2 Инвертированные таблицы страниц
- •35. Сегментное распределение памяти.
- •36. Сегментно-страничное распределение памяти.
- •37. Задачи ос по управлению файлами и устройствами.
- •38. Многослойная модель подсистемы ввода-вывода.
- •39. Физическая организация диска. Hdd, ssd устройства.
- •40. Файловая система. Определение, состав, типы файлов. Логическая организация файловой системы.
- •41. Физическая организация и адресация файлов.
- •42. Fat. Структура тома. Формат записи каталога. Fat12, fat16, fat32, exFat
- •43. Ufs, ext2: структура тома, адресация файлов, каталоги, индексные дескрипторы.
- •44. Ntfs: структура тома, типы файлов, организация каталогов.
- •45. Файловые операции. Процедура открытия файла.
- •46. Организация контроля доступа к файлам. Контроль доступа к файлам на примере Unix.
- •47. Отказоустойчивость файловых систем.
- •48. Избыточные дисковые подсистемы raid.
- •49. Многоуровневые драйверы.
- •50. Ускорение выполнения дисковых операций: традиционный дисковый кэш, кэш на основе механизма виртуальной памяти.
- •Классические задачи синхронизации: “производители-потребители”, “проблема обедающих философов”, “проблема спящего брадобрея”.
- •1. Официант
- •2. Иерархия вилок
- •3. Монитор
3. Понятие ресурса. Основные ресурсы вычислительной системы. Управление ресурсами.
Ресурс - это всякий объект, который может распределяться внутри вычислительной системы.
Основные ресурсы вычислительной системы бывают физические и логические. Также ресурсы бывают неделимые и разделяемые (несколько процессов могут использовать их одновременно). Разделяемые ресурсы также бывают одновременного доступа и доступа с разделением времени.
Ресурсы бывают выгружаемые и невыгружаемые. Выгружаем он оные могут быть отобраны у процесса без всяких негативных последствий (оперативная память). Невыгружаемые - не могут быть отобраны у процесса без всяких негативных последствий (жесткий диск).
К физическим относят: процессоры (процессорное время), память (оперативная, внешняя), периферийные устройства (диски, таймеры, принтеры, наборы данных).
К логическим относят только те ресурсы которые существуют в пределах самой ОС: таблицы выполняемых процессов, сетевых подключений.
4. Критерии эффективности и классы ос.
Главной целью и критерием эффективности систем пакетной обработки является максимальная пропускная способность, т.е. решение максимального числа задач в единицу времени. Для достижения этой цели в системах пакетной обработки используется следующая схема функционирования: в начале работы формируется пакет заданий, каждое задание содержит требования к системным ресурсам; из этого пакета формируется мультипрограммная смесь, то есть множество одновременно выполняемых задач. Для одновременного выполнения выбираются задачи, предъявляющие разные требования к ресурсам, так, чтобы обеспечивалась сбалансированная загрузка всех устройств вычислительной машины. Выбор нового задания из пакета заданий зависит от внутренней ситуации, складывающийся в системе. Следовательно, в вычислительных системах, работающих под управлением пакетных ОС, невозможно гарантировать выполнение того или иного задания в течение определенного периода времени.
Цель планирования в системах разделения времени - повышение удобства и эффективности работы пользователя. В системах разделения времени пользователям (или одному пользователю) предоставляется возможность интерактивной работы сразу с несколькими приложениями. ОС принудительно периодически приостанавливает приложения, не дожидаясь, когда они добровольно освободят процессор. Всем приложениям попеременно предоставляется квант процессорного времени, таким образом, что пользователи, запустившие программы на выполнение, получают возможность поддерживать с ними диалог.
ОС реального времени предназначены для управления различными техническими объектами или технологическими процессами. В таких системах мультипрограммная смесь обычно представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется по прерываниям (исходя из состояния управляемого объекта) или в соответствии с расписанием плановых работ. Критерий эффективности работы ОС реального времени – способность системы выдерживать заранее заданные интервалы времени между запуском программы и получением результата (реактивность системы).
5. Функциональные компоненты ОС персонального компьютера.
ДАЛЬШЕ БУДЕТ ПРО ПЕРВЫЕ 3 ПОДСИСТЕМЫ
6. Понятие интерфейса прикладного программирования.
API, также известный как интерфейс прикладного программирования, представляет собой набор протоколов и определений, которые могут позволить одному приложению взаимодействовать с другим приложением.
Позволяют разработчику пользоваться функциями ОС в виде обертки (интерфейса)
Практически все операционные системы (Unix, Windows, MacOS, и т. д.) имеют API, с помощью которого программисты могут создавать приложения для этой операционной системы. Главный API операционных систем — это множество системных вызовов.
В индустрии программного обеспечения общие стандартные API для стандартной функциональности имеют важную роль, так как они гарантируют, что все программы, использующие общий API, будут работать одинаково хорошо или, по крайне мере, типичным привычным образом. В случае API графических интерфейсов это означает, что программы будут иметь похожий пользовательский интерфейс, что облегчает процесс освоения новых программных продуктов.
С другой стороны, отличия в API различных операционных систем существенно затрудняют перенос приложений между платформами. Существуют различные методы обхода этой сложности — написание «промежуточных» API (API графических интерфейсов Qt, Gtk, и т. п.), написание библиотек, которые отображают системные вызовы одной ОС в системные вызовы другой ОС (такие среды исполнения, как Wine, cygwin, и т. п.), введение стандартов кодирования в языках программирования (например, стандартная библиотека [[Си языка C), написания интерпретируемых языков, реализуемых на разных платформах (sh, perl, php, tcl, Java, и т. д.)
7. Системные вызовы.
Системный вызов - это обращение из кода в User Mode (User Space) к коду ядра. Самые важные функции находятся как раз в ядре
Для разработчика приложений все особенности конкретной ОС представлены особенностями ее API. Поэтому разные ОС с одинаковым набором API, кажутся им одной и той же ОС. Это упрощает стандартизацию ОС. Стандартом API UNIX является стандарт Posix. Приложения выполняют обращения к функциям API с помощью системных вызовов.
Реализация системных вызовов должна обеспечивать:
• переключение в привилегированный режим;
• высокую скорость вызова процедур ОС;
• по возможности единообразное обращение к системным вызовам для всех аппаратных платформ, для которых предназначена ОС;
• возможность расширения набора системных вызовов;
• контроль со стороны ОС использования системных вызовов
Системные вызовы реализуются с помощью механизма программных прерываний.
Децентрализованная схема: обращения происходят напрямую
Централизованная : обращения происходят через диспетчер системных вызовов