Организация оперативной памяти в MS DOS


Содержание

Организация оперативной памяти в MS DOS

MS-DOS расшифровывается как дисковая операционная система. Операционная система — это программа, координирующая действия вычислительной машины; под ее управлением осуществляется выполнение программ. MS-DOS — операционная система, расположенная на дисках. Разработчиком MS-DOS является Корпорация Microsoft. Три основные функции операционной системы: 1. Обмен данными между компьютером и различными периферийными устройствами (терминалами, принтерами, гибкими дисками, жесткими дисками и т.д.). Такой обмен данными называется «ввод/вывод данных». 2. Обеспечение системы организации и хранения файлов. 3. Загрузка программ в память и обеспечение их выполнения. Операционная система MS-DOS блестяще справляется со своими обязанностями. На практике одно из основных преимуществ использования MS-DOS заключается в простоте ее понимания, несмотря на функциональную сложность (То есть система рассчитана на выполнение достаточно сложных функций). В отсутствие операционной системы вычислительная машина ведет себя как дикий неприрученный зверь, сильный и быстрый, не неуправляемый человеком. Операционная система «обуздывает» ее скорость и силу, превращает энергию машины в полезный для человека инструмент.

Краткая история создания MS-DOS.

Первой разработкой MS-DOS можно считать операционную систему для персональных ЭВМ, созданную фирмой Seattle Computer Products в 1980 г. В конце 1980 г. система, первоначально названная QDOS, была модифицирована и переименована в 86-DOS. Право на использование операционной системы 86-DOS было куплено Корпорацией Microsoft, заключившей контракт с фирмой IBM, обязуясь разработать операционную систему для новой модели персональных компьютеров, выпускаемых фирмой. Когда в конце 1981 г. новый компьютер IBM PC приобрел широкую популярность, его операционная система представляла собой модифицированную версию системы 86-DOS, названную PC-DOS, версия 1.0. Вскоре после выпуска IBM-PC на рынке стали появляться персональные компьютеры «схожие с РС». Операционная система этих компьютеров называлась MS-DOS, версия 1.0. Корпорация Microsoft предоставила в распоряжение фирм, производящих эти машины, точную копию операционной системы PC-DOS — широко теперь применяемую MS-DOS. Единственным серьезным различием этих систем было то, что называется «уровнем системы». То есть для каждой машины необходимо было по- купать свою операционную систему. Отличительные особенности каждой системы мог выявить только системный программист, в чьи обязанности входила работа по «подгонке» операционной системы к конкретной машине. Пользователь, работающий на разных машинах, не ощущал никакой разницы между ними. С момента выпуска операционные системы PC-DOS и MS-DOS усовершенствовались параллельно и аналогичным образом. в 1982 году появились версии 1.1. Главным преимуществом новой версии была возможность использования двухсторонних дискет (версия 1.0 позволяла работать только с односторонними дискетами), а также возможность пересылки принтеровского вывода на другие устройства. В 1983 году были разработаны версии 2.0. По сравнению с предыдущими они давали возможность использовать жесткий диск, обеспечивали усложненный иерархический каталог диска, включали встроенные устройства для дискет и систему управления файлами. MS-DOS версии 3.0, выпущенная в 1984 году, предоставляла улучшенный вариант обслуживания жесткого диска и подсоединенных к компьютеру микрокомпьютеров. Последующие версии, включая 3.3 (появившуюся в 1987 году), развивались в том же направлении. MS-DOS версии 5.0 предоставляет возможность использования памяти расположенной выше 1M. В MS-DOS версии 6.0 расширены возможности изпользования памяти расположенной выше 1M, добавлена утилита оптимизации использования памяти Memmaker. Добавлено средство увеличения эффективного дискового пространства DoubleSpace. В комплект поставки включены утилиты проверки и оптимизации жесткого диска ScanDisk и Defrag. После судебных разбирательств с компанией Stack по поводу авторского права на DoubleSpace, последний в версии MS DOS 6.22 заменен на DriveSpace.

Основные понятия

Пример: kbr.sys — драйвер клавиатуры

каталог (директория) — группа файлов,объединенных по какому-либо признаку. Вся информация, хранящаяся в ПК размещается в файлах. Для обращения к файлу используется имя файла. ИМЯ ФАЙЛА: имя.тип имя — может содежать латинские буквы, цифpы и знаки подчеpкивания, не более 8 символов; тип — может содежать латинские буквы, цифpы и знаки подчеpкивания, не более 3 символов. Тип или расширение могут отсутствовать.

Пример: docum1.txt lex.bat baza

Для удобного обращения к файлам используются каталоги. В каталоге могут размещяться файлы и другие каталоги. Таким образом каталоги образуют дерево. Имена каталогов могут быть такими же как и имена файлов, а также: . — текущий каталог; .. — родительский каталог; \ — корневой каталог. Имена катологов завершаются символом \ (обpатная косая). Для обращения к файлу, pасположенному не в текущем каталоге, используется полное (маршрутное) имя файла. Полное имя файла: имя диска маршрут имя файла

Примеры: c:\bux\ve.prg c:\lex\lex.exe d:\users\fox\fhg.fox

Направленный ввод/вывод, фильтры и коммуникации

Ввод и вывод — это процессы, осуществляющие пересылку входнных и выходных данных. MS-DOS предусматривает достаточно сложное математическое обеспечение для управления этими процессами по желанию пользо- вателя. Управление данными осуществляется с помощью процедур, называемых направленный ввод и вывод, фильтры и коммуникации. Используя эти процедуры, пользователь может организовать свою линию передачи информации. Он может ориентировать поток информации на любое устройство, или в любое место памяти, упорядочить информацию, пропустив ее через фильтр, направляя затем выходной поток, например, на вход системной программы или обpаботчика команды.

Стандартные устройства ввода и вывода

Для ввода информации в большинстве случаев используют клавиатуру. В результате выполнения большинства операций полученные данные выводятся на экран дисплея. Поэтому клавиатура считается стандартным уст- ройством ввода, а экран — стандартным устройством вывода. MS-DOS предусматривает средства, позволяющие назначать нестандартные устройства ввода или вывода. Такие устройства называются перифе- рийными устройствами ввода/вывода, т.к. они являются внешними по отношению к машине.

Стандартные названия устройств

Назначая нестандартное устройство, грамотно указывайте его название. Каждое устройство (например, принтер) имеет стандартное системное имя, относящееся именно к этому устройству. Имя резервируется даже для фиктивного устройства, котоpое используется при тестировании системы.

Стандартные названия устройств

Стандартное имя Периферийное устройство
AUX Первый асинхронный коммуникационный порт
СОМ1,СОМ2,СОМ3,СОМ4 Асинхронные коммуникационные порты
CON Клавиатура и экран (CONsole)
LPT1,LPT2,LPT3 Первый, второй и третий параллельные принтеры
NUL Фиктивное устройство (для тестирования)
PRN Первый параллельный принтер

Направленный ввод и вывод

Шаблоны имен файлов

Пример:

fio.txt
mity.txt *.txt
ol.txt
foxproln.exe
foxhelp fox*.*
foxcomp

Стандартные типы файлов: *.bat- командные файлы *.exe — загрузочные файлы *.com — загрузочные файлы

Прочие файлы: *.txt — текстовые файлы *.doc — текстовые файлы *.dbf — файл базы данных *.sys — системные файлы *.bak — страховочный файл

Все команды MS DOS можно разделить на внутренние и внешние. Внутренние команды поддерживаются ядpом MS DOS (command.com) и всегда могут быть выполнены. Внешние команды выполняются только в том слу- чае,если на диске присутствует файл-пpогpамма, выполняющая эту команду. Любая пpогpамма может pассматpиваться как внешняя команда.

Базовые команды pаботы с файловой системой.

Команда DIR Отображает список файлов и подкаталогов в катологе.

DIR [диск:][маршрут][имя файла] [/P] [/W] [/A[[:атрибуты]]
[/O[[:]порядок сортировки]] [/S] [/B] [/L] [диск:][маршрут][имя файла] Указывает диск, каталог, и/или файлы для отображения. /P Приостанавливает вывод каждый раз после заполнения экрана информацией. /W Испольновать компактыный формат вывода. /A Отображать файлы с указанными атрибутами.

атрибуты

D каталоги R файлы только для чтения
H скрытые файлы A файлы готовые к архивированию

S системные файлы — перед атрибутом означает «не»
/O Выдать файлы в указанном порядке.

порядок сортировки

N В порядке имен S В порядке размеров
E В порядке расширений D По дате и времени

G Вначале выдать каталоги — для обратного порядка
/S Отображать список файлов в указанном каталоге и всех его подкаталогах. /B Выводить файлы без заголовочной и итоговой информации. /L Выводить строчными буквами. Переключатели могут быть предопределены в системной переменной DIRCMD.

Команда MKDIR Создает каталог.

MKDIR [диск:]маршрут
MD [диск:]маршрут

Команда CHDIR Отображает имя или изменяет текущий каталог.

CHDIR [диск:][маршрут]
CHDIR [..]
CD [диск:][маршрут]
CD [..] .. Указывает, что Вы хотите перейти в родительский каталог. Наберите CD диск: чтобы узнать имя текущего каталога на указанном диске. Наберите CD без параметров чтобы узнать текущий диск и каталог.

Команда RMDIR Удаляет каталог.

RMDIR [диск:]маршрут
RD [диск:]маршрут

Команда COPY Копирует один или несколько файлов в другое место.

COPY [/A | /B] источник [/A | /B] [+ источник [/A | /B] [+ . ]] [результат]
[/A | /B]] [/V] источник Указывает файл или файлы для копирования. /A Указывает, что копируемый файл — ASCII текстовый файл. /B Указывает, что копируемый файл — двойчный файл. результат Указывает каталог и/или имя файла для нового файла(ов). /V Проверять, что новые файлы записаны корректно. Для добавления файлов друг к другу укажите один файл как результат, но несколько файлов как источник (используйте шаблоны или формат файл1+файл2+файл3).

Команды DEL, ERASE Удаляет один или несколько файлов.

DEL [диск:][маршрут]имя файла [/P]
ERASE [диск:][маршрут]имя файла [/P] [диск:][маршрут]имя файла Указывает файлы для удаления. Для удаления нескольких файлов используйте шаблоны /P Спрашивать подтверждение перед удалением каждого файла.

Команда RENAME Переименовывает файл (файлы).

RENAME [диск:][маршрут]имя файла1 имя файла2
REN [диск:][маршрут]имя файла1 имя файла2 Заметим, что Вы не можете указать новый диск или маршрут для резултирующего файла.

Дисковый сервис

Комманда FDISK Конфигурирует жесткий диск для использования под MS-DOS.

Команда FORMAT Форматирует диск для использования под MS-DOS.

FORMAT диск: [/V[:метка]] [/Q] [/U] [/F:размер] [/B | /S]
FORMAT диск: [/V[:метка]] [/Q] [/U] [/T:дорожки /N:сектора] [/B | /S]
FORMAT диск: [/V[:метка]] [/Q] [/U] [/1] [/4] [/B | /S]
FORMAT диск: [/Q] [/U] [/1] [/4] [/8] [/B | /S]
/V[:метка] Указывает метку тома. /Q Выполнять быстрое форматирование. /U Выполнять безусловное форматирование. /F:размер Указывает размер дискеты для форматирования (такой как 160, 180, 320, 360, 720, 1.2, 1.44, 2.88). /B Выделить место на форматированном диске под системные файлы. /S Копировать системные файлы на форматированный диск. /T:дорожки Указывает количество дорожек на стороне диска. /N:сектора Указывает количество секторов на дорожке. /1 Форматировать одну сторону дискеты. /4 Форматировать дискеты 5.25 дюйма на 360K в дисководе высокой плотности. /8 Форматировать 8 секторов на дорожку.

Команда CHKDSK Проверяет диск и отображает отчет.

CHKDSK [диск:][[маршрут]имя файла] [/F] [/V]
[диск:][маршрут] Указывает диск и каталог для проверки. имя файла Указывает файлы для проверки на фрагментированность. /F Исправлять ошибки на диске. /V Отображать полный маршрут и имя каждого файла на диске. Наберите CHKDSK без параметров для проверки текущего диска.

Как извлечь максимум из системной памяти DOS в высших адресах

Как извлечь максимум из системной памяти DOS в высших адресах

Чтобы добиться максимальной производительности работы компьютера, часто приходится совершенствовать свои знания в некоторых спецефических и сложных областях, однако немногие из них требуют знакомства со столь запутанными проблемами, как те, что связаны с дополнительной (expanded) и расширенной (extended) памятью. Если ваш компьютер основан на микропроцессоре 386, или это одна из машин с микропроцессором 286, то эти проблемы еще более усложняются, поскольку для компьютеров с микропроцессорами 286/386 существует возможность доступа к еще одной области памяти, называемой памятью в высших адресах (high memory).

Рис.1. Из 1 Мбайта оперативной памяти, имеющегося обычно в большинстве вычислительных систем, 640 Кбайт зарезервированы для DOS и работающих под ее управлением прикладных программ, а 384 Кбайт остаются недоступными для операционной системы.

Память в высших адресах — это область объемом 384 Кбайт, расположенная между границами 640 Кбайт и 1 Mбайт, зарезервированная для системного пользования — для видеопамяти, BIOS и проч. Такие программы, как QEMM (производства Quarterdeck) и 386max (производства Qualitas) управляют этой областью зарезервированной памяти таким образом, что вы можете поместить туда резидентные программы, тем самым освобождая больше обычной памяти под прикладные программы (см. рис. 1). Последние версии этих программ, QRAM (Quarterdeck) и Move’em (Qualitas), также дают возможность некоторым компьютерам с микропроцессорами 286 получить доступ к этой зарезервированной памяти. Эта статья посвящена подробному рассмотрению того, что представляет собой область памяти DOS в высших адресах и как можно ей воспользоваться, чтобы сделать систему максимально эффективной.

Традиция запутывания терминологии

Традиционная терминология, используемая для ссылок на память персонального компьютера, весьма запутанна. Расширенная память — это нечто совершенно другое, чем дополнительная память. Ни один из этих двух типов памяти не имеет никакого отношения к памяти в высших адресах, если не считать того, что дополнительная память использует область памяти в высших адресах для собственной индексации. Хотя эта терминология краткая и вполне отвечает действительности, прозрачной ее назвать нельзя.

Более того, память в высших адресах между 640 Кбайт и 1 Mбайтом не единственная; существует другая память в высших адресах. Это область памяти объемом 64 Кбайт (точнее, 64 Кбайт минус 16 байтов), к которой DOS может получить доступ на большинстве компьютеров с микропроцессорами 386/286, когда они работают в режиме реальной адресации. Вторая область памяти в высших адресах расположена непосредственно над границей 1MB, и осуществить доступ и управление этой областью памяти можно, используя драйвер HIMEM.SYS (Microsoft). Чтобы объяснить, как разобраться со всеми этими участками памяти, начнем с пояснения терминологии.

Стандартная память

Большинство читателей в основном знакомы с семейством центральных процессоров Intel 8086/8088. PC и PC-XT используют процессор 8088, 8-битовый вариант 16-битового 8086. Для удобства в дальнейшем будем ссылаться только на 8086, поскольку между ними нет принципиальных различий. В процессоре 8086 16 ножек (pin) посылают сигналы, соответствующие 16 битам текущих данных, которыми процессор обменивается с системным ОЗУ. Однако данные не имеют никакого смысла сами по себе, если нет возможности следить за тем, что они собой представляют. Системная шина должна знать, куда направляются конкретные данные или откуда они поступили. Для выполнения этой задачи процессор использует еще 20 из своих ножек для создания уникальных адресов памяти. Это дает возможность процессору семейства 8086/8088 адресовать 2 в степени 20 уникальных байтов — 1 Mбайт памяти.

В оригинальной архитектуре персонального компьютера 640 Кбайт из этого 1 Mбайт было зарезервировано под DOS и прикладные программы, работающие под ее управлением, а область с 640 Кбайт по 1 Mбайт была зарезервирована для системного пользования. Большая часть 640 Кбайт обычной памяти действительно используется почти постоянно, но верно и то, что существуют участки зарезервированной системной памяти, которые система не использует и которые могут быть сделаны доступными для других целей. QEMM и 386max управляют именно этой доступной частью участка памяти, расположенного между 640 Кбайт и 1Mбайт, и именно об этой части памяти следует рассказать подробнее.

Удобно и общепринято делить 1 Mбайт памяти на 16 последовательных участков по 64 Кбайт каждый. Эти участки, иногда называемые страницами, помечаются шестнадцатеричными целыми числами от 0 до F, т.е., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. (Есть старая программистская шутка, что считать в шестнадцатеричной системе легко, если отрезать большие пальцы). Итак, DOS получает области 0 — 9 (10 участков по 64 Кбайт, всего 640 Кбайт), а система получает остальное: участки A, B, C, D, E, F.

Иногда участки по 64 Кбайт разбиваются далее каждый на 16 областей по 4 Кбайт. Области, разумеется, также помечаются шестнадцатеричными числами. Например, область А разбивается на дополнительные области от 0 до F: A0, A1, . , AF. Как QEMM, так и 386max используют эти шестнадцатеричные адреса. Для завершения картины обе программы добавляют еще два числа, так что 386max ссылается на объединенную область А6 — А7 следующим образом: A600h — A800h. Последний вариант QEMM (версия 3.0) также принял этот синтаксис, тогда как предыдущие версии обозначили бы ту же самую область как A600h — A7FFh. Мы будем в дальнейшем придерживаться синтаксиса 386max, поскольку он применим теперь и к текущей версии QEMM.

Расширенная память

Расширенная память, дополнительная память и HI-MEM (Microsoft) это все средства получить больше памяти, чем стандартный 1MB. Плата микропроцессора 80286 имеет на четыре адресных линии больше, чем 8086 /8088, что позволяет адресоваться к количеству адресов, большему в 16 раз (2 в степени 4). Адреса памяти выше предела 1MB называются расширенной памятью. Когда микропроцессор 286 работает как 8088 (т.е., в режиме реальной адресации), он не может получить доступ к этой памяти. Чтобы использовать расширенную память, он должен работать в режиме виртуальной (защищенной) адресации.

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

Программа улучшения возможностей DOS, такая, как Release 3 в составе Lotus 1-2-3, работает, запуская на выполнение программу в расширенной памяти и переключаясь обратно в режим реальной адресации только тогда, когда вызывается сервисная программа DOS. Это возможно для прикладных программ, которые получают в свое распоряжение все ресурсы машины, но плохо работает для резидентных программ.

На компьютере с микропроцессором 286 можно получить до 15MB расширенной памяти (весь объем памяти — 16MB). Микропроцессор 386 физически способен адресовать 4 гигабайта памяти, т.к. он имеет 32 адресные линии (2 в степени 32 байтов). Большинство из машин семейства 386, тем не менее, устанавливают искусственное ограничение на объем памяти в 15MB, из-за используемых соединительных шин и BIOS.

OS/2 использует расширенную память. Однако, поскольку OS/2 работает в режиме виртуальной адресации (защиты), термин «расширенная память» становится излишним. Под управлением OS/2 все эти определения памяти не используются, есть только одна память — любой ее участок может быть использован.

HIMEM

Microsoft не был первооткрывателем HIMEM, как обычно считается. HIMEM использовалась ранее DESQview (Quarterdeck), хотя стала широко доступна только с версией Microsoft Windows 2.10. HIMEM использует всего лишь 64 Кбайт из доступной расширенной памяти — точнее говоря, первые 64 Кбайт (минус 16 байтов) расширенной памяти, памяти непосредственно над 1 Mбайт. Важной для HIMEM особенностью является то, что эти 64 Кбайт доступны из режима реальной адресации и могут быть использованы без средств расширения DOS. Одно из возможных применений HIMEM — позволить DOS разместить там часть себя, таким образом освобождая дополнительно часть памяти ниже 640 Кбайт для пользовательских программ.

HIMEM в действительности основана на ошибке, на разнице между микропроцессорами 80286 и 8088 в случае, когда 286 работает, как 8088. Кроме того, что процессор разбивает память на страницы — 16 взаимно не пересекающихся участков по 64 Кбайт,- процессор также представляет память в виде пересекающихся участков по 64 Кбайт, называемых сегментами, которые начинаются с каждых 16 байтов. Предположим, что процессор пытается получить доступ к одному из сегментов, который начинается очень близко к верхней границе 1MB. 8086 при этом совершит циклический переход к памяти в низших адресах, как показано на рис. 2.

Рис.2. Реально существует две области памяти в высших адресах. Вторая из этих областей имеет объем 64 Кбайт и расположена непосредственно за 1-Мбайтной границей. DOS может получать доступ к этой области при работе в реальном режиме на большинстве из систем, оснащенных процессорами 286 и 386.

В случае процессора 80286, однако, адрес, который будет получен в результате операции, находится в действительности непосредственно над границей 1 Мбайт. Это дает возможность в режиме реальной адресации адресовать первые 64 Кбайт (минус 16 байтов) расширенной памяти. Этот участок памяти меньше 64 Кбайт на 16 байтов потому, что последний сегмент начинается на 16 байтов ниже границы 1 Mбайт. Чтобы ликвидировать разногласия в случае, когда микропроцессор 286 работает как микропрочессор 8086, IBM встроила в шину специальные средства, которые заставляют память в режиме реального вроемени переходить циклически на низшие адреса, как это происходит в 8086/8088. Драйвер HIMEM занимается как раз тем, что выборочно отменяет действие этой поправки, чтобы программы, написанные особым образом с целью использования этой области, могли поместить там информацию. Это то, что делают Microsoft Windows, DESQview, Ventura Publisher и Carousel.

Дополнительная память

Дополнительная память (expanded memory), часто называемая EMS (Expanded Memory Specification) или LIM (согласно разработчикам, Lotus, Intel и Microsoft), представляет собой схему коммутации банков, которая позволяет процессору получить доступ к большому объему памяти посредством окна размером 64 Кбайт. (Коммутация банков — способ управления памятью, когда физическая память разбита на несколько сегментов (банков) длиной, равной размеру адресного пространства процессора. В каждый момент процессор работает с одним банком). Платы EMS занимают по одной области размером 64 Кбайт адресного пространства выше границы 640 Кбайт. При рассмотрении будем ссылаться на область, расположенную в адресах D000h — E000h, поскольку она принята по умолчанию для большинства плат. К этой области обращаются, как к рамке страницы. Память EMS логически подразделяется на участки размером по 16 Кбайт, называемые страницами.

Эти страницы отличаются от страниц размером 64 Кбайт в адресном пространстве процессора 8086, хотя, так же как и страницы по 64 Кбайт, они не пересекаются. Платы дополнительной памяти имеют специальное аппаратное обеспечение, которое может переключаться на те четыре из этих страниц, к которым осуществляется доступ, когда процессор посылает команду чтения или записи, обращенную к памяти с адресами в рамке страницы. Передвигая это окно посредством программных команд, процессор может получить доступ к такому количеству памяти, которое имеется физически на плате, хотя в каждый момент доступен лишь небольшой участок. Спецификация LIM 4.0 и ранние EEMS расширяли понятие, делая возможным передвигать не только рамку страницы, но (при соответствующем аппаратном обеспечении) также и другие области адресного пространства 8086. При соответствующем аппаратном обеспечении этот способ подкачки может быть использован для многозадачного режима DESQview и Windows.

Дополнительная память особенно полезна потому, что, в отличие от расширенной памяти и HIMEM, она использует только адреса ниже границы 1MB; следовательно, она может использоваться на машинах с процессорами 8086/8088.

Теперь к этой путанице карт и разной памяти присоединился микропроцессор 386, который обладает свими собственными средствами работы с памятью. Микропроцессор 386 поддерживает справочную таблицу, которая позволяет различать физическую и логическую память; он может определить, какая физическая память соответствует данной логической памяти. Примером может служить дублирование ПЗУ. Видео-ПЗУ на многих адаптерах работает значительно медленнее, чем ОЗУ компьютера с процессором 386. Можно программно скопировать ПЗУ в ОЗУ, затем привести в соответствие справочные таблицы таким образом, чтобы обращения к адресам, которые логически принадлежат ПЗУ, в действительности передавались копии, расположенной в значительно более быстродействующем ОЗУ. Информация, которая, как будут считать программы, размещается в нормальных адресах ПЗУ (логических адресах), будет в действительности размещена в различных физических адресах ОЗУ.

Спецификация LIM 4.0 является стандартной спецификацией организации дополнительной памяти. Для доступа к защищенной памяти существуют две спецификации: XMS (Extended Memory Specification), спецификация Microsoft, и VCPI (Virtual Control Program Interface). VCPI дает возможность программе запрашивать защищенные ресурсы у программы управления памятью в режиме виртуальной адресации (защиты), такой, как 386max или QEMM. Программы, работающие в режиме виртуальной адресации (защиты), например, Mathematica и Interleaf, могут работать в среде этих программ управления памятью только потому, что они поддерживают VCPI.

Oh, MSBRO !

Сетевые заметки системного администратора

6. Опишите распределение оперативной памяти в MSDOS, Windows9x, WindowsNT.

