sisoputnfrba / foro

Foro de consultas para el trabajo práctico
148 stars 7 forks source link

Interfaz ocupada y solicitudes entrantes #3646

Closed rood8592 closed 5 months ago

rood8592 commented 5 months ago

Buenas, tengo una pregunta con respecto a la solicitud de operaciones a las interfaces. Si yo recibo un IO_GEN_SLEEP de 20 segundos, se lo mandó a la interfaz y ese proceso pasa a BLOCKED. ¿Qué sucede si luego viene un proceso que requiere un IO_GEN_SLEEP de la misma interfaz de 2 segundos por ejemplo y la interfaz esta ocupada todavía? ¿Debería enviarle la solicitud igual y pasar el proceso a bloqueado? ¿Qué sucede si siguen llegando más procesos que quieren mandarle una solicitud a dicha interfaz pero sigue ocupada con la primera solicitud, debo enviar todas las solicitudes y mandarlos a todos a la cola de la interfaz en BLOCKED? ¿Algo me asegura que la interfaz luego de terminar con el primer proceso, las solicitudes le llegarán en el orden en el que fueron mandadas de todos los procesos que solicitaron interactuar con ella mientras estaba ocupada?

iago64 commented 5 months ago

Buenas! Cómo va?

Casi como si lo hubiéramos sincronizado, para hoy con el post del soporte teníamos armada una errata que responde tus dudas, pasate por la v1.2 del enunciado y comentanos si siguen vigentes las dudas o hay algo que no termine de responderse con la errata.

Saludos.-

rood8592 commented 5 months ago

Gracias! Si no entendí mal entonces, todos pasan a blocked y el que esta primera en la cola de esa interfaz lo esta utilizando, entonces cuando termina de usarlo, el primero sale de la cola, el segundo en la fila pasa a ser el primero y podrá hacer el send y así sucedivamente?

iago64 commented 5 months ago

Buenas!

Tal cual decís, solo el primero de la cola de bloqueados de ese proceso está "ejecutando" la entrada salida, los demás están esperando.

Saludos.-

rood8592 commented 5 months ago

Perfecto, gracias!!