INGENIERIA INFORMATICA

domingo, 18 de septiembre de 2016

Unidad 2

UNIDAD 2 Administración de procesos y del procesador.

La gestión de procesos es la tarea fundamental de cualquier sistema operativo moderno.
 El sistema operativo debe asignar recursos a los procesos, permitir el intercambio de información entre los mismos, proteger los recursos de un proceso del resto y facilitar la sincronización de procesos.
 Para alcanzar estos objetivos, el sistema operativo mantiene una estructura de datos para cada proceso que describe su estado y los recursos que posee y que permite al sistema operativo imponer un control sobre los procesos (PCB Bloque de Control de Proceso).
 En un monoprocesador multi-programado, debe intercalarse en el tiempo, la ejecución de múltiples procesos. En un multiprocesador, no sólo puede intercalarse la ejecución sino que los procesos se pueden ejecutar simultáneamente. Ambos, intercalación y ejecución simultánea, son formas de concurrencia y llevan a una multitud de problemas complejos, tanto para el programador de aplicaciones como para el sistema operativo.
 El sistema operativo debe llevar a cabo la función de planificar y ofrecer mecanismos para compartir y sincronizar procesos.
 2.1 Concepto de proceso.
 Programas.- Colección de instrucciones que el procesador interpreta y ejecuta, se almacenan en sistemas no volátiles necesitando ser cargados en memoria principal para poder ser ejecutados, se considera un ente estático. Procesos.-Programa en ejecución, el sistema operativo les asigna recursos, Se consideran un ente dinámico. El proceso es una abstracción creada por el SO, que se compone de: Código de Programa: sección texto Contexto de Ejecución: PC, registros del procesador y una pila para invocación de procedimientos Sección de Datos, que contiene variables globales Recursos del sistema. Características Permite modularizar y aislar errores de programas durante su ejecución Soporta concurrencia de actividades, lo que permite un mejor aprovechamiento de los recursos Denominaremos como procesos tanto a los trabajos (Jobs) en sistemas de lotes, como a las tareas (task) en sistemas de tiempo compartido Modelo La diferencia entre un programa (conjunto de instrucciones) y un proceso (instrucciones ejecutándose) es obvia y crucial para entender el funcionamiento de los SO. Imaginemos un mecánico de autos en un taller donde se reparan carros con averías complejas en las que se hace necesario consultar el manual de cada modelo, que contiene las instrucciones para reparar cada posible avería. Además, se permiten reparaciones rápidas a las que se les da mayor prioridad.
 Existe un almacén de refacciones y herramientas suficientes para las reparaciones. Comparando esta situación con un sistema de cómputo se pueden establecer las siguientes analogías: El mecánico sería el CPU (procesador) que realizará el trabajo. El manual de cada reparación sería el programa. Las herramientas serían los recursos disponibles Las refacciones serían los datos. La actividad de usar las herramientas para desmontar las piezas defectuosas sustituyéndolas por otras nuevas siguiendo las instrucciones del manual equivaldría al proceso.
 Suponiendo que en un momento dado el mecánico está realizando una reparación compleja (de las que llevan tiempo) y aparece un carro que solicita una reparación de las rápidas (ha aparecido una interrupción). El mecánico suspende momentáneamente la reparación compleja anotando en qué situación se queda dicha reparación y qué operación estaba realizando en ese momento (guarda el estado del proceso).
Asimismo, sustituye el manual que estaba realizando por el de la nueva reparación que se dispone a realizar (cambio de programa). Comienza la nueva reparación (cambio de proceso), en la que las herramientas no serán las mismas que antes (distintos recursos); las indicaciones del usuario, las refacciones (datos) y las indicaciones del manual (programa) llevarán a feliz término la reparación para que el mecánico regrese a la reparación inicial. Con este ejemplo se resalta que un proceso es una actividad que se apoya en datos, recursos, un estado en cada momento y un programa.

Glosario:

PCB: Bloque central de proceso.
Wait: operación de espera sobre un semáforo. Los semáforos serán rutinas programadas utilizadas en programación concurrente
Cola: estructura de datos dinámica residente en memoria principal derivada de las listas, la cual puede cambiar de tamaño en tiempo de ejecución. Las inserciones y eliminaciones se van a realizar atendiendo al método FIFO (Primero en entrar, Primero en salir).
Carga del sistema: número de procesos (programas activos), que tenemos actualmente cargados en memoria principal. Sobre cualquiera de ellos puede actuar el planificador.
Apuntador o puntero: tipo de dato formado por una dirección de memoria principal. A través de este tipo de dato se puede acceder a cualquier bloque de memoria que esté referenciado, es decir que sepamos su dirección lógica.
SIGNAL: operación de continuación sobre un semáforo. Los semáforos serán rutinas, programadas para utilizarlas en programación concurrente.
Tabla de procesos: estructura de datos que actuando como una tabla de una entrada, almacena los procesos creados en el sistema ya estén listos o bloqueados.
Tiempo real: un sistema de este tipo es aquel que necesita de tiempos de respuesta muy cortos, incluso del orden de microsegundos, en el caso de procesos críticos.
Acumulador: Registro en el que son almacenados temporalmente los resultados aritméticos y lógicos intermedios que serán tratados por el circuito operacional de la unidad aritmético-lógica (ALU).
Asíncrono: término utilizado para especificar la ejecución de distintos procesos de forma independiente unos de los otros respecto al tiempo. En Hardware este concepto es aplicable a dispositivos físicos como la memoria y la CPU, etc.
Hilo: cada una de las unidades de asignación de un proceso, de esta forma cada proceso (elemento que posee recursos), puede mantener varias unidades de asignación de CPU en una misma ejecución. Este concepto se conoce también como 'thread', hebra o proceso ligero
Protocolos: estándar de comunicación entre distintos dispositivos físicos o procesos mediante el cual se regulan los mecanismos y políticas a seguir para llevar a cabo una transmisión perfecta de datos.
CPU: Acrónimo inglés de "Central Processing Unit", en castellano, "Unidad Central de Proceso". Aquella unidad incluida íntegramente en el microprocesador (solo en PC's) de un computador que controla el resto de unidades. Formada por la unidad aritmético-lógica, la unidad de control y de pequeños registros principalmente. El control lo lleva a cabo mediante la interpretación y la ejecución de instrucciones, según las señales que le dicta un reloj.
Depurador: programa especializado en la corrección y eliminación de errores en un código fuente durante su edición, o capturando diversos datos durante su ejecución.
Cliente: aquel proceso o dispositivo solicitante que realiza la petición de un servicio o trabajo a otro proceso denominado 'servidor'.
Interrupción: detención temporal en un punto determinado de un programa, para permitir el acceso y proceso de una rutina que tomará el control del sistema. Puede ocurrir debido a diferentes causas ya sean hardware o software.
Pila: zona reservada de la memoria o registros hardware donde se almacena temporalmente el estado o información de un programa, rutina, etc... . Mantiene una política de inserciones y eliminaciones LIFO (Primero en entrar Último en salir). 
Registro: pequeña memoria interna del microprocesador, formada generalmente por bien estables, es de rápido acceso y son de muy utilizados programando en lenguaje ensamblador.
Rutinas de E/S: conjunto de instrucciones encargado de controlar la transferencia de datos entre los periféricos y el ordenador. Gestionan las capacidades de los puertos.
Tiempo compartido: sistema de reparto de la capacidad de proceso basado en la división del tiempo de CPU entre los distintos trabajos que hay en memoria principal, para que todos avancen en su ejecución.

No hay comentarios:

Publicar un comentario