viernes, 3 de diciembre de 2010
lunes, 29 de noviembre de 2010
ADMINISTRACIÓN DE MEMORIAS
Esquema Contiguo de Usuario Único Cada programa que se iba a procesar se cargaba completo en memoria y se le asignaba tanto espacio contiguo como necesitara.
Si el programa era demasiado grande y no cabía en el espacio de memoria disponible, no se podía ejecutar; aunque las primeras computadoras eran demasiado grandes tenían muy poca memoria.
Esto era una limitante tiene una cantidad finita de memoria y si un programa no cabía se tenía que incrementar el tamaño de la memoria principal o modificar el programa.
Partición Fija o Estática La memoria libre se divide en varias partes de igual o distinto tamaño, pero el tamaño de estas particiones es fijo y no se puede aumentar el tamaño si el programa lo requiere.
Partición Dinámica La memoria libre se divide en diferentes tamaños, como es dinámica su tamaño puede aumentar según lo necesite el programa.
Partición Dinámica Re localizable El administrador de memoria relocaliza los programas para reunir los bloques vacios y compactarlos para hacer un bloque de memoria lo bastante grande para aceptar algunas o todas las tareas en espera de entrar.
Compactación Todos los programas en memoria se deben de relocalizar de manera que sean contiguos, luego se ajusta cada dirección y cada referencia a una dirección en todo programa para tomar en consideración la nueva localización del programa en memoria.
Reubicación Consiste en trasladar procesos activos dentro y fuera de la memoria principal para maximizar la utilización del procesador.
Protección Son mecanismos que protegen los procesos que se ejecutan de interferencias de otros procesos.
Uso Compartido de Códigos y Datos El mecanismo de protección permite que ciertos procesos de un mismo programa que comparten una tarea tengan memoria en común.
ADMINISTRACIÓN DE LA MEMORIA EN SISTEMAS RECIENTES.
Asignación de la Memoria en Páginas Se divide cada tarea nueva en páginas de igual tamaño, algunos sistemas operativos escogen el tamaño de la página al mismo tamaño que el bloque de memoria, que es el tamaño de las secciones de disco en las cuales se almacena la tarea.
Las secciones de un disco se conoce como “sectores”, los sectores de la memoria principal se denominan marcos de página.
Paginación por Demanda Carga sólo una porción del programa en la memoria para su procesamiento.
Asignación de Memoria en Segmentos Se basa en estructurar los programas en módulos, donde cada tarea se divide en varios segmentos de tamaños diferentes, uno por cada módulo que contiene piezas que ejecutan funciones relacionadas.
https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B7JUhh7sXfKMMjA2MjE4ODUtMmY5Yy00YTY2LTk3MjktMDQ1YTIzYWI2ZjJm&hl=en
viernes, 26 de noviembre de 2010
Serie Administración de Memoria Ejercicios
| Partición | Dimensión | No. | Procesos | No. | Procesos |
| 1 | 75k | 1 | A=30 | 6 | F=100 |
| 2 | 20k | 2 | B=70 | 7 | G=200 |
| 3 | 180k | 3 | C=45 | 8 | Sale A |
| 4 | 250k | 4 | D=280 | 9 | Sale E |
| 5 | 100k | 5 | E=45 | 10 | Sale G |
Particiones de memoria fija con una sola cola de entrada.