Предмет: Операционные системы.
Вопрос: №6

Маленькое вступление к распределению оперативной памяти в MSDOS:

Логическая структура памяти ПК обособлена особенностями системы адресации процессоров семейства х86. Процессоры 8086/88, применявшиеся в первых моделях ПК, имели доступное адресное пространство 1 Мбайт (так как использовали 20 разрядную шину адреса). Эти процессоры использовали сегментную модель памяти, унаследованную и следующими моделями в реальном режиме. Согласно этой модели линейный (физический) адрес вычисляется по формуле: Address = segment*10h+offset.

Таким образом, обеспечивается доступ к адресному пространству от 00000h до FFFFFh при помощи пары 16 разрядных регистров.

В реальном режиме процессора, используемом в DOS, применяется та же сегментная модель памяти и формально доступен лишь 1 Мбайт памяти, что является недостаточным для большинства современных приложений. Однако выяснилось, что процессоры 80286 в реальном режиме эмулируют 8086 с ошибкой: если задать адрес seg=FFFFh и offset = FFFFh, то данная формула дает адрес 10FFEFh, но ввиду 20-битного ограничения на шину адреса (которое было в 8086) эта комбинация в физической памяти указывала на 0FFEFh. Таким образом, адресное пространство сворачивалось в кольцо с небольшим «нахлестом». Но начиная с процессора 80286, шина адреса была расширена до 24 бит, а в последствии (в процессорах 386DX, 486 и выше) до 32 бит и даже 36 (P6). И та самая единица, которая отбрасывалась в процессорах 8086/88, теперь попадает на шину адреса, и в результате максимально доступный линейный адрес в реальном режиме достиг 10FFEFh. Дополнительные байты оперативной памяти, адресуемой в реальном режиме, позволили освободить дефицитное пространство оперативной памяти для прикладных программ. Эту область (100000h-10FFEFh), названную высокой памятью HMA ( High Memory Area ) , стали помещать часть ОС и небольшие резидентные программы.

Однако для обеспечения полной совместимости с процессором 8086/88 в схему ПК ввели вентиль линии А20 шины адреса – Gate A20, который либо пропускает сигнал процессора, либо принудительно обнуляет линию А20 системной шины адреса.

32-разрядные процессоры позволяют организовывать режим, иногда называемый «нереальным» или «большим реальным», в котором инструкции выполняются как в реальном, но доступны все 4 Гигабайта памяти. Этот режим часто используется в игровых программах, целиком захватывающих все ресурсы компьютера.

Основную часть адресного пространства занимает оперативная память. Объем установленной памяти определяется тестом POST при начальном включении (перезагрузке) компьютера, начиная с младших адресов. Натолкнувшись на отсутствие памяти (ошибку), тест останавливается на достигнутом и сообщает системе объем реально работающей памяти.

Распределение памяти ПК непосредствен-но адресуемой процессором:

Conventional memory при работе в среде ОС типа MS DOS стандартная память является самой дефицитной в ПК. На её небольшой объем (640 Кбайт) претендуют и BIOS, а оставшаяся часть предназначена для прикладного ПО. Стандарная память распределяется:

00000h-003FFh – векторы прерываний;

00400h-004FFh – область переменных BIOS;

00500h-00xxxh – область DOS;

00xxxh-9FFFFh – память, предоставляемая пользователю (до 638 Кбайт). Иногда верхние 128 Кбайт стандартной памяти (область 80000h-9FFFFh) называют Extended Conventional Memory.

Верхняя память (UMA) – объемом 384 Кбайт, имеет области различного назначения, которые могут быть заполнены буферной памятью адаптеров, постоянной памятью или оставаться незаполненными. Эти области доступны DOS для размещения резидентных программ и драйверов через драйвер EMM386, который отображает в них доступную дополнительную память.

Стандартное распределение дополнитель-ной памяти:

A0000h-BFFFFh – Video RAM (128 Кбайт) – видеопамять (обычно используется не полностью);

C0000h-DFFFFh – Adapter ROM, Adapter RAM (128 Кбайт) – резерв для адаптеров, использующих собственные модули ROM BIOS или/и специальное ОЗУ, совместно используемое с системной шиной;

E0000h-EFFFFh – свободная область (64 Кбайт), иногда занятая под System BIOS;

F0000h-FFFFFh – System BIOS (64 Кбайт) – системная BIOS;

FD000h-FDFFFh – ESCD (Extended System Configuration Data) – область энергонеза-висимой памяти, используемая для конфигурирования устройств Plug and Play. Эта область имеется только при наличии PnP BIOS, ее положение и размер жестко не

В области UMA практически всегда присутствует графический адаптер.

Распространенным потребителем UMA являются также расширения ROM BIOS, расположенные на платах дисковых контроллеров, и микросхемы удаленной загрузки (Boot ROM) на платах адаптеров ЛВС. Обычно они занимают область C8000h –CBFFFh/C9FFFh/C8FFFh (для дисковых контроллеров), но могут и перемещаться при конфигурировании адаптеров.

Память выше 100000h – дополнительная (расширенная)память Extended Memory, непосредственно доступная только в защищенном (и в «большом реальном») режиме для компьютеров с процессорами 286 и выше. В ней выделяется область 100000h-10FFEFh – высокая память НМА – это единственная область расширенной памяти, доступная 286+ в реальном режиме при открытом вентиле Gate A20.

Отображаемая память EMS (Expended Memory Specification) — программная специи-фкация использования дополнительной памяти DOS-программами реального режима. Спецификация LIM EMS – продукт соглашения фирм Lotus, Intel, Microsoft на использование EMS. С помощью специальных аппаратных или программных средств любая область дополнительной памяти может быть отображена на небольшие страницы, расположенные в области UMA. В первоначальном варианте можно было использовать 4 страницы по 16 Кбайт, примыкающие друг к другу, начиная обычно с адреса D0000h (положение страниц можно менять в пределах свободных областей UMA). Обращение прикладных программ к памяти EMS осуще-ствляется через диспетчер памяти, вызываемый по прерыванию Int 67h. Программа, нуждающаяся в дополнительной памяти, должна сначала запросить выделение области, указав ее размер в 16-килобайтных страницах. В ответ на этот запрос, если имеется свободная память, диспетчер сообщает программе номер дескриптора EMS (EMS handler), по которому программа в дальнейшем будет ссылаться на выделенную ей область при управлении отображением. Далее программа через диспетчер назначает отображение требуемой логической страницы из выделенной ей области дополнительной памяти на выбранную физическую страницу, расположенную в области UMA. После этого любые программные обращения процессора к физической странице, расположенной в пределах первого мегабайта, будут в действительности работать с логической страницей дополнительной памяти, расположенной выше первого мегабайта, причем без переключения в защищенный режим. Для работы с иной логической страницей требуется вызов диспетчера для переназначения отображения. В EMS 4.0, эмулируемой на процессорах 386+, появилась возможность увеличения числа доступных физических страниц и отображения дополнительной памяти не только на фиксированные области UMA, но и на любые области памяти.

Расширенная память XMS (Extended Memory Specification) — иная программная спецификация использования дополнитель-

ной памяти DOS-программами, разрабо-танная компаниями Lotus, Intel, Microsoft и AST для компьютеров на процессорах 286 и выше. Эта спецификация позволяет программе получить в распоряжение одну или несколько областей дополнительной памяти, а также использовать область НМА. Распределением областей ведает драйвер HIMEM.SYS. Драйвер позволяет захваты-вать или освобождать область НМА (65520 байт, начиная с 100000h), а также управлять вентилем линии адреса А20. Функции XMS позволяют программе:

— определить размер максимального доступного блока памяти;

— захватить или освободить блок памяти;

— копировать данные из одного блока в другой, причем участники копирования могут быть блоками как стандартной, так и дополнительной памяти в любых сочетаниях;

— запереть блок памяти (запретить копирование) и отпереть его;

— изменить размер выделенного блока.

В ответ на запрос выделения области драйвер выдает номер дескриптора блока (16-битное число XMS handler), по которому выполняются дальнейшие манипуляции с этим блоком. Размер блока может достигать 64 Мбайт. Спецификация XMS позволяет программам реального режима устраивать «склады» данных в дополнительной памяти, которая им непосредственно недоступна, копируя в нее и из нее данные доступных областей первого мегабайта памяти. Доступ к драйверу XMS осуществляется через прерывание Int 2Fh. Заботу о переключении в защищенный режим и обратно для получения доступа к дополнительной памяти берет на себя диспетчер. По умолчанию HIMEM.SYS позволяет использовать до 32 дескрипторов блоков, но это число можно увеличить.

Как видно, спецификации EMS и XMS отличаются по принципу действия: в EMS для доступа к дополнительной памяти выполняется отображение памяти (страничная переадресация), а в XMS – копирование блоков данных. На компьютерах с процессорами 386+ эти спецификации мирно сосуществуют при использовании драйвера HIMEM.SYS, поверх которого может быть загружен и драйвер EMM386.EXE, пользующийся памятью XMS для эмуляции EMS-памяти. Память, доступная EMS и XMS, может выделяться динамически из числа дополнительной. Ключ NOEMS в строке запуска EMM386 запрещает выделение памяти под использование по спецификации

Распределение оперативной памяти в Windows 9.x

Windows 9х являются 32-разрядными, многопотоковыми ОС с вытесняющей многозадачностью. Основной пользователь-

ский интерфейс этих ОС – графический. Для своей загрузки они используют операционную систему MS DOS 7.Х, и если в файле MSDOS.SYS в секции [Options] прописано «BootGUI = 0», то процессор работает в обычном реальном режиме. Распределение памяти в MS DOS 7.X такое же, как и в предыдущих версиях DOS. Однако при загрузке GUI-интерфейса перед загрузкой ядра Windows 95/98 процессор переключается в защищенный режим работы и начинает распределять память уже с помощью страничного механизма.

Использование так называемой плоской модели памяти,при которой все возможные сегменты, используемые программистом, совпадают друг с другом и имеют максимально возможный размер, определяемый системными соглашениями данной ОС, приводит к тому, что, с точки зрения программиста, память получается неструктурированной. За счет представле-ния адреса как пары (Р, i) память можно трактовать и как двумерную, то есть «плоскую», и как линейную, что существенно облегчает создание системного программного обеспечения и прикладных программ с помощью соответствующих систем программи-рования.

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

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

В Windows 95/98 каждая 32-разрядная прикладная программа выполняется в своем собственном адресном пространстве, но все они используют совместно один и тот же 32-разрядный системный код. Доступ к чужим адресным пространствам в принципе возможен. Другими словами, виртуальные адресные пространства не используют всех аппаратных средств защиты, заложенных в микропроцессор. В результате неправильно написанная 32-разрядная прикладная программа может привести к аварийному сбою всей системы. Все 16-битовые прикладные программы Windows разделяют общее адресное пространство, поэтому они так же уязвимы друг перед другом, как и в среде Windows 3.X.

Системный код Windows 95 размещается выше границы 2 Гбайт. В пространстве с отметками 2 и 3 Гбайт находятся системные библиотеки DLL (Dynamic Link Library – динамически загружаемый библиотечный модуль), используемый несколькими программами.

Заметим, что в 32-битовых микропроцессорах семейства i80x86 имеются четыре уровня защиты, именуемые

кольцами с номерами от 0 до 3.

Кольцо с номером 0 является наиболее привилегированным, то есть максимально защищенным. Компоненты системы Windows 95, относящиеся к кольцу 0, отображаются на виртуальное адресное пространство между 3 и 4 гигабайтами. К этим компонентам относятся собственно ядро Windows, подсистема управления виртуальными машинами, модули файловой системы и виртуальные драйверы (VxD).

Область памяти между 2 и 4 гигабайтами адресного пространства каждой 32-разрядной прикладной программы совместно используется всеми 32-разрядными прикладными программами. Такая организация позволяет обслуживать вызовы API непосредственно в адресном пространстве прикладной программы и ограничивает размер рабочего множества, однако это снижает надежность. Ничто не может помешать программе, содержащей ошибку, произвести запись в адреса, принадлежащие системным DLL, и вызвать крах всей системы.

В области между 2 и 3 гигабайтами также находятся все запускаемые 16-разрядные прикладные программы Windows. С целью обеспечения совместимости эти программы выполняются в совместно используемом адресном пространстве, где они могут испортить друг друга так же, как и в Windows 3.x.

Адреса памяти ниже 4 Мбайт также отображаются в адресное пространство каждой прикладной программы и совместно

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

Минимально допустимый объем оператив-ной памяти ОС Windows 95 равен 4 Мбайт, однако при таком объеме пробуксовка столь велика, что практически работать нельзя.

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

Распределение оперативной памяти в Windows NT:

В операционных системах Windows NT тоже используется плоская модель памяти. Заметим, что Windows NT 4,0 Server практически не отличается от Windows NT 4.0 Workstation; разница лишь в наличии у сервера некоторых дополнительных служб, дополнительных утилит для управления доменом и несколько иных значений в настройках системного реестра. Однако схема распределения возможного виртуального адресного пространства в системах Windows NT разительно отличается от модели памяти Windows 95/98.

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

Логическое распределение адресного пространства:

1.) все системные программные модули находятся в своих собственных виртуальных адресных пространствах, и доступ к ним со стороны прикладных программ невозможен.

Ядро системы и несколько драйверов работают в нулевом кольце защиты в отдельном адресном пространстве.

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

Прикладным программам выделяется 2 Гбайт локального (собственного) линейного (неструктурированного) адресного простран-ства от границы 64 Кбайт до 2 Гбайт (первые 64 Кбайт полностью недоступны). Прикладные программы изолированы друг от друга, хотя могут общаться через буфер обмена (clipboard) и механизмы:

1.) универсальные механизмы динамичес-кого обмена данными DDE (Dynamic Data Exchange);

2.) технологию документно-ориентирован-ной архитектуры приложений OLE (Object Linking and Embedding).

В верхней части каждой 2-гигабайтной области прикладной программы размещен код системных DLL кольца 3, который выполняет перенаправление вызовов в совершенно изолированное адресное пространство, где содержится уже собственно системный код, выступающий как сервер-процесс (server process), который проверяет значения параметров, исполняет запрошенную функцию и пересылает результаты назад в адресное пространство прикладной программы. Хотя сервер-процесс сам по себе остается процессом прикладного уровня, он полностью защищен от вызывающей его прикладной программы и изолирован от нее.

Между отметками 2 и 4 Гбайт расположе-ны низкоуровневые системные компоненты Windows NT кольца 0, в том числе ядро, планировщик потоков и диспетчер виртуальной памяти. Системные страницы в этой области наделены привилегиями супервизора, которые задаются физическими схемами кольцевой защиты процессора. Это делает низкоуровневый системный код невидимым и недоступным для записи программ прикладного уровня, но приводит к падению производительности во время переходов между кольцами.

Для 16-разрядных прикладных Windows-программ ОС Windows NT реализует сеансы Windows on Windows (WOW). В отличие от Windows 95/98 ОС Windows NT дает возможность выполнять 16-разрядные программы Windows индивидуально в собственных пространствах памяти или совместно в разделяемом адресном пространстве. Почти во всех случаях 16- и 32-разрядные прикладные программы Windows могут свободно взаимодей-ствовать, используя OLE, независимо от того, выполняются они в отдельной или общей памяти. Собственные прикладные программы и сеансы WOW выполняются в режиме вытесняющей многозадачности, основанной на управлении отдельными потоками. Множественные 16-разрядные прикладные программы Windows в одном сеансе W0W выполняются в соответствии с кооперативной моделью многозадачности. Windows NT может также выполнять в многозадачном режиме несколько сеансов DOS. Поскольку Windows NT имеет полностью 32-разрядную архитектуру, не существует теоретических ограничений на ресурсы интерфейса графических устройств GDI (Graphics Device Interface) и USER.

Процессами выделения памяти, ее резервирования, освобождения и подкачки управляет диспетчер виртуальной памяти Windows NT VMM (Virtual Memory Manager).

Каждая виртуальная страница памяти, отображаемая на физическую страницу, переносится в так называемый страничный фрейм (page frame). Прежде чем код или данные можно будет переместить с диска в память, диспетчер виртуальной памяти (модуль VMM) должен найти или создать свободный страничный фрейм или фрейм, заполненный нулями.

Когда процесс использует код или данные, находящиеся в физической памяти, система резервирует место для этой страницы в файле подкачки Pagefile.sys на диске. Файл Pagefile.sys представляет собой зарезервированный блок дискового прост-ранства, который используется для выгрузки страниц, помеченных как «грязные», при необходимости освобождения физической памяти.

В системах Windows NT 4.0 объекты, созда-

ваемые и используемые приложениями и операционной системой, хранятся в так называемых пулах памяти (memory pools).

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

Перемещаемый или нерезидентный пул (paged pool) содержит объекты, которые могут быть при необходимости выгружены на диск.

Неперемещаемый или резидентный пул (nonpaged pool) содержит объекты, которые должны постоянно находиться в памяти.

Вся виртуальная память в Windows NT подразделяется на классы:

1.) зарезервированную (reserved)

2.) выделенную (committed)

3.) доступную (available).

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

Память выделена , если диспетчер VMM резервирует для нее место в файле Pagefile.sys на тот случай, когда потребуется выгрузить содержимое памяти на диск. Объем выделенной памяти процесса характеризует фактически потребляемый им объем памяти. Выделенная память ограничивается размером файла подкачки. Предельный объем выделенной памяти в системе (commit limit) определяется тем, какой объем памяти можно выделить процессам без увеличения размеров файла подкачки.

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

Нет похожих постов.

Внутренние и внешние команды DOS. Создание файла в MS-DOS. Основные виды оперативной памяти (ОЗУ). Назначение функциональных клавиш в MS-DOS. Команды для работы с сетью

ПОКАЗАТЕЛИ КОМАНДЫ /MEM /GC /LAG

Если на сервере установлен плагин Essentials, то после ввода команд /mem /gc или /lag мы увидим в чате вывод показаний:

1. Аптайм — время работы сервера после включения.
2. TPS — Tick Per Second (кол-во в секунду на сервере).
3. Максимум памяти — количество памяти выделенной для сервера. Указывается в параметре запуска сервера -Xmx.
4. Выделено памяти — количество используемой памяти, которая требуется для сервера в настоящий момент.
5. Свободной памяти — количество памяти, которую освободил сборщик мусора (java).

Разберем подробнее четвёртый пункт: «Выделено памяти».
Многие не понимают и думают, что их обманули с памятью. Считают, что значение «выделено памяти» должно быть равно значению «Максимум памяти». Это крайне неверное мнение и складывается оно у многих неопытных пользователей и администраторов серверов Майнкрафт, по причине неправильного перевода плагина.

И так! Для сервера максимальная память 10.000 мегабайт (выделить для сервера можно и больше памяти), но это не означает, что сервер сразу её будет всю использовать. Сервер не задействует больше памяти чем ему требуется, поэтому он из 10.000 мегабайт возьмёт для начала столько, сколько ему нужно для работы.
Например, при запуске сервера потребовалось 484 мегабайт (как на рисунке), но по мере увеличения игроков на сервере, карта для каждого игрока будет прогружаться, для этого серверу потребуется больше памяти, вот тут-то, сервер автоматически начнёт выделять для своей работы еще памяти из максимально доступной для него, которая указана в первом пункте.

На увеличение этого показателя могут влиять и другие факторы: большое количество плагинов, неправильная работа плагинов, неправильная конфигурация плагинов, безрассудный игровой процесс, постоянные огромные сеты (//set) , полёты с большой скоростью /speed 5 — 10 и многое другое.

Объяснить можно проще, сравнив это с ведром, водой, мальчиком Васей и его гостями.
Представим:
У вас есть пустое ведро объем которого равен 10 литров.
У вас есть 1 литр воды.
Мальчик «Вася» попросил принести ему 1 литр воды.
Вам нужно в этом ведре перенести для мальчика «Васи» 1 литр воды.
Но вдруг «Вася» сообщает, что к нему пришли гости, еще 3 мальчика и требуется воды еще больше, уже не 1 литр, а 4.
Вы успешно помещаете всю эту воду в ведро, в размере 4 литров.
Через некоторое время, Василий сообщает, что гостей гораздо больше, их уже не три, а семь и воды уже требуется 10 литров + 1 литр для мальчика Васи, это уже 11 литров, а ведро у Вас всего лишь для 10 литров воды, вы пытаетесь вместить одиннадцатый литр в 10 литровое ведро, но вода льётся через край. В итоге, вы приносите всего лишь 10 литров на 11 человек, и для каждого мальчика достаётся менее 1 литра.

Вот то же самое происходит и с сервером.
Разработчики Майнкрафт рекомендуют для каждого игрока выделять 100 мегабайт оперативной памяти, с учётом того, что сервер не будет перегружен плагинами.
Если память вашего сервера 10.000 мегабайт, а памяти на одного игрока требуется 100 мегабайт, то делим 10000:100=100 получаем сто, значит при таком объеме оперативной памяти комфортно будут играть на сервере 100 человек, если оперативную память не съедают ваши плагины и игровой процесс.

Ведром в этом случае будет являться сам сервер, ёмкость которого это выделенная для него доступная память 10.000 (как на картинке, это пример), водой будет являться память потраченная для работы карты сервера и плагинов, а гостями будут игроки заходящие на сервер для которых будет требоваться память минимум 100 мегабайт.

Итог таков, показатель «Выделено памяти» отображает размер памяти, которая задействована сервером в данный момент и требуется для его работы. Размер памяти, которую потребляют в данный момент плагины, карта и игроки.

Конечно можно сделать параметры запуска такими, что карта сразу будет прогружаться до предела выделенной для сервера памяти, показатели: «Максимум памяти» и «Выделено памяти» при этом будут равными. Это принесёт печальный результат и постоянные краши, так как вся память будет бессмысленно израсходована на карту, которая никем не используется.

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

А теперь представим, что параметры запуска сервера мы настроили так, что наш сервер прогружает карту на все 10.000 мегабайт. Получится следующее — территория карты, которая не используется игроками, будет расходовать всю оперативную память, и в случае, если игрок попадёт за пределы координат прогруженной карты, то для этого игрока не найдется более оперативной памяти для дальнейшей прогрузки им карты, начнутся лаги, либо сервер крашнется с ошибкой — » Out of Memory «. Ведро то уже полное.)))

I. Основные внутренние команды DOS.
Внутренние команды DOS выполняет командный процессор command.com.

Применение внутренних и внешних команд DOS относится к области системного программирования.

1. Команда смены текущего дисковода:
a: — переход на дисковод a:

b: — переход на дисковод b:

c: — переход на дисковод c:

2. Команда вывода оглавления каталога: dir

Поэкранный (постраничный) вывод оглавления каталога, если оглавление очень большое: dir/p

dir a:\ — команда вывода оглавления корневого каталога на диске а:.

3. Команда смены текущего каталога: cd имя каталога

Переход в корневой каталог текущего диска: cd\

Переход из подкаталога в каталог: cd..

4. Команда создания каталога: md имя каталога

5. Команда удаления пустого каталога: rd имя каталога

6. Команда вывода содержимого текстового файла на экран:

7. Команда очистки экрана монитора: cls

8. Команда копирования файлов:

copy имя файла1 имя файла2 — копирование одного файла в другой

copy имя файла имя каталога — копирование файла в каталог;

copy имя файла prn — распечатка файла на принтере.

9. Создание текстового файла:

copy con: имя файла, нажать Enter, ввести построчно текст,

в конце каждой строки Enter, затем в конце F6 или Ctrl+Z и Enter.

10. Объединение содержимого двух и более текстовых файлов

(конкатенация файлов): copy имя 1-го файла + имя 2-го файла имя нового файла

11. Команда удаления файла: del имя файла или erase имя файла

12. Переименование файла: ren имя файла новое имя файла

13. Вывод версии DOS: ver

14. Вывод метки диска: vol

15. Ввод текущей даты: date

16. Ввод текущего времени: time

17. Exit — выход из командного процессора DOS.

Примечание: После ввода с клавиатуры указанных команд в командную

строку следует нажать клавишу Enter.

II. Основные внешние команды DOS (для версии MS-DOS 6.22).
Внешние команды DOS выполняют вспомогательные программы (утилиты),

расположенные в каталоге DOS на диске С:.

1. format имя диска: — форматирование диска (для дискет format a:

или format b:). Создание системного диска: format имя диска: /s

Будьте внимательны: при форматировании диска (дискеты) вся информация на нем уничтожается!

2. fdisk — разбиение жесткого диска на разделы (логические диски С, D, E и так далее).

Внимание: при разбиении жесткого диска на разделы вся информация на нем уничтожается!

3. sys имя диска: — перенос файлов ядра DOS на диск (дискету), создание системного диска (дискеты). Используется также для смены (обновления версии) DOS.

4. mem — вывод карты оперативной памяти. Чаще используется команда mem/c/p или mem/d/p (ключ p — постраничный вывод информации).

5. chkdsk c: /f — проверка файловой системы и восстановление потерянных кластеров.

6. scandisk — проверка файловой системы и диска на наличие логических сбоев. Для дискет scandisk a: или scandisk b:

