Вернуться   Компьютерный форум > Блоги > Базаров
Оценить эту запись

Использование оперативной памяти в DOS. Структура оперативной памяти в DOS

Запись от Базаров размещена 11.07.2015 в 12:43

В чем тут проблема
MS DOS создавалась для микропроцессора Intel-8088, который мог работать только с одним Мбайтом памяти. Из этого Мбайта 384 Кбайта были зарезервированы для хранения BIOS и использования содержащимися в компьютере контроллерами. Так что для DOS, драйверов, резидентных программ и запускаемых пользователем прикладных программ можно было использовать лишь 640 Кбайт оперативной памяти, а этого количества очень скоро стало не хватать.
Вскоре после появления MS DOS были выпущены микропроцессоры, умеющие обращаться с гораздо большим количеством памяти. Но заложенные в MS DOS принципиальные ограничения не позволяли DOS и DOS-программам использовать память сверх 640 Кбайт. Для обхода этих ограничений пришлось разрабатывать различные способы и трюки, которых было придумано достаточно много. В результате кроме обычной памяти (то есть памяти в пределах 640 Кбайт) появилась EMS-память, расширенная память, верхняя память, область НМА и т.д. Как говорится в детских стихах: "хозяйка с базара домой принесла: картошку, капусту, морковку, горох, петрушку и свеклу. Ох!..". Но у пользователей говорить "ох" имеется куда больше оснований: та хозяйка положила все эти овощи в суп, а пользователю приходиться готовить из каждого овоща отдельное блюдо, иначе говоря, обращаться с перечисленными выше видами памяти совершенно по-разному. Разобраться в этом не так-то просто, но мы попробуем.
Как говорилось ранее, операционная система DOS была рассчитана на компьютер с микропроцессором Intel-8088 или Intel-8086. А эти микропроцессоры могут обращаться только к одному Мбайту памяти. Поэтому DOS-программы могут обращаться только к первому Мбайту памяти, точнее, к памяти, имеющей адреса в первом Мбайте.
Память, которую могут непосредственно использовать DOS-программы (и другие программы, рассчитанные на микропроцессор Intel-8088), состоит из двух частей.
Обычная память
Первые 640 Кбайт памяти могут использоваться прикладными программами и операционной системой. Как правило, эту часть памяти называют обычной памятью (по-английски - conventional memory). Обычно младшие адреса обычной памяти занимает DOS. драйверы и резидентные программы, а остальная часть свободна для использования прикладными программами.
Верхняя память
Остальные адреса памяти - от 640 Кбайт до 1 Мбайта - ("верхняя память", по-английски - upper memory) зарезервированы для служебных целей, в частности:
  • для хранения BIOS - программ, обезпечивающих тестирование компьютера, начальную загрузку ОС, а также выполнение основных низкоуровневых услсг ввода-вывода (обычно BIOS располагается в старших адресах первого Мбайта памяти);
  • для передачи изображения на экран;
  • для хранения различных расширений BIOS, которые поставляются вместе с некоторыми контроллерами (видеоконтроллером, контроллером дисков и т.д.).
Замечание. Как правило, оперативная память, занятая BIOS и расширениями BIOS, доступна только для чтения, запись каких-либо данных туда невозможна. Такая память называется ROM (read only memory), а память, доступная и для чтения, и для записи - RAM (random access memory, память с произвольным доступом). Содержимое ROM-памяти сохраняется и при выключении компьютера, а содержимое RAM-памяти - пропадает.
Объем свободной обычной памяти
Для DOS-программ особо важен объем свободной обычной памяти компьютера, не занятой DOS, драйверами и резидентными программами. Как правило, общий объем обычной памяти компьютера составляет 640 Кбайт, из них от 16 до 100 Кбайт занято DOS, драйверами и резидентными программами. Остальная часть обычной памяти может использоваться прикладными программами.
Барьер 640 Кбайт
Итак, для DOS-программ доступная оперативная память должна была составлять не более 640 Кбайт. В начале 80-х годов, когда разрабатывался компьютер IBM PC, возможность работы с 640 Кбайтами была большим шагом вперед: остальные компьютеры тогда могли работать только с 64 Кбайтами памяти. Кстати, первые модели IBM PC были оснащены всего 256 Кбайтами памяти, хотя стоили 5000 дол.
Но очень скоро выяснилось, что для многих программ 640 Кбайт мало (тем более что из этих 640 Кбайт до 100 Кбайт могут занимать DOS и различные системные программы - драйверы устройств и резидентные программы). А очень широкому кругу программ (табличным процессорам, издательским системам, графическим редакторам, многим научным и инженерным программам и т.д.) для эффективной работы на реальных задачах был необходим доступ к гораздо большему количеству памяти - как минимум в несколько Мбайт. Ведь 640 Кбайт - это на поверку не так уж и много: даже одна матрица вещественных чисел размером 300х300 требует больше места!
И очень скоро способы увеличения количества оперативной памяти, доступной программам, были найдены. А именно, были внедрены два новых вида памяти - EMS-память и расширенная память.
Размещено в Без категории
Просмотров 3698 Комментарии 0 Отправить другу ссылку на эту запись
Всего комментариев 0

Комментарии

 

Текущее время: 09:36. Часовой пояс GMT +4. Powered by vBulletin® Version 5.8.9
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.