In Linux, come viene caricato un programma in memoria quando il sistema operativo ha deciso di eseguirlo?


2

Come sappiamo, Linux implementa la cache della pagina per memorizzare il codice o i dati da pezzi di un file che verranno potenzialmente utilizzati. Una delle mie domande è: quando verrà eseguito un programma, ad es. Vim, i suoi dati e il suo codice verranno caricati per la prima volta nella cache della pagina, giusto?

E non sono nemmeno sicuro della mia altra comprensione. Se il sistema operativo carica solo alcune parti del codice che verranno utilizzate immediatamente all'avvio del programma? O il sistema operativo li carica tutti in una volta? Il sistema operativo utilizza la cache di ritmo dei file per memorizzare i codici e i dati caricati, giusto? Che tipo di funzione del modulo utilizza il SO per eseguire il caricamento del codice?

Risposte:


0

i suoi dati e codice verranno prima caricati nella cache della pagina, giusto?

Sì.

Se il sistema operativo carica solo alcune parti del codice che verranno utilizzate immediatamente all'avvio del programma? O il sistema operativo li carica tutti in una volta?

Alcuni pezzi. In realtà quando verrà effettivamente eseguito il codice, si verificherà page_fault e la pagina verrà spostata in memoria (page_cache) dal file associato

Che tipo di funzione del modulo utilizza il SO per eseguire il caricamento del codice?

load_elf_binary http://lxr.free-electrons.com/source/fs/binfmt_elf.c#L663

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.