Ответ
При запуске любая программа запрашивает у операционной системы (ОС) выделение следующих ключевых ресурсов:
-
Оперативная память (RAM) ОС выделяет процессу виртуальное адресное пространство, в которое загружаются:
- Код программы: Исполняемые инструкции.
- Статические данные: Глобальные переменные и константы.
- Стек (Stack): Память для локальных переменных, аргументов функций и адресов возврата.
- Куча (Heap): Динамически выделяемая память для объектов, создаваемых во время выполнения.
-
Процессорное время (CPU Time) Планировщик ОС выделяет кванты времени для выполнения инструкций программы на центральном процессоре.
-
Дескрипторы файлов (File Descriptors / Handles) ОС предоставляет программе идентификаторы для доступа к файлам, сокетам и другим объектам ввода-вывода. Как минимум, это стандартные потоки:
stdin
,stdout
,stderr
. -
Ресурсы ввода-вывода (I/O)
- Дисковое пространство: Чтение исполняемого файла, библиотек и конфигурационных файлов с диска.
- Сетевые соединения: Если программа обращается к сети при старте.
Пример на Python:
# hello.py
import sys
# Потребляет RAM (глобальная переменная) и CPU (выполнение кода)
message = "Hello, World!"
# Использует дескриптор файла (stdout) и ресурсы I/O
sys.stdout.write(message + 'n')
При запуске python hello.py
ОС сначала загружает интерпретатор Python, который, в свою очередь, запрашивает ресурсы для выполнения скрипта hello.py
.