Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен по ОС_Ответы.doc
Скачиваний:
51
Добавлен:
24.09.2019
Размер:
926.72 Кб
Скачать
  1. Объектно-ориентированный подход в проектировании ос.

Используется для добавления многих расширений к ядру ОС.

Одним из примеров Объектных систем является программное обеспечение промежуточного уровня (ППО, middleware).

COM (OLE/ActiveX)

DCOM/COM+

Apple OpenDoc

CORBA – OO технология, ориентированная на различных архитектурных производителей (интероперабельность).

  1. Виртуальная машина (вм), Экзоядро

Машина VM/370 разработана в центре IBM, (Кембридж, Массачусетс).

Проект ОС основан на следующих наблюдениях:

Система с разделением времени обеспечивает:

  • Многозадачность

  • Расширенную машину

Идея заключалась в полном разделении этих функций.

Многозадачность обеспечивает VM/370, а расширенную машину может обеспечить любая другая однопользовательская ОС.

Монитор ВМ работает с оборудованием и обеспечивает многозадачность. Но представленная ВМ не является расширенной, т.к. любая ВМ идентична оборудованию, на каждой может работать любая ОС, которая работает на аппаратуре.

Используется в технологии виртуализации в серверах.

Экзоядро развивает идею виртуальной машины, но обеспечивает каждого пользователя копией реального компьютера с подмножеством ресурсов. Например, виртуальным машинам отводится блоки на дисках от 0 до 1023, от 1024 до 2047 и т. д.

Преимущества: можно минимизировать реализацию уровня отображения и реализует многозадачность с меньшими затратами.

6) Абстракция процесса, управление процессами в многозадачной операционной системе. (определение процесса, диаграмма состояния, контекст, дескриптор, квантование, приоритетное планирование, нити)

Управление локальными ресурсами. Управление процессами

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

Процесс представляет собой единицу работы и заявку на потребление системных ресурсов.

Состояние процессов:

  1. Выполнение – активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно исполнения процессором.

  2. Ожидание – пассивное состояние процесса, процесс заблокирован, не может выполниться по своим внутренним причинам (завершение операции ввода/вывода, получение сообщение от другого процесса, освобождение ресурсов).

  3. Готовность – пассивное состояние процесса, процесс заблокирован в связи с внешними обстоятельствами. Процесс готов выполниться, но процессор занят выполнением другого процесса.

Эти состояния присущи любому процессу.

Как только процесс создаётся, он переходит в режим «Готов». Процессы группируются в очередь, откуда они переходят в состояние «Выполнение», если исчерпан определённый лимит. При истечении лимита (например, процессорного времени) процесс снова переходит в состояние «Готов», или в состояние «Ожидания».

Если процессу потребовалось ожидать некоторого события, то он переходит в состояние «Ожидания», т.е. он попадает в очередь, связанную с определённым событием (например, в очередь ожидающих завершения события ввода/вывода).

После наступления соответствующего события, процесс переходит из состояния ожидания в состояние готовности (переходит из очереди «Ожидание» в очередь «готовых» процессов).

Контекст и дескриптор процесса

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

Однако, для реализации планировщика процессов требуется дополнительная информация (идентификатор процесса, данные о степени привилегированности процесса, данные о нахождении процесса в системных очередях планировщика, указатель на контекст). Эта информация называется дескриптором процесса.

Программный код начнет выполняться, когда для него ОС-ой будет процесс.

Создание процесса состоит из таких этапов:

  1. Создать информационные структуры, описывающие процесс.

  2. Включить дескриптор процесса в очередь готовых процессов.

  3. Загрузить кодовый сегмент процесса в ОП или в область свопинга.

WIN32.API скрывает от пользователя реальные системные вызовы (для совместимости с разными версиями Windows).

WIN32.API – CreateProcess() - NT CreateProcess() - NTCreateThread ()

Алгоритм планирования решает следующие задачи: определение момента времени смены выполняемого процесса, выбор процесса из очереди готовых процессов.

Переключение контекстов между старым и новым процессом (аппаратно-зависимая задача).

Множество алгоритмов планирования можно разделить на 2 группы:

  1. Алгоритмы, основанные на квантовании.

  2. Алгоритмы, основанные на приоритетах.

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

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

Невытесняющая многозадачность: способ планирования процессов, при котором активный процесс выполняется до тех пор, пока он по собственной инициативе не отдаст управление ОС (планировщику, чтобы он выбрал следующий процесс для исполнения).

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

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

Нити

Это потоки, облегченные процессы. В некоторых ОС, например, Windows NT, управление единицами работы и управление ресурсами разделены между собой (NTCreateProcess(), NTCreateThread()).

Нити – те сущности, которые отвечают за управление единицами работы.

Планировщик ОС (NT) “видит” только нити и ничего не знает о процессах. Нити имеют собственные:

  • программные счетчики;

  • регистры;

  • стеки;

  • состояния.

Нити разделяют адресное пространство, глобальные переменные, открытые файлы, статическую информацию.