Проходя курс Операционных систем, и узнав про виртуальную память, я задумался.
Как я понял: виртуальная память
а) внушает процессору, что у него 2**разрядность_процессора памяти, а не жалкие 2 плашки по 2 гига, путём предоставления ему соответствующего адресного пространства
б) всё, что не влезло в ОЗУ, она кидает на диск.
в) когда процессор обращается к адресу, который есть на реальной плашке, он сразу получает данные. Если он бросает вызов на то, что в реале на диске лежит - менеджер виртуалки меняет местами этот кусок с ненужным куском на оперативке, и после этого уже с оперативки кидает процессору нужный кусок.
Специалисты, я прав?
Собственно, вопрос:
А если менеджер виртуальной памяти просто не будет делать эти обмены между ОЗУ и диском, то что будет? Процессору ведь плевать, он обращается по существующему адресу. Значит, можно запустить программу полностью на жёстком диске, не помещая её в реальную плашку? В теории. Типа, понятно, что она будет работать в 1000 раз медленнее. Но ведь это возможно?
ИЛИ процессор напрямую связан ТОЛЬКО с каналами ОЗУ, и даже менеджер виртуалки не способен перенаправить страницу из своей области на диске в процессор прямотоком, минуя промежуточную запись на плашку?
НО ведь процессор имеет шину памяти непосредственно до диска, значит по идее менеджер виртуалки МОЖЕТ кидать страницы прямотоком с диска, минуя ОЗУ?