miércoles, 7 de octubre de 2009

GUIA DE EXAMEN

¿QUE ES UN PROCESO?
Instrucciones que ejecuta el microprocesador mientras lee un programa determinado.

¿QUE ES CONCURRIRSE?
Procesos que generan tiempo de espera o ejecucion de procesos al mismo tiempo.

¿CUALES SON LOS ESTADOS DE LOS PROCESOS?
  • inicio
  • espera
  • ejecucion
  • bloqueado
  • terminado

¿QUE ES UNA BANDERA Y DONDE SE APLICA?

Es un estado que indica como se encuentra el proeso y asi mismo esta le indica al sistema.

¿QUE DIFERENCIOA EXISTE ENTRE SEMAFORO Y MONITOR?

El semaforo regula y el moniotor avisa sobre algun problema.

¿INVESTIGUE DENTRO DE LINUX Y WINDOWS COMO MATAR PROCESOS?

WINDOWS: ctrl+alt+sup y se seleccionan los procesos a eliminar.

LINUX:Escribimos primero ps -aux para obtener una lista de los procesos que se están ejecutando y su pid correspondiente (segunda columna), después kill pid_del_proceso para matar el proceso o kill -9 pid_del_proceso para obligar al sistema operativo a matar el proceso.
Otra opción es killall nombre_programa que matará todos los procesos que estén ejecutando ese programa.

Por último pkill criterio utiliza grep para buscar todos los procesos que coincidan con el criterio especificado y les manda la señal SIGTERM. Por ejemplo pkill fire mataría tanto el proceso firefox como el proceso firebird, dado que la cadena fire aparece en ambos.

EN QUE CONSISTE LA TECNICA DE INTERBLOQUEO

En que varios procesos piden al mismo tiempo un recurso

¿CUALES SON LAS CONDICIONES PARA PRODUCIR UN INTERBLOQUEO?

  • Condicion de exclusion mutua
  • Condicion de posesion y espera
  • Condicion de no apropiacion
  • Condicion de espera circular

DEFINA EL CONCEPTO DE

a) sincronizacion: Ejecucion simultanea de 2 procesos

b) exclusion mutua: Comunicacion requerida entre 1 o mas procesos

c) semaforo: Solucionan problemas de concurrencia de manera fiable.

¿CUALES SON LOS 5 ESTADOS DE LOS PROCESOS Y SUS SIMILITUDES ?


  • inicio

  • espera

  • ejecucion

  • bloqueado

  • terminado

2.

  • listo
  • suspendido
  • bloqueado
  • bloquear y suspendido
  • listo y suspendido

DEFINICION DE SISTEMA OPERATIVO

Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computación destinados a realizar muchas tareas entre las que destaca la administración de los dispositivos periféricos.

Funciones básicas


Los sistemas operativos, en su condición de capa software que posibilitan y simplifica el manejo de la computadora, desempeñan una serie de funciones básicas esenciales para la gestión del equipo. Entre las más destacables, cada una ejercida por un componente interno (módulo en núcleos monolíticos y servidor en micronúcleos), podemos reseñar las siguientes:

  • Proporcionar más comodidad en el uso de un computador.
  • Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos (programas)

  • Brindar una interfaz al usuario, ejecutando instrucciones (comandos).

  • Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir con los servicios que ya se prestaban (evolutividad).


Un sistema operativo desempeña 5 funciones básicas en la operación de un sistema informático: suministro de interfaz al usuario, administración de recursos, administración de archivos, administración de tareas y servicio de soporte y utilidades.

ESTADOS DE PROCESO S.O.

El principal trabajo del procesador es ejecutar las instrucciones de máquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo. En un entorno de multiprogramación, el procesador intercalará la ejecución de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignación de recursos a cada proceso.

Diagrama de formación de un proceso.

Se trata de la utilización de dos archivos, un objeto ejecutable y una biblioteca del sistema, que después se colocan en la imagen del proceso dentro de la memoria RAM y posteriormente también se dan de alta dentro de la tabla de procesos, Bloque de control del proceso.

Modelo de dos estados.

