Pila en Linux: Pila de estado de usuario /Pila de kernel /Pila de interrupción

  
 

Linux tiene una variedad de pilas, es fácil deshacerse de ellas, simplemente explique: 1, pila de estado de usuario: en la parte inferior del espacio de direcciones de estado de usuario de proceso, como entendemos y entendemos, es una sección del espacio de direcciones virtuales, No hay mucho que decir ~ 2, la pila del kernel: es independiente de la pila del estado del usuario, al cambiar entre el modo de usuario y el modo del kernel, debe cambiar. El elemento de configuración del kernel puede modificar el valor predeterminado de 8k y juntarlo con la estructura thread_info. Común: union: thread_union,


Haga clic (aquí) para contraer o abrir

1. Unión thread_union {2. struct thread_info thread_info;

3. pila larga sin signo [THREAD_SIZE /sizeof (long)];

4.}; colocada en una sección especial: __ (" .data.init_task ")))


Haga clic (aquí) para contraer o abrir

1. union thread_union init_thread_union 2. __attribute __ ((__ section __ (" .data) .init_task "))) =

3. {INIT_THREAD_INFO (init_task)};



Haga clic (aquí) para contraer o abrir

1. ENTRY (stack_start) 2. .long init_thread_union + THREAD_SIZE

3. .long __BOOT_DS

El valor predeterminado se comparte con la pila de interrupciones, que puede ser modificada por el elemento de configuración del núcleo, es decir Cada proceso tiene su propia pila de kernel 3. La pila de interrupciones: el valor predeterminado se comparte con la pila de kernel y el contenido de la pila de kernel es independiente, se utilizan interrupciones, excepciones e interrupciones suaves. Esta pila utiliza la pila de kernel del proceso interrumpido. >

Copyright © Conocimiento de Windows All Rights Reserved