Está en la página 1de 20

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO ESCUELA DE INGENIERIA ELECTRONICA Y TECNOLOGIA EN COMPUTACION

Nombre: Semestre: Tony Flores P. Segundo GENERACIONES DE SISTEMAS OPERATIVOS Los sistemas operativos, al igual que el hardware de los computadores, han sufrido una serie de cambios revolucionarios llamados generaciones. En el caso del hardware, las generaciones han sido enmarcadas por grandes avances en los componentes utilizados, pasando de vlvulas (primera generacin), a transistores (segunda generacin), a circuito integrados (tercera generacin), a circuitos integrados de gran y muy gran escala (cuarta generacin). Cada generacin sucesiva de hardware ha sido acompaada de reducciones substanciales en los costos, tamao, emisin de calor y consumo de energa, y por incrementos notables en velocidad y capacidad. Generacin Cero (dcada de 1940) Los sistemas operativos han ido evolucionando durante los ltimos 40 aos a travs de un nmero de distintas fases o generaciones que corresponden a dcadas. En 1940, las computadoras electrnicas digitales ms nuevas no tenan sistema operativo. Las mquinas de ese tiempo eran tan primitivas que los programas por lo regular manejaban un bit a la vez en columnas de switch's mecnicos. Eventualmente los programas de lenguaje mquina manejaban tarjetas perforadas, y lenguajes ensamblador fueron desarrollados para agilizar el proceso de programacin. Los usuarios tenan completo acceso al lenguaje de la maquina. Todas las instrucciones eran codificadas a mano. Primera generacin (dcada de 1950) Los laboratorios de investigacin de la General Motors implementaron el primer sistema operativo en los 50's generalmente corra una tarea a la vez y suaviz la transicin entre tareas para obtener mxima utilizacin del sistema de la computadora. Los sistemas operativos de los aos cincuenta fueron diseados para hacer mas fluida la transmisin entre trabajos. Antes de que los sistemas fueran diseados, se perda un tiempo considerable entre la terminacin de un trabajo y el inicio de siguiente. Este fue el comienzo de los sistemas de procesamiento por lotes, donde los trabajos se reunan por grupo o lotes. Cuando el trabajo estaba en ejecucin, esta tenia control total de la maquina. Al terminar cada trabajo (bien normal o anormalmente), el control era envuelto al sistema operativo, el cual "limpiaba" y lea e inicia el trabajo siguiente. Segunda generacin (primera mitad de la dcada de 1960) La caracterstica de la segunda generacin de los sistemas operativos fue el desarrollo de los sistemas compartido con multiprogramacin, y los principios del multiprocesamiento. En los sistemas de multiprogramacin, varios programas de usuarios se encuentran el mismo tiempo en el almacenamiento principal, y el procesador se cambia rpidamente de un trabajo a otro. En los sistemas de multiprocesamiento se utilizan varios procesadores en un solo sistema computacional, con la finalidad de incrementar el poder de procesamiento de la maquina. La independencia de dispositivos aparece despus. Un

usuario que deseara escribir datos en una cinta en sistemas de la primera generacin tenia que hacer referencia especifica a una unidad en particular. En los sistemas de la segunda generacin, el programa del usuario especificaba tan solo que un archivo iba a ser escrito en una unidad de cinta con cierto nmero de pistas y cierta densidad. El sistema operativo localizaba, entonces, una unidad de cinta disponible con las caractersticas deseadas, y le indicaba al operador que montara una cinta en esa unidad. El surgimiento de un nuevo campo: LA INGENIERA DE SOFTWARE. Los sistemas operativos desarrollados durante los 60s tuvieron una enorme conglomeracin de software escrito por gente quienes realmente no entenda el software, tambin como el hardware, tenias que ser ingeniero para ser digno de confianza, entendible y mantenible. Finalmente cuando encontraron y removieron algunos errores que nunca pudieron completar el sistema original. Errores en las fases fciles de los proyectos no fueron localizados antes de un largo tiempo fueron entregados a los clientes; por este lado los errores fueron enormemente grandes para corregir. La gente obtuvo frecuentemente nmeros grandes de mdulos de software empez a ser fragmentado y reescrito por personas nuevas porque existan mdulos que realmente no se entendan. Se tom mas atencin a estos problemas eventualmente cientficos de la computacin y profesionales en la industria comenzaron a dedicar considerables recursos para el problema de construir sistemas de software. La emergencia de el campo de ingeniera de software y el reconocimiento de la importancia del desarrollo de una disciplinada y desarrollada aproximada a la construccin software digno de confianza, entendible y mantenible fuertemente unidos por la vasta experiencia con algunos de los sistemas operativos desarrollados en los 60s. Tercera generacin (mitad de la dcada de 1960 a la mitad de la dcada de 1970) La tercera generacin de sistemas operativos comenz en forma efectiva, en 1964, con la introduccin de la familia de computadores Sistemas/360 de IBM. Las variadas computadoras 360 fueron diseadas para ser compatibles con el hardware, para usar el OS/360 sistema operativo, y para ofrecer mayor poder computacional a como iba avanzando el usuario en las series. Sistemas operativos mas avanzados fueron desarrollados para servir a mltiples usuarios interactivos a la vez. Los usuarios interactivos se comunicaban con la computadora va terminales que estn en lnea conectadas directamente a la computadora. Los computadores de la tercera generacin fueron diseados como sistemas de usos generales. Casi siempre eran sistemas grandes, voluminosos, con el propsito de serlo todo para toda la gente. Este concepto vendi gran cantidad de computadores, pero tenia su precio. Los usuarios que necesitaban de algunas aplicaciones particulares que no requeran de este tipo de poder pagaban caro el elevado tiempo de ejecucin, tiempo de depuracin, mantenimiento, etc. Los sistemas operativos de la tercera generacin eran sistemas de modos mltiples. Algunos soportan simultneamente procesos por lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento. Eran grandes y costosos, nunca antes se haba construido algo similar, y muchos de los esfuerzos de desarrollo terminaron muy arriba del presupuesto y mucho despus de lo que el planificador marcaba como fecha de terminacin. Cuarta generacin (de la mitad de la dcada de 1970 a nuestros das) Los sistemas de la cuarta generacin constituyen el estado actual de la tecnologa. Muchos diseadores y usuarios se sienten aun incmodos, despus de sus experiencias con los sistemas operativos de la tercera generacin, y se muestran cautelosos antes de comprometerse con sistemas operativos complejos. Con la ampliacin del uso de redes de computadores y del procesamiento en lnea los usuarios obtienen acceso a

