¿Cómo se divide el programa en páginas / segmentos por sistema operativo?

Regiones de memoria – tablas de página – marcos de página

Estas son las partes principales de la implementación del concepto de memoria virtual

Región de memoria:

El espacio de dirección lineal de cada proceso se divide en regiones de memoria representadas por “struct vm_area_struct”, que contiene detalles como la dirección de inicio / finalización y los derechos de acceso.
Cada proceso tiene un descriptor de proceso (task_struct). El campo “mm” en task_struct tiene “mm_struct” que contiene punteros a la lista de regiones de memoria (vm_area_struct).

Siempre que ocurre una asignación, incluso en la creación del proceso, se crean regiones de memoria en múltiplos de tamaño de página.

Tablas de páginas:

Cada proceso obtiene un conjunto de tablas de páginas que asigna direcciones lineales a direcciones físicas en tamaño de página. Siempre que se accede a la dirección lineal, se verifica la tabla de página para ver si la página está asignada, si no está asignada, se produce un error de página. La región de memoria correspondiente se verifica para ver los permisos de acceso.

Marcos de página:

Una vez que se confirman los derechos de acceso, se asigna una página en la memoria y se asigna a la dirección lineal en la tabla de páginas. Dado que las tablas de páginas están organizadas de tal manera que una dirección lineal se puede convertir a una dirección física rápidamente y normalmente existe soporte MMU para las conversiones automáticas utilizando tablas de páginas proporcionadas por el núcleo, la traducción es rápida.

Lo primero que debe aclarar es que el compilador proporciona el espacio de direcciones virtuales.
Kernel asignará ese espacio de dirección virtual con la dirección física mediante la Unidad de administración de memoria (MMU). Esas asignaciones estarán presentes en la tabla TLB. Mientras ejecuta el proceso, si encuentra la dirección que no está asignada en el TLB, irá y verificará en la tabla de la página si la dirección dada está presente o no, si está presente, copiará esa página en la RAM (intercambio) después de eso. udate ese mapeo en TLB. Es solo una descripción general sobre el intercambio de páginas utilizando el espacio de direcciones virtuales.