
- •Определение ос. Функции ос. Ос как виртуальная машина и как система управления ресурсами.
- •Монолитная архитектура. Преимущества и недостатки монолитной архитектуры. Архитектура ос. Ядро и вспомогательные модули
- •Микроядерная архитектура. Преимущества и недостатки микроядерной архитектуры
- •Понятия «процесс» и «поток». Состояния потока. Диаграмма состояний потока. Контекст и дескриптор.
- •Вытесняющие алгоритмы планирования процессов и потоков. Вытесняющие и невытесняющие алгоритмы планирования
- •Алгоритмы распределения памяти с использованием дискового пространства. Страничное распределение виртуальной памяти.
- •Физическая организация файлов
- •Классификация ос.
- •Архитектура ос. Ядро и вспомогательные модули ос. Архитектура современных ос.
- •Ядро в привилегированном режиме. Многослойная структура ядра.
- •Аппаратная зависимость и переносимость ос. Типовые средства аппаратной поддержки ос. Машинно-зависимые и машинно-независимые компоненты ос.
- •Мультипрограммирование и мультипроцессорная обработка. Понятия «процесс» и «поток». Создание, планирование и диспетчеризация потоков.
- •Вытесняющие и не вытесняющие алгоритмы планирования.
- •Мультипрограммирование на основе прерываний. Назначение и типы прерываний. Контроллер прерываний.
- •Механизм обработки прерываний в реальном и защищенном режимах процессоров Intel.
- •Синхронизация процессов и потоков. Блокирующие переменные. Системные функции Post() и Wait().
- •V(s): переменная s увеличивается на 1 единым действием. Выборка, наращивание и запоминание не могут быть прерваны. К переменной s нет доступа другим потокам во время выполнения этой операции.
- •Тупики. Условия возникновения тупиков. Задачи ос, связанные с решением проблемы тупиков.
- •Функции ос по управлению памятью. Типы адресов. Способы преобразования адресов.
- •Алгоритмы распределения памяти без использования дискового пространства.
- •Виртуальная память. Алгоритмы распределения виртуальной памяти.
- •Адресация в защищенном режиме микропроцессора Intel. Плоская модель памяти. Pae режим адресации.
- •Иерархия запоминающих устройств. Кэширование данных.
- •Задачи ос по управлению вводом/выводом. Физическая организация устройств ввода/вывода. Асинхронный и синхронный ввод/вывод.
- •Понятие о файле. Задачи ос по управлению файлами. Типы файлов. Файловые структуры. Атрибуты файлов. Логическая организация файлов.
- •Общая модель файловой системы. Архитектура переключаемых файловых систем.
- •Файловые системы fat, ntfs, ext2(3)fs.
- •Назначение и состав bios. Настройка параметров bios.
- •Integrated Peripherals — настройка параметров интегрированных периферийных устройств, которые поддерживаются южным мостом — таких, как гибкие и жесткие диски, адаптеры, порты и др.
Классификация ос.
Операционные системы реального времени, ос пакетной обработки и обычные
По типу управления ресурсами.
· По числу одновременно выполняемых задач: однозадачные(MS-DOS, MSX) и многозадачные(MS Dos, Linux,Windows);
· По числу одновременно работающих пользователей: однопользовательские(MS-DOS, Windows 3.x, ранние версии OS/2), многопользовательские(UNIX, Windows NT);
· По способу распределения времени: невытесняющая многозадачность (NetWare, Windows 3.x),вытесняющая многозадачность (Windows NT, OS/2, UNIX);
· Поддержка многопоточности;
· Многопроцессорная обработка: асимметричная ОС(целиком выполняется только на одном из процессоров системы, распределяя прикладные задачи по остальным процессорам),симметричная ОС (полностью децентрализована и использует весь пул процессоров, разделяя их между системными и прикладными задачами);
· По типу аппаратных платформ: ОС персональных компьютеров, ОС миникомпьютеров, ОС мейнфреймов, ОС кластеров, ОС сетей ЭВМ;
· По областям использования: пакетные, разделения времени, реального времени;
· По способу структурной организации: классические, микроядерные.
Архитектура ос. Ядро и вспомогательные модули ос. Архитектура современных ос.
Операционная система состоит из ядра и вспомогательных модулей.
Ядро выполняет:
· базовые функции ОС (управление процессами, памятью, устройствами ввода/вывода;
· функции, решающие внутрисистемные задачи организации вычислительного процесса, (переключение контекстов, загрузка/выгрузка страниц, обработка прерываний). Эти функции недоступны для приложений;
· функции для поддержки приложений, создающие для них прикладную программную среду. Приложения могут обращаться к ядру с запросами (системными вызовами) для выполнения тех или иных действий. Функции ядра, которые могут вызываться приложениями, образуют интерфейс прикладного программирования – API.
Для обеспечения высокой скорости работы все модули ядра или большая их часть постоянно находятся в оперативной памяти, то есть являются резидентными. Кроме того, одним из определяющих свойств ядра является работа в привилегированном режиме.
Вспомогательные модули ОС обычно подразделяются на следующие группы:
· утилиты – программы, решающие отдельные задачи управления и сопровождения компьютерной системы, например, программы сжатия диска, архивирования и т.д.
· системные обрабатывающие программы – текстовые и графические редакторы, компиляторы, компоновщики, отладчики;
· программы дополнительных услуг – специальный вариант пользовательского интерфейса, калькулятор, игры;
· библиотеки процедур – библиотека математических функций, функций ввода/вывода и т.д.
Ядро в привилегированном режиме. Многослойная структура ядра.
Обеспечить привилегии операционной системе невозможно без специальных средств аппаратной поддержки. Аппаратура компьютера должна поддерживать как минимум два режима работы — пользовательский режим (user mode) и привилегированный режим, который также называют режимом ядра (kernel mode), или режимом супервизора (supervisor mode). Подразумевается, что операционная система или некоторые ее части работают в привилегированном режиме, а приложения — в пользовательском режиме.
Так как ядро выполняет все основные функции ОС, то чаще всего именно ядро становится той частью ОС, которая работает в привилегированном режиме. Иногда это свойство — работа в привилегированном режиме — служит основным определением понятия «ядро».
Вычислительную систему, работающую под управлением ОС на основе ядра, можно рассматривать как систему, состоящую из трех иерархически расположенных слоев: нижний слой образует аппаратура, промежуточный — ядро, а утилиты, обрабатывающие программы и приложения, составляют верхний слой системы. Слоистую структуру вычислительной системы принято изображать в виде системы концентрических окружностей, иллюстрируя тот факт, что каждый слой может взаимодействовать только со смежными слоями. Действительно, при такой организации ОС приложения не могут непосредственно взаимодействовать с аппаратурой, а только через слой ядра.
Многослойный подход является универсальным и эффективным способом декомпозиции сложных систем любого типа, в том числе и программных. В соответствии с этим подходом система состоит из иерархии слоев. Каждый слой обслуживает вышележащий слой, выполняя для него некоторый набор функций, которые образуют межслойный интерфейс. На основе функций нижележащего слоя следующий (вверх по иерархии) слой строит свои функции — более сложные и более мощные, которые, в свою очередь, оказываются примитивами для создания еще более мощных функций вышележащего слоя. Строгие правила касаются только взаимодействия между слоями системы, а между модулями внутри слоя связи могут быть произвольными. Отдельный модуль может выполнить свою работу либо самостоятельно, либо обратиться к другому модулю своего слоя, либо обратиться за помощью к нижележащему слою через межслойный интерфейс