computadores alejados geogrficamente a travs de varios tipos de terminales. El microprocesador ha hecho posible la aparicin del computador personal, uno de los desarrollos de notables consecuencias sociales ms importantes de las ltimas dcadas. Ahora muchos usuarios han desarrollado sistemas de computacin que son accesibles para su uso personal en cualquier momento del da. La potencia de computador, que costaba varios cientos de miles de dlares al principio de la dcada de 1960, hoy es accesible por menos de mil dlares. El porcentaje de la poblacin que tiene acceso a un computador en la dcada de los ochenta es mucho mayor y aumento rpidamente. Individuos podan tener su propia computadora para realizar parte de su trabajo, y utilizar facilidades de comunicacin para transmitir datos entre sistemas. La aplicacin de paquetes de software tales como procesadores de palabras, paquetes de bases de datos y paquetes de grficos ayudaron a la evolucin de la computadora personal. La llave era transferir informacin entre computadoras en redes de trabajo de computadoras. El correo electrnico, transferencia de archivos, y aplicaciones de acceso a bases de datos proliferaron. El modelo cliente-servidor fue esparcido. El campo de ingeniera de software continu evolucionando con una mayor confianza proveniente de los E.U. Los ambientes del usuario, altamente simblicos, mnemnicos y orientados hacia las siglas de las dcadas de los 60s y 70s, estn siendo reemplazados, en la dcada de los 80s, por los sistemas controlados por men, los cuales guan al usuario a lo largo de varias opciones expresadas en un lenguaje sencillo. En los 90's habremos de entrar a la era de la verdadera distribucin de computacin en la cual calcula dentro de subcalculos que pueden ser ejecutados en otros procesadores en computadoras de mltiples procesadores y en conmutadores de red. Estos tipos de conectividad son facilitados para abrir sistemas estndar y protocolos que se empiezan desarrollar para grupos. Bibliografa Introduccin a los sistemas operativos. Harvey Iberoamericana. pag. 7-10 http://www.geocities.com/ymarte/trab/infhistos.html http://entren.dgsca.unam.mx/introduccion/so_evol.html M. Deitel, Addison-Wesley

CICLO DE VIDA DE UN PROCESO Los tres estados ms importantes en el ciclo de vida de un proceso son: LISTO: Cuando un proceso est listo para correr. CORRIDO: Cuando se ha asignado procesador a un proceso y esta ejecutando sus programas. ESPERA: Es cuando el proceso espera algn evento por ejemplo la terminacin de un proceso de entrada/salida.

Cuando un proceso ha pasado por estos tres estados debe de terminar pero como podemos ver en el grfico el proceso no tiene salida y se ha formado por consiguiente un ciclo infinito. Cmo solucionarlo? Para que no existan esta clase de problemas se deben aadir tres estados ms:

ENTREGA: Es cuando el usuario entrega un trabajo al sistema y este debe responder a la solicitud del usuario. RETENCION: El trabajo ha sido convertido en forma legible para la mquina, tambin si no se le asignan recursos pasa a este estado, y pasa al SPOOL del disco hasta que se le asignan los recursos. TERMINADO o COMPLETO: Es cuando se ha terminado de ejecutar el proceso y se puede recuperar todos los recursos asignados al mismo. PLANIFICACION DE PROCESOS Planificacin de procesos en Unix

Estados de un Proceso - Se amplan los posibles estados a nueve: o Ejecutando en modo usuario o Ejecucin en modo Kernel o Listo o Dormido o Listo Descargado o Dormido Descargado o Expropiado o Creado o Zombie

Cambios de estado - Ejecutando en modo Usuario _ Ejecutando en modo Kernel: El proceso ejecuta una llamada al Sistema (se produce un trap) o se produce una interrupcin. - Ejecutando en modo Kernel _ Ejecutando en modo Usuario: Tras la llamada al sistema se contina ejecutando el proceso en modo Usuario. - Ejecutando en modo Kernel _ expropiado: Tras el fin de una llamada al sistema el planificador puede decidir que el proceso actual no debe continuar ejecutndose. Es un estado similar a listo para ejecutar. - Ejecutando en modo Kernel _ Zombie: Un proceso quiere finalizar con la llamada exit(). Pasa a modo kernel y se finaliza el proceso. - Ejecutando en modo Kernel _ Dormido: El proceso queda a la espera de un evento (p.e. Operacin de E/S) - Ejecutando en modo Kernel _ Ejecutando en modo Kernel: Durante la ejecucin del proceso en modo Kernel se puede producir una interrupcin. No es un cambio de estado sino un cambio de proceso. - Listo _ Ejecutando en modo Kernel: Un proceso listo para ejecutar vuelve a tomar el control del procesador y lo hace en modo Kernel para terminar la llamada al sistema que estaba realizando y fue interrumpida por la espera de un evento. - Listo _ Listo Descargado: El sistema tiene demasiados proceso y todos no caben en memoria. Lo descarga a disco (swapping). - Dormido _ Listo: El evento que esperaba el proceso se ha producido.

