RELOJ


Get your own

lunes, 28 de mayo de 2012

Stallings_William

GESTIÓN DE MEMORIA
Se trata de una de las partes del sistema operativo que está más ligada al hardware. Esta estrecha colaboración ha hecho que tanto el hardware como el software de gestión de memoria hayan ido evolucionando juntos. Las necesidades del sistema operativo han obligado a los diseñadores del hardware a incluir nuevos mecanismos que, a su vez, han posibilitado el uso de nuevos esquemas de gestión de memoria.
intercambio
Es dar cabida a la ejecución de mas aplicaciones de las que pueden residir simultáneamente en la memoria del sistema:
Consiste en trasladar el código y los datos de un proceso completo de memoria al sistema de almacenamiento secundario , para cargar otro previamente almacenado, no permite a un proceso utilizar mas memoria RAM de la que realmente existe en el sistema. Esta técnica puede ser ineficiente ya que se tiene que hacer el intercambio completo del proceso, aunque éste solo vaya a ejecutar una pequeña porción del código.



Fragmentación


La fragmentación es la memoria que queda desperdiciada al usar los métodos de gestión de memoria que se vieron en los métodos anteriores. Tanto el primer ajuste, como el mejor y el peor producen fragmentación externa.

La fragmentación es generada cuando durante el reemplazo de procesos quedan huecos entre dos o más procesos de manera no contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera.
La fragmentación puede ser: 

  • Fragmentación Externa: existe el espacio total de memoria para satisfacer un requerimiento, pero no es contigua. 
  • Fragmentación Interna: la memoria asignada puede ser ligeramente mayor que la requerida; esta referencia es interna a la partición, pero no se utiliza. 

La fragmentación externa se puede reducir mediante la compactación para colocar toda la memoria libre en un solo gran bloque, pero est a solo es posible si la relocalización es dinámica y se hace en tiempo de ejecución.

Paginación

Es una técnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones físicas de igual tamaño, denominadas marcos de página. Los programas se dividen en unidades lógicas, denominadas páginas, que tienen el mismo tamaño que los marcos de páginas. De esta forma, se puede cargar una página de información en cualquier marco de página.
Segmentación
Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su división lógica; llevándose a cabo una agrupación lógica de la información en bloques de tamaño variable denominados segmentos. Cada uno de ellos tienen información lógica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una colección de segmentos, que generalmente reflejan la división lógica del programa.
La segmentación permite alcanzar los siguientes objetivos:
  1. Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa.
  2. Estructuras de datos de largo variable: ejm. Stack, donde cada estructura tiene su propio tamaño y este puede variar.
  3. Protección: se puede proteger los módulos del segmento contra accesos no autorizados.
  4. Comparición: dos o más procesos pueden ser un mismo segmento, bajo reglas de protección; aunque no sean propietarios de los mismos.
  5. Enlace dinámico entre segmentos: puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se establecerán solo cuando sea necesario.
Segmentación Paginada
Paginación y segmentación son técnicas diferentes, cada una de las cuales busca brindar las ventajas enunciadas anteriormente.
Para la segmentación se necesita que estén cargadas en memoria, áreas de tamaños variables. Si se requiere cargar un segmento en memoria; que antes estuvo en ella y fue removido a memoria secundaria; se necesita encontrar una región de la memoria lo suficientemente grande para contenerlo, lo cual no es siempre factible; en cambio "recargar" una pagina implica solo encontrar un merco de pagina disponible.

MEMORIA VIRTUAL
Si tanto la parte (página o segmento) que contiene la siguiente instrucción a leer como la parte que contiene los próximos datos a acceder están en memoria principal, la ejecución podrá continuar al menos por un tiempo.

