Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ 51 - 80.docx
Скачиваний:
133
Добавлен:
30.03.2015
Размер:
2.18 Mб
Скачать

71.1Источники опорного напряжения и тока.

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

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

Рис. 1. Схемы ИОН на стабилитронах

Качество стабилизации оценивается коэффициентом

Кст = DUвх /DUоп,

который называется коэффициентом стабилизации. Для схемы на рис. 1а коэффициент стабилизации

Кст = 1 + R/rст,

и составляет обычно от 10 до 100.

Ион на полевых транзисторах

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

Ядро XFET-источника состоит из двух полевых транзисторов с управляющим pn-переходом (рис. 6), один из которых (VT2) имеет дополнительный встроенный канал, за счет чего его напряжение отсечки увеличено по сравнению с напряжением отсечки транзистора VT1.

Рис. 6. ИОН на полевых транзисторах

Токи стоков транзисторов одинаковы (J1=J2); за счет действия операционного усилителя разность потенциалов истоков транзисторов равна нулю. Поэтому образуется разность потенциалов между затворами транзисторов Uоп, которая может быть усилена и использована для формирования весьма стабильного опорного напряжения.

Для этих источников опорного напряжения характерна величина Uоп примерно 0,5 В с отрицательным ТКН около -60 мкВ/К, что примерно в 30 раз меньше, чем у ИОН на ширине запрещенной зоны. Такая малая температурная нестабильность может быть легко скомпенсирована практически таким же способом, что и у источника опорного напряжения на ширине запрещенной зоны. В схеме на рис. 6 эта компенсация осуществляется источником тока JТК с положительным ТКН.

Меньшая величина ТКН опорного элемента на полевых транзисторах и, как следствие, меньший компенсационный ток JТК, обуславливают значительно меньший, чем у источников опорного напряжения на ширине запрещенной зоны, шум выходного напряжения, так как большая часть шума ИОН на ширине запрещенной зоны приходит из схемы температурной компенсации. Уравнение электрического равновесия схемы на рис. 6 имеет вид

Характерными представителями источников опорного напряжения на полевых транзисторах является семейство ADR29х, из которого, например, ИОН ADR291Е на 2,5 В имеет типичное значение ТКН=3·10-6 1/К, уровень шума 8 мкВ от пика к пику в полосе 0,1...10 Гц, типовой ток потребления 9 мкА и прекрасную долговременную стабильность.

Исто́чник то́ка

(также генератор тока) — двухполюсник, который создаёт ток I = Ik, не зависящий от сопротивления нагрузки, к которой он присоединён.

71.2. Параллельные процессы. Проблемы взаимодействия, средства их решения.

см. Флор. (Операционные системы для программиста) стр. 101.

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

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

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

В современных ОС, кроме собственно процессов, выделяют их более элементарные составляющие, называемые нитями (threads). Иное название этих составляющих на русском языке – потоки.

Внастоящеевремяврамкахпроцессамогутфункционироватьнесколько (идажемного) нитей.

В ОС, каждому процессу сопоставляется структура данных, которая содержит в своих полях всю информацию о процессе необходимую для учета и оперативного технического обслуживания. Эти структуры используются ОС и называются управляющим блоком процессом (Process Controll Block)PCB и, иногда, дескриптором процесса. А для нитей ОС строит блоки Thread Control Block (TCB).

Обычно процесс имеет как минимум три состояние: готов ( ready), выполняется (run), заблокирован(blocked). run - исполняется процессором. blocked - заблокирован и ждет события разблокировки. ready - готов продолжать работу.

Распределение времени на процессы у процессора основано на квантах времени. Квант времени - это небольшой промежуток времени в течении которого процессу можно занимать процессор.

Функционирование ОС, на основе квантов времени - называется режим разделение времени.

Проблемы взаимодействия

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

Зависимостьрезультатовпроцессаотнепредусмотренноговпрограммевзаимодействиясдругимипроцессаминазываютсостязанием процессов.

