UNIDAD III

10
UNIDAD 3 PLANEACION TRABAJOS JOB SCHEDULING Es El encargado de tomar esa decisión es el planificador o scheduler, y el algoritmo que usa se llama algoritmo de planificación. (Scheduler = planificación). Posibles objetivos (algunos de ellos contradictorios) del algoritmo de planificación son Justicia: Asegurarse que todos los procesos tengan su turno de CPU. Eficiencia: Mantener la CPU ocupada todo el tiempo. Tiempo de respuesta: Minimizar el tiempo de respuesta de los usuarios interactivos. Rendimiento o productividad (throughput): Maximizar el número de trabajos terminados por hora. Tiempo de espera: Minimizar el tiempo medio de espera (en la cola READY) de los procesos. ¿Cuándo hay que planificar? La decisión de planificación puede o debe tomarse cuando ocurre cualquiera de las siguientes transiciones entre estados de un proceso: * EJECUTANDO a BLOQUEADO. * EJECUTANDO a TERMINADO. * EJECUTANDO a LISTO. * BLOQUEADO a LISTO. CONCEPTOS BASICOS JOB SCHEDULING Job – Un job es una tarea de base de datos definida en términos de una secuencia válida de comandos Transact-SQL, como por ejemplo una serie de comandos dump o dbcc. Schedule – Un schedule es un horario de ejecución, definido en términos de atributos particulares, como fecha y hora de inicio, periodicidad, fecha y hora de finalización, etc. Scheduled Job – Un scheduled job es un job que ha sido asociado a un schedule y que, en consecuencia, se ejecutará automáticamente de acuerdo a lo definido en dicho schedule. La ejecución del scheduled job se lleva a cabo en el ASE denominado Target Server. Target Server – Es el servidor ASE en el cual se ejecutará un scheduled job.

Transcript of UNIDAD III

Page 1: UNIDAD III

UNIDAD 3

PLANEACION TRABAJOS JOB SCHEDULING

Es El encargado de tomar esa decisión es el planificador o scheduler, y el algoritmo que usa

se llama algoritmo de planificación. (Scheduler = planificación). Posibles objetivos (algunos

de ellos contradictorios) del algoritmo de planificación son

Justicia: Asegurarse que todos los procesos tengan su turno de CPU.

Eficiencia: Mantener la CPU ocupada todo el tiempo.

Tiempo de respuesta: Minimizar el tiempo de respuesta de los usuarios interactivos.

Rendimiento o productividad (throughput): Maximizar el número de trabajos terminados

por hora.

Tiempo de espera: Minimizar el tiempo medio de espera (en la cola READY) de los procesos. ¿Cuándo hay que planificar?

La decisión de planificación puede o debe tomarse cuando ocurre cualquiera de las

siguientes transiciones entre estados de un proceso:

* EJECUTANDO a BLOQUEADO.

* EJECUTANDO a TERMINADO.

* EJECUTANDO a LISTO.

* BLOQUEADO a LISTO.

CONCEPTOS BASICOS JOB SCHEDULING

• Job – Un job es una tarea de base de datos definida en términos de una secuencia válida

de comandos Transact-SQL, como por ejemplo una serie de comandos dump o dbcc.

• Schedule – Un schedule es un horario de ejecución, definido en términos de atributos

particulares, como fecha y hora de inicio, periodicidad, fecha y hora de finalización, etc.

• Scheduled Job – Un scheduled job es un job que ha sido asociado a un schedule y que, en

consecuencia, se ejecutará automáticamente de acuerdo a lo definido en dicho schedule.

La ejecución del scheduled job se lleva a cabo en el ASE denominado Target Server.

• Target Server – Es el servidor ASE en el cual se ejecutará un scheduled job.

Page 2: UNIDAD III

• JS Server – Es el servidor ASE que almacena y administra los componentes del Job

Scheduler (jobs, Schedule y scheduled jobs) y es el encargado de controlar la ejecución de

los scheduled jobs a través de los JS Tasks e interactuando con el JS Agent. En este servidor

reside la base de datos sybmgmtdb en donde se almacena toda la información del sistema

del Job Scheduler.

• JS Task – Es una tarea interna que corre en el ASE denominado JS Server, encargada de

determinar qué scheduled jobs deben ser ejecutados en cada momento del tiempo. Cuando

una tarea JS Task determina que una scheduled job debe ser ejecutado, pasa la información

al JS Agent, quien inicia la ejecución en el ASE denominado Target Server.

• JS Agent – Es un proceso del sistema operativo que corre en la mísma máquina del JS

