Autor
|
Tema: [duda] vector de interrupcion (Leído 2,981 veces)
|
MRx86
Desconectado
Mensajes: 88
Math's the way to do philosophy with the universe
|
Hola buena noche, tengo una pequena duda sobre el vector de interrupciones; cuando un dispositivo le avisa al controlador de interrupciones que acaba de terminar lo que estaba haciendo (por ejemplo, un disco avisando que acaba de terminar de escribir en un sector un dato), y este (el controlador de interrupcion) activa el pin de interrupcion de la CPU enviandole a esta (a la CPU) el numero del dispositivo, el OS utiliza este numero como indice en el vector de interrupciones para obtener el manejador (o handler) de interrupciones de ese dispositivo?, o sea cada vez que se inicia un trabajo con un dispositivo se guarda un numero que se necesita para obtener este manejador de interrupcion por la CPU? la pregunta viene de un libro que estoy leyendo y eso nu me quedo muy claro... (pongo eso en negritas para resaltar que esa es la pregunta en si)
Gracias y saludos!.
|
|
« Última modificación: 12 Febrero 2017, 06:22 am por MRx86 »
|
En línea
|
"Tengo una pregunta que a veces me tortura: ¿Estoy loco yo, o los locos son los demas?" - Albert Einstein
|
|
|
Randomize
|
Mira...
Imagina un procesador, e imagínalo quieto, e imagínalo quieto y esperando a que "algo" le pida hacer algo, cuando se ponga a ello hasta que no termine no pasará a otra cosa, pero están los multinúcleo, que inician varias tareas a la vez...
Un núcleo va por interrupciones o llamadas (estás haciendo una cosa y puedes inciar otra), varios núcleos funcionan igual, pero son varias las tareas las que se pueden realizar a la vez de manera completa (con mi núcleo cuando navego interrumpo la kissfm al cambiar de página).
Cuatro núcleos no son la multiplicación por cuatro de un núcleo, de hecho controlando un poco el apartado cachés del procesador un i7 (4 núcleos físicos + 4 núcleos lógicos) no hace el doble que un i3 (2 núcleos físicos + 2 núcleos lógicos), como mucho el 25% más.
Un saludo.
|
|
|
En línea
|
|
|
|
kub0x
Enlightenment Seeker
Colaborador
Desconectado
Mensajes: 1.486
S3C M4NI4C
|
Cuando un dispositivo hardware requiere realizar una tarea lanza una IRQ (interrupt request) desde el controlador (driver) hardware, de esta forma se señaliza al procesador en forma de evento, por lo tanto el procesador realizará dicha tarea.
Como Randomize dice, los procesadores modernos pueden manejar varias tareas a la vez, pero realmente no es "a la vez" hay un scheduler el cual se encarga de asignar un identificador a cada tarea y la trae al frente o al background segun las IRQs o la capacidad de trabajo requerida por los dispositivos. El Dispatcher se encarga de guardar en registro el contexto del proceso actual y cargar el contexto del proceso traído al frente, de esta manera intercalas dos procesos satisfactoriamente.
En software es harina de otro costal, pero el término es extrapolable.
Saludos!
|
|
|
En línea
|
|
|
|
Orubatosu
|
De hecho y como curiosidad, hace años (bastantes) en los tiempos de procesadores 386, 486 y demás, las diferentes tarjetas de un ordenador tenían un conjunto de "jumpers" para indicar manualmente la interrupción de cada dispositivo
Normalmente los dispositivos físicos no lanzan interrupciones directamente a la cpu, para eso tienen pequeños procesadores especializados con su propio software que se encargan de esos menesteres. Por ejemplo los discos duros lanzan interrupciones si, pero a la circuitería de la controladora de discos. Esta gestiona el uso de los discos y lanza a su vez las interrupciones correspondientes a la cpu. Lo mismo que los demás dispositivos.
Vamos, que hay una serie de capas. Y de hecho en los sistemas operativos normalmente no se accede tampoco directamente al hardware, sino que lo habitual es que se tenga que hacer "si o si" a través de los protocolos definidos por ese sistema
|
|
|
En línea
|
"When People called me freak, i close my eyes and laughed, because they are blinded to happiness" Hideto Matsumoto 1964-1998
|
|
|
MRx86
Desconectado
Mensajes: 88
Math's the way to do philosophy with the universe
|
Gracias Randomize, kub0x y Orubatosu, me aclararon mis dudas . Saludos!
|
|
|
En línea
|
"Tengo una pregunta que a veces me tortura: ¿Estoy loco yo, o los locos son los demas?" - Albert Einstein
|
|
|
Randomize
|
Ya te paso por IM el IBAN de mi cuenta. A ver si eres generoso
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
duda sobre vector
Java
|
abissmalty
|
2
|
2,583
|
20 Febrero 2012, 02:20 am
por bengy
|
|
|
Duda Pregunta Instanciación Vector STL
« 1 2 »
Programación C/C++
|
Jose_Alberto87
|
10
|
4,780
|
7 Julio 2013, 16:58 pm
por amchacon
|
|
|
[Resuelto] Duda con destructores - vector de una clase
Programación C/C++
|
X3R4CK3R
|
8
|
3,723
|
15 Julio 2013, 17:25 pm
por X3R4CK3R
|
|
|
DUDA OCZ VECTOR
Hardware
|
Annubiis
|
7
|
4,211
|
17 Septiembre 2013, 13:00 pm
por topomanuel
|
|
|
duda c++ vector - file
Programación General
|
sipotegamer
|
0
|
2,268
|
23 Mayo 2017, 05:20 am
por sipotegamer
|
|