martes, 27 de abril de 2010

MEMORIA VIRTUAL


La memoria virtual es un espacio de direcciones cuyo tamaño máximo está determinado por el esquema de direccionamiento del computador (es decir, por la cantidad máxima de bytes posibles de direccionar que depende de la cantidad de bits o dígitos binarios utilizados para expresar una dirección.

El almacenamiento que puede ser directamente accedido por el computador (memoria principal) se denomina memoria real. El espacio de la memoria real es un conjunto de ubicaciones físicas de memoria en el cual las instrucciones y datos de programa deberán ser ubicados para su procesamiento. Los programas se refieren a los datos e instrucciones por la dirección de memoria virtual sin conocer la ubicación física de memoria real.

La memoria virtual se llama así porque representa una imagen de memoria en lugar de una memoria física del procesador. Dado que la memoria virtual no existe como una entidad física de memoria principal, las instrucciones y datos de un programa referenciados por direcciones virtuales deben ser contenidos en alguna ubicación física de memoria para ser ejecutados.

Los contenidos de la memoria virtual están divididos en porciones o secciones (páginas) de tamaño fijo. El programa está completo en la memoria virtual pero en la memoria real sólo están algunas páginas del mismo que van cambiando automáticamente durante la ejecución.

La memoria real también está dividida en secciones (bloques) de igual tamaño que las páginas. Cuando se debe ejecutar un programa, éste es traído a la memoria virtual y las instrucciones y datos del mismo son transferidos entre la memoria virtual y la real de a una sección por vez durante la ejecución del programa. Una sección será llevada a la memoria real sólo cuando es requerida. Por otro lado, una sección que está en la memoria real sólo será reescrita en la memoria virtual cuando la memoria real asignada a esa sección es requerida por otra sección del mismo o de otro programa, siempre que no se esté ejecutando y, además, si ha sido modificada.

En general, se controla la actividad de las secciones de todos los programas en ejecución a fin de mantener, en lo posible, en memoria real a las secciones más activas o usadas, dejando las menos activas en la memoria virtual.

El hardware de traducción de direcciones o la función interna de mapping son los mecanismos por los cuales se pueden traducir las direcciones de memoria virtual en direcciones de memoria real durante la ejecución de las instrucciones.

ADMINISTRACION DE MEMORIA


Se le llama administración de memoria a los diversos métodos y operaciones destinados a obtener la máxima utilidad y provecho de una memoria informática, en pos del buen uso y funcionamiento del sistema en su totalidad.

Una memoria informática consiste en la serie de componentes, dispositivos y medios en una computadora que tienen el fin de retener y almacenar datos informáticos en forma circunstancial o permanente. Toda computadora moderna dispone de unidades de memoria que permiten el correcto funcionamiento del CPU o Unidad Central de Procesamiento.Las hay de distintos tamaños y formatos.

Una memoria puede ser un chip insertado en el interior de la computadora, pero también puede considerarse memoria al uso de unidades externas de almacenamiento como CDs, DVDs o memorias flash.

A menudo una computadora dispone de una memoria principal, pero ésta puede ser complementada con otras unidades de memoria que se agreguen o con memorias movibles que permitan intercambiar datos entre varias computadoras.

La administración de memoria refiere, entonces, a la serie de métodos y procesos que se llevan adelante desde la parte usuaria a los efectos de obtener el mejor rendimiento posible por parte de estas unidades.

Estas operaciones son múltiples y tienen distintos usos y objetivos directos. Por ejemplo, una típica operación es trasladar la información a ser ejecutada dentro y fuera de la memoria principal, procurando maximizar el uso del procesador. Otras operaciones comunes son la protección de los procesos de interferencias de otros, uso compartido de datos, para que varios procesos compartan la misma información y memoria, partición de memoria en varias partes, limpieza de datos en la memoria que son poco utilizados o irrelevantes, formateo de disco y muchas otras.

Todos estos procesos son flexibles y dependen del uso y propósito del ordenador por parte del usuario para optimizar su rendimiento. Con frecuencia, la ejecución de estas operaciones brindará mayor espacio disponible para el almacenamiento de información y proporcionará una mayor agilidad en la gestión de procesos de diversa índole y nivel.

ADMINISTRACION DE PROCESOS

  • Concurrencia: Normalmente en una computadora co-existen n-procesos simultáneamente.
  • Administrador de Procesos: se encarga de seleccionar el proceso en turno a ser ejecutado en el CPU.
  • Objetivo: maximizar uso del CPU bajo un tiempo de respuesta razonable manteniendo un uso justo, seguro y equilibrado del CPU entre los procesos.

DEFINICION DE PROCESOS:

Proceso: programa en ejecución.

  • Aquel cuyas instrucciones son ejecutadas en ese momento por el CPU.

  • Entidad que puede ser asignada y ejecutada por un procesador.
  • Un proceso tiene un espacio de direcciones privado.
  • Los procesos del SO corren en modo kernel (privilegiado o supervisor).
  • El resto de los procesos corren en modo usuario (sin privilegios.



DEFINICION DE PROCESOS:

  • Programa: entidad estática grabada en disco.

  • Proceso: entidad dinámica grabada en memoria, i.e. processes, tasks, jobs.

ESTADOS DE UN PROCESO:

  • Conforme se ejecuta un proceso, cambia de estado.

COMPONENTES Y SERVICIOS DE UN SISTEMA OPERATIVO

LOS SISTEMAS OPERATIVOS SE COMPONEN DE:



GESTIÓN DE PROCESOS

Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de:

• Crear y destruir los procesos.
• Parar y reanudar los procesos.
• Ofrecer mecanismos para que se comuniquen y sincronicen.

La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de prioridad media y después las de baja. Una vez realizada la tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse. y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas más antiguas.

GESTIÓN DE LA MEMORIA PRINCIPAL

La Memoria (informática) es una gran tabla de palabras o bytes que se referencian cada una mediante una dirección única. Este almacén de datos de rápido accesos es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido en los fallos del sistema. El SO es el responsable de:

• Conocer qué partes de la memoria están utilizadas y por quién.
• Decidir qué procesos se cargarán en memoria cuando haya espacio disponible.
• Asignar y reclamar espacio de memoria cuando sea necesario.

GESTIÓN DEL ALMACENAMIENTO SECUNDARIO

Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de:

• Planificar los discos.
• Gestionar el espacio libre.
• Asignar el almacenamiento.

EL SISTEMA DE E/S

Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S.

SISTEMA DE ARCHIVOS

Los archivos son colecciones de información relacionada, definidas por sus creadores. Éstos almacenan programas (en código fuente y objeto) y datos tales como imágenes, textos, información de bases de datos, etc. El SO es responsable de:

• Construir y eliminar archivos y directorios.
• Ofrecer funciones para manipular archivos y directorios.
• Establecer la correspondencia entre archivos y unidades de almacenamiento.
• Realizar copias de seguridad de archivos.

Existen diferentes Sistemas de Archivos, es decir, existen diferentes formas de organizar la información que se almacena en las memorias (normalmente discos) de los ordenadores. Por ejemplo, existen los sistemas de archivos FAT, FAT32, EXT2, NTFS, etc.

Desde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista, sin embargo, existen diferencias muy importantes. Por ejemplo, los sistemas de ficheros FAT32 y NTFS, que se utilizan fundamentalmente en sistemas operativos de Microsoft, tienen una gran diferencia para un usuario que utilice una base de datos con bastante información ya que el tamaño máximo de un fichero con un Sistema de Archivos FAT32 está limitado a 4 gigabytes, sin embargo, en un sistema NTFS el tamaño es considerablemente mayor.

SISTEMAS DE PROTECCIÓN

Mecanismo que controla el acceso de los programas o los usuarios a los recursos del sistema. El SO se encarga de:
• Distinguir entre uso autorizado y no autorizado.
• Especificar los controles de seguridad a realizar.
• Forzar el uso de estos mecanismos de protección.

SISTEMA DE COMUNICACIONES

Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente.

PROGRAMAS DE SISTEMA

Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de las tareas que realizan:

• Manipulación y modificación de archivos.
• Información del estado del sistema.
• Soporte a lenguajes de programación.
• Comunicaciones.

GESTOR DE RECURSOS

Como gestor de recursos, el Sistema Operativo administra:

• La CPU (Unidad Central de Proceso, donde está alojado el microprocesador).
• Los dispositivos de E/S (entrada y salida)
• La memoria principal (o de acceso directo).
• Los discos (o memoria secundaria).
• Los procesos (o programas en ejecución).

SERVICIOS BASICOS DE UN SISTEMA OPERATIVO:

  • Requisitos de usuario: Sistema fácil de usar y de aprender, seguro, rápido y adecuado al uso al que se le quiere destinar.
  • Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.

SUS SERVICIOS PRINCIPALES SON:

  • Proporcionar ya sea una interfaz de línea de comando o una interfaz gráfica al usuario, para que este último se pueda comunicar con la computadora.
  • Interfaz de línea de comando: Se introducen palabras y símbolos desde el teclado de la computadora, ejemplo, el MS-DOS.
  • Interfaz gráfica del Usuario (GUI): Se seleccionan las acciones mediante el uso de un Mouse para pulsar sobre figuras llamadas iconos o seleccionar opciones de los menús.
  • Administrar los dispositivos de hardware en la computadora. El Sistema Operativo sirve de intermediario entre los programas y el hardware.
  • Administrar y mantener los sistemas de archivo de disco. Los SO agrupan la información dentro de compartimientos lógicos para almacenarlos en el disco. Estos grupos de información son llamados archivos. Los archivos pueden contener instrucciones de programas o información creada por el usuario. El SO mantiene una lista de los archivos en un disco, y nos proporciona las herramientas necesarias para organizar y manipular estos archivos.
  • Apoyar a otros programas. Por ejemplo, listar los archivos, grabarlos en el disco, eliminar archivos, revisar espacio disponible, etc.

1. OBJETIVOS PARA LA CREACIÓN DE LOS SISTEMAS OPERATIVOS.

El objetivo fundamental de los sistemas de computación es ejecutar los programas de los usuarios y facilitar la resolución de sus problemas. El hardware se construye con este fin, pero como este no es fácil de utilizar, se desarrollan programas de aplicación que requieren ciertas operaciones comunes.

OTROS OBJETIVOS SON:

* Transformar el complejo hardware de una computadora a una máquina accesible al usuario.
* Lograr el mejor uso posible de los recursos.
* Hacer eficiente el uso del recurso.

TIPOS DE SISTEMAS OPERATIVOS


LOS SISTEMAS OPERATIVOS MÁS CONOCIDOS SON LOS SIGUIENTES:

1) DOS: El famoso DOS, que quiere decir Disk Operating System (sistema operativo de disco), es más conocido por los nombres de PC-DOS y MS-DOS. MS-DOS fue hecho por la compañía de software Microsoft y es en esencia el mismo SO que el PC-DOS.

La razón de su continua popularidad se debe al aplastante volumen de software disponible y a la base instalada de computadoras con procesador Intel.

Cuando Intel liberó el 80286, DOS se hizo tan popular y firme en el mercado que DOS y las aplicaciones DOS representaron la mayoría del mercado de software para PC. En aquel tiempo, la compatibilidad IBM, fue una necesidad para que los productos tuvieran éxito, y la "compatibilidad IBM" significaba computadoras que corrieran DOS tan bien como las computadoras IBM lo hacían.

Aun sigue siendo todavía un sólido contendiente en la guerra de los SO (DOS).


2) Windows 3.1: Microsoft tomo una decisión, hacer un sistema operativo que tuviera una interfaz gráfica amigable para el usuario, y como resultado obtuvo Windows. Este sistema muestra íconos en la pantalla que representan diferentes archivos o programas, a los cuales se puede accesar al darles doble click con el puntero del mouse. Todas las aplicaciones elaboradas para Windows se parecen, por lo que es muy fácil aprender a usar nuevo software una vez aprendido las bases.

