- •1. Понятие и структура ос. Эволюция вычислительных и ос. Основные функции ос
- •Первый период (1945–1955 гг.)
- •Второй период (1955 г.– нач. 60-х)
- •Третий период (нач. 60-х – 1970 г.)
- •Четвертый период (с 1970 – 80 гг.) Персональные компьютеры.
- •Пятый период (с 1980 г. По н.В.)
- •3. Мультипрограммирование. Особенности реализации мультипрограммирования в системах пакетной обработки, разделения времени, реального времени, с мультипроцессорной обработкой
- •В системах пакетной обработки
- •В системах разделения времени
- •В системах реального времени
- •4.1. Различают симметричную и ассиметричную архитектуру таких систем
- •4.2. По способу организации процесса:
- •4. Роль прерываний при мультипрограммировании.
- •5. Понятие процесса и потока. Создание процессов и потоков. Управляющие структуры процессов и потоков
- •6. Контекст процесса и его состояния
- •7. Планирование процессов и потоков: критерии, виды, алгоритмы планирования
- •8. Параллельные процессы, синхронизация процессов, пример необходимости синхронизации, критическая секция.
- •9. Механизмы синхронизации: блокирующие переменные, семафоры, мониторы.
- •1) Блокирующие переменные
- •2) Семафоры
- •10. Проблемы синхронизации(тупики) и способы их разрешения.
- •11. Механизмы межпроцессного взаимодействия (каналы, очереди сообщений, разделяемая память)
- •12. Управление памятью: задачи управления, типы адресации
- •13. Распределение памяти: общие принципы управления памятью в однопрограммных ос, распределение памяти фиксированными, динамическими, перемещаемыми разделами
- •14. Сегментное распределение памяти
- •15. Страничное распределение памяти
- •16. Особенности эффективного использования таблицы страниц: многоуровневые таблицы страниц, ассоциативная память, инвертированная таблица страниц, хеширование
- •17. Сегментно - страничное распределение памяти
- •18. Физическая организация жёсткого диска
- •19. Принципы построения файловой системы: интерфейс, функциональная схема, типовая структура файловой системы
- •20. Способы выделения дискового пространства. Управление дисковым пространством. Размер логического блока
- •21. Особенности организации некоторых файловых систем
- •Vfat (Virtual fat)
4. Роль прерываний при мультипрограммировании.
Прерывание – это принудительная передача управления от выполняемой программы к системе (а через нее к соответствующей программе обработки прерывания), происходящая при возникновении определенного события.
Механизм прерывания реализуется аппаратно-программными средствами системы. Сами прерывания в зависимости от источника подразделяются на:
-
Аппаратные
-
Внешние (инициируются периферией) – асинхронны по отношению к основному потоку событий (вызываются между выполнениями двух соседних инструкций)
-
Внутренние (исключения) - происходят в микропроцессоре и инициируются синхронно выполнению программы при появлении аварийной ситуации в ходе исполнения некоторой инструкции программы. (прим.: деление на нуль, обращение по несуществующему адресу и тп.)
-
-
Программные (не «истинные») - возникают (синхронно) при исполнении особой команды процессора, которая имитирует прерывание, т.е. переход на новую последовательность инструкций.
Неотъемлемым элементом обработки прерываний является приоритет прерываний:
При мультипрограммировании, аппарат прерываний играет важную роль, так как является единственным способом уведомить процессор о каких-либо произошедших событиях.
5. Понятие процесса и потока. Создание процессов и потоков. Управляющие структуры процессов и потоков
Процесс – некоторая совокупность исполняемых команд, находящихся под управлением ОС, ассоциированных с ними ресурсов (выделенная память, стеки, файлы и тп) и информации о текущем моменте его исполнения (значения регистров, программного счетчика, состояние стека и значения переменных).
Поток – часть процесса, включающая управляющую последовательность команд и использующая системные ресурсы этого процесса.
Поток отличается от дочернего процесса тем, что является полностью зависимым от родительского процесса и работает в адресном пространстве этого процесса, поэтому будет завершен по завершению процесса. Дочерний процесс практически не зависит от родительского, для него системой отдельно выделяется адресное пространство, и он на равных правах с родительским «конкурирует» за процессорное время. + У потока невозможно изменить права доступа.
Потоки, как и процессы, могут порождать дочерние потоки, правда только внутри своего процесса.
Существуют две основные категории реализации потоков:
-
Пользовательские потоки – создаются с помощью спец. библиотек.
-
Потоки уровня ядра – потоки, реализуемые через системные вызовы и работающие в пространстве ядра.
Создать процесс – создать описатель процесса, в качестве которого выступает одна или несколько информационно управляющих структур, содержащих все сведения о процессе, необходимые ОС для управления им.
Создание процесса состоит из нескольких этапов:
-
присвоения идентификатора процессу;
-
включения его в список активных процессов, известных системе;
-
формирования блока управления процессом;
-
выделения процессу начальных ресурсов.
Создание потока – создается описатель потока, в качестве которого выступает одна или несколько информационно управляющих структур, содержащих все сведения о процессе, необходимые ОС для управления им.
int pthread_create(pthread_t *tid,pthred_attr_t *attr, void*(*function)(void*), void* arg)
В изначальном состоянии (или процесс, если речь идет о системе, в которой понятие «поток» не поддерживается) находится в приостановленном состоянии.
Управляющие структуры процессов и потоков:
-
Идентификатор процесса (Process Identifier, PID)
-
Тип (или класс) процесса, который определяет для супервизора некоторые правила предоставления ресурсов.
-
Приоритет процесса, в соответствии с которым супервизор предоставляет ресурсы.
-
Переменная состояния, которая определяет в каком состоянии находится процесс (готов, ожидает, выполняется, и тп)
-
Контекст задачи, т.е. защищенная область памяти (или ее адрес) в которой хранится текущее значение регистров процессора, когда процесс прерывается, не закончив работы.
-
Информация о ресурсах, которыми владеет и/или имеет право пользоваться процесс. (указатели на открытые файлы, информация о незавершенных операциях ввода-вывода и др.)
-
Место (или его адрес) для организации общения с другими процессами
-
Параметры времени запуска (моменты времени, когда процесс должен активизироваться, и периодичность этой процедуры)
-
В случае отсутствия системы управления файлами, адрес задачи на диске в ее исходном состоянии и адрес на диске, куда она выгружается из ОП, если ее вытесняет другая задача.