Дляустранениясостязанийпроцессов (илинитей) используютмонополизациюресурса. Монополизацияресурса–этовременноепредоставлениееговисключительноеиспользованиеоднойнити.

Средства взаимодействия потоков( процессов):

Семафоры

Семафор — объект, позволяющий войти в заданный участок кода не более чем n потокам.Семафор - это целочисленная неотрицательная переменная S – счетчик ресурса, которую можно менять и опрашивать при помощи операций P и V, и очередь процессов к ресурсу Q(S). Над переменной определено три операции: инициализация ресурса I(S) - задает число доступных ресурсов; P(S) - захват ресурса;V(S) - освобождение ресурса

Взаимоисключающие семафоры ( мьютексы)

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

Семафор событий

Блокировка потоков осуществляется до какого-либо события. Т.е. перед началом критической секции потоки блокируются до наступления события. Затем, когда семафору посылается сигнал наступления события - потоки разблокируются.

72.2. Доступ к системным функциям операционной системы посредством прерываний и через системные библиотеки.

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

Прерывание - это СИГНАЛ процессору, что одно из устройств в компьютере НУЖДАЕТСЯ в обслуживании со стороны программного обеспечения. В развитие этой же идеи, программам позволили самим посылать запросы на обслуживание через механизм прерываний. Получив этот сигнал, процессор временно переключается на выполнение другой программы ("обработчика прерывания") с последующим ВОЗОБНОВЛЕНИЕМ выполнения ПРЕРВАННОЙ программы.

  Когда же и "кем" генерируются эти "сигналы" (в смысле "прерывания")?

  • Многочисленными "схемами" компьютера, его устройствами. Например, соответствующее прерывание генерируется при нажатии клавиши на клавиатуре.

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

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

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

Рассмотрим как можно вызывать системные функции через механизм прерывания. Рассмотрим прерывание 10h - выполнение одну из «Функций видео». Доступны следующие функции видео.

AH=00h Установить режим видео

AH=01h Установить тип курсора

AH=02h Установить позицию курсора

AH=03h Прочитать позицию курсора

AH=04h Прочитать позицию светового пера

AH=05h Выбрать активную страницу видеопамяти

AH=06h Прокрутить вверх активную страницу

AH=07h Прокрутить вниз активную страницу

AH=08h Прочитать атрибут/символ

AH=09h Записать символ/атрибут

AH=0Ah Записать только символ

AH=0Bh Установить палитру

AH=0Ch Записать точку

AH=0Dh Прочитать точку

AH=0Eh Записать TTY

AH=0Fh Прочитать текущее состояние видео

AH=13h Записать строку

Таким образом закатив в регистр AH 06h и задав следующие входные параметры:

AL - число строк прокрутки (0…25) (AL=0 означает гашение всего окна); (_4)

BH - атрибут, использованный в пустых строках (00h…FFh); (_5)

CH - строка прокрутки - верхний левый угол; (_6)

CL - столбец прокрутки - верхний левый угол;

DH - строка прокрутки - нижний правый угол;

DL - столбец прокрутки - нижний правый угол;

А теперь вызвав прерывание INT 10h, мы вызываем системную функцию прокрутки экрана.

Использование системных функцийиз библиотек делается следующим образом:

подключаются библиотеки командой:

include shell32.inc

include kernel32.inc

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

Например следующий код запихивает в стек аргументы и затем вызывает функцию ShellExecute с параметрами:

xor ebx, ebx

push ebx ; для исполнимых файлов - способ показа

push ebx ; рабочий каталог

push ebx ; командная строка

push offset URL ; имя файла с путем

push ebx ; операция open или print (если NULL - open)

ush ebx ; идентификатор окна, которое получит сообщения

call ShellExecute ; ShellExecut(NULL,NULL,url,NULL,NULL,NULL)

Так же существует макроопределение Invoke которое отличается от call тем что можно передавать агрументы непосредственно в Invoke:

Invoke SnellExecute, ebx, ebx, offset URL, ebx, \

ebx, ebx

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]