martes, 17 de marzo de 2009
lunes, 16 de marzo de 2009
Procesos
Cada que hacemos doble clip en un programa generamos un proceso, que no es mas que un programa en ejecución. Cada vez que iniciamos un proceso nuestro Sistema Operativo le asigna a este una cantidad de memoria así como un tiempo de ejecución en el procesador (entre otros) lo que permite que este programa corra sin problemas, esta tarea del SO es conocida como asignación de recursos siendo esta una de las tareas primordiales del SO. El Sistema Operativo busca administrar los recursos de la computadora de forma que la computadora emplee sus recursos de la forma mas eficiente.
Un proceso puede encontrarse en 5 tipos de estados en diferentes momentos, estos estado pueden ser: en Ejecución, Listo, en Espera, Nuevo, Terminado.
Ejecución: El proceso se esta ejecutando actualmente.
Listo: El proceso esta listo para ser ejecutado, solo espera que el planificador de la señal.
Espera: El proceso no se puede ejecutar hasta que se produzca algún suceso, como una operación de entrada o salida.
Nuevo: El proceso esta recién creado y todavía no ha sido admitido por el sistema operativo. En la mayoría de estos casos este proceso el proceso no ha sido cargado en memoria.
Terminado: El proceso ha culminado su ejecución, o ha culminado por algún error.

Los sistemas operativos se pueden clasificar como monotarea y multitarea, haciendo referencia a la cantidad de procesos que puede sostener al mismo tiempo. La base de la programación multitarea se encuentra en 3 condiciones:
- Paralelismo real ente E/S y procesador.
- Alternancia en los procesos de fases de E/S y procesamiento.
- Memoria principal capaz de almacenar varios procesos.
Caracteristicas de los procesos:
Grado de multiprogramación: Se le denomina grado de multiprogramación a la cantidad de procesos que puede sostener un SO.
Jerarquía de procesos: Los procesos pueden poseer jerarquía, un proceso puede ser padre, hijo, abuelo o hermano.
Imagen de memoria: Esta no es mas que el espacio de memoria destinado para ese proceso.
domingo, 15 de marzo de 2009
Interrupciones
INTERRUPCIONES
Generalmente se aplica para realizar tareas elementales asincrónicas en el computador tales como responder al teclado, escribir en la pantalla, leer y escribir archivos. Podemos considerar una tarea asincrónica como aquella que es solicitada sin previo aviso y aleatoriamente desde el punto de vista del computador. Tomemos el caso de la operación Ctrl-Alt-Supr. En Windows tiene el efecto de que aparece en pantalla una lista de los procesos y ventanas en ejecución en el computador. En cambio en el Sistema Operativo DOS cuando el usuario presiona simultáneamente dichas teclas el computador procede a reinicializarse, aunque pueda estar ocupado ejecutando un programa en ese instante. Vale decir fuerza obligadamente a que el computador se reinicialice. Ya sea en el sistema Windows o en DOS, el computador no está constantemente monitoreando el teclado para ver si el usuario ha solicitado un Ctrl-Alt-Del, ya que en ese caso consumiría mucho tiempo de proceso en ello y por ende la capacidad de proceso se vería significativamente afectada. La solución empleada es una interrupción.
Luego cada vez que el usuario presiona una tecla, la CPU es advertida a través de una señal especial de interrupción. Cuando la CPU advierte/recibe una señal de interrupción suspende temporalmente el proceso actual almacenando en memoria RAM un bloque con toda la información necesaria para restablecer posteriormente la ejecución del programa si es que procede. Enseguida la CPU determina qué elemento ha solicitado la interrupción y para cada caso existe un bloque de instrucciones que realiza la tarea correspondiente que es ejecutada a continuación. Terminada la ejecución se restablece el programa original en el mismo punto en que fue interrumpido usando para ello la información almacenada previamente.
Cada interrupción tiene asignada un número único. El PC está diseñado de manera que la interrupción tiene asignada 4 bytes de memoria RAM. La dirección de los cuatro bytes en la memoria corresponde al número de la interrupción multiplicado por 4. Por ejemplo la interrupción IRQ 5 tiene asignada 4 bytes en la dirección 0x00014 (0000:0014). El contenido de los 4 bytes de memoria RAM asignados a una interrupción contiene a su vez una dirección que es un puntero a un bloque de instrucciones de máquina que realiza el procedimiento correspondiente. De este modo al iniciar la ejecución de una interrupción de los cuatro bytes que tiene asignados se obtiene la dirección del bloque de instrucciones que efectivamente se ejecutan. Por ejemplo si en la dirección 0000:0014 estuviera almacenado el valor 0xFFF00, ello significa que en dicha dirección (ó (F000:FF00) se encuentra el bloque de instrucciones a ejecutar cuando la interrupción IRQ 5 sea requerida.
Existen tres tipos de interrupciones :
Una lista de las interrupciones generadas por hardware es la siguiente
| IRQ | Prioridad | Función |
| 0 | 1 | Timer |
| 1 | 2 | Teclado Hardware |
| 2 | | Reservada |
| 3 | 11 | COM 2 |
| 4 | 12 | COM 1 |
| 5 | 13 | Tarjeta de Sonido |
| 6 | 14 | Controlador Floppy |
| 7 | 15 | Puerta Paralela |
| 8 | 3 | Reloj (tics) |
| 9 | 4 | Libre para tarjeta de red, sonido, puerta SCSI |
| 10 | 5 | idem |
| 11 | 6 | idem |
| 12 | 7 | PS-mouse |
| 13 | 8 | Co-procesador matemático |
| 14 | 9 | Canal IDE primario |
| 15 | 10 | Canal IDE secundario |