7. label имя диска: — создание или обновление метки на диске, дискете.

8. undelete имя диска: — восстановление случайно стертых файлов.

9. diskcopy имя диска: имя диска: — создание точной копии дискеты.

10. print имя файла prn — печать файла на принтере в фоновом режиме. Отмена фоновой печати: print /t

11. graphics — поддержка печати информации с экрана (при нажатии клавиши Print Screen).

12. defrag c: /fd — устранение фрагментации файлов и оптимизация размещения информации на жестком диске (эта программа аналогична программе Speed Disk из комплекта Norton Utilities).

13. deltree имя каталога — удаление дерева каталогов (с файлами).

Внимание: Использовать эту команду можно только, если Вы уверены в необходимости удаления данного дерева каталогов! В противном случае будет утрачена важная информация!

14. msd — диагностика компьютера.

15. edit — вызов текстового редактора MS-DOS Editor.

16. qbasic — вызов языка программирования BASIC.

17. doskey — вызов программы, облегчающей редактирование содержимого командной строки (вводимых команд DOS).

18. tree c:\имя каталога /f — вывод содержимого указанного каталога.

19. msav — проверка дисков антивирусной программой MS-Antivirus.

20. memmaker — оптимизатор распределения оперативной памяти.

Форматы команд для утилиты MS-DOS mem.exe:
mem — стандартная карта ОЗУ;

mem/c/p — выдает список загруженных программ;

mem/d/p — выдает информацию о внутренних устройствах (например:

con, prn, LPT1 и т.д.) с адресацией;

mem/f/p — объем свободной памяти с адресацией

mem/m имя программы — размер памяти, занимаемый указанной

загруженной программой (резидентной, c расширением com и exe);

ключ /p дает постраничный вывод информации.

Создание файла в MS-DOS
Для создания файла в MS-DOS необходимо:

1. Ввести команду в командную строку: copy con: имя файла и нажать Enter.

Пример: copy con: c:\mark\proba.txt

2. Ввести текст и нажать F6 или Сtrl-Z, что означает конец строки, и нажать Enter. Будет создан файл proba.txt в каталоге MARK. Имя файла надо указывать с полным путем.

3. Если файл создается в текущем каталоге, то можно не указывать

полный путь (маршрут).

Назначение функциональных клавиш в MS-DOS
F1 -копирует по одному символу из буфера на экран.

F2 -копирует все символы из буфера на экран до заданного символа.

F3 -копирует все символы из буфера на экран.

F4 -пропускает все символы в буфере до определенного символа.

F5 -переносит все символы с экрана в буфер, не пытаясь выполнить их

F6 -означает конец строки (или CTRL-Z).

Остальные клавиши в MS-DOS не используются, но применяются в

большинстве прикладных программ.

Использование команды создания виртуального диска SUBST
Для создания виртуального диска (например, E), содержащего файлы из каталога ME, в командную строку надо записать: subst e: c:\me или subst e: c:\mark\refis для файлов из каталога REFIS. Переход на диск Е: производится по общему правилу для любого диска. Это в ряде случаев облегчает запуск программ, когда в команду Path уже нельзя вставить новый каталог (общая длина каталогов в команде Path не может превышать 128 байт). Данную команду можно вставить в файл autoexec.bat, тогда виртуальный диск будет устанавливаться постоянно. Команда subst еще называется командой определения синонима для имени каталога и используется, чтобы не набирать имени каталога, который часто используется. При создании и удалении файлов и каталогов на виртуальном диске E: тоже самое будет происходить синхронно и в каталоге ME на диске С:.

Создать таким способом еще один 2-й виртуальный диск F: уже нельзя. Каких-либо видимых изменений в оперативной или дисковой памяти при создании виртуального диска не происходит. Команда удаления виртуального диска E: subst e: /d. Команда subst относится к внешним командам DOS.

О некоторых внутренних командах DOS.
Если ввести в командную строку команды echo и verify, то можно

узнать их текущее состояние: echo is on или echo is off;

verify is on или verify is off.

Если ввести команду path, то будет выдана команда path из файла

autoexec.bat, т.е. текущий список каталогов, указанный в команде path.

Если ввести команду set, то будет указано ее текущее состояние,

то есть будет выдана та часть файла autoexec.bat, которая отно-

сится к заданию переменной окружения: path, prompt, set, а также

УКАЗАТЕЛЬ КОМАНД И УТИЛИТ MS-DOS

(Внутренние (*) и внешние команды MS-DOS)

ANSY.SYS установка драйвера консоли

ASSIGN переназначение дисковых устройств

ATTRIB установка атрибута файла

BATCH пакетные командные файлы (*.bat) *

BACKUP создание резервных копий для файлов

BREAK прерывание программы *

BUFFERS создание буферов в ОЗУ *

CHDIR (CD) переход в новый каталог *

CHKDSK проверка дисков

CLS очистка экрана *

COMMAND: второй командный процессор *

COMP сравнение дисковых файлов

COPY копирование файла *

COUNTRY установка формата даты и времени

CTTY переназначение консоли

DATE установка даты *

DEBUG отладчик программ

DEVICE установка новых драйверов устройств *

DIR просмотр каталогов *

DISKCOMP сравнение дисков

DISKCOPY дублирование дискет

DRIVER.SYS установка драйвера блочно-ориентированных устройств

ERASE (DEL) удаление файлов *

FCBS блоки управления файлами *

FDISK разбиение жесткого диска на разделы

FILES установка числа одновременно открытых файлов *

FIND поиск данных

FORMAT форматирование диска

GRAPHICS распечатка графических изображений

JOIN логическое объединение каталога на одном диске с другим диском в один каталог

LABEL создание и замена метки диска

LASTDRIVE установка максимального числа доступных дисководов *

LINK загрузчик (редактор) связей

MKDIR (MD) создание каталога *

MODE изменение режимов работы выходных устройств

MORE постраничный вывод файлов на экран

PATH указание пути поиска *

PRINT вывод на печать данных

PROMPT изменение формата приглашения DOS *

RENAME (REN) переименование файлов *

REPLACE селективная замена и копирование файлов

RESTORE восстановление файлов, резервированных по команде BACKUP

RMDIR (RD) удаление пустого каталога *

SELECT установка MS-DOS на новый диск с заданным типом клавиатуры, форматом даты и времени

SET установка переменной окружения *

SHELL применение дополнительного командного процессора *

SORT сортировка данных

SUBST создание виртуальных дисков

SYS копирование MS-DOS

TIME установка времени *

TREE вывод дерева каталогов

TYPE вывод на дисплей содержимого файла *

VDISK.SYS установка драйвера виртуального диска

VER вывод версии MS-DOS *

VERIFY проверка записи на диск *

VOL вывод метки диска *

XCOPY выборочное копирование групп файлов и каталогов

Основные виды оперативной памяти (ОЗУ)
Оперативная память (ОЗУ) — это устройство для временного хранения информации (только в процессе работы компьютера), обеспечивает быстрый доступ процессора к программе и обрабатываемым данным.

1. CMA — основная оперативная память (Conventional Memory Area).

(область 0 — 640K).

2. UMA — верхняя память (Upper Memory Area).

(область 640K — 1M).

3. UMB — блоки верхней памяти (Upper Memory Block).

4. HMA — высокая память (High Memory Area).

(область 1M + 64K).

5. XMA — расширенная память (Extended Memory Area).

(область, выше > 1M + 64K).

6. EMS — дополнительная память (Expanded Memory).

(расположена на отдельной плате).

Проблема 640 Кбайт
У IBM PC с процессором 8088 и 8086 оперативная память, доступная для DOS и прикладных программ, составляет не более 640 Кбайт. Это было шагом вперед для начала 80-х годов, по сравнению с 64 Кбайт для остальных компьютеров. Однако с появлением процессоров 80286, 80386 и старше, а также современных программ, например Windows, ограничение в 640 Кбайт превратилось в проблему, которая была успешно решена с появлением дополнительной памяти и особенно расширенной памяти. Расширенная память (Extended Memory) — это память выше, чем 1M + 64K. Благодаря появлению расширенной памяти, процессоры 80286, 80386SX и 80486SX могут непосредственно обращаться к 16 Мб памяти, а процессоры 80386DX, 80486DX и старше — к 4 Гб.

Дополнительная память (Expanded Memory) сейчас не применяется.

Доступ к расширенной памяти в MS-DOS и Windows обеспечивают драйвер himem.sys и менеджер расширенной памяти emm386.exe, которые загружаются с помощью файла config.sys. Основная память также как и раньше остается равной 640 Кб, но ее стараются максимально высвободить для прикладных программ, загружая драйверы клавиатуры, мыши и т.д. в верхнюю память (UMA и UMB) с помощью файла autoexec.bat. Стандартная величина ОЗУ IBM PC: 1 Мб; 2 Мб; 4 Мб; 8 Мб; 16 Мб; 32 Мб; 64 Мб и т.д.

Служит для вывода сведений о свободных и занятых областях памяти и программах, находящихся в памяти подсистемы MS-DOS. При запуске команды mem без параметров на экран выводятся сведения о свободной и об использованной памяти подсистемы MS-DOS.

Синтаксис


Параметры

Заметки

  • Использование параметра /program

Параметр /program /debug или /classify /p вместо /program .

Использование параметра /debug

Параметр /debug нельзя использовать совместно с параметром /program или /classify . Допускается использование сокращения /d вместо /debug .

Использование параметра /classify

Параметр /classify обеспечивает вывод сведений о размере каждой программы в десятичном и шестнадцатеричном формате, итоговые сведения об использовании памяти и список наибольших доступных блоков памяти. Параметр /classify нельзя использовать совместно с параметром /program или /debug . Допускается использование сокращения /c вместо /classify .

Вывод сведений о состоянии памяти

Подсистема MS-DOS выводит сведения о состоянии расширенной памяти, только если в память загружено что-либо по адресам выше 1 МБ.

Примеры

Предположим, подсистема MS-DOS сконфигурирована так, что используется расширенная память. Для вывода сведений об использовании всех областей памяти — обычной, расширенной и отображаемой, а также для вывода сведений о загруженных программах следует использовать следующую команду:

Результат будет выглядеть примерно следующим образом:

Адрес Имя Размер Тип 000000 000400 Вектор прерывания 000400 000100 Область обмена ПЗУ (ROM) 000500 000200 Область обмена DOS 000700 IO 000310 Системные данные 000A10 MSDOS 0014D0 Системные данные 001EE0 IO 0018D0 Системные данные KBD 000800 Системная программа HIMEM 000420 DEVICE= 000340 FILES= 000090 FCBS= 000170 LASTDRIVE= 000710 STACKS= 0037C0 COMMAND 000A40 Программа 004210 MSDOS 000070 — Свободно — 004290 COMMAND 0001F0 Окружение 004490 MEM 0001D0 Окружение 004670 MEM 017550 Программа 01BBD0 MSDOS 084410 — Свободно — 09FFF0 SYSTEM 028000 Системная программа 0C8000 IO 0083D0 Системные данные MOUSE 0083C0 Системная программа 0D03E0 MSDOS 000050 — Свободно — 0D0440 REDIR 0009F0 Программа 0D0E40 DOSX 007CA0 Программа 0D8AF0 DOSX 001030 Данные 0D9B30 MSDOS 0164C0 — Свободно — 655360 байт — всего обычной памяти 655360 байт — доступно для MS-DOS 637296 максимальный размер исполняемой программы 1048576 байт — всего непрерывной дополнительной памяти 0 байт — доступно непрерывной дополнительной памяти 405504 байт — доступной памяти XMS резидентная часть MS-DOS загружена в сегмент HMA

  • «Всего обычной памяти» представляет количество виртуальной памяти, выделенной подсистеме MS-DOS до первых 640 КБ.
  • «Доступно для MS-DOS» представляет объем выделенной обычной памяти, включая память, необходимую для Cmd.exe.
  • «Максимальный размер исполняемой программы» равен размеру наибольшего непрерывного блока обычной памяти, доступной для программ.
  • «Всего памяти EMS» (не показано в предыдущем примере) является количеством отображаемой памяти, которая может быть использована подсистемой MS-DOS.
  • «Свободно памяти EMS» (не показано в предыдущем примере) равно количеству отображаемой памяти, доступной программам.
  • «Всего непрерывной дополнительной памяти» равно объему памяти выше 1 МБ.
  • «Доступно непрерывной дополнительной памяти» является количеством памяти, доступным через интерфейс прерывания 15h. Эта память не используется диспетчерами расширенной памяти, такими как Himem.sys. Некоторые старые программы используют такую схему организации дополнительной памяти.
  • «Доступной памяти XMS» является объемом памяти, которая используется диспетчерами расширенной памяти, такими как Himem.sys, и доступна для использования программами.

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

Для вывода состояния используемой и свободной памяти дайте команду MEM без параметров.

Параметр /CLASSIFY перечисляет загруженные в память программы и показывает, сколько используется обычной и старшей памяти. MEM /CLASSIFY подсчитывает также общий объем используемой памяти и выводит наибольшие свободные блоки. /CLASSIFY можно сократить до /C.

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

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

/MODULE имя_модуля показывает, как использует память программный модуль (имя указывается обязательно). Выводит список областей памяти, выделенных данной программе, и их размеры. /MODULE можно сократить до /M.

Параметры /C, /F и /M можно использовать в сочетании с /PAGE, но не друг с другом.

Параметр /PAGE делает паузу после вывода каждого экрана. Чтобы автоматически добавить параметр /PAGE к команде MEM, можно использовать программу DOSKEY. Для этого включите в AUTOEXEC.BAT команды:

C:\dos\doskey
doskey mem=mem.exe $* /p

О проверке памяти на диске рассказывается в описании команды CHKDSK.

MS-DOS выводит информацию о дополнительной памяти только при ее установке в системе. Состояния расширенной памяти показывается только при наличии расширенной памяти, согласующейся с версией 4.0 LIM EMS. Состояние старшей памяти MS-DOS выводит только при установке программы работы с блоками UMB (типа EMM386) и включении в CONFIG.SYS команды DOS=UMB. При выполнении Windows версии 3.0 состояние старшей памяти не выводится.

В выводимой командой MEM информации «Adapter RAM/ROM» представляет собой память в подключаемых платах (типа видеоадаптера). «Largest executable program size» — это наибольший непрерывный блок доступной для программы обычной памяти, «Largest free upper memory block» — наибольшая доступная для программы область старшей памяти. «MS-DOS is resident in the high memory area» указывает, что MS-DOS работает в первых 64K дополнительной памяти, а не в обычной памяти.

Некоторые программные модули, такие как WIN386, распределяют несколько областей памяти. Команда MEM /MODULE выводит все области, выделенные для конкретной программы, с их размерами и адресами сегментов. Для блоков старшей памяти MEM /MODULE показывает также номер области. В столбце Type показывается, как программа использует конкретную область памяти. В графе «total size,» выводится общий объем памяти, выделенной MS-DOS для программы.

Команда MEMMAKER

Запускает программу MemMaker, которая оптимизирует память компьютера путем перемещения драйверов устройств и резидентных программ в старшую память. Использовать MemMaker можно на машинах с процессором 80386 или 80486 и дополнительной памятью. Не применяйте эту команду во время работы Windows.

Параметр /B выводит MemMaker в черно-белом режиме. Используйте его, если MemMaker некорректно работает на монохромном мониторе.

/BATCH запускает MemMaker в автоматическом режиме. При этом MemMaker сам отвечает на все подсказки по умолчанию. В случае ошибок MemMaker восстанавливает предыдущее содержимое файлов CONFIG.SYS, AUTOEXEC.BAT и (если это требуется) SYSTEM.INI Windows. После завершения работы MemMaker вы можете просмотреть в файле MEMMAKER.STS сообщения о состоянии.

Параметр /SESSION используется исключительно MemMaker в процессе оптимизации.

/SWAP:диск задает буквенную метку и диск, который был загрузочным диском. Задайте после двоеточия букву текущего диска. Этот параметр необходим только в том случае, если буквенная метка диска после запуска компьютера изменилась. В противном случае MemMaker не сможет найти системных файлов. При использовании программ Stacker 2.0, SuperStor или Microsoft DoubleSpace данный параметр указывать не нужно.

Параметр /T запрещает распознавание сетей IBM Token-Ring. Укажите данный параметр, если ваш компьютер включает в себя такую сеть, и при работе с MemMaker у вас возникли проблемы.

/UNDO указывает MemMaker, что последние изменения нужно отменить. Когда MemMaker оптимизирует системную память, она изменяет файлы CONFIG.SYS и AUTOEXEC.BAT (и при необходимости также файл Windows SYSTEM.INI). Если после завершения работы MemMaker ваша система не работает должным образом, или вы не удовлетворены новой конфигурацией памяти, с помощью запуска MemMaker с параметром /UNDO вы можете вернуться к предыдущей конфигурации памяти.

/W:n,m показывает, сколько старшей памяти нужно зарезервировать для буферов трансляции Windows. Для этой цели Windows требуется две области старшей памяти. Первая из них задается размером n, вторая — m. По умолчанию MemMaker не резервирует для Windows старшую память (что эквивалентно /W:0,0).

О загрузке в старшую память драйверов устройств рассказывается в описании команды DEVICEHIGH, а о загрузке программ — в описании LOADHIGH.

Команда MENUCOLOR

Устанавливает для меню запуска цвет фона и текста. Используется только в блоке меню в файле CONFIG.SYS.

Меню запуска — это список пунктов выбора, которые выводятся при запуске компьютера. Это меню определяется специальными командами CONFIG.SYS. Каждый элемент меню соответствует набору команд CONFIG.SYS, который называется блоком конфигурации. Меню запуска позволяет после запуска компьютера выбрать одну из нескольких конфигураций.

Параметр x задает цвет текста меню. Параметр y задает цвет фона (по умолчанию — черный). Допускаются значения x и y от 0 до 15, однако они должны быть различными.

Значения цветов приведены в следующей таблице:

Например, команда menucolor=15, 2 задает белый цвет текста на зеленом фоне. На некоторых дисплеях цвета с 8 по 15 выводятся с мерцанием.

MENUCOLOR — это одна из 6 специальных команд CONFIG.SYS, предназначенных для определения меню запуска с несколькими конфигурациями. См. также команды INCLUDE, MENUITEM, MENUDEFAULT, NUMLOCK, SUBMENU.

Команда MENUDEFAULT

Задает используемый по умолчанию элемент меню запуска и устанавливает, если нужно, значение тайм-аута. Используется только в блоке меню в файле CONFIG.SYS. Если эта команда не задана, MS-DOS выбирает по умолчанию элемент 1.

MENUDEFAULT — это одна из 6 специальных команд CONFIG.SYS, предназначенных для определения меню запуска с несколькими конфигурациями. См. также команды INCLUDE, MENUITEM, MENUCOLOR, NUMLOCK, SUBMENU.

Параметр «имя_блока» задает используемый по умолчанию пункт меню и связанный с ним блок конфигурации, который должен определяться в CONFIG.SYS. Когда MS-DOS выводит меню запуска, используемый по умолчанию пункт меню подсвечивается, а номер его выводится после подсказки «Enter a choice». «Тайм_аут» определяет, сколько секунд должна ждать MS-DOS перед запуском компьютера с конфигурацией по умолчанию. Если это значение не задано, MS-DOS просто ожидает нажатия клавиши ENTER. Вы можете задать значение тайм-аута от 0 до 90 секунд. 0 определяет автоматически выбор конфигурации по умолчанию.

После запуска MS-DOS выводит меню следующего вида (см. пример в описании команды INCLUDE):

MS-DOS 6 Startup Menu
=====================
1. Базовая конфигурация
2. Нормальная конфигурация
3. Специальная конфигурация
Enter a choice: 2 Time remaining: 30

После вывода этого меню MS-DOS ждет 30 секунд. Если не выбран другой пункт, то MS-DOS запускает компьютер с помощью команд в блоке конфигурации, заданном по умолчанию.

Команда MENUITEM

Определяет пункт меню запуска. Используется только в блоке меню в файле CONFIG.SYS. Меню может содержать до 9 пунктов выбора.

MENUITEM — это одна из 6 специальных команд CONFIG.SYS, предназначенных для определения меню запуска с несколькими конфигурациями. См. также команды: INCLUDE, MENUDEFAULT, MENUCOLOR, NUMLOCK, SUBMENU.

Параметр «имя_блока» задает имя соответствующего блока конфигурации, который должен определяться где-либо в файле CONFIG.SYS. Если при запуске выбирается пункт меню, MS-DOS выполняет команды в соответствующем блоке конфигурации, а также команды в начале CONFIG.SYS и все команды в блоках конфигурации с заголовком .

Если MS-DOS не может найти блок с заданным именем, то пункт меню не выводится. Имя блока может включать в себя до 70 символов и содержать большинство печатаемых символов, кроме пробелов, обратной и прямой косой черты, запятой, точки с запятой, знака равенства или квадратных скобок. Параметр «текст_меню» задает текст, который MS-DOS должна выводить для данного пункта меню. Если текст не задается, MS-DOS выводит в качестве элемента меню имя блока. Текст меню может быть длиной до 70 символов и содержать любые символы.

Блок меню — это набор команд определения меню, которые начинаются с заголовка блока (имени блока в квадратных скобках). Для получения меню файл CONFIG.SYS должен содержать блок меню с заголовком блока . Для определения подменю можно использовать команду SUBMENU. Каждое подменю имеет свой собственный блок, который может называться так, как вы хотите. Блок меню должен содержать по крайней мере одну команду MENUITEM или SUBMENU.

MS-DOS выводит пункты меню в том порядке, в котором они включаются в блок меню, и нумерует их автоматически. Первый пункт (элемент) меню всегда имеет номер 1. Всего меню может содержать до 9 пунктов. Для определения большего числа пунктов можно использовать команду SUBMENU.

Следующий блок определяет меню запуска с двумя элементами — Main и Secondary:

При запуске MS-DOS будет выводиться меню вида:

MS-DOS 6 Startup Menu
=====================
1. Main
2. Secondary
Enter a choice: 1

См. также пример в команде INCLUDE.

Примечание: Если ваша система русифицирована, то в нее может быть включен соответствующий набор символов с кодом 866 (Россия).

Если команда KEYB дается без параметров, то MS-DOS выводит текущую схему клавиатуры, соответствующий клавиатуре набор символов и текущий набор символов, используемый клавиатурой и монитором:

Current keyboard code: FR code page: 437

Current CON code page: 437

(Текущий код клавиатуры, кодовая страница,

текущая кодовая страница консоли)

Чтобы переключиться из текущей конфигурации клавиатуры в конфигурацию по умолчанию, нажмите клавиши CTRL+ALT+F1. Для возврата к резидентной в памяти конфигурации клавиатуры нажмите CTRL+ALT+F2. Для переключения в стандартный для некоторых стран «режим пишущей машинки» нажмите CTRL+ALT+F7.

Коды выхода программы Keyb приведены в следующей таблице:

Например, чтобы загрузить французскую клавиатуру (а файл KEYBOARD. SYS находится в каталоге SYS на диске C), дайте команду:

keyb fr,c:\sys\keyboard. sys

Команда LABEL

Создает, изменяет или удаляет метку тома (имя диска). MS-DOS выводит метку тома в листинге каталога. При наличии номера тома выводится также этот номер.

Чтобы MS-DOS вывела текущую метку тома и его номер (если они существуют), а также подсказку для ввода метки или удаления существующей, дайте команду:

Параметр «диск:» задает именуемый диск, «метка» задает новую метку тома. Между диском и меткой указывается двоеточие (:). Например, чтобы пометить диск A, содержащий отчеты за 1993 год, можно ввести label a:reports1993.

Если в команде LABEL задается метка, MS-DOS выводит следующее сообщение:

Volume in drive A is xxxxxxxxxxx

Volume Serial Number is xxxx-xxxx

Volume label (11 characters, ENTER for none)?

(Том в дисководе A — xxxxxxxxxxx,

порядковый номер тома — xxxx-xxxx,

введите метку тома (11 символов) или нажмите ENTER)

Если диск не имеет номера, то он не выводится. Для удаления текущей метки вы можете ввести новую или нажать ENTER (этом случае метка присваиваться не будет). Если диск имеет метку, и вы нажали ENTER, MS-DOS выводит сообщение:

Delete current volume label (Y/N)?

(Удалить текущую метку (Да/Нет)?)

Метка тома может включать в себя до 11 символов и содержать пробелы и табуляции. Не используйте в метке тома следующие символы:

MS-DOS выводит метку тома буквами в верхнем регистре. Если метка вводится в нижнем регистре, команда LABEL преобразует их в верхний. С диском, созданным с помощью команды SUBST, LABEL не работает.

См. также команды DIR и VOL.

Команда LASTDRIVE

Задает максимальное число дисководов, к которым вы можете обращаться. Используется только в файле CONFIG. SYS. Задаваемое значение представляет последний дисковод, распознаваемый MS-DOS.

Параметр x задает буквенную метку дисковода в диапазоне от A до Z.

Если команда LASTDRIVE не используется, то по умолчанию задается буква, следующая за последней используемой. Например, если используются диски A и C, то значением по умолчанию будет D.

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

Команда LOADFIX

