|
Por: 11-05-2009 por jpsarmiento |
Categorías asociadas: Paralelo "C", Tema Libre
Fué uno de los primeros sistemas operativos de tiempo compartido; fué desarrollado en el Centro de Computación del MIT. Se presentó en 1961, y se utilizó en el MIT hasta 1973. Durante parte de este tiempo, el Proyecto MAC del MIT tuvo una segunda copia de CTSS, pero el sistema no se expandió más allá de dos sitios. CTSS fue descrito en una publicación presentada en la Spring Joint Computer Conference de 1962. La palabra “Compatible” en el nombre se refiere a la compatibilidad con el sistema operativo por lotes estándar para el 7094, el Fortran Monitor System (FMS). CTSS ejecuta una copia sin modificar de FMS, procesando un flujo de lotes estándar, en un 7094 virtual proporcionado por su característica segundo plano. Los trabajos FMS en segundo plano pueden acceder a las cintas con normalidad pero no pueden interferir con los procesos de tiempo compartido en primer plano o los recursos utilizados para soportarlos. Aunque no fue un sistema operativo influyente en con sus aspectos técnicos, tuvo una gran influencia al mostrar que el tiempo compartido era viable, las nuevas aplicaciones de los ordenadores fueron planteadas por primera vez entonces, y gracias a su sucesor, Multics, del que todos los sistemas operativos modernos toman planteamientos teóricos. CTSS tuvo una de las primeras utilidades computerizadas para formatear texto, y una de las primeras implementaciones de correo electrónico entre usuarios. Louis Pouzin, miembro del Centro de Computación del MIT, creó un comando llamado RUNCOM para CTSS, que ejecutaba una lista de comandos contenidos en un fichero; esta habilidad es el ancestro directo del shell script de Unix. RUNCOM también permitía la substitución de parámetros. CTSS utilizó un mainframe IBM 7094 modificado que tenía dos bancos de 32768 palabras de 36 bits como memoria principal en lugar de tener sólo uno, como es normal. Un banco estaba reservado para el programa supervisor de tiempo compartido, el otro para los programas de usuario. También tuvo un hardware de gestión de memoria especial, una interrupción de reloj con la habilidad de capturar ciertas instrucciones. Por: 11-05-2009 por bfcorralesx |
Categorías asociadas: Paralelo "C", Tema Libre
Multics (Multiplexed Information and Computing Service) fue uno de los primeros sistemas operativos de tiempo compartido y tuvo una gran influencia en el desarrollo de los posteriores sistemas operativos. Multics fue un de los primeros sistemas operativos que implementó un único nivel de almacenamiento para el acceso a los datos, desechando la clara distinción entre los ficheros (llamados segmentos en Multics) y los procesos en memoria. La memoria de un proceso consistía solamente en segmentos que estaban mapeados en su espacio de direcciones; para leer o escribir en ellos, el proceso simplemente utilizaba instrucciones normales de la CPU, y el sistema operativo tenía cuidado de asegurarse que todas las modificaciones fueran guardadas en disco. En la terminología POSIX, era como si cada fichero fuese mapeado; sin embargo, en Multics no existía el concepto de memoria de proceso, separado del de la memoria utilizada para mantener mapeados sobre los ficheros, como hace Unix. Toda la memoria del sistema formaba parte de algún segmento, que aparecía en el sistema de archivos; incluida la memoria temporal del proceso, la pila del núcleo, etc. Por: 22-04-2009 por bjcoronel |
Categorías asociadas: Paralelo "C", Tema Libre
¿Se han Puesto A pensar Cuantos Sistemas Operativos existe?
Seria Increíble contar cada uno de los sistemas operativos Existentes…Entre los que consulte Están:
Sistemas operativos con núcleo Linux:
OpenSuSE: http://www.opensuse.org Ubuntu (ubuntu con gnome por defecto): http://www.ubuntu-es.org Kubuntu (ubuntu con kde por defecto): http://www.kubuntu-es.org Xubuntu (ubuntu con xfce por defecto): http://www.xubuntu.org Fedora: http://www.fedora-es.com Mandriva: http://www.mandriva.com Debian: http://www.debian.org Gentoo: http://www.gentoo-es.org Linex: http://www.linex.org Guadalinex: http://www.guadalinex.org gNewSense: http://www.gnewsense.org PcLinuxOS: http://www.pclinuxos.com RedHat: http://www.redhat.es Knoppix: http://www.knoppix.org Slackware: http://www.slackware.com CentOS: http://www.centos.org LliureX: http://lliurex.net
Sistemas operativos con núcleo BSD:
FreeBSD: http://www.freebsd.org OpenBSD: http://www.openbsd.org PcBSD: http://pcbsd.es NetBSD: http://www.netbsd.org Dragod Fly BSD:
Sistemas operativos con núcleo propio:
EcomStation: http://ecomstation.org MacOSX: http://www.apple.com Solaris: http://www.sun.com/sotware/solaris/ Windows: http://www.microsoft.com Cristal *BSD Minix: www.minix3.org/ BeOS MS_Dos OS/2 amigaos: www.upv.es/amiga/14 XiniXZ sco unix hpux as400 xenix OS/2
También tenemos Las versiones existentes de Windows
Windows 95: Fiable, no requiere mucha RAM y esta básicamente diseñado en el DOS Windows 98: Esta es la segunda versión de Windows que trae más apariencia y graficas y se basa en DOS Windows ME: Igual que Windows 98 solo que este tiene más propiedades, mas grafica y esta mas basado en 2D Windows Milenium: Esta versión es mas eficiente de las otras más antiguas pero a la vez consume más RAM Windows 2000: Es una versión basada en 3D y es compatible con la mayoría de programas Windows 2000 Professional: Igual que el común Windows XP Professional: Aun mas eficiente que Windows 2000 y este tiene aun mas compatibilidad con programas y tiene aun mas apariencia Windows XP Colossus: Es una versión basada en Linux pero no es muy recomendable Windows XP Home Edition: Esta versión de Windows XP está hecha para los hogares de familia, ya que es más fácil de usar Windows XP Service Pack 2: Esta fue la versión mas popular de Windows Windows Fénix: Esta versión es eficiente pero a la vez Consume más RAM Windows XP Service Pack 2(Original): Esta es la versión original y trae incluido un firewall(También se hacen copias) Windows Vista: Es una versión con puro basado 3D,Requiere una PC muy poderosa de 1GB de memoria RAM como mínimo Windows Vista ULTIMATE: No fue popular pero Microsoft pensó que iba a ser la mejor, pero se equivoco hasta ahora la mejor según los usuarios es Windows XP Windows Vista Premium: Casi lo mismo que Ultímate Por: 21-04-2009 por rmrivera |
Categorías asociadas: Paralelo "C", Tema Libre
La exclusión mutua debe ponerse en práctica sólo cuando los procesos obtienen acceso a datos compartidos modificables; cuando los procesos realizan operaciones que no entran en conflicto con otras, deben permitirse que procedan concurrentemente. Cuando un proceso obtiene acceso a datos compartidos modificables, se dice que se encuentra en una sección crítica. Es evidente que, para evitar la clase de problemas observados en la sección anterior, debe asegurarse que cuando un proceso se encuentre en una sección crítica, los demás procesos (o al menos los que tengan acceso a los datos compartidos) no pueden entrar a sus propias secciones críticas. Mientras un proceso se encuentra en su sección crítica, otros procesos pueden, claro está, seguir ejecutándose fuera de sus secciones críticas. Cuando un proceso abandona su región crítica, otro proceso que espera entrar en su propia sección crítica (si existe algün proceso en espera). Lograr que se cumpla la exclusión mutua es uno de los problemas fundamentales de la programación concurrente. Se han propuesto muchas soluciones, algunas de software y otras de hardware, algunas sencillas y otras complejas, y algunas que requieren la cooperación voluntaria de los procesos y otras que exigen un escrito ajuste a rígidos protocolos. Encontrarse dentro de una región crítica es un estado especial concedido a un proceso. El proceso tiene acceso exclusivo a los datos compartidos y los demás procesos que requieran acceso a los datos en ese momento deben esperar. Así pues, las secciones críticas deben ejecutarse tan rápido como sea posible; un proceso no se debe bloquear dentro de su propia sección crítica y las secciones críticas deben codificarse con mucho cuidado (para evitar, por ejemplo, la posibilidad de ciclos infinitos). Si un proceso de una sección crítica termina, ya sea voluntaria o involuntariamente, el sistema operativo, al realizar su mantenimiento de terminaciones, debe liberar la exclusión mutua de manera que otros procesos puedan entrar en sus regiones críticas. Por: 21-04-2009 por vdsocola |
Categorías asociadas: Paralelo "C", Tema Libre
PLANIFICACIÓN DE MULTIPROCESADORES Los sistemas multiprocesador pueden clasificarse en: - Multiprocesador débilmente acoplado: consta de un conjunto de sistemas relativamente autónomos, donde cada procesador tiene su propia memoria principal y sus propios canales de E/S. - Procesadores especializados: similares a los procesadores de E/S. Hay un procesador principal de propósito general que controla y ofrece servicios a los procesadores especializados. - Multiprocesador fuertemente acoplado: consta de un conjunto de procesadores que comparten una memoria principal común y se encuentran bajo el control integrado de un S.O. PLANIFICACIÓN DE UN MULTIPROCESADOR En la planificación de un multiprocesador deben considerarse tres puntos interrelacionados: asignación de recursos, uso de multiprogramación en procesadores individuales y expedición de un proceso. Asignación de procesos a los procesadores - Estática: un proceso es asignado a un procesador determinado, desde su activación hasta su terminación, por lo que debe mantenerse una cola dedicada a corto plazo para cada procesador. La desventaja que posee es que un procesador puede estar desocupado, con su cola vacía, mientras que otro procesador tiene trabajos pendientes. - Dinámica: todos los procesos van en una cola global y son ejecutados en cualquier procesador que esté disponible. De este modo, durante la vida de un proceso, éste puede ejecutarse en diferentes procesadores en momentos diferentes. Hemos hablado de asignación estática o dinámica, que se refiere a la dedicación de los procesos con respecto a los procesadores, pero también hace falta asignar los procesos a los procesadores. Para ello, se pueden utilizar dos métodos: arquitectura maestro/esclavo o arquitectura simétrica (SMP – Simmetric Multiprocessing). Uso de multiprogramación en los procesadores individuales En los multiprocesadores tradicionales, con sincronización de grano grueso o independiente, está claro que cada procesador individual podría alternar entre varios procesos para conseguir una alta utilización y, por tanto, un mejor rendimiento. Sin embargo, cuando se trabaja con aplicaciones de grano medio ejecutándose en muchos procesadores, la situación es menos clara. Cuando hay varios procesadores disponibles, no resulta tan importante que cada procesador esté ocupado al máximo. En su lugar, se debe tratar de obtener el mejor rendimiento, en promedio, para las aplicaciones. Una aplicación que conste de varios hilos puede rendir poco a menos que todos sus hilos estén disponibles para ejecutar simultáneamente. Expedición real de un proceso Es un sistema monoprocesador multiprogramado, el uso de prioridades o algoritmos de planificación sofisticados basados en la utilización anterior puede mejorar la simple estrategia FIFO de decisión. Pero cuando se considera un multiprocesador, esta complejidad puede ser innecesaria o incluso contraproducente. Por: 20-04-2009 por avcuencax |
Categorías asociadas: Paralelo "C", Tema Libre
La solución de Perteson La solucion de peterson es una herramienta que nos ayuda a organizar los procesos que van llegando al CPU o la Memoria de la PC
El problema de la sección critica - La característica principal del sistema es que, cuando un proceso esta ejecutando su sección critica, ningún otro proceso puede ejecutar su correspondiente sección crítica. - Es decir, dos procesos no pueden ejecutar su sección crítica al mismo tiempo. - Cualquier solución al problema de la sección critica deberá satisfacer los tres requisitos siguientes: · Exclusión mutua. Si el proceso Pi esta ejecutando su sección crítica, los demás procesos no pueden estar ejecutando sus secciones criticas. · Progreso. · Espera limitada. Existe un límite que es permitido un proceso para que ejecute su sección crítica.
Solución de Peterson - La solución de Peterson se restringe a dos procesos que van alternando la ejecución de sus secciones críticas y de sus secciones restantes. - Los procesos se enumeran como P0 y P1. - La solución de Peterson requiere que los dos procesos compartan dos elementos de datos.
Bueno aquí les dejo un link donde pueden entender mejor sobre este tema http://pepemorales.galeon.com/Doc/ssoo_8.htm
Por: 17-04-2009 por lfmontalvan |
Categorías asociadas: Paralelo "C", Tema Libre
Sistema Operativo Linux: Linux es, a simple vista, un Sistema Operativo. Es una implementación de libre distribución UNIX para computadoras personales (PC), servidores, y estaciones de trabajo. Fue desarrollado para el i386 y ahora soporta los procesadores i486, Pentium, Pentium Pro y Pentium II, así como los clones AMD y Cyrix. Como sistema operativo, Linux es muy eficiente y tiene un excelente diseño. Es multitarea, multiusuario, multiplataforma y multiprocesador; en las plataformas Intel corre en modo protegido; protege la memoria para que un programa no pueda hacer caer al resto del sistema; carga sólo las partes de un programa que se usan; comparte la memoria entre programas aumentando la velocidad y disminuyendo el uso de memoria; usa un sistema de memoria virtual por páginas; utiliza toda la memoria libre para cache; permite usar bibliotecas enlazadas tanto estática como dinámicamente; se distribuye con código fuente; usa hasta 64 consolas virtuales; tiene un sistema de archivos avanzado pero puede usar los de los otros sistemas; y soporta redes tanto en TCP/IP como en otros protocolos. Características de Linux:
Cómo se instala Linux. Linux en la actualidad es un sistema operativo fácil de instalar, basta con descargar la imagen iso de una distribución, grabarla en un CD o DVD e iniciar la computadora utilizando dicho disco. Algunas distribuciones muy utilizadas son Debian, SuSE, Ubuntu o YellowDog (esta última es la más común en la plataforma PlayStation 3). La mayoría de las distribuciones son gratuitas y pueden conseguirse fácilmente a través de las páginas web de los fabricantes. El resto es tan fácil como instalar Windows, incluso algunas distribuciones permiten entrar al escritorio linux sin necesidad de instalar el sistema operativo (desde el CD), para luego usarlo o instalarlo desde el escritorio. Este es el caso de Ubuntu y Kubuntu y las versiones más actualizadas, se inserta el cd/dvd dentro de la computadora, se reinicia el equipo y en uno o dos minutos se está en el escritorio del sistema operativo Linux. Estas versiones son también llamadas Live. RED HAT LINUX. Es una versión de Linux creada por Red Hat, es un Sistema Operativo que no fue muy utilizado ya que se inició en los años de 1993 y su última versión llegó a su final en el 2004, Red Hat Linux era un S.O. especialmente para servidores. Se caracterizaba porque utilizaba una interfáz gráfica (Anaconda), de fácil uso para aprendices, también por la facilidad de configurar las características de los cortafuegos, a través de una herramineta llamada Lokkit y porque podía codificar la tipografía para el sistema. Rad Hat Linux tenía muchos problemas con la relación de patentes y licencias, ya que no soportaba archivos mp3 ni tampoco el formato NTFS, que se los podía instalar de forma libre.
Por: 17-04-2009 por capesantez |
Categorías asociadas: Paralelo "C", Tema Libre
Con el avance de las multimedias ha habido la necesidad de la creación de sistemas operativos con mayores facilidades para las tecnologias multimedias y no solo para que faciliten la tecnologia multmedia sino tambien dedicados especificamente a estas tecnologias, con los cuales se han visto la necesidad de lanzar los sistemas operativos multimedia entre los cuales tenemos MUSIX, ARANDAS y eAR OS los cuales se detallan a continuación.
Este sistema fue pensado para brindar herramientas de Software Libre para las principales tareas de Músicos y operadores de Audio en equipos informáticos i386 compatibles. Con él puedes: Pero Musix GNU+Linux también puede ser utilizado en muchas otras actividades que poco tienen que ver con la música o el audio, como por ejemplo: diseño gráfico, redes, programación, oficina, etc. Además, soporta los siguientes idiomas: castellano, gallego, catalán, vascuence, inglés portugués y francés. Tambien tiene otras novedades como:
Caracteristicas:
Su centro multimedia avanzado pero muy facil de operar, el eAR Media Center. Este Media center nos permite ver programas de TV, ripear CDs con soporte FLAC, Ver TV Digital y DVDs, escuchar Internet radio, ver photos y escuchar música. Viene con las últimas versiones de los siguientes programas: Wine para correr aplicaciones de Windows, Audacity editor de sonido, Audio CD extractor con soporte para FLAC y MP3, k3B CD y DVD Burner, Kaffeine para DVB-S - DVB-T TV y DVD playback, VLC para Broadband TV, Exaile audio player con soporte para Ipod, Firefox, Thunderbird E-mail/News, Pidgin internet Messenger para cuentas de MSN, F-Spot para gestión de fotografïas, GIMP Image Editor, Firewall y muchas otras cosas más. Tiene un gestor de paquetes de software el cuál puede descargar de la red e instalar más de 1.500 programas. Esta versión soporta la navegación del Media Center, mediante el ratón, touchpad o pantallas sensibles al tacto. También se pueden utilizar los remotos que sirven para el Windows Media Center y que tienen Phillips ID’s. Viene con el kernel de Linux 2.6.24 (Real-Time). El menú More permite agregar más caracterísitcas que nosotros mismos podemos crear a través de los ejemplos que nos dan. El navegador Firefox viene con QuickTime y DIVX movie playback, lo que nos permite ver movies en alta definición. También tienen una distribución Enterprise que es paga y por supuesto, viene con más características, pero esta gratuita está bien para la mayoría de los usuarios. Un serio competidor para Windows Media Center? parece que sí y gratis. Muy buena distribución Por: Cesar Pesantez Por: 17-04-2009 por jlleon |
Categorías asociadas: Tema Libre
Se dice que un proceso está en ejecución cuando tiene asignada la CPU. Si el proceso pertenece al sistema operativo, se dice que el sistema operativo está en ejecución y que puede tomar decisiones que afectan al sistema. Para evitar que los usuarios monopolicen el sistema (deliberadamente o accidentalmente), el sistema operativo tiene mecanismos para arrebatar la CPU al usuario. El sistema operativo gestiona un reloj de interruciones que genera interrupciones cada cierto tiempo. Un proceso mantiene el control de la CPU hasta que la libera voluntariamente (acaba su ejecución, o se bloquea), hasta que el reloj interrumpe o hasta que alguna otra interrupción desvía la atención de la CPU. Si el usuario se encuentra en ejecución y el reloj interrumpe, el sistema operativo entra en ejecución para comprobar, por ejemplo, si ha pasado el cuanto de tiempo del proceso que estaba en ejecución. El reloj de interrupciones asegura que ningún proceso acapare la utilización del procesador. El sistema operativo, apoyándose en él, intenta distribuir el tiempo de CPU entre los distintos procesos ya sean de E/S o de cálculo. Por tanto, ayuda a garantizar tiempos de respuesta para los usuarios interactivos, evitando que el sistema quede bloqueado en un ciclo infinito de algún usuario y permite que los procesos respondan a eventos dependientes de tiempo. Los procesos que deben ejecutarse periódicamente dependen del reloj de interrupciones.
No se debe confundir en ningún caso al reloj de interrupciones con el reloj de la máquina o reloj hardware. Veamos con un pequeño ejemplo como esto es imposible. Como sabemos, todas las tareas de una computadora están sincronizadas por un reloj hardware. La velocidad de un procesador determina la rapidez con la que ejecuta un paso elemental o cambio en el sistema. Por ejemplo, si decimos de una máquina que tienen un microprocesador que va a una frecuencia de 100 MHz eso quiere decir que produce alrededor de 100 millones de pasos elementales o cambios en el sistema en un segundo. Pero una instrucción consume algunos de estos pasos mínimos. Supongamos que en media una instrucción consume alrededor de 100 pasos elementales. No podemos interrumpir al procesador a la misma velocidad a la que opera porque entonces no se podría llegar nunca a ejecutar ninguna instrucción. Parece razonable que se elija una frecuencia menor para el reloj de interrupciones. Por ejemplo, se podría generar una interrupción cada 0′02 segundos (tener una frecuencia de 50 Hz) esto significa que se estaría interrumpiendo al procesador cada dos millones de ciclos. En ese tiempo bajo la suposición de que una instrucción consume 100 pasos se habría ejecutado unas 20000 instrucciones. Esto sí es mucho más razonable. En resumen el reloj de interrupciones tiene una frecuencia inferior al reloj hardware y superior al cuanto de tiempo o intervalos de tiempo en que se quiera controlar en el sistema. Por: 16-04-2009 por riarmijos |
Categorías asociadas: Tema Libre
La Memoria virtual es una tecnica que permite al software usar más memoria principal que la que realmente posee el ordenador. La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria caché (tanto dentro como fuera del CPU), la memoria física (generalmente en forma de RAM, donde la CPU puede escribir y leer directa y razonablemente rápido) y el disco duro que es mucho más lento, pero también más grande y barato. Muchas aplicaciones requieren el acceso a más información (código y datos) que la que se puede mantener en memoria física. Esto es así sobre todo cuando el sistema operativo permite múltiples procesos y aplicaciones ejecutándose simultáneamente. Una solución al problema de necesitar mayor cantidad de memoria de la que se posee consiste en que las aplicaciones mantengan parte de su información en disco, moviéndola a la memoria principal cuando sea necesario. Hay varias formas de hacer esto. Una opción es que la aplicación misma sea responsable de decidir qué información será guardada en cada sitio (segmentación), y de traerla y llevarla. La desventaja de esto, además de la dificultad en el diseño e implementación del programa, es que es muy probable que los intereses sobre la memoria de dos o varios programas generen conflictos entre sí: cada programador podría realizar su diseño teniendo en cuenta que es el único programa ejecutándose en el sistema. La alternativa es usar memoria virtual, donde la combinación entre hardware especial y el sistema operativo hace uso de la memoria principal y la secundaria para hacer parecer que el ordenador tiene mucha más memoria principal (RAM) que la que realmente posee. Este método es invisible a los procesos. La cantidad de memoria máxima que se puede hacer ver que hay tiene que ver con las características del procesador. Por ejemplo, en un sistema de 32 bits, el máximo es 232, lo que da aproximadamente 4000 Megabytes (4 Gigabytes). Todo esto hace el trabajo del programador de aplicaciones mucho más fácil, al poder ignorar completamente la necesidad de mover datos entre los distintos espacios de memoria. Aunque la memoria virtual podría estar implementada por el software del sistema operativo, en la práctica casi siempre se usa una combinación de hardware y software, dado el esfuerzo extra que implicaría para el procesador. Operación básica [editar]Cuando se usa Memoria Virtual, o cuando una dirección es leída o escrita por la CPU, una parte del hardware dentro de la computadora traduce las direcciones de memoria generadas por el software (direcciones virtuales) en:
En el primer caso, la referencia a la memoria es completada, como si la memoria virtual no hubiera estado involucrada: el software accede donde debía y sigue ejecutando normalmente. En el segundo caso, el sistema operativo es invocado para manejar la situación y permitir que el programa siga ejecutando o aborte según sea el caso. La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una máquina. Esta “ilusión” permite que los programas se ejecuten sin tener en cuenta el tamaño exacto de la memoria física. La ilusión de la memoria virtual está soportada por el mecanismo de traducción de memoria, junto con una gran cantidad de almacenamiento rápido en disco duro. Así en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequeña parte de él, está en memoria real y el resto almacenado en el disco, y puede ser referenciado fácilmente. Debido a que sólo la parte de memoria virtual que está almacenada en la memoria principal, es accesible a la CPU, según un programa va ejecutándose, la proximidad de referencias a memoria cambia, necesitando que algunas partes de la memoria virtual se traigan a la memoria principal desde el disco, mientras que otras ya ejecutadas, se pueden volver a depositar en el disco (archivos de paginación). La memoria virtual ha llegado a ser un componente esencial de la mayoría de los sistemas operativos actuales. Y como en un instante dado, en la memoria sólo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la memoria. Es más, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el sistema operativo debe saber cómo gestionar este esquema. La memoria virtual también simplifica la carga del programa para su ejecución llamada reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física. En un estado estable, prácticamente toda la memoria principal estará ocupada con fragmentos de procesos, por lo que el procesador y el S.O tendrán acceso directo a la mayor cantidad de procesos posibles, y cuando el S.O traiga a la memoria un fragmento, deberá expulsar otro. Si expulsa un fragmento justo antes de ser usado, tendrá que traer de nuevo el fragmento de manera casi inmediata. Demasiados intercambios de fragmentos conducen a lo que se conoce como hiperpaginación: donde el procesador consume más tiempo intercambiando fragmentos que ejecutando instrucciones de usuario. Para evitarlo el sistema operativo intenta adivinar, en función de la historia reciente, qué fragmentos se usarán con menor probabilidad en un futuro próximo (véase algoritmos de reemplazo de páginas). Los argumentos anteriores se basan en el principio de cercanía de referencias o principio de localidad que afirma que las referencias a los datos y el programa dentro de un proceso tienden a agruparse. Por lo tanto, es válida la suposición de que, durante cortos períodos de tiempo, se necesitarán sólo unos pocos fragmentos de un proceso. Una manera de confirmar el principio de cercanía es considerar el rendimiento de un proceso en un entorno de memoria virtual. El principio de cercanía sugiere que los esquemas de memoria virtual pueden funcionar. Para que la memoria virtual sea práctica y efectiva, se necesitan dos ingredientes. Primero, tiene que existir un soporte de hardware y, en segundo lugar, el S.O debe incluir un software para gestionar el movimiento de páginas o segmentos entre memoria secundaria y memoria principal. Justo después de obtener la dirección física y antes de consultar el dato en memoria principal se busca en memoria-cache, si esta entre los datos recientemente usados la búsqueda tendrá éxito, pero si falla, la memoria virtual consulta memoria principal , ó, en el peor de los casos se consulta de disco (swapping). |
