Что такое супервизор в компьютере

Обновлено: 01.07.2024

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

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

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

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

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

Схема работы виртуальной машины

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

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

Одно из важнейших требований к гипервизору – безопасность

В чем особенности работы гипервизоров 1 типа?

Гипервизор первого типа называют еще микроядром, тонким гипервизором, автономным гипервизором, исполняемым на «голом железе». Гипервизор первого типа проще всего воспринимать как специфическую компактную операционную систему, которая устанавливается прямо на «железо» (bare-metal server) и имеет основные признаки ОС:

  • вместо неупорядоченного набора аппаратного обеспечения предоставляет абстрактный набор ресурсов для прикладных программ (т.н. «взгляд сверху»);
  • управляет набором ресурсов – распределяет процессорное время, память, устройства ввода-вывода между программами, которые претендуют на использование ресурсов компьютера (т.н. «взгляд снизу»).

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

Принцип работы гипервизора 1 типа

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

Большинство современных процессоров Intel и AMD для десктопов и серверов на аппаратном уровне поддерживает технологию виртуализации и разделение работы ОС на два уровня привилегий: режим ядра (привилегированный) и пользовательский режим. При этом полномочия прикладной программы по управлению ресурсами компьютера существенно урезаны.

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

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

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

Системные вызовы также перехватываются и выполняются внутри гипервизора, но со стороны каждой гостевой ОС все выглядит так, как должно быть при обычном выполнении инструкций в ее режиме ядра. Иными словами, гипервизор создает «иллюзию» для гостевой операционной системы, что ее код выполняется хостом на уровне железа, в привилегированном режиме, хотя де-факто она функционирует в режиме пользователя. Если произойдет крах одной из гостевых систем, работа остальных будет продолжаться.

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

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

К первому типу гипервизоров можно отнести Xen, VMware ESXi, Hyper-V и ряд других.

Xen (Xenserver, Citrix Hypervisor)

Тонкий гипервизор Xen был разработан в рамках исследовательского проекта лаборатории Кембриджского университета и в 2003 году компанией XenSource выпущен первый публичный релиз. С 2007 года XenSource поглощена Citrix, в результате чего часть продуктов получила новые названия. Xen представляет собой кроссплатформенный гипервизор, поддерживающий аппаратную виртуализацию и паравиртуализацию. Содержит минимальный объем кода, поскольку большая часть компонентов вынесена за пределы гипервизора. Xen – гипервизор с полностью открытым кодом, лицензии GNU GPL 2, что дает неограниченные возможности модифицировать продукт. За счет поддержки паравиртуализации и аппаратной виртуализации Xen относят также к гибридному типу гипервизоров.

VMWARE ESXI

Автономный гипервизор VMware ESXi – решение для виртуализации класса Enterprise, разработанное компанией VMware. Как и у других продуктов VMware, ESXi доступен в бесплатной версии, с ограниченным функционалом, и платной, с расширенными возможностями, – например, централизованное управление всеми виртуальными машинами на всех хостах проекта с помощью платформы vCenter. Но даже бесплатная версия гипервизора успешно реализует все обязательные функции гипервизора. Пользователи отмечают высокую стабильность продукта, простоту в администрировании, минимальный код, широкий спектр поддерживаемых гостевых систем – основные версии ОС, которые используются в корпоративном секторе.

HYPER-V

Системное решение Microsoft для аппаратной виртуализации, предназначенное для x64-систем. Существует в двух вариантах – как роль в серверных ОС семейства Windows (Windows Server 2008, Windows Server 2012 и др., а также в x64-битной Pro- и Enterprise-версии систем Windows 8, Windows 8.1, Windows 10) и в виде отдельного продукта Microsoft Hyper-V Server. Многие из тех, кто привык работать с Microsoft, считают Hyper-V самым удобным и юзабильным решением, если речь заходит о виртуализации. К слову, облако Azure полностью построено на нативных продуктах корпорации MS.

Гипервизор второго типа работает как один из процессов, выполняемых основной ОС

Как работают гипервизоры 2 типа?

Гипервизор второго типа называется также хостовым (hosted). Он представляет собой дополнительный программный слой, расположенный поверх основной операционной системы.

Фактически гипервизор второго типа работает как один из процессов, выполняемых основной ОС, чаще всего – Linux. В этом случае полномочия гипервизора значительно скромнее: он управляет гостевыми операционными системами, а эмуляцию и управление физическими ресурсами берет на себя хостовая ОС.

Принцип работы гипервизоров 2 типа

