Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

251
Views
¿Se carga un programa estático completo en la memoria cuando se inicia?

En computadoras típicas como Mac, Windows, Linux, iOS, etc., cuando un usuario inicia un programa/binario/aplicación, ¿la parte estática del programa siempre se carga por completo en la memoria antes de que comience la ejecución? ¿Esto incluye todos los segmentos/secciones de datos en el programa como cadenas y cualquier otro dato BLOB incrustado? Digamos que incrusté un archivo de imagen enorme en el binario (por ejemplo, en el segmento __DATA). ¿Se cargarían estos datos de imagen por completo en la memoria al momento del lanzamiento?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

En OS X, los ejecutables de Windows, Linux e iOS no se cargan en la RAM cuando se ejecutan. En su lugar, el ejecutable se asigna al espacio de direcciones virtuales del proceso. Cuando el proceso accede a una página asignada del ejecutable que aún no se ha cargado en la RAM, la CPU genera una falla de página que el sistema operativo maneja al leer la página en la RAM.

Entonces, si coloca un archivo de imagen enorme en la sección de datos de su ejecutable, no se cargará en la RAM hasta que su programa acceda a él por primera vez. Un archivo de imagen enorme probablemente ocupa varias páginas de memoria (que generalmente tienen un tamaño de 4K), por lo que si su programa solo accede a una parte de la imagen, solo una parte de la imagen se cargará en la RAM.

Tenga en cuenta que en Windows, y tal vez en otros sistemas operativos, hay una excepción significativa a esto. En Windows, un servicio del sistema operativo llamado prefetcher comenzará a precargar en la memoria las partes de cualquier archivo al que predice que accederá el programa durante el inicio. Hace estas predicciones basándose en los patrones de acceso de inicio registrados de ejecuciones anteriores del programa. Dado que "cualquier archivo" incluye el propio ejecutable, junto con cualquier DLL o archivo de datos que utilice, esto significa que partes del ejecutable se cargarán previamente en la RAM cuando se inicie el proceso. Esto también significa que si el programa generalmente muestra una imagen grande al inicio del programa (por ejemplo, una pantalla de inicio), entonces el precargador cargará la imagen en la RAM, ya sea que esté almacenada como parte del ejecutable o como un archivo de datos separado.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!