Окт 13

Управление памятью

Память — это один из важнейших разделяемых ресурсов в операционной системе. Если одновременно запущены несколько приложений, то они должны разделять память, не выходя за пределы выделенного адресного пространства. Так как одни программы запускаются, а другие завершаются, то память фрагментирует-ся. Система должна уметь объединять свободное пространство памяти, перемещая блоки кода и данных.
Система Windows обеспечивает достаточно большую гибкость в управлении памятью. Если объем доступной памяти меньше объема исполняемого файла, то система может загружать исполняемый файл по частям, удаляя из памяти отработавшие фрагменты. Если пользователь запустил несколько копий, которые также называют отдельными экземплярами приложения, то система размещает в памяти только одну копию исполняемого кода, которая используется этими экземплярами совместно. Программы, запущенные в Windows, могут использовать также функции из других файлов, которые называются библиотеками динамической компоновки — DLL (dynamic link libraries). Система Windows поддерживает механизм связи программ во время их работы с функциями из DLL. Даже сама операционная система Windows, no существу, является набором динамически подключаемых библиотек.
Механизмы управления памятью непрерывно совершенствовались по мере развития Windows. В данный момент Win32 API реализован для 32-разрядной операционной системы с плоским адресным пространством.