Наиболее популярные гипервизоры второго типа – Oracle VM VirtualBox, VMware Workstation, KVM.

ORACLE VM VIRTUALBOX

Oracle VM VirtualBox – модульный кроссплатформенный гипервизор для операционных систем Linux, macOS, Microsoft Windows, FreeBSD, Solaris/OpenSolaris, ReactOS, DOS и других от корпорации Oracle. Был создан в 2007 г. в корпорации Sun Microsystems, затем, после поглощения ее Oracle, работа над гипервизором продолжилась. Исходный код базовой версии открыт по лицензии GNU GPL, поэтому гипервизор пользуется популярностью и доступен для неограниченного модифицирования. Интересно, что VirtualBox способен поддерживать 64-битные гостевые системы, даже если ОС хоста 32-битная.

VMWARE WORKSTATION

Первая версия гипервизора VMware Workstation, разработанного компанией VMware, входящей в EMC Corporation, увидела свет в 1999 году. Это проприетарное ПО, работающее с x86-64 операционными системами хоста Microsoft Windows, Linux, Ubuntu, CentOS. Поддерживает более 200 гостевых ОС. Для теста можно воспользоваться бесплатной версией Workstation Player, которая сильно урезана в функциональности, по сравнению с версией Pro.

Kernel-based Virtual Machine, KVM, – гипервизор, созданный в октябре 2006 года и почти сразу был интегрированный с основной веткой ядра Linux версии 2.6.20., выпущенной в начале 2007 года. Позже KVM был адаптирован как модуль ядра в FreeBSD. В KVM включены загружаемый модуль ядра kvm.ko, отвечающий за виртуализацию, процессорно-специфический загружаемый модуль для AMD или Intel kvm-amd.ko, либо kvm-intel.ko, и компоненты пользовательского режима QEMU. KVM – полностью открытое ПО по лицензии GNU GPL и GNU LGPL. Кстати, при создании публичного облака SIM-Cloud IaaS инженеры использовали для виртуализации KVM QEMU.

Гибридный гипервизор управляет процессором и памятью, а устройствами ввода-вывода – через гостевые ОС

Что такое гибридные гипервизоры?

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

Технологии постоянно развиваются, и производители гипервизоров ищут пути совершенствования своих продуктов, создают новые версии, более гибкие, более интегрированные к разным системам и условиям. В последние годы гипервизоры Xen и Hyper-V все чаще относят уже не к первому типу, а к гибридному, и отчасти это верно. Современные версии этих гипервизоров в значительной степени сочетают в себе свойства обоих типов.

Паравиртуализация модифицирует гостевые ОС для исполнения в виртуализированной среде

Что такое паравиртуализация?

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

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

Контейнеры могут развернуть больше приложений на одном физическом сервере, чем гипервизоры

Что такое контейнерные решения?

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

Среди контейнеров широко распространен гипервизор OpenVZ, на котором основана платформа Virtuozzo. Преимуществом решения OpenVZ – хорошая производительность, максимальное использование ресурсов физического сервера за счет высокой плотности размещения ВМ.

Интересным также является контейнерное решение Jailhouse от Siemens. Этот гипервизор работает на «железе», но запускается на работающей системе Linux и обеспечивает ее разделение на изолированные «ячейки» – разделы системы для выполнения приложений пользователя.

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

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

-если он свободен и в системе нет запросов от задач с более высоким приоритетом,

- текущий запрос обслуживается и ранее выданные запросы допускают совместное использование ресурсов,

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

Супервизор ввода-вывода.

Управление вводом-выводом осуществляется компонентом ОС, который часто называют супервизором ввода-вывода. Основные задачи, возлагаемые на супервизор:

Супервизор ввода-вывода получает запросы на ввод-вывод от супервизора задач или от программных модулей самой Ос.

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

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

При получении сигналов прерываний от устройств ввода-вывода супервизор идентифицирует эти сигналы и передает управление соответствующим программам обработки прерываний.

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

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

Супервизор задач.