3) Windows 95: En 1995, Microsoft introdujo una nueva y mejorada versión del Windows 3.1. Las mejoras de este SO incluyen soporte multitareas y arquitectura de 32 bits, permitiendo así correr mejores aplicaciones para mejorar la eficacia del trabajo.

4) Windows NT: Esta versión de Windows se especializa en las redes y servidores. Con este SO se puede interactuar de forma eficaz entre dos o más computadoras.

5) OS/2: Este SO fue hecho por IBM. Tiene soporte de 32 bits y su interfaz es muy buena. El problema que presenta este sistema operativo es que no se le ha dad el apoyo que se merece en cuanto a aplicaciones se refiere. Es decir, no se han creado muchas aplicaciones que aprovechen las características de el SO, ya que la mayoría del mercado de software ha sido monopolizado por Windows.

6) Mac OS: Las computadoras Macintosh no serían tan populares como lo son si no tuvieran el Mac OS como sistema operativo de planta. Este sistema operativo es tan amigable para el usuario que cualquier persona puede aprender a usarlo en muy poco tiempo. Por otro lado, es muy bueno para organizar archivos y usarlos de manera eficaz. Este fue creado por Apple Computer, Inc.

7) UNIX: El sistema operativo UNIX fue creado por los laboratorios Bell de AT&T en 1969 y es ahora usado como una de las bases para la supercarretera de la información. Unix es un SO multiusuario y multitarea, que corre en diferentes computadoras, desde supercomputadoras, Mainframes, Minicomputadoras, computadoras personales y estaciones de trabajo. Esto quiere decir que muchos usuarios pueden estar usando una misma computadora por medio de terminales o usar muchas de ellas.

NECESIDADES DE LOS SISTEMAS OPERATIVOS




OBJETIVOS PARA LA CREACIÓN DE LOS SISTEMAS OPERATIVOS.

El objetivo fundamental de los sistemas de computación es ejecutar los programas de los usuarios y facilitar la resolución de sus problemas. El hardware se construye con este fin, pero como este no es fácil de utilizar, se desarrollan programas de aplicación que requieren ciertas operaciones comunes.

OTROS OBJETIVOS SON:

  • Transformar el complejo hardware de una computadora a una máquina accesible al usuario.
  • Lograr el mejor uso posible de los recursos.
  • Hacer eficiente el uso del recurso.

FUNCIONES DE LOS SISTEMAS OPERATIVOS.

  • Aceptar todos los trabajos y conservarlos hasta su finalización.
  • Interpretación de comandos: Interpreta los comandos que permiten al usuario comunicarse con el ordenador.
  • Control de recursos: Coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse.
  • Manejo de errores: Gestiona los errores de hardware y la pérdida de datos.
  • Secuencia de tareas: El sistema operativo debe administrar la manera en que se reparten los procesos. Definir el orden. (Quien va primero y quien después).
  • Protección: Evitar que las acciones de un usuario afecten el trabajo que esta realizando otro usuario.
  • Multi acceso: Un usuario se puede conectar a otra máquina sin tener que estar cerca de ella.
  • Contabilidad de recursos: establece el costo que se le cobra a un usuario por utilizar determinados recursos.

SISTEMAS OPERATIVOS

Un sistema Operativo (SO) es en sí mismo un programa de computadora. Y, es un programa muy especial, quizá el más complicado e importante en una computadora. El SO despierta a la computadora y hace que reconozca a la CPU, la memoria, el teclado, el sistema de vídeo y las unidades de disco.



Además, proporciona la facilidad para que los usuarios se comuniquen con la computadora y sirve de plataforma a partir de la cual se corran programas de aplicación.