miércoles, 4 de marzo de 2020

Interrupciones y llamadas de servicio al sistema

Interrupciones y llamadas de servicio al sistema


¿ Qué es una 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.
Las interrupciones son un método del que disponen los dispositivos e incluso los procesos para hacer notar a la CPU la aparición de alguna circunstancia que requiera su intervención.
De este modo, los dispositivos pueden provocar que la CPU deje por el momento la tarea que estaba realizando y atienda la interrupción. Una vez atendida, seguirá con su labor anterior
Las interrupciones pueden ser producidas por Hardware o por Software
Las interrupciones por Hw son producidas por un dispositivo y viajan por el mismo bus del sistema.
Las interrupciones por Sw son producidas por medio de la ejecución de una operación especial que se conoce como "llamada al sistema" (system call) o por errores producidos dentro de un proceso, también conocidas como excepciones.
Hay muchos tipos de interrupciones y pare cada uno de estas existe una rutina en el sistema de operación que le da servicio. Los sistemas de operación actuales permiten a los dispositivos tales como E/S o reloj del sistema interrumpir el CPU asíncronamente
Dentro de un computador
Cuando una computadora se encuentra realizando un proceso este puede interrumpirse por cualquiera de las dos causas siguientes:

1.- Que se haya presentado una causa que impida que siga adelante un trabajo o un programa que no haya terminado:

En este caso las interrupciones pueden darse:

Por Software: quiere decir que la interrupción se hace por medio de una instrucción del Sistema operativo que demanda la detención del proceso o por una instrucción del programa mismo que demanda la acción de otro dispositivo.
Por Hardware: se refiere a interrupciones provocadas por la acción de algún elemento físico ya sea por una falla, por requerirlo el circuito, por falta de energía eléctrica u otra causa que impida la continuación de un programa dado algunas de estas fallas pueden ser manejadas por el sistema operativo ya sea por normalizar el proceso o para indicar al operador la causa de la interrupción.

2.- Es que haya llegado el fin lógico de un programa o de un trabajo: en este caso el sistema operativo debe retirar el control al programa que ha terminado de introducir una nueva tarea si se tiene alguna espera esta interrupción no representa un mayor problema ya que solo puede darse cuando el programa que se encuentra en proceso demanda a través de una instrucción su propio fin.

Llamada al sistema.
Llamadas que ejecutan los programas de aplicación para pedir algún servicio al SO.
Llamadas al sistema no bloqueantes: son aquellas llamadas en las que, si lo que se solicita no está disponible, el proceso no se queda bloqueado, sino que devuelven un valor especial indicando la condición de información no disponible
Llamadas al sistema bloqueantes: la aplicación se bloquea a la espera del resultado. Si un hilo hace una llamada bloqueante, todos los hilos se bloquearán. Si hace una llamada no bloqueante, los demás hilos podrán seguir ejecutando.
¿Como se mandan las llamadas al sistema?
Se activa una interrupción  ejecutando una operación especial conocida  "Llamada al sistema"
Esta se lanza cuando:
Una aplicación de usuario solicita un servicio del sistema operativo.
Proporciona los medios para que un programa de usuario pida al so que realice tareas reservadas del so en nombre del programa de usuario.

Una llamada al sistema se invoca de diversas maneras dependiendo de la funcionalidad proporcionada por el procesador subyacente.

Se trata de un método usado por un proceso para solicitar la actuación del so.

Normalmente una llamada al sistema toma la forma de una excepción que efectúa una transferencia a una posición específica en el vector de interrupción.


Tipos de llamadas al sistemas

Control de procesos

Terminar (end), abortar (abort)
cargar (load), ejecutar (execute)
crear procesos (create process o submit job), terminar procesos (terminate process)

fork: inicia un nuevo proceso
exec:el programa se ejecuta obtener atributos del proceso (get process attributes), definir atributos del proceso (set process attributes)
esperar para obtener tiempo (wait time)
esperar suceso (wait event), señalizar suceso (signal event)
asignar y liberar memoria.
llamada al sistema para liberar memoria (dump) (i45)

Administración de archivos

crear archivos (create), borrar archivos (delete)
abrir (open), cerrar (close)
leer (read), escribir (write), reposicionar (reposition)
obtener atributos del archivo, definir atributos del archivo.
move: mover archivos
copy: copiar archivos

Administración de dispositivos

solicitar dispositivo (request), liberar dispositivo (release)
leer (read), escribir (write), reposicionar (reposition)
obtener atributos de dispositivo, definir atributos de dispositivo
conectar y desconectar dispositivos lógicamente.

Mantenimiento de la información

obtener la hora (time) o la fecha (date), definir la hora o la fecha
obtener datos del sistema, establecer datos del sistema
obtener los atributos de procesos, archivos o dispositivos
establecer los atributos de procesos, archivos o dispositivos
Comunicaciones
crear, eliminar conexiones de comunicación
enviar, recibir mensajes
transferir información de estado
conectar y desconectar dispositivos remotos. (i43)

Llamadas al sistema

  • Abrir archivo

  • Crear archivo

  • Proteger archivo

  • Escribir mensaje en consola

  • Terminar en forma anormal

  • Borrar archivo

  • Leer archivo

  • Modificar archivo (i39)

  • CreateProcess de win32

get hostid:
 Cada computadora de red tiene un nombre de host. Un host tiene un identificador de red. Ésta llamada al sistema hace esa traducción (i49)

get processid: 
Cada proceso tiene un nombre de proceso y este nombre se traduce en un identificador mediante el cual el so hace referencia al proceso. Ésta llamada al sistema realiza la traducción


DEFINICIÓN:
Llamadas al sistema: 

                                                                        Interrupciones de hardware y software

No hay comentarios.:

Publicar un comentario