Обеспечивает загрузку программы над первыми 64К обычной памяти и запускает программу.

LOADFIX [диск:][маршрут]имя_файла [параметры_программы]

Параметр [диск:][маршрут] задает диск и каталог программы. Параметр «имя_файла» задает имя файла программы, «параметры_программы» — используемые программой параметры.

Некоторые программы при загрузке программы или ее части в первые 64К оперативной памяти и невозможности успешного выполнения выводят сообщение «Packed file corrupt». Обычно эта ошибка вызывается загрузкой драйверов устройств в старшую память, что приводит к освобождению первых 64К обычной памяти. Используйте в этом случае команду LOADFIX. Лучше всего включить ее в начало команды запуска программы.

Команда LOADHIGH (LH)

Загружает программу в старшую память. Это предоставляет больше обычной памяти для других программ.

Для задания области (областей) памяти, куда нужно загрузить программу, используется синтаксис:

LOADHIGH можно сократить до LH.

Параметр /L:область1[,мин_разм1][;область2[,мин_разм2]. ] задает одну или более областей памяти, в которые требуется загрузить программу. Если указано /L, MS-DOS загружает программу в наибольший свободный блок старшей памяти (UMB) и делает все другие блоки UMB доступными для программы. Параметр /L применяется для загрузки программы в конкретную область (области) памяти или для задания областей, которые она может использовать.

Чтобы загрузить программу в наибольший блок в конкретной области старшей памяти, задайте после параметра /L номер блока. Например, чтобы загрузить программу в наибольший блок конкретной области старшей памяти, задайте после параметра /L номер области. Например, для загрузки программы в наибольший свободный блок в области 2 нужно задать /L:2. (Список свободных областей выводится по команде MEM /F.)

После загрузки по параметру /L программа может использовать только заданную область памяти. Некоторые программы используют более одной области памяти. Для таких программ вы можете задать несколько областей. В этом случае номера блоков разделяются точкой с запятой, например /L:2;3. (Чтобы выяснить характер использования программой памяти, дайте команду MEM /M и задайте в качестве аргумента имя программы.)

LOADHIGH /L обычно загружает программу в UMB в заданной области только если эта область содержит блок UMB большего размера, чем загружаемый объем программы (который равен обычно объему выполняемого файла). Если при выполнении программе требуется больше памяти, чем при загрузке, то чтобы избежать загрузки программы в слишком маленький для нее блок, вы можете использовать параметр «мин_разм». При указании этого значения MS-DOS загружает программу в данную область, только если она содержит UMB, превышающий размер программы и значение «мин_разм».

Параметр /S сжимает при загрузке программы UMB до его минимального размера. Это делает использование памяти наиболее эффективным. Данный параметр обычно задается только программой MemMaker. Применять его можно только в сочетании с параметром /L. Он влияет только на те блоки UMB, для которых задан минимальный размер.

Параметр [диск:][маршрут]имя_файла задает расположение и имя файла, который вы хотите загрузить.

«Параметры» задают необходимую программе информацию командной строки.

О загрузке в старшую память драйверов устройств рассказывается в описании команды DEVICEHIGH, а о программе MemMaker — в описании MEMMAKER.

Для использования команды LOADHIGH в файл CONFIG. SYS необходимо включить команду DOS=UMB. Кроме того, перед загрузкой программы в старшую память нужно установить администратор старшей памяти. В MS-DOS предусмотрена программа EMM386.EXE, которая управляет областями старшей памяти на компьютере с процессором 80386 или старше. Для установки EMM386, добавьте в файл CONFIG. SYS команду DEVICE. (Команде DEVICE для EMM386 должна предшествовать команда DEVICE для HIMEM. SYS.)

Когда вы используете команду LOADHIGH для загрузки программы, MS-DOS пытается загрузить ее в старшую память. Если там недостаточно места, то MS-DOS загружает программы в обычную память. (Чтобы определить, какие блоки UMB использует программа, дайте команду MEM /M и укажите имя программы в качестве аргумента.)

Команду LOADHIGH удобно включать в файл AUTOEXEC. BAT. (При использовании MemMaker это происходит автоматически.)

Приведем пример. Следующая команда загружает программу OPERS. EXE в область 1 и дает ей доступ к областям старшей памяти 5 и 6:

lh /L:1;5;6 c:\user\progs\opers. exe

Команда MEM

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

Для вывода состояния используемой и свободной памяти дайте команду MEM без параметров.

Параметр /CLASSIFY перечисляет загруженные в память программы и показывает, сколько используется обычной и старшей памяти. MEM /CLASSIFY подсчитывает также общий объем используемой памяти и выводит наибольшие свободные блоки. /CLASSIFY можно сократить до /C.

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

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

/MODULE имя_модуля показывает, как использует память программный модуль (имя указывается обязательно). Выводит список областей памяти, выделенных данной программе, и их размеры. /MODULE можно сократить до /M.

Параметры /C, /F и /M можно использовать в сочетании с /PAGE, но не друг с другом.

Параметр /PAGE делает паузу после вывода каждого экрана. Чтобы автоматически добавить параметр /PAGE к команде MEM, можно использовать программу DOSKEY. Для этого включите в AUTOEXEC. BAT команды:

doskey mem=mem. exe $* /p

О проверке памяти на диске рассказывается в описании команды CHKDSK.

MS-DOS выводит информацию о дополнительной памяти только при ее установке в системе. Состояния расширенной памяти показывается только при наличии расширенной памяти, согласующейся с версией 4.0 LIM EMS. Состояние старшей памяти MS-DOS выводит только при установке программы работы с блоками UMB (типа EMM386) и включении в CONFIG. SYS команды DOS=UMB. При выполнении Windows версии 3.0 состояние старшей памяти не выводится.

В выводимой командой MEM информации «Adapter RAM/ROM» представляет собой память в подключаемых платах (типа видеоадаптера). «Largest executable program size» — это наибольший непрерывный блок доступной для программы обычной памяти, «Largest free upper memory block» — наибольшая доступная для программы область старшей памяти. «MS-DOS is resident in the high memory area» указывает, что MS-DOS работает в первых 64K дополнительной памяти, а не в обычной памяти.

Некоторые программные модули, такие как WIN386, распределяют несколько областей памяти. Команда MEM /MODULE выводит все области, выделенные для конкретной программы, с их размерами и адресами сегментов. Для блоков старшей памяти MEM /MODULE показывает также номер области. В столбце Type показывается, как программа использует конкретную область памяти. В графе «total size,» выводится общий объем памяти, выделенной MS-DOS для программы.

Команда MEMMAKER

Запускает программу MemMaker, которая оптимизирует память компьютера путем перемещения драйверов устройств и резидентных программ в старшую память. Использовать MemMaker можно на машинах с процессором 80386 или 80486 и дополнительной памятью. Не применяйте эту команду во время работы Windows.

Параметр /B выводит MemMaker в черно-белом режиме. Используйте его, если MemMaker некорректно работает на монохромном мониторе.

/BATCH запускает MemMaker в автоматическом режиме. При этом MemMaker сам отвечает на все подсказки по умолчанию. В случае ошибок MemMaker восстанавливает предыдущее содержимое файлов CONFIG. SYS, AUTOEXEC. BAT и (если это требуется) SYSTEM. INI Windows. После завершения работы MemMaker вы можете просмотреть в файле MEMMAKER. STS сообщения о состоянии.

Параметр /SESSION используется исключительно MemMaker в процессе оптимизации.

/SWAP:диск задает буквенную метку и диск, который был загрузочным диском. Задайте после двоеточия букву текущего диска. Этот параметр необходим только в том случае, если буквенная метка диска после запуска компьютера изменилась. В противном случае MemMaker не сможет найти системных файлов. При использовании программ Stacker 2.0, SuperStor или Microsoft DoubleSpace данный параметр указывать не нужно.

Параметр /T запрещает распознавание сетей IBM Token-Ring. Укажите данный параметр, если ваш компьютер включает в себя такую сеть, и при работе с MemMaker у вас возникли проблемы.

/UNDO указывает MemMaker, что последние изменения нужно отменить. Когда MemMaker оптимизирует системную память, она изменяет файлы CONFIG. SYS и AUTOEXEC. BAT (и при необходимости также файл Windows SYSTEM. INI). Если после завершения работы MemMaker ваша система не работает должным образом, или вы не удовлетворены новой конфигурацией памяти, с помощью запуска MemMaker с параметром /UNDO вы можете вернуться к предыдущей конфигурации памяти.

/W:n, m показывает, сколько старшей памяти нужно зарезервировать для буферов трансляции Windows. Для этой цели Windows требуется две области старшей памяти. Первая из них задается размером n, вторая — m. По умолчанию MemMaker не резервирует для Windows старшую память (что эквивалентно /W:0,0).

О загрузке в старшую память драйверов устройств рассказывается в описании команды DEVICEHIGH, а о загрузке программ — в описании LOADHIGH.

Команда MENUCOLOR

Устанавливает для меню запуска цвет фона и текста. Используется только в блоке меню в файле CONFIG. SYS.

Меню запуска — это список пунктов выбора, которые выводятся при запуске компьютера. Это меню определяется специальными командами CONFIG. SYS. Каждый элемент меню соответствует набору команд CONFIG. SYS, который называется блоком конфигурации. Меню запуска позволяет после запуска компьютера выбрать одну из нескольких конфигураций.

Параметр x задает цвет текста меню. Параметр y задает цвет фона (по умолчанию — черный). Допускаются значения x и y от 0 до 15, однако они должны быть различными.

Значения цветов приведены в следующей таблице:

Модульная структура MS DOS

МОДУЛЬНАЯ СТРУКТУРА MS DOS

Модули операционной системы MS DOS

Понятие модуля широко используется применительно как к аппаратной, так и к программ­ной части компьютера.

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

Структуру операционной системы MS DOS образуют модули (рис. 9.9):

Рис. 9.9. Модульная структура операционной системы MS DOS

• BIOS ( Basic Input / Output System ) — базовая система ввода-вывода;

• модуль расширения — ЕМ BIOS ( Extension Module BIOS ) в виде файла с именем IO . SYS ;

• базовый модуль (ВМ — Basic Module ) дисковой операционной системы (БДОС) в виде файла с именем MSDOS . SYS ;

• командный процессор или интерпретатор команд ( CI — Command Interpreter ) в виде файла с именем COMMAND . COM ;

• внешние команды и драйверы, утилиты — файлы с расширением . COM , . EXE , . SYS ;

• системный загрузчик ( SB — System Bootstrap );

• инструментальные средства DOS : система программирования MS DOS QBASIC ; текс­товый редактор MS DOS EDITOR , обеспечивающий подготовку текстовых докумен­тов и текстов исходных программ; отладчик DEBUG для тестирования и отлаживания исполняемых файлов.

BIOS , модуль расширения ЕМ BIOS , загружаемые (внешние) драйверы, системный за­грузчик составляют машинозависимую часть операционной системы.

Базовый модуль DOS , командный процессор, внешние команды, инструментальные средства составляют машинонезависимую часть операционной системы.

Операционная система MS DOS , кроме модуля BIOS , хранится на внешнем носителе, обычно на жестком, реже на гибком диске. После включения компьютера в сеть начинается процесс перезаписи операционной системы MS DOS с диска в оперативную память. Этот процесс получил название загрузка операционной системы. Алгоритм загруз­ки будет рассмотрен далее.

О системе прерываний

Основным механизмом функционирования MS DOS является система прерываний.

Прерывания — это процедуры, которые компьютер вызывает для выпол­нения определенной задачи.

Существуют аппаратные, логические и программные прерывания.

Аппаратные прерывания инициируются аппаратурой, например сигналом от принтера, нажатием клавиши на клавиатуре, сигналом от таймера и другими причинами.

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

Программные прерывания инициируются программами, т.е. появляются, когда одна программа хочет получить сервис со стороны другой программы, например до­ступ к определенным аппаратным средствам.

Каждое прерывание имеет уникальный номер, и с ним связана определенная подпро­грамма. Когда вызывается прерывание, процессор оставляет свою работу и выполняет пре­рывание. Затем загружается адрес программы обработки прерывания и ей передается управление. После окончания ее работы управление передается основной программе, кото­рая была прервана. Аппаратные прерывания относятся к прерываниям низшего уровня, им присвоены младшие номера, и обслуживает их базовая система ввода-вывода. Логические и программные прерывания относят к верхнему уровню, они имеют большие номера, и их об­служивает в основном базовый модуль DOS .

Функции и назначение базовой системы ввода-вывода BIOS

Базовая система ввода-вывода BIOS —самый близкий к аппаратуре компо­нент DOS . BIOS находится в постоянной памяти, которая входит в комплект поставки пер­сонального компьютера. Тип операционной системы может изменяться, a BIOS остается постоянным. Поэтому BIOS , являясь неизменяемой частью персонального компьютера, с одной стороны, может рассматриваться как компонент аппаратной части, а с другой сторо­ны, как компонент любой операционной системы, в том числе и MS DOS . Строго говоря, BIOS не входит в состав MS DOS , но, учитывая, что без этого модуля функционирование операционной системы невозможно, будем считать его компонентом ее структуры.

Основная функция BIOS реализуется в процессе нормальной работы персонального компьютера. Это — управление стандартными внешними (периферийными) устройствами, входящими в состав комплекта персонального компьютера конкретной модели, а именно: дисплеем, клавиатурой, дисководами, принтером, таймером. Выделение BIOS в отдельный аппаратно-программный модуль позволяет обеспечить независимость программного обес­печения от специфики конкретной модели персонального компьютера.

Вспомогательные функции BIOS реализуются при включении персонального компью­тера на этапе загрузки и состоят в следующем:

• поиск сначала на гибком, а затем на жестком диске программы-загрузчика операцион­ной системы и загрузка с диска в оперативную память;

• тестирование аппаратной части, в том числе и оперативной памяти, а при обнаруже­нии неисправности индикация сообщения;

• инициализация векторов прерываний нижнего уровня.

BIOS содержит: специальные программы (драйверы) по управлению работой стан­дартными внешними устройствами; тестовые программы для контроля работоспособности аппаратуры; программу начальной загрузки операционной системы.

Драйвер — программа, расширяющая возможности операционной сис­темы.

Драйвер устройства — программа операционной системы для управления работой периферийными устройствами: дисководами, дисплеем, клавиату­рой, принтером, манипулятором «мышь» и пр.

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

Функции драйвера устройства состоят в следующем:

• прием и обработка запроса (управляющего сигнала), который поступает к данному пе­риферийному устройству;

• преобразование запроса о необходимости связи с этим устройством в серию команд управления им, с учетом всех деталей конструкции и особенностей его работы;

• обработка сигнала прерывания, который поступает от соответствующего этому драй­веру периферийного устройства.

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

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

Драйверы могут быть либо стандартными, либо загружаемыми.

Стандартные (внутренние) драйверы — это программы, которые на­ходятся внутри BIOS или его модуля расширения ЕМ BIOS и служат для управления внешними устройствами, входящими в стандартный комплект поставки персонального ком­пьютера. Эти драйверы подключаются к системе автоматически после перехода компьюте­ра в нормальное рабочее состояние.

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

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

Функции и назначение модуля расширения базовой системы ввода-вывода

Модуль расширения базовой системы ввода-вывода ЕМ BIOS придает гибкость операционной системе при обращении к внешним устройствам, а при необходи­мости и перекрывает (блокирует) функции постоянного модуля BIOS . Он хранится на диске в виде файла IO . SYS после главного каталога в заранее выделенном фиксированном месте. Объем этого файла небольшой, например, для MS DOS версии 6.22 он равен 40 Кбайт.

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

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

Запомните! Подключая новое внешнее устройство, следует по­заботиться о наличии соответствующего драйвера. Установка нового драйвера должна быть сделана в файле конфигурации CONFIG . SYS .

Основная функция модуля расширения в процессе нормальной работы компьютера — это увеличение возможностей BIOS .

Функции модуля расширения на этапе загрузки состоят в следующем:

• определение состояния оборудования;

• конфигурирование MS DOS по указаниям в файле CONFIG . SYS ;

• инициализация и переустановка некоторых векторов прерываний нижнего уровня;

• запуск базового модуля DOS.

Функции и назначение базового модуля дисковой операционной системы

Базовый модуль располагается в виде файла MSDOS . SYS на системном диске в спе­циально выделенном для него месте вслед за файлом модуля расширения IO . SYS . Объем файла MSDOS . SYS для версии 6.22 — 38 Кбайт. Базовый модуль не имеет жесткой привяз­ки к аппаратной части и при необходимости может быть заменен на другой файл.

Основная функция базового модуля в процессе нормальной работы компьютера — уп­равление ресурсами компьютера, файловой системой на дисковом пространстве и управле­ние работой программ при помощи системы прерываний.

Функциями базового модуля на этапе загрузки являются: считывание в память и за­пуск командного процессора, инициализация векторов прерываний верхнего уровня.

Пример 9.14. Программы, входящие в структуру базового модуля DOS , должны обес­печивать:

• создание файла: присвоение имени, расположение его на диске, определение заня­того им объема дискового пространства;

• наличие сведений о занятых и свободных участках дискового пространства;

• управление областями оперативной памяти и др.

Функции и назначение командного процессора

Командный процессор, иногда называемый процессором консольных команд, пред­назначен для поддержки пользовательского интерфейса DOS . Он представляет собой обыч­ный файл COMMAND . COM и располагается на системном диске в любом месте пространства, выделенного под файлы. Так, для MS DOS версии 6.22 объем COM ­ MAND . COM равен 55 Кбайтам.

Командный процессор состоит из двух модулей — резидентного и транзитного. Ре­зидентный модуль хранится в оперативной памяти постоянно после загрузки опера­ционной системы. Транзитный модуль может вытесняться из оперативной памяти на диск прикладной программой, если ей для работы не хватает памяти. После окончания работы такой программы транзитный модуль вновь восстанавливается на прежнем месте оперативной памяти путем считывания его с диска. Транзитный модуль содержит исполни­тель внутренних команд и загрузчик программ в оперативную память для выполнения.

Взаимодействие с командным процессором осуществляется при помощи команд. Под командой понимается указание на выполнение некоторого действия. Команды бывают двух типов: резидентные (внутренние) и транзитные (внешние). Резидентные команды входят в состав самого командного процессора. Транзитные команды являются файлами типа ЕХЕ или СОМ, входящими в состав операционной системы DOS и хранящи­мися в обычном каталоге, как правило, с именем DOS .

Внимание! Прежде чем воспользоваться внешней командой, надо удостовериться в ее наличии на диске, а затем только ввес­ти ее в командную строку.

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

▪ приеме и анализе команд, введенных с клавиатуры или из командного файла;

• выполнении внутренних команд;

• загрузке программ в память для выполнения;

• обработке прерываний по завершении задачи.

Основная функция командного процессора на этапе загрузки — это выполнение файла автонастройки AUTOEXEC . BAT .

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

• в случае резидентной команды он сразу приступает к ее выполнению;

• в случае транзитной команды или любой другой программы он загружает ее в опера­тивную память, подключая для этого два других модуля операционной системы: базо­вый модуль БДОС и модуль расширения BIOS , и передает этой программе иликоманде управление.

После окончания работы введенной команды (программы) управление вновь возвра­щается командному процессору.

Загрузчик BOOT RECORD (модуль начальной загрузки) всегда размещается на диске в нулевом секторе и занимает объем 512 байт. Основное назначение этой небольшой про­граммы состоит в поиске и перезаписи (загрузке) с диска в оперативную память двух фай­лов — IO . SYS и MSDOS . SYS . Поиск этих модулей и их загрузка в оперативную память осуществляются в определенном порядке, поэтому на диске и в оперативной памяти они за­нимают фиксированное место и следуют один за другим. Если блок начальной загрузки не обнаружит этих модулей на диске, то он выдает соответствующее сообщение и работа ком­пьютера приостанавливается. Кроме того, функцией загрузчика является запуск модуля рас­ширения BIOS .

Как различать утилиты, внешние команды и драйверы

Утилиты, внешние команды и драйверы представляют собой программы, хранящиеся во многих случаях в каталоге системного диска в виде файлов типа . COM , . EXE , . SYS . Внеш­нее различие между ними весьма условное, и связывают его с интерфейсом взаимодействия с пользователем.

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

Внешние драйверы, как правило, выполняются без диалога и поставляются от­дельно от MS DOS либо совместно с внешним устройством, либо самостоятельно.

Утилиты — обслуживающие программы, которые предоставляют пользователю сервисные услуги. Они, как правило, имеют полноэкранный, организованный в виде меню интерфейс взаимодействия с пользователем. Реже интерфейс организован в виде запросов.

РАЗМЕЩЕНИЕ MS DOS НА ДИСКЕ И В ОПЕРАТИВНОЙ ПАМЯТИ

Размещение операционной системы на диске

Операционная система MS DOS постоянно хранится на жестком диске. Помимо этого должна существовать ее резервная копия на гибком диске, называемом системным.

Системный диск — диск, где хранятся основные модули операционной системы и сервисные программы (команды), расширяющие ее возмож­ности.

На рис. 9.10 показана структура 3,5″ системного диска, состоящего из 2847 секторов, где выделены:

• системная область объемом 77 Кбайт для двух модулей IO . SYS и MSDOS . SYS ;

• область пользователя, где будет находиться файл COMMAND . COM — 55 Кбайт.

Рис. 9.10. Структура системного гибкого диска (3,5″) с операционной системой MS DOS

На гибком диске 0-я и 1-я дорожки отведены для размещения модулей операционной системы и организации файловой структуры диска:

• 0-й сектор занимает загрузчик;

• 18 секторов (с 1-го по 18-й) отведены для основной и дублирующей таблиц размеще­ния файлов FAT ( File Allocations Table ), в которых хранятся номера кластеров, выде­ленных под каждый файл;

• 14 секторов (с 19-го по 32-й) занимает главный каталог;

• начиная с 33-го сектора, располагаются два модуля операционной системы IO . SYS и MSDOS . SYS ;

• командный процессор COMMAND . COM наряду с другими программами располагает­ся в области пользователя.

Внимание! Структура диска с прикладными программами (без операционной системы) полностью совпадает по 32-й сектор включительно со структурой системного диска (рис. 9.10). Начи­ная с 33-го сектора, располагается область пользователя, где хра­нятся прикладные программы.

Роль FAT -таблицы размещения файлов

Файл размещается на диске по кластерам, которые пронумерованы. Эти кластеры могут на­ходиться в разных местах диска, и соответственно файл будет храниться на диске в виде от­дельных фрагментов в свободных на момент записи на диск кластерах. В этом случае говорят, что файл фрагментирован. Желательно, чтобы кластеры, выделенные для хранения файла, шли подряд, так как это позволяет сократить время его поиска. Однако это возможно сделать только с помощью специальной программы, и подобная процедура полу­чила название дефрагментации файла. И в том, и в другом случае для организации доступа к файлу операционная система должна иметь сведения о номерах кластеров, где размещается каждый файл. В этом ей помогает FAT -таблица.

FAT -таблица предназначена для размещения и поиска файлов на диске. Она хранится на диске в определенном месте (см. рис. 9.10). Учитывая ее крайне важную роль в организа­ции файловой системы, предусмотрено хранение и ее дубля, т.е. на диске хранятся две оди­наковые таблицы — основная и дублирующая. При повреждении основной таблицы можно восстановить информацию о размещении файлов с помощью дублирующей. Рассмотрим ос­новную идею, заложенную в основу построения и использования FAT -таблицы, обратив­шись к рис. 9.11. Следует заметить, что для ускорения доступа к таблице производится ее предварительная загрузка в оперативную память.

Количество ячеек FAT -таблицы определяется количеством кластеров на диске. Каж­дая ячейка содержит номер кластера.

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

В последней клетке таблицы, завершающей данную цепочку, должен находиться код FFF или FFFF для указания ее конца. Так определяется цепочка кластеров, где хранится файл.

Рис. 9.11. Организация доступа к файлу с помощью FAT -таблицы

Размещение операционной системы MS DOS в оперативной памяти

Распределение пространства оперативной памяти было показано в гл.4 на рис. 4.7, 4.8, где непосредственно адресуемая память определяется объемом 1024 Кбайт.

Рассмотрим это пространство, обратившись к рис. 9.12 с позиций расположения в нем операционной системы.

Рис. 9.12. Распределение пространства оперативной памяти после загрузки операционной системы

Приблизительно 110 Кбайт, начиная с младших адресов, займет основная часть ядра операционной системы. В области старших адресов расположится транзитная часть команд­ного процессора, которая автоматически удаляется при нехватке памяти для прикладной программы. При объеме 640 Кбайт для прикладных программ приблизительно выделяется 530 Кбайт.

ЗАГРУЗКА MS DOS В ОПЕРАТИВНУЮ ПАМЯТЬ С ДИСКА

Алгоритм загрузки операционной системы

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

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

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

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

