Closed nicolasvultaggio closed 5 months ago
O sea, entiendo bien todo lo que hace cada tipo de interfaz, o sea, sus operaciones (excepto las de dialFS, no entendí nada eso), lo que no entiendo es lo que sería el "ESQUELETO", de como funcionan las interfaces, como se conectan, no lo que hacen en sí.
Buenas! Paso a responder en general ya que veo algunos pre-conceptos erróneos sobre lo que se espera del sistema y luego en particular algunas preguntas:
Como se muestra en el diagrama de arquitectura del enunciado, cada interfaz es un Proceso (real) aparte (al igual que CPU, Kernel y Memoria), es decir, ejecutarán (en una terminal o desde el IDE) el módulo "Interfaz I/O" tantas veces como Interfaces quieran tener.
Dicho esto, queda más clara la parte de "en todo momento al kernel podrán conectarse nuevas interfaces", en cualquier momento del sistema podemos ejecutar una Interfaz nueva para que se conecte al Kernel. De esta manera, te confirmo tu suposición de"el kernel tiene que estar escuchando todo el tiempo nuevas conexiones de distintas interfaces"
.
La idea mas o menos la entiendo, que el MAIN del modulo interfaz pueda crear nuevas interfaces, las añada a la lista de hilos que mencioné previamente, y estas se conecten al kernel, para quedarse esperando sus operaciones.
Con lo mencionado anteriormente, este no sería el caso, el módulo tranquilamente puede funcionar con un solo hilo, la forma de "multiplexarlos" no es con muchos hilos sino ejecutando varias instancias del módulo :)
Te resuelve las preguntas? Saludos! Lean
PERFECTO, me cierra completamente, eso de que se ejecuta varias veces el mismo modulo (es tan simple como ejecutar el archivo en otra consola entonces?) resuelve la mayoría de preguntas que tenía. Digamos, la única idea que mencioné, entonces, que sí tiene sentido, es que cada interfaz, al ser procesos distintos, se conecta al kernel desde distintos sockets. Muchas gracias!! me sirvió mucho, buena semana!
(es tan simple como ejecutar el archivo en otra consola entonces?)
Exactamente! Podés ejecutar una, y luego en otra terminal ejecutar otra (el mismo ejecutable, aunque quizás con otro archivo de configuración)
cada interfaz, al ser procesos distintos, se conecta al kernel desde distintos sockets
Claro! Cada vez que una interfaz se conecta al Kernel deberías guardarte ese socket para luego poder comunicarte con cada una por separado.
perfecto, me queda clarísimo ahora, muchas gracias!!!
perdon, me surgio otra duda, estos archivos de configuracion, van a depender de las pruebas del tp no? y como nos aseguramos que el archivo sea capaz de obtenerlos, porque cuando se inicia una interfaz, esta solo conoce el string del path del archivo, pero habra que ingresar manualmente el archivo de la prueba en el modulo para que este pueda conseguirlo?
Buenas! Cómo va?
Efectivamente las configs van a ir dependiendo de las diferentes pruebas. Pra resolver el problema tienen 2 opciones:
Saludos.-
muchísimas gracias MAESTRO, buen día.
Tengo unas preguntas sobre el funcionamiento general de las interfaces a lo largo de todo el tp:
Yo tengo entendido que, tienen que haber varias interfaces disponibles para que los distintos procesos puedan trabajar, y entiendo que en general, cada vez que se "inicia" una interfaz, se debe conocer el nombre (ID) y su archivo de configuración, y entonces toda interfaz debe primero leer ese archivo para obtener el tipo de interfaz que será, y a partir de eso, obtener el resto de datos necesarios del archivo de configuración.
También entiendo que, cada interfaz recibe operaciones del kernel, y que por lo tanto, cada una tiene que comunicarse con el kernel desde distintas conexiones, para que:
Yo tenía pensado, hasta ahora, que a cada interfaz le sea asignado un hilo, que esté constantemente esperando instrucciones desde kernel, y que el proceso "main" del modulo interfaz pueda manejar esos hilos, por ejemplo, con una lista de hilos.
Pero entonces, como se generan estas interfaces? en ningún momento el kernel tiene una funcionalidad para crear una interfaz, como sabemos cuantas interfaces se deberán crear? Además "en todo momento al kernel podrán conectarse nuevas interfaces", como sería esto? porque en la consola no hay nada para crear una interfaz nueva así de la nada, en medio de la ejecución de otro proceso en CPU, por ejemplo. O, en realidad, el kernel tiene que estas escuchando todo el tiempo nuevas conexiones de distintas interfaces, (creo que va mas por este lado) pero donde se crean estas interfaces, como se indican? en el MAIN del modulo INTERFAZ?
La idea mas o menos la entiendo, que el MAIN del modulo interfaz pueda crear nuevas interfaces, las añada a la lista de hilos que mencioné previamente, y estas se conecten al kernel, para quedarse esperando sus operaciones.
En resumen, quería las respuestas a estas preguntas y además saber si estoy mas o menos lejos de entender el funcionamiento de las interfaces, o si entendí mal alguna parte de como debería ser, en general, la forma de trabajar.