En el sistema Linux, ¿cuál es la diferencia entre Interrupt Vector Table (IVT) y Interrupt Descriptor Table (IDT)?¿cuál es la diferencia entre IVT e IDT?
Respuesta
Eso no tiene nada que ver con Linux. Son las estructuras de la CPU, que el SO se inicializa para manejar interrupciones y excepciones. En el modo de direccionamiento real, la estructura solo contiene direcciones de ISR. Este formato se conoce como IVT. En el modo protegido, la estructura es más compleja y se llama IDT. El manual de la CPU de Intel o AMD le informará todos los detalles sobre el manejo de interrupciones.
Los SO modernos funcionan casi por completo en modo protegido y, por lo tanto, usan el IDT. El IVT solo es necesario cuando se inicia el sistema operativo, porque eso ocurre en modo real.
IVT sólo es válido en modo real y IDT es válida en el modo protegido
en la arquitectura x86, la tabla de vectores de interrupción (IVT) es una tabla que especifica las direcciones de todas las 256 el manejador de interrupciones utilizadas en modo real [more...]
el descriptor de tabla de interrupciones (IDT) es específico para el I386 arquitectura. Es la contraparte del modo protegido del Modo real Tabla de vectores de interrupción (IVT) que indica dónde se encuentran las rutinas del servicio de interrupción (ISR). [more...]
Procesamiento de interrupción en modo real En el modo real, el inferior 1K de memoria almacena una estructura de datos conocida como la tabla de vectores de interrupción (IVT). Hay nominalmente 256 entradas en esta tabla. (Desde el 80286, el IVT no necesita tener 256 entradas o comenzar en la dirección física 0. La base, la dirección y la duración del IVT se determinan observando el Registro de Tabla de Descriptores ** interrumpido **.) Cada entrada contiene un puntero lejano a una rutina de servicio de interrupción. Cualquier tipo de interrupción se enruta a la rutina de servicio de interrupción apropiada a través de esta tabla. El procesador indexa el número de interrupción en esta tabla; empuja el CS, IP y banderas actuales en la pila; y llama al puntero lejano especificado en el IVT. El controlador procesa la interrupción y luego ejecuta una instrucción IRET para devolver el control al lugar donde el procesador ejecutó en el momento de la interrupción.
Procesamiento de interrupción en modo protegido En modo protegido, las interrupciones se manejan de forma similar al modo real. La tabla de descriptores de interrupción (IDT) hace lo que IVT hace en modo real. IDT consiste en una matriz de descriptores de segmentos de 8 bytes llamados puertas. El registro de tabla de descriptores de interrupción (IDTR) contiene la dirección base y el límite de IDT. El IDT debe existir en la memoria física y nunca debe cambiarse a la memoria virtual. Esto se debe a que si ocurriera una interrupción mientras se cambiaba el IDT, el procesador generaría una excepción, que requeriría que el IDT obtuviera el controlador para manejar esta excepción, y así sucesivamente hasta que el sistema se bloquee. Las puertas en el IDT pueden constar de tres tipos: puertas de interrupción, puertas trampa y puertas de tareas. No nos detendremos en los detalles de la trampa y las puertas de la tarea. Para obtener más información, consulte la documentación del procesador Intel.
http://www.reverse-engineering.info/SystemHooking/hooksoft.htm
- 1. Localización e internacionalización, ¿cuál es la diferencia?
- 2. ¿Cuál es la diferencia entre IDREF e IDREFS en XSD?
- 3. ¿Cuál es la diferencia entre Scope_Identity(), Identity(), @@ Identity e Ident_Current()?
- 4. ¿Cuál es la diferencia entre WAS e IIS?
- 5. ¿Cuál es la diferencia entre identidad e igualdad en OOP?
- 6. ¿Cuál es la diferencia entre las interfaces IComparable e IEquatable?
- 7. ¿Cuál es la diferencia entre "protegido" e "interno protegido"?
- 8. Cuál es la diferencia entre Add-PsSnapIn e Import-Module
- 9. ¿Cuál es la diferencia entre NHibernate e iBATIS.NET?
- 10. ¿Cuál es la diferencia entre IEnumerator e IEnumerable?
- 11. Erlang: ¿cuál es la diferencia entre "include_lib" e "include"?
- 12. ¿Cuál es la diferencia entre una clave principal e identidad?
- 13. ¿Cuál es la diferencia entre objeto e instancia?
- 14. ¿Cuál es la diferencia entre "privado" e "interno protegido"?
- 15. ¿Cuál es la diferencia entre import java.util. *; e importar java.util.Date; ?
- 16. ¿Cuál es la diferencia entre Tarea e hilo?
- 17. ¿Cuál es la diferencia entre ObservableCollection e INotifyPropertyChanged?
- 18. ¿Cuál es la diferencia entre size_t e int en C++?
- 19. ¿Cuál es la diferencia entre mutable e inmutable?
- 20. Cuál es la diferencia entre 'índice' e 'índice de lista'
- 21. ¿Cuál es la diferencia entre Convert.Int32() e Int32.Parse()?
- 22. ¿Cuál es la diferencia entre IDelegateEvent e IEvent en F #?
- 23. ¿Cuál es la diferencia entre AxInterop e Interop?
- 24. Cuál es la diferencia entre IQueryable e IEnumerable
- 25. ¿cuál es la diferencia entre invalidateList e invalidateDisplayList?
- 26. ¿Cuál es la diferencia entre require e include con php?
- 27. en Java ¿cuál es la diferencia entre, E, T
- 28. ¿Cuál es la diferencia entre IFF_UP e IFF_RUNNING?
- 29. Cuál es la diferencia entre DetachedCriteria e ICriteria
- 30. ¿Cuál es la diferencia entre int [] [] e int [,]?