sábado, 21 de enero de 2017

Procesos:


   Un proceso puede informalmente entenderse como un programa en ejecución. 
 
 
   Formalmente un proceso es "una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistemas asociados".

Estado de los procesos:


-Los estados de un proceso obedecen a su participación y disponibilidad dentro del sistema operativo y surgen de la necesidad de controlar la ejecución de cada proceso.
 
-Los posibles estados que puede tener un proceso son ejecución, bloqueado y listo:
 
1- Ejecución, es un proceso que está haciendo uso del procesador.
2- Bloqueado, No puede ejecutarse hasta que un evento externo sea llevado a cabo.
3- Listo, ha dejado disponible al procesador para que otro proceso pueda ocuparlo.

Bloque de control de los procesos:

- El bloque de control de proceso es la estructura de datos central y más importante de un sistema operativo. Cada bloque de control de proceso contiene toda la información de un proceso que necesita un sistema operativo para su control. Estos bloques son leídos y/o modificados por casi todos los módulos de un sistema operativo, incluyendo aquellos que tienen que ver con la planificación, la asignación de recursos, el tratamiento de interrupciones y el análisis y supervisión del rendimiento. Puede decirse que el conjunto de los bloques de control de procesos definen el estado del sistema operativo.

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.

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.

Comunicación y planificación de los procesos:


- Cuando son ejecutables varios procesos, el sistema operativo debe decidir cual conviene ejecutar si el CPU se encuentra disponible.


 -  El elemento del sistema quien toma esta decisión se llama PLANIFICADOR (Scheduling) y el algoritmo del cual hace uso se denomina ALGORITMO PLANIFICADOR. 

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.

-  Cuando tenemos un solo procesador se producirá un intercalado de las 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. Para estudiar esto, y determinar el tipo de operaciones que se pueden realizar sobre recursos compartidos utilizaremos las condiciones de Bernstein.


Definición y tipos de interrupción:


 Una interrupción es un mecanismo que permite ejecutar un bloque de instrucciones interrumpiendo la ejecución de un programa, y luego restablecer la ejecución del mismo sin afectarlo directamente. De este modo un programa puede ser interrumpido temporalmente para atender alguna necesidad urgente del computador y luego continuar su ejecución como si nada hubiera pasado.
Tipos de interrupciones:
- Interrupciones hardware: Estas son asíncronas a la ejecución del procesador, es decir, se pueden producir en cualquier momento independientemente de lo que esté haciendo la CPU en ese momento.

- Traps: Son aquellas que se producen de forma síncrona a la ejecución del procesador y por tanto podrían predecirse si se analiza con detenimiento la traza del programa que en ese momento estaba siendo ejecutado en la CPU.

- Interrupciones software o excepciones: A menudo se tiende a confundir las interrupciones software y las trampas, ya que su naturaleza es bastante similar. Sin embargo las excepciones se producen al realizar una operación no permitida por lo que de algún modo podemos decir que no es controlada directamente por el programador sino que, por un fallo al programar, se producen.