martes, 19 de junio de 2012

Administración del Procesador

Administración del Procesador
El Procesador
El procesador CPU(Unidad Central de Procesamiento), es por decirlo de alguna manera, el cerebro del computador.
Permite el procesamiento de información numérica, es decir, información ingresada en formato binario, así como la ejecución de instrucciones almacenadas en la memoria.
El procesador es el elemento de un computador que se encarga de realizar las operaciones lógicas (si se cumple una instrucción hará una cosa y si no otra) y las operaciones aritméticas (cálculos).  También se encarga de dirigir el tráfico por la placa base y gobernar el computador. Para ello se divide en dos partes la UC (unidad de control) que dirige el trafico y la ALU que realiza las operaciones aritmetico-lógicas. 

Las partes lógicas que componen un procesador son:
·         Unidad aritmético-lógica.
·         Registros de almacenamiento.
·         Unidad de control.
·         Unidad de ejecución.
·         Memoria caché.
·         Administración del BUS de datos

Tipos de Procesador

Usos del Procesador
Después del consumo de memoria la actividad del procesador es el dato más importante a controlar en nuestro servidor. Para determinar si las tareas del procesador se manejan eficientemente para todo el trabajo en el equipo o si está sobrecargado, debemos examinar su uso.
El uso del procesador o uso de CPU es el porcentaje de tiempo en el que se encuentra ocupado trabajando. Debemos vigilar esta ocupación para detectar cuellos de botella en el procesador.
En el Administrador de tareas el uso de CPU muestra un gráfico indicando el porcentaje de tiempo que el procesador está trabajando. Este contador es el primer indicador de la actividad del procesador. Viendo el gráfico vemos cuanto tiempo de proceso se esta utilizando. Si el equipo parece enlentecerse, el gráfico puede estar mostrando un gran porcentaje de uso.

Diagramas de Estado
Conforme un sistema interactúa con los usuarios y (posiblemente) con otros sistemas, los objetos que lo conforman pasan por cambios necesarios para ajustar las interacciones. Por esa razón se necesita contar con un mecanismo para cambios en el modelo. Un cambio en un sistema se da debido a que los objetos que componen dicho sistema modificaron su estado como respuesta a los sucesos y al tiempo. Un diagrama de estados también se conoce como un “motor de estado”.
Diagramas de Procesos
Es una representación gráfica de los pasos que se siguen en toda una secuencia de actividades, dentro de un proceso o un procedimiento, identificándolos mediante símbolos de acuerdo con su naturaleza; incluye, además, toda la información que se considera necesaria para el análisis, tal como distancias recorridas, cantidad considerada y tiempo requerido. Con fines analíticos y como ayuda para descubrir y eliminar ineficiencias, es conveniente clasificar las acciones que tienen lugar durante un proceso dado en cinco clasificaciones. Estas se conocen bajo los términos de operaciones, transportes, inspecciones, retrasos o demoras y almacenajes.
Diagramas de Actividades
Este tipo de diagrama le resulta familiar a la mayoría de programadores, pues en cualquier curso básico de programación se comienza por trabajar con los diagramas de flujo para conocer la lógica que llevará un programa. Los tradicionales diagramas de flujo muestran una secuencia de pasos, procesos, puntos de decisión y bifurcaciones. Con sus diversas características y tipos de diagramas, el UML se podría decir que es en cierta medida, un diagrama de flujo robustecido o reforzado. Para el caso particular del diagrama de actividades, es muy parecido a los viejos diagramas de flujo, pues muestra los pasos (conocidos como actividades) así como puntos de decisión y bifurcaciones. Lo que hacen es mostrar una visión simplificada de lo que ocurre durante una operación o proceso.
JOB
Se denomina JOB o Tarea (Trabajo) a todas las actividades involucradas en la culminación de un proyecto en un computador, desde el inicio hasta el final. Una tarea puede involucrar varios procesos y programas. Este término se origina de la época en la que el usuario debía ingresar una tarea de manera manual a través de una serie de tarjetas perforadas que incluían el código fuente junto con instrucciones en lenguaje de control de tareas para guiar los pases de la tarea, tales como compilación, ejecución, vinculación e impresión de los resultados.
Se refiere a una unidad de trabajo activa en el computador. Una tarea puede ser un programa o grupo de programas que trabajan juntos. Las tareas pueden ser instrucciones programadas para activarse en un momento específico o un programa que interactúa con los usuarios y permanece activo en el computador todo el día.
Planificador Scheduler
El planificador (o Scheduler en inglés) es un componente funcional muy importante de los sistemas operativos multitarea y multiproceso, y es esencial en los sistemas operativos de tiempo real. Su función consiste en repartir el tiempo disponible de un microprocesador entre todos los procesos que están disponibles para su ejecución. El planificador es un módulo del sistema operativo que selecciona los trabajos próximos a ser admitidos en el sistema y el siguiente proceso para ejecutar.
Se encarga de asignar los procesadores a los diferentes procesos, por lo tanto debe actuar cuando se debe comprobar si es necesario cambiar el proceso que está activo. Esto involucra: cambio de contexto, cambio a modo usuario, salto a la dirección de memoria que corresponda al programa de usuario para continuar su ejecución.
Niveles de Planificación:
Los niveles de planificación están basados en la frecuencia con la que se realiza cada uno.
En los sistemas operativos de propósito general, existen tres tipos de planificadores. El planificador a corto plazo es el que se ha descrito aquí, siendo también el más importante. En inglés, se denomina dispatcher o short termscheduler, también existe un planificador a mediano plazo (en inglés, midtermscheduler) relacionado con aquellos procesos que no se encuentran en memoria principal (véase memoria virtual). Su misión es mover procesos entre memoria principal y disco (lo que se conoce como swapping) y por último existe el planificador a largo plazo (en inglés longtermscheduler) es el encargado de ingresar nuevos procesos al sistema y de finalizarlos.
Políticas de Planificación:
A continuación se enumeran diversas políticas de planificación. Lo habitual es utilizar políticas mixtas. Generalmente, el planificador a corto plazo utiliza round-robin, mientras que el planificador a largo plazo utiliza varias colas FIFO. Cada una de estas colas corresponde a una prioridad diferente.
Planificación Round-robin
Round-robin con pesos.
Prioridades monótonas en frecuencia (RMS (Rate-monotonicschedulin))
Menor tiempo de respuesta primero (EDF (Earliesdeadlifirstschedulin))
FIFO - También conocido como FCFS "First Come, FirstServe".
LIFO.
SJB - Shortest Job First.
CFS - Completely Fair Scheduler (ó PlanificadorCompletamente Justo)
SRT - Shortest Remaining Time
SPT - ShortestProcess Time
Planificación mediante colas multinivel.

