2. Proceso
Los procesos son mecanismos de comportamiento
que diseñan los hombres para mejorar la
productividad de algo, para establecer un orden o
eliminar algún tipo de problema.
4. Estados simplificado
Consideramos que todo proceso puede estar, como
mínimo, en uno de los siguientes tres estados
Activo: el proceso está empleando la CPU, por
tanto, está ejecutándose. Pueden haber tantos
procesos activos como procesadores haya
disponibles. Por tanto, si el sistema dispone de un
único procesador, únicamente puede haber un
proceso activo a la vez.
.
5. Preparado: el proceso no está ejecutándose pero
es candidato a pasar a estado activo. Es el
planificador el que, en base a un criterio de
planificación, decide qué proceso selecciona de la
lista de procesos preparados para pasar a estado
activo.
Bloqueado: el proceso está pendiente de un evento
externo que le ha hecho bloquear, tales como una
operación de lectura/escritura, la espera de
finalización de un proceso hijo, una señal o una
operación sobre un semáforo
6. Estados Ampliado
En espera / Preparación: Estado por el que pasan
los procesos antes de pasar a estar preparados por
primera vez.
Terminado: La transición de activo a este estado
ocurre cuando el proceso realiza una llamada al
sistema solicitando su propia terminación.
7. Transición: cuando la operación que mantiene a un
proceso en estado bloqueado termina, el proceso
puede haber perdido parte de los recursos que
necesita para proseguir su ejecución.
8. Bloque de control de los
procesos
Es creado por el Sistema operativo cada vez que
aparece un nuevo proceso. Los procesos son
conocidos para el sistema operativo y por tanto
elegibles para competir por los recursos del sistema
sólo cuando existe un BCP activo asociado a ellos.
Cuando el programa termina, el BCP es eliminado
para dejar espacio libre en el registro, y usarlo para
almacenar otros BCP.
9. Operaciones sobre los procesos
Los sistemas operativos son responsables de la
gestión de procesos y memoria, por lo que están
encargados de realizar una serie de actividades,
tales como la planificación o itineración de procesos,
la operación sobre procesos y la comunicación entre
procesos. Para operar sobre un proceso, los
sistemas operativos actuales suministran ciertas
funciones, que pueden ser ejecutadas ya sea desde
el mismo proceso o desde el intérprete de
comandos, si es un usuario el que solicita algún
servicio de dicho sistema.
10. Entre las operaciones sobre procesos que con
mayor frecuencia ofrecen los sistemas operativos se
encuentran la creación, terminación o destrucción,
suspensión y reanudación de procesos.
Actualmente, en la mayoría de los S.O. los procesos
pueden ejecutarse de forma concurrente,
pudiéndose crear y eliminar de forma dinámica, por
lo que es necesario que estos sistemas brinden un
mecanismo para la creación y terminación de
procesos.
11. Planificación de los procesos
Conjunto de políticas y mecanismos incorporados
al sistema operativo, a través de un módulo
denominado planificador, que debe decidir cuál de
los procesos en condiciones de ser ejecutado
conviene ser despachado primero y qué orden de
ejecución debe seguirse. Esto debe realizarse sin
perder de vista su principal objetivo que consiste en
el máximo aprovechamiento del sistema, lo que
implica proveer un buen servicio a los procesos
existentes en un momento dado.
12. Comunicación y sincronización
entre los procesos
La comunicación entre procesos necesaria si se desea
que varios procesos puedan colaborar para realizar una
misma tarea. Sincronización, funcionamiento coordinado
en la resolución de una tarea encomendada. Los
mecanismos de comunicación y sincronización son
dinámicos. Es decir, cuando se necesita un mecanismo
de este estilo, se crea, usa y destruye, de forma que no
se establezca de forma definitiva ningún mecanismo de
comunicación, ya que ellos podrían producir efectos
indeseados. La comunicación es algo puntual.
13. Procesos concurrentes
Dos o más procesos decimos que son concurrentes,
paralelos, o que se ejecutan concurrentemente,
cuando son procesados al mismo tiempo, es decir,
que para ejecutar uno de ellos, no hace falta que se
haya ejecutado otro.
En sistemas multiprocesador, esta ejecución
simultánea podría conseguirse completamente,
puesto que podremos asignarle, por ejemplo, un
proceso A al procesador A y un proceso B al
procesador B y cada procesador realizaran la
ejecución de su proceso.
14. Cuando tenemos un solo procesador se producirá un
intercalado delas instrucciones de ambos procesos, de
tal forma que tendremos la sensación de que hay un
paralelismo en el sistema (concurrencia, ejecución
simultánea de más de un proceso).
Ahora bien, está claro que en esto tenemos que tener en
cuenta que mientras un proceso está escribiendo un
valor en una variable determinada, puede darse el caso
que otro proceso que es concurrente al primero vaya a
leer o escribir en esa misma variable, entonces habrá
que estudiar el caso en el que un proceso haga una
operación sobre una variable (o recurso en general) y
otro proceso concurrente a él realice otra operación de
tal forma que no se realice correctamente
15. Interrupciones
Una interrupción es una suspensión temporal de la
ejecución de un proceso, para pasar a ejecutar una
subrutina de servicio de interrupción, la cual, por lo
general, no forma parte del programa, sino que
pertenece al sistema operativo o al BIOS. Una vez
finalizada dicha subrutina, se reanuda la ejecución del
programa.
Las interrupciones son generadas por los dispositivos
periféricos habilitando una señal del CPU para solicitar
atención del mismo. Por ejemplo. cuando un disco duro
completa una lectura solicita atención al igual que cada
vez que se presiona una tecla o se mueve el ratón.
16. Tipos de interrupciones
Interrupciones internas de hardware
Las interrupciones internas son generadas por
ciertos eventos que surgen durante la ejecución de
un programa.
Este tipo de interrupciones son manejadas en su
totalidad por el hardware y no es posible
modificarlas.
17. Un ejemplo claro de este tipo de interrupciones es la que
actualiza el contador del reloj interno de la computadora,
el hardware hace el llamado a esta interrupción varias
veces durante un segundo para mantener la hora
actualizada.
Aunque no podemos manejar directamente esta
interrupción (no podemos controlar por software las
actualizaciones del reloj), es posible utilizar sus efectos
en la computadora para nuestro beneficio, por ejemplo
para crear un "reloj virtual" actualizado continuamente
gracias al contador del reloj interno. Únicamente
debemos escribir un programa que lea el valor actual del
contador y lo traduzca a un formato entendible para el
usuario.
18. Interrupciones externas de
hardware
Las interrupciones externas las generan los dispositivos
periféricos, como pueden ser: teclado, impresoras,
tarjetas de comunicaciones, etc. También son generadas
por los coprocesadores.
No es posible desactivar a las interrupciones externas.
Estas interrupciones no son enviadas directamente a la
UCP, sino que se mandan a un circuito integrado cuya
función es exclusivamente manejar este tipo de
interrupciones. El circuito, llamado PIC 8259A, si es
controlado por la UCP utilizando para tal control una
serie de vías de comunicación llamadas puertos.
19. Interrupciones de software
Las interrupciones de software pueden ser activadas
directamente por el ensamblador invocando al número de
interrupción deseada con la instrucción INT.
El uso de las interrupciones nos ayuda en la creación de
programas, utilizándolas nuestros programas son más cortos,
es más fácil entenderlos y usualmente tienen un mejor
desempeño debido en gran parte a su menor tamaño.
Este tipo de interrupciones podemos separarlas en dos
categorías: las interrupciones del sistema operativo DOS y las
interrupciones del BIOS.
20. La diferencia entre ambas es que las interrupciones del
sistema operativo son más fáciles de usar pero también
son más lentas ya que estas interrupciones hacen uso
del BIOS para lograr su cometido, en cambio las
interrupciones del BIOS son mucho más rápidas pero
tienen la desventaja que, como son parte del hardware
son muy específicas y pueden variar dependiendo
incluso de la marca del fabricante del circuito.
La elección del tipo de interrupción a utilizar dependerá
únicamente de las características que le quiera dar a su
programa: velocidad (utilizando las del BIOS) o
portabilidad (utilizando las del DOS).