Dormido _ Dormido Descargado: Un proceso que espera un evento es descargado a disco para liberar espacio en memoria para otros procesos. Listo Descargado _ Listo: Se carga el proceso descargado en la memoria. Dormido Descargado _ Listo Descargado: El evento que esperaba un proceso descargado se ha producido, pasa a listo, pero todava sigue descargado. Expropiado _ Ejecutando en modo Usuario: El planificador decide devolver el control a un proceso expropiado. Creado _ Listo: Cuando el proceso se crea y hay memoria para cargarlo en memoria pasa a Listo. Creado _ Listo Descargado: Si cuando se crea un proceso no hay memoria suficiente este se crea descargado.

Estructuras para la gestin de procesos - Unix considera que un proceso consta de tres partes o regiones: o Text (bloque de texto) : contiene instrucciones o Data (bloque de datos): contiene datos o Stack (bloque de pila): pila para llamadas a funciones y procedimientos - El rea u: informacin privada del proceso manejada por el kernel. o Contiene los siguientes campos: Apuntador a la tabla de procesos Usuario propietario del proceso (valor real y efectivo) Valor del tiempo consumido de CPU por el proceso e hijos Parmetros de la llamada actual al sistema , valores de error Descriptores de todos los ficheros abiertos Directorio actual Lmites de memoria (registros base y lmite) - La tabla de procesos: o Estado del proceso o Identificador del usuario propietario del proceso o Descriptor del evento por el que el proceso est esperando en el caso de que est bloqueado esperando un evento. - Tabla de regiones por procesos o Apuntadores a las regiones de texto, datos y pila por proceso Planificacin de la CPU - Algoritmo pensado para beneficiar procesos interactivos - Utiliza un algoritmo de colas multinivel realimentadas (Round-Robin con prioridades dinmicas) - Prioridades comprendidas entre 0 y 127 o Ncleo: entre 0 y (prioridad base-1) o Procesos de usuario: entre (prioridad base) y 127 o La prioridad es mayor cuanto menor sea el nmero asignado - Las colas tienen un algoritmo RR con quantum de 1seg. (5 o 6 ticks de reloj) y reasignacin dinmica de prioridades cada tick de reloj (0.1 seg. aprox.) de acuerdo con: o El proceso en ejecucin incrementa su uso de CPU en una unidad, cada pulso de reloj (unas 60 veces por segundo) o Cada segundo se divide el uso de CPU por 2 y se recalcula la nueva prioridad con: Uso CPU= uso CPU/2 Nueva prioridad = valor base + uso CPU /2 La base puede empeorarse con la llamada nice

Consecuencias del algoritmo o Si la carga es alta es ineficiente recalcular todas las prioridades cada segundo o No existe la posibilidad de asignar CPU a grupos de procesos o No existen plazos de respuesta acotados o Las aplicaciones no tienen control sobre su prioridad o Se puede producir inversin de prioridades, el ncleo es ininterrumpible Cuando un proceso de baja prioridad hace una llamada al sistema puede retardar a uno de alta prioridad

Planificacin de procesos en Linux

Estados de un proceso en Linux - TASK_RUNNING: Proceso listo o en ejecucin - TASK_ INTERRUPTIBLE: Proceso "dormido" que puede despertar por alguna seal o interrupcin - TASK_ UNINTERRUPTIBLE: Similar al anterior, pero que no puede ser despertado inmediatamente, espera a una interrupcin y no puede ser despertado por una seal (el proceso est suspendido) - TASK_ ZOMBIE: Proceso-hijo terminado pero que no ha sido liberado por su proceso padre - TASK_ STOPPED: Proceso detenido, generalmente por una seal (SIGSTOP). til para depuracin

Descriptor de proceso (process descriptor): - Estructura que mantiene el sistema operativo con informacin del proceso (PCB) - Se conoce como task_struct implementada en el fichero include/linux/sched.h (lenguaje C) - Es una estructura que mantienen, no slo datos, sino tambin muchos punteros a otras estructuras

Lista de procesos del sistema: o Linux guarda una lista doblemente enlazada con cada proceso (task_struct) o Proceso init_task: Es el proceso inicial de linux, siempre est en ejecucin y es el encargado de ir creando otros procesos.

Planificacin de la CPU - Linux utiliza dos algoritmos de planificacin o Algoritmo de tiempo compartido con apropiacin o Algoritmo para tareas en tiempo real por prioridades - Tiempo Compartido o Linux usa un algoritmo de prioridades basado en crditos o Cada proceso posee un cierto nmero de crditos o El planificador selecciona el proceso con ms crditos de ejecucin o Cada interrupcin el proceso que est en ejecucin pierde un crdito

o Si crditos = 0, entonces el proceso es suspendido o Reasignacin de crditos Crditos = crditos + prioridad 2 o Este sistema otorga prioridad a procesos interactivos o limitados por E/S para los que es importante un tiempo de respuesta rpido Tareas de tiempo real o Linux implementa dos clases de planificacin FIFO y Round Robin o Los procesos adems tienen una prioridad o Siempre corre el proceso con mayor prioridad Planificacin de procesos en Windows NT

Estados de un hilo de ejecucin

Ready: El hilo listo para ejecutarse Running: El hilo se est ejecutando Standby: El hilo ha sido seleccionado para ser ejecutado en un procesador particular Waiting: Se encuentra bloqueado esperando un evento Transition: El hilo se encuentra preparado para ejecutarse, pero los recursos necesarios no estn disponibles Terminated: Finalizacin del hilo

Proceso Nulo - Proceso que se ejecuta cuando no hay proceso disponibles para ejecutarse - El procesador debe ejecutar alguna cosa - No cuenta como tiempo til ni como proceso de usuario - En general no hace nada., ejm: for ( ; ; ); - Se puede utilizar para realizar tareas poco prioritarias del kernel cuando el procesador est libre Algoritmo utilizado en Windows 2000 - Algoritmo apropiativo con prioridades (base + offset) - W2K soporta 32 niveles de prioridad o Prioridades 16-31 _ tareas de tiempo real o Prioridades 1-15 _ tareas ordinarias - Se planifican hilos, no procesos