Memoria Virtual y Cercanía de Referencias
Para comprender cuál el es elemento clave y por qué la memoria virtual generó tanto debate, se va a considerar de nuevo la labor del sistema operativo con respecto a la memoria virtual.
Considérese un proceso grande formado por un programa largo y un conjunto de series de datos. Durante un corto periodo, la ejecución puede estar reducida a una pequeña sección del programa (por ejemplo, una subrutina) y acceder sólo a una o dos series de datos. Si esto es así. sería un claro desperdicio cargar docenas de fragmentos para el proceso cuando se van a usar sólo unos pocos antes de que pase a estar suspendido o se descargue.


Tamaño de Página
Un número mayor de páginas por proceso significa que las tablas de páginas serán mayores. Para programas grandes, en un entorno multiprogramado intensivo, esto puede significar que una gran parte de las tablas de páginas de los procesos activos deban estar en memoria virtual, no en memoria principal. Así
pues, pueden suceder dos fallos de página para una única referencia a memoria: primero, para traer la parte necesaria de la tabla de páginas y, segundo, para traer la página del proceso.

Paginación y Segmentación Combinadas




















Tanto la paginación como la segmentación tienen sus ventajas. La paginación, que es transparente al programador, elimina la fragmentación extema y. de este modo, aprovecha la memoria principal de forma eficiente. Además, puesto que los fragmentos que se cargan y descargan de memoria principal son de tamaño constante e igual para todos, es posible construir algo ritmos de gestión de memoria sofisticados que aprovechen mejor el comportamiento de los programas, tal y como se verá. La segmentación, que es visible para el programador, tiene las ventajas antes citadas, incluida la capacidad de manejar estructuras de datos que puedan crecer, la modularidad y el soporte de la compartición y la protección. Para combinar las ventajas de ambas, algunos sistemas están equipados con hardware del procesador y software del sistema
operativo que las permiten.

políticas de la memoria virtual
cada una de estas politicas cumple una determinada acción en un determinado momento no es necesario explicar puesto que algunas ya se han visto para mas información consultar el libro de Stallings_William
Politica De Lectura
Politica De Ubicacion
Politica De Reemplazo Local y Global
Politica De Vaciado
Politica De Reemplazo y tamaño cache
Politica De Asignacion
Politica Optima

GESTIÓN DE ARCHIVOS
Los archivos Tienen vida fuera de cualquier aplicación individual que los utilice para entrada y salida. Los usuarios desean poder acceder a los archivos, guardarlos y mantener la integridad de su contenido. Como ayuda a estos objetivos, virtualmente todos los sistemas de computadores proporcionan sistemas específicos de gestión de ficheros. Normalmente, cada sistema dispone de programas de utilidad que se ejecutan como aplicaciones privilegiadas. Sin embargo, un sistema de gestión de archivos necesita como mínimo algunos servicios especiales del sistema operativo.
Como máximo, el sistema de gestión de archivos por completo se considerará parte del sistema operativo. De este modo, es apropiado considerar por lo menos en el libro los elementos básicos de la gestión de archivos.


• Campo
es el elemento de datos básico. Un campo individual contiene un valor único, como el apellido de un empleado, una fecha o el valor leído por un sensor. Se caracteriza por su longitud y por el tipo de datos (por ejemplo, una cadena ASCII o un número decimal). El contenido de un campo es proporcionado por un usuario o por un programa. Dependiendo del diseño del archivo, los campos pueden ser de tamaño fijo o variable. 

• Registro
es una colección de campos relacionados que pueden tratarse como una unidad en
algunos programas de aplicación. Por ejemplo, un registro "empleado" contendría campos tales como
nombre, número de DNI. categoría salarial, fecha de contratación, etc. También dependiendo del diseño,
los registros pueden ser de longitud fija o variable. Un registro es de longitud variable si algunos de sus
campos son de longitud variable o si el número de campos puede variar. En el último caso, cada campo
se acompaña normalmente de un nombre de campo.

• Archivo 
es una colección de registros similares. Los usuarios y las aplicaciones tratan al archivo como una entidad única y se refieren a él por un nombre. Los archivos tienen nombres únicos y pueden crearse y borrarse. Las restricciones al control de accesos suelen aplicarse a nivel de archivo. Es decir, en un sistema compartido, el acceso de los usuarios y los programas se garantiza o deniega a archivos completos.


