Пожалуйста, помогите с этим вопросом.
нужно то, куда она сначала попадает, потом куда идёт и т. д.
Другие языки программирования и технологии
Опишите процесс выполнения программы
Грубо говоря, программный код записывается в виртуальное адресное пространство, адрес смещения от базы указан в самом exe, потом, находясь непосредственно в памяти выполняется. Обычно упрощенно считается, что ЦП изымает инструкции из ОЗУ и выполняет их последовательно, может быть реализован конвейер.. . Непонятно, для чего задан данный вопрос: это для учебы или нет, если да, то хотелось бы знать предмет. К тому же непонятно, что имеется в виду под программой: простой бинарный exe или, может быть программный код и имеется в виду последовательность компиляции? Тогда зависит от компилятора. Некоторые ассемблируют код, некоторые нет...
При запуске программы ОС загружает ее в ОЗУ и передает управление в заранее описанную компилятором точку входа, после чего программа фигачит дальше подряд по всем командам, изредка отвлекаясь на прерывания. В конце программа сообщает ОС, что ее можно убивать, вызовом прерывания ОС или через API. Это в архитектуре ПК, для нерезидентных и не являющихся обработчиками прерываний программ. В других вычислительных устройствах могут быть вариации.
ПРЕДУПРЕЖДЕНИЕ МОЖЕТ БЫТЬ ЧТО НЕ СООТВЕТСВУЮТ ДЕЙСТВИТЕЛЬНОСТИ !!!
при загрузке ОС (примерно, насколько я помню, я нечитал про систему уже лет 10)
-------------------------
1. ПЗУ считывает с жесткого / компакт диска или дискеты первые 512 байт (512 байт = 1 страница, = 1 сектор) и загружает в ОЗУ, и запускает эту программку
2. Эти 512 байт называют "загрузчиком"
3. Загрузчик грузит ядро (т. е. в 512 нужно улажиться, и загрузить ядро в ОЗУ)
4. Запускает ядро
5. Загружаются нужные драйверы
6. Стартует графическая оболочка названная Microsoft Windows
7. Запускаются нужные DLL, приложения
При загрузки программы
-----------------------------------
1. По расширению файла определяется exe или com - программа
2. Если com - то грузится как есть без всяких настроек
3. Если exe то определяим настоящий это exe или фигня какая-нить, для этого есть понятие "заголовок программы"
4. Есть ли MZ-заголовок (в честь Mark Zbikowski), PE-заголовок, NEзаголовок
5. Определяем по заголовку тип программы (DOS, Windows, OS/2) , размер
6. Если Windows программа то запускается в Windows и при этом программа работает циклически, т. е. Windows и программа общаются через Windows-сообщения (WM - спец интерфейс)
7. Eсли Windows CE программа то произойдет прерывание (заглушка) и даст сбой This program requires Windows CE
7. Если OS/2 программа то произойдет прерывание (заглушка) и даст сбой This program requires OS/2
8. Если DOS то запустится в WOW
Что интересно:
1. Чтобы выйти программа вызывает спец. DOS-прерывание, или посылает Windows-сообщение.
2. В Windows начиная с Windows NT 3.1 работеает в защищенном режими, программа неможет обратиться к "чужой памяти".
3. В работе программы очень важны прерывания.
4. Многозадачный режим реализуется, спомощью последовательном переключения программ, при этом текущий адрес, стэки значение регистров сохраняются, во временной памяти.
5. Многозадачность можно реализовать только в защищенном режими.
6. Размер программы, который находится в заголовке рассчитывается по формуле (помню из книги Фролова) , размер программы=(512*количество страниц) + остаток (менее 256 байт / пол страницы)
7. В регистрах сохраняются временные значение, и используются как функции/параметры, а через прерывание реализуется "общения" между различными участками ОЗУ / ПЗУ.
Чтобы подробнее узнать читайте архитектуру фон Нойманн, и изучайте процессор МО!
при загрузке ОС (примерно, насколько я помню, я нечитал про систему уже лет 10)
-------------------------
1. ПЗУ считывает с жесткого / компакт диска или дискеты первые 512 байт (512 байт = 1 страница, = 1 сектор) и загружает в ОЗУ, и запускает эту программку
2. Эти 512 байт называют "загрузчиком"
3. Загрузчик грузит ядро (т. е. в 512 нужно улажиться, и загрузить ядро в ОЗУ)
4. Запускает ядро
5. Загружаются нужные драйверы
6. Стартует графическая оболочка названная Microsoft Windows
7. Запускаются нужные DLL, приложения
При загрузки программы
-----------------------------------
1. По расширению файла определяется exe или com - программа
2. Если com - то грузится как есть без всяких настроек
3. Если exe то определяим настоящий это exe или фигня какая-нить, для этого есть понятие "заголовок программы"
4. Есть ли MZ-заголовок (в честь Mark Zbikowski), PE-заголовок, NEзаголовок
5. Определяем по заголовку тип программы (DOS, Windows, OS/2) , размер
6. Если Windows программа то запускается в Windows и при этом программа работает циклически, т. е. Windows и программа общаются через Windows-сообщения (WM - спец интерфейс)
7. Eсли Windows CE программа то произойдет прерывание (заглушка) и даст сбой This program requires Windows CE
7. Если OS/2 программа то произойдет прерывание (заглушка) и даст сбой This program requires OS/2
8. Если DOS то запустится в WOW
Что интересно:
1. Чтобы выйти программа вызывает спец. DOS-прерывание, или посылает Windows-сообщение.
2. В Windows начиная с Windows NT 3.1 работеает в защищенном режими, программа неможет обратиться к "чужой памяти".
3. В работе программы очень важны прерывания.
4. Многозадачный режим реализуется, спомощью последовательном переключения программ, при этом текущий адрес, стэки значение регистров сохраняются, во временной памяти.
5. Многозадачность можно реализовать только в защищенном режими.
6. Размер программы, который находится в заголовке рассчитывается по формуле (помню из книги Фролова) , размер программы=(512*количество страниц) + остаток (менее 256 байт / пол страницы)
7. В регистрах сохраняются временные значение, и используются как функции/параметры, а через прерывание реализуется "общения" между различными участками ОЗУ / ПЗУ.
Чтобы подробнее узнать читайте архитектуру фон Нойманн, и изучайте процессор МО!
в регистры вроде
А куда она может идти? Вот когда у меня выполняется программа то она никуда не идет а послушно остается в своей директории. Если вы хотели знать что происходит внутри программы то это зависит от языка на котором она написана. Стартовый пункт программ в с++ это функция main. Объекты классов и структур а так же то на что указывают указатели (pointers) которые создаются во время выполнения сохраняются в оперативной памяти. Об этом можно рассказать намнооооооооооооооооооооооого больше, но так как мне лень все это печатать я просто посоветую вам прочитать хорошую книжку по программированию от нее будет больше толку чем от любых объяснений в ответах.
Похожие вопросы
- Как в Паскале можно описать курсор мыши? Именно вывести его на экран и определить его положение при выполнении программы
- С++: Как изменять размеры многомерных динамических массивов по ходу выполнения программы?
- Проверить рациональность выполнения программы pascal
- Кто может описать процесс внедрения 1С?
- Почему нельзя настраивать массив в процессе работы программы? Pascal ABC ну и если так вообще везде?
- Описать программу по листингу
- Как с помощью реестра запретить выполнение определенных программ?
- Есть программу выполнения задачи в Паскале, нужны объяснения, комментарии к каждой строчке программы, а то не все понятно
- Часть программы включает следующий блок. Определить, чему равно Z в результате выполнения блока.
- Программа для записи игрового процесса.