Cada vez que se libera una partición, se selecciona el trabajo más cercano a la cabeza de la cola que cabe en esa partición, se carga en dicha partición y ejecuta. Puesto que no es deseable desperdiciar una partición grande en un trabajo pequeño, una estrategia diferente consiste en examinar toda la cola de
entrada cada vez que se libera una partición y escoger el trabajo más grande que cabe en ella.
2.- Asigna los siguientes procesos en 1M de memoria por medio de particiones variables. SO=100k.
| No. | Proceso | No. | Proceso |
| 1 | A=32 | 6 | Sale B |
| 2 | B=150 | 7 | Sale C |
| 3 | C=400 | 8 | E=300 |
| 4 | Sale A | 9 | F=400 |
| 5 | D=200 | 10 | G=32 |
Para poder realizar este bloque se utilizo el funcionamiento de un sistema con intercambio, inicialmente, sólo el proceso A está en la memoria. Luego se crea o se trae del disco los procesos B y C. Como se puede observar en el inciso d) el proceso A termina y sale, luego llega D y E, y B sale, luego llega F y C sale. Por ultimo entra G.
Bloque de memoria
La asignación de memoria cambia conforme los procesos entran en la memoria y salen de ella. Las regiones sombreadas son memoria no utilizada. La diferencia principal entre las particiones fijas y las particiones variables es que el número, ubicación y tamaño de las particiones varían dinámicamente en el segundo caso conforme los procesos vienen y van, mientras que en el primer caso están fijas. La flexibilidad de no estar atado a un número fijo de particiones que podrían ser demasiado grandes o demasiado pequeñas mejora el aprovechamiento de la memoria, pero también complica la asignación y liberación de memoria, así como su contabilización.
3.- Introduce los siguientes programas en un diagrama de memoria y represéntalo por medio de un mapa de bits y una lista enlazada.
| No. | Proceso | No. | Proceso |
| 1 | A,8,35 | 6 | F,2,30 |
| 2 | B,6,6 | 7 | G,4,58 |
| 3 | C,4,0 | 8 | H,4,51 |
| 4 D,2,46 | | ||
| 5 E,10,18 | | ||
Diagrama de memoria y represéntalo por medio de un mapa de bits y una lista enlazada.
Una parte de la memoria con cinco procesos y tres agujeros. Las marcas indican las unidades de asignación de memoria., las regiones sombreadas (O en el mapa de bits) están libres, el mapa de bits correspondiente, la misma información en forma de lista.
5.- De acuerdo al siguiente diagrama, realiza la conversión de las siguientes direccione s virtuales a direcciones físicas.