• Base de datos


es una colección de datos relacionados. El aspecto fundamental de una base de
datos es que las relaciones que existen entre los elementos de datos son explícitas y que la base de datos está diseñada para ser usada por varias aplicaciones diferentes. Una base de datos puede contener toda la información relativa a una organización o proyecto, como un estudio científico o de mercado. La base de dalos consta de una o más clases de archivos.
 


























ORGANIZACIÓN Y ACCESO A ARCHIVOS
Un archivo consiste en una colección de registros. Uno de los elementos clave de diseño del
sistema de archivos es la forma en que estos registros se organizan o estructuran. En esta sección
se emplea el término organización de archivos para referirse a la estructuración lógica de los
registros determinada por la forma en que se accede a ellos. La organización física de un archivo
en memoria secundaria depende de la estrategia de agrupación y de la estrategia de asignación de
archivos, cuestiones tratadas más tarde en este mismo capítulo.
Diversos criterios son importantes en la elección de una organización de archivos:
• Acceso rápido para la recuperación eficaz de información
• Facilidad de actualización para ayudar a mantener la información al día
• Economía de almacenamiento para reducir costes
• Mantenimiento sencillo para reducir costes y la posibilidad de errores
• Fiabilidad para asegurar la confianza en los datos
La prioridad relativa de estos criterios dependerá de las aplicaciones que usará el archivo. 


ARCHIVOS PROYECTADOS 
EN MEMORIA

Se trata por tanto de una forma alternativa de acceso a archivos, frente a las llamadas read/write. De esta forma se producen:
Menos llamadas al sistema lo que se traduce en una notable mejora de los tiempos de acceso.
Se evitan copias intermedias de la información ya que el S.O. transfiere directamente la información entre la región de memoria y el archivo.

SERVICIO DE GESTIÓN DE MEMORIA
Las labores que lleva a cabo el sistema de gestión de memoria son más bien de carácter interno. Debido a ello, este módulo apenas ofrece directamente servicios a las aplicaciones.

PROYECTAR UN ARCHIVO: Permite incluir en el mapa de memoria de un proceso un archivo o parte del mismo. Con esta operación, se crea una región asociada al objeto de memoria almacenado en el archivo. Normalmente, se pueden especificar algunas propiedades de esta nueva región. Por ejemplo, el tipo de protección o si la región es privada o compartida.

DESPROYECTAR UN ARCHIVO: Eliminar una proyección previa o parte de la misma.

SERVIDOR MMAP



Las páginas del mapa de la memoria)  Es un método de archivo asignado en memoria E / O. Como es natural, implementa la paginación por demanda , ya que inicialmente el contenido del archivo no se lee desde el disco por completo y no usar la memoria RAM física en absoluto.

CARGA Y MONTAJE
La aplicación está formada por una serie de módulos compilados o ensamblados en forma de código objeto que se montan juntos para resolver las referencias entre los módulos. Al mismo tiempo, se resuelven las referencias a rutinas de biblioteca. Las rutinas de biblioteca pueden estar incorporadas en el programa o ser referenciadas como código compartido que debe suministrar el sistema operativo en el momento de la ejecución. En este apéndice, se resumirán las características clave de los montadores y cargadores. Por claridad de presentación, se comenzará con una descripción de la tarea de carga cuando se dispone de un único módulo de programa y no se necesita montaje.
Carga
En la carga del programa, se deben satisfacer las necesidades de
direccionamiento mostradas en la figura 6.1. En general, se pueden aplicar tres métodos:
• Carga absoluta
• Carga reubicable
• Carga dinámica en tiempo de ejecución
Carga absoluta
La carga absoluta necesita que el módulo de carga ocupe siempre la misma posición de memoria
principal. Así pues, todas las referencias del módulo de carga para el cargador deben ser
direcciones específicas o absolutas en memoria principal.

Carga reubicable

