КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Виртуальная машина (ВМ), Экзоядро
Объектно-ориентированный подход в проектировании ОС. Лекция №4
Используется для добавления многих расширений к ядру ОС. Одним из примеров Объектных систем является программное обеспечение промежуточного уровня (ППО, middleware). COM (OLE/ActiveX) DCOM/COM+ Apple OpenDoc CORBA – OO технология, ориентированная на различных архитектурных производителей (интероперабельность).
Машина VM/370 разработана в центре IBM, (Кембридж, Массачусетс). Проект ОС основан на следующих наблюдениях: Система с разделением времени обеспечивает: · Многозадачность · Расширенную машину Идея заключалась в полном разделении этих функций. Многозадачность обеспечивает VM/370, а расширенную машину может обеспечить любая другая однопользовательская ОС. Монитор ВМ работает с оборудованием и обеспечивает многозадачность. Но представленная ВМ не является расширенной, т.к. любая ВМ идентична оборудованию, на каждой может работать любая ОС, которая работает на аппаратуре. Используется в технологии виртуализации в серверах. Экзоядро развивает идею виртуальной машины, но обеспечивает каждого пользователя копией реального компьютера с подмножеством ресурсов. Например, виртуальным машинам отводится блоки на дисках от 0 до 1023, от 1024 до 2047 и т. д. Преимущества: можно минимизировать реализацию уровня отображения и реализует многозадачность с меньшими затратами.
Управление локальными ресурсами. Управление процессами Процесс – абстракция, описывающая выполняющуюся последовательно программу. Процесс представляет собой единицу работы и заявку на потребление системных ресурсов. Состояние процессов:
Эти состояния присущи любому процессу. Как только процесс создаётся, он переходит в режим «Готов». Процессы группируются в очередь, откуда они переходят в состояние «Выполнение», если исчерпан определённый лимит. При истечении лимита (например, процессорного времени) процесс снова переходит в состояние «Готов», или в состояние «Ожидания». Если процессу потребовалось ожидать некоторого события, то он переходит в состояние «Ожидания», т.е. он попадает в очередь, связанную с определённым событием (например, в очередь ожидающих завершения события ввода/вывода). После наступления соответствующего события, процесс переходит из состояния ожидания в состояние готовности (переходит из очереди «Ожидание» в очередь «готовых» процессов).
Контекст и дескриптор процесса На протяжении своего существования, выполнение процесса может быть многократно прервано и продолжено. Для того, чтобы возобновить выполнение процесса необходимо восстановить состояние его операционной среды (состояние регистров, состояние программного счётчика, состояние режима работы процессора, информацию о незавершенных операциях ввода/вывода, указатели на открытые файлы и т.д.). Эта информация называется контекстом процесса. Однако, для реализации планировщика процессов требуется дополнительная информация (идентификатор процесса, данные о степени привилегированности процесса, данные о нахождении процесса в системных очередях планировщика, указатель на контекст). Эта информация называется дескриптором процесса. Программный код начнет выполняться, когда для него ОС-ой будет процесс. Создание процесса состоит из таких этапов: 1. Создать информационные структуры, описывающие процесс. 2. Включить дескриптор процесса в очередь готовых процессов. 3. Загрузить кодовый сегмент процесса в ОП или в область свопинга. WIN32.API скрывает от пользователя реальные системные вызовы (для совместимости с разными версиями Windows). WIN32.API – CreateProcess() - NT CreateProcess() - NTCreateThread () Алгоритм планирования решает следующие задачи: определение момента времени смены выполняемого процесса, выбор процесса из очереди готовых процессов. Переключение контекстов между старым и новым процессом (аппаратно-зависимая задача). Множество алгоритмов планирования можно разделить на 2 группы: 1. Алгоритмы, основанные на квантовании. 2. Алгоритмы, основанные на приоритетах. Кванты, выделяемые процессу, могут быть одинаковыми для всех процессов, а могут и не быть. Могут быть как фиксированной величиной, так и изменяться в течение жизни процесса. Процессы, не использующие кванты времени могут получить, а могут и не получить компенсацию при последующем обслуживании. Возможны разные дисциплины организации очередей готовых процессов (FIFO; LIFO). Приоритет – число, характеризующее степень привилегированности. Чем выше приоритет, тем меньше времени процесс проводит в очередях. Приоритет может назначаться директивно или вычисляться ОС по определенным правилам. Приоритет может быть постоянный или изменяющийся в течение жизни процесса. Может быть абсолютным или относительным. При относительном приоритете активный процесс не прекращает своего выполнения при появлении более приоритетного процесса, в противном случае – абсолютный приоритет. Невытесняющая многозадачность: способ планирования процессов, при котором активный процесс выполняется до тех пор, пока он по собственной инициативе не отдаст управление ОС (планировщику, чтобы он выбрал следующий процесс для исполнения). Вытесняющая многозадачность – способ планирования, при котором решение о переключении на новый процесс, принимает планировщик ОС, а не активная задача. Распределение функций между планировщиком и приложением в невытесняющей многозадачности может давать определенный преимущества: возможность самостоятельно проектировать алгоритм планирования, решается проблема совместно используемых ресурсов, более высокая скорость переключения с задачи на задачу. Нити Это потоки, облегченные процессы. В некоторых ОС, например, Windows NT, управление единицами работы и управление ресурсами разделены между собой (NTCreateProcess(), NTCreateThread()). Нити – те сущности, которые отвечают за управление единицами работы. Планировщик ОС (NT) “видит” только нити и ничего не знает о процессах. Нити имеют собственные: · программные счетчики; · регистры; · стеки; · состояния. Нити разделяют адресное пространство, глобальные переменные, открытые файлы, статическую информацию.
Дата добавления: 2014-12-07; Просмотров: 477; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |