• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Управление памятью в ОС Doc

  • Автор темы JoeQueer
  • Дата начала
Статус
Закрыто для дальнейших ответов.
J

JoeQueer

Написать программу по заданию:
«Установить стратегию "первый подходящий", выделить блоки памяти размером 100К и 200К, освободить блок 100К, выделить блок 150К»

Пример:
Установить стратегию распределения памяти "последний подходящий", выделить блок размером 10П, уменьшить размер блока до 9П, затем увеличить размер блока до 11П.
Напомним, что кроме перечисленных операций эта программа (как и любая другая) должна выполнить сжатие блока памяти программного сегмента (в начале), освобождение затребованных блоков и восстановление исходной стратегии (в конце).
Результаты работы программы представляются последова¬тельностью карт памяти , просматриваемых при помощи view и peek.com.
С учетом этих соображений программа рассматриваемого ва¬рианта задания будет выглядеть следуцющим образом:
[codebox];Подключаем файл с библиотекой макроопределений
include doslab.mac
;
PSeg SEGMENT para public 'code'
ASSUME cs:pSeg,ds:pSeg,es:pSeg,ss:pSeg org 100h
Begin:
;Посмотрим исходное распределение памяти
call view
;Произведем сжатие программного блока и
;вновь посмотрим карту памяти
SetComBlock LastByte call view
;Установим новую стратегию (с сохранением исходной), ;выделим блок памяти 10П и вновь посмотрим карту памяти
SwapStrategy LastFit
AllocMemPara BlkSize,BlkSel
CheckError Exit2 call view
;Уменьшим блок памяти до 9 П , затем увеличим его ;до 11 П и вновь посмотрим карту памяти
ReallocMemPara BlkSel,NewSize1 CheckError Exit1 call view
ReallocMemPara BlkSel,NewSize2 CheckError Exit1 call view
;Освободим затребованный блок, восстановим исходную ;стратегию и посмотрим итоговую карту памяти Exit1: FreeMem BlkSel
Exit2: SwapStrategy LastFit
call view
Exit3: Exit
;Определение данных
LastFit dB 2 ; код стратегии
BlkSel dW ? ; сегментный адрес блока
BlkSize = 10 ; 10 П
NewSize1 = 9 ; 9 П
NewSize2 = 11 ; 11 П
include mcbview.asm
;Kонeц программного сегмента
LastByte DB byte
PSeg ENDS
End Begin
[/codebox]
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!