Файл: Литература по курсу аос (по всем вопросам должен быть представлен краткий рукописный конспект в общей тетради).docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.02.2024

Просмотров: 83

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Совместимость делится на:

- двоичную совместимость (бинарный исполняемый файл для одной системы можно запустить в другой системе – то, что нужно юзеру);

- совместимость на уровне исходных текстов (интересует программистов, требует наличия собственно исходников программы, соответствующих компиляторов, библиотек и набора системных вызовов);
Мы говорим о двоичной совместимости.

Если архитектура процессоров сходна, то добиться совместимости просто. Нужно:

- чтобы системные вызовы, используемые в приложении, распознавались ОС

- чтобы совпадала внутренняя структура исполняемого файла (файл был распознан как исполняемый);
Для процессоров с совершенно разной архитектурой необходима еще и ЭМУЛЯЦИЯ двоичного кода.

Эмулятор должен:

  • распознавать, дешифровать и переводить системные инструкции одной ОС для другой

  • имитировать (эмулировать) состояния регистров, флагов и АЛУ одного железа для другого.

Это просто, но долго.
Поэтому решили использовать прикладные программные среды.
Прикладные программные среды имитируют обращения к библиотечным функциям, используя вместо них тщательно отлаженные подпрограммы для работы с графическим интерфейсом. За счет того, что работа современных программ – это на 70% работа с ГАЙ, задержки выполнения практически не возникает, или она минимальна.
Способы реализация ППС.

  1. Транслятор системных вызовов



Пишется специальная прога – транслятор системных вызовов, которая пропускает через себя исполняемую программу, перехватывает системные вызовы и преобразует их в эквивалентные системные вызовы другой операционной системы.
Все бы хорошо, но системные вызовы отличаются не только названием, но и поведением. Например, при создании процесса в Юникс, в этот процесс копируется адресное пространство процесса-родителя, чего не делает Виндовс.


  1. Второй вариант – реализация нескольких АПИ в одной системе.


Но этот способ тоже не решает проблему, тем более что несовместимость заключается не только в разнице в АПИ.

Системы также отличаются
разными алгоритмами работы (разные алгоритмы распределения процессорного времени, разное управление процессами.) Если пытаться приспособить менеджеры ОС к взаимодействию с программами для других ОС таким же способом, надо создавать 3 менеджера, что сложно, непонятно и ПЛОХО.


  1. Третий .


Каждая прикладная среда оформляется в виде отдельного сервера и не включает базовых механизмов. Приложение посылает запрос ядру, ядро перенаправляет запрос нужному серверу, сервер осуществляет выполнение нужной задачи (обращаясь за выполнением базовых действий снова-таки к ядру) и через ядро возвращает приложению результаты работы.

Такому подходу присущи все достоинства и недостатки микроядерной архитектуры.



  1. Подсистема управления процессами, основные задачи. Понятие многозадачности.

Процесс – это действия системы, связанные с выполнением программы и собственно выполнение этой программы.

Процесс – это сущность, рассматриваемая как единица работы.
Задачи подсистемы управления процессами:

- планировать выполнение процессов

- распределять процессорное время

- создавать и уничтожать процессы

- обеспечивать их ресурсами

- синхронизировать

- обеспечивать взаимодействие между процессами

- обеспечивать защиту данных

Многозадачность (мультипрограммирование) – способ организации вычислительного процесса, при котором на одном процессоре попеременно выполняется несколько программ.
Эти программы совместно используют не только процессор, но и другие ресурсы компьютера: оперативную и внешнюю память, устройства ввода-вывода и тд.
Мультипрограммирование призвано повысить эффективность использования вычислительной системы в соответствии с заданными критериями.
Критерии эффективности работы вычислительных систем:

- пропускная способность (к-во задач / единицу времени);

- удобство работы пользователей (интерактивная работа с несколькими приложениями);

- реактивность системы (способность выдерживать заданные интервалы между запуском приложения и получением результата)
В зависимости от критерия эффективности, системы делятся на:



- системы пакетной обработки (пропускная способность);

- системы разделения времени (удобство пользователя);

- системы реального времени (реактивность системы);


  1. Многозадачность в системах пакетной обработки, разделения времени и реального времени.

Системы пакетной обработки.

Главная цель – максимальная загрузка ЦП, минимизация простоев. Максимальная пропускная способность – к-во задач / единицу времени.
Перед началом работы формируется пакет заданий, каждое из которых содержит требования к системным ресурсам. Из этого пакета на одновременное выполнение выбираются задачи, предъявляющие разные требования к ресурсам, что обеспечивает сбалансированную загрузку ЦП.
Выбирается самое выгодное задание – невозможно гарантировать выполнение задания за какой-то определенный промежуток времени.
Способы совмещения работы ЦП и ввода-вывода:

  1. Канальный – у компа есть свой проц ввода-вывода (канал). Он умеет выполнять свои операции. ЦП дает ему параметры и указывает, какую именно инструкцию надо выполнить, после чего они работают параллельно.

  2. На основе контроллеров. Внешние устройства управляются собственными контроллерами. Контроллер отрабатывает команды, поступившие от ЦП, но делает это медленнее, чем ЦП (т.к. устройства внешние - электромеханические). За счет этого достигается параллелизм.


Переключение с задачи на задачу в системах пакетной обработки – невытесняющее, по инициативе самой задачи, которая добровольно отказывается от процессора, когда ей нужно устройство ввода – вывода.
Задача может надолго занять процессор – это снижает эффективность работы пользователя, но повышает эффективность использования аппаратуры.
Системы разделения времени

Цель – удобство работы пользователя.
Одному или нескольким юзерам предоставляется возможность работать сразу с несколькими приложениями. Поэтому время работы каждого приложения ограничивается – ОС приостанавливает его выполнение по истечении кванта процессорного времени.
Т.о. ни одна задача не занимает ЦП надолго, и время ответа приложения остается приемлемым для юзера, который общается с системой через терминал. У всех пользователей складывается впечатление, что они используют систему единолично
.
Такие системы обладают меньшей пропускной способностью, производительность системы снижается из-за более частых переключений процессора.
Системы реального времени

Предназначены для управления разными техническими объектами (спутники, станки, и тд). Существует предельно допустимое время, в течение которого должна быть выполнена та или иная задача. Иначе возникнет сбой с тяжелыми последствиями.
Критерий эффективности – способность выдерживать заранее заданные интервалы между запуском программы и получением результата – реактивность системы.
В системах реального времени мультипрограммная смесь состоит из фиксированного набора заранее разработанных программ (с известным временем их выполнения).
Запуск задач на выполнение осуществляется по прерываниям:

- либо исходя из текущего состояния объекта

- либо по плановому расписанию
Скорость ответа системы зависит от скорости обработки прерываний (опрос тысячи потенциальных устройств не подойдет). Это главный критерий выбора процессора для такой системы.
Загружать процессор по максимуму в этих системах нельзя, нужно оставлять запас вычислительной мощности на случай непредвиденной пиковой нагрузки. То, что вероятность ее возникновения крайне мала – здесь не аргумент, т.к. именно в этот момент больше всего понадобится адекватная реакция системы, от которой будет зависеть слишком многое (пример – зашкаливание датчиков при аварии на АЭС).


  1. Понятия процесса и потока. Состояния потока. Планирование и диспетчеризация потоков в многопоточных системах (с использованием не вытесняющих алгоритмов, на основе квантования, на основе приоритетов, смешанные алгоритмы планирования).


Понятие процесса и потока

Процесс – деятельность ОС, связанная с выполнением программы и собственно выполнение этой программы.
Процесс – сущность, рассматриваемая как единица работы ОС.
Процесс – это динамичное понятие. Одна программа, запущенная дважды – это два процесса. Программа – понятие статичное.
Поток – это поток команд, выполняемый процессором.

Это сущность, которая используется системой для распределения процессорного времени.
Все ресурсы в системе, кроме процессорного времени, выделяются для процесса:

- память


- адресное пространство

- возможность доступа к файлам тд

Процессорное время выделяется потоку. Т.о мультипрограммирование реализовывается на уровне потоков, а не процессов.
Для создания процесса система создает ОПИСАТЕЛЬ ПРОЦЕССА – информационную структуру, содержащую все сведения о процессе: его id, приоритет, права доступа, данные о расположении в памяти его кода и данных.
После того, как создан новый описатель процесса, система принимает вновь появившийся процесс при планировании распределения своих ресурсов.
Для того, чтобы создать процесс, нужно загрузить коды и данные исполняемой программы в оперативную память (при использовании витруальной памяти в оперативную память загружается только часть процесса, остальные подкачиваются при необходимости.)
При создании процесса ОС создает для него как минимум 1 поток выполнения, для чего генерируется специальная структура – ОПИСАТЕЛЬ ПОТОКА. Сюда записывается информация о id потока, его приоритете, правах доступа и состоянии и тд. Вновь созданный поток находится в приостановленном состоянии и становится в очередь на выполнение в соответствии с определенными правилами системы.
При работе с процессами система использует понятия ДЕСКРИПТОР ПРОЦЕССА (он же описатель, см. выше ) и КОНТЕКСТ ПРОЦЕССА.

  • Дескриптор процесса содержит информацию, необходимую ядру в течение всего жизненного цикла процесса (не важно, в памяти он сейчас или выгружен из нее).

Дескрипторы объединяются в ТАБЛИЦУ ПРОЦЕССОВ, которая хранится в ядре. На основании информации из таблицы процессов осуществляется планирование и синхронизация процессов.


  • Контекст процесса содержит более объемную и не такую важную информацию: содержимое регистров, указатели на открытые файлы и тд и тп.Контекст не хранится в области ядра, а выгружается на диск при необходимости (транзитный).


Состояния потока

ОС осуществляет планирование потоков в соответствии с их состоянием


Поток может находиться в одном из 3 основных состояний (есть еще и промежуточные)

  1. Выполнение (поток юзает процессор)

  2. Готовность (поток мог бы выполняться, но проц занят)

  3. Ожидание или блокировка (потоку что-то надо: ждет данные, операцию ввода вывода или еще чего);

Переход из одного состояния в другое осуществляется в соотсветствии с алгоритмом планирования конкретной ОС.