Server. El JS Agent es el encargado de controlar la ejecución de los scheduled jobs en el

Target Server, de acuerdo a la información recibida por los JS Task.

TIPOS DE PLANEACION JOB SCHEDULING

· PLANEACION DE TRABAJOS (JOB SCHEDULING)

El Objetivo de la planificación: Minimizar el tiempo de espera y minimizar el tiempo de

respuesta.

En muchos sistemas, la actividad de planificación se divide en tres funciones

independientes: planificación a largo, medio, y corto plazo.

FIRST IN FIRST OUT (FIFO

Primero en llegar primero en ser tendido. la CPU se asigna a los procesos en el orden que

lo solicitan, cuando el primer proceso entra en el sistema, se le inicia de inmediato y se le

permite ejecutar todo el tiempo que necesite, cuando llegan otros procesos se les coloca al

final de la cola.

Cuando se bloquea el proceso en ejecución, se ejecuta el primer proceso de la cola, si un

proceso bloqueado vuelve a estar listo se le coloca al final de la cola como si fuera un

proceso recién llegado.

· Es del tipo no expropiativo

· Es equitativo

· Solo necesita una cola para implementarse

· Presenta desventajas cuando se tienen procesos dedicados a CPU y dedicados a E/S

Page 3: UNIDAD III

ROUN ROBIN (RR) Algoritmo apropiativo consistente en determinar un quantum (tiempo de reloj) que

marcará el intervalo de CPU que se le cederá al proceso ejecutando. Cuando finalice el

quantum al proceso se le quitará la CPU y pasará a la cola de listo. La cola de listos sigue la

estructura FIFO.

Si un proceso no consume su quantum libera la CPU y ésta es asignada al siguiente Proceso

de la cola de listo.

Los procesos se despachan en “FIFO” y disponen de una cantidad limitada de tiempo de

CPU, llamada “división de tiempo” o “cuanto”.

Si un proceso no termina antes de expirar su tiempo de CPU ocurren las siguientes acciones: 1. La CPU es apropiada.

2. La CPU es otorgada al siguiente proceso en espera.

3. El proceso apropiado es situado al final de la lista de listos.

CARACTERÍSTICAS:

• Fácil de implementar.

• Perjudica a los procesos de E/S.

• Si el quantum es muy grande se comporta como un FCFS.

• El tiempo de respuesta para procesos cortos es bueno.

• Trato equitativo entre procesos, bueno para interactividad.

• No se produce inanición.

• El valor mínimo del quantum debe ser (10 * Tiempo Cambio Contexto)

• El quantum más adecuado es el Tiempo de CPU del proceso más corto.

SHORTEST JOB FIRST (SJF)

Es una disciplina no Apropiativa y por lo tanto no recomendable en ambientes de tiempo

compartido.

El proceso en espera con el menor tiempo estimado de ejecución hasta su terminación es

el siguiente en ejecutarse. Los tiempos promedio de espera son menores que con “FIFO”.

· Los tiempos de espera son menos predecibles que en “FIFO”.

· Favorece a los procesos cortos en detrimento de los largos.

· Tiende a reducir el número de procesos en espera y el número de procesos que esperan

detrás de procesos largos.

Page 4: UNIDAD III

· Requiere un conocimiento preciso del tiempo de ejecución de un proceso, lo que

generalmente se desconoce. Se pueden estimar los tiempos en base a series de valores

anteriores.

SHORTEST REMAINING TIME (STR)

Esta disciplina elige siempre al proceso que le queda menos tiempo de ejecución estimado

para completar su ejecución; de esta forma aunque un proceso requiera mucho tiempo de

ejecución, a medida que se va ejecutando iría avanzando en la lista de procesos en estado

listo hasta llegar a ser el primero.

Este algoritmo es la versión no Apropiativa o expulsiva del algoritmo Shortest Process Next

(SPN) o también llamado Shortest Job First (SJF).

Definición: Algoritmo apropiativo (que en cualquier momento se le puede quitar la CPU para

asignársela otro proceso) consistente en elegir de la cola de listos el proceso con menos

necesidad de tiempo restante de CPU para cada instante de tiempo.

· CARACTERÍSTICAS:

· Ofrece un buen tiempo de respuesta.

· La productividad es alta a cambio de la sobrecarga del sistema (a cada paso debe decidir a

que proceso asignarle la CPU).

· Penaliza los procesos largos.

· Se puede producir inanición.

FIRST IN FIRST OUT JOB SCHEDULING (FIFO)

Primero en llegar primero en ser tendido. La CPU se asigna a los procesos en el orden que

lo solicitan, cuando el primer proceso entra en el sistema, se le inicia de inmediato y se le

permite ejecutar todo el tiempo que necesite, cuando llegan otros procesos se les coloca al

final de la cola. Cuando se bloquea el proceso en ejecución, se ejecuta el primer proceso de

la cola, si un proceso bloqueado vuelve a estar listo se le coloca al final de la cola como si

fuera un proceso recién llegado.

. Es del tipo no exprópiativo

. Es equitativo

. Solo necesita una cola para implementarse

. Presenta desventajas cuando se tienen procesos dedicados a CPU y dedicados a E/S

Page 5: UNIDAD III

ROUND ROBIN JOB SCHEDULING (RR)

ROUN ROBIN (RR)

Algoritmo apropiativo consistente en determinar un quantum (tiempo de reloj) que

marcará el intervalo de CPU que se le cederá al proceso ejecutando. Cuando finalice el

quantum al proceso se le quitará la CPU y pasará a la cola de listo. La cola de listos sigue la

estructura FIFO. Si un proceso no consume su quantum libera la CPU y ésta es asignada al

siguiente

Proceso de la cola de listo.

Los procesos se despachan en “FIFO” y disponen de una cantidad limitada de tiempo de

CPU, llamada “división de tiempo” o “cuanto”.

Si un proceso no termina antes de expirar su tiempo de CPU ocurren las siguientes acciones:

1. La CPU es apropiada.

2. La CPU es otorgada al siguiente proceso en espera.

3. El proceso apropiado es situado al final de la lista de listos.

Es efectiva en ambientes de tiempo compartido.

La sobrecarga de la apropiación se mantiene baja mediante mecanismos eficientes de

intercambio de contexto y con suficiente memoria principal para los procesos.

CARACTERÍSTICAS:

• Fácil de implementar.

• Perjudica a los procesos de E/S.

• Si el quantum es muy grande se comporta como un FCFS.

• El tiempo de respuesta para procesos cortos es bueno.

• Trato equitativo entre procesos, bueno para interactividad.

• No se produce inanición.

• El valor mínimo del quantum debe ser (10 * Tiempo Cambio Contexto)

• El quantum más adecuado es el Tiempo de CPU del proceso más corto.

SHORTEST JOB FIRST JOB SCHEDULING (SJF)

Es una disciplina no Apropiativa y por lo tanto no recomendable en ambientes de tiempo

compartido. El proceso en espera con el menor tiempo estimado de ejecución hasta su

terminación es el siguiente en ejecutarse. Los tiempos promedio de espera son menores

Page 6: UNIDAD III

que con “FIFO”.

Los tiempos de espera son menos predecibles que en “FIFO”.

Favorece a los procesos cortos en detrimento de los largos.

Tiende a reducir el número de procesos en espera y el número de procesos que esperan

detrás de procesos largos. Requiere un conocimiento preciso del tiempo de ejecución de un

proceso, lo que generalmente se desconoce. Se pueden estimar los tiempos en base a series

de valores anteriores.

SHORTEST REMAINING TIME JOB SCHEDULING (STR)

Elige siempre al proceso que le queda menos tiempo de ejecución estimado para completar

su ejecución; de esta forma aunque un proceso requiera mucho tiempo de ejecución, a

medida que se va ejecutando iría avanzando en la lista de procesos en estado listo hasta

llegar a ser el primero.

Es una disciplina Apropiativa ya que a un proceso activo se le puede retirar la CPU si llega a

la lista de procesos en estado listo otro con un tiempo restante de ejecución estimado

menor.

Este algoritmo es la versión no Apropiativa o expulsiva del algoritmo Shortest Process Next

(SPN) o también llamado Shortest Job First (SJF).

HIGHEST RESPONSE RATIO NEXT JOB SCHEDULING (HNR)

Mayor ratio de respuesta siguiente (HRRN) la programación es una disciplina no preferente,

similar a la más corta de trabajo siguiente (SJN) , en el que la prioridad de cada puesto de

trabajo depende de su tiempo de ejecución estimado, y también la cantidad de tiempo que

ha pasado de espera. Puestos de trabajo obtener una mayor prioridad al más esperen, que

impide que la postergación indefinida (inanición proceso). De hecho, los trabajos que han

pasado un largo tiempo de espera competir con las estimadas a tener momentos de corto

plazo.

Desarrollado por Brinch Hansen para corregir ciertas deficiencias en SJN incluyendo la

dificultad de estimar el tiempo de ejecución.

MULTIPROCESAMIENTO PROCESADOR

Se denomina multiprocesador a un computador que cuenta con dos o más

microprocesadores (CPUs).

Gracias a esto, el multiprocesador puede ejecutar simultáneamente varios hilos

pertenecientes a un mismo proceso o bien a procesos diferentes.

Estos ordenadores multiprocesador presentan problemas de diseño que no se encuentran

en ordenadores monoprocesador. Estos problemas derivan del hecho de que dos

programas pueden ejecutarse simultáneamente y, potencialmente, pueden interferirse

entre sí. Concretamente, en lo que se refiere a las lecturas y escrituras en memoria. Existen

dos arquitecturas que resuelven estos problemas:

Page 7: UNIDAD III

Su arquitectura NUMA, donde cada procesador tiene acceso y control exclusivo a una parte

de la memoria.

La arquitectura SMP, donde todos los procesadores comparten toda la memoria.

Esta última debe lidiar con el problema de la coherencia de caché. Cada microprocesador

cuenta con su propia memoria cache local. De manera que cuando un microprocesador

escribe en una dirección de memoria, lo hace únicamente sobre su copia local en caché. Si

otro microprocesador tiene almacenada la misma dirección de memoria en su caché,

resultará que trabaja con una copia obsoleta del dato almacenado.

CONCEPTOS BASICOS MULTIPROCESAMIENTO

Multitarea

El término multitarea se refiere a la capacidad del Sistema Operativo para correr más de un

programa al mismo tiempo. Existen dos esquemas que los programas de sistemas

operativos utilizan para desarrollar Sistema Operativo multitarea, el primero requiere de la

cooperación entre el Sistema Operativo y los programas de aplicación.

Los programas son escritos de tal manera que periódicamente inspeccionan con el Sistema

Operativo para ver si cualquier otro programa necesita a la CPU, si este es el caso, entonces

dejan el control del CPU al siguiente programa, a este método se le llama multitarea

cooperativa y es el método utilizado por el Sistema Operativo de las computadoras de

Machintosh y DOS corriendo Windows de Microsoft.

El segundo método es el llamada multitarea con asignación de prioridades. Con este

esquema el Sistema Operativo mantiene una lista de procesos (programas) que están

corriendo. Cuando se inicia cada proceso en la lista el Sistema Operativo le asigna una

prioridad. En cualquier momento el Sistema Operativo puede intervenir y modificar la

prioridad de un proceso organizando en forma efectiva la lista de prioridad, el Sistema

Operativo también mantiene el control de la cantidad de tiempo que utiliza con cualquier

proceso antes de ir al siguiente.

Con multitarea de asignación de prioridades el Sistema Operativo puede sustituir en

cualquier momento el proceso que está corriendo y reasignar el tiempo a una tarea de más

prioridad. Unix OS-2 y Windows NT emplean este tipo de multitarea.

Multiusuario

El sistema Operativo multiusuario permite a más de un solo usuario accesar una

computadora. Claro que, para llevarse esto a cabo, el Sistema Operativo también debe ser

capaz de efectuar multitareas.

Unix es el Sistema Operativo Multiusuario más utilizado. Debido a que Unix fue

originalmente diseñado para correr en una minicomputadora, era multiusuario y multitarea

desde su concepción.

Actualmente se producen versiones de Unix para PC tales como The Santa Cruz Corporation

Page 8: UNIDAD III

Microport, Esix, IBM,y Sunsoft. Apple también produce una versión de Unix para la

Machintosh llamada: A/UX.Unix

Unix proporciona tres maneras de permitir a múltiples personas utilizar la misma PC al

mismo tiempo:

Mediante Módems.

Mediante conexión de terminales a través de puertos seriales

Mediante Redes.

Multiproceso

Las computadoras que tienen más de un CPU son llamadas multiproceso. Un sistema

operativo multiproceso coordina las operaciones de las computadoras multiprocesadoras.

Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una

instrucción, el otro procesador queda liberado para procesar otras instrucciones

simultáneamente.

Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de

respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso

ofrecen una gran ventaja.

Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como:

Multiproceso asimétrico: Una CPU principal retiene el control global de la computadora, así

como el de los otros procesadores.

Esto fue un primer paso hacia el multiproceso pero no fue la dirección ideal a seguir ya que

la CPU principal podía convertirse en un cuello de botella.

Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una CPU

controladora única. La barrera a vencer al implementar el multiproceso simétrico es que los

Sistema Operativo tienen que ser rediseñados o diseñados desde el principio para trabajar

en u n ambiente multiproceso.

Las extensiones de Unix, que soportan multiproceso asimétrico ya están disponibles y las

extensiones simétricas se están haciendo disponibles.

Windows NT de Microsoft soporta multiproceso simétrico.

MULTIPROCESAMIENTO

La solución pueden ser los sistemas multiprocesadores:

Solución más sencilla, natural y con mejor coste-prestaciones.

Las mejoras en microprocesadores cada vez son más complejas: cada avance implica crecer

en complejidad, potencia y superficie.

Page 9: UNIDAD III

Lenta pero clara mejora en el software, que permite explotar el paralelismo.

Las arquitecturas actuales son muy diversas: hay más investigación que resultados

definitivos.

Hablaremos de multiprocesadores de pequeña y mediana escala

Dos factores clave para la extensión de los Multiprocesadores

1. Flexibilidad: El mismo sistema puede usarse para un único usuario incrementado el

rendimiento en la ejecución de una única aplicación o para varios usuarios y aplicaciones

en un entorno compartido.

2. Coste-rendimiento: Actualmente estos sistemas se basan en procesadores comerciales,

por lo que su coste se ha reducido drásticamente. La inversión más fuerte se hace en la

memoria y la red de interconexión.

PARALELISMO MULTIPROCESAMIENTO

Consiste en ejecutar más instrucciones en menos tiempo, aunque las instrucciones sigan

tardando lo mismo en ejecutarse, mediante un simple truco, aunque algo difícil de explicar

en detalle. Intentémoslo.

El paralelismo en software es considerado como el caso ideal de la ejecución de las

instrucciones que forman parte de un programa, ya que no toma en cuenta las limitantes

del hardware con que el mismo va ser ejecutado.

Paralelismo en hardware Definamos como paralelismo en hardware como la ejecución de

un programa tomando en consideración el hardware con que va a ser ejecutado.

SISTEMAS MULTIPROCESAMIENTO

Un sistema operativo multiproceso o multitarea es aquel que permite ejecutar varios

procesos de forma concurrente, la razón es porque actualmente nuestras CPUs sólo pueden

ejecutar un proceso cada vez. La única forma de que se ejecuten de forma simultánea varios

procesos es tener varias CPUs (ya sea en una máquina o en varias, en un sistema

distribuido).

La técnica de multiprocesamiento consiste en hacer funcionar varios procesadores en forma

paralela para obtener un poder de cálculo mayor que el obtenido al usar un procesador de

alta tecnología o al aumentar la disponibilidad del sistema (en el caso de fallas del

procesador).

Las siglas SMP (multiprocesamiento simétrico o multiprocesador simétrico) hacen

referencia a la arquitectura en la que todos los procesadores acceden a la misma memoria

compartida.

Un sistema de multiprocesadores debe tener capacidad para gestionar la repartición de

memoria entre varios procesadores, pero también debe distribuir la carga de trabajo.

Page 10: UNIDAD III

ORGANIZACION DEL MULTIPROCESADOR

El problema clave es determinar los medios de conexión de los procesadores múltiples y los

procesadores de Entrada / Salida a las unidades de almacenamiento.

Los multiprocesadores se caracterizan por los siguientes aspectos:

• Un multiprocesador contiene dos o más procesadores con capacidades aproximadamente

comparables.

• Todos los procesadores comparten el acceso a un almacenamiento común y a canales de

Entrada / Salida, unidades de control y dispositivos.

• Todo está controlado por un Sistema Operativo que proporciona interacción entre

procesadores y sus programas en los niveles de trabajo, tarea, paso, archivo y elementos

de datos.

Las organizaciones más comunes son las siguientes:

• Tiempo compartido o bus común (conductor común).

• Matriz de barras cruzadas e interruptores.

• Almacenamiento de interconexión múltiple. SISTEMAS OPERATIVOS DEL MULTIPROCESADOR

Sistema Operativo de Multiprocesadores Las capacidades funcionales de los Sistema

Operativo de multiprogramación y de multiprocesadores incluyen lo siguiente:

• Asignación y administración de recursos.

• Protección de tablas y conjuntos de datos.

• Prevención contra el ínter bloqueo del sistema.

• Terminación anormal.

• Equilibrio de cargas de Entrada / Salida.

• Equilibrio de carga del procesador.

• Reconfiguración.

Las tres últimas son especialmente importantes en Sistemas Operativos de

multiprocesadores, donde es fundamental explotar el paralelismo en el hardware y en los

programas y hacerlo automáticamente. Las organizaciones básicas de los Sistemas

Operativos para multiprocesadores son las siguientes:

• Maestro / satélite.

• Ejecutivo separado para cada procesador.

• Tratamiento simétrico (o anónimo) para todos los procesadores.