El modelo de estados más simple es el de dos estados. En este modelo, un proceso puede estar ejecutándose o no. Cuando se crea un nuevo proceso, se pone en estado de No ejecución. En algún momento el proceso que se está ejecutando pasará al estado No ejecución y otro proceso se elegirá de la lista de procesos listos para ejecutar para ponerlo en estado Ejecución. De esta explicación se desprende que es necesario que el sistema operativo pueda seguirle la pista a los procesos, conociendo su estado y el lugar que ocupa en memoria. Además los procesos que no se están ejecutando deben guardarse en algún tipo de cola mientras esperan su turno para ejecutar.





Modelo de cinco estados

Diagrama de 5 estados

En la realidad, los procesos utilizan datos para operar con ellos, y puede suceder que no se encuentren listos, o que se deba esperar algún suceso antes de continuar, como una operación de Entrada/Salida. Es por esto que se necesita un estado donde los procesos permanezcan esperando la realización de la operación de Entrada Salida por parte del Sistema Operativo hasta que puedan proseguir. Se divide entonces al estado No ejecución en dos estados: Listo y Espera. Se agregan además un estado Nuevo y otro Terminado.
Los cinco estados de este diagrama son los siguientes según Osëliyo:


Ejecución: el proceso está actualmente en ejecución.

Listo: el proceso está listo para ser ejecutado, sólo está esperando que el planificador de corto plazo así lo disponga.


Espera: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como la finalización de una operación de Entrada/Salida solicitada por una llamada al sistema operativo.


Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal.


Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque terminó o por algún fallo, como un error de protección, aritmético, etc.
Los nuevos estados Nuevo y Terminado son útiles para la gestión de procesos. En este modelo los estados Espera y Listo tienen ambos colas de espera. Cuando un nuevo proceso es admitido por el sistema operativo, se sitúa en la cola de listos. A falta de un esquema de prioridades ésta puede ser una cola FIFO. Cuando se da un suceso se pasan a la cola de listos los procesos que esperaban por ese suceso.




Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cuál es el proceso que más conviene ejecutar a continuación.
Asimismo, existen varias colas en estado de espera, como mínimo una por cada periférico.

Una de las razones para implementar el estado Espera era poder hacer que los procesos se puedan mantener esperando algún suceso, por ejemplo una Entrada/Salida. Sin embargo, al ser mucho más lentas estas operaciones, puede suceder que en nuestro modelo de cinco estados todos los procesos en memoria estén esperando en el estado Espera y que no haya más memoria disponible para nuevos procesos.



Podría conseguirse más memoria, aunque es probable que esto sólo permita procesos más grandes y no necesariamente nuevos procesos. Además hay un costo asociado a la memoria y de cualquier forma es probable que se llegaría al mismo estado con el tiempo. Otra solución es el intercambio.



El intercambio se lleva a cabo moviendo una parte de un proceso o un proceso completo desde la memoria principal al disco, quedando en el estado Suspendido. Después del intercambio, se puede aceptar un nuevo proceso o traer a memoria un proceso suspendido anteriormente.



El problema que se presenta ahora es que puede ser que si se decide traer a memoria un proceso que está en el estado Suspendido, el mismo todavía se encuentre en espera. Sólo convendría traerlo cuando ya está listo para ejecutar, esto implica que ya aconteció el suceso que estaba esperando. Para tener esta diferenciación entre procesos suspendidos, ya sean listos como en espera, se utilizan cuatro estados: Listo, Espera, Espera y suspendido y Listo y suspendido.

CONCURRENCIA EXCLUSIÓN MUTUA Y SINCRONIZACIÓN

CONCURRENCIA
Es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.


EXCLUSION MUTUA

Evitan el acceso simultaneo de recursos compartidos.



SINCRONIZACION


Ejecuta simultaneamente dos procesos.














CONTROL DE PROCESOS DE S.O.

En algunos sistemas operativos como en los de tiempo compartido, cada programa que se ejecuta, por ejemplo mediante una orden de EJECUTAR dada por el usuario, se trata como un proceso independiente. Estos procesos generados por el O.S se denominan IMPLÍCITOS. Una vez terminada la ejecución de los mismos, su eliminación también la realiza el propio O.S. Asi mismo, el O.S proporciona en tiempo real los servicios que son necesarios para que el usuario pueda definir procesos de forma explicita. Los programa acceden a estos servicios realizando LLAMADAS AL SISTEMA(SYSTEM CALL).

Estas llamadas pueden aparecer incrustadas en el código de un programa de usuario o del propio sistema, en cuyo caso, se asemejan a llamadas a procedimientos o funciones que dan lugar a transferencias de rutinas del O.S cuando se invocan en tiempo real. Las llamadas al sistema se realizan tambien, pero de forma indirecta, cuando se dan ordenes al O.S a través de un terminal(ó SHELL)la rutina de monitorización del terminal( que es asu vez un proceso) se encarga de transformar la ordenes en llamadas al sistema.

De este modo, al comienzo de la ejecución del programa principal de un usuario se inicia la ejecución de un proceso. A su vez el proceso podría crear nuevos procesos. En este caso, el proceso que crea otro nuevo se denomina proceso padre(parent process), y el proceso creado de denomina proceso hijo(child process). Una vez creado un proceso hijo, la ejecución de padre e hijo transcurre de manera concurrente. De esta forma se puede crear una jerarquía arborescente de procesos, en la que un padre puede tener varios hijos y estos pueden tener otros hijos, etc, pero donde cada hijo sólo tiene un padre.

PRINCIPIOS GENERALES DE CONCURRENCIA

Es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.

PROCESOS E HILOS

Unidad mínima de asignación: tarea.


Unidad mínima de expedición: hilo.




Dos hilos de una misma tarea (denominados hilos pares) comparten el segmento de código, el segmento de datos y un espacio de pila, es decir, los recursos asignados a la tarea.




Podemos captar la funcionalidad de los hilos si comparamos el control de múltiples hilos con el control de múltiples procesos. En el caso de los procesos, cada uno opera independientemente de los otros; cada proceso tiene su propio contador de programa, registro de pila, y espacio de direcciones.


Contexto del procesador.
Punto en el que estamos ejecutando, la instrucción concretamente en la que nos hallamos. Es útil a la hora de reanudar un hilo que fue interrumpido con anterioridad, puesto que al guardar el contexto, guardamos la ultima instrucción que ejecutamos, y así podemos conocer por donde tenemos que continuar la ejecución del hilo.

Pila de ejecución donde se irá metiendo y sacando instrucciones. (Lugar donde almacenaremos las instrucciones que van a ser ejecutadas).

Acceso a los recursos de la tarea, que son compartidos por todos los hilos de la tarea.
Ventajas del uso de hilos.
  • Se tarda menos tiempo en crear un hilo de una tarea existente que en crear un nuevo proceso.
  • Se tarda menos tiempo en terminar un hilo que en terminar un proceso.
  • Se tarda menos tiempo en cambiar entre dos hilos de una misma tarea que en cambiar entre dos procesos s mas sencillo la comunicación (paso de mensajes por ejemplo) entre hilos de una misma tarea que entre diferentes procesos.
  • Cuando se cambia de un proceso a otro, tiene que intervenir el núcleo del sistema operativo para que haya protección. Cuando se cambia de un hilo a otro, puesto que la asignación de recursos es la misma, no hace falta que intervenga el sistema operativo.

EXCLUSIÓN MUTUA

Evitar que fragmentos de código conocidos como secciones críticas sean accedidas al mismo tiempo a recursos que no deben ser compartidos.

La mayor parte de estos recursos son las señales, contadores, colas y otros datos que se emplean en la comunicación entre el código que se ejecuta cuando se da servicio a una interrupción y el código que se ejecuta el resto del tiempo. Se trata de un problema de vital importancia porque, si no se toman las precauciones debidas, una interrupción puede ocurrir entre dos instrucciones cualesquiera del código normal y esto puede provocar graves fallos.


A NIVEL SOFTWARE


Para los procesos concurrentes que se ejecuten en máquinas monoprocesador o multiprocesador con memoria principal compartida.