Начинается считывание в оперативную память 0-го сектора 0-й стороны диска, в кото­ром находится загрузчик ( BOOT RECORD ). Управление передается загрузчику, который проверяет наличие на системном диске модуля расширения IO . SYS и базового модуля MSDOS . SYS . Если они находятся в отведенном для них месте (см. рис. 9.10), то он загружа­ет их в оперативную память, в противном случае будет выдано сообщение об их отсутст­вии. В этом случае рекомендуется произвести повторную загрузку. Сигнал повторной загрузки передает управление постоянному модулю BIOS , который снова переписывает с диска в оперативную память блок начальной загрузки и т.д.

Запомните! Для повторной загрузки операцион­ной системы в память нажать одновременно клавиши Ctrl > ALT > Del >.

После успешно выполненной загрузки в оперативную память модуля расширения IO . SYS и базового модуля MSDOS . SYS загружается командный процессор СОМ- MAND . COM и обрабатывается файл конфигурации CONFIG . SYS , который содержит ко­манды подключения необходимых драйверов. Этот файл может отсутствовать, если вас устраивает базовый вариант операционной системы.

Затем выполняется обработка командного файла AUTOEXEC . BAT . С помощью этого файла вы можете произвести настройку параметров операционной среды. Например, со­здать виртуальный диск, обеспечить смену режимов печати, загрузить вспомогательные программы и т.д.

Внимание! Файлы с расширением .ВАТ играют при работе в системной среде особую роль. Они содержат совокупность ко­манд операционной системы или имен исполняемых файлов. После запуска файла с расширением .ВАТ все записанные в нем команды выполняются автоматически одна за другой.

Файл со стандартным именем AUTOEXEC . BAT отличается от других файлов типа .ВАТ тем, что выполнение помещенных в него команд начинается автоматически сразу после загрузки операционной системы.

В случае отсутствия файла AUTOEXEC . BAT вам будет предложено ввести дату и время:

если вы нажмете клавишу ввода, то в качестве текущих даты и времени будут приня­ты так называемые системные параметры, которые определяет компьютерный таймер;

если вы хотите сделать переустановки системных даты и времени, то в ответ на при­глашение введите значения в одной из предусмотренных форм, например:

10-25-1997 (месяц день год)

После окончания работы файла AUTOEXEC . BAT , а также если этот файл не обнару­жен, на экран дисплея будет выдано приглашение системного диска, например С:>. Это яв­ляется свидетельством нормального завершения процесса загрузки, и вы можете приступить к работе, введя имя прикладной программы или команду операционной системы.

Примечание. Файлы CONFIG . SYS и AUTOEXEC . BAT могут отсутствовать. В этом случае параметры операционной среды будут установлены по умолчанию.

Запомните! На жестком диске необходимо обеспечить постоян­ное хранение операционной системы.

При включении компьютера все дисководы для гибких дисков должны быть открыты.

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

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

Алгоритм загрузки операционной системы

Базовая система ввода-вывода BIOS

Базовый модуль дисковой опера­ционной системы MSDOS . SYS

Загрузчик ( BOOT RECORD )

Загрузка операционной системы

Запись в каталоге

Иерархическая структура каталога

Каталог текущий (активный)

Команды для работы с дисками

Команды для работы с каталогами

Команды для работы с файлами

Модуль расширения IO . SYS

Модульная структура операцион­ной системы

Повторная загрузка операционной системы

Полное имя файла

аппаратные логические программные

Приглашение операционной сис­темы

Специальные атрибуты файла

Спецификация файла: сокращенная форма полная форма

Таблица размещения файлов ( FAT -таблица)

Файл конфигурации CONFIG . SYS

Файловая структура диска

Шаблон имени файла

ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ

1. Роль и назначение операционной системы.

2. Что такое файл и каковы его характеристики?

3. Как образуется имя файла и полное имя файла?

4. Способы обращения к группе файлов. Когда используется спецификация файла?

5. Что такое каталог и каково его назначение в файловой системе?

6. Роль файловой системы.

7. Что входит в понятие файловой структуры диска?

8. Что такое главный каталог, родительский каталог, подкаталог? Примеры.

9. Для чего вводится понятие пути и о чем сообщает приглашение операционной сис­темы?

10. Как операционная система различает, откуда ей вести поиск файла, от главного ката­лога или от текущего, и что означает запись C : T 1 T 2 K 1 AST . TXT ?

11. Из каких основных модулей состоит операционная система MS DOS ?

12. Как располагается операционная система MS DOS на диске?

13. Как располагается операционная система MS DOS в оперативной памяти?

14. Как осуществить повторную загрузку операционной системы в оперативную память?

15. Расскажите об алгоритме загрузки операционной системы MS DOS в оперативную па­мять.

16. В чем состоят функции постоянного модуля BIOS ?

17. В чем состоят функции модуля расширения IO . SYS ?

18. В чем состоят функции базового модуля дисковой операционной системы MSDOS . SYS ?

19. В чем состоят функции командного процессора COMMAND . COM ?

«Распределение оперативной памяти в современных ОС для ПК»

«Распределение оперативной памяти в современных ОС для ПК»

1.Распределение оперативной памяти в MS-DOS________________________________ 3

2.Распределение оперативной памяти в Microsoft Windows 95/98__________________ 6

3.Распределение оперативной памяти в Microsoft Windows NT____________________ 8

3.Контрольные вопросы и задачи____________________________________________ 12

3.1.Вопросы для проверки____________________________________________________________ 12

Введение

Первый вопрос, который хочется задать, — это какие ОС следует относить к со­временным, а какие — нет? Стоит ли в наше время изучать такую “несовремен­ную” ОС, как MS-DOS?[1] С нашей точки зрения, прежде всего к современным ОС следует отнести те, что используют аппаратные возможности микропроцес­соров, специально заложенные для организации высокопроизводительных и на­дежных вычислений. Однако эти ОС, как правило, очень сложны и громоздки. Они занимают большое дисковое пространство, требуют и большого объема опе­ративной памяти. Поэтому для решения некоторого класса задач вполне подхо­дят и системы, использующие микропроцессоры в так называемом реальном ре­жиме работы (см. об этом в следующей главе).

В последние годы можно встретить студентов, обучающихся специальностям, непосредственно связанным с вычислительной техникой, которые совсем не знают DOS-систем. Скорее всего, это является доказательством того, что такие ОС уже не являются современными. Однако достаточно часто для обслуживания компьютера необходимо выполнить простейшие программы — утилиты. Эт1 программы были созданы для DOS, они не требуют больших ресурсов, для их функционирования достаточно запустить MS-DOS или аналогичную простую ОС. Однако без выполнения этих программ невозможно порой установить или за­грузить иные ОС (хоть и современные, но очень сложные и громоздкие). Поэто­му мы считаем правильным хотя бы первичное, пусть не очень глубокое озна­комление с MS-DOS.


1.Распределение оперативной памяти в MS-DOS

Как известно, MS-DOS — это однопрограммная ОС. В ней, конечно, можно орга­низовать запуск резидентных или TSR-задач2, но в целом она предназначена для выполнения только одного вычислительного процесса. Поэтому распределение памяти в ней построено по самой простой схеме, которую мы уже рассматривали в разделе “Простое непрерывное распределение и распределение с перекрытием (оверлейные структуры)”. Здесь мы лишь уточним некоторые характерные детали. В IBM PC использовался 16-разрядный микропроцессор 18088, который за счет введения сегментного способа адресации позволял адресоваться к памяти объе­мом до 1 Мбайт. В последующих ПК (IBM PC AT, AT386 и др.) было приня­то решение поддерживать совместимость с первыми, поэтому при работе с DOS прежде всего рассматривают первый мегабайт. Вся эта память разделялась на не­сколько областей, что проиллюстрировано на рис.1. На этом рисунке изобра­жено, что памяти может быть и больше, чем 1 Мбайт, но более подробное рас­смотрение этого вопроса мы здесь опустим, отослав желающих изучить данную тему глубже к монографии [2].

Если не вдаваться в детали, можно сказать, что в состав MS-DOS входят следую­щие основные компоненты:

Базовая подсистема ввода/вывода — BIOS (base input-output system), вклю­чающая в себя помимо программы тестирования ПК (POST) обработчики прерываний (драйверы), расположенные в постоянном запоминающем уст­ройстве. В конечном итоге, почти все остальные модули MS-DOS обращают­ся к BIOS. Если и не напрямую, то через модули более высокого уровня иерархии.

0000 – 003FF 1 Кб

Таблица векторов прерываний

Глобальные переменные BIOS

Глобальные переменные DOS

Модуль MSDOS. SYS:

— буферы, рабочие и управляющие области;

— обработка программных прерываний;

— системная программа загрузки;

— программа загрузки транзитной части

Область памяти для выполнения программ пользователя и утилит MS-DOS. В эту область попадают программы типа *.COM и *.EXE

Область расположения стека исполняющей программы

Транзитная часть командного процессора

Видеопамять. Область и размер используемого видеобуфера зависит от используемого режима

Зарезервировано для расширения BIOS

Область ROM BIOS

High Memory Area

При наличии драйвера HIMEM. SYS здесь можно расположить основные системные файлы MS-DOS, освобождая тем самым область основной памяти в первом мегабайте

В ранних версиях здесь располагались глобальные переменные интерпретатора Бейсик

Размер этой области зависит от версии MS-DOS и, главное, от конфигурационного файла CONFIG. SYS

Объем этой области сильно зависит от объема, занимаемого ядром ОС. Программа может перекрывать транзитную область

Стек «растет» снизу вверх

Собственно командный интерпретатор

При работе в текстовом режиме область памяти A0000 – B0000 свободна и может быть использована в программе

Обычно объем этой области равен 32 Кб, но может достигать и 128 Кб, занимая и младшие адреса

Может использоваться при наличии специальных драйверов. Используются спецификации XMS и EMS

Рис.1. Распределение оперативной памяти в MS-DOS

Модуль расширения BIOS — файл IO. SYS (в других DOS-системах он может называться иначе, например, ).

Основной, базовый модуль обработки прерываний DOS — файл MSDOS. SYS. Именно этот модуль в основном реализует работу с файловой системой. (В PC-DOS аналогичный по значению файл называется ).

Командный процессор (интерпретатор команд) — файл .

Утилиты и драйверы, расширяющие возможности системы.

Программа загрузки MS-DOS — загрузочная запись (boot record), располо­женная на дискете (подробнее о ней и о других загрузчиках см. главу 4).

Вся память в соответствии с архитектурой IBM PC условно может быть разбита на три части.

В самых младших адресах памяти (первые 1024 ячейки) размещается таблица векторов прерываний (см. раздел «Система прерываний 32-разрядных микропро­цессоров 180×86», глава 3). Это связано с аппаратной реализацией процессора 18088, на котором была реализована ПК. В последующих процессорах (начиная с i80286) адрес таблицы прерываний определяется через содержимое соответст­вующего регистра, но для обеспечения полной совместимости с первым процес­сором при включении или аппаратном сбросе в этот регистр заносятся нули. При желании, однако, в случае использования современных микропроцессоров 180×86 можно разместить векторы прерываний и в другой области. Вторая часть памяти отводится для размещения программных модулей самой MS-DOS и для программ пользователя. Рассмотрим их размещение чуть ниже. Здесь, однако, заметим, что эта область памяти называется Conventional Memory (основная, стандартная память).

Наконец, третья часть адресного пространства отведена для постоянных запо­минающих устройств и функционирования некоторых устройств ввода/вывода. Эта область памяти получила название UMA (upper memory areas — область верхней памяти).

В младших адресах основной памяти размещается то, что можно назвать ядром этой ОС — системные переменные, основные программные модули, блоки дан­ных для буферирования операций ввода/вывода. Для управления устройствами, драйверы которых не входят в базовую подсистему ввода/вывода, загружают­ся так называемые загружаемые (или инсталлируемые) драйверы. Перечень ин­сталлируемых драйверов определяется специальным конфигурационным файлом CONFIG. SYS. После загрузки расширения BIOS — файла IO. SYS — последний (за­грузив модуль MSDOS. SYS) считывает файл CONFIG. SYS и уже в соответствии с ним подгружает в память необходимые драйверы. Кстати, в конфигурацион­ном файле CONFIG. SYS могут иметься и операторы, указывающие на количест­во буферов, отводимых для ускорения операций ввода/вывода, и на количество файлов, которые могут обрабатываться (для работы с файлами необходимо заре­зервировать место в памяти для хранения управляющих структур, с помощью которых выполняются операции с записями файла). В случае использования мик­ропроцессоров 180×86 и наличия в памяти драйвера HIMEM. SYS модули IO. SYS и MSDOS. SYS могут быть размещены за пределами первого мегабайта в области, которая получила название НМЛ (high memory area).

Память с адресами, большими, чем l0FFFFh, может быть использована в DOS-программах при выполнении их на микропроцессорах, имеющих такую возмож­ность. Так, например, микропроцессор i80286 имел 24-разрядную шину адреса, а i80386 — уже 32-разрядную шину адреса. Но для этого с помощью специаль­ных драйверов необходимо переключать процессор в другой режим работы, при котором он сможет использовать адреса выше l0FFFFh. Широкое распростране­ние получили две основные спецификации: XMS (extended memory specification) и EMS (expanded memory specification). Поскольку основные утилиты, необходимые для обслуживания ПК, как правило, не используют эти спецификации, мы не будем здесь их рассматривать.

Остальные программные модули MS-DOS (в принципе, большинство из них яв­ляется утилитами) оформлены как обычные исполняемые файлы. В основном они являются транзитными модулями, то есть загружаются в память только на время своей работы, хотя среди них имеются и TSR-программы. Для того чтобы предоставить больше памяти программам пользователя, в MS-DOS применено то же решение, что и во многих других простейших ОС — командный процессор сделан состоящим из двух частей. Первая часть явля­ется резидентной, она размещается в области ядра. Вторая часть — транзитная; она размещается в области старших адресов раздела памяти, выделяемой для программ пользователя. И если программа пользователя перекрывает собой об­ласть, в которой была расположена транзитная часть командного процессора, то последний при необходимости восстанавливает в памяти свою транзитную часть, поскольку после выполнения программы она возвращает управление резидент­ной части .

Поскольку размер основной памяти (conventional memory) относительно неболь­шой, то очень часто системы программирования реализуют оверлейные структу­ры. Для этого в MS-DOS есть специальные вызовы.

2.Распределение оперативной памяти в Microsoft Windows 95/98

С точки зрения базовой архитектуры ОС Windows 95/98 они обе являются 32-разрядными, многопотоковыми ОС с вытесняющей многозадачностью. Основ­ной пользовательский интерфейс этих ОС — графический. Для своей загрузки они используют операционную систему MS-DOS 7.0 (MS-DOS 98), и в случае если в файле MSDOS. SYS в секции [Options] прописано BootGUI = 0, то процессор работает в обычном реальном режиме (см. следующий раздел). Распределение памяти в MS-DOS 7.O. такое же, как и в предыдущих версиях DOS. Однако при загрузке GUI-интерфейса перед загрузкой ядра Win­dows 95/98 процессор переключается в защищенный режим работы и начинает распределять память уже с помощью страничного механизма. Использование так называемой плоской модели памяти, при которой все возмож­ные сегменты, которые может использовать программист, совпадают друг с дру­гом и имеют максимально возможный размер, определяемый системными согла­шениями данной ОС, приводит к тому, что с точки зрения программиста память получается неструктурированной. За счет представления адреса как пары (Р, i) память можно трактовать и как двумерную, то есть «плоскую», но при этом ее можно трактовать и как линейную, и это существенно облегчает создание сис­темного программного обеспечения и прикладных программ с помощью соот­ветствующих систем программирования.

Таким образом, в системе фактически действует только страничный механизм преобразования виртуальных адресов в физические. Программы используют клас­сическую «small» (малую) модель памяти [6]. Каждая прикладная программа определяется 32-битными адресами, в которых сегмент кода имеет то же значе­ние, что и сегменты данных. Единственный сегмент программы отображается не­посредственно в область виртуального линейного адресного пространства, который, в свою очередь, состоит из 4 килобайтных страниц. Каждая страница может располагаться где угодно в оперативной памяти (естественно, в том месте, куда ее разместит диспетчер памяти, который сам находится в невыгружаемой облас­ти) или может быть перемещена на диск, если не запрещено использовать стра­ничный файл.

Младшие адреса виртуального адресного пространства совместно используются всеми процессами. Это сделано для обеспечения совместимости с драйверами устройств реального режима, резидентными программами и некоторыми 16-раз­рядными программами Windows. Безусловно, это плохое решение с точки зре­ния надежности, поскольку оно приводит к тому, что любой процесс может непреднамеренно (или же, наоборот, специально) испортить компоненты, нахо­дящиеся в этих адресах.

В Windows 95/98 каждая 32-разрядная прикладная программа выполняется в сво­ем собственном адресном пространстве, но все они используют совместно один и тот же 32-разрядный системный код. Доступ к чужим адресным пространствам в принципе возможен. Другими словами, виртуальные адресные пространства не используют всех аппаратных средств защиты, заложенных в микропроцессор. В результате неправильно написанная 32-разрядная прикладная программа мо­жет привести к аварийному сбою всей системы. Все 16-битовые прикладные программы Windows разделяют общее адресное пространство, поэтому они так же уязвимы друг перед другом, как и в среде Windows 3.X.

Системный код Windows 95 размещается выше границы 2 Гбайт. В пространстве с отметками 2 и 3 Гбайт находятся системные библиотеки DLL, используемые несколькими программами. Заметим, что в 32-битовых микропроцессорах се­мейства i80x86 имеются четыре уровня защиты, именуемые кольцами с номера­ми от 0 до 3. Кольцо с номером 0 является наиболее привилегированным, то есть максимально защищенным. Компоненты системы Windows 95, относящиеся к кольцу 0, отображаются на виртуальное адресное пространство между 3 и 4 Гбайт. К этим компонентам относятся собственно ядро Windows, подсистема управле­ния виртуальными машинами, модули файловой системы и виртуальные драй­веры (VxD).

Область памяти между 2 и 4 Гбайт адресного пространства каждой 32-разрядной прикладной программы совместно используется всеми 32-разрядными приклад­ными программами. Такая организация позволяет обслуживать вызовы API не­посредственно в адресном пространстве прикладной программы и ограничивает размер рабочего множества. Однако за это приходится расплачиваться снижени­ем надежности. Ничто не может помешать программе, содержащей ошибку, про­извести запись в адреса, принадлежащие системным DLL[2], и вызвать крах всей системы.

В области между 2 и 3 Гбайт также находятся все запускаемые 16-разрядные прикладные программы Windows. С целью обеспечения совместимости эти программы выполняются в совместно используемом адресном пространстве, где они Могут испортить друг друга так же, как и в Windows 3.x.

Адреса памяти ниже 4 Мбайт также отображаются в адресное пространство каж­дой прикладной программы и совместно используются всеми процессами. Бла­годаря этому становится возможной совместимость с существующими драйвера­ми реального режима, которым необходим доступ к этим адресам. Это делает еще одну область памяти незащищенной от случайной записи. К самым нижним 64 Кбайт этого адресного пространства 32-разрядные прикладные программы обращаться не могут, что дает возможность перехватывать неверные указатели, но 16-разрядные программы, которые, возможно, содержат ошибки, могут запи­сывать туда данные.

Вышеизложенную модель распределения памяти можно проиллюстрировать с помощью рис. 2.

Системные компоненты, относящиеся к 0 кольцу защиты

Прикладные программы Win 16

Совместно используемые DLL

Прикладные программы Win 32

Компоненты реального режима

Адреса между 2 и 4 Гб отображаются в адресное пространство каждой программы Win 32 и совместно используются

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

Эта область используется всеми процессами

Рис. 2. Модель памяти ОС Windows 95/98

Минимально допустимый объем оперативной памяти, начиная с которого ОС Windows 95 может функционировать, равен 4 Мбайт, однако при таком объеме пробуксовка столь велика, что практически работать нельзя. Страничный файл, с помощью которого реализуется механизм виртуальной памяти, по умолчанию располагается в каталоге самой Windows и имеет переменный размер. Система отслеживает его длину, увеличивая или сокращая этот файл при необходимости. Вместе с фрагментацией файла подкачки это приводит к тому, что быстродейст­вие системы становится меньше, чем если бы файл был фиксированного размера и располагался в смежных кластерах (был бы дефрагментирован). Сделать файл подкачки заданного размера можно либо через специально разработанный для этого апплет (Панель управления > Система > Быстродействие > Файловая система), либо просто прописав в файле SYSTEM. INI в секции [386Enh] строчки с нием диска и имени этого файла, например:

Первая и вторая строчки указывают имя страничного файла и его размещение, а две последних — начальный и предельный размер страничного файла (значе­ния указываются в килобайтах). Для определения необходимого минимального размера этого файла можно рекомендовать запустить программу SysMon[3] (сис­темный монитор) и, выбрав в качестве наблюдаемых параметров размер файла подкачки и объем свободной памяти, оценить потребности в памяти, запуская те приложения, с которыми чаще всего приходится работать.

3.Распределение оперативной памяти в Microsoft Windows NT

В операционных системах Windows NT тоже используется плоская модель па-. мяти. Заметим, что Windows NT 4.0 server практически не отличается от Win­dows NT 4.0 workstation; разница лишь в наличии у сервера некоторых дополни­тельных служб, дополнительных утилит для управления доменом и несколько иных значений в настройках системного реестра. Однако схема распределения возможного виртуального адресного пространства в системах Windows NT рази­тельно отличается от модели памяти Windows 95/98. Прежде всего, в отличие от Windows 95/98 в гораздо большей степени используется ряд серьезных аппарат­ных средств защиты, имеющихся в микропроцессорах, а также применено прин­ципиально другое логическое распределение адресного пространства. Во-первых, все системные программные модули находятся в своих собственных виртуальных адресных пространствах, и доступ к ним со стороны прикладных программ невозможен. Ядро системы и несколько драйверов работают в нулевом кольце защиты в отдельном адресном пространстве.

Во-вторых, остальные программные модули самой операционной системы, ко­торые выступают как серверные процессы по отношению к прикладным про­граммам (клиентам), функционируют также в своем собственном системном виртуальном адресном пространстве, невидимом для прикладных процессов. Ло­гическое распределение адресных пространств приведено на рис. 3. Прикладным программам выделяется 2 Гбайт локального (собственного) линей­ного (неструктурированного) адресного пространства от границы 64 Кбайт до 2 Гбайт (первые 64 Кбайт полностью недоступны). Прикладные программы изо­лированы друг от друга, хотя могут общаться через буфер обмена (clipboard), ме­ханизмы DDE[4] и OLE[5].

(работает в кольце защиты с номером 0)

Прикладные программы Win 32

(у каждой программы свое собственное виртуальное пространство памяти)

Виртуальные машины Win 16

Процесс системного сервера

Прикладные программы обращаются к

DLL, которые перенаправляют обращение

Этот системный код находится в своем

собственном адресном пространстве и

недоступен вызывающим его процессам

Рис. 3. Модель распределения виртуальной памяти в Windows NT

В верхней части каждой 2-гигабайтной области прикладной программы разме­щен код системных DLL кольца 3, который выполняет перенаправление вызовов в совершенно изолированное адресное пространство, где содержится уже собст­венно системный код. Этот системный код, выступающий как сервер-процесс (server process), проверяет значения параметров, исполняет запрошенную функ­цию и пересылает результаты назад в адресное пространство прикладной про­граммы. Хотя сервер-процесс сам по себе остается процессом прикладного уровня, он полностью защищен от вызывающей его прикладной программы и изолиро­ван от нее.

Между отметками 2 и 4 Гбайт расположены низкоуровневые системные компо­ненты Windows NT кольца 0, в том числе ядро, планировщик потоков и диспетчер виртуальной памяти. Системные страницы в этой области наделены привиле­гиями супервизора, которые задаются физическими схемами кольцевой защиты процессора. Это делает низкоуровневый системный код невидимым и недоступ­ным для записи для программ прикладного уровня, но приводит к падению про­изводительности во время переходов между кольцами.

Для 16-разрядных прикладных Windows-программ ОС Windows NT реализует сеансы Windows on Windows (WOW). В отличие от Windows 95/98 ОС Win­dows NT дает возможность выполнять 16-разрядные программы Windows инди­видуально в собственных пространствах памяти или совместно в разделяемом адресном пространстве. Почти во всех случаях 16- и 32-разрядные прикладные программы Windows могут свободно взаимодействовать, используя OLE, неза­висимо от того, выполняются они в отдельной или общей памяти. Собственно прикладные программы и сеансы WOW выполняются в режиме вытесняющей многозадачности, основанной на управлении отдельными потоками. Множест­венные 16-разрядные прикладные программы Windows в одном сеансе WOW выполняются в соответствии с кооперативной моделью многозадачности. Win­dows NT может также выполнять в многозадачном режиме несколько сеансов DOS. Поскольку Windows NT имеет полностью 32-разрядную архитектуру, не существует теоретических ограничений на ресурсы GDI[6] и USER.

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

Процессами выделения памяти, ее резервирования, освобождения и подкачки управляет диспетчер виртуальной памяти Windows NT (Windows NT virtual memory manager, VMM). В своей работе этот компонент реализует сложную стратегию учета требований к коду и данным процесса для минимизации досту­па к диску, поскольку реализация виртуальной памяти часто приводит к боль­шому количеству дисковых операций.