La desventaja de asociar las referencias a memoria a direcciones específicas previas a la carga es que el módulo de carga resultante sólo puede situarse en una región de memoria principal. Sin embargo, cuando varios programas comparten la memoria principal, puede no ser conveniente decidir por adelantado en qué región de memoria debe cargarse un módulo en
particular. Es mejor tomar esa decisión en el momento de la carga. Así pues, se necesita un módulo de carga que pueda ubicarse en cualquier posición de la memoria principal.
Para satisfacer este nuevo requisito, el ensamblador o el compilador no generará direcciones reales de memoria principal (direcciones absolutas) sino dilecciones relativas a algún  punto conocido, tal como el comienzo del programa. Esta técnica se ilustra en la figura.
Al comienzo del módulo de carga se le asigna la dirección relativa O y todas las demás
referencias dentro del módulo se expresan en relación al comienzo del módulo. 
Con todas las referencias a memoria expresadas de forma relativa, situar los módulos en la posición deseada se convierte en una tarea sencilla para el cargador. Si el módulo va a ser cargado comenzando por la posición .r, el cargador simplemente sumará .r a cada referencia a memoria a medida que cargue el módulo en memoria. Para ayudar en esta tarea, el módulo de carga debe incluir información que indique al cargador dónde están las referencias a direcciones y cómo se interpretan (generalmente, de forma relativa al comienzo del programa, pero también es posible que sean relativas a algún otro punto del programa, como la posición actual). El compilador o el ensamblador prepara este conjunto de información que se conoce normalmente
como diccionario de re-ubicación.

Carga dinámica en tiempo de ejecución

Los cargadores con reubicación son habituales y onecen ventajas obvias en relación con los cargadores absolutos. Sin embargo, en un entorno multiprogramado, incluso sin memoria virtual, el esquema de carga reubicable resulta inadecuado. Se ha hecho referencia a la necesidad de cargar y descargar las imágenes de procesos-de memoria principal para maximizar la utilización del procesador. Para maximizar el uso de la memoria principal sería conveniente volver a cargar una imagen de un proceso en posiciones diferentes para diferentes instantes de tiempo. Así pues, un programa cargado puede ser expulsado a Digitalización con propósito académico disco y vuelto a cargar en una posición distinta. Este procedimiento resultaría imposible si las referencias a memoria hubieran estado asociadas a direcciones absolutas en el momento inicial
de carga.
El cálculo de direcciones dinámico proporciona una completa flexibilidad. Un programa
puede cargarse en cualquier región de memoria principal. Más tarde, la ejecución del programa
puede interrumpirse y el programa ser descargado de memoria principal para ser posteriormente
cargado en una posición diferente.


jueves, 12 de abril de 2012

ENSAYO DE LA CLASE

REALIMENTACION

procesos admitidos se llaman RQ, se elige el proceso de mayor prioridad este proceso es el que se encuentra en la lista de mayor nivel encabezado.
después de que pasa por el uso del procesador tiene dos excepciones gana prioridad por el echo de estar esperando, pierde prioridad cuando hace el uso del procesador.
las excepciones son que un proceso no pierde prioridad si no hay otros procesos en ejecución y la otra es si no hay mas procesos nuevos 



AQUÍ VEMOS DOS  EJEMPLOS EN UN TIEMPO Y EN DOS
REALIMENTACION EN Q1





REALIMENTACION EN Q2




MENOR TIEMPO RESTANTE Y MAYOR TASA DE RESPUESTA

MENOR TIEMPO RESTANTE
Es una versión preferente a la de primero el mas corto la diferencia es que se escoge el  proceso que sea menor tiempo restante 

AQUÍ SE MUESTRA UN EJEMPLO


 MAYOR TASA DE RESPUESTA

Es un disciplina de planificación no apropiativa en la cual la prioridad de cada proceso no sólo se calcula en función del tiempo de servicio, sino también del tiempo que ha esperado para ser atendido. Cuando un trabajo obtiene el procesador, se ejecuta hasta termina, e aquí un ejemplo.






