Как используется во время открывания программы ОЗУ, процессор и т.д.?
Привет!
Если ты хочешь получить интересные приложения.
Тогда подпишись на мой Telegram канал и наслаждайся apk-шками.
Вот ссылка на канал -- https://t.me/HackAppsUsing
Будем исходить из того, что (как это показано на иллюстрации к вопросу) в программе Проводник (explorer.exe) на некотором файле некто нажал Enter или выполнил двойной щелчок.
Программа Проводник в соответствии с настройками в системном реестре опознаёт этот файл как executable (то есть программу) и начинает её запуск. Для этого Проводник собирает следующие данные:
И всё это хозяйство Проводник отдаёт операционной системе, вызывая функцию CreateProcess. Эта функция проживает в библиотеке kernel32.dll (эта библиотека уже подгружена в память, так как Проводник её активно использует)
Функция CreateProcess делает следующее:
Эта нить, встраивается в очередь процессов. Операционная система как виртуозная арфистка перебирает все существующие нити по очереди в соответствии с их приоритетом, и каждой даёт возможность работать немного времени, потом процессорные ресурсы отдаются другому процессу и т.д. То есть в этой арфе постоянно появляются новые струны, и потом вынимаются, прямо на ходу.
Получив свою порцию процессорного времени нить заставляет процессор перейти к определённому месту в памяти в сегменте кода и некоторое время процессор выполняет инструкции, которые там записаны. Так работает любая программа.
Что конкретно делает эта программа это уже её собственное дело. Она может создавать свои нити для распараллеливания работы, открывать и читать другие файлы, выделять себе еще немного оперативной памяти для данных, запускать другие программы, создавать графический (оконный) контекст, что-то рисовать в нём, слушать клавиатуру и другие устройства, и так далее. В конце концов программа сворачивает все свои потоки включая основной, и тогда все занятые этой программой ресурсы (память, открытые файлы, окна…) высвобождаются и возвращаются операционной системой.