RSS

jueves, 19 de noviembre de 2009

4.3.4 Aspectos de diseño para el sistema

El modelo de conjunto de trabajo 


 En la forma más pura de paginación, los procesos se inician con ninguna de sus páginas en la memoria. Tan pronto como la CPU trata de obtener la primera instrucción, detecta una falla página que hace que el sistema operativo traiga a la memoria la página que contiene dicha instrucción. Por lo regular, pronto ocurren otras fallas de página al necesitarse variables globales y la pila. Después de un tiempo, el proceso tiene la mayor parte de las páginas que necesita y se dedica a ejecutarse con relativamente pocas fallas de página. Tal estrategia se denomina paginación por demanda porque las páginas se cargan sólo cuando se piden, no por adelantado. 











En un sistema de tiempo compartido

Los procesos a menudo se transfieren al disco (esto es, todas sus páginas se eliminan de la memoria) para que otro proceso tenga oportunidad de usar la CPU. Surge la pregunta de qué hacer cuando se vuelve a traer un proceso a la memoria. Técnicamente, no hay que hacer nada. El proceso simplemente causará fallas de página hasta que haya cargado su conjunto de trabajo. El problema es que tener 20, 50 o incluso 100 fallas de página cada vez que se carga un proceso hace lento el funcionamiento y además desperdicia mucho tiempo de CPU, pues el sistema operativo requiere unos cuantos milisegundos de tiempo de CPU para procesar una falla de página.


Seguridad



El análisis va a determinar las acciones que los usuarios pueden o no realizar en función de su situación en el juego, pero hay diversas formas de saltarse estas reglas mediante el funcionamiento normal.  A continuación se detallan algunas medidas para evitar esto:


 •Comprobar que el usuario puede ver la página o realizar la acción solicitada, ya que la web permite acceder directamente escribiendo la dirección de una página, pudiendo acceder de esta forma a páginas que no tienen un enlace directo por no estar permitidas a ese usuario.


•Comprobar cada parámetro recibido, asegurándose de que los valores que toma son coherente, ya que ha podido modificarlos mediante el método anterior e incluso creando sus propios formularios.

Rendimiento


Gran parte de las decisiones que se han de tomar, y que pueden influir incluso en el análisis recaen sobre la necesidad de ajustar el consumo de recursos del sistema a las posibilidades de la máquina.




•Ancho de banda:

Es la cantidad de información que se puede enviar desde el servidor hasta los ordenadores clientes en un periodo de tiempo. El mejor aliado para mejorar el rendimiento en este concepto es la caché. Es trabajo del servidor indicar cuando va a volver a cambiar la página, lo que muchas veces no se sabe con exactitud, pero se puede aproximar. En nuestro caso hay páginas que no cambiarán, y otras que lo harán con una periodicidad definida.

•Capacidad de proceso:

 El proceso de datos en nuestro caso se puede dividir en aquel necesario para la creación de las páginas dinámicas, y los procesos periódicos que simulan el mundo. El primer caso es mas sencillo y a veces innecesario gracias a la caché. Aún así hay muchas peticiones debido al alto número de usuarios, con lo que habrá que tratar de optimizar cada petición de página. Los procesos periódicos si consumirán mas recursos ya que alguno tendrá incluso que tratar variables .

•Capacidad de almacenamiento:

Otro problema a tratar es la capacidad del disco duro ya que se va a almacenar mucha información, pero sobre todo por que el consumo de espacio dependerá entre otras cosas de las acciones de los usuarios. En caso de que el espacio se reduzca demasiado se utilizará un algoritmo que liberará estos recursos irrelevantes, comenzando por aquellos que menos uso han recibido.











Accesibilidad


Al sistema se va a poder acceder de tres maneras distintas:




Mediante un interfaz complejo:
 que use las últimas tecnologías (XHTML, ecmascript, CSS, SVG,...), que pueda ser usado por la mayoría de las personas pero que no sacrifique la calidad a un acceso generalizado con cualquier navegador.


Con un interfaz diseñado:
 mediante el uso de XHTML, y que por extensión pueda ser usado por cualquier otro usuario. Se podrán añadir hojas de estilo e incluso scripts siempre que el incluirlos no impida el buen funcionamiento para los usuarios invidentes o con software limitado (navegadores antiguos).

Usabilidad