Каждая виртуальная страница памяти, отображаемая на физическую страницу, переносится в так называемый страничный фрейм (page frame). Прежде чем код или данные можно будет переместить с диска в память, диспетчер виртуальной памяти (модуль VMM) должен найти или создать свободный страничный фрейм или фрейм, заполненный нулями. Заметим, что заполнение страниц нулями пред­ставляет собой одно из требований стандарта на системы безопасности уровня С2 , принятого правительством США. Страничные фреймы должны заполняться нулями для того, чтобы исключить возможность использования их предыдущего содержимого другими процессами. Чтобы фрейм можно было освободить, необ­ходимо скопировать на диск изменения в его странице данных, и только после этого фрейм можно будет повторно использовать. Программы, как правило, не меняют страницы кода. Страницы кода, в которые программы не внесли измене­ний, можно удалить.

Диспетчер виртуальной памяти может быстро и относительно легко удовлетво­рить программные прерывания типа «ошибка страницы» (page fault). Что каса­ется аппаратных прерываний типа «ошибка страницы», то они приводят к подкачке (paging), которая снижает производительность системы. Мы уже говорили о том, что в Windows NT, к большому сожалению, выбрана дисциплина FIFO для замещения страниц, а не более эффективные дисциплины LRU и LFU. Когда процесс использует код или данные, находящиеся в физической памяти, система резервирует место для этой страницы в файле подкачки Pagefile. sys на диске. Это делается с расчетом на тот случай, что данные потребуется выгрузить на диск. Файл Pagefile. sys представляет собой зарезервированный блок дисково­го пространства, который используется для выгрузки страниц, помеченных как “грязные”, при необходимости освобождения физической памяти. Заметим, что этот файл может быть как непрерывным, так и фрагментированным; он может быть расположен на системном диске либо на любом другом и даже на несколь­ких дисках. Размер этого страничного файла ограничивает объем данных, кото­рые могут храниться во внешней памяти при использовании механизмов вирту­альной памяти. По умолчанию размер файла подкачки устанавливается равным объему физической памяти плюс 12 Мбайт, однако пользователь имеет возмож­ность изменить его размер по своему усмотрению. Проблема нехватки виртуаль­ной памяти часто может быть решена за счет увеличения размера файла подкачки.

В системах Windows NT 4.0 объекты, создаваемые и используемые приложения­ми и операционной системой, хранятся в так называемых пулах памяти (memory pools). Доступ к этим пулам может быть получен только в привилегированном режиме работы процессора, в котором работают компоненты операционной сис­темы. Поэтому для того, чтобы объекты, хранящиеся в пулах, стали видимы тре­дам приложений, эти треды должны переключиться в привилегированный режим.

Перемещаемый или нерезидентный пул (paged pool) содержит объекты, которые •могут быть при необходимости выгружены на диск. Неперемещаемый или рези­дентный пул (nonpaged pool) содержит объекты, которые должны постоянно на­ходиться в памяти. В частности, к такого рода объектам относятся структуры данных, используемые процедурами обработки прерываний, а также структуры, используемые для предотвращения конфликтов в мультипроцессорных системах. Исходный размер пулов определяется объемом физической памяти, доступной Windows NT. Впоследствии размер пула устанавливается динамически и, в зависимости от работающих в системе приложений и сервисов, будет изменяться в широком диапазоне.

Вся виртуальная память в Windows NT подразделяется на классы: зарезервиро­ванную (reserved), выделенную (committed) и доступную (available).

Зарезервированная память представляет собой набор непрерывных адресов, которые диспетчер виртуальной памяти (VMM) выделяет для процесса, но не учитывает в общей квоте памяти процесса до тех пор, пока она не будет фактически использована. Когда процессу требуется выполнить запись в па­мять, ему выделяется нужный объем из зарезервированной памяти. Если про­цессу потребуется больший объем памяти, то дополнительная память может быть одновременно зарезервирована и использована, если в системе имеется доступная память

Память выделена, если диспетчер VMM резервирует для нее место в файле Pagefile. sys на тот случай, когда потребуется выгрузить содержимое памяти на диск. Объем выделенной памяти процесса характеризует фактически по­требляемый им объем памяти. Выделенная память ограничивается размером файла подкачки. Предельный объем выделенной памяти в системе (commit limit) определяется тем, какой объем памяти можно выделить процессам без увеличения размеров файла подкачки. Если в системе имеется достаточный объем дискового пространства, то файл подкачки может быть увеличен и тем самым будет расширен предельный объем выделенной памяти.

Вся память, которая не является ни выделенной, ни зарезервированной, явля­ется доступной. К доступной относится свободная память, обнуленная память (освобожденная и заполненная нулями), а также память, находящаяся в списке ожидания (standby list), которая была удалена из рабочего набора процесса, но может быть затребована вновь.

3.Контрольные вопросы и задачи

3.1.Вопросы для проверки

Перечислите и поясните основные функции ОС, которые связаны с управлени­ем задачами.

1. Какие дисциплины диспетчеризации задач вы знаете? Опишите их.

2. Что такое “гарантия обслуживания”? Как ее можно реализовать?

3. Сравните механизмы диспетчеризации задач в ОС Windows NT и OS/2. В чем заключаются основные различия?

4. Опишите механизм динамической диспетчеризации, реализованный в UNIX-системах.

5. Что такое “виртуальный адрес”, “виртуальное адресное пространство”? Чем (в общем случае) определяется максимально возможный объем виртуального адресного пространства программы?

6. Что такое “фрагментация памяти”? Какой метод распределения памяти по­зволяет добиться минимальной фрагментации?

7. Что такое “уплотнение памяти”? Когда оно применяется?

8. Объясните сегментный способ организации виртуальной памяти. Что пред­ставляет собой (в общем случае) дескриптор сегмента?

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

10. Какие дисциплины применяются для решения задачи замещения страниц? Ка­кие из них являются наиболее эффективными и как они реализуются?

11. Что такое “рабочее множество”? Что позволяет разрешить реализация этого понятия?

12. Изложите принципы распределения памяти в MS-DOS. Что означает термин “плоская модель памяти”? В чем заключаются достоин­ства (и недостатки, если они есть) использования этой модели?

Литература.

1. Win32 API и Visual Basic. – СПб.: Питер, 2001.

2. Руководство пользователя ПЭВМЖ В 2-х ч. – СПб.: Ассоциация OILCO, 1992. – 357 с.

3. Конструирование компиляторов для цифровых вычислительных машин. – М.: Мир, 1985. – 544 с.

4. Гудмэн Дж. Секреты жесткого диска. – Киев: Диалектика, 1994. – 256 с.

5. Калверт Ч. Delphi 4. Энциклопедия пользователя. – Киев: ДиаСофт, 1998.

6. , Программируем на языке ассемблера IBM PC. Ч. 3. Защищенный режим. – М.: Энтроп, 1996. –320 с.

7. , Молчанов программное обеспечение (учебник). – Спб: 2001.

[1] Широко известно, что было много версий ОС, которые мы, упрощая ситуацию, относим к MS — DOS. MS-DOS — это вариант фирмы Microsoft реализации дисковой операционной системы [1, 28]. Фирма Microsoft прекратила разработку подобных систем, и послед­ней их реализацией была MS-DOS 6.22. Были (и есть ныне) реализации такого рода систем и от других разработчиков. Поскольку у MS-DOS 6.22 существуют известные проблемы с 2000 годом, большой популярностью пользуется PC-DOS 7.0 от IBM.

2ТSR (terminate and stay resident) — резидентная в памяти программа, которая благодаря изменениям в таблице векторов прерываний позволяет перехватывать прерывания и в случае обращения к ней выполнять необходимые нам действия. Подробно об этом можно прочесть, например, в книгах [1, 3, 4, 5].

3 POST (power on self test) — программа самотестирования при включении компьютера. После выполнения этой программы, входящей в состав ROM BIOS, опрашиваются уст­ройства, которые могут содержать программы для загрузки ОС.

[2] DLL (dynamic link library) — динамически загружаемый библиотечный модуль.

[3] Программа SysMon. exe входит в состав штатного программного обеспечения Win­dows 95/98, но при инсталляции этих ОС на ПК в режиме «обычная» (установка), а не «по выбору», не устанавливается.

[4] DDE (Dynamic Data Exchange) — механизм динамического обмена данными.

[5] OLE (Object Linking and Embedding) — механизм связи и внедрения объектов.

[6] (Graphics Device Interface) — интерфейс графических устройств.

Внутренние и внешние команды DOS. Создание файла в MS-DOS. Основные виды оперативной памяти (ОЗУ).

I. Основные внутренние команды DOS.
Внутренние команды DOS выполняет командный процессор command.com.

Применение внутренних и внешних команд DOS относится к области системного программирования.

1. Команда смены текущего дисковода:
a: — переход на дисковод a:

b: — переход на дисковод b:

c: — переход на дисковод c:

2. Команда вывода оглавления каталога: dir

Поэкранный (постраничный) вывод оглавления каталога, если оглавление очень большое: dir/p

dir a:\ — команда вывода оглавления корневого каталога на диске а:.

Команда dir>dir.txt позволяет сохранить оглавление текущего каталога в виде текстового файла dir.txt. Это общее правило записи результатов работы программ в текстовом режиме в текстовый файл. Пример: ide.com > ide.txt.

3. Команда смены текущего каталога: cd имя каталога

Переход в корневой каталог текущего диска: cd\

Переход из подкаталога в каталог: cd..

4. Команда создания каталога: md имя каталога

5. Команда удаления пустого каталога: rd имя каталога

6. Команда вывода содержимого текстового файла на экран:

7. Команда очистки экрана монитора: cls

8. Команда копирования файлов:

copy имя файла1 имя файла2 — копирование одного файла в другой

copy имя файла имя каталога — копирование файла в каталог;

copy имя файла prn — распечатка файла на принтере.

9. Создание текстового файла:

copy con: имя файла, нажать Enter, ввести построчно текст,

в конце каждой строки Enter, затем в конце F6 или Ctrl+Z и Enter.

10. Объединение содержимого двух и более текстовых файлов

(конкатенация файлов): copy имя 1-го файла + имя 2-го файла имя нового файла

11. Команда удаления файла: del имя файла или erase имя файла

12. Переименование файла: ren имя файла новое имя файла

13. Вывод версии DOS: ver

14. Вывод метки диска: vol

15. Ввод текущей даты: date

16. Ввод текущего времени: time

17. Exit — выход из командного процессора DOS.

Примечание: После ввода с клавиатуры указанных команд в командную

строку следует нажать клавишу Enter.

II. Основные внешние команды DOS (для версии MS-DOS 6.22).
Внешние команды DOS выполняют вспомогательные программы (утилиты),

расположенные в каталоге DOS на диске С:.

1. format имя диска: — форматирование диска (для дискет format a:

или format b:). Создание системного диска: format имя диска: /s

Будьте внимательны: при форматировании диска (дискеты) вся информация на нем уничтожается!

2. fdisk — разбиение жесткого диска на разделы (логические диски С, D, E и так далее).

Внимание: при разбиении жесткого диска на разделы вся информация на нем уничтожается!

3. sys имя диска: — перенос файлов ядра DOS на диск (дискету), создание системного диска (дискеты). Используется также для смены (обновления версии) DOS.

4. mem — вывод карты оперативной памяти. Чаще используется команда mem/c/p или mem/d/p (ключ p — постраничный вывод информации).

5. chkdsk c: /f — проверка файловой системы и восстановление потерянных кластеров.

6. scandisk — проверка файловой системы и диска на наличие логических сбоев. Для дискет scandisk a: или scandisk b:

7. label имя диска: — создание или обновление метки на диске, дискете.

8. undelete имя диска: — восстановление случайно стертых файлов.

9. diskcopy имя диска: имя диска: — создание точной копии дискеты.

10. print имя файла prn — печать файла на принтере в фоновом режиме. Отмена фоновой печати: print /t

11. graphics — поддержка печати информации с экрана (при нажатии клавиши Print Screen).

12. defrag c: /fd — устранение фрагментации файлов и оптимизация размещения информации на жестком диске (эта программа аналогична программе Speed Disk из комплекта Norton Utilities).

13. deltree имя каталога — удаление дерева каталогов (с файлами).

Внимание: Использовать эту команду можно только, если Вы уверены в необходимости удаления данного дерева каталогов! В противном случае будет утрачена важная информация!

14. msd — диагностика компьютера.

15. edit — вызов текстового редактора MS-DOS Editor.

16. qbasic — вызов языка программирования BASIC.

17. doskey — вызов программы, облегчающей редактирование содержимого командной строки (вводимых команд DOS).

18. tree c:\имя каталога /f — вывод содержимого указанного каталога.

19. msav — проверка дисков антивирусной программой MS-Antivirus.

20. memmaker — оптимизатор распределения оперативной памяти.

Форматы команд для утилиты MS-DOS mem.exe:
mem — стандартная карта ОЗУ;

mem/c/p — выдает список загруженных программ;

mem/d/p — выдает информацию о внутренних устройствах (например:

con, prn, LPT1 и т.д.) с адресацией;

mem/f/p — объем свободной памяти с адресацией

mem/m имя программы — размер памяти, занимаемый указанной

загруженной программой (резидентной, c расширением com и exe);

ключ /p дает постраничный вывод информации.

Создание файла в MS-DOS
Для создания файла в MS-DOS необходимо:

1. Ввести команду в командную строку: copy con: имя файла и нажать Enter.

Пример: copy con: c:\mark\proba.txt

2. Ввести текст и нажать F6 или Сtrl-Z, что означает конец строки, и нажать Enter. Будет создан файл proba.txt в каталоге MARK. Имя файла надо указывать с полным путем.

3. Если файл создается в текущем каталоге, то можно не указывать

полный путь (маршрут).

Пример: copy con: name.txt и далее как указано выше в п. 2.

Назначение функциональных клавиш в MS-DOS
F1 -копирует по одному символу из буфера на экран.

F2 -копирует все символы из буфера на экран до заданного символа.

F3 -копирует все символы из буфера на экран.

F4 -пропускает все символы в буфере до определенного символа.

F5 -переносит все символы с экрана в буфер, не пытаясь выполнить их

F6 -означает конец строки (или CTRL-Z).

Остальные клавиши в MS-DOS не используются, но применяются в

большинстве прикладных программ.

Использование команды создания виртуального диска SUBST
Для создания виртуального диска (например, E), содержащего файлы из каталога ME, в командную строку надо записать: subst e: c:\me или subst e: c:\mark\refis для файлов из каталога REFIS. Переход на диск Е: производится по общему правилу для любого диска. Это в ряде случаев облегчает запуск программ, когда в команду Path уже нельзя вставить новый каталог (общая длина каталогов в команде Path не может превышать 128 байт). Данную команду можно вставить в файл autoexec.bat, тогда виртуальный диск будет устанавливаться постоянно. Команда subst еще называется командой определения синонима для имени каталога и используется, чтобы не набирать имени каталога, который часто используется. При создании и удалении файлов и каталогов на виртуальном диске E: тоже самое будет происходить синхронно и в каталоге ME на диске С:.

Создать таким способом еще один 2-й виртуальный диск F: уже нельзя. Каких-либо видимых изменений в оперативной или дисковой памяти при создании виртуального диска не происходит. Команда удаления виртуального диска E: subst e: /d. Команда subst относится к внешним командам DOS.

О некоторых внутренних командах DOS.
Если ввести в командную строку команды echo и verify, то можно

узнать их текущее состояние: echo is on или echo is off;

verify is on или verify is off.

Если ввести команду path, то будет выдана команда path из файла

autoexec.bat, т.е. текущий список каталогов, указанный в команде path.

Если ввести команду set, то будет указано ее текущее состояние,

то есть будет выдана та часть файла autoexec.bat, которая отно-

сится к заданию переменной окружения: path, prompt, set, а также

УКАЗАТЕЛЬ КОМАНД И УТИЛИТ MS-DOS

(Внутренние (*) и внешние команды MS-DOS)

ANSY.SYS установка драйвера консоли

ASSIGN переназначение дисковых устройств

ATTRIB установка атрибута файла

BATCH пакетные командные файлы (*.bat) *

BACKUP создание резервных копий для файлов

BREAK прерывание программы *

BUFFERS создание буферов в ОЗУ *

CHDIR (CD) переход в новый каталог *

CHKDSK проверка дисков

CLS очистка экрана *

COMMAND: второй командный процессор *

COMP сравнение дисковых файлов

COPY копирование файла *

COUNTRY установка формата даты и времени

CTTY переназначение консоли

DATE установка даты *

DEBUG отладчик программ

DEVICE установка новых драйверов устройств *

DIR просмотр каталогов *

DISKCOMP сравнение дисков

DISKCOPY дублирование дискет

DRIVER.SYS установка драйвера блочно-ориентированных устройств

ERASE (DEL) удаление файлов *

FCBS блоки управления файлами *

FDISK разбиение жесткого диска на разделы

FILES установка числа одновременно открытых файлов *

FIND поиск данных

FORMAT форматирование диска

GRAFTABLE загрузка дополнительных символов для графического режима

GRAPHICS распечатка графических изображений

JOIN логическое объединение каталога на одном диске с другим диском в один каталог

KEYBхх загрузка нерезидентных драйверов клавиатуры

LABEL создание и замена метки диска

LASTDRIVE установка максимального числа доступных дисководов *

LINK загрузчик (редактор) связей

MKDIR (MD) создание каталога *

MODE изменение режимов работы выходных устройств

MORE постраничный вывод файлов на экран

PATH указание пути поиска *

PRINT вывод на печать данных

PROMPT изменение формата приглашения DOS *

RENAME (REN) переименование файлов *

REPLACE селективная замена и копирование файлов

RESTORE восстановление файлов, резервированных по команде BACKUP

RMDIR (RD) удаление пустого каталога *

SELECT установка MS-DOS на новый диск с заданным типом клавиатуры, форматом даты и времени

SET установка переменной окружения *

SHELL применение дополнительного командного процессора *

SORT сортировка данных

SUBST создание виртуальных дисков

SYS копирование MS-DOS

TIME установка времени *

TREE вывод дерева каталогов

TYPE вывод на дисплей содержимого файла *

VDISK.SYS установка драйвера виртуального диска

VER вывод версии MS-DOS *

VERIFY проверка записи на диск *

VOL вывод метки диска *

XCOPY выборочное копирование групп файлов и каталогов

Основные виды оперативной памяти (ОЗУ)
Оперативная память (ОЗУ) — это устройство для временного хранения информации (только в процессе работы компьютера), обеспечивает быстрый доступ процессора к программе и обрабатываемым данным.

1. CMA — основная оперативная память (Conventional Memory Area).

(область 0 — 640K).

2. UMA — верхняя память (Upper Memory Area).

(область 640K — 1M).

3. UMB — блоки верхней памяти (Upper Memory Block).

4. HMA — высокая память (High Memory Area).

(область 1M + 64K).

5. XMA — расширенная память (Extended Memory Area).

(область, выше > 1M + 64K).

6. EMS — дополнительная память (Expanded Memory).

(расположена на отдельной плате).

Проблема 640 Кбайт
У IBM PC с процессором 8088 и 8086 оперативная память, доступная для DOS и прикладных программ, составляет не более 640 Кбайт. Это было шагом вперед для начала 80-х годов, по сравнению с 64 Кбайт для остальных компьютеров. Однако с появлением процессоров 80286, 80386 и старше, а также современных программ, например Windows, ограничение в 640 Кбайт превратилось в проблему, которая была успешно решена с появлением дополнительной памяти и особенно расширенной памяти. Расширенная память (Extended Memory) — это память выше, чем 1M + 64K. Благодаря появлению расширенной памяти, процессоры 80286, 80386SX и 80486SX могут непосредственно обращаться к 16 Мб памяти, а процессоры 80386DX, 80486DX и старше — к 4 Гб.

Дополнительная память (Expanded Memory) сейчас не применяется.

Распределение оперативной памяти в MS DOS

Как известно, MS DOS1 — это однопрограммная операционная система для персонального компьютера типа IBM PC. В ней, конечно, можно организовать запуск резидентных, или TSR-задач2, в результате которого в памяти будет находиться не одна программа, но в целом система MS DOS предназначена для выполнения только одного вычислительного процесса. Поэтому распределение памяти в ней построено по схеме простого непрерывного распределения. Система поддерживает механизм распределения памяти с перекрытием (оверлейные структуры).

Как известно, в IBM PC использовался 16-разрядный микропроцессор i8088, который за счет введения сегментного способа адресации позволял указывать адрес ячейки памяти в пространстве объемом до 1 Мбайт. В последующих персональных компьютерах (IBM PC AT, AT386 и др.) было принято решение поддерживать совместимость с первыми, поэтому при работе в DOS прежде всего рассматривают первый мегабайт. Вся эта память разделялась на несколько областей, что иллюстрирует рис. 3.2. На этом рисунке показано, что памяти может быть и больше, чем 1 Мбайт, но более подробное рассмотрение этого вопроса мы здесь опустим, отослав желающих изучить данную тему глубже к монографии [2]. Если не вдаваться в детали, можно сказать, что в состав MS DOS входят следующие основные компоненты.

— Подсистема BIOS (Base Input-Output System — базовая подсистема ввода-вывода), включающая в себя помимо программы POST (Power On Self Test — самотестирование при включении компьютера)1 программные модули обработки прерываний, с помощью которых можно управлять основными контроллерами на материнской плате компьютера и устройствами ввода-вывода. Эти модули часто называют обработчиками прерываний. По своей функциональной сути они представляют собой драйверы. BIOS располагается в постоянном запоминающем устройстве компьютера. В конечном итоге почти все остальные модули MS DOS обращаются к BIOS. Если и не напрямую, то через модули более высокого уровня иерархии.

— Модуль расширения BIOS — файл IO.SYS (в других DOS-системах он может называться иначе, например _BI0.COM).

— Основной, или базовый, модуль обработки прерываний DOS — файл MSDOS.SYS. Именно этот модуль в основном реализует работу с файловой системой.

— Командный процессор (интерпретатор команд)— файл C0MMAND.COM.

— Утилиты и драйверы, расширяющие возможности системы.

— Программа загрузки MS DOS — загрузочная запись (Boot Record, BR), расположенная на дискете или на жестком диске (подробнее о загрузочной записи и о других загрузчиках см. главу 6). Вся память в соответствии с архитектурой IBM PC условно может быть разбита на следующие три части.

— В самых младших адресах памяти (первые 1024 ячейки) размещается таблица векторов прерывания (см. раздел «Система прерываний 32-разрядных микропроцессоров i80x86» в главе 4). Это связано с аппаратной реализацией процессора i8088. В последующих процессорах (начиная с i80286) адрес таблицы прерываний определяется через содержимое соответствующего регистра, но для обеспечения полной совместимости с первым процессором при включении или аппаратном сбросе в этот регистр заносятся нули. При желании, однако, в случае использования современных микропроцессоров i80x86 вектора прерываний можно размещать и в других областях.

1 После выполнения программы POST, входящей в состав ROM BIOS, опрашиваются устройства, которые могут содержать программы для загрузки операционной системы.

Версий однопрограммных дисковых операционных систем (Disks Operating System, DOS) для персональных компьютеров было много. Одних только MS DOS (систем от Microsoft) более 10. Однако несмотря на существенные различия все их чаще всего именуют одинаково — MS DOS.