AQUÍ SE MUESTRA UN EJEMPLO

TURNO ROTATORIO Y PRIMERO EL MAS CORTO

Turno Rotatorio
Se determina una cantidad de tiempo que permite a cada proceso utilizar el procesador durante este periodo de tiempo, siempre que haya competencia simultaneidad  para el uso del procesador se le da prioridad que no hayan pasado por el uso del procesador. Cuando se genera la interrupción, el proceso que está en ejecución se sitúa en la cola de Listos:

Se selecciona el siguiente trabajo.
Se conoce también como fracciones de tiempo.


























AQUÍ VEMOS DOS EJEMPLOS DE LA CLASE CON QUANTUM 1 Y 2



Primero El Mas Corto

Esta política es no preferente una vez que termina el proceso el siguiente que se va a seleccionar es el menor tiempo de servicio, la ventaja es que beneficia la velocidad y recursos no preferentes, beneficia a los procesos del sistema mas cortos y su tiempo de respuesta y la desventaja es que le da castigo a los procesos mas largos y podría quedar en inamision, un proceso puede ser expedido cuando sobrepasa la linea de procesos que ya tiene y si la estimación de tiempo del proceso no es correcta, el sistema puede abandonar el trabajo.


























UN EJEMPLO DEL PRIMERO EL MAS CORTO


CORRECCIÓN DEL PARCIAL DE PRIMER CORTE

INTRODUCCIÓN A LA PLANIFICACIÓN DE UN PROCESO Y FIRST COME FIRST SERVED


PLANIFICACIÓN A CORTO PLAZO 
establecer que proceso se esta listo para ejecutar  o cual se debe llegar a ejecución , el distribuidor cumple la planificación en un breve tiempo  puede evaluarse fácilmente.

PLANIFICACIÓN A MEDIANO PLAZO  
 hace referencia hacia la solicitud del proceso de ir subiendo o bajando paginas desde la memoria. Gestiona la memoria virtual

PLANIFICACIÓN A LARGO PLAZO
cuando un proceso lleva demasiado tiempo, es muy grande o no son restringidas para los menores menores de edad se le define como planificación a largo plazo, no puede ser admitido en el estado de un proceso, empieza a admitir procesos hasta que un proceso nuevo llega y no se puede admitir mas

CUALITATIVOS
Factores que un usuario utiliza por gusto, cualidades que son poco medibles.

PREVISIBILIDAD
el sistema operativo (S.O) debe preveer cuando un usuario cuando utilizara algun tipo de pagina o proceso.  


PRIORIDADES
Las prioridades se basan en el tiempo que es atendido o ejecutado cada proceso hay procesos que no son tan grandes o que son muy importes es cuando el planificador seleccionará siempre a un proceso de mayor prioridad antes que a los de menor prioridad.

Los procesos de prioridad más baja pueden sufrir inanición:
Permite que un proceso cambie su prioridad en función de su edad o su historial de ejecución. Cuando una
prioridad esta libre de procesos los procesos pueden subir de nivel por longevidad (largo de vida) que tan
viejo es un proceso.
DISPATCHER 
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, es decir en las siguientes situaciones:
a) Cuando el proceso que esta activo se bloquea;
b) Cuando un proceso se desbloquea pasando a estado listo y debido al 
algoritmo de planificación este puede desplazar al que esta activo;
c) Cuando un proceso debe pasar de activo a listo y por lo tanto otro pasara de listo a activo.

FCFS

El First Come First Served (FCFS)Una vez que un proceso ejecuta no deja de hacerlo hasta que voluntariamente cambia de estado (no hay interrupción por tiempo). Asocia a cada proceso el
tiempo de CPU que habrá de usar en su próxima vuelta y va a decidir por el más pequeño. Si hubiera mas de uno utiliza FCFS para desempatar, seleccionando un proceso que tenga mayor prioridad antes que menor prioridad.

EJEMPLO DE LA CLASE