1. Ос как виртуальная машина
Чтобы успешно решать свои задачи, современный пользователь может обойтись без досконального знания аппаратного устройства компьютера. Ему не обязательно быть в курсе того, как функционируют различные электронные блоки и электромеханические узлы компьютера. Пользователь может не знать даже системы команд процессора. Программист также имеет дело с высокоуровневыми функциями, которые ему предоставляет операционная система.
Операционная система скрывает от программиста большую часть особенностей аппаратуры и предоставляет возможность простой работы с ресурсами компьютера и избавляет программистов от необходимости напрямую работать с аппаратурой и берет на себя все другие операции, связанные с управлением аппаратными устройствами компьютера.
В результате реальная машина, способная выполнять только небольшой набор элементарных действий, определяемых ее системой команд, превращается в виртуальную машину, выполняющую широкий набор более мощных функций.
В соответствии со вторым подходом функцией ОС является распределение процессоров, памяти, устройств и данных между процессами, конкурирующими за эти ресурсы. ОС должна управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить максимальную эффективность ее функционирования. Критерием эффективности может быть, например, пропускная способность или реактивность системы.
Ресурсы вычислительной системы распределяются между процессами. Процесс (задача) – это единица вычислительной работы, создаваемая ОС в результате запуска программы на выполнение. Программа – статический объект – файл с кодами и данными на носителе. Процесс – динамический объект, возникающий после запуска программы на выполнение.
Управление ресурсами включает решение общих, не зависящих от типа ресурса задач:
— планирование ресурса — то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;
— удовлетворение запросов на ресурсы;
— отслеживание состояния и учет использования ресурса — то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;
— разрешение конфликтов между процессами.
Сложность задачи организации эффективного использования ресурсов определяется случайным характером возникновения запросов на потребление ресурсов. В мультипрограммной системе создаются очереди заявок от процессов к разделяемым ресурсам. ОС организует обслуживание этих очередей по различным алгоритмам.
Управление ресурсами составляет важную часть функций любой операционной системы, в особенности мультипрограммной. В отличие от функций расширенной машины большинство функций управления ресурсами выполняются операционной системой автоматически и программисту недоступны.
НОУ ИНТУИТ | Лекция | Уровни абстракции ОС. ОС с архитектурой микроядра. Виртуальные машины. Цели проектирования и разработки ОС. Генерация ОС
< Дополнительный материал || Лекция 7: 123
Аннотация: В лекции рассматриваются следующие вопросы: методы проектирования и реализации ОС: уровни абстракции ОС; ОС с архитектурой микроядра; виртуальные машины; цели проектирования и разработки ОС с точки зрения пользователей и разработчиков; генерация ОС для конкретной компьютерной системы при ее инсталляции.
Ключевые слова: уровень абстракции, операции, DOS, PS/2, OS/2, API, ПО, ядро, управление памятью, драйвер устройства, пространство, Windows, new, technological, архитектура, надежность, серверная ОС, системные программы, Unix, POSIX, приложение, виртуальная машина, интерфейс, Виртуализация, IBM, virtual, PC, физический ресурс, процессор, буферизация, spool, файловая система, терминал, консоль, пользовательский процесс, компьютер, системный ресурс, Java, JVM, class loader, verifiability, контроль типов, interpretation, абстрактная машина, целевая платформа, net, программирование, промежуточный язык, Visual Basic, виртуальная память, максимум, язык высокого уровня, Си, системное программирование, операционная система, ассемблер, SUN, целый, работ, ОС реального времени, программа, запуск, ROM, BIOS, код программы, память, производительность, class, Java байт-код, время выполнения, win32, загрузчик, Just-In-Time, безопасность, механизмы, загрузка, JIT
intuit.ru/2010/edi»>Презентацию к данной лекции Вы можете скачать здесь.Введение
Сложность архитектуры ОС приводит к необходимости использования специальных методов для их разработки. В лекции рассмотрены наиболее популярные из таких методов.
Уровни абстракции ОС
Проектирование и реализация операционных систем адекватно соответствуют принципу уровней абстракции, сформулированному Э. Дейкстрой и подробно рассмотренному в [ 2 ] . На рис. 7.1 изображены уровни абстракции при разработке ОС.
Рис. 7.1. Уровни абстракции ОС.
Каждый новый уровень абстракции M определяет новые операции, в реализации которых используются операции предшествующего уровня M-1. Кроме того, уровень M-1 может иметь скрытые операции, используемые только на этом уровне и недоступные другим уровням.
На рис. 7.2 изображены уровни абстракции операционной системы OS/2 – второй ОС (вслед за MS DOS), разработанной фирмой Microsoft (в середине 1980-х гг.) для персональных компьютеров PS/2. OS/2 является значительно более развитой ОС, чем MS DOS, как видно из рисунка.
увеличить изображение
Рис.
7.2. Уровни абстракции OS/2
На верхнем уровне абстракции прикладные программы пользователей обращаются к интерфейсу прикладного программирования (application programming interface – API),который представляет собой набор библиотечных функций. API структурирован по подсистемам, причем набор подсистем расширяем. Нижние уровни абстракции реализуют ядро ОС, выполняющее функции управления памятью, диспетчеризации задач и управления устройствами.
Наконец, на самом низком уровне абстракции реализованы драйверы устройств.Операционные системы с микроядром
Микроядро (micro-kernel) – один из важнейших принципов разработки ОС, который заключается в переносе максимально возможного числа модулей из системного в пользовательское «пространство», т.е. ОС разрабатывается таким образом, что большинство ее модулей выполняются в пользовательском режиме. Коммуникация выполняется между пользовательскими модулями с помощью передачи сообщений. Преимущества такого подхода:
- микроядро легче расширять;
- легче переносить ОС на новые аппаратные платформы;
увеличивается надежность ОС, так как большее число программ выполняются в непривилегированном режиме;- улучшается безопасность ОС.
увеличить изображение
Рис.
7.3. Клиент –серверная структура Windows NT.
Система Windows NT (от New Technology), разработанная в середине 1990-х гг., воплотила в себе новый подход Microsoft к разработке операционных систем. Его отличительные черты: модульная клиент-серверная архитектура, микроядро, обеспечение совместимости с распространенными видами приложений для других ОС (например, OS/2), расширенные сетевые возможности, повышенная надежность. Windows NT с середины 1990-х гг. широко распространилась как серверная ОС. Для совместимости с приложениями для других ОС, в Windows NT реализованы соответствующие серверы. Взаимодействие клиентских приложений с ними показано на схеме.
Аббревиатура Win32 означает «библиотеки (API) ОС Windows для 32-разрядных процессоров». POSIX (Portable Operating Systems of unIX type) – стандарт для библиотек, системных вызовов и системных программ для операционных систем типа UNIX. POSIX-совместимость означает, что приложение, предназначенное для UNIX, использует только стандартные возможности. Все современные ОС (начиная с Windows NT) обеспечивают совместимость с POSIX-приложениями. Заметим, что все серверы для совместимости с другими ОС в Windows NT выполняются в непривилегированном режиме, но обращаются к микроядру.Дальше >>
< Дополнительный материал || Лекция 7: 123
Виртуальные машины в операционной системе
Улучшить статью
Сохранить статью
- Уровень сложности: Easy
- Последнее обновление: 26 ноя, 2019
Улучшить статью
Сохранить статью
Виртуальная машина абстрагирует аппаратное обеспечение нашего персонального компьютера, такое как ЦП, дисковые накопители, память, NIC (сетевая интерфейсная карта) и т. д., во множество различных сред выполнения в соответствии с нашими требованиями, что дает нам ощущение, что каждая среда выполнения один компьютер. Например, ВиртуалБокс.
Когда мы запускаем разные процессы в операционной системе, создается иллюзия, что каждый процесс работает на отдельном процессоре, имеющем свою собственную виртуальную память, с помощью планирования процессора и методов виртуальной памяти. Существуют дополнительные функции процесса, которые не могут быть обеспечены только аппаратным обеспечением, такие как системные вызовы и файловая система. Подход виртуальной машины не предоставляет эти дополнительные функции, а только предоставляет интерфейс, аналогичный базовому оборудованию. Каждому процессу предоставляется виртуальная копия базовой компьютерной системы.
Мы можем создать виртуальную машину по нескольким причинам, каждая из которых в основном связана с возможностью совместного использования одного и того же базового оборудования, но также может поддерживать разные среды выполнения, т. е. разные операционные системы одновременно.
Основной недостаток подхода с использованием виртуальных машин связан с дисковыми системами. Предположим, что физическая машина имеет только три диска, но хочет поддерживать семь виртуальных машин. Очевидно, что он не может выделить дисковый накопитель для каждой виртуальной машины, потому что самому программному обеспечению виртуальной машины потребуется значительный объем дискового пространства для предоставления виртуальной памяти и буферизации. Решение состоит в том, чтобы предоставить виртуальные диски.
Таким образом, пользователям предоставляются собственные виртуальные машины. После чего они могут запускать любые операционные системы или программные пакеты, доступные на базовой машине. Программное обеспечение виртуальной машины связано с мультипрограммированием нескольких виртуальных машин на физической машине, но оно не должно учитывать какое-либо программное обеспечение для поддержки пользователей. Такое расположение может обеспечить полезный способ разделить проблему проектирования многопользовательской интерактивной системы на две меньшие части.
Преимущества:
- Проблем с защитой нет, так как каждая виртуальная машина полностью изолирована от всех остальных виртуальных машин.
- Виртуальная машина может иметь архитектуру набора инструкций, отличную от реальной.
- Простота обслуживания, доступность и удобное восстановление.
Недостатки:
- Когда на хост-компьютере одновременно работает несколько виртуальных машин, на одну виртуальную машину могут влиять другие работающие виртуальные машины, в зависимости от рабочей нагрузки.
- Виртуальные машины не так эффективны, как настоящие, при доступе к оборудованию.
Следующий
Виртуальная память в операционной системе
Статьи по теме
Что нового
Мы используем файлы cookie, чтобы обеспечить вам максимальное удобство просмотра нашего веб-сайта. Используя наш сайт, вы подтверждаете, что вы прочитали и поняли наши Политика использования файлов cookie & Политика конфиденциальности
404: Страница не найдена
ITОперацииСтраница, которую вы пытались открыть по этому адресу, похоже, не существует. Обычно это результат плохой или устаревшей ссылки. Мы приносим свои извинения за доставленные неудобства.
Что я могу сделать сейчас?
Если вы впервые посещаете TechTarget, добро пожаловать! Извините за обстоятельства, при которых мы встречаемся. Вот куда вы можете пойти отсюда:
Поиск- Узнайте последние новости.
- Наша домашняя страница содержит самую свежую информацию об ИТ-операциях.
- Наша страница о нас содержит дополнительную информацию о сайте, на котором вы находитесь, IT Operations.
- Если вам нужно, пожалуйста, свяжитесь с нами, мы будем рады услышать от вас.
Поиск по категории
Качество ПО
- ПГ-тест
Тест PG
- Усилия по повышению безопасности памяти в программном обеспечении набирают обороты
Небезопасный доступ к памяти может привести к финансовым проблемам для предприятий и причинить вред отдельным лицам, говорят эксперты, консультируя предприятия. ..
- Разработчики обсуждают, когда использовать TypeScript или JavaScript
TypeScript выявляет ошибки во время компиляции, что приносит пользу разработчикам и пользователям. Но язык подходит не для каждого проекта…
Архитектура приложения
- Rust vs. Go: противостояние языков на основе микросервисов
Rust и Go предлагают языковые функции, ориентированные на разработку на основе микросервисов, но их относительные возможности делают их…
- Каковы типы API и их различия?
Предприятия все больше полагаются на API для взаимодействия с клиентами и партнерами. Все начинается со знания того, какой тип API…
- Как архитекторы могут использовать математику салфеток для прогнозирования производительности
Хотя современные программные системы могут быть чрезвычайно сложными, архитекторы все еще могут использовать простую математику для быстрого подбора. ..
Облачные вычисления
- Последний Google Cloud AI проливает свет на автоматизацию розничной торговли
Автоматизированные системы отслеживания запасов на базе искусственного интеллекта не идеальны. Однако ритейлерам с высокими показателями упущенных продаж не хватает…
- Как настроить автомасштабирование в службе Azure Kubernetes
Изучите параметры масштабирования в AKS, такие как горизонтальный модуль и средство автомасштабирования кластера. Затем следуйте пошаговому руководству по …
- Варианты IaaS и PaaS на AWS, Azure и Google Cloud Platform
Хотите перенести рабочие нагрузки вашей организации в облако? Узнайте о преимуществах и недостатках вариантов IaaS и PaaS…
ПоискAWS
- AWS Control Tower стремится упростить управление несколькими учетными записями
Многие организации изо всех сил пытаются управлять своей огромной коллекцией учетных записей AWS, но Control Tower может помочь. Услуга автоматизирует…
- Разбираем модель ценообразования Amazon EKS
В модели ценообразования Amazon EKS есть несколько важных переменных. Покопайтесь в цифрах, чтобы убедиться, что вы развернули службу…
- Сравните EKS и самоуправляемый Kubernetes на AWS
Пользователи
AWS сталкиваются с выбором при развертывании Kubernetes: запустить его самостоятельно на EC2 или позволить Amazon выполнить тяжелую работу с помощью EKS. См…
TheServerSide.com
- Как разработчики могут избежать мошенничества с удаленной работой
Разработчики программного обеспечения могут найти хорошую удаленную работу по программированию, но некоторые предложения о работе слишком хороши, чтобы быть правдой. Следуйте этим советам, чтобы найти…
- Кто должен быть владельцем продукта в Scrum?
Кто должен быть владельцем продукта Scrum и как организация выбирает подходящего человека для этой работы? Это не просто.