Mide la facilidad de uso del interfaz. En este campo el objetivo es que no sea necesario leer un manual para saber como realizar las distintas acciones, que la intuición sea suficiente para que cualquie usuario pueda navegar por el interfaz. Se realizarán abundantes pruebas con usuarios reales mediante diversos prototipos hasta sacar la versión definitiva.

Aspectos legales


Hay dos leyes que van a afectar al diseño en mayor o menor medida:






•Ley de Servicios de la Sociedad de la Información (LSSI): El aspecto que nos interesa de esta ley es aquel que obliga a controlar los contenidos de un sitio, no permitiendo aquellos que atenten contra los derechos humanos. Esto se traduce en que cualquier contenido que pueda editar el usuario debe poder eliminarse fácilmente.


•Ley Orgánica de Protección de Datos (LOPD): Legisla sobre el tratamiento de los datos de carácter personal. Estos son definidos como cualquier información concerniente a personas físicas identificadas o identificables. Hay que aclarar si se va a almacenar esta información y si es así adaptar el sistema a los requisitos establecidos por esta ley.







4.3.5 Liberación de Páginas


Asignar bloques de páginas tiende a fragmentar la memoria al dividir los bloques grandes para conseguir bloques más pequeños.
El código de liberación de páginas recombina páginas en bloques de mayor tamaño siempre que es posible.






De hecho, el tamaño de bloque de página es importante pues facilita la recombinación enbloques grandes.


Siempre que se libera un bloque de páginas, se comprueba si está libre el bloque adyacente de igual tamaño.

Si es así, se combina con el bloque de páginas recién liberado para formar un bloque nuevo de tamaño doble.

Cada vez que dos bloques de páginas se recombinan en uno mayor, el algoritmo de liberación intenta volver a recombinarlo en otro aún mayor.

De esta forma, los bloques de páginas libres son tan grandes como la utilización de la memoria permita.






Un proceso usuario puede emitir una “liberación voluntaria de página” para liberar el marco de página cuando ya no necesitara esa página



Se puede eliminar el “desperdicio” y acelerar la ejecución.


El inconveniente es que la incorporación de mandatos de liberación de páginas dentro de los programas de usuarios puede ser peligroso y retrasar el desarrollo de aplicaciones.


“Los compiladores y S. O. deberían detectar automáticamente situaciones de liberación de página mucho antes de lo que es posible con estrategias de conjuntos de trabajo”.




jueves, 5 de noviembre de 2009

UNIDAD 3 "ADMINISTRACION DEL PROCESADOR"

3.1 PLANEACION DE TRABAJOS (JOB SCHEDULING)


Objetivo de la planificación: Minimizar el tiempo de espera y minimizar el tiempo de respuesta. La planificación (scheduling) es la base para lograr la multiprogramación.



Un sistema multiprogramado tendrá varios procesos que requerirán el recurso procesador a la vez. Esto sucede cuando los procesos están en estado ready (pronto). Si existe un procesador disponible, se debe elegir el proceso que será asignado para ejecutar. La parte del sistema operativo que realiza la elección del proceso es llamada planificador (Schedule)



La planificación hace referencia a un conjunto de políticas Y mecanismos incorporados a sistemas operativos que gobiernan el orden en que se ejecutan los trabajos.


Un planificador 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


En muchos sistemas, la actividad de planificación se divide en tres funciones independientes: planificación a largo, medio, y corto plazo.


se trata de obtener un plan, y por otra, delimitar la ejecutabilidad de las acciones en el tiempo, asignándoles los recursos necesarios y teniendo en cuenta las restricciones generales del problema (posiblemente utilizando criterios de optimización y garantizando su ejecutabilidad).





 Tradicionalmente, los métodos para solucionar problemas de planificación y scheduling se dividen en dos etapas diferentes. Sin embargo, la resolución de estos problemas no es abordable mediante estos procesos por separados. La idea principal es la integración de ambos (ver Fig. 2). Si los procesos de planificación y scheduling colaboran durante la resolución del problema, se podría obtener una mejor solución. Por ello, trabajamos en una arquitectura independiente del dominio en la que el planificador opera de forma simultánea con el scheduler. Esta integración permite garantizar la ejecutabilidad del plan y satisfacer óptimamente las restricciones del problema, simultáneamente con la construcción del plan.






Mediante el lenguaje de especificación, basado en frames, del que ya disponemos, se puede definir el dominio del problema. Una vez obtenido el plan óptimo mediante el proceso de planificación-scheduling, éste pasa a ejecución. Durante la ejecución del plan pueden aparecer nuevas restricciones del problema, incidencias, etc., debiéndose producir una reactividad en el proceso readaptando el plan obtenido.