Criterios De Despachador:
Utilización de CPU: mantener la CPU ocupada la mayor cantidad del tiempo posible.
Productividad (Throughput): # de procesos por unidad de tiempo.
Tiempo de servicio (Turnaround time): tiempo necesario para la ejecución de un proceso particular.
Tiempo de espera (Waiting time): tiempo total que el proceso se encuentra en la fila ready.
Tiempo de respuesta (Response time): tiempo que transcurre desde el requerimiento hasta que se produce la primera respuesta (en ambientes de tiempo compartido).

Coordinador de Trabajo
Un coordinador de trabajo es un módulo del S.O que selecciona el siguiente trabajo que hay que admitir en el sistema y el siguiente proceso que hay que ejecutar. A su vez hace referencia a un conjunto de políticas Y mecanismos incorporados a sistemas operativos que gobiernan el orden en que se ejecutan los trabajos. En muchos sistemas, la actividad de coordinar se divide en tres funciones independientes: a largo, medio, y corto plazo.
Sus funciones principales son:
          Se encarga de hacer de interface hombre-máquina
          Administra pedidos de recursos
          Carga los programas
          Crea procesos
          Controla accesos de usuarios
          Controla protecciones del sistema
          Minimizar el tiempo de espera y minimizar el tiempo de respuesta.

