Mortuux

Diario de un estudiante geek. Informática, tecnología, programación, redes, sistemas operativos, bases de datos…

Archivos por Etiqueta: interrupciones

Obteniendo información desde /proc con procinfo.

En  /proc podemos encontrar toda una fuente de información sobre nuestro sistema, y para facilitarnos la tarea, tenemos el comando procinfo, su instalación es muy sencilla:

# apt-get install procinfo

Luego lo ejecutamos con

# procinfo

Y nos mostrará la información del sistema.

Memory: Muestra el total de ram libre y ocupada. También muestra el swap

Bootup: Hora de inicio del sistema.

Load average: Media de ‘jobs’ corriendo, seguido por el número de procesos ejecutables y el número total de procesos, seguido por el PID de el último proceso ejecutado.

User: Cantidad de tiempo empleada en correr ‘jobs’ en el espacio del usuario

Nice: Cantidad de tiempo empleada en ejecutar ‘niced jobs’ en el espacio del usuario

System: Cantidad de tiempo empleada ejecutada en el espacio del kernel

Idle: Cantidad de tiempo sin hacer nada

Uptime: Tiempo que ha estado el sistema activo

Page in: Número de bloques del disco paginados en el núcleo del disco.

Page out: Número de bloques del disco paginados fuera del disco.

Swap in: Número de páginas de memoria paginadas a el swap

Swap out: Número de páginas de memoria paginadas fuera del swap

Interrupts: Número de interrupciones servidas desde que se inició el sistema.

La información completa la puedes encontrar en el respectivo manual del comando.

Interrupciones

Dos opciones para que los perifericos interactuen:

  1. Cada cierto tiempo el ordenador (S.O) controla si existe alguna operación pendiente con alguno de los periféricos genera mucha perdida de tiempo
  2. Cuando un periférico necesita comunicar con el ordenador se genera una petición de interrupción IRQ en el sentido de la comunicación que sigue una serie de patrones.

Interrupción: Es una comunicación especial ordenador periférico para indicar que dicho dispositivo necesita atención inmediata. Entonces en ese momento suspende lo que estuviera haciendo para atender siempre y cuando no exista petición anterior de mayor prioridad pendiente.

Prioridad de las IRQ:

De mayor a menor importancia:

Excepciones de la CPU (error en tiempo de ejecución)

Interrupción software

Interrupciones hardware (no enmascarables)

Interrupciones Hardware (enmascarables)

Funcionamiento:

  • Se genera la petición de interrupción
  • CPU STOP y gestiona la IRQ a través de lo que se llama ISR (Routine Service Interruption) vía un programa cargado en la ram o en la bios. A este programa se apunta con el lector de interrupción (este lector depende de cada de interrupción). La información de los vectores de interrupción apuntando al programa que gestiona dicha interrupción se carga al iniciar el sistema operativo. (BIOS: Sistema que se encarga de realizar las funciones básicas para que el ordenador arranque con determinado sistema operativo)
  • Se ejecuta el programa y una vez terminado la CPU continuará por donde iba.

 

Algunos vectores de interrupción:

Vector Interrupción

3 -> Punto de ruptura de interrupción

4-> Desbordamiento

9-> Teclado

14-> Fallo de página (MP)

32+255->libres

 

 

¿Cómo llega la IRQ a la CPU?

A través del bus de control y llegan a un controlador de interrupciones que también es un dispositivo hardware, de aquí a la CPU.

 

Proceso más detallado

  1. Dispositivo de E/S quiere interrumpir se le asigna una línea de interrupción en el bus
  2. Envía la interrupción vía IRQ
  3. Señal recogida, pasa al controlador de interrupciones (PIC) este lo que hace es que primero clasifica y segunda lo envía a la CPU
  4. La cpu pregunta porque tipo de interrupción al PIC
  5. El PIC contesta
  6. Se genera el vector de interrupción y se sirve la interrupción.

 

Líneas de petición de interrupción

Existe un estándar de facto donde se asignan una serie de líneas de interrupción donde se especifica el nombre de la interrupción, el hexadecimal como código de la interrupción, y la descripción..

 

La instalación de un nuevo dispositivo de E/S en nuestro sistema internamente ocurre:

Se realiza la asignación de una IRQ del sistema para dicho dispositivo.

¿Cómo se hace esto?

Antiguamente-> Conectar un jumper la placa base y el dispositivo

Hoy día-> Se resuelve vía driver o bien si el dispositivo es PnP.