PCB en unix

Buenas, pues vereis tengo unas dudillas

por lo visto en sistemas unix los pcb se dividen en dos partes,

una en el kernel con el pid, estado, punteros a otros procesos de la familia, grupo etcetc

y otra en la zona de usuario con las caracteristicas de donde se está ejecutando, tiempos de ejecucion y demás

supongo que las zonas de memoria de un proceso (data, text) esten descritas como punteros en la parte del kernel

alguien puede explicarme un poco porque es así en vez de estar unificado, porfa.
No tengo yo eso tan claro. ¿Dónde lo has leido? ¿Quién te lo ha contado?

- ferdy
en clase de sistemas operativos.
luego nos explicarion el de linux.
Oh oh.... entonces.... ¿te refieres al Unix original de Bell Labs? Si es así, ni idea.

- ferdy
Si, al pcb del modelo unix clasico.

creo que lo hacen para ganar eficiencia con cosas a las que un usuario puede acceder sin problemas, como descriptores y demás, pero sabes si el pcb en linux se guarda entero en el kernel? creo que se almacena todo en el kernel stack, no se si en la zona de usuario estan los segmentos que se referencian desde el pcb en el kernel con punteros :).

gracias de antemano.
Si, al pcb del modelo unix clasico.


Mmmmm no se no se. No tengo muy claro que todos lo hicieran igual.

creo que lo hacen para ganar eficiencia con cosas a las que un usuario puede acceder sin problemas, como descriptores y demás, pero sabes si el pcb en linux se guarda entero en el kernel? creo que se almacena todo en el kernel stack, no se si en la zona de usuario estan los segmentos que se referencian desde el pcb en el kernel con punteros :).


Puedes ver el task_struct en linux/sched.h.

- ferdy
5 respuestas