Ядро ОС и низкоуровневые драйверы, управляющие работой каналов и устройств ввода-вывода, должны работать в специальном режиме работы процессора. Это необходимо по нескольким причинам. Во-первых, введение специального режима работы процессора, в котором должен исполняться только код ОС, позволяет существенно повысить надежность выполнения вычислений. Это касается выполнения как управляющих функций самой ОС, так и прикладных задач пользователей. Категорически нельзя допускать, чтобы какая-нибудь прикладная программа могла вмешиваться в вычисления, связанные с супервизорной частью ОС. Во-вторых, ряд функций должен выполняться исключительно централизованно, под управлением ОС. К этим функциям мы должны отнести функции, связанные с выполнением процессами ввода-вывода: все операции ввода-вывода данных объявляются привилегированными. Это легче всего сделать, если процессор может работать, как минимум, в двух режимах: привилегированном и пользовательском. В первом режиме процессор может выполнять все команды, тогда как в пользовательском набор разрешенных команд ограничен. Естественно, что помимо запрета на выполнение команд ввода-вывода в пользовательском режиме работы процессор не должен позволять обращаться к своим системным регистрам- эти регистры должны быть доступны только в привилегированном режиме, то есть исключительно супервизорному коду самой ОС. Попытка выполнить запрещенную команду или обратиться к запрещенному регистру должна вызывать прерывание(исключение), и центральный процессор должен быть предоставлен супервизорной части ОС для управления выполняющимися вычислениями.

Поскольку любая программа требует операций ввода-вывода, прикладные программы для выполнения этих(и некоторых других) операций обращаются к супервизорной части ОС( модуль супервизора иногда называют супервизором задач) с соответствующим запросом. При этом процессор должен переключиться в привилегированный режим работы. Чтобы программы не могли произвольным образом обращаться к супервизорному коду, который работает в привилегированном режиме, им предоставляется возможность обращаться к нему в строгом соответствии с принятыми правилами. Каждый запрос имеет свой идентификатор и должен сопровождаться соответствующим количеством параметров, уточняющих запрашиваемую у ОС функцию(операцию).Поэтому супервизор задач при получении запроса сначала его тщательно проверяет. Если запрос корректный и программа имеет право с ним обращаться, то запрос на выполнение операции, как правило, передается соответствующему модулю ОС. Множество запросов к ОС образует соответствующий системный интерфейс прикладного программирования(Aplication Program Interface, API)

Супервизор прерываний.

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

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

Прерывания являются основной движущей силой любой ОС.

Механизм прерываний осуществляется аппаратными и программными средствами.

Установление факта прерывания(сигнал запроса на прерывание) и идентификация прерывания.

Запоминание состояния прерванного процесса вычислений.

Управление аппаратно передается на подпрограмму обработки прерываний.

Сохранение информации о прерванной программе, с помощью программы обработки прерывания.

Восстановление информации, относящейся к прерванному процессу.

Возврат на прерванную программу.

Главные функции механизма прерываний:

распознавание или классификация прерываний.

передача управления соответствующему обработчику прерываний.

корректное возвращение к прерванной программе.

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

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

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

Прерывания обрабатываются модулями ОС, т.к. действия которые выполняются по прерыванию относятся по управлению ресурсами ВС.

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

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

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

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

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

Супервизор диспетчера задач.

Один из основных модулей супервизора операционной системы — диспетчер задач — переводит процессы в одно из состояний в зависимости от того, доступен тот или иной ресурс или не доступен. И поскольку в мультизадачной системе любой процесс содержит хотя бы один поток, то потоку (то есть задаче) ставится в соответствие дескриптор задачи, в котором сохраняется контекст этих вычислений. Сказанное справедливо для мультипрограммных систем, поддерживающих мультизадачный режим. В мультипрограммных системах, не поддерживающих мультизадачность, контекст прерванного процесса хранится в дескрипторе этого процесса. Заметим, что повсеместно распространенные системы Windows 9x/NT/2000/XP являются и мультипрограммными, и мультизадачными.

Еще одним доводом в пользу термина «задача» при рассмотрении вопросов организации распределения процессорного времени между выполняющимися вычислениями является аналогичный выбор этой сущности разработчиками процессоров. Именно для отображения этой ситуации и обеспечения дополнительными возможностями системных программистов в решении вопросов распределения процессорного времени они вводят специальные информационные структуры и аппаратную поддержку для работы с ними. Во многих современных микропроцессорах, предназначенных для построения на их основе мощных мультипрограммных и мультизадачных систем, имеются дескрипторы задач. Примером, подтверждающим этот тезис, являются микропроцессоры, совместимые с архитектурой ia32, то есть с 32-разрядными процессорами фирмы Intel. Основные архитектурные особенности этих микропроцессоров, специально проработанные для организации мультизадачных операционных систем, рассматриваются достаточно подробно в главе 4. Здесь мы лишь отметим тот факт, что в этих процессорах имеется специальная аппаратная поддержка организации мультизадачного (и мультипрограммного) режима. Речь идет о сегменте состояния задачи (Task State Segment, TSS), который предназначен, прежде всего, для сохранения контекста потока или процесса и который легко позволяет организовать и мультипрограммный, и мультизадачный режимы. Не случайно был введен термин «задача», ибо он здесь применим и по отношению к полноценному вычислительному процессу, и по отношению к легковесному процессу (потоку выполнения, треду, нити). На самом деле этот аппаратный механизм применяется гораздо реже, чем об этом думали разработчики архитектуры ia32. На практике оказалось, что для сохранения контекста потоков эффективнее использовать программные механизмы, хотя они и не обеспечивают такой же надежности, как аппаратные.

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

