24545

Виды программных модулей

Доклад

Информатика, кибернетика и программирование

никакие внешние события не могут прервать работу модуля и он непрерывно выполняется от начала до конца. Структура привилегированного модуля приведена на рис. Структура привилегированного модуля Непривилегированные модули – это обычные программные модули которые могут быть прерваны во время своей работы.2 приведен пример использования реентерабельного модуля В процессами А и С.

Русский

2013-08-09

48.36 KB

12 чел.

Вопрос 8. Виды программных модулей.

§3.2 Виды программных модулей.

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

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

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

Рис. 3.1. Структура привилегированного модуля

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

Реентерабельные (reenterable) – повторно прерываемые модули допускают повторное многократное прерывание своего исполнения и повторный запуск из других процессов.

На рис. 3.2 приведен пример использования реентерабельного модуля В процессами А и С. Опишем состояние процессов в каждый из моментов времени Т1-Т6:

Т1 – модуль А обращается к модулю В;

Т2 – при выполнении модуля В, поступил запрос на прерывание от внешнего устройства (модуля С). Приоритет у процесса С выше, чем у А и В, поэтому модуль В временно прекращает свою работу и управление передается модулю С для обработки поступившего запроса;

Т3 – во время работы модуль С обратился к модулю В;

Т4 – модуль С получает результат своего запроса от модуля В;

Т5 – завершается обслуживание внешнего устройства и управление передается модулю В. Далее модуль В завершает процесс, инициированный модулем А, используя значения переменных, сохраненных в момент прерывания Т2;

Т6 – модуль В завершает свою работу и результат передается модулю А.

Рис. 3.2. Использование реентерабельного модуля В  процессами А и С

Принцип реентерабельности достигается за счет отделения кода программы от данных. При каждом обращении к модулю ему выделяется новая область памяти под данные. Выделение памяти может реализовано 2 способами: статическим и динамическим. Структура реентерабельного модуля при наиболее распространенном динамическом способе выделения памяти приведена на рис. 3.3.

Рис. 3.3. Структура реентерабельного модуля

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

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

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

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


 

А также другие работы, которые могут Вас заинтересовать

31404. Дослiдження лiнiйного та нелiнiйного елементу 60.5 KB
  Обладнання: Стенд з регульованою напругою опiр дiод вольтамперметр блок живлення постiйного струму 6В. Вимикач S1 знаходиться у замкненому станi пiд час вимiру напруг E1 UD UR розимикаючись лише для вимiру струму в розривi кола. Виконати вимiри напруг i струму поступово зменшуючи напругу E1 вiд 5В до 0В контролючи зменшення струму. Перемкнути вимiрювальний прилад на вимiр струму.
31405. Дослiдження послiдовного RCL контуру 242 KB
  Змiнним опiром у верхнiй по схемi гiлцi з iндуктивнiстю L i ємнiстю C виставити максимальну напругу E1 гнiзда 1011. На iнших гiлках з опiрами виставити E2=E3=E4=E5=0 гнiзда 2021 3031 4041 5051. Вимiряти напругу Us на послiдовноз’єднаних iндуктивностi L i опорi R2 гнiзда 1121. Вимiряти напругу UL на iндуктивностi L гнiзда 1112.
31406. Дослiдження ємнiстi у колi змiнного струму 60 KB
  Вдосконалити навики побудови векторних дiаграм напруг i струму. Обладнання: Стенд вiдомi опiри невiдома ємнiсть вольтметр змiнного струму блок живлення змiнного струму 10В 50Гц. Накреслити векторну дiаграму струму I та напруг UR Uc i сумарної напруги Us для вимipiв з мiнiмальним опiром 1 Вольт – 1 клiтинка.
31407. Дослiдження сiнхронного двигуна змiнного струму 84.5 KB
  Дослiдити вплив зсуву фаз додоткової обмотки збудження статора на напрямок обертання ротора двигуна. Обладнання: Стенд з сiнхронного двигуна змiнного струму з постійним магнiтом в якостi ротора обладнаний понижуючим фрікціонним редуктором обертiв та регулятором напруги. Використана у стенді модель двигуна має дві незалежні обмотки статорів.
31408. Дослiдження послiдовного та паралельного з’єднання опорiв 48.5 KB
  Обчислення опору кола за вiдомими опорами складових. Занотувати значення опорiв R1 R2 R3 R4 R5 Перемички X0X5 дозволяють тимчасово розiрвати дiлянку кола для пiд’єднання амперметру до мiсця розриву. Тимчасово розiрвiть дiлянку кола витягнувши одну з перемичок X0X5 i пiд’єднавши замiсть перемички амперметр попередньо перемкнути мультиметр на вимiр струму.
31409. Дослiдження фазообертача на обертовому трансформаторі 90.5 KB
  Дослiдити зміни фази напруги на роторі обертового трансформатора в залежності від кута ротора. А з ротора знімається напруга U3. Якщо вісь обмотки ротора співпадає з віс’ю обмотки на яку подано напругу U1 то фаза напруги ротора U3 співпадає з фазою U1. Відповідно коли вісь обмотки ротора співпадає з віс’ю обмотки з напругою U2 – фаза U3 співпадає з фазою U2.
31410. Дослiдження потенцiалу i напруженностi поля у електричнiй ваннi 149.5 KB
  Мета: Вимiр потенцiалiв i напруженностi поля для заданної конфiгурацiї електродiв. План роботи Зiбрати макет з заданою конфiгурацiє електродiв згiдно малюнка варiанту завдання. Намалювати свою конфiгурацiю електродiв на графiку. Вставити виводи електродiв моделi у кришку згiдно малюнку завдання так щоб електроди опинились у вiдповiдних отворах кришки.
31412. Дослiдження потужностi у системi джерело-навантаження 112 KB
  Джерело живлення та лiнiя постачання моделюются ЕРС та опором RS що вiдповiдає спiльному опору джерела та лiнiї. Занотувати значення опору RS. Вимiряти ЕРС джерела живлення E падiння напруги на опорi джерела US напругу на навантаженнi споживача UL струм кола I для рiзних значень опору RL. Для кращого вiдтворення результатiв вимiрiв доцiльно провести вимiри для усього диапазону змiн опору навантаження вiд мiнiмального до максимального його значення з приблизно рiвномiрним шагом по опору приблизно 10 максимального значення опора RL.