2 TSR (Terminate and Stay Res >

Рис. 3.2. Распределение оперативной памяти в MS DOS в Windows NT/2000/XP

— Вторая часть памяти отводится для программных модулей самой системы MS DOS и для программ пользователя. Эту область памяти мы рассмотрим чуть позже, здесь только заметим, что она называется основной, или стандартной, памятью (conventional memory).

— Наконец, третья часть адресного пространства отведена для постоянных запоминающих устройств и функционирования некоторых устройств ввода-вывода. Эта область памяти получила название UMA (Upper Memory Area — область памяти, адрес которой выше основной).

В младших адресах основной памяти размещается то, что можно условно назвать ядром этой операционной системы — системные переменные, основные программные модули, блоки данных для буферизации операций ввода-вывода. Для управления устройствами, драйверы которых не входят в базовую подсистему ввода-вывода, загружаются так называемые загружаемые, или устанавливаемые, драйверы. Перечень устанавливаемых драйверов определяется специальным конфигурационным файлом CONFIG.SYS. После загрузки расширения BIOS — файла I0.SYS — последний (загрузив модуль MSDOS.SYS) считывает файл CONFIG.SYS и уже в соответствии с ним подгружает в память необходимые драйверы. Кстати, в конфигурационном файле CONFIG.SYS могут иметься операторы, указывающие на количество буферов, отводимых для ускорения операций ввода-вывода, и на количество файлов, которые могут обрабатываться (для работы с файлами необходимо зарезервировать место в памяти для хранения управляющих структур, с помощью которых выполняются операции с записями файла). В случае использования микропроцессоров i80x86 и наличия в памяти драйвера HIMEM.SYS модули I0.SYS и MSDOS.SYS могут быть размещены за пределами первого мегабайта в области, которая получила название НМЛ (High Memory Area — область памяти с большими адресами).

Память с адресами, большими чем lOFFFFh, может быть использована в DOS-программах при выполнении их на микропроцессорах, имеющих такую возможность (например, микропроцессор i80286 имел 24-разрядную шину адреса, а i80386 — уже 32-разрядную). Но для этого с помощью специальных драйверов необходимо переключать процессор в другой режим работы, при котором он сможет использовать адреса выше lOFFFFh. Широкое распространение получили две основные спецификации: XMS (Extended Memory Specification) и EMS (Expanded Memory Specification). Последние годы система MS DOS практически перестала применяться. Теперь ее используют в основном для запуска некоторых утилит, с помощью которых подготавливают дисковые устройства, или для установки других операционных систем. И поскольку основным утилитам, необходимым для обслуживания персонального компьютера, спецификации EMS и XMS, как правило, не нужны, мы не будем здесь их рассматривать.

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

Для того чтобы предоставить больше памяти программам пользователя, в MS DOS применено то же решение, что и во многих других простейших операционных системах, — командный процессор C0MMAND.COM состоит из двух частей. Первая часть является резидентной и размещается в области ядра, вторая часть транзитная и размещается в области старших адресов раздела памяти, выделяемой для программ пользователя. И если программа пользователя перекрывает собой область, в которой была расположена транзитная часть командного процессора, то последний при необходимости восстанавливает в памяти свою транзитную часть, поскольку после выполнения программы она возвращает управление резидентной части C0MMAND.COM.

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

Организация и модели памяти, адресация

Память – способность объекта обеспечивать хранение данных.
Все объекты, над которыми выполняются команды, как и сами команды, хранятся в памяти компьютера.

Память состоит из ячеек, в каждой из которых содержится 1 бит информации, принимающий одно из двух значений: 0 или 1. Биты обрабатывают группами фиксированного размера. Для этого группы бит могут записываться и считываться за одну базовую операцию. Группа из 8 бит называется .

Байты последовательно располагаются в памяти компьютера.

  • 1 килобайт (Кбайт) = 2 10 = 1 024 байт
  • 1 мегабайт (Мбайт) = 2 10 Кбайт = 2 20 байт = 1 048 576 байт
  • 1 гигабайт (Гбайт) = 2 10 Мбайт = 2 30 байт = 1 073 741 824 байт

Для доступа к памяти с целью записи или чтения отдельных элементов информации используются идентификаторы , определяющие их расположение в памяти. Каждому идентификатору в соответствие ставится адрес . В качестве адресов используются числа из диапазона от 0 до 2 k -1 со значением k, достаточным для адресации всей памяти компьютера.Все 2 k адресов составляют адресное пространство компьютера .

Способы адресации байтов

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

Прямым способом называется противоположная система адресации. Компиляторы высокоуровневых языков поддерживают прямой способ адресации.

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

Организация памяти

Физическая память, к которой микропроцессор имеет доступ по шине адреса, называется оперативной памятью ОП (или оперативным запоминающим устройством — ОЗУ).
Механизм управления памятью полностью аппаратный, т.е. программа сама не может сформировать физический адрес памяти на адресной шине.
Микропроцессор аппаратно поддерживает несколько моделей использования оперативной памяти:

  • сегментированную модель
  • страничную модель
  • плоскую модель

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

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

Каждая программа в общем случае может состоять из любого количества сегментов, но непосредственный доступ она имеет только к 3 основным сегментам и к 3 дополнительным сегментам, обслуживаемых 6 сегментными регистрами. К основным сегментам относятся:

  • Сегмент кодов ( .CODE ) – содержит машинные команды для выполнения. Обычно первая выполняемая команда находится в начале этого сегмента, и операционная система передает управление по адресу данного сегмента для выполнения программы. Регистр сегмента кодов ( CS ) адресует данный сегмент.
  • Сегмент данных ( .DATA ) – содержит определенные данные, константы и рабочие области, необходимые программе. Регистр сегмента данных ( DS ) адресует данный сегмент.
  • Сегмент стека ( .STACK ). Стек содержит адреса возврата как для программы (для возврата в операционную систему), так и для вызовов подпрограмм (для возврата в главную программу). Регистр сегмента стека ( SS ) адресует данный сегмент. Адрес текущей вершины стека задается регистрами SS:ESP .

Регистры дополнительных сегментов ( ES, FS, GS ), предназначены для специального использования.

Для доступа к данным внутри сегмента обращение производится относительно начала сегмента линейно, т.е. начиная с 0 и заканчивая адресом, равным размеру сегмента. Для обращения к любому адресу в программе, компьютер складывает адрес в регистре сегмента и смещение — расположение требуемого адреса относительно начала сегмента. Например, первый байт в сегменте кодов имеет смещение 0, второй байт – 1 и так далее.

Таким образом, для обращения к конкретному физическому адресу ОЗУ необходимо определить адрес начала сегмента и смещение внутри сегмента.
Физический адрес принято записывать парой этих значений, разделенных двоеточием

сегмент : смещение

Страничная модель памяти – это надстройка над сегментной моделью. ОЗУ делится на блоки фиксированного размера, кратные степени 2, например 4 Кб. Каждый такой блок называется страницей . Основное достоинство страничного способа распределения памяти — минимально возможная фрагментация. Однако такая организация памяти не использует память достаточно эффективно за счет фиксированного размера страниц.

Плоская модель памяти предполагает, что задача состоит из одного сегмента, который, в свою очередь, разбит на страницы.
Достоинства:

  • при использовании плоской модели памяти упрощается создание и операционной системы, и систем программирования;
  • уменьшаются расходы памяти на поддержку системных информационных структур.

В абсолютном большинстве современных 32(64)-разрядных операционных систем (для микропроцессоров Intel) используется плоская модель памяти.


Модели памяти

Директива .MODEL определяет модель памяти, используемую программой. После этой директивы в программе находятся директивы объявления сегментов ( .DATA, .STACK, .CODE, SEGMENT ). Синтаксис задания модели памяти

.MODEL модификатор МодельПамяти СоглашениеОВызовах

Параметр МодельПамяти является обязательным.

Основные модели памяти:

Модель памяти Адресация кода Адресация данных Операци-
онная система
Чередование кода и данных
TINY NEAR NEAR MS-DOS Допустимо
SMALL NEAR NEAR MS-DOS, Windows Нет
MEDIUM FAR NEAR MS-DOS, Windows Нет
COMPACT NEAR FAR MS-DOS, Windows Нет
LARGE FAR FAR MS-DOS, Windows Нет
HUGE FAR FAR MS-DOS, Windows Нет
FLAT NEAR NEAR Windows NT, Windows 2000, Windows XP, Windows Vista Допустимо

Модель tiny работает только в 16-разрядных приложениях MS-DOS. В этой модели все данные и код располагаются в одном физическом сегменте. Размер программного файла в этом случае не превышает 64 Кбайт.
Модель small поддерживает один сегмент кода и один сегмент данных. Данные и код при использовании этой модели адресуются как near (ближние).
Модель medium поддерживает несколько сегментов программного кода и один сегмент данных, при этом все ссылки в сегментах программного кода по умолчанию считаются дальними (far), а ссылки в сегменте данных — ближними (near).
Модель compact поддерживает несколько сегментов данных, в которых используется дальняя адресация данных (far), и один сегмент кода с ближней адресацией (near).
Модель large поддерживает несколько сегментов кода и несколько сегментов данных. По умолчанию все ссылки на код и данные считаются дальними (far).
Модель huge практически эквивалентна модели памяти large.

Особого внимания заслуживает модель памяти flat , которая используется только в 32-разрядных операционных системах. В ней данные и код размещены в одном 32-разрядном сегменте. Для использования в программе модели flat перед директивой .model flat следует разместить одну из директив:

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

Параметр модификатор используется для определения типов сегментов и может принимать значения use16 (сегменты выбранной модели используются как 16-битные) или use32 (сегменты выбранной модели используются как 32-битные).

Параметр СоглашениеОВызовах используется для определения способа передачи параметров при вызове процедуры из других языков, в том числе и языков высокого уровня (C++, Pascal). Параметр может принимать следующие значения:

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

Внутренние и внешние команды DOS. Создание файла в MS-DOS. Основные виды оперативной памяти (ОЗУ). Назначение функциональных клавиш в MS-DOS. Команды для работы с сетью

ПОКАЗАТЕЛИ КОМАНДЫ /MEM /GC /LAG

Если на сервере установлен плагин Essentials, то после ввода команд /mem /gc или /lag мы увидим в чате вывод показаний:

1. Аптайм — время работы сервера после включения.
2. TPS — Tick Per Second (кол-во в секунду на сервере).
3. Максимум памяти — количество памяти выделенной для сервера. Указывается в параметре запуска сервера -Xmx.
4. Выделено памяти — количество используемой памяти, которая требуется для сервера в настоящий момент.
5. Свободной памяти — количество памяти, которую освободил сборщик мусора (java).

Разберем подробнее четвёртый пункт: «Выделено памяти».
Многие не понимают и думают, что их обманули с памятью. Считают, что значение «выделено памяти» должно быть равно значению «Максимум памяти». Это крайне неверное мнение и складывается оно у многих неопытных пользователей и администраторов серверов Майнкрафт, по причине неправильного перевода плагина.

И так! Для сервера максимальная память 10.000 мегабайт (выделить для сервера можно и больше памяти), но это не означает, что сервер сразу её будет всю использовать. Сервер не задействует больше памяти чем ему требуется, поэтому он из 10.000 мегабайт возьмёт для начала столько, сколько ему нужно для работы.
Например, при запуске сервера потребовалось 484 мегабайт (как на рисунке), но по мере увеличения игроков на сервере, карта для каждого игрока будет прогружаться, для этого серверу потребуется больше памяти, вот тут-то, сервер автоматически начнёт выделять для своей работы еще памяти из максимально доступной для него, которая указана в первом пункте.

На увеличение этого показателя могут влиять и другие факторы: большое количество плагинов, неправильная работа плагинов, неправильная конфигурация плагинов, безрассудный игровой процесс, постоянные огромные сеты (//set) , полёты с большой скоростью /speed 5 — 10 и многое другое.

Объяснить можно проще, сравнив это с ведром, водой, мальчиком Васей и его гостями.
Представим:
У вас есть пустое ведро объем которого равен 10 литров.
У вас есть 1 литр воды.
Мальчик «Вася» попросил принести ему 1 литр воды.
Вам нужно в этом ведре перенести для мальчика «Васи» 1 литр воды.
Но вдруг «Вася» сообщает, что к нему пришли гости, еще 3 мальчика и требуется воды еще больше, уже не 1 литр, а 4.
Вы успешно помещаете всю эту воду в ведро, в размере 4 литров.
Через некоторое время, Василий сообщает, что гостей гораздо больше, их уже не три, а семь и воды уже требуется 10 литров + 1 литр для мальчика Васи, это уже 11 литров, а ведро у Вас всего лишь для 10 литров воды, вы пытаетесь вместить одиннадцатый литр в 10 литровое ведро, но вода льётся через край. В итоге, вы приносите всего лишь 10 литров на 11 человек, и для каждого мальчика достаётся менее 1 литра.

Вот то же самое происходит и с сервером.
Разработчики Майнкрафт рекомендуют для каждого игрока выделять 100 мегабайт оперативной памяти, с учётом того, что сервер не будет перегружен плагинами.
Если память вашего сервера 10.000 мегабайт, а памяти на одного игрока требуется 100 мегабайт, то делим 10000:100=100 получаем сто, значит при таком объеме оперативной памяти комфортно будут играть на сервере 100 человек, если оперативную память не съедают ваши плагины и игровой процесс.

Ведром в этом случае будет являться сам сервер, ёмкость которого это выделенная для него доступная память 10.000 (как на картинке, это пример), водой будет являться память потраченная для работы карты сервера и плагинов, а гостями будут игроки заходящие на сервер для которых будет требоваться память минимум 100 мегабайт.

Итог таков, показатель «Выделено памяти» отображает размер памяти, которая задействована сервером в данный момент и требуется для его работы. Размер памяти, которую потребляют в данный момент плагины, карта и игроки.

Конечно можно сделать параметры запуска такими, что карта сразу будет прогружаться до предела выделенной для сервера памяти, показатели: «Максимум памяти» и «Выделено памяти» при этом будут равными. Это принесёт печальный результат и постоянные краши, так как вся память будет бессмысленно израсходована на карту, которая никем не используется.

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

А теперь представим, что параметры запуска сервера мы настроили так, что наш сервер прогружает карту на все 10.000 мегабайт. Получится следующее — территория карты, которая не используется игроками, будет расходовать всю оперативную память, и в случае, если игрок попадёт за пределы координат прогруженной карты, то для этого игрока не найдется более оперативной памяти для дальнейшей прогрузки им карты, начнутся лаги, либо сервер крашнется с ошибкой — » Out of Memory «. Ведро то уже полное.)))

I. Основные внутренние команды DOS.
Внутренние команды DOS выполняет командный процессор command.com.

Применение внутренних и внешних команд DOS относится к области системного программирования.

1. Команда смены текущего дисковода:
a: — переход на дисковод a:

b: — переход на дисковод b:

c: — переход на дисковод c:

2. Команда вывода оглавления каталога: dir

Поэкранный (постраничный) вывод оглавления каталога, если оглавление очень большое: dir/p

dir a:\ — команда вывода оглавления корневого каталога на диске а:.

3. Команда смены текущего каталога: cd имя каталога

Переход в корневой каталог текущего диска: cd\

Переход из подкаталога в каталог: cd..

4. Команда создания каталога: md имя каталога

5. Команда удаления пустого каталога: rd имя каталога

6. Команда вывода содержимого текстового файла на экран:

7. Команда очистки экрана монитора: cls

8. Команда копирования файлов:

copy имя файла1 имя файла2 — копирование одного файла в другой

copy имя файла имя каталога — копирование файла в каталог;

copy имя файла prn — распечатка файла на принтере.

9. Создание текстового файла:

copy con: имя файла, нажать Enter, ввести построчно текст,

в конце каждой строки Enter, затем в конце F6 или Ctrl+Z и Enter.

10. Объединение содержимого двух и более текстовых файлов

(конкатенация файлов): copy имя 1-го файла + имя 2-го файла имя нового файла

11. Команда удаления файла: del имя файла или erase имя файла

12. Переименование файла: ren имя файла новое имя файла

13. Вывод версии DOS: ver

14. Вывод метки диска: vol

15. Ввод текущей даты: date

16. Ввод текущего времени: time

17. Exit — выход из командного процессора DOS.

Примечание: После ввода с клавиатуры указанных команд в командную

строку следует нажать клавишу Enter.

II. Основные внешние команды DOS (для версии MS-DOS 6.22).
Внешние команды DOS выполняют вспомогательные программы (утилиты),

расположенные в каталоге DOS на диске С:.

1. format имя диска: — форматирование диска (для дискет format a:

или format b:). Создание системного диска: format имя диска: /s

Будьте внимательны: при форматировании диска (дискеты) вся информация на нем уничтожается!

2. fdisk — разбиение жесткого диска на разделы (логические диски С, D, E и так далее).

Внимание: при разбиении жесткого диска на разделы вся информация на нем уничтожается!

3. sys имя диска: — перенос файлов ядра DOS на диск (дискету), создание системного диска (дискеты). Используется также для смены (обновления версии) DOS.

4. mem — вывод карты оперативной памяти. Чаще используется команда mem/c/p или mem/d/p (ключ p — постраничный вывод информации).

5. chkdsk c: /f — проверка файловой системы и восстановление потерянных кластеров.

6. scandisk — проверка файловой системы и диска на наличие логических сбоев. Для дискет scandisk a: или scandisk b:

7. label имя диска: — создание или обновление метки на диске, дискете.

8. undelete имя диска: — восстановление случайно стертых файлов.

9. diskcopy имя диска: имя диска: — создание точной копии дискеты.

10. print имя файла prn — печать файла на принтере в фоновом режиме. Отмена фоновой печати: print /t

11. graphics — поддержка печати информации с экрана (при нажатии клавиши Print Screen).

12. defrag c: /fd — устранение фрагментации файлов и оптимизация размещения информации на жестком диске (эта программа аналогична программе Speed Disk из комплекта Norton Utilities).

13. deltree имя каталога — удаление дерева каталогов (с файлами).

Внимание: Использовать эту команду можно только, если Вы уверены в необходимости удаления данного дерева каталогов! В противном случае будет утрачена важная информация!

14. msd — диагностика компьютера.

15. edit — вызов текстового редактора MS-DOS Editor.

16. qbasic — вызов языка программирования BASIC.

17. doskey — вызов программы, облегчающей редактирование содержимого командной строки (вводимых команд DOS).

18. tree c:\имя каталога /f — вывод содержимого указанного каталога.

19. msav — проверка дисков антивирусной программой MS-Antivirus.

20. memmaker — оптимизатор распределения оперативной памяти.

Форматы команд для утилиты MS-DOS mem.exe:
mem — стандартная карта ОЗУ;

mem/c/p — выдает список загруженных программ;

mem/d/p — выдает информацию о внутренних устройствах (например:

con, prn, LPT1 и т.д.) с адресацией;

mem/f/p — объем свободной памяти с адресацией

mem/m имя программы — размер памяти, занимаемый указанной

загруженной программой (резидентной, c расширением com и exe);

ключ /p дает постраничный вывод информации.

Создание файла в MS-DOS
Для создания файла в MS-DOS необходимо:

1. Ввести команду в командную строку: copy con: имя файла и нажать Enter.

Пример: copy con: c:\mark\proba.txt

2. Ввести текст и нажать F6 или Сtrl-Z, что означает конец строки, и нажать Enter. Будет создан файл proba.txt в каталоге MARK. Имя файла надо указывать с полным путем.

3. Если файл создается в текущем каталоге, то можно не указывать

полный путь (маршрут).

Назначение функциональных клавиш в MS-DOS
F1 -копирует по одному символу из буфера на экран.

F2 -копирует все символы из буфера на экран до заданного символа.

F3 -копирует все символы из буфера на экран.

F4 -пропускает все символы в буфере до определенного символа.

F5 -переносит все символы с экрана в буфер, не пытаясь выполнить их

F6 -означает конец строки (или CTRL-Z).

Остальные клавиши в MS-DOS не используются, но применяются в

большинстве прикладных программ.

Использование команды создания виртуального диска SUBST
Для создания виртуального диска (например, E), содержащего файлы из каталога ME, в командную строку надо записать: subst e: c:\me или subst e: c:\mark\refis для файлов из каталога REFIS. Переход на диск Е: производится по общему правилу для любого диска. Это в ряде случаев облегчает запуск программ, когда в команду Path уже нельзя вставить новый каталог (общая длина каталогов в команде Path не может превышать 128 байт). Данную команду можно вставить в файл autoexec.bat, тогда виртуальный диск будет устанавливаться постоянно. Команда subst еще называется командой определения синонима для имени каталога и используется, чтобы не набирать имени каталога, который часто используется. При создании и удалении файлов и каталогов на виртуальном диске E: тоже самое будет происходить синхронно и в каталоге ME на диске С:.

Создать таким способом еще один 2-й виртуальный диск F: уже нельзя. Каких-либо видимых изменений в оперативной или дисковой памяти при создании виртуального диска не происходит. Команда удаления виртуального диска E: subst e: /d. Команда subst относится к внешним командам DOS.

О некоторых внутренних командах DOS.
Если ввести в командную строку команды echo и verify, то можно

узнать их текущее состояние: echo is on или echo is off;

verify is on или verify is off.

Если ввести команду path, то будет выдана команда path из файла

autoexec.bat, т.е. текущий список каталогов, указанный в команде path.

Если ввести команду set, то будет указано ее текущее состояние,

то есть будет выдана та часть файла autoexec.bat, которая отно-

сится к заданию переменной окружения: path, prompt, set, а также

УКАЗАТЕЛЬ КОМАНД И УТИЛИТ MS-DOS

(Внутренние (*) и внешние команды MS-DOS)

ANSY.SYS установка драйвера консоли

ASSIGN переназначение дисковых устройств

ATTRIB установка атрибута файла

BATCH пакетные командные файлы (*.bat) *

BACKUP создание резервных копий для файлов

BREAK прерывание программы *

BUFFERS создание буферов в ОЗУ *

CHDIR (CD) переход в новый каталог *

CHKDSK проверка дисков

CLS очистка экрана *

COMMAND: второй командный процессор *

COMP сравнение дисковых файлов

COPY копирование файла *

COUNTRY установка формата даты и времени

CTTY переназначение консоли

DATE установка даты *

DEBUG отладчик программ

DEVICE установка новых драйверов устройств *

DIR просмотр каталогов *

DISKCOMP сравнение дисков

DISKCOPY дублирование дискет

DRIVER.SYS установка драйвера блочно-ориентированных устройств

ERASE (DEL) удаление файлов *

FCBS блоки управления файлами *

FDISK разбиение жесткого диска на разделы

FILES установка числа одновременно открытых файлов *

FIND поиск данных

FORMAT форматирование диска

GRAPHICS распечатка графических изображений

JOIN логическое объединение каталога на одном диске с другим диском в один каталог

LABEL создание и замена метки диска

LASTDRIVE установка максимального числа доступных дисководов *

LINK загрузчик (редактор) связей

MKDIR (MD) создание каталога *

MODE изменение режимов работы выходных устройств

MORE постраничный вывод файлов на экран

PATH указание пути поиска *

PRINT вывод на печать данных

PROMPT изменение формата приглашения DOS *

RENAME (REN) переименование файлов *

REPLACE селективная замена и копирование файлов

RESTORE восстановление файлов, резервированных по команде BACKUP

RMDIR (RD) удаление пустого каталога *

SELECT установка MS-DOS на новый диск с заданным типом клавиатуры, форматом даты и времени

SET установка переменной окружения *

SHELL применение дополнительного командного процессора *

SORT сортировка данных

SUBST создание виртуальных дисков

SYS копирование MS-DOS

TIME установка времени *

TREE вывод дерева каталогов

TYPE вывод на дисплей содержимого файла *

VDISK.SYS установка драйвера виртуального диска

VER вывод версии MS-DOS *

VERIFY проверка записи на диск *

VOL вывод метки диска *

XCOPY выборочное копирование групп файлов и каталогов

Основные виды оперативной памяти (ОЗУ)
Оперативная память (ОЗУ) — это устройство для временного хранения информации (только в процессе работы компьютера), обеспечивает быстрый доступ процессора к программе и обрабатываемым данным.

1. CMA — основная оперативная память (Conventional Memory Area).

(область 0 — 640K).

2. UMA — верхняя память (Upper Memory Area).

(область 640K — 1M).

3. UMB — блоки верхней памяти (Upper Memory Block).

4. HMA — высокая память (High Memory Area).

(область 1M + 64K).

5. XMA — расширенная память (Extended Memory Area).

(область, выше > 1M + 64K).

6. EMS — дополнительная память (Expanded Memory).

(расположена на отдельной плате).

Проблема 640 Кбайт
У IBM PC с процессором 8088 и 8086 оперативная память, доступная для DOS и прикладных программ, составляет не более 640 Кбайт. Это было шагом вперед для начала 80-х годов, по сравнению с 64 Кбайт для остальных компьютеров. Однако с появлением процессоров 80286, 80386 и старше, а также современных программ, например Windows, ограничение в 640 Кбайт превратилось в проблему, которая была успешно решена с появлением дополнительной памяти и особенно расширенной памяти. Расширенная память (Extended Memory) — это память выше, чем 1M + 64K. Благодаря появлению расширенной памяти, процессоры 80286, 80386SX и 80486SX могут непосредственно обращаться к 16 Мб памяти, а процессоры 80386DX, 80486DX и старше — к 4 Гб.

Дополнительная память (Expanded Memory) сейчас не применяется.

Доступ к расширенной памяти в MS-DOS и Windows обеспечивают драйвер himem.sys и менеджер расширенной памяти emm386.exe, которые загружаются с помощью файла config.sys. Основная память также как и раньше остается равной 640 Кб, но ее стараются максимально высвободить для прикладных программ, загружая драйверы клавиатуры, мыши и т.д. в верхнюю память (UMA и UMB) с помощью файла autoexec.bat. Стандартная величина ОЗУ IBM PC: 1 Мб; 2 Мб; 4 Мб; 8 Мб; 16 Мб; 32 Мб; 64 Мб и т.д.

Служит для вывода сведений о свободных и занятых областях памяти и программах, находящихся в памяти подсистемы MS-DOS. При запуске команды mem без параметров на экран выводятся сведения о свободной и об использованной памяти подсистемы MS-DOS.

Синтаксис

Параметры

Заметки

  • Использование параметра /program

Параметр /program /debug или /classify /p вместо /program .

Использование параметра /debug

Параметр /debug нельзя использовать совместно с параметром /program или /classify . Допускается использование сокращения /d вместо /debug .

Использование параметра /classify

Параметр /classify обеспечивает вывод сведений о размере каждой программы в десятичном и шестнадцатеричном формате, итоговые сведения об использовании памяти и список наибольших доступных блоков памяти. Параметр /classify нельзя использовать совместно с параметром /program или /debug . Допускается использование сокращения /c вместо /classify .