МИКРОСХЕМА МС34064
Роль точного контроля напряжений питания непрерывно возрастает. Массовое применение устройств с батарейным (в частности аккумуляторным) питанием сделало непрерывный контроль напряжения питания обязательным для многих устройств» например, калькуляторов, карманных компьютеров, МРЗ-плееров, электронных часов и т. д. Разрядка аккумуляторов ниже определенного уровня губительно сказывается на сроке их работы, также как и перезарядка. Кроме того, многие электронные приборы, даже при сетевом питании, чувствительны к изменению напряжения источника. В первую очередь это относится к таким устройствам, как микропроцессоры, аналого-цифровые и цифро-аналоговые преобразователи, модули памяти и т. д.

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

Одной из наиболее распространенных микросхем супервизоров напряжения является МС34064/33064, разработанная фирмой Motorola [1). Она выпускается также фирмами LinFinity Microelectronics, On Semiconductor и др. Микросхема (рис. 1) содержит высокоточный температурно-ком-пенсированный источник опорного напряжения, делитель напряжения R1R2, прецизионный гистерезисный компаратор ГИК с нагрузочным резистором R3 и выходной ключевой транзистор VT с диодом VD.
В микросхеме 21 транзистор и она выпускается во всех наиболее распространенных корпусах для транзисторов и микросхем малой степени интеграции, например в транзисторном корпусе Т0226АА и в корпусах вось-мивыводных микросхем 751 (SO-8) и 846А (Micro-8).

Основной задачей при разработке новых микросхем было их предельно простое применение по основному назначению (контроль за падением напряжения ниже заданного уровня) и наличие только трех выводов. Это несколько сужает возможные области применения таких массовых микросхем и требует внимательного изучения всех особенностей их работы, что и составляет цель данной статьи.
Прежде всего рассмотрим функциональную схему супервизора (рис. 1, а) более подробно. Ясно, что порог срабатывания задается напряжением опорного источника Uref = 1,2 В и делителем напряжения R1R2. В технической документации задаются пороги срабатывания и гистерезис, они приведены в табл. 1.

Параметр Мин. Тип. Макс.
Верхний порог, В 4,5 4,61 4,7
Нижний порог. В 4,5 4,59 4,7
Гистерезис, В 0,01 0,02 0,05

Статические характеристики
В руководстве по микросхеме МС34064/33064 [1] приведено детальное описание статических характеристик микросхем. Рассмотрим основные их них. Главной является передаточная характеристика, показанная на рис. 2.