3.2 CONCEPTOS BÁSICOS

CONCEPTOS


Maximizar la utilización del CPU obtenida con la multiprogramación

Ciclo de ráfaga CPU–I/O. La ejecución del proceso consiste de un ciclo de CPU y de una espera de I/O.


Distribución de las ráfagas de CPU


Un planificador de tareas es una aplicación de software de la empresa que se encarga de la ejecución desatendida fondo, comúnmente conocido por razones históricas como del procesamiento por lotes.


Los sinónimos son lote sistema, Sistema de Gestión de Recursos Distribuidos (SGDD), y Distributed Resource Manager (DRM). Hoy en día el trabajo de programadores suelen ofrecer una interfaz gráfica de usuario y un único punto de control para la definición y el seguimiento de las ejecuciones en el fondo de una red distribuida de computadoras. Trabajo cada vez más programadores están obligados a organizar la integración de los negocios en tiempo real con las actividades tradicionales de transformación de fondo que, a través de diferentes plataformas de sistemas operativos y entornos de aplicaciones de negocio.





Utilización máxima de la CPU se obtiene vía multiprogramación


Ciclo ráfagas CPU–I/O – la ejecución de un proceso consiste de un ciclo de ejecución de CPU continuado por un ciclo de espera por I/O


Distribución de ráfagas de CPU



• 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.


• 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.

3.3 TIPOS DE PLANEACION JOB SCHEDULING

3.3.1 First in first out job scheduling (FIFO)

FIFO se utiliza en estructuras de datos para implementar colas. La implementación puede efectuarse con ayuda de arrays o vectores, o bien mediante el uso de punteros y asignación dinámica de memoria.

Los procesos se despachan de acuerdo con su tiempo de llegada a la cola de listos.



Una vez que el proceso obtiene la cpu, se ejecuta hasta terminar, ya que es una disciplina “no apropiativa”.


Puede ocasionar que procesos largos hagan esperar a procesos cortos y que procesos no importantes hagan esperar a procesos importantes.


Es más predecible que otros esquemas.


No puede garantizar buenos tiempos de respuesta interactivos.


Suele utilizarse integrado a otros esquemas, por ejemplo, de la siguiente manera:


  •  Los procesos se despachan con algún esquema de prioridad.
  • Los procesos con igual prioridad se despachan “FIFO”.




3.3.2 Planificación de Asignación en Rueda (RR: Round Robin)

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:



  •  La cpu es apropiada.
  •  La cpu es otorgada al siguiente proceso en espera.
  •  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.



Tamaño del Cuanto o Quantum


La determinación del tamaño del cuanto es decisiva para la operación efectiva de un sistema computacional


Los interrogantes son: ¿cuanto pequeño o grande?, ¿cuanto fijo o variable? y ¿cuanto igual para todos los procesos de usuarios o determinado por separado para cada uno de ellos?.


Si el cuanto se hace muy grande, cada proceso recibe todo el tiempo necesario para llegar a su terminación, por lo cual la asignación en rueda (“RR”) degenera en “FIFO”.


Si el cuanto se hace muy pequeño, la sobrecarga del intercambio de contexto se convierte en un factor dominante y el rendimiento del sistema se degrada, puesto que la mayor parte del tiempo de cpu se invierte en el intercambio del procesador (cambio de contexto) y los procesos de usuario disponen de muy poco tiempo de cpu.




3.3.3 Planificación del Tiempo Restante Más Corto (SRT)

Es la contraparte apropiativa del SJF.



Es útil en sistemas de tiempo compartido.


El proceso con el tiempo estimado de ejecución menor para …nalizar es el siguiente en ser ejecutado.


Un proceso en ejecución puede ser apropiado por un nuevo proceso con un tiempo estimado de ejecución menor.


Tiene mayor sobrecarga que la planificación SJF.


Debe mantener un registro del tiempo de servicio transcurrido del proceso en ejecución, lo que aumenta la sobrecarga.


Los trabajos largos tienen un promedio y una varianza de los tiempos de espera aún mayor que en SJF.


La apropiación de un proceso a punto de terminar por otro de menor duración recién llegado podría significar un mayor tiempo de cambio de contexto (administración del procesador) que el tiempo de finalización del primero.


Al diseñarse los Sistemas Operativos se debe considerar cuidadosamente la sobrecarga de los mecanismos de administración de recursos comparándola con los beneficios esperados.