Módulo de asignación de Procesador
La estructura del sistema operativo estándar, se presenta en módulos. El primer módulo es el núcleo que da servicio al resto. Por tanto, el núcleo es el módulo de nivel más bajo del sistema operativo y descansa directamente sobre el hardware del computador, proporcionando una serie de servicios a las capas superiores del sistema operativo. Entre las tareas que desempeña el núcleo está el manejo de interrupciones, la asignación de trabajo al procesador, y proporciona una vía de comunicación entre los distintos programas.
Cuando el hardware del computador detecta una interrupción, el control se transfiere al módulo de control de interrupciones del núcleo, que analiza el carácter de la interrupción y toma las acciones apropiadas. Estas acciones suelen consistir en transferir el control a otro módulo del sistema operativo, iniciar otro programa o continuar la ejecución del programa interrumpido. Dado que muchas interrupciones tienen lugar por motivos de entrada/salida, el módulo de control de E/S es uno a los que se transfiere el control con más frecuencia.
Para asignar trabajo al procesador, el núcleo transfiere el control al programa que el planificador ha determinado que sea el próximo en ejecutarse. La comunicación entre programas se logra manteniendo una cola de mensajes en espera para cada uno de los programas activos. El núcleo recibe los mensajes y los va almacenado en la cola apropiada, para distribuirlos cuando el programa destino se active.
La mayoría de los computadores disponen de instrucciones en lenguaje máquina cuyo uso está restringido al núcleo del sistema operativo. Entre ellas se encuentran instrucciones que transfieren el control de un programa a otro, así como instrucciones que acceden a determinados registros. Restringir estas instrucciones es un modo apropiado de controlar el funcionamiento global del computador y limitar los efectos de los errores.
Sincronización de Procesos
Un proceso es cooperativo si puede afectar o ser afectado por los otros procesos que se están ejecutando en el sistema.
La cooperación entre procesos requiere: la ejecución concurrente de los mismos, mecanismos de comunicación y mecanismos de sincronización
Al haber procesos concurrentes se deben emplear mecanismos para asegurar la consistencia de los datos.
Sincronización Y Comunicación Entre Procesos:
La comunicación entre procesos: necesaria si se desea que varios procesos puedan colaborar para realizar una misma tarea. Sincronización funcionamiento coordinado en la resolución de una tarea encomendada.
El SO ofrece mecanismos básicos de comunicación, que permiten transferir cadenas de bytes. Deben ser los procesos que se comunican quienes interpreten el significado de las cadenas transferidas para su labor coordinada.
Los mecanismos de comunicación y sincronización son dinámicos. Es decir, cuando se necesita un mecanismo de este estilo, se crea, usa y destruye, de forma que no se establezca de forma definitiva ningún mecanismo de comunicación, ya que ellos podrían producir efectos indeseados. Es decir, la comunicación es algo puntual.
Los servicios básicos de comunicación son:
a)      Crear: el proceso solicita la creación del mecanismo.
b)      Enviar o escribir: el proceso emisor envía información al proceso receptor.
c)      Recibir o leer: el proceso receptor recibe información.
d)     Destruir: el proceso solicita la destrucción del mecanismo de comunicación.
La comunicación puede ser síncrona y asíncrona:
a)      Síncrona: los dos procesos han de ejecutar servicios de forma simultánea. El emisor ha de ejecutar el servicio enviar mientras el receptor ejecuta recibir.
b)      Asíncrona: el emisor hace el envío y prosigue su ejecución. El SO ofrece un almacenamiento intermedio para guardar la información enviada, hasta que el receptor la solicite.
Esquema de Sincronización Síncrona:

En un sistema operativo multiprogramado los procesos compiten por el acceso a los recursos compartidos o cooperan dentro de una misma aplicación para comunicar información. Ambas situaciones son tratadas por el sistema operativo mediante mecanismos de sincronización que permiten el acceso exclusivo de forma coordinada a los recursos y a los elementos de comunicación compartidos. Según el modelo de sistema operativo descrito anteriormente, basado en colas de procesos y transiciones de estados, los procesos abandonan la CPU para pasar a estado bloqueado cuando requieren el acceso a algún dispositivo, generalmente en una operación de E/S, pasando a estado preparado cuando la operación ha concluido y eventualmente volver a ejecución. La gestión de estos cambios de estado, es decir, los cambios de contexto, es un ejemplo de sección crítica de código dentro del sistema operativo que debe ser ejecutada por éste en exclusión mutua. Otros ejemplos de código que debe protegerse como sección crítica incluyen la programación de los dispositivos de E/S y el acceso a estructuras de datos y buffers compartidos.
Dentro del dentro del núcleo del sistema operativo, el espacio de direcciones es único, por lo que la comunicación se resuelve mediante el uso de variables de memoria compartida. Como contrapartida a la agilidad de este esquema, es necesario utilizar mecanismos explícitos de sincronización para garantizar acceso exclusivo a las variables compartidas. Si se definen buffers o colas compartidas a las que se proporciona acceso exclusivo, se pueden utilizar esquemas de comunicación más elaborados, como es el caso del productor-consumidor. El esquema cliente-servidor es un caso particular del productor-consumidor donde los clientes producen peticiones que son consumidas por el servidor de un determinado recurso. Un sistema operativo con estructura cliente-servidor resulta atractivo por la claridad de su diseño. Cuando los procesos que se comunican mediante estos esquemas no comparten el espacio de direcciones, lo que sucede en particular en sistemas basados en micro núcleo, se requieren primitivas de comunicación por paso de mensajes, que, al gestionar implícitamente la sincronización, simplifican la programación de la comunicación.

No hay comentarios:

Publicar un comentario