Она описывает зависимость выходного напряжения от входного. Нетрудно заметить, что эта характеристика куда сложнее, чем это можно было бы предположить из идеализированного описания микросхемы. Лишь в средней части (в области входных напряжений примерно 1. 9В она соответствует описанию типовой роли прибора.

В области малых напряжений (менее 0,5 В), когда источник опорного напряжения перестает работать, передаточная характеристика имеет характерный выброс с линейным участком, на котором выходное напряжение равно входному, но уже при напряжении 0,5 В выходное напряжение падает практически до нуля и остается таким до увеличения входного напряжения до основного порога около 4,6 В. Далее, вплоть до напряжения чуть больше 9 В, выходное напряжение после скачка снова становится практически равным входному. А при входном напряжении более 9,2 В выходное напряжение скачком уменьшается практически до нуля. Причина подобного поведения не поясняется, но это означает, что микросхема может использоваться для двухпорогового контроля. Неясно и то, является ли точное значение 2 для отношения напряжений порогов преднамеренным или случайным обстоятельством.

Исследования показывают, что в малой области главного порога (напряжение около 4,6 В) передаточная характеристика имеет гистерезис, как показано на рис. 3.

При снятии характеристик в статическом режиме ширина петли гистерезиса составляет 20 мВ. Наличие гистерезиса исключает дребезг при переключении, как при нарастании, так и уменьшении контролируемого напряжения, а малая величина гистерезиса делает двойственность порога (при увеличении и уменьшении напряжения) практически незаметной.

Высокая стабильность порога — отличительное качество микросхем данной серии. На рис. 4 представлены температурные изменения верхнего и нижнего порогов в диапазоне температуры окружающей среды ТА = -40.. .+85 °С, разность порогов уменьшается при понижении температуры.

Интересный вид имеют зависимости входного тока от входного напряжения, представленные на рис. 5 для трех значений температуры окружающей среды, в целом они носят почти линейный характер с небольшим отклонением от линейности в области малых значений, однако в области порогов (4,6 и 9,2 В) эти зависимости имеют характерные падающие и нестабильные участки, обусловленные регенеративным переключением устройства. В определенных условиях это может порождать паразитные или полезные релаксационные колебания с частотой 1 МГц и выше.

Когда транзистор VT микросхемы открыт, выходное напряжение определяется начальным участком воль-тамперной характеристики насыщенного транзистора. На рис. 6 показана зависимость выходного напряжения от втекающего выходного тока для разных значений температуры окружающей среды ТА.

Максимальное значение выходного тока (до выхода из насыщения) при нормальных условиях составляет около 25 мА> что достаточно для яркого свечения светодиодного индикатора или включения маломощного реле.

Для оценки свойств микросхем полезно также знать вольтамперную характеристику диода VD, она показана на рис. 7. Из нее видно» что диод выдерживает ток до 70 мА при прямом падении напряжения на нем 1,6 В.

Статические характеристики супервизоров питания неплохо описывают их применение при медленно изменяющихся входных напряжениях, что характерно для многих стандартных применений таких микросхем. Из них следует, что по основному назначению их можно использовать при высокостабильном пороге около 4,6 В. Использование второго порога 9,2 В в технической документации не оговаривается, но, как показала практика, вполне возможно (максимальное напряжение питания с запасом взято равным 10 В).

ТИПОВЫЕ СХЕМЫ ВКЛЮЧЕНИЯ СУПЕРВИЗОРОВ НАПРЯЖЕНИЯ
Узлы порогового контроля со светодиодными индикаторами являются самыми простыми. Устройство (рис. 8, а), приведенное в описании микросхемы, обеспечивает свечение светодиода при падении напряжения источника питания ниже основного порога 4,6 В.
При увеличении питающего напряжения свыше 9,2 В свечения прекращается. Если узел выполнен так, как показано на рис. 13, б, обеспечивается четкая индикация превышения напряжением питания значения 4,6 В, а также и контроль за спадом напряжения ниже 9,2 В. Порог можно увеличивать, включая вход через диод или подключая его к источнику питания через низкоомный (единицы кОм) делитель. К сожалению, способов понизить напряжение порога у данных микросхем нет.

Будучи высокочувствительными регенеративными устройствами состабильным порогом срабатывания, супервизоры могут применяться в огромном количестве пороговых схем, например, в качестве триггеров Шмитта, устройств контроля сигналов с фоторезисторов, фотодиодов и фототранзисторов, пороговых устройств контроля температуры с резисторны-ми и диодными датчиками температуры и т. д. Принципы построения таких устройств вполне очевидны.

На рис 9 показан основной способ включения микросхемы супервизора питающего напряжения для создания сигнала сброса микропроцессорного устройства.
Резистор RH позволяет изменять петлю гистерезиса (ранее приводились данные для RH = 0), что дает возможность в широких пределах менять условия сброса микропроцессора. Обычно гистерезис позволяет создавать зону нечувствительности, предотвращающую сброс микропроцессорных устройств при небольших случайных скачках напряжения питания.

Супервизоры напряжения питания могут использоваться в зарядных устройствах для контроля уровня зарядки аккумуляторных батарей. Примером может служить схема устройства, показанная на рис. 10.

Устройство служит для контроля зарядки аккумуляторной батареи GB1 от солнечной батареи BL1. Пока уровень напряжения GB1 ниже основного порога, напряжение на выходе микросхемы супервизора равно нулю и внешний транзистор закрыт. Ток от солнечной батареи через диод заряжает GB1. Но если напряжение на GB1 начинает превышать заданный порог, сигнал на выходе супервизора увеличивается и внешний транзистор открывается, замыкая на себя ток элементов солнечной батареи. Перезарядка GB1 предотвращается и можно эксплуатировать аккумуляторную батарею без присмотра.

ИМПУЛЬСНЫЕ УСТРОЙСТВА НА МИКРОСХЕМАХ СУПЕРВИЗОРОВ НАПРЯЖЕНИЯ
Супервизоры также могут применяться при построении разнообразных импульсных устройств. Ниже описаны некоторые из них, рекомендуемые производителями микросхем импульсных устройств.

Типичным применением супервизора является возбудитель мощного полевого транзистора. Мощные полевые транзисторы крайне нежелательно запускать импульсами с пологими участками нарастания и спада, например треугольными [2]. В этом случае транзисторы длительное время находятся в состоянии, когда одновременно ток стока и напряжение на стоке велики, что ведет к резкому увеличению мгновенной рассеиваемой мощности, перегреву транзисторов и снижению к. п. д. ключевых устройств. На рис. 11 показана схема узла запуска, исключающего из входного напряжения область, где возможна перегрузка мощного полевого транзистора по мгновенной мощности рассеивания. Варианты умощнения вы-хода микросхемы рассмотрены в [3].

Малая инерционность срабатывания микросхемы супервизора не всегда является достоинством. Даже при создании сигнала сброса микропроцессора (применения микросхемы по прямому назначению) желательно создать задержку сигнала сброса, чтобы сброс не происходил при очень коротких перепадах напряжения питания. Для этого следует использовать дополнительный конденсатор CDLY который создает экспоненциальное нарастание сигнала сброса. Время задержки вычисляется выражением, приведенным в правом нижнем углу типовой схемы сброса микропроцессора (рис. 12).

Микросхема супервизора напряжения может использоваться для формирования из входного сигнала задержанного перепада напряжения или задержанного прямоугольного импульса. Схема формирователя показана на рис. 13, его основой является интегрирующая КС-цепь на входе, которая формирует экспоненциальные фронты и спады на входе микросхемы.

Если предельное напряжение экспоненциального перепада на входе меньше второго порога составляет 9,2 В, выходной перепад формируется с задержкой в момент, когда экспоненциально растущее напряжение достигает уровня основного порога 4,6 В. Осциллограммы входного и выходного напряжения узла (рис. 13) для такого случая показаны на рис 14. Однако если предельное напряжение экспоненциального перепада на входе микросхемы супервизора превышает второй порог 9,2 В, будет формироваться уже не выходной перепад, а выходной прямоугольный импульс. Это связано с тем, при достижении экспоненциальным напряжением значения второго порога транзистор микросхемы снова открывается и напряжение на выходе становится близким к нулю. Осциллограммы входного и выходного напряжения для последнего случая показаны на рис. 15.

Длительность задержки выходного перепада составляет:

где UH — напряжение основного порога 4.6 В. Эта же формула при UH = 9,2 В определяет задержку второго (отрицательного) перепада выходного напряжения» а разность задержек — длительность выходного прямоугольного импульса.

Используя микросхему супервизора, можно построить и импульсный генератор (мультивибратор). Простейший вариант на основе использования второго порога работает не очень стабильно и дает жесткое самовозбуждение. Для того, чтобы срабатывал основной порог, узел приходится дополнять транзисторным инвертором, как показано на рис 16. Он обеспечивает зарядку и разрядку конденсатора С через резистор R. При достижении верхнего входного напряжения петли гистерезиса транзистор включается и конденсатор разряжается до нижнего порога. Затем транзистор выключается, и конденсатор начинает заряжаться до верхнего входного напряжения петли гистерезиса и т. д.

Осциллограммы напряжения на конденсаторе С и коллекторе внешнего транзистора показаны на рис. 17.

Поскольку разность порогов мала, напряжение на конденсаторе имеет участки почти линейного нарастания и спада. Импульсы напряжения на коллекторе внешнего транзистора близки к прямоугольным (рис 17). Из-за малой разности порогов и малой допустимой неличины R частота колебаний генератора довольно велика и составляет около 300 кГц при R = 7,5 кОм.

Еще один вариант применения супервизора напряжения показан на рис 18. Это маломощный импульсный стабилизатор (преобразователь) напряжения 11,5. 14,5 В в стабильное постоянное напряжение 5 В при токе 50 мА с максимальным изменением 35 мВ. При напряжении питания 12,6 В и изменении тока нагрузки 0.. .50 мА нестабильность выходного напряжения не превышает 12 мВ. Пульсации напряжения на выходе не более 60 мВ (полный размах), а КПД — 77 %. Любопытно отметить, что это довольно высокое значение коэффициента полезного действия, поскольку в маломощных стабилизаторах получить его намного труднее, чем в мощных, из-за значительной мощности, расходуемой на питание вспомогательных устройств.

Работа устройства основана на импульсном управлении биполярным транзистором МР5\У51А,включенным по схеме ключевого понижающего стабилизатора релаксационного типа. Импульсы с коллектора транзистора фильтруются LC-фильтром, и его выходное напряжение используется как входное для микросхемы супервизора. Делитель на его входе повышает порог до уровня 5 В, которое с учетом пульсаций определяет выходное напряжение преобразователя.

За рубежом супервизоры питания выпускаются почти всеми полупроводниковыми
фирмами, например [4, 5]. Относительно давно существует отечественная серия микросхем К1171СП2хх [6], начат выпуск серии микросхем К1274хх [7], функциональная схема показана на рис 19. Источник опорного напряжения изображен в виде стабилитрона.
Обозначение «хх» указывает на типовое напряжение порога срабатывания— 29 при пороге 2,83. 2,97 В, 33 при 3,23. 3,37 В и т. д. до 45 при 4,43. 4,57 В. Выпуск ряда модификаций микросхем с разными порогами упрощает их выбор. Максимальное допустимое рабочее напряжение увеличено до 15 В. В остальном микросхемы аналогичны описанным МС34064, в том числе и по принципам схемного применения.

ЛИТЕРАТУРА:
1. МС34064, МС33064. Undervoltage Sensing Circuit. Motorola, 1пс.У 1996.
2. В. П. Дьяконов, А. А. Максимчук, А. М. Ремнев, В. Ю. Смердов. Энциклопедия устройств на полевых транзисторах. Под общей редакцией проф. В. П. Дьяконова. — М: СОЛОН-Р, 2002.
3. С. Алексеев. Триггеры Шмита без источника питания. — Схемотехника, 2002, Л«? 12, с. 24.
4. KIA7019AP/AF/AT- KIA7045AP/ AF/AT. Bipolar Linear Integrated Circuit KEC, 2002.
5. M. Потапчук. Супервизоры серии MCPIOx фирмы Microchip. — Схемотехника, 2006, № 1, с. 10, 11.
6. Микросхемы для линейных источников питания и их применение. —М; Додэка, 1998.
7. А. Нефедов. Новые микросхемы для источников питания. — М.: Ремонт и сервис, 2006, .№? 5, с. 61, 62.

Supervisor - это инструмент мониторинга процессов в системах Linux / Unix. Supervisor - это общая программа управления процессами, разработанная Python. Она может управлять процессами в Linux и отслеживать их, а также превращать общий процесс командной строки в фоновый демон и отслеживать процесс. Состояние, может автоматически перезапускаться при выходе из строя ненормально. Но, как и daemontools, он не может контролировать процесс демона

2. Зачем использовать супервизор

  • Прост в использовании
    Супервизор предоставляет унифицированный способ запуска, остановки и мониторинга ваших процессов. Процессами можно управлять индивидуально или в группах. Вы можете настроить Supervisor в локальной или удаленной командной строке или веб-интерфейсе.
    Многие программы под linux обычно работают все время. Вообще говоря, вам нужно написать скрипт, который может реализовать функцию запуска / остановки / перезапуска / перезагрузки процесса, а затем поместить его в / и т.д. / init.d / ниже. Но у этого есть много недостатков: во-первых, мы должны написать аналогичный скрипт для каждой программы. Во-вторых, когда процесс зависает, Linux не будет автоматически перезапускать его. Если мы хотим перезапустить автоматически, мы должны написать его сами. Скрипт перезапуска мониторинга.
    и супервайзер могут отлично решить эти проблемы. Процесс управления супервизором должен запускать эти управляемые процессы как дочерние процессы супервизора через fork / exec. В этом случае нам нужно только записать путь к исполняемому файлу процесса, которым нужно управлять, в файле конфигурации супервизора, и это нормально. Во-вторых, управляемый процесс является дочерним процессом супервизора. Когда дочерний процесс зависает, родительский процесс может точно получить информацию о зависании дочернего процесса, поэтому, конечно, зависший дочерний процесс может быть автоматически перезапущен. Все равно не перезагружайте, это также зависит от того, установлен ли autostart = true в вашем файле конфигурации.
    Супервизор настраивается с помощью файла конфигурации формата INI, который легко понять. Он предоставляет множество параметров конфигурации для каждого процесса, что позволяет легко перезапустить процесс или автоматически повернуть журнал.
  • Централизованное управление
    Информация о процессах и группах процессов, управляемая супервизором, записана в файле формата ini, и все в порядке. Более того, когда мы управляем супервизором, мы можем управлять им локально или удаленно, а супервизор предоставляет веб-интерфейс, мы можем отслеживать и управлять процессом через веб-интерфейс. Конечно, для локального, удаленного и веб-управления вам нужно вызвать интерфейс супервизора xml_rpc. Это также более поздняя история.
    Супервизор может управлять группами процессов единообразно, что означает, что мы можем записать процессы, которыми нужно управлять, в группу, а затем управлять этой группой как объектом, таким как start, stop, Перезагрузка и тд. Система Linux не имеет этой функции. Если мы хотим остановить процесс, мы можем остановить только один за другим, или мы можем написать скрипт, чтобы остановить его партиями.

3. Компонент супервизора

4. Установка, настройка, использование

Супервизор написан на python и может быть установлен с помощью easy_install и pip. Например, на моей машине centos команда установки выглядит следующим образом:

Или загрузите эту версию:

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

Проверьте, слушает ли он

4262139-494899d8542572e5.jpg

Напишите простой скрипт на python ниже, чтобы проверить эффект мониторинга супервизора.

Перезапустите supervisord или перезагрузите файл конфигурации:

4262139-e6b3920ef338a949.jpg

Кроме того, супервизор может быть запущен при запуске системы. Linux запустит скрипт в /etc/rc.local при запуске, поэтому просто добавьте команду выполнения здесь:

6. Супервайзерское управление

Управлять супервизором можно с помощью инструмента командной строки (supervisorctl) или управления веб-интерфейсом. Если вы выполните пошаговые действия, описанные выше, то веб-управление можно использовать в обычном режиме. Это отдельное введение в инструменты управления supervisorctl:

  • update Обновить новую конфигурацию до supervisord (не будет перезапускать ранее запущенную программу)
  • Перезагрузите, загрузите все файлы конфигурации, запустите и управляйте всеми процессами в соответствии с новой конфигурацией (он перезапустит ранее запущенные программы)
  • начать ххх: начать процесс
  • перезапустить ххх: перезапустить процесс
  • stop xxx: остановить определенный процесс (xxx), xxx - это значение, сконфигурированное в [program: theprogramname]
  • Остановить групповую работу: перезапустить все процессы, принадлежащие группе с именем групповая работа (то же самое для запуска и перезапуска)
  • остановите все, остановите все процессы, обратите внимание: запуск, перезапуск, остановка не загрузит последний файл конфигурации
  • перечитайте, когда служба переключается с автоматического запуска на ручной запуск, можно выполнить ее

Примечание. Если вам нужно вывести параметры при запуске исходной программы, сначала вы должны написать сценарий оболочки при запуске supervisorctl, а затем supervisorctl может запустить сценарий.

7. Введение в параметры конфигурации супервизора

Файл конфигурации супервизора в основном состоит из нескольких разделов конфигурации, а элементы конфигурации представлены в формате K / V.

Элементы параметров этого блока конфигурации являются глобальными элементами конфигурации процесса супервизора. Параметры этого блока описываются следующим образом:

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

Этот блок является элементом конфигурации программы, которую мы хотим отслеживать. Заголовок блока конфигурации имеет фиксированный формат, ключевое слово program, затем двоеточие, а затем имя программы. Например: [program: foo], foo - это имя программы, при использовании supervisorctl для работы с программой оно помечается как foo. Параметры этого блока описываются следующим образом:

8. Управление кластером

Супервизоры не поддерживают мониторинг процессов между машинами. Супервизор может контролировать только программы на машине, что значительно ограничивает использование супервизоров.

Однако, поскольку сам супервизор поддерживает xml-rpc, существуют также несколько инструментов управления процессами на нескольких машинах, основанные на вторичной разработке супервизора. Такие как:

  • Django-Dashvisor
    Web-based dashboard written in Python. Requires Django 1.3 or 1.4.
  • Nodervisor
    Web-based dashboard written in Node.js.
  • Supervisord-Monitor
    Web-based dashboard written in PHP.
  • SupervisorUI
    Another Web-based dashboard written in PHP.
  • cesi
    cesi is a web interface provides manage supervizors from same interface.

Я не знаю всего вышеперечисленного, и очень сложно попробовать один за другим. Я не могу понять это, кроме последнего.cesiК счастью, я немного знаю о pyhon и едва установил его.

Для получения специальных инструкций по установке, пожалуйста, обратитесь к исходному Readme напрямую. Вот только небольшое объяснение:

Читайте также: