martes, 26 de junio de 2012

SEÑALES



CONCEPTO

Durante una sesión cualquiera, el número de procesos depende del trabajo que los
usuarios realicen. Se sabe que los procesos tienen su propio contexto, pero esto no quiere
decir que estén incomunicados entre sí. Existe un conjunto de métodos mantenidos por el
kernel que permiten entablar diálogos entre ellos. Estos métodos se llaman mecanismos IPC
(Interprocess Comunication). Dentro del conjunto de IPC’s se tienen a los semáforos, la
memoria compartida, colas de mensajes, etc.


COMPORTAMIENTOS

existen 3 tipos de comportamientos

1) Ignorar la señal

2) Invocar a la rutina de tratamiento correspondiente al número de señal. Esta rutina no

la codifica el programador, sino que la aporta el kernel y normalmente tiene como fin

el terminar el proceso que recibe la señal

3) Invocar a una rutina que se encarga de tratar la señal y que ha sido creada por el

programador




SEÑALES BASICAS

a) Señales relacionadas con la terminación de procesos.

b) Señales relacionadas con las excepciones inducidas por los procesos. Por ejemplo, el
intento de acceder fuera del espacio de direcciones virtuales, los errores producidos al
utilizar números en coma flotante, etc.

c) Señales relacionadas con los errores irrecuperables originados en el transcurso de una
llamada al sistema.

d) Señales originadas desde un proceso que se está ejecutando en modo usuario. Por
ejemplo, cuando un proceso envía una señal a otro, etc.

e) Señales relacionadas con la interacción con el terminal. Por ejemplo, pulsar la tecla
break.

f) Señales para ejecutar un programa paso a paso. Son usadas por los depuradores.



SIGALRM: Alarma de relok (Alarm clock). cada proceso tiene un tiempo determinada y cuando este tiempo llega a cero se manda esta señal

SIGINT: Interrupción. esta señal se manda cada que en un proceso se presiona (Ctrl + c). y por defecta el proceso interrumpido llega a su fin

SIGTERM: Finalización software. Es la señal utilizada para indicarle a un proceso que
debe terminar su ejecución. Esta señal no es tajante como SIGKILL y pued
ser ignorada. Lo

SIG_IGN: Indica que la señal se debe ignorar. No todas las señales pueden
ignorarse. Este es el caso de SIGKILL

ACCIÓN Y TRANSACCIÓN ATÓMICA




                                           ACCIÓN ATÓMICA



Una acción es atómica si los procesos que la realizan no saben de la existencia de ningún otro proceso activo, y ningún otro proceso activo tiene constancia de las actividades de los procesos durante el tiempo que en el actué están realizando la acción.
Una acción es atómica si los procesos que 1a realizan no se comunican con otros procesos mientras esta siendo realizada la acción.
Una acción es atómica si los procesos que la realizan no pueden detectar ningún cambio de estado salvo aquéllos realizados por ellos mismos, y si no revelan sus cambios tic estado hasta que la acción se haya completado.
Las acciones son atómicas si, en lo que respecta a otros procesos, pueden ser consideradas invisibles e instantáneas, de forma que los efectos sobre el sistema sean como si estuvieran entrelazadas y no en concurrencia.


Aunque una acción atómica se vea como algo indivisible. puede tener estructura interna. Para permitir la descomposición modular de las acciones atómicas se incorpora la noción de acciones atómicas anidadas. Los procesos comprometidos en una acción anidada deben ser un subconjunto de los que están involucrados en el nivel externo de la acción. Si no fuera así. una acción anidada podría pasar información relativa a la acción de nivel externo a un proceso externo.
Entonces, la acción de nivel externo ya no sería indivisible.

                                   TRANSACCIÓN ATÓMICA


La expresión transacciones atómicas se ha utilizado frecuentemente en el marco conceptual de los sistemas operativos y las bases de datos. Una transacción atómica tiene todas las propiedades de una acción atómica, más la característica adicional de que su ejecución puede tener éxito o fallar (no éxito). Por fallo se entiende la ocurrencia de un error del que la transacción no puede recuperarse; por ejemplo, un fallo de procesador. Si falla una acción atómica, los componentes del sistema que están siendo manipulados por la acción pueden terminar en un estado inconsistente.


aunque, desafortunadamente, se tienden a confundir los términos acción atómica y transacción atómica.


Atomicidad de fallo. lo que significa la transacción debe o bien ser completada con éxito, o (en el caso de fallar) no tener efecto.
Atomicidad de sincronización (o aislamiento), lo que significa que la transacción es indivisible, en el sentido de que su ejecución parcial no puede ser observada por ninguna transacción que se este ejecutando concurrentemente.