
Распределение памяти dos
Соответствует карте памяти x86 архитектуры реального времени (real mode). Все CPU поколения x86 начинают отрабатывать в real mode сразу после включения питания – сделано для обратной совместимости с ПО.
Особенности real mode:
Без драйверов и дополнительных аппаратных расширений процессор может адресовать до 1 МБ ОЗУ.
Только одно приложение, не считая резидентных, монопольно выполняется системой.
Ограничена поддержка доступного множества периферийных устройств, отчасти из-за ресурсов.
(рис 6.1)
Convention Memory (CM) – память для модулей ОС и приложений. Таким образом, целью оптимизации использования в real mode CPU является максимальная разгрузка CM.
Adapters BIOS - адресное пространство для обращения к BIOS плат расширения:
Контроллеры массивов дисков RAID
BIOS сетевых адаптеров для удаленной загрузки тонких клиентов. (Тонкий клиент – бездисковая станция).
Область HMA размерностью в 64КБ может использоваться для размещения части ядра ОС, таким образом, разгружая Convention Memory.
Extended memory ограничена аппаратными возможностями либо ограничениями адресного пространства. Максимум адресуемого пространства чаще всего связан с абсолютной адресацией каждого байта в ОЗУ в соответствии с идеологией 2N, где N – разрядность системы.
В абсолютной адресации ОЗУ адрес ячейки памяти выставляется на шину адреса одной порцией. Таким образом, увеличить адресуемое пространство можно двумя способами:
Добавить сигнальные линии к шине адреса.
Выставлять адрес на шину в 2 приема: адрес начала блока и адрес смещения внутри блока относительно его размещения.
Оба способа требуют аппаратно-программной поддержки и очень часто комбинируются в одном оборудовании.
Текущее распределение памяти можно посмотреть внешней командой DOS “mem”. Автоматическая оптимизация загрузки приложения и драйверов может быть осуществлена внешней командой “memaker”.
Все настройки оптимизации использования ОЗУ осуществляются на базе файловой конфигурации ядра DOS config.sys.
Настройки в config.sys:
- device=himem.sys – драйвер использования памяти в высоких адресах
- dos = high – указания ядру DOS разместится в области HMA
- deviceheigh = mouse.sys – если поддержка HMA настроена, можно использовать драйвер mouse.sys в доступном HMA пространстве.
Динамические диски
Динамические диски – аналог раздела ФС, созданный в оперативной памяти на время жизни текущей сессии пользователя.
Цель – ускорить обращение к экземпляру ФС в ряде прикладных задач:
Справочной системы БД, работающей в режиме read only.
Размещение временных файлов при компиляции крупных продуктов
Буферы для хранения промежуточных данных, графических пакетов и мультимедиа систем.
Поддержка виртуальных дисков в среде Win32 происходит за счет сторонних драйверов.
В DOS виртуальные диски работают на базе
device=ramdrive.sys 2048
где через пробел указана емкость динамического диска к килобайтах.
Программно MS ограничивает размер виртуального диска 32МБ.
Но допускается существование нескольких виртуальных дисков.
Отсутствует возможность принудительного идентификатора виртуального диска. Буква виртуального диска выбирается по принципу: последняя буква идентификаторов накопителей + 1.
Маркер виртуального диска “MS RAMDRIVE”.
Лекция 7
Организовать загрузку системы с автоматической распаковкой ebd.cab на внутрееный диск фиксированного размера, старт системы с флоппи.
Для автоматизации процесса финальной загрузки ОС и приложений используется файл настройки autoexec.bat – пакетный файл (скрипт) в кодировке ASCII для последующего выполнения инструкций после загрузки командной интерпретатора command.com.
Bat файлы могут содержать:
Внешние и внутренние команды
Инструкции по загрузке приложений
Набор собственных команд для реализации проверки условий обработки параметров командной строки, условные\безусловные операторы перехода.
Для платформы Win32 начиная с w2k расширен набор инструкций пакетных файлов:
Полноценное описание типов данных
Расширен диапазон встроенных функций
На основе дополнительных консольных утилит реализуется взаимодействия с регистром, сервисом, приложениями, сетью.
Инструкции по загрузке приложений:
Либо путь с именем исполняемого файла, либо служебный символ @ имя файла; инструкции по загрузке и ожиданию приложений:
start nc.exe /wait ждать выполнения
Пример:
Файл play.bat с исходниками
:start
Start htr.pps /wait
Start bntu.pps /wait
Goto start
Выход прерываниями ctrl+break, ctrl+c.
Наборы инструкций b*.bat
REM – командный
ECHO ON отображать
ECHO OFF заблокировать сообщения внутренних внешних команд
SET A=” “ – объявление локальной переменной (обязательно строковая)
Проверка условий:
If %A%== “ “ goto B
А - Переменная локального модуля
B – строковая переменная
Проверка существования файла:
If exists f.txt goto c
If not…
For %% I in (1,2,3) do echo %%i
Где %% - переменная цикла
s.bat – любое\
call second.bat – загружает другой bat из текущего
pause – ожидание до нажатия клавиши
choice – взаимодействие с пользователями
choice “text”
choice y/n
аналог set/p – в консоли windows
Для обработки параметров командной строки используются ссылки в виде %1 %2
C:>s.bat *.* D: - консоль
Copy *.* - %1
D: - %2
If %1 ==”” goto end
If %2 ==”” goto end
Copy 1% 2%
:end
Shift – последовательно влево переприсваивать параметры командной строки
%1 = %2
%2 = %3
Фактически успешная отработка предыдущей команды отслеживается путем анализа глобальной переменной системы errorlevel
Formac c:
if errorlevel>0 copy .c:/
Deltree c: /y
Echo errorlevel – удаляет все с C:
ECHO TYPE your password
ECHO please finish by ctrl+2
Copy con pass.txt
Вход без ключа
Проверка параметров загрузки ОС
If % config % == “DOS”…
Где, config - обращение к глобальной переменной ОС, содержащей названия меню при загрузке системы.
Если пути к каталогам содержат пробелы, то “адреса”
Set myvar = “D:|Temp|”
Copy *.* %Myvar%
Для обращения к сетевым ресурсам – левый двойной слеш \\.
Copy \\11b-rts-host\userstud\spo\*.*c:\user\my
Winstartup:
copy || server | price.xls
C:|currnet price| →cp.bat
Лекция 8
0 – stdin
1 – stdout
2 – stderr
3-9 – user defined
Dir 1.txt 1>ok.txt 2>>err.txt – логирование ошибок с накоплением
dir 1>1.txt 2>&1 – в 1.txt сохраняется результаты вывода команд + ошибок
Емкие по набору инструкции bat-файлы могут быть откомпилированы в независимые исполняемые модули сторонними системными утилитами.