Hice algunos ajustes a la versión inicial de mi lista, ahora cumple con los requisitos establecidos en el material del profesor Maziero. Lo ajusté para pasar las pruebas y también decidí usar readapt para C. La compilación junto con el archivo de prueba disponible parecía menos problemática de esa manera.
Al revisar el código de esta lista, necesitaba revisar listas más simples que vienen antes de la circular de doble enlace, así pude armar un razonamiento sólido al codificar.
Es una estructura en la que cada nodo contiene tres partes: valor, puntero al siguiente nodo y puntero al nodo anterior.
Permite navegación bidireccional, y para eliminar o agregar un nodo, solo es necesario ajustar los puntos del nodo anterior y siguiente.
[head] [nó1] [nó2] [tail]
Puede ser simplemente encadenado (sentido unilateral) o doble encadenado (esto es lo que estoy usando para el proyecto).
El último nodo de la lista está conectado al primero, lo que significa que la lista no tiene un punto final natural.
La lista se puede desplazar indefinidamente, porque cuando llega al final, vuelve al principio.
El uso de una lista circular doblemente enlazada hace que el sistema operativo tenga una función de programación circular.
Dicho esto, después de ejecutar el último proceso, el sistema regresa al primero y continúa la ejecución.
Imaginando que un sistema operativo tiene tres procesos:
[P1] [P2] [P3] [P1] ...
Después de que P3 finalice su tiempo de ejecución, la lista volverá directamente a P1, lo que garantiza una ejecución continua.
El código actual del sistema operativo se puede encontrar aquí.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3