Реклама:

В первых компьютерах память была очень мала по объему и к тому же дорого стоила. IBM-650, ведущий компьютер того времени (конец 50-х годов), содержал всего 2000 слов памяти. Один из первых 60 компиляторов ALGOL был написан для компьютера с объемом памяти всего 1024 слова. Древняя система с разделением времени прекрасно работала на компьютере PDP-1, общий объем памяти которого составлял всего 4096 18-разрядных слов для операционной системы и пользовательских программ. В те времена программисты тратили очень много времени, пытаясь вместить свои программы в крошечную память. Часто приходилось использовать более медленный алгоритм только потому, что более быстрый не удавалось разместить в памяти компьютера.

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

Хотя эта технология широко использовалась на протяжении многих лет, она требовала длительной кропотливой работы, связанной с управлением оверлеями. В 1961 году группа исследователей из Манчестера (Англия) предложила метод автоматического выполнения процесса наложения, при котором программист мог вообще не знать об этом процессе [73]. Этот метод, в основе которого, как сейчас говорят, лежит использование виртуальной памяти, имел очевидное преимущество, поскольку освобождал программиста от массы нудной работы.

Впервые этот метод был применен в ряде компьютеров, выпущенных в 60-е годы. К началу 70-х годов виртуальная память была реализована в большинстве компьютеров. В настоящее время даже компьютеры1 на одной микросхеме, в том числе Pentium 4 pi UltraSPARC III, содержат очень сложные системы виртуальной памяти. Мы рассмотрим их далее в этой главе.

Глава 6. Уровень операционной системы || Оглавление || Страничная организация памяти