Вывод сведений о состоянии памяти

Подсистема MS-DOS выводит сведения о состоянии расширенной памяти, только если в память загружено что-либо по адресам выше 1 МБ.

Примеры

Предположим, подсистема MS-DOS сконфигурирована так, что используется расширенная память. Для вывода сведений об использовании всех областей памяти — обычной, расширенной и отображаемой, а также для вывода сведений о загруженных программах следует использовать следующую команду:

Результат будет выглядеть примерно следующим образом:

Адрес Имя Размер Тип 000000 000400 Вектор прерывания 000400 000100 Область обмена ПЗУ (ROM) 000500 000200 Область обмена DOS 000700 IO 000310 Системные данные 000A10 MSDOS 0014D0 Системные данные 001EE0 IO 0018D0 Системные данные KBD 000800 Системная программа HIMEM 000420 DEVICE= 000340 FILES= 000090 FCBS= 000170 LASTDRIVE= 000710 STACKS= 0037C0 COMMAND 000A40 Программа 004210 MSDOS 000070 — Свободно — 004290 COMMAND 0001F0 Окружение 004490 MEM 0001D0 Окружение 004670 MEM 017550 Программа 01BBD0 MSDOS 084410 — Свободно — 09FFF0 SYSTEM 028000 Системная программа 0C8000 IO 0083D0 Системные данные MOUSE 0083C0 Системная программа 0D03E0 MSDOS 000050 — Свободно — 0D0440 REDIR 0009F0 Программа 0D0E40 DOSX 007CA0 Программа 0D8AF0 DOSX 001030 Данные 0D9B30 MSDOS 0164C0 — Свободно — 655360 байт — всего обычной памяти 655360 байт — доступно для MS-DOS 637296 максимальный размер исполняемой программы 1048576 байт — всего непрерывной дополнительной памяти 0 байт — доступно непрерывной дополнительной памяти 405504 байт — доступной памяти XMS резидентная часть MS-DOS загружена в сегмент HMA

  • «Всего обычной памяти» представляет количество виртуальной памяти, выделенной подсистеме MS-DOS до первых 640 КБ.
  • «Доступно для MS-DOS» представляет объем выделенной обычной памяти, включая память, необходимую для Cmd.exe.
  • «Максимальный размер исполняемой программы» равен размеру наибольшего непрерывного блока обычной памяти, доступной для программ.
  • «Всего памяти EMS» (не показано в предыдущем примере) является количеством отображаемой памяти, которая может быть использована подсистемой MS-DOS.
  • «Свободно памяти EMS» (не показано в предыдущем примере) равно количеству отображаемой памяти, доступной программам.
  • «Всего непрерывной дополнительной памяти» равно объему памяти выше 1 МБ.
  • «Доступно непрерывной дополнительной памяти» является количеством памяти, доступным через интерфейс прерывания 15h. Эта память не используется диспетчерами расширенной памяти, такими как Himem.sys. Некоторые старые программы используют такую схему организации дополнительной памяти.
  • «Доступной памяти XMS» является объемом памяти, которая используется диспетчерами расширенной памяти, такими как Himem.sys, и доступна для использования программами.

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

Для вывода состояния используемой и свободной памяти дайте команду MEM без параметров.

Параметр /CLASSIFY перечисляет загруженные в память программы и показывает, сколько используется обычной и старшей памяти. MEM /CLASSIFY подсчитывает также общий объем используемой памяти и выводит наибольшие свободные блоки. /CLASSIFY можно сократить до /C.

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

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

/MODULE имя_модуля показывает, как использует память программный модуль (имя указывается обязательно). Выводит список областей памяти, выделенных данной программе, и их размеры. /MODULE можно сократить до /M.

Параметры /C, /F и /M можно использовать в сочетании с /PAGE, но не друг с другом.

Параметр /PAGE делает паузу после вывода каждого экрана. Чтобы автоматически добавить параметр /PAGE к команде MEM, можно использовать программу DOSKEY. Для этого включите в AUTOEXEC.BAT команды:

C:\dos\doskey
doskey mem=mem.exe $* /p

О проверке памяти на диске рассказывается в описании команды CHKDSK.

MS-DOS выводит информацию о дополнительной памяти только при ее установке в системе. Состояния расширенной памяти показывается только при наличии расширенной памяти, согласующейся с версией 4.0 LIM EMS. Состояние старшей памяти MS-DOS выводит только при установке программы работы с блоками UMB (типа EMM386) и включении в CONFIG.SYS команды DOS=UMB. При выполнении Windows версии 3.0 состояние старшей памяти не выводится.

В выводимой командой MEM информации «Adapter RAM/ROM» представляет собой память в подключаемых платах (типа видеоадаптера). «Largest executable program size» — это наибольший непрерывный блок доступной для программы обычной памяти, «Largest free upper memory block» — наибольшая доступная для программы область старшей памяти. «MS-DOS is resident in the high memory area» указывает, что MS-DOS работает в первых 64K дополнительной памяти, а не в обычной памяти.

Некоторые программные модули, такие как WIN386, распределяют несколько областей памяти. Команда MEM /MODULE выводит все области, выделенные для конкретной программы, с их размерами и адресами сегментов. Для блоков старшей памяти MEM /MODULE показывает также номер области. В столбце Type показывается, как программа использует конкретную область памяти. В графе «total size,» выводится общий объем памяти, выделенной MS-DOS для программы.

Команда MEMMAKER

Запускает программу MemMaker, которая оптимизирует память компьютера путем перемещения драйверов устройств и резидентных программ в старшую память. Использовать MemMaker можно на машинах с процессором 80386 или 80486 и дополнительной памятью. Не применяйте эту команду во время работы Windows.

Параметр /B выводит MemMaker в черно-белом режиме. Используйте его, если MemMaker некорректно работает на монохромном мониторе.

/BATCH запускает MemMaker в автоматическом режиме. При этом MemMaker сам отвечает на все подсказки по умолчанию. В случае ошибок MemMaker восстанавливает предыдущее содержимое файлов CONFIG.SYS, AUTOEXEC.BAT и (если это требуется) SYSTEM.INI Windows. После завершения работы MemMaker вы можете просмотреть в файле MEMMAKER.STS сообщения о состоянии.

Параметр /SESSION используется исключительно MemMaker в процессе оптимизации.

/SWAP:диск задает буквенную метку и диск, который был загрузочным диском. Задайте после двоеточия букву текущего диска. Этот параметр необходим только в том случае, если буквенная метка диска после запуска компьютера изменилась. В противном случае MemMaker не сможет найти системных файлов. При использовании программ Stacker 2.0, SuperStor или Microsoft DoubleSpace данный параметр указывать не нужно.

Параметр /T запрещает распознавание сетей IBM Token-Ring. Укажите данный параметр, если ваш компьютер включает в себя такую сеть, и при работе с MemMaker у вас возникли проблемы.

/UNDO указывает MemMaker, что последние изменения нужно отменить. Когда MemMaker оптимизирует системную память, она изменяет файлы CONFIG.SYS и AUTOEXEC.BAT (и при необходимости также файл Windows SYSTEM.INI). Если после завершения работы MemMaker ваша система не работает должным образом, или вы не удовлетворены новой конфигурацией памяти, с помощью запуска MemMaker с параметром /UNDO вы можете вернуться к предыдущей конфигурации памяти.

/W:n,m показывает, сколько старшей памяти нужно зарезервировать для буферов трансляции Windows. Для этой цели Windows требуется две области старшей памяти. Первая из них задается размером n, вторая — m. По умолчанию MemMaker не резервирует для Windows старшую память (что эквивалентно /W:0,0).

О загрузке в старшую память драйверов устройств рассказывается в описании команды DEVICEHIGH, а о загрузке программ — в описании LOADHIGH.

Команда MENUCOLOR

Устанавливает для меню запуска цвет фона и текста. Используется только в блоке меню в файле CONFIG.SYS.

Меню запуска — это список пунктов выбора, которые выводятся при запуске компьютера. Это меню определяется специальными командами CONFIG.SYS. Каждый элемент меню соответствует набору команд CONFIG.SYS, который называется блоком конфигурации. Меню запуска позволяет после запуска компьютера выбрать одну из нескольких конфигураций.

Параметр x задает цвет текста меню. Параметр y задает цвет фона (по умолчанию — черный). Допускаются значения x и y от 0 до 15, однако они должны быть различными.

Значения цветов приведены в следующей таблице:

Например, команда menucolor=15, 2 задает белый цвет текста на зеленом фоне. На некоторых дисплеях цвета с 8 по 15 выводятся с мерцанием.

MENUCOLOR — это одна из 6 специальных команд CONFIG.SYS, предназначенных для определения меню запуска с несколькими конфигурациями. См. также команды INCLUDE, MENUITEM, MENUDEFAULT, NUMLOCK, SUBMENU.

Команда MENUDEFAULT

Задает используемый по умолчанию элемент меню запуска и устанавливает, если нужно, значение тайм-аута. Используется только в блоке меню в файле CONFIG.SYS. Если эта команда не задана, MS-DOS выбирает по умолчанию элемент 1.

MENUDEFAULT — это одна из 6 специальных команд CONFIG.SYS, предназначенных для определения меню запуска с несколькими конфигурациями. См. также команды INCLUDE, MENUITEM, MENUCOLOR, NUMLOCK, SUBMENU.

Параметр «имя_блока» задает используемый по умолчанию пункт меню и связанный с ним блок конфигурации, который должен определяться в CONFIG.SYS. Когда MS-DOS выводит меню запуска, используемый по умолчанию пункт меню подсвечивается, а номер его выводится после подсказки «Enter a choice». «Тайм_аут» определяет, сколько секунд должна ждать MS-DOS перед запуском компьютера с конфигурацией по умолчанию. Если это значение не задано, MS-DOS просто ожидает нажатия клавиши ENTER. Вы можете задать значение тайм-аута от 0 до 90 секунд. 0 определяет автоматически выбор конфигурации по умолчанию.

После запуска MS-DOS выводит меню следующего вида (см. пример в описании команды INCLUDE):

MS-DOS 6 Startup Menu
=====================
1. Базовая конфигурация
2. Нормальная конфигурация
3. Специальная конфигурация
Enter a choice: 2 Time remaining: 30

После вывода этого меню MS-DOS ждет 30 секунд. Если не выбран другой пункт, то MS-DOS запускает компьютер с помощью команд в блоке конфигурации, заданном по умолчанию.

Команда MENUITEM

Определяет пункт меню запуска. Используется только в блоке меню в файле CONFIG.SYS. Меню может содержать до 9 пунктов выбора.

MENUITEM — это одна из 6 специальных команд CONFIG.SYS, предназначенных для определения меню запуска с несколькими конфигурациями. См. также команды: INCLUDE, MENUDEFAULT, MENUCOLOR, NUMLOCK, SUBMENU.

Параметр «имя_блока» задает имя соответствующего блока конфигурации, который должен определяться где-либо в файле CONFIG.SYS. Если при запуске выбирается пункт меню, MS-DOS выполняет команды в соответствующем блоке конфигурации, а также команды в начале CONFIG.SYS и все команды в блоках конфигурации с заголовком .

Если MS-DOS не может найти блок с заданным именем, то пункт меню не выводится. Имя блока может включать в себя до 70 символов и содержать большинство печатаемых символов, кроме пробелов, обратной и прямой косой черты, запятой, точки с запятой, знака равенства или квадратных скобок. Параметр «текст_меню» задает текст, который MS-DOS должна выводить для данного пункта меню. Если текст не задается, MS-DOS выводит в качестве элемента меню имя блока. Текст меню может быть длиной до 70 символов и содержать любые символы.

Блок меню — это набор команд определения меню, которые начинаются с заголовка блока (имени блока в квадратных скобках). Для получения меню файл CONFIG.SYS должен содержать блок меню с заголовком блока . Для определения подменю можно использовать команду SUBMENU. Каждое подменю имеет свой собственный блок, который может называться так, как вы хотите. Блок меню должен содержать по крайней мере одну команду MENUITEM или SUBMENU.

MS-DOS выводит пункты меню в том порядке, в котором они включаются в блок меню, и нумерует их автоматически. Первый пункт (элемент) меню всегда имеет номер 1. Всего меню может содержать до 9 пунктов. Для определения большего числа пунктов можно использовать команду SUBMENU.

Следующий блок определяет меню запуска с двумя элементами — Main и Secondary:

При запуске MS-DOS будет выводиться меню вида:

MS-DOS 6 Startup Menu
=====================
1. Main
2. Secondary
Enter a choice: 1

См. также пример в команде INCLUDE.

Примечание: Если ваша система русифицирована, то в нее может быть включен соответствующий набор символов с кодом 866 (Россия).

Если команда KEYB дается без параметров, то MS-DOS выводит текущую схему клавиатуры, соответствующий клавиатуре набор символов и текущий набор символов, используемый клавиатурой и монитором:

Current keyboard code: FR code page: 437

Current CON code page: 437

(Текущий код клавиатуры, кодовая страница,

текущая кодовая страница консоли)

Чтобы переключиться из текущей конфигурации клавиатуры в конфигурацию по умолчанию, нажмите клавиши CTRL+ALT+F1. Для возврата к резидентной в памяти конфигурации клавиатуры нажмите CTRL+ALT+F2. Для переключения в стандартный для некоторых стран «режим пишущей машинки» нажмите CTRL+ALT+F7.

Коды выхода программы Keyb приведены в следующей таблице:

Например, чтобы загрузить французскую клавиатуру (а файл KEYBOARD. SYS находится в каталоге SYS на диске C), дайте команду:

keyb fr,c:\sys\keyboard. sys

Команда LABEL

Создает, изменяет или удаляет метку тома (имя диска). MS-DOS выводит метку тома в листинге каталога. При наличии номера тома выводится также этот номер.

Чтобы MS-DOS вывела текущую метку тома и его номер (если они существуют), а также подсказку для ввода метки или удаления существующей, дайте команду:

Параметр «диск:» задает именуемый диск, «метка» задает новую метку тома. Между диском и меткой указывается двоеточие (:). Например, чтобы пометить диск A, содержащий отчеты за 1993 год, можно ввести label a:reports1993.

Если в команде LABEL задается метка, MS-DOS выводит следующее сообщение:

Volume in drive A is xxxxxxxxxxx

Volume Serial Number is xxxx-xxxx

Volume label (11 characters, ENTER for none)?

(Том в дисководе A — xxxxxxxxxxx,

порядковый номер тома — xxxx-xxxx,

введите метку тома (11 символов) или нажмите ENTER)

Если диск не имеет номера, то он не выводится. Для удаления текущей метки вы можете ввести новую или нажать ENTER (этом случае метка присваиваться не будет). Если диск имеет метку, и вы нажали ENTER, MS-DOS выводит сообщение:

Delete current volume label (Y/N)?

(Удалить текущую метку (Да/Нет)?)

Метка тома может включать в себя до 11 символов и содержать пробелы и табуляции. Не используйте в метке тома следующие символы:

MS-DOS выводит метку тома буквами в верхнем регистре. Если метка вводится в нижнем регистре, команда LABEL преобразует их в верхний. С диском, созданным с помощью команды SUBST, LABEL не работает.

См. также команды DIR и VOL.

Команда LASTDRIVE

Задает максимальное число дисководов, к которым вы можете обращаться. Используется только в файле CONFIG. SYS. Задаваемое значение представляет последний дисковод, распознаваемый MS-DOS.

Параметр x задает буквенную метку дисковода в диапазоне от A до Z.

Если команда LASTDRIVE не используется, то по умолчанию задается буква, следующая за последней используемой. Например, если используются диски A и C, то значением по умолчанию будет D.

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

Команда LOADFIX

Обеспечивает загрузку программы над первыми 64К обычной памяти и запускает программу.

LOADFIX [диск:][маршрут]имя_файла [параметры_программы]

Параметр [диск:][маршрут] задает диск и каталог программы. Параметр «имя_файла» задает имя файла программы, «параметры_программы» — используемые программой параметры.

Некоторые программы при загрузке программы или ее части в первые 64К оперативной памяти и невозможности успешного выполнения выводят сообщение «Packed file corrupt». Обычно эта ошибка вызывается загрузкой драйверов устройств в старшую память, что приводит к освобождению первых 64К обычной памяти. Используйте в этом случае команду LOADFIX. Лучше всего включить ее в начало команды запуска программы.

Команда LOADHIGH (LH)

Загружает программу в старшую память. Это предоставляет больше обычной памяти для других программ.

Для задания области (областей) памяти, куда нужно загрузить программу, используется синтаксис:

LOADHIGH можно сократить до LH.

Параметр /L:область1[,мин_разм1][;область2[,мин_разм2]. ] задает одну или более областей памяти, в которые требуется загрузить программу. Если указано /L, MS-DOS загружает программу в наибольший свободный блок старшей памяти (UMB) и делает все другие блоки UMB доступными для программы. Параметр /L применяется для загрузки программы в конкретную область (области) памяти или для задания областей, которые она может использовать.

Чтобы загрузить программу в наибольший блок в конкретной области старшей памяти, задайте после параметра /L номер блока. Например, чтобы загрузить программу в наибольший блок конкретной области старшей памяти, задайте после параметра /L номер области. Например, для загрузки программы в наибольший свободный блок в области 2 нужно задать /L:2. (Список свободных областей выводится по команде MEM /F.)

После загрузки по параметру /L программа может использовать только заданную область памяти. Некоторые программы используют более одной области памяти. Для таких программ вы можете задать несколько областей. В этом случае номера блоков разделяются точкой с запятой, например /L:2;3. (Чтобы выяснить характер использования программой памяти, дайте команду MEM /M и задайте в качестве аргумента имя программы.)

LOADHIGH /L обычно загружает программу в UMB в заданной области только если эта область содержит блок UMB большего размера, чем загружаемый объем программы (который равен обычно объему выполняемого файла). Если при выполнении программе требуется больше памяти, чем при загрузке, то чтобы избежать загрузки программы в слишком маленький для нее блок, вы можете использовать параметр «мин_разм». При указании этого значения MS-DOS загружает программу в данную область, только если она содержит UMB, превышающий размер программы и значение «мин_разм».

Параметр /S сжимает при загрузке программы UMB до его минимального размера. Это делает использование памяти наиболее эффективным. Данный параметр обычно задается только программой MemMaker. Применять его можно только в сочетании с параметром /L. Он влияет только на те блоки UMB, для которых задан минимальный размер.

Параметр [диск:][маршрут]имя_файла задает расположение и имя файла, который вы хотите загрузить.

«Параметры» задают необходимую программе информацию командной строки.

О загрузке в старшую память драйверов устройств рассказывается в описании команды DEVICEHIGH, а о программе MemMaker — в описании MEMMAKER.

Для использования команды LOADHIGH в файл CONFIG. SYS необходимо включить команду DOS=UMB. Кроме того, перед загрузкой программы в старшую память нужно установить администратор старшей памяти. В MS-DOS предусмотрена программа EMM386.EXE, которая управляет областями старшей памяти на компьютере с процессором 80386 или старше. Для установки EMM386, добавьте в файл CONFIG. SYS команду DEVICE. (Команде DEVICE для EMM386 должна предшествовать команда DEVICE для HIMEM. SYS.)

Когда вы используете команду LOADHIGH для загрузки программы, MS-DOS пытается загрузить ее в старшую память. Если там недостаточно места, то MS-DOS загружает программы в обычную память. (Чтобы определить, какие блоки UMB использует программа, дайте команду MEM /M и укажите имя программы в качестве аргумента.)

Команду LOADHIGH удобно включать в файл AUTOEXEC. BAT. (При использовании MemMaker это происходит автоматически.)

Приведем пример. Следующая команда загружает программу OPERS. EXE в область 1 и дает ей доступ к областям старшей памяти 5 и 6:

lh /L:1;5;6 c:\user\progs\opers. exe

Команда MEM

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

Для вывода состояния используемой и свободной памяти дайте команду MEM без параметров.

Параметр /CLASSIFY перечисляет загруженные в память программы и показывает, сколько используется обычной и старшей памяти. MEM /CLASSIFY подсчитывает также общий объем используемой памяти и выводит наибольшие свободные блоки. /CLASSIFY можно сократить до /C.

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

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

/MODULE имя_модуля показывает, как использует память программный модуль (имя указывается обязательно). Выводит список областей памяти, выделенных данной программе, и их размеры. /MODULE можно сократить до /M.

Параметры /C, /F и /M можно использовать в сочетании с /PAGE, но не друг с другом.

Параметр /PAGE делает паузу после вывода каждого экрана. Чтобы автоматически добавить параметр /PAGE к команде MEM, можно использовать программу DOSKEY. Для этого включите в AUTOEXEC. BAT команды:

doskey mem=mem. exe $* /p

О проверке памяти на диске рассказывается в описании команды CHKDSK.

MS-DOS выводит информацию о дополнительной памяти только при ее установке в системе. Состояния расширенной памяти показывается только при наличии расширенной памяти, согласующейся с версией 4.0 LIM EMS. Состояние старшей памяти MS-DOS выводит только при установке программы работы с блоками UMB (типа EMM386) и включении в CONFIG. SYS команды DOS=UMB. При выполнении Windows версии 3.0 состояние старшей памяти не выводится.

В выводимой командой MEM информации «Adapter RAM/ROM» представляет собой память в подключаемых платах (типа видеоадаптера). «Largest executable program size» — это наибольший непрерывный блок доступной для программы обычной памяти, «Largest free upper memory block» — наибольшая доступная для программы область старшей памяти. «MS-DOS is resident in the high memory area» указывает, что MS-DOS работает в первых 64K дополнительной памяти, а не в обычной памяти.

Некоторые программные модули, такие как WIN386, распределяют несколько областей памяти. Команда MEM /MODULE выводит все области, выделенные для конкретной программы, с их размерами и адресами сегментов. Для блоков старшей памяти MEM /MODULE показывает также номер области. В столбце Type показывается, как программа использует конкретную область памяти. В графе «total size,» выводится общий объем памяти, выделенной MS-DOS для программы.

Команда MEMMAKER

Запускает программу MemMaker, которая оптимизирует память компьютера путем перемещения драйверов устройств и резидентных программ в старшую память. Использовать MemMaker можно на машинах с процессором 80386 или 80486 и дополнительной памятью. Не применяйте эту команду во время работы Windows.

Параметр /B выводит MemMaker в черно-белом режиме. Используйте его, если MemMaker некорректно работает на монохромном мониторе.

/BATCH запускает MemMaker в автоматическом режиме. При этом MemMaker сам отвечает на все подсказки по умолчанию. В случае ошибок MemMaker восстанавливает предыдущее содержимое файлов CONFIG. SYS, AUTOEXEC. BAT и (если это требуется) SYSTEM. INI Windows. После завершения работы MemMaker вы можете просмотреть в файле MEMMAKER. STS сообщения о состоянии.

Параметр /SESSION используется исключительно MemMaker в процессе оптимизации.

/SWAP:диск задает буквенную метку и диск, который был загрузочным диском. Задайте после двоеточия букву текущего диска. Этот параметр необходим только в том случае, если буквенная метка диска после запуска компьютера изменилась. В противном случае MemMaker не сможет найти системных файлов. При использовании программ Stacker 2.0, SuperStor или Microsoft DoubleSpace данный параметр указывать не нужно.

Параметр /T запрещает распознавание сетей IBM Token-Ring. Укажите данный параметр, если ваш компьютер включает в себя такую сеть, и при работе с MemMaker у вас возникли проблемы.

/UNDO указывает MemMaker, что последние изменения нужно отменить. Когда MemMaker оптимизирует системную память, она изменяет файлы CONFIG. SYS и AUTOEXEC. BAT (и при необходимости также файл Windows SYSTEM. INI). Если после завершения работы MemMaker ваша система не работает должным образом, или вы не удовлетворены новой конфигурацией памяти, с помощью запуска MemMaker с параметром /UNDO вы можете вернуться к предыдущей конфигурации памяти.

/W:n, m показывает, сколько старшей памяти нужно зарезервировать для буферов трансляции Windows. Для этой цели Windows требуется две области старшей памяти. Первая из них задается размером n, вторая — m. По умолчанию MemMaker не резервирует для Windows старшую память (что эквивалентно /W:0,0).

О загрузке в старшую память драйверов устройств рассказывается в описании команды DEVICEHIGH, а о загрузке программ — в описании LOADHIGH.

Команда MENUCOLOR

Устанавливает для меню запуска цвет фона и текста. Используется только в блоке меню в файле CONFIG. SYS.

Меню запуска — это список пунктов выбора, которые выводятся при запуске компьютера. Это меню определяется специальными командами CONFIG. SYS. Каждый элемент меню соответствует набору команд CONFIG. SYS, который называется блоком конфигурации. Меню запуска позволяет после запуска компьютера выбрать одну из нескольких конфигураций.

Параметр x задает цвет текста меню. Параметр y задает цвет фона (по умолчанию — черный). Допускаются значения x и y от 0 до 15, однако они должны быть различными.

Значения цветов приведены в следующей таблице:

Илон Маск рекомендует:  Простой дизайн с каруселью HTML, CSS
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL