1 Operatsion tizim yadrosi arxitekturasining turlari


Функции секции инициализации заключаются в следующем



Download 39,6 Kb.
bet3/5
Sana06.07.2022
Hajmi39,6 Kb.
#744156
1   2   3   4   5
Bog'liq
Kernel

Функции секции инициализации заключаются в следующем[править | править код]

  1. Перехватываются вектора пpерываний (установка своих обработчиков).

  2. Программа завершается т.о., что в памяти остается только резидентная часть.

  3. Передача параметров обработчикам пpерываний — ISR . Значения этих параметров помещаются в резидентную область данных (в качестве параметра может быть "горячая"клавиша вызова резидента).

  4. Решение проблемы повторного запуска TSR (чтобы не размножать копии TSR в памяти), то есть секция инициализации должна определить, есть программа в памяти или нет.

  5. Удаление резидента из памяти. Во-первых, восстановить старые вектора пpерываний (из секции данных), и, во-вторых, удалить окружение TSR и PSP TSR.

  6. Функция минимизации памяти, занятой резидентом.

Инициализация резидентной программы[править | править код]
Для использования прерывания 27h сегментный регистр CS должен указывать на PSP программы, а в регистре DX должно быть записано смещение последнего байта программы плюс один байт. Нетрудно заметить, что этот способ остаться резидентной больше всего подходит для программ в формате COM. Вы не сможете оставить резидентной программу длиннее 64 килобайт.
Другой, более удобный способ — использовать функцию 31h прерывания INT 21h. В регистре AL вы можете указать код завершения программы, регистр DX в этом случае должен содержать длину резидентной части программы в параграфах. Здесь уже нет ограничения 64 килобайта на длину программы. Использование этой функции — единственная возможность оставить резидентной программу длиннее 64 килобайт.
Но не стоит увлекаться длинными TSR-программами, так как обычно освободить память, занимаемую ставшей уже ненужной резидентной программой, можно только с помощью перезагрузки операционной системы.
Библиотека функций Quick C содержит специальную функцию для оставления программы резидентной в памяти. Эта функция использует прерывание INT 21h (функция 31h) и имеет имя _dos_keep(). Первый параметр функции — код завершения (то, что записывается в регистр AL), а второй — длина резидентной части программы в параграфах.
Решение проблемы повторного запуска[править | править код]
Нужно определить, была уже запущена TSR или нет. Возможно несколько вариантов определения запуска TSR:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish