Современные операционные системы

Современные операционные системы
Что такое операционная система / Виртуальная память

Виртуальная память




Виртуальная память (которая будет рассмотрена в главе 3) позволяет запускать программы, размер которых превышает объем установленной на машине физической памяти, за счет перемещения фрагментов адресного пространства между оперативной памятью и диском. Она прошла похожий путь развития, появившись впервые на универсальных машинах, затем переместившись на мини- и микрокомпьютеры. Виртуальная память также позволяла программам во время работы динамически компоноваться с библиотеками, вместо того чтобы быть скомпилированными со всеми необходимыми библиотеками в единую программу. MULTICS была первой системой, позволявшей работать с такими программами. Со временем эта идея получила распространение и теперь широко используется на большинстве UNIX и Windows систем.

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



Полное описание: Виртуальная память




С этим описанием рассматриваются следующие темы:


Большие объемы памяти
У первых универсальных машин был ограниченный объем памяти. В полной конфигурации машины IBM 7090 или 7094, доминировавшие на рынке с конца 1959 и до 1964 года, имели память объемом всего лишь в 128 Кбайт. Разработка программ для них велась в основном на ассемблере, и операционная система также была написана на ассемблере, чтобы сэкономить драгоценную по тем временам память. Со временем компиляторы для таких языков, как FORTRAN и COBOL, стали настолько качественными, что ассемблер был объявлен у ... Читать

Свопинг
Если у компьютера достаточный объем памяти для размещения всех процессов, то все рассмотренные до сих пор схемы будут в той или иной степени работоспособны. Но на практике суммарный объем оперативной памяти, необходимый для размещения всех процессов, зачастую значительно превышает имеющийся объем ОЗУ. На обычных Windows- или Linux-системах при запуске компьютера могут быть запущены около 40-60 или более процессов. Например, при установке приложения Windows зачастую выдаются команды, чтобы при по ... Читать

Адресные пространства
Каждый компьютер обладает определенным объемом оперативной памяти, используемой для хранения исполняемых программ. В самых простых операционных системах в памяти присутствует только одна программа. Для запуска второй программы сначала нужно удалить первую, а затем загрузить в память вторую на её место. Более изощренные операционные системы позволяют одновременно находиться в памяти нескольким программам. Чтобы исключить взаимные помехи (и помехи работе операционной системы), нужен какой-то защит ... Читать

Аппаратные средства защиты
На ранних универсальных машинах вроде IBM 7090/7094 аппаратные средства защиты отсутствовали, поэтому в процессе работы эти машины могли выполнять лишь одну программу, которая при наличии ошибок могла затереть операционную систему и вывести из строя всю машину. С появлением IBM 360 стали доступны примитивные формы аппаратных средств защиты, поэтому данные машины могли содержать в памяти несколько программ одновременно, позволяя им работать по очереди (в режиме многозадачности). Однозадачная рабо ... Читать

Виртуальная память
В то время как для создания абстракции адресного пространства могут быть использованы базовые и ограничительные регистры, нужно решить еще одну проблему: управление ресурсоемким программным обеспечением. Несмотря на быстрый рост объемов памяти, объемы, требующиеся программному обеспечению, растут намного быстрее. В 80-е годы многие университеты работали на машинах VAX, имеющих память объемом 4 Мбайт, под управлением систем с разделением времени, которые одновременно обслуживали с десяток (более ... Читать