A NIVEL HARDWARE




  • Optimistas.
    Consideran que lo mas probable es que no haya conflictos, y si los hay sea en número reducido, por lo que permiten cualquier acceso a la variable compartida. En caso de conflicto, mantienen la integridad del sistema descartando las actualizaciones.
    Pesimistas.
    Bloquean todo aquello que pueda interferir.
    Actualizan la variable.
    Desbloquean lo bloqueado al principio.

    · Deshabilitar interrupciones y habilitar interrupciones (pesimista).
    · Test and Set (Compartir y Fijar) (pesimista).
    · Comparar e intercambiar (optimista).

SEMAFOROS SISTEMA OPERATIVO

Es un algoritmo de control de procesos, que tiene solo dos operaciones básicas, las cuales son:

  • Wait.- Pregunta a los procesos si su contador es > ó = que cero, en caso de no ser así, los decrementa. El proceso que cambia en este caso a negativo (−1) desde la cola de procesos Listos a ser ejecutados es el que automáticamente toma el control del procesador.
  • Signal.- A partir de un tiempo t definido por el despachador se ejecuta, y pregunta a los procesos si su contador es <>



MONITORES SISTEMA OPERATIVO

Un monitor encapsula el código relativo a un recurso compartido en un solo módulo de programa
ventajas:
• mantenimiento más simple
• menos errores de programación
La interfaz del monitor es un conjunto de funciones que representan las diferentes operaciones que pueden hacerse con el recurso
La implementación del monitor garantiza la exclusión mutua
• mediante semáforos o algún otro mecanismo
• o implícitamente en los lenguajes concurrentes

PASO DE MENSAJES SISTEMAS OPERATIVOS

Es una técnica empleada en programación concurrente para aportar sincronización entre procesos y permitir la exclusión mutua, de manera similar a como se hace con los semáforos, monitores, etc.
Su principal característica es que no precisa de memoria compartida, por lo que es muy importante en la programación para sistemas distribuidos.
Los elementos principales que intervienen en el paso de mensajes son el proceso que envía, el que recibe y el mensaje.

CONCURRENCIA E INTERBLOQUEO DEADLOCK


  • Concurrencia: Es la ejecución de procesos al mismo tiempo, demasiadas peticiones a un mismo proceso.

  • Deadlock: Es cuando dos procesos están en un estado de ejecución, y requieren intercambiar recursos entre sí para continuar. Ambos procesos están esperando por la liberación del recurso requerido, que nunca será realizada; como no hay ningún resultado, tomará un camino que llevará a un estado de deadlock.

PRINCIPIOS DE INTERBLOQUEO

El interbloqueo es el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestión concurrente de procesos, no existe una solución eficiente para el caso general.
Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de dos o más procesos.

ACCIONES A REALIZAR EN INTERBLOQUEO

1.- Prevención del Interbloqueo

Consiste en diseñar un sistema de manera que esté que excluida la posibilidad de un interbloque.
a) Métodos Indirectos: Impide la aparición de
  • Condición de exclusión mutua: Comunicación requerida entre uno o más procesos.
  • Condición de posesión y espera: Los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos.
  • Condición de no apropiación: Los recursos otorgados con anterioridad no pueden ser forzados a dejar un proceso. El proceso que los posee debe liberarlos en forma explicita.

b) Métodos Directos: Consisite en evotar la aparción de un circulo vicioso de espera.

2.- Predicción del interbloqueo

Se pueden alcanzar las tres condiciones necesarias, pero se realizan elecciones acertadas para asegurar que nunca se llega al punto de interbloqueo. La predicción permite más concurrencia que la prevención. Con predicción del interbloqueo, se decide dinámicamente si la petición actual de asignación de un recurso podría, de concederse, llevar potencialmente a un interbloqueo.

Enfoques para la predicción del interbloqueo: No iniciar un proceso si sus demandas pueden llevar a interbloqueo.

No conceder una solicitud de incrementar los recursos de un proceso si esta asignación puede llevar a interbloqueo.

3)Detección del interbloqueo

Una posibilidad detectar un interbloqueo es monitorear cada cierto tiempo el estado de los recursos.

4) Recuperación Manual
Nosotros como administradores debemos de terminar esos procesos.
Las teclas son Ctrl +Alt+Supr seleccionamos en la opción de finalizar proceso.