jueves, 25 de noviembre de 2010
Serie Administración de Memoria
Es la ejecución de un solo programa en la memoria donde el sistema operativo ocupa un espacio fijo y el resto de la memoria se dedica a albergar al único programa en ejecución.
2.¿En qué se diferencia con la multiprogramación?
Mientras que en la monoprogramación un solo programa utiliza toda la memoria, en la multiprogramación la memoria se reparte entre el sistema operativo y varios programas que se almacenan en la memoria principal depende del tamaño de éstos pero se desperdicia algo de memoria pero es menor el desperdicio de memoria en la monoprogramación.
3.¿En qué consiste administrar la memoria por medio de particiones fijas?
Consiste en dividir la memoria libre en varias partes ya sea de igual o distinto tamaño.
4.¿Qué mejoras tienen las particiones variables sobre las fijas?
Las mejoras que tiene la partición variable es que las particiones de la memoria sean distintas (variables) según la cantidad de memoria que necesita cada el proceso, mientras que las fijas toda la memoria la dividen en tamaños variables pero son fijos, los procesos de beben ajustar a ese tamaño.
5.Intercambio, dentro de la memoria se refiere …
Al traslado de procesos de disco a la memoria y de la memoria a los discos.
6.¿Es válido cualquier método de compactación de memoria, por qué?
Si es válido ya que la memoria no se puede dividir de una sola manera, ya que los procesos y programas necesitan la memoria y la utilizan de diferente forma.
7.Administrar la memoria por medio de un mapa de bit puede asociarse a una lista enlazada, ¿de qué manera?
La memoria se divide en unidades de asignación, a cada asignación le corresponden un bit en el mapa de bits, el mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad de memoria fija.
8.¿Qué algoritmos puede manejar una lista enlazada?
Inserción por el inicio o por el final, suprimir por el inicio o por el final, inserción según el criterio de orden.
9.Existe un medio de administrar la memoria llamado Sistema Compañero, ¿cuáles son sus ventajas y desventajas en comparación con las particiones de memoria?
Se limita el tamaño de memoria asignada a los procesos, y posee una lista por cada tamaño de bloque posible.
10.¿Por qué se habla de memoria virtual en la administración de memoria?
Porque el sistema operativo mantiene en memoria aquellas partes del programa que se deben permanecer en memoria y el resto lo dejan en disco, las partes del disco y la memoria se intercambian de modo que se vallan necesitando.
11. ¿Cuál es la estructura de una página?
El espacio de direcciones de cada proceso se divide en bloques de tamaño uniforme llamados páginas, los cuales se pueden colocar dentro de cualquier para página marco disponible en memoria. Cuando las tablas de páginas son muy grandes se puede utilizar un esquema de paginación de varios niveles para que las páginas se paginen a sí mismas. Existen distintos niveles de paginación y a su vez distintos modelos de computadoras han trabajado con ellas.
Paginación de nivel 1: PDP−11
Paginación de 2 niveles: la VAX
Paginación de 3 niveles: la SPARC
Paginación de 4 niveles: la 68030
12. ¿Qué es el offset de una página?
El offset de una página el el método de reproducción de documentos e imágenes en papel.
13. ¿Qué algoritmos se utilizan para administrar correctamente una página de memoria?
Memoria asociativa, Remplazo de páginas, Remplazo de páginas óptimo, algoritmo de página de uso no muy reciente, de remplazo (FIFO), reemplazo de páginas de la segunda oportunidad, algoritmo reemplazo de páginas del reloj.
https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B7JUhh7sXfKMNzNhZTY2NjgtM2U2Zi00ZDMzLTkyZDctOWRkOGM2MmQwOGYw&hl=en
martes, 23 de noviembre de 2010
PROCESOS
El scheduler (planificador) es el parte de sistema operativo que toma la decisión de quien va hacer procesado cuando hay más de un proceso ejecutable, el algoritmo que utiliza se llama “algoritmo de planificación”. El sistema operativo contiene en el núcleo el kernel (interprete del CPU) el cual se encarga de manipular el hardware del equipo para poder ejecutar los procesos tanto del sistema como de las aplicaciones de los usuarios. El kernel es el encargado de realizar las llamadas al sistema que son el proceso más básico en una computadora.
La memoria (almacenamiento de información) principal de una computadora es conocida también como memoria RAM (memoria de acceso aleatorio), esta puede ser modificada. Sin embargo la memoria ROM es estática, por lo general es secuencial y necesita del sistema operativo y viceversa; esta cumple con un papel importante ya que cuando inicia el sistema, el hardware que es en realidad un programa en ROM donde existe un estructura de discos la cual esta compuesta por bloques.
El sistema de archivos es un método para el almacenamiento y organización de los archivos, para poder identificarse un archivo con otro se necesita que tengan un nombre y un directorio; su principal característica radica en la recuperación, integridad y disponibilidad de la información de manera rápida y eficiente. Es necesario realizar llamadas al sistema para crear, leer, eliminar y escribir archivos (información guardada en el CPU).
Los dispositivos de entrada y salida están tanto en el software como el hardware; en el caso del primero es cuando el sistema a veces no conoce los drivers de algún dispositivo de entrada; en el segundo caso tenemos como ejemplo al mandar a imprimir algún documento y este no encuentra el dispositivo de salida ya sea que la impresora este desconectada o algún otro inconveniente. Estos dispositivos son un medio de comunicación entre el usuario y el equipo y viceversa.
Los sucesos o evento a los que puede tener que responder un sistema de tiempo real pueden clasificarse también como periódicos (que ocurren a intervalos regulares) o aperiódicos (que ocurren de forma impredecible). Es posible que un sistema tenga que responder a múltiples corrientes de eventos periódicos. Dependiendo de cuánto tiempo requiere cada suceso para ser procesado, tal vez ni siquiera sea posible manejarlos todos.
Una interrupción es cuando el procesador o periférico de salida detienen un proceso para darle lugar a otro; una solicitud es una interrupción y sucede cuando no se ocupa todo el quantum para que el procesador no perder tiempo mientras llega otro proceso (también pueden solicitar interrupciones). El quantum manda a llamar un interrupción al so para darle lugar el nuevo proceso, puede ser el que escogió el scheduler o el mismo scheduler (proceso).
La protección son permisos que se pueden repartir ha archivos y grupos de trabajo, la protección es diferente para los procesos y los archivo. Existe un código de protección que se conforma por tres campos de 3 bits, uno es para el propietario, el segundo para lo miembros del grupo del propietario y el tercero para toda la demás gente. Cada campo cuenta con un bit de acceso de lectura(r), uno para acceso de escritura (w) y uno para ejecución (x).
Bautista Tapia Janeth
González Govea Arianna Berenice
domingo, 24 de octubre de 2010
Comentarios
En fin pues creo que a pesar de todo salió bien aunque el profe nos dijo que profundizamos demasiado en el tema (pues así nos mal acostumbró un profe), la presentación fue sencilla aunque el plan original era utilizar títeres o cosas así pero como ya lo mencioné no se tubo el tiempo suficiente y aparte que pues las 2 no teníamos en común horas libres así que en ratos nos poníamos de acuerdo o en el trayecto de la escuela al metro.
Pues en lo personal me gusta esta forma de trabajares distinta, y pues si hacemos todo a tiempo pues todo saldrá bien, sin problemas, lo que no me gustó es de que no siempre podemos estar conectados o igual por una u otra razón no podemos mandarle un correo al profesor y demás por que en lo personal a mi se me van las cabras y se me olvida todo.
Ojalá los demás profes pues puedan hacer más o menos una dinámica así, para que no todo sea tan tradicional y puede y mejore la educación pero pues igual el cuestión de los alumnos que le hechemos ganas.
lunes, 13 de septiembre de 2010
Bibliografia
Estructura de un SO Part 3
El periférico de entrada (teclado, USB, etc.) se comunica con la unidad de control y solicita una instrucción, esta a su vez se comunica con la unidad de memoria para que guarde lo solicitado, después le regresa la información que es enviada a la unidad aritmética lógica (ALU) para que la traduzca terminando este proceso, regresa de nuevo la información a la unidad de control enviándosela primero al unidad de memoria y después al periférico de salida (pantalla, impresora, etc.). en conclusión lo periféricos de entrada sirven para que el usuario se comunique con la maquina y los periféricos de salida sirven para que la maquina se comunique con el usuario.
Los sucesos a los que puede tener que responder un sistema de tiempo real pueden clasificarse también como periódicos (que ocurren a intervalos regulares) o aperiódicos (que ocurren de forma impredecible). Es posible que un sistema tenga que responder a múltiples corrientes de eventos periódicos. Dependiendo de cuánto tiempo requiere cada suceso para ser procesado, tal vez ni siquiera sea posible manejarlos todos. Por ejemplo, si hay m eventos periódicos y el evento i ocurre con el periodo P. y requiere C segundos de tiempo de CPU para ser manejado, la carga sólo podrá manejarse si un sistema de tiempo real que satisface este criterio es planificable.
Un conjunto de procesos esta en bloqueo mutuo si cada proceso esta esperando un evento que sólo otro proceso del conjunto puede causar, cuando sucede esto ninguno de ellos puede causar ninguno de los eventos que podría despertar a cualquiera de los demás miembros del conjunto y todos los procesos continúan esperando indefinidamente, ya que todos los procesos están esperando.
Una interrupción es cuando el procesador o periférico de salida detienen un proceso para darle lugar a otro; una solicitud es una interrupción y sucede cuando no se ocupa todo el quantum para que el procesador no perder tiempo mientras llega otro proceso (también pueden solicitar interrupciones).
La protección son permisos que se pueden repartir ha archivos y grupos de trabajo, la protección es diferente para los procesos y los archivo. Existe un código de protección que se conforma por tres campos de 3 bits, uno es para el propietario, el segundo para lo miembros del grupo del propietario y el tercero para toda la demás gente. Cada campo cuenta con un bit de acceso de lectura(r), uno para acceso de escritura (w) y uno para ejecución (x).
Estructura de un SO Part 2
Las llamadas al sistema de administración de procesos clave son las que se ocupan de la creación y terminación de procesos. Por ejemplo cuando el proceso llamado Shell (interprete de comandos) lee comandos de una terminal. El usuario acaba de teclear un comando solicitando la compilación de un programa. El Shell debe crear ahora un proceso nuevo que ejecute el compilador, cuando ese proceso haya terminado la compilación, ejecutará una llamada al sistema para terminarse a sí mismo.
La memoria (almacenamiento de información) principal de una computadora es conocida también como memoria RAM (memoria de acceso aleatorio), esta puede ser modificada. Sin embargo la memoria ROM es estática, por lo general es secuencial y necesita del sistema operativo y viceversa; esta cumple con un papel importante ya que cuando inicia el sistema, el hardware que es en realidad un programa en ROM donde existe un estructura de discos la cual esta compuesta por bloques, al primer bloque se le conoce como el Master Boot Record, llamado bloque de Boot en este se encuentra cargado el sistema operativo, le sigue el súper bloque que contiene todos los parámetros clave de los archivos, después podría venir un bloque con la información del los bloques libres (como un mapa de bits) seguido del bloque de los inodos, el bloque raíz y al final todos los directorios y archivos.
El sistema de archivos es un método para el almacenamiento y organización de los archivos, para poder identificarse un archivo con otro se necesita que tengan un nombre y un directorio; su principal característica radica en la recuperación, integridad y disponibilidad de la información de manera rápida y eficiente. Es necesario realizar llamadas al sistema para crear, leer, eliminar y escribir archivos (información guardada en el CPU).
Para poder comenzar con lo que son los dispositivos de entrada y salida primero tenemos que comenzar con la arquitectura de Von Neumann:
Estructura de un SO Part 1
La clave de los sistemas operativos es el proceso. Un proceso es un programa de ejecución, cada uno tiene relacionado un espacio de direcciones (conteniendo el programa ejecutable, los datos de programa y su pila), una lista de posiciones de memoria desde algún mínimo hasta algún máximo, el cual el proceso puede leer y escribir. Cada proceso esta asociado con un grupo de registro, entre ellos se incluye el apuntador de la pila, el contador del programa y los registros de hardware, así como información necesaria para ejecutar el programa. Un proceso padre puede crear uno o más procesos distintos denominados procesos hijos; estos procesos hijos mueren cuando cumplen con la tarea asignada, sin embargo se convierten en zombis al no encontrar al proceso padre para darle la tarea que se le fue asignada.
El sistema operativo es el encargado de decidir en que momento dejar de ejecutar un proceso y comenzar a ejecutar otro; en muchos de los sistemas operativos la información acerca de cada proceso se almacena en una tabla del sistema operativo llamada “tabla de procesos” (arreglo o lista enlazada de estructuras), una para cada proceso existente en ese momento; aparte del contenido de su propio espacio de direcciones. Los procesos ligeros o Thread (Unidad básica de utilización del CPU) son interactivos, su ejecución es rápida y no pesa más de un Kb.; sin embargo los procesos por lote (batch) son procesos pesados y requieren de varias visitas al procesador.
El scheduler (planificador) es el parte de sistema operativo que toma la decisión de quien va hacer procesado cundo hay más de un proceso ejecutable, el algoritmo que utiliza se llama “algoritmo de planificación”; entre las posibilidades están:
1. Equitatividad —asegurarse de que cada proceso reciba una parte justa del tiempo de CPU.
2. Eficiencia —mantener la CPU ocupada todo el tiempo.
3. Tiempo de respuesta —minimizar el tiempo de respuesta para usuarios interactivos.
4. Retorno —minimizar el tiempo que los usuarios por lotes tienen que esperar sus salidas.
5. Volumen de producción —maximizar el número de trabajos procesados por hora.
La ejecución de un proceso consiste de un ciclo de ejecución de CPU continuado por un ciclo de espera por I/O. Cada proceso obtiene una pequeña unidad de tiempo de CPU (quantum), usualmente entre 10 – 100 [ms]. Al expirar el quantum, se desasigna el proceso y se reingresa al final de la fila ready. Si hay n procesos en la fila ready, y el quantum es “q”, entonces cada proceso obtiene 1/n de la CPU en bloques de a lo más “q” unidades de tiempo.
El sistema operativo contiene en el núcleo el kernel (interprete del CPU) el cual se encarga de manipular el hardware del equipo para poder ejecutar los procesos tanto del sistema como de las aplicaciones de los usuarios. El kernel es el encargado de realizar las llamadas al sistema que son el proceso más básico en una computadora. Las llamadas al sistema se pueden usar por medio de funciones en “C” y en el programa “símbolo del sistema”; las funciones tienen un formato común, tanto en su documentación como en la secuencia de llamada. Invocándose mediante una función retornando ésta siempre un valor con información acerca del servicio que proporciona o del error que se ha producido en su ejecución. Aunque dicho retorno puede ser ignorado, es recomendable siempre testearlo.
Algunas funciones:
