March 11th, 2009

lenin

Не совсем программистское

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

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

Проницательный читатель задастся вопросом: что же будет, если в процессе работы программы её выполняемый файл удалят или изменят?

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

С изменением аналогично. Системы, не позволяющие удалять используемые файлы, изменять их не позволяют и подавно; другие - в частности, Linux - удалять разрешают, а изменять - нет. Этот запрет, понятное дело, должен сопровождаться каким-то сообщением об ошибке. Collapse )