Las colas son colas doblemente enlazadas de tareas Ready Las colas son comunes a todos los procesadores Los hilos del mismo nivel se ejecutan en Round Robin En sistemas Multiprocesador se ejecutan hilos simultneamente o No se garantiza la ejecucin de los n hilos ms prioritarios si hay n procesadores Escenarios de Planificacin o Apropiacin Un hilo con mayor prioridad que el activo pasa al estado Ready El hilo de menor prioridad es expulsado El hilo requisado pasa a la cabeza de la cola Ready o Conmutacin voluntaria Finalizacin Disminucin de la prioridad de modo explcito o Finalizacin de quantum Se decrementa la prioridad del hilo a no ser que ya se encuentre en la prioridad base El hilo se introduce al final de la cola correspondiente a su prioridad El hilo puede seguir ejecutndose si no hay tareas de igual o mayor prioridad listas para ejecutarse

Bibliografa Arquitectura de Computadores, 4 Ingeniera de Telecomunicaciones, Automtica y Computacin. Ingeniera Telemtica, Diego Martnez Pomares Pg. 4 4-109 http://gsyc.escet.urjc.es/docencia/asignaturas/itigsistemas_operativos/transpas/node9.html http://www.tau.org.ar/base/lara.pue.udlap.mx/sistoper/capitulo9.html http://www.tlm.unavarra.es/asignaturas/ac/teoria/ http://laurel.datsi.fi.upm.es/~ssoo/DSO/download/Practicas/minikernel/minikernel_planif.ht ml http://pantera.itchihuahua.edu.mx/apacheco/php/html/itesm/alberto.pacheco@Sistemas_O perativos@22@Planificacion_Procesos.html http://www.monografias.com/trabajos14/administ-procesos/administ-procesos.shtml http://www.monografias.com/trabajos6/linux/linux.shtml http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/PLAPRO02 _archivos/planificacion_en_linux.htm LAS MEMORIAS ROM MEMORIAS PROGRAMABLES MEMORIA ROM (READ ONLY MEMORY) Es una memoria de slo lectura que se programan mediante mscaras. Es decir, el contenido de las celdas de memoria se almacena durante el proceso de fabricacin para mantenerse despus de forma irrevocable. Desde el instante en que el fabricante grabo las instrucciones en el Chip, por lo tanto la escritura de este tipo de memorias ocurre una sola vez y queda grabado su contenido aunque se le retire la energa. Se usa para almacenar informacin vital para el funcionamiento del sistema: en la gestin del proceso de arranque, el chequeo inicial del sistema, carga del sistema operativo y diversas rutinas de control de dispositivos de entrada/salida suelen ser las tareas encargadas a los programas grabados en ROM. Estos programas forman la llamada BIOS

(Basic Input Output System). Junto a la BIOS se encuentra el chip de CMOS donde se almacenan los valores que determinan la configuracin hardware del sistema, como tipos de unidades, parmetros de los discos duros, fecha y hora del sistema... esta informacin no se pierde al apagar la computadora. Estos valores se pueden modificar por medio del SETUP. La ventaja de tener los programas fundamentales del computador almacenados en la ROM es que estn all implementados en el interior del computador y no hay necesidad de cargarlos en la memoria desde el disco de la misma forma en que se carga el DOS. Debido a que estn siempre residentes, los programas en ROM son muy a menudo los cimientos sobre los que se construye el resto de los programas (incluyendo el DOS). Una ROM puede estar fabricada tanto en tecnologa bipolar como MOS. MEMORIA PROM (PROGRAMMABLE READ ONLY MEMORIES) En la PROM (programable ROM), o memoria programable de slo lectura los contenidos pueden ser ledos pero no modificados por un programa de usuario. Sus contenidos no se construyen, como la ROM, directamente en el procesador cuando ste se fabrica, sino que se crean por medio de un tipo especial "programacin", ya sea por el fabricante, o por especialistas tcnicos de programacin del usuario. El proceso de programacin es destructivo: una vez grabada, es como si fuese una ROM normal. Las operaciones muy importantes o largas que se haban estado ejecutando mediante programas, se pueden convertir en microprogramas y grabarse permanentemente en una pastilla de memoria programable slo de lectura. Una vez que estn en forma de circuitos electrnicos, estas tareas se pueden realizar casi siempre en una fraccin del tiempo que requeran antes. La flexibilidad adicional que se obtiene con la PROM puede convertirse en una desventaja si en la unidad PROM se programa un error que no se puede corregir. Para superar esta desventaja, se desarroll la EPROM, o memoria de solo lectura reprogrmale. Para conseguir que la informacin que se desea grabar sea inalterable, se utilizan dos tcnicas: por destruccin de fusible o por destruccin de unin. El proceso de programacin de una PROM generalmente se realiza con un equipo especial llamado quemador. Este equipo emplea un mecanismo de interruptores electrnicos controlados por software que permiten cargar las direcciones, los datos y genera los pulsos para fundir los fusibles del arreglo interno de la memoria. En la figura se indica de forma esquemtica la funcin del programador. a. Las Aplicaciones ms importantes: b. Microprogramacin c. Librera de subrutinas d. Programas de sistema e. Tablas de funcin MEMORIA EPROM Las EPROM, o Memorias slo de Lectura Reprogramables, se programan mediante impulsos elctricos y su contenido se borra exponindolas a la luz ultravioleta (de ah la ventanita que suelen incorporar este tipo de circuitos), de manera tal que estos rayos atraen los elementos fotosensibles, modificando su estado. Las EPROM se programan insertando el chip en un programador de EPROM. y aplicando en un pin especial de la memoria una tensin entre 10 y 25 Voltios durante

aproximadamente 50 ms, segn el dispositivo, al mismo tiempo se direcciona la posicin de memoria y se pone la informacin a las entradas de datos. Este proceso puede tardar varios minutos dependiendo de la capacidad de memoria.

Cuando un dado bit de una celda debe ser cambiado o programado de un 1 a un 0, se hace pasar una corriente a travs del canal de transistor desde la fuente hacia la compuerta (obviamente, los electrones siguen el camino inverso). Al mismo tiempo se aplica una relativamente alta tensin sobre la compuerta superior o de control del transistor, crendose de esta manera un campo elctrico fuerte dentro de las capas del material semiconductor. Ante la presencia de este campo elctrico fuerte, algunos de los electrones que pasan el canal fuente-compuerta ganan suficiente energa como para formar un tnel y atravesar la capa aislante que normalmente asla la compuerta flotante. En la medida que estos electrones se acumulan en la compuerta flotante, dicha compuerta toma carga negativa, lo que finalmente produce que la celda tenga un 0. Los tiempos medios de borrado de una EPROM, por exposicin a la luz ultravioleta, oscilan entre 10 y 30 minutos. Tal como mencionramos anteriormente, el proceso de borrado de los datos contenidos en una EPROM es llevado a cabo exponiendo la misma a luz ultravioleta. El punto reside en que la misma contiene fotones (Cuantos de energa electromagntica) de energa relativamente alta. MEMORIA EEPROM (ELECTRICAL ERASABLE PROGRAMMABLE READ ONLY MEMORY) La memoria EEPROM es programable y borrable elctricamente y su nombre proviene de la sigla en ingls Electrical Erasable Programmable Read Only Memory. Actualmente estas memorias se construyen con transistores de tecnologa MOS (Metal Oxide Silice) y MNOS (Metal Nitride-Oxide Silicon). Las celdas de memoria en las EEPROM son similares a las celdas EPROM y la diferencia bsica se encuentra en la capa aislante alrededor de cada compuesta flotante, la cual es ms delgada y no es fotosensible. Las memorias EEPROM (Electrically Erasable Programmable Read-Only Memory) son memorias no voltiles y elctricamente borrables a nivel de bytes. La posibilidad de programar y borrar las memorias a nivel de bytes supone una gran flexibilidad, pero tambin una celda de memoria ms compleja. Adems del transistor de puerta flotante anterior, es preciso un segundo transistor de seleccin. El tener 2 transistores por celda hace que las memorias EEPROM sean de baja densidad y mayor coste. La programacin

requiere de tiempos que oscilan entre 157 s y 625 s=byte. Frente a las memorias EPROM, presenta la ventaja de permitir su borrado y programacin en placa, aunque tienen mayor coste debido a sus dos transistores por celda. Una ventaja adicional de este tipo de memorias radica en que no necesitan de una alta tensin de grabado, sirven los 5 voltios de la tensin de alimentacin habitual.

LECTURA

0 1

1 0

ESCRITURA 0

Ventajas de la EEPROM: Las palabras almacenadas en memoria se pueden borrar de forma individual. Para borra la informacin no se requiere luz ultravioleta. Las memorias EEPROM no requieren programador. De manera individual puedes borrar y reprogramar elctricamente grupos de caracteres o palabras en el arreglo de la memoria. Para reescribir no se necesita hacer un borrado previo. MEMORIA FLASH La memoria FLASH es similar a la EEPROM, es decir que se puede programar y borrar elctricamente, son de alta densidad (gran capacidad de almacenamiento de bits). Alta densidad significa que se puede empaquetar en una pequea superficie del chip, gran cantidad de celdas, lo que implica que cuanto mayor sea la densidad, ms bits se pueden almacenar en un chip de tamao determinado. Sin embargo esta rene algunas de las propiedades de las memorias anteriormente vistas, y se caracteriza por tener alta capacidad para almacenar informacin y es de fabricacin sencilla, lo que permite fabricar modelos de capacidad equivalente a las EPROM a menor costo que las EEPROM. Aparte de que las memorias EPROM "Flash" tienen una entrada de escritura, mientras estn funcionando se comportan como las EPROM normales. La nica diferencia se encuentra en como se cargan y se borran los datos en la memoria. Mientras que durante el proceso de programacin de las memorias EPROM convencionales se necesita una tensin bien definida durante cierto intervalo de tiempo, y para borrar el componente hay que exponerlo a luz ultravioleta, en las E.Flash ambos procesos estn controlados y se llevan a cabo internamente. Para tal efecto la memoria recibe una secuencia de comandos predefinida (borrar, programar) que incluye algunas precauciones especiales (determinadas por el fabricante) destinadas a evitar que se borre cualquier dato por error. Durante el proceso de programacin o borrado se puede leer, mediante un comando de acceso en "lectura", el estado de la memoria EPROM "Flash" en la misma posicin que el byte de programado o borrado. Mientras se borra un sector se puede leer cualquier direccin que pertenezca al sector. APLICACIONES DE LA MEMORIA FLASH La Memoria Flash es ideal para docenas de aplicaciones porttiles. Tomemos como ejemplo las cmaras digitales. Insertando una tarjeta de Memoria Flash de alta capacidad directamente en la cmara, usted puede almacenar cientos de imgenes de alta resolucin. Cuando este listo para bajarlas, simplemente retire la tarjeta y transfirala a su computadora de escritorio o porttil para su procesamiento. Las tarjetas de Memoria Flash se ajustan a entradas Tipo II (con o sin adaptador, dependiendo del tipo de tarjeta Flash). Ahora esta usted listo para cargar en segundos todas las imgenes capturadas para

observarlas, manipularlas, enviarlas por correo electrnico o imprimirlas. Ya nunca necesitara comprar rollos para fotografa. Sea cual sea su aplicacin o equipo porttil. Actualmente, los usos de Memoria Flash se estn incrementando rpidamente. Ya sean cmaras digitales, Asistentes Digitales Porttiles, reproductores de msica digital o telfonos celulares, todos necesitan una forma fcil y confiable de almacenar y transportar informacin vital. TABLA COMPARATIVA ENTRE MEMORIAS

BIBLIOGRAFA http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/lecciones/100301.htm http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/lecciones/100501.htm http://www.monografias.com/trabajos12/mosscur/mosscur.shtml http://www.zona-warez.com/tutoriales-ingenieria_electrica.html http://webdiee.cem.itesm.mx/web/servicios/archivo/manuales/micro8051.pdf http://electronred.iespana.es/electronred/Circuitosintegra.htm METODO BUDDY Algoritmo Buddy: Utiliza tcnicas de compactacin de memoria, fusionando espacios intiles, de forma que se configuran bloques continuos del tamao adecuado. Montn con estructura de divisin fija o de bloques compaeros (buddy-system) La caracterstica fundamental de este mtodo es que slo permite la existencia de bloques cuya longitud corresponda a un nmero de una serie finita de longitudes, por ejemplo, slo bloques de tamaos 4,8,16,28,48,80,132,.... Caracteriza tambin a este mtodo la existencia de mltiples listas doblemente enlazadas de bloques libres, una para cada uno de los tamaos disponibles. La estructura de los bloques que se utiliza contiene los campos que se indican en el siguiente esquema:

La estrategia para la asignacin en memoria de un objeto de tamao N es la siguiente: 1. Se halla el nmero de la serie de tamaos inmediatamente superior o igual a N, es decir si la serie es F0,F1...Fmax debe localizarse el valor Fn , siendo 0 <= n <= max, tal que: Fn-1 < N Fn. 2. Se busca en la lista correspondiente a los bloques libres de longitud Fn, si hay alguno disponible. En caso afirmativo se aloja en l el objeto, si no, se busca en la lista de tamao inmediatamente superior (es decir Fn+1), y as sucesivamente hasta encontrar un bloque en el que quepa el objeto. Sea Fm el tamao del bloque que se obtiene tras este proceso. 3. Si Fm > Fn, se divide el registro correspondiente de tamao Fm, de forma que se obtengan dos nuevos registros cuyos tamaos sern Rp y Rq respectivamente. La serie de nmeros base para este mtodo debe elegirse de tal forma que los registros que se obtengan de la divisin tengan tamaos correspondientes a nmeros de la serie, es decir Rp = Fm-1 y Rq = Fm-k . Es ms, el tamao de uno de los nuevos registros que se obtengan al realizar la divisin debe ser el correspondiente al valor inmediato anterior de la serie. Esta condicin impone la siguiente restriccin : Fm = Fm-1 + Fm-k + z en donde z corresponde a la porcin de memoria utilizada por los bytes de control. (originalmente slo hay un registro y finalmente hay dos, por lo que del registro original debe salir tambin el espacio correspondiente a un grupo de bytes de control) 4. Una vez dividido el registro, y colocados los nuevos registros que aparecen tras la divisin en las listas de bloques libres correspondientes se repiten los pasos anteriores (pasos 2 y 3), hasta encontrar un registro de tamao Fn inmediatamente igual o superior a N. Cada vez que se divide un bloque (en el paso 3) se obtienen dos bloques a los que se denomina bloque izquierdo y bloque derecho. Ambos bloques estn contiguos en memoria. Adems conociendo el tamao del bloque izquierdo se puede hallar automticamente el tamao de su bloque derecho compaero y viceversa. Para registrar el nmero de divisiones y la calidad de bloque izquierdo o derecho, se incluye en la estructura de los bloques un campo al que se ha denominado en la figura control de divisin. Cada vez que se divide un registro se incrementa en una unidad el control de divisin del bloque izquierdo resultante, y se coloca un 0 en el control de divisin del bloque derecho, as, con un mismo campo se tiene toda la informacin necesaria. Asi, por ejemplo, si dividimos un bloque derecho (cuyo control de divisin debe ser 0) los controles de divisin de los nuevos bloques izquierdo y derecho sern respectivamente 1 y 0. Si se divide un bloque cuyo control de divisin es 3 (se trata de un bloque izquierdo) se obtienen otros dos nuevos bloques, el primero de los cuales es un bloque izquierdo cuyo control de divisin es 4, y el segundo es un bloque derecho cuyo control de divisin es 0. Para realizar la operacin de desalojo de un bloque se procede segn el siguiente algoritmo: 1. Se inspecciona el campo de control de divisin del bloque a desalojar, para determinar si se trata de un bloque izquierdo o derecho, y se obtiene su tamao consultando el campo adyacente. 2. Si se trata de un bloque izquierdo, se comprueba si a continuacin de l, en la posicin correspondiente hay un bloque libre. Dado que se sabe que es un bloque izquierdo y que se conoce su longitud, puede determinarse fcilmente cual es la posicin de memoria del byte correspondiente al indicador de bloque libre del bloque compaero. Si el bloque contiguo est libre, se comprueba adems que su longitud corresponde a la del bloque compaero del bloque que se intenta desalojar. En caso afirmativo se funden ambos bloques en uno solo (correspondiente al bloque que en su momento dio origen a los dos), actualizando convenientemente las listas de bloques libres. El

control de divisin del bloque resultante ser una unidad inferior a la del bloque izquierdo que intentamos desalojar. Una vez agrupados ambos bloque se repite el proceso de desalojo descrito en este punto para el bloque resultante, cuyo control de divisin indicar si se trata de un bloque izquierdo o derecho 3. Si el bloque a desalojar es un bloque derecho, se realiza la operacin simtrica La informacin sobre el tamao del registro compaero, que en este caso ser necesaria para inspeccionar los registros de control del bloque adyacente, puede obtenerse mediante la aplicacin de la frmula de la serie, a partir del tamao del propio bloque a desalojar. Las series de nmeros que se utilizan para este mtodo pueden ser:
o o

Series de Fibonacci: (segn la formula Fn = Fn-1 + Fn-2 + z) Series de divisin binaria: (segn la formula Fn = Fn-1 + Fn-1 + z)

Si se utiliza 1 byte para el indicador de bloque libre, 2 bytes para indicar el tamao mximo del objeto que puede almacenar, y 1 byte para el control de divisin, en total se tiene que z = 4 Fijados los primeros elementos de la serie, el resto de tamaos puede obtenerse mediante la frmula correspondiente, por ejemplo, si F1 = 4 y F2 = 8, se obtendr la serie de Fibonacci: 4,8,16,28,48,80,132,216.. Si se emplea la frmula de divisin binaria a partir de un tamao inicial F1 = 4, se obtendr la serie: 4,12,28,60,124,252 .... Ejemplo: Sea un rea de memoria de tamao 132, sobre la que se aplica la tcnica de subdivisin fija basada en la serie finita 4,8,16,28,48,80,132. En la figura 14 se representa el estado del montn al alojar en l objetos de tamao 12, figura (a), de tamao 35, figura (b), y finalmente dos objetos de tamao 12, figuras (c) y (d).

fig. Alojamiento en el montn segn la tcnica de subdivisin fija En la figura siguiente aparece el grafo que representa las divisiones que se han llevado a cabo en la configuracin final y entre parntesis los cdigos de divisin correspondientes a cada bloque:

En Resumen: El principio Bsico del Buddy system es el siguiente: a cada peticin de asignacin, se usa la lista no vaca que contiene los grupos de pginas de tamao inmediatamente superior al tamao especificado, y se selecciona un grupo de pginas de esta lista. Este grupo se descompone en dos partes: las pginas correspondientes al tamao de memoria especificado, y el resto de pginas que siguen disponibles. Este resto puede insertarse en las otras listas. Al liberar un grupo de pginas, el ncleo intente fusionar este grupo con los grupos disponibles, a fin de obtener un grupo disponible de tamao mximo. Para simplificar la asignacin y liberacin de un grupo de pginas, el ncleo slo permite designar grupos de pginas cuyo tamao sea predeterminado y corresponda a los tamaos gestionados en las listas. Como vemos este mtodo es mucho ms complicado que el que utilizaba el sistema operativo anterior pero con este mtodo se permite una mejor utilizacin de la memoria. Bibliografa e Internet Stallings William. Sistemas Operativos. Editorial Prentice Hall Tanenbaum Andrew S. Sistemas Operativos Modernos. Prentice Hall http://members.fortunecity.es/xaime/c8e.htm http://gemini.udistrital.edu.co/comunidad/estudiantes/dguerrero/mm/memory-es.html http://www.itver.edu.mx/so2/ http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SO4.htm http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/SOF.htm http://borabora.univalle.edu.co/materias/compiladores/lecc95.html http://www.tau.org.ar/base/lara.pue.udlap.mx/sistoper/ Encontrar el nmero de faltas de pginas que se produce en la siguiente serie: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. Con divisin de memoria de 3 marcos y 4 marcos. Tres Marcos Serie 1 1 2 1 2 2 3 1 2 3 3 4 4 2 3 4 1 4 1 3 5 2 4 1 2 6 5 5 1 2 7 1 5 1 2 2 5 1 2 3 5 3 2 8 4 5 3 4 9 5 5 3 4

F.P

Cuatro Marcos Serie 1 1 2 1 2 3 1 2 3 3 4 1 2 3 4 4 1 1 2 3 4 2 1 2 3 4 5 5 2 3 4 5 1 5 1 3 4 6 2 5 1 2 4 7 3 5 1 2 3 8 4 4 1 2 3 9 5 4 5 2 3 10

F.P

Conclusiones En el ejercicio que se propuso en clase tengo como conclusin que al aumentar los marcos en memoria existen menos falta de pgina, pero al haber desarrollado este ejercicio sera un error decir que mientras ms marcos se tengan en memoria principal menos cantidad de faltas de pgina existirn. Como se puede observar la cantidad de faltas de pgina aumento en una al aumentar un marco a la memoria (3 a 4) pero si al aumentar nuevamente en una la cantidad de marcos a la memoria (4 a 5) la cantidad de faltas de pgina disminuirn cumpliendo con la conclusin obtenida del ejercicio en clase. Quizs exista una relacin entre la cantidad de pginas que se encuentran en disco con la cantidad de marcos en que se divida la memoria o con la cantidad de datos que existan en la serie (20 en el ejercicio en clase y 12 en este) as que a la conclusin expuesta en el primer prrafo aadir que mientras ms cantidad de datos tenga la serie y ms marcos tenga la memoria principal menos cantidad de faltas de pgina existirn. Encontrar el nmero de faltas de pginas que se produce en las siguientes series: Serie 1: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1. Serie 2: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. Serie1 S 7 7 F.P 1 0 7 0 2 1 7 0 1 3 2 2 0 1 4 0 2 0 1 3 2 0 3 5 0 2 0 3 4 2 4 3 6 2 2 4 3 3 2 4 3 0 2 0 3 7 3 2 0 3 2 2 0 3 1 2 1 3 8 2 2 1 3 0 0 1 3 9 1 0 1 3 7 0 1 7 10 0 0 1 7 1 0 1 7

Respuesta: 10 Faltas de pgina S 7 7 F.P 1 0 7 0 2 1 7 0 1 3 2 2 0 1 4 0 2 0 1 3 2 0 3 5 0 2 0 3 4 2 4 3 6 2 2 4 3 3 2 4 3 0 2 0 3 7 3 2 0 3 2 2 0 3 1 2 0 1 8 2 2 0 1 0 2 0 1 1 2 0 1 7 2 0 7 9 0 2 0 7 1 1 0 7 10

Respuesta: 10 Faltas de pgina

Serie2 Serie 1 1 2 1 2 2 3 1 2 3 3 4 4 2 3 4 1 4 1 3 5 2 4 1 2 6 5 5 1 2 7 1 5 1 2 2 5 1 2 3 3 1 2 8 4 3 4 2 9 5 3 4 5 10

F.P

Respuesta: 10 Faltas de pgina Serie 1 1 2 1 2 2 3 1 2 3 3 4 1 2 4 4 1 1 2 4 2 1 2 4 5 1 2 5 5 1 1 2 5 2 1 2 5 3 1 2 3 6 4 4 2 3 7 5 4 5 3 8

F.P

Respuesta: 8 Faltas de pgina SEGMENTACION PAGINADA Paginacin y segmentacin son tcnicas diferentes, cada una de las cuales busca brindar las ventajas enunciadas anteriormente. Para la segmentacin se necesita que estn cargadas en memoria, reas de tamaos variables. Si se requiere cargar un segmento en memoria; que antes estuvo en ella y fue removido a memoria secundaria; se necesita encontrar una regin 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. A nivel de paginacin, si quiere referenciar en forma cclicas n paginas, estas debern ser cargadas una a una generndose varias interrupciones por fallas de paginas; bajo segmentacin, esta pagina podra conformar un solo segmento, ocurriendo una sola interrupcin, por falla de segmento. No obstante, si bajo segmentacin, se desea acceder un rea muy pequea dentro de un segmento muy grande, este deber cargarse completamente en memoria, desperdicindose memoria; bajo paginacin solo se cargara la pgina que contiene los tems referenciados. Puede hacerse una combinacin de segmentacin y paginacin para obtener las ventajas de ambas. En lugar de tratar un segmento como una unidad contigua, este puede dividirse en pginas. Cada segmento puede ser descrito por su propia tabla de pginas. Los segmentos son usualmente mltiplos de pginas en tamao, y no es necesario que todas las pginas se encuentren en memoria principal a la vez; adems las pginas de un mismo segmento, aunque se encuentren contiguas en memoria virtual; no necesitan estarlo en memoria real. Las direcciones tienen tres componentes: (s, p,d), donde la primera indica el numero del segmento, la segunda el numero de la pagina dentro del segmento y la tercera el desplazamiento dentro de la pagina. Se debern usar varias tablas: SMT (tabla de mapas de segmentos): una para cada proceso. En cada entrada de la SMT se almacena la informacin descrita bajo segmentacin pura, pero en el campo

de direccin se indicara la direccin de la PMT (tabla de mapas de pginas) que describe a las diferentes pginas de cada segmento. PMT (tabla de mapas de pginas): una por segmento; cada entrada de la PMT describe una pgina de un segmento; en la forma que se presento la pagina pura. TBM (tabla de bloques de memoria): para controlar asignacin de pginas por parte del sistema operativo. JT (tabla de Jobs): que contiene las direcciones de comienzo de cada una de las SMT de los procesos que se ejecutan en memoria. En el caso, de que un segmento sea de tamao inferior o igual al de una pagina, no se necesita tener la correspondiente PMT, actundose en igual forma que bajo segmentacin pura; puede arreglarse un bit adicional (S) a cada entrada de la SMT, que indicara si el segmento esta paginado o no.

Ventajas de la segmentacin paginada El esquema de segmentacin paginada tiene todas las ventajas de la segmentacin y la paginacin: Debido a que los espacios de memorias son segmentados, se garantiza la facilidad de implantar la comparticin y enlace. Como los espacios de memoria son paginados, se simplifican las estrategias de almacenamiento. Se elimina el problema de la fragmentacin externa y la necesidad de compactacin. Desventajas de la segmentacin paginada Las tres componentes de la direccin y el proceso de formacin de direcciones hace que se incremente el costo de su implantacin. El costo es mayor que en el caso de de segmentacin pura o paginacin pura. Se hace necesario mantener un nmero mayor de tablas en memoria, lo que implica un mayor costo de almacenamiento. Sigue existiendo el problema de fragmentacin interna de todas- o casi- todas las pginas finales de cada uno de los segmentos. Bajo paginacin pura se desperdician solo la ltima pgina asignada, mientras que bajo segmentacin paginada el desperdicio puede ocurrir en todos los segmentos asignados. Resumen Como su nombre indica, la segmentacin paginada intenta recoger lo mejor de los dos esquemas anteriores. La segmentacin proporciona soporte directo a las regiones del proceso y la paginacin permite un mejor aprovechamiento de la memoria y una base para construir un esquema de memoria virtual. Con esta tcnica un segmento est formado por un conjunto de pginas y, por tanto, no tiene que estar contiguo en memoria. La MMU utiliza una tabla de segmentos, tal que cada entrada de la tabla apunta a una tabla de pginas. Es importante resaltar que, aunque la segmentacin paginada ofrece ms funcionalidad que la paginacin, requiere un hardware ms complejo que, adems, no est presente en la mayora de los procesadores. Por ello, la mayora de los sistemas operativos estn construidos suponiendo que el procesador proporciona un esquema de paginacin. o Es posible combinar los esquemas de paginacin y segmentacin o De este modo podemos obtener las ventajas de ambos a costa de complicar el HW o Combinaciones: Segmentacin paginada Paginacin segmentada (no se emplea en la prctica) o En la segmentacin paginada, cada segmento se divide en pginas o En la paginacin segmentada, cada pgina se divide en segmentos

Direccin virtu al

Memoria D

Tabla de segmentos RPBT S

+
S
Base de la tabla de pginas

Tabla de pginas

RLTS

Bibliografia Tanenbaum Andrew S. Sistemas Operativos Modernos .Prentice Hall Internet http://www.monografias.com/trabajos13/gesme/gesme.shtml http://www.monografias.com/trabajos15/sist-operativos/sist-operativos2.shtml http://www.elrinconcito.com/articulos/GesMemoria/gesme.htm http://www.arcos.inf.uc3m.es/~ssoo-va/ssoo-prob/libro/cap04.pdf