Apuntes, trabajos, monografías...

Inicio Apuntes Amor Humor Test Envía apuntes Foros

Nueva Búsqueda Nueva búsqueda   Ayuda Ayuda  

Diseño de sistemas


Computación. Software. Sistemas operativos. Dispositivos entrada salida. Periféricos. Unidades de almacenamiento


Temario desarrollado



Ingeniero Técnico en Informática de Sistemas
Sistemas Operativos
 
Diseño de sistemas

Diseño de sistemas

Diseño de sistemas
 



Diseño de Sistemas

 

Pasos a seguir

  • Inventario Preliminar: Relevamiento sin mucho detalle para ver el volumen de la tarea a realizar.

  • Etapa de Análisis: (crítica y detallado de la organización) (Análisis de Sistemas: usando herramientas, encuestas, estadísticas, etc., arman una carpeta que marca la organización actual de la empresa con las modificaciones propuestas para organizar el sistema).

  • Etapa de Diseño: Cuál es la mejor solución informática en función de la carpeta (Ingeniería de Sistemas) (Diagnósticos). Esto nos llevará a una carpeta técnica con instructivo, manual de funciones, etc., para llegar a la última etapa.

  • Programación e Implementación: Se elige el lenguaje y programadores.

  • Puesta en Marcha:

  • Mantenimiento: Se lo mantiene con actualizaciones, con el tiempo, la perfomance del sistema decrece por lo que se requiere más mantenimiento. Cuando este tiempo es muy grande se intenta renovarlo.

Diseño: Varias metodologías y herramientas o software que nos facilitan la tarea, algunas veces orientadas.

  • Metodologías:

  • Lineal

  • Estructurada o Modular.

  • Diseño Orientado a Objetos *

  • Metodologías CASE. *

  • * Se basan en la estructura.

    En todas se llega al concepto fundamental de la informática "archivo".

    En el sistema Lineal, las aplicaciones son definidas o diseñadas en secuencias, como una escala o etapa de un proceso productivo.

    En el sistema Modular, se parte de una idea general de lo que es el sistema y se empieza a seccionar el sistema en estructuras de acuerdo a un criterio pre establecido (Ejemplo: de acuerdo a las funciones de c/área y a su vez subdividirlo). Se llegará a un nivel donde ya no se podrá realizar subdivisiones y se tendrá entonces las aplicaciones.

    • Archivos: Contenedores de los datos que nos suministran información de la organización.

    Hay dos grupos de archivos o ficheros (entidad).

  • Convencionales: Están asociados a una filosofía de lenguaje más artesanal, son los que tienen una relación directa con los programas.

  • Bases de Datos: Se originan del anterior pero tienen una estructura más completa y hacen uso de la tecnología. Un fichero o archivo contiene un conjunto de información relativa a un conjunto de individuos o de objetos.

  • Un archivo puede estar estructurado en varios niveles, puede tener subarchivos o subniveles a su vez estos contener varios registros o artículos y estos a su vez tener rúbricas, campos o atributos que contienen la información agrupada o elemental

    • Registro: Un registro de un archivo contiene todas las informaciones relativas a un mismo individuo o a un mismo objeto perteneciente al fichero. El individuo de un registro es una información que figura en todos los registros del fichero y que permite distinguirlos y buscarlos en el mismo.

    Una grabación es la representación física de un registro sobre el soporte del fichero.

    Operaciones sobre los archivos:

    Determinadas operaciones se refieren a todos los registros de un fichero otras solo conciernen a determinados registros del mismo.

    Las operaciones que conciernen a todos los registros de un archivo son:

    • Creación de un archivo: Con técnicas.

    • Anulación o destrucción de un fichero.

    • Selección o clasificación del fichero: Ordenar todos los artículos (grabaciones) de un archivo siguiendo los valores crecientes y/o decrecientes de uno o varios campos que figuran en los registros de dicho fichero. Los campos utilizados para este fin (ordenamiento) se llaman llaves o claves o argumentos de clasificación, ordenamiento o entresacado.

    Si se utilizan varias claves para ordenar un fichero distinguiremos una clave mayor o principal o primaria, una secundaria, terciaria, etc., hasta llegar a una clave menor que es la última considerada para un ordenamiento.

    El hecho de que la clasificación haya sido realizada siguiendo los valores crecientes o decrecientes de las claves constituye los criterios de ordenamiento del archivo.

    • La reunión o fusión (conceptos distintos):

    Reunión: permite obtener un fichero a partir de otros ficheros (2 o más).

    Ej. :

     

    Fusión: Se realiza cuando se reúnen varios ficheros ordenados siguiendo los mismos criterios.

    La diferencia es que en el primero no hay criterio alguno y en el segundo sí.

    • Estallido de un fichero: esta operación permite obtener varios ficheros a partir de un mismo fichero inicial.

      Las operaciones que conciernen a determinados registros o artículos de un archivo son:

    • Consulta del fichero: Lee un registro del mismo.

    • Agregación de registro: Sumar nuevos registros a un archivo existente, se puede agregar al final del archivo o entre dos registros existentes (inserción o intercalación de registros en un archivo).

    • Supresión de registros: cuando esta eliminación de un registro de un archivo total se dice que es física, cuando las grabaciones siguen estando presentes sobre el soporte después de la supresión se habla de una eliminación lógica (casi siempre es necesaria una depuración para eliminar esos registros).

    • Puesta al día de registros o mantenimiento de un archivo: Distinguimos dos tipos, una en sentido amplio es considerar a la vez agregaciones, supresiones y puestas al día en sentido estricto de los registros de un archivo. La puesta al día en sentido estricto consiste en modificar el contenido de uno o varios registros de un fichero.

    Características de los archivos convencionales (aplicable a archivos de Base de Datos): Físicas o No Físicas.

    • Características No Físicas:

  • Archivos permanentes: Contienen información fundamental o de base para la aplicación considerada, también se dice que tienen esta denominación porque son conservados en forma permanente:

  • De situación: Este contiene la fotografía del contenido de un archivo permanente en una fecha dad.

  • Ficheros archivos: Estos son archivos de situación que se conservan (Back Up).

  • Ficheros históricos: Estos contienen la fotografía de un fichero permanente tomada generalmente a intervalos regulares de tiempos. (Varios archivos de situación que conservo como archivos durante determinado tiempo).

  • Archivos de Movimiento: Contiene información destinadas a crecer o a poner al día, en el sentido amplio ficheros permanentes (información que produzca cambio y modificación de archivos).

  • Archivos de Unión: Contiene informaciones que un programa comunica a otro programa, según los casos estos programas pueden:

  • Pertenecer a una misma unidad funcional (dentro de un subsistema del sistema general pueden existir dos programas donde uno le pasa información a otro).

  • Uno de los programas pertenezca a una unidad funcional de una aplicación y el otro a otra unidad funcional de la misma aplicación.

  • Uno de los programas pertenezca a una aplicación y el otro a otra aplicación.

  • Archivos de maniobra: Es un fichero creado por un programa para almacenar provisionalmente informaciones que utiliza durante su ejecución, antes del final de su ejecución el programa considerado destruye generalmente el o los archivos de maniobra que ha creado y utilizado (Ficheros temporales).

  • Archivos Tablas: Contienen tableros de valores generalmente utilizados para programas de cálculos o decodificación de información sistematizada.

  • Dentro de esta última característica no física, podemos nombrar:

  • Número de versiones de retención: por razones de seguridad es necesario conservar varias versiones del original de un fichero, a estos se las llama versiones de retención del fichero considerado (Back Up).

  • Niveles de elaboración de los ficheros: Cada vez que un fichero cambia de soporte sufre modificaciones de contenido o es ordenado según nuevos criterios, se dice que cambia de nivel de elaboración.

  • La designación o codificación de los ficheros: se aconseja especialmente atribuir un nombre o código a cada fichero de la aplicación de este modo cada archivo será designado siempre por el mismo nombre durante todo el estudio de la aplicación (característica no física).

    • Características Físicas

  • Soporte: La información de un archivo se graba sobre un soporte físico comúnmente llamado el soporte, distinguiremos dos tipos:

  • No Reutilizables: entre los cuales los principales son las tarjetas, el papel con caracteres especiales, cupones con caracteres especiales, sobre el que las grabaciones no pueden borrarse por lo tanto pueden servir una vez.

  • Reutilizables: entre los cuales los principales son todos los soportes magnéticos.

  • Longitud de las grabaciones: el largo de un registro es igual a la suma de las longitudes de las informaciones elementales que contiene, pueden existir registros de longitud fija, variable o longitud indefinida.

  • Organización y acceso: Estas dos nociones se confunden y es muy importante distinguirlas, el modo de organización de un archivo representa su modo de realización física sobre su soporte, en cambio un modo de acceso a las grabaciones de un fichero o archivo representa un tipo de procedimiento de búsqueda de sus grabaciones.

    Organización

    Secuencial

    Directa Relativa

    Indexada

    Acceso

    Secuencial

    Si

    Si

    Si

    Directo

    No

    Si

    Si

    Dinámico

    No

    Si

    Si

     

     

    • Organización Secuencial: Un fichero esta organizado secuencialmente, si durante su creación las grabaciones se escriben unas al lado de otras y durante su organización, no se puede acceder a la n-ava grabación, si las n-1 grabaciones anteriores no han sido leídas, este tipo de organización está disponible en cualquier tipo de soporte.

    • Organización Directa: Relativa: Es cuando se puede acceder directamente a la grabación buscada sin verse obligado a leer otras grabaciones del archivo, con respecto a la organización física, esta se realiza utilizando la posición relativa del registro dentro del archivo, para considerar su acceso posterior, en resumen la disposición de las grabaciones es arbitraria y/u organizada según la necesidad de la aplicación.

    • Organización Indexada: Es en la que las grabaciones de un archivo se disponen secuencialmente sobre el soporte, en este caso el fichero puede utilizarse secuencialmente (accesarse), pero además cada grabación posee una clave que se puede utilizar para buscarla directamente, esta búsqueda se realiza recorriendo una sucesión de tablas índice.

    • Organización Encadenada: En la que cada grabación de un fichero encadenado contiene la dirección de la que sigue (encadenado hacia delante) y/o la dirección de su predecesora (encadenado hacia atrás).

     

    Bases de Datos

    Una Base de Datos es un sistema de archivos de computadoras que usa una organización de archivos particulares para facilitar la actualización rápida de registros aislados, la actualización simultánea de registros relacionados, fácil acceso de los programas de aplicaciones a todos los registros y acceso rápido a todos los datos almacenados que deben unirse para satisfacer un informe o consulta particular de rutina o de propósito especial.

    Un concepto a tener en cuenta cuando hablamos de Bases de Datos es el de los apuntadores, estos establecen uniones entre los registros y son una parte básica de la organización de archivos de todos los sistemas de Base de Datos que veamos, excepto en el sistema relacional. Con este sistema de apuntadores generalmente se coloca un apuntador en el último campo del registro que contiene la dirección de otro registro relacionado con el que se apunta y el apuntador dirige el sistema de cómputo hacia el registro relacional.

    • Organización de archivos de listas invertidas: En esta organización de DB se mantiene un archivo secuencial y además, se establecen varios archivos más pequeños llamadas listas, que se constituyen a partir de la información contenida en los registros del archivo secuencial.

    • Organización de archivos jerárquicos (Estructura árbol): Esta se basa en las relaciones jerárquicas entre los registros, los registros relacionados en la jerarquía se encadenan entre sí con apuntadores, las relaciones jerárquicas entre los registros puede verse como algo parecido a un árbol familiar en cuanto a que el registro de un hijo está relacionado con el registro de un padre en forma definitiva.

    • Organización de archivos de redes: Una estructura de red permite asociaciones más completas entre los registros que la estructura de árbol, en la práctica este tipo de estructura se vuelve muy complicada y la razón de esto era que al usar un excesivo número de apuntadores y relacionarlos a los mismos geométricamente tornaba imposible en algún momento, su manejo a través de un DBMS.

    • Organización de Sistemas de Bases de Datos: Esta estructura de DB difiere de las anteriores en que no existen caminos predefinidos para el acceso de los datos en forma de apuntadores, esta estructura no los usa.

    Las dos características esenciales de una Estructura Relacional son:

  • El archivo está en forma de tabla (similar a un archivo secuencial).

  • Las asociaciones de los registros están hechas con base en los valores en un campo de los registros, No en las direcciones (apuntadores dentro de los registros) por lo tanto no hay caminos predefinidos para la obtención de datos.

  • Cada operación relacional se realiza en una tabla de registros y produce una nueva tabla, la estructura relacional difiere de una estructura secuencial ordinaria en que:

  • Los registros en un sistema relacional pueden estar en cualquier orden, sin embargo colocarlo secuencialmente puede hacer que el procesamiento rutinario en lotes sea más eficiente.

  • Pueden agregarse y borrarse registros de un sistema relacional con un mínimo de trabajo de procesamiento porque no necesitan agregarse, borrarse o reorganizarse ningún apuntador.

  • En un sistema relacional el resultado de cada operación de procesamiento es una nueva tabla de registros, por lo tanto se crean fácilmente nuevos archivos con este propósito.

  • Con respecto

    Archivos Convencionales

    Archivos Base de Datos

    Archivos Lógicos

    Cada aplicación esta separada de las demás aplicaciones y los datos para cada uno se localizan en diferentes archivos lógicos.

    Los registros relacionados a varias aplicaciones son parte del mismo archivo o Base de Datos. En idea es como si la DB consistiera de un conjunto gigante de datos equivalentes a uno o varios archivos convencionales.

    Estructura de Archivos

    Es probable que la estructura sea simple, sobre todo una estructura de archivo plano o lineal, similar a la que se encuentra en una cinta magnética.

    Son complejas y en general responden a alguna de la cuatro estructuras vistas.

    Ligas entre Archivos

    No existen, los datos relacionados no se extraen siguiendo ligas de un registro a otro.

    Si existen para que los datos relacionados puedan accederse simultáneamente, siguiendo las ligas de un registro a los demás. Ej. : cadenas y apuntadores. El paso a través de estas ligas puede estar dirigida por software de sistemas o por programas de aplicaciones.

    Software de Sistemas

    Sólo se usa el sistema operativo y el software de sistemas normales.

    Un sistema de administración de bases de datos (DBMS) se usa para manejar los datos en la base, por ejemplo, para actualizar simultáneamente los registros y asignar espacio de almacenamiento, proporcionar seguridad a los datos.

    El DBMS consiste en varios programas de sistemas y normalmente ocupa tanto espacio de almacenamiento como el sistema operativo. El sistema operativo y el DBMS interactúan en formas complejas.

    Programas de Aplicación

    Los programas de aplicación se escriben para un propósito específico para servir un archivo de datos particular, solo ellos pueden acceder a dichos datos y estos programas no pueden acceder a ningún otro archivo. Una consecuencia es que una gran parte de datos corporativos están encerrados en programas existentes porque deben escribirse programas completamente nuevos para acceder a los datos para otros informes de rutina.

    Da importancia a la independencia de programas de aplicación y datos, los nombres de los datos y otras descripciones de contenido y formato se borran de los programas y se colocan dentro de los archivos de datos o sea que son neutrales con respecto a cualquier programa de aplicación, están disponibles en cualquier momento a todos los programas con derecho a acceder a los mismos.

    Estándares de Archivos y programas

    Por lo general cada archivo separado y sus programas asociados comparten estándares comunes que otro conjunto de archivos programas no comparten, por lo tanto un programa de aplicaciones no solo no puede actualizar varios archivos simultáneamente sino que no puede procesarse contra archivos que no sean aquellos para los que fue escrito.

    Casi todas las características de diseño de archivos deben estar estandarizadas y la sintaxis, definiciones de datos, etc., de los programas de aplicaciones deben mantenerse escrupulosamente.

    * Si el sistema está bien hecho no existen problemas con ninguno de los dos casos.

    Componentes de una DB

  • Archivos de las DB: Estos tienen los elementos de los datos almacenados en uno de los cuatro formatos de organización de archivos de DB estudiados.

  • Sistemas de Administración de DB: Llamado DBMS, es un conjunto de programas de software que administra la DB, controla el acceso a ella, le proporciona seguridad y realiza otras tareas.

  • Sistema de Interfase de Lenguaje Anfitrión: Esta es la parte del DBMS que se comunica con los programas de aplicaciones en lenguaje de alto nivel, como programas en Cobol y Fortran que piden datos de los archivos para que pueda obtenerse la información necesaria.

  • Programas de aplicación: Estos realizan las mismas funciones que en sistemas convencionales pero son independientes de los archivos de datos, y usan definiciones estándares de los mismos, los programas de aplicación usando el lenguaje anfitrión de la interfase lo desarrollan por lo general programadores profesionales. (No se definen los datos).

  • Sistema de Interface de Lenguaje Natural: Este lenguaje de consultas permite la actualización y las consultas en línea de los usuarios que no son muy ilustrados acerca de los sistemas de cómputo (Lenguajes Query, como SQL).

  • Diccionario de datos: Depósito Centralizado de información en forma computarizada acerca de los datos en una DB (el nombre de cada elemento en la DB y una descripción y definición de sus atributos). El diccionario incluye información acerca de la localización de estos datos en los archivos de una DB y muchos también contienen reglas de acceso y de seguridad y privacidad acerca de los mismos.

  • Las terminales de acceso y actualización en línea: Estas pueden encontrarse adyacentes en la computadora o a miles de Km. de distancia, pueden ser terminales inteligentes, no inteligentes o micro computadoras.

  • Sistema Gestor de Interfaces de Salida: Este proporciona información de trabajos de rutina, documentos o informes especiales.

  • Pautas para escoger un buen sistema de DBMS:

  • Lenguaje de consultas: Un DBMS sin este elemento es bueno para el procesamiento de datos pero tiene uso administrativo limitado. Ej. : no se puede recuperar en forma rápida un informe para la empresa.

  • Consideraciones de Seguridad: Algunos DBMS, no tienen provisiones adecuadas de seguridad de los datos. Ej.: algunos no poseen palabras claves para el usuario que permitan el acceso solo a quienes están autorizados y otro tienen sistemas de recuperación de archivos que son extraños y ni siquiera o ni siquiera lo tienen. Luego del relevamiento determinamos los niveles de seguridad.

  • Costo de Procesamiento: El DBMS es igual a otros programas de software en que sus programas deben procesarlos el CPU, lo cual disminuye el tiempo que este último tiene disponible para su tarea principal de procesamiento de datos y no de programas.

  • Apropiado para el tipo de aplicaciones cada DBMS es relativamente mejor para ciertos tipos de actividades de acceso, consultas o preparación de informes. Una DBMS relacional, por ejemplo, es en especial, apropiado para las situaciones en las que grandes archivos nuevos deben elaborarse extrayendo los datos de archivos existentes, así también los otros tipos de estructura de archivos DB vistas tienen aplicaciones en donde se marca su mejor uso.

  • Procesos

    Secuencia lógica de programas orientados a obtener información útil a partir de los datos contenidos en el archivo.

    • Funciones de procesos: cualquiera que sea el método de proceso de datos utilizado se distinguen seis funciones bases.

  • Entrada.

  • Clasificación: Ordenamiento de lo datos, se lo puede hacer en la entrada o en el proceso.

  • Proceso.

  • Archivo: En el proceso de salida.

  • Salida.

  • Control: Después de la salida.

  • Los datos deben ser obtenidos y llevadas a un punto central para ser procesadas bajo un sistema, los datos en este caso denominados "Entrada" son clasificados (ordenados) para hacer que el proceso sea fácil, sencillo y rápido.

    Durante el proceso se ejecutarán todas las operaciones necesarias para convertir los datos en información significativa, luego esta información puede ser archivada en forma temporal o permanente para su tratamiento futuro, cuando la información este completa se ejecutará la operación de salida en la que se preparará un informe que servirá como base para tomar decisiones, la función de control asegurará que los datos estén siendo entrados y procesados en forma efectiva.

    • Condiciones que debe cumplir el proceso de datos: Sin importar como se ejecuten las seis funciones básicas de proceso de datos. El propósito de convertir datos en información significativa debe ser satisfecho si queremos que la información obtenida, como resultado del proceso, sea valiosa para la operación, control y toma de decisiones en una empresa, esta información debe cumplir tres condiciones:

  • Precisa: Los datos de entrada al proceso deben ser correctos ya que de otra forma no podremos obtener información suficientemente exacta para basar nuestras decisiones en ellos, las distintas etapas del proceso deben también ejecutarse correctamente para evitar destruir o alterar los datos de entrada, errores en la clasificación, en el proceso, archivo o control pueden reducir la precisión y por consiguiente el valor de la información producida por el sistema.

  • Oportuna: La información correcta debe estar disponible en el momento oportuno ya que de otra forma carecerá de valor. La gerencia de una empresa debe tomar sus decisiones con suficiente rapidez, como para poder adaptarse a la decisión cambiante de los negocios. Necesita la información obtenida en el sistema de proceso de datos antes de tomar decisiones importantes. Muchas empresas han cometido errores y sufrido severas pérdidas y en ciertos casos hasta llegado a la quiebra por haber tardado demasiado en reaccionar ante los cambios en el mundo de los negocios.

  • Significativa: La información producida por el sistema de proceso de datos debe tener un significado claro para las personas que van a utilizarla, esta es una condición en la que se presentan dos factores importantes:

  • La información debe ser "apropiada y relevante" con respecto a las necesidades del usuario. El gerente de venta de un negocio esta interesado en el análisis de ventas, niveles de inventario y margen de ganancias, pero no le interesa la información sobre salarios o cuentas a pagar. Lo que le interesa al gerente, al dueño o al funcionario jerárquico de una organización o empresa es la información denominada "para la toma de decisiones" que debe ser concisa y breve y no es la misma que necesita un capataz o jefes de niveles intermedios o bajas de la misma organización, la cual puede ser más analítica y detallada que la anterior, a esta información se la denomina "operativa".

  • Para obtener información significativa, se requieren informes comprensibles, el formato y contenido de los informes deben permitir una fácil lectura, en los casos en que solamente se requiere un resumen no es conveniente proveer un informe detallado porque podría dar lugar a confusión, lo que se produce y la forma en que se presenta debe reunir la condición de significativa.

    • Existen tres criterio para dividir al sistema en unidades funcionales:

  • Por funciones de gestión.

  • Por funciones de tratamiento: Dentro de cada unidad funcional se hace un tratamiento de la información controlando, clasificando, ordenando, actualizando e imprimiendo.

  • Por tiempos de ejecución: En que momento se van a ejecutar estas unidades de programación en el sistema.

  •  

    Modos de procesamiento de ejecución de la información

     

    • Lotes: A un conjunto de transacciones se le aplica de una vez las funciones de tratamiento de la información (BATCH). Luego de un determinado tiempo someto toda la información a la actualización.

    • Transaccional: A cada transacción se le aplica en forma inmediata las funciones de tratamiento de la información.

    • Diferido: En algún momento posterior al momento en que se produce la información realizo la ejecución de un proceso.

    • Tiempo Real: Cuando el tratamiento y el proceso de una transacción se realiza en forma inmediata (Proceso Interactivo).

    Concepción o Diseño de un documento

    Los documentos de salida son los principales reportes de los resultados obtenidos por medio de una aplicación informática, Existen dos tipos:

  • Individual: Solo objeto o persona (recibo de sueldo, remito, factura).

  • Colectivo: Que se refiere a un conjunto de objetos o personas (balance, diarios de operaciones, etc.).

  • La presentación de cualquier documento de salida debe ser agradable y práctica para los usuarios y práctico para la programación, el conjunto debe ser armonioso, no sólo recargado, debe tener una buena elección en el tamaño de los caracteres a utilizar, buen color, buenos trazos, etc.

    ¿Qué se puede pre imprimir?

    La pre impresión tiene sus ventajas, ahorro de tiempo de máquina, mejor presentación por múltiples razones, presentación de dibujos, etc.

    Los listados a utilizar en el sistema deben codificarse, es decir se los debe identificar en el diseño relacionándolo con el programa o unidad de programación que lo generará, esta codificación se recomienda indicarla en el título o al pie del documento, respecto a la codificación a utilizar podría ser la misma sugerida en el tema archivos pero modificando el primer carácter por algo que nos indique que se trata de un listado.

    Partes de un documento

  • Encabezamiento: Razón Social, Dirección, etc. del organismo para el cual ha sido creado el documento, título del documento, fecha de creación, contador de página, código de identificación de documento.

  • Cuerpo o detalle: Se incluirán las informaciones impresas, de ser posible estas deben ser agrupadas en apartados.

  • Base: Información y reseñas que generalmente no se imprimen por el ordenador, ejemplo: significado de los códigos que se utilizan en el documento o las ayudas), cuadros reservados para firmas o intervenciones de personas de la organización del documento.

  • Reverso: Se puede indicarlas precisiones destinadas a facilitar la comprensión del documento de salida.

  • Problemas de Costo: Cómo reducirlos

  • Utilizar pre impresión.

  • Elegir con esmero el formato estándar de documentos de salida.

  • Elegir con esmero la resistencia y calidad del papel.

  • Concebir un documento de salida de modo que minimice el tiempo de su impresión.

  • Vigilar que solo se impriman los documentos de salida realmente necesarios para los usuarios.

  •  

    Método de concepción de un documento de salida

  • Elaborar la lista de todas las informaciones y ... del documento y preguntarse si son realmente necesarias que figuren.

  • Agrupar estas informaciones por centro de interés, lo que se dará lugar a la creación de un apartado

  • Seleccionar las informaciones que deben ir precedidas de una etiqueta o subtítulo.

  • Seleccionar las etiquetas, logos, siglas, etc. que deben ser pre impresas.

  • Formular etiquetas que deben preceder a algunos datos.

  • Estudiar la codificación de las informaciones.

  • Diseñar la presentación general, realizándola en una hoja cuadriculada con tantas casillas por líneas como lo permita la impresora.

  • Verificar el documento realizado, imprimiendo mediante un programa de edición, todos los casos posibles del documento y solicitar opiniones de los futuros usuarios.

  • Seleccionar la fuerza y calidad del papel a utilizar.

  • Encargar el número óptima de documentos a la imprenta.

  • Con respecto a la información a presentar por pantalla

    Valen las mismas consideraciones que para la de los documentos impresos, considerando las limitaciones físicas que existen. Se debe considerar de acuerdo al hardware y software existente los atributos de presentación a efecto de mejorar la visualización de la información a exhibir.

    Definición del diagrama de interrelación entre pantallas (Concatenación de pantallas)

    Muestra con claridad las vinculaciones entre las pantallas y a través de que condiciones se comunican, para obtener este diagrama debe definirse la lista de funciones que incluyen el conjunto de funciones principales que resolverá el programa, a su vez de cada función, se debe definir funciones secundarias, terciarias, etc., efectuando aperturas sucesivas hasta obtener funciones que no pueden subdividirse.

    Enfoque Orientado a Objetos

    Significa que el software se organiza como una colección de objetos discretos que contienen tanto estructura de datos como también un comportamiento , las características del enfoque orientado a objetos son:

  • Identidad: Los datos están cuantificados en entidades discretas y distinguibles denominadas objetos, estos pueden ser tangibles (un archivo en un sistema de archivos) o intangibles (política de planificación en un SO multiproceso).

  • Clasificación: Los objetos con la misma estructura de datos (campos o atributos) y comportamiento (operaciones sobre ellos) se aglutinan para formar una misma clase. Una clase es una abstracción que describe propiedades importantes para una aplicación y que ignora el resto. Se dice que cada objeto es una instancia de su clase.

  • Polimosrfismo: Significa que una misma operación puede comportarse de modos distintos en distintas clases, una operación es una acción o transformación que se aplica a un objeto.

  • Herencia: Compartir atributos y operaciones entre clases tomando como base una relación jerárquica, es decir, se puede definir una clse que después producirá sub clases, sabiendo que todas las sub clases heredan todas y cada una de las propiedades de su super clase y le agrega además sus propiedades exclusivas.

  • Modelos: En la técnica de modelado de objetos se emplean tres clases de modelos para describir el sistema.

  • Modelo de objetos: Gráfico cuyos nodos son clases de objetos y cuyos arcos son relaciones entre clases.

  • Modelo Dinámico: Gráfico cuyos nodos son estados y cuyos arcos son transiciones entre estados causadas por proceso.

  • Modelo Funcional: Son gráficos cuyos nodos son procesos y cuyos arcos son flujos de datos.

  • ¿Qué representa cada uno de los modelos?: El modelo de objetos representa los aspectos estáticos estructurales del sistema. El modlo dinámico representa los aspectos temporales del comportamiento del sistema y el modelo funcional representa los aspectos transformacionales de función del sistema.

    El procedimiento típico de software contiene estos tres aspectos, utiliza estructura de datos (Modelos de objetos), secuencia de operaciones en el tiempo (Modelo dinámico) y transforma valores (Modelo funcional).

    Relaciones entre modelos: Cada modelo describe aspectos del sistema pero contiene referencias a los demás modelos. El modelo de objetos describe la estructura de datos sobre el cual operan los modelos dinámico y funcional. Las operaciones del modelo de objetos se corresponden con sucesos en el modelo dinámico y con funciones en el model funcional.

     

     (Para ver el documento completo haga lick en el menu superior "Bajar Trabajo")

    Trabajo enviado por:
    Carlos A. Ijelchuk
    Resumen de la materia homónima dictada en el año 1997 en la Universidad Tecnológica Nacional

    EPROMs

    Diseño de sistemas

     

    ROM-EPROM

     

    INTRODUCCIÓN:

     

    Diseño de la memoria Principal: Categorías de RAM y ROM

    Diseño de sistemas

     

    La memoria principal se divide en RAM (read access memory) y ROM (read only memory).

    La RAM de semiconductores, construida a partir de transistores bipolares, son memorias estáticas, ya que retienen la información durante largos períodos de tiempo.

    La RAM de semiconductores diseñadas empleando transistores MOS (metal óxido semiconductor- tecnología usada para la fabricación de circuitos integrados a gran escala). Estos transistores van descargándose lentamente, de modo que un 1 puede acabar transformándose en un 0 si no se adoptan ciertas precauciones. Estas se denominan dinámicas.

    La ROM( Read Only Memory), o Memoria de solo lectura, contiene programas o datos construidos permanentemente por el fabricante, en la memoria del procesador. Son memorias no volátiles.

    Algunas ROM se fabrican en función de los requisitos del cliente. Es el fabricante el que programa la ROM grabando en ella su contenido. Debido al proceso que se emplea para grabar los datos en este tipo de ROM se las denomina a veces memorias programadas por máscara (mask programmable ROM).

    Algunas veces el usuario puede necesitar programar las ROM por su cuenta. Así, en una ROM con conexión por fusible, programar la ROM supone únicamente fundir algunos de estos fusibles mediante impulsos eléctricos. Este tipo de memoria se denomina memorias PROM (programable ROM).

    En la PROM ( Programmable ROM), o memoria programable de sólo lectura los contenidos pueden ser leídos 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 "programación", ya sea por el fabricante, o por especialistas técnicos de programación del usuario. Las operaciones muy importantes o largas que se habían estado ejecutando mediante programas, se pueden convertir en microprogramas y grabarse permanentemente en una pastilla de memoria programable sólo de lectura. Una vez que están en forma de circuitos electrónicos, estas tareas se pueden realizar casi siempre en una fracción del tiempo que requerían 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 reprogramable.

    Con la EPROM (Erasable Programmable ROM) , cualquier porción puede borrarse exponiéndola a una luz ultravioleta y luego reprogramarse. La EEPROM o EAROM (Electrically Alterable ROM) es una memoria de solo lectura reprogramable eléctricamente sin necesidad de extraerlas de la tarjeta del circuito. Estas memorias suelen denominarse RMM (read mostly memories), memorias de casi-siempre lectura, ya que no suelen modificarse casi nunca, pues los tiempos de escritura son significativamente mayores que los de lectura. Son adecuadas para situaciones en las que las operaciones de escritura existen, pero son muchísimo menos frecuentes que las de lectura.

     

    EL BIOS

     

    El Firmware de la PC

    El sistema operativo actúa como interfase entre los programas en ejecución y los recursos de hardware de la PC, proveyendo además su administración.

    No obstante, existe un escalón más bajo aun de software, que permite al operativo y a programas entenderse con los dispositivos de hardware. Se trata del BIOS (Basic Input Output System).

    El BIOS consiste, hablando mas propiamente, en firmware, es decir, software grabado en una memoria no volátil y de solo lectura (ROM). Habitualmente se trata de una PROM o EPROM, en la que se ha grabado el software necesario para garantizar el arranque (start up) del equipo, la carga del operativo y la provisión de "servicios" para la operación de periféricos.

    Desde el punto de vista físico, el BIOS reside en una o dos PROMs, normalmente identificadas con el copyright y la versión del Firmware contenido. Considerado como memoria (de sólo lectura), el BIOS se encuentra mapeado en el segmento F000h. Es posible programar algunos equipos para que copien el código de la ROM a algún área de RAM, y ejecuten el BIOS desde allí, con la ventaja de un mejor tiempo de acceso.

     

    El reemplazo del BIOS

    El reemplazo del BIOS, sea por mejoramiento (upgrade), o para sustituir una versión defectuosa requiere un poco mas de paciencia y cuidado.

    El primer paso es obtener el BIOS adecuado, teniendo en cuenta en la elección las características del equipo y la proveniencia y confiabilidad del Firmware. En definitiva, el BIOS a instalar dependerá del motherboard.

    Como hasta no haber probado con el equipo en funcionamiento no se tendrá seguridad de que la sustitución fue exitosa, se recomienda manejar con cuidado el chip original.

    La EPROM de BIOS se reconoce fácilmente en el motherboard por estar etiquetada por el fabricante, aunque se debe ser precavido pues el equipo puede contener dispositivos parecidos, como EPROM de controlador de teclado.

    Una vez identificado el o los chips, se puede proceder al cambio. Cuando son dos, están identificados como HIGH o EVEN y LOW u ODD. Esto se refiere a que los bytes de dirección par e impar se almacenan en chips separados. Además debe siempre observarse la muesca de orientación.

     

    MEMORIAS EPROM

    Las EPROM, o Memorias sólo de Lectura Reprogramables, se programan mediante impulsos eléctricos y su contenido se borra exponiéndolas 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.

    Diseño de sistemas

    - Vista de la Ventanita de una EPROM -

    Las EPROM se programan insertando el chip en un programador de EPROM y activando cada una de las direcciones del chip, a la vez que se aplican tensiones de -25 a -40 V a los pines adecuados. Los tiempos medios de borrado de una EPROM, por exposición a la luz ultravioleta, oscilan entre 10 y 30 minutos.

    Con el advenimiento de las nuevas tecnologías para la fabricación de circuitos integrados, se pueden emplear métodos eléctricos de borrado. Estas ROM pueden ser borradas sin necesidad de extraerlas de la tarjeta del circuito. Además de EAPROM suelen ser denominadas RMM (Read Mostly Memories), memorias de casi-siempre lectura, ya que no suelen modificarse casi nunca, pues los tiempos de escritura son significativamente mayores que los de lectura.

    Las memorias de sólo lectura presentan un esquema de direccionamiento similar al de las memorias RAM. El microprocesador no puede cambiar el contenido de la memoria ROM.

    Nótese que las líneas de datos (como se ve en el gráfico a continuación) tienen un único sentido, orientado hacia el microprocesador. Esto significa que la información sólo puede salir de la memoria hacia el microprocesador. La ROM requerida se selecciona conectando a las líneas de selección de circuito las señales apropiadas provenientes de la barra de direcciones, y la dirección específica de memoria mediante las líneas A0-A9 de la barra de direcciones.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Entre las aplicaciones generales que involucran a las EPROM debemos destacar las de manejo de sistemas microcontrolados. Todo sistema microcontrolado y/o microprocesado (se trate de una computadora personal o de una máquina expendedora de boletos para el autotransporte...) nos encontraremos con cierta cantidad de memoria programable por el usuario (la RAM), usualmente en la forma de dispositivos semiconductores contenidos en un circuito integrado (no olvidemos que un relay biestable o un flip-flop también son medios de almacenamiento de información).

    Estos dispositivos semiconductores integrados están generalmente construidos en tecnología MOS (Metal-Oxide Semiconductor, Semiconductor de Oxido Metálico) o -más recientemente- CMOS (Complementary Metal-Oxide Semiconducto o Semiconductor de Oxido Metálico Complementario). Lamentablemente, estos dispositivos RAM adolecen de un ligero inconveniente, que es, como ya se ha comentado, su volatibilidad.

    Dado que cualquier sistema microprocesado requiere de al menos un mínimo de memoria no volátil donde almacenar ya sea un sistema operativo, un programa de aplicación, un lenguaje intérprete, o una simple rutina de "upload", es necesario utilizar un dispositivo que preserve su información de manera al menos semi-permanente. Y aquí es donde comienzan a brillar las EPROMs.

     

    Funcionamiento de una EPROM

    Recordemos que son memorias de acceso aleatorio, generalmente leídas y eventualmente borradas y reescritas.

    Una vez grabada una EPROM con la información pertinente, por medio de un dispositivo especial que se explicará luego, la misma es instalada en el sistema correspondiente donde efectivamente será utilizada como dispositivo de lectura solamente. Eventualmente, ante la necesidad de realizar alguna modificación en la información contenida o bien para ser utilizada en otra aplicación, la EPROM es retirada del sistema, borrada mediante la exposición a luz ultravioleta con una longitud de onda de 2537 Angstroms (unidad de longitud por la cual 1 A = 10-10 m), programada con los nuevos datos, y vuelta a instalar para volver a comportarse como una memoria de lectura solamente. Por esa exposición para su borrado es que es encapsulada con una ventana transparente de cuarzo sobre la pastilla o "die" de la EPROM.

    Es atinente aclarar que una EPROM no puede ser borrada parcial o selectivamente; de ahí que por más pequeña que fuese la eventual modificación a realizar en su contenido, inevitablemente se deberá borrar y reprogramar en su totalidad.

    Las EPROMs almacenan bits de datos en celdas formadas a partir de transistores FAMOS (Floating Gate Avalanche-Injection Metal-Oxide Semiconductor) de cargas almacenadas.

    Estos transistores son similares a los transistores de efecto de campo (FETs) canal-P, pero tienen dos compuertas. La compuerta interior o flotante esta completamente rodeada por una capa aislante de dióxido de silicio; la compuerta superior o compuerta de control es la efectivamente conectada a la circuitería externa.

    La cantidad de carga eléctrica almacenada sobre la compuerta flotante determina que el bit de la celda contenga un 1 o un 0; las celdas cargadas son leídas como un 0, mientras que las que no lo están son leídas como un 1. Tal como las EPROMs salen de la fábrica, todas las celdas se encuentran descargadas, por lo cual el bit asociado es un 1; de ahí que una EPROM virgen presente el valor hexadecimal FF en todas sus direcciones.

    Cuando un dado bit de una celda debe ser cambiado o programado de un 1 a un 0, se hace pasar una corriente a través 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 tensión sobre la compuerta superior o de control del transistor, creándose de esta manera un campo eléctrico fuerte dentro de las capas del material semiconductor.

    Ante la presencia de este campo eléctrico fuerte, algunos de los electrones que pasan el canal fuente-compuerta ganan suficiente energía como para formar un túnel y atravesar la capa aislante que normalmente aísla 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.

    Tal como mencionáramos 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 energía electromagnética) de energía relativamente alta.

    Los fotones incidentes excitan los electrones(partícula elemental, electrónicamente negativa, de los átomos) almacenados en la compuerta flotante hacia un estado de energía lo suficientemente alta como para que los mismo puedan formar un túnel a través de la capa aislante y "escapar" de la compuerta flotante, lo que descarga la misma y retorna la celda al estado 1.

     

    La familia 2700

    Los dispositivos EPROM de la familia 2700 contienen celdas de almacenamiento de bits configuradas como bytes direccionables individualmente. Habitualmente esta organización interna suele denominarse como 2K x 8 para el caso de una 2716, 8k x 8 para una 2764, etc.

     

     

     

     

     

     

     

     

     

     

     

     

     

    En la figura anterior, podemos observar a modo de ejemplo el diagrama de bloques de una EPROM del tipo 2764. Allí podemos observar la matriz formada por celdas de almacenamiento como la anteriormente descripta, rodeada de la lógica asociada de decodificación y selección, buffers de salida, etc.

    Por razones de compatibilidad (tanto con dispositivos anteriores como con dispositivos futuros), la gran mayoría de las EPROMs se ajustan a distribuciones de terminales o "pin-outs" estándar. Para el caso mas usual, que es el encapsulado DIP (Dual In-Line Package) de 28 pines, el estándar utilizado es el JEDEC-28.

    En cuanto a la programación de estos dispositivos (si bien conceptualmente obedece siempre a la metodología descripta anteriormente) en realidad existe una relativamente alta variedad de implementaciones prácticas.

    Si bien en la actualidad parece haberse uniformado razonablemente, las tensiones de programación varían en función tanto del dispositivo, como del fabricante; así nos encontramos con tensiones de programación (Vpp) de 12,5V, 13V, 21V y 25V.

    Lo mismo sucede con otros parámetros importantes que intervienen en el proceso de grabación de un EPROM, como es el caso de la duración de dicho pulso de programación y los niveles lógicos que determinan distintos modos de operación.

    PROGRAMADOR/ EMULADOR DE FLASH EPROM

    La manera más cómoda, aunque también la más costosa de desarrollar circuitos microcontroladores consiste en simular la parte principal del controlador con la ayuda de un emulador. Una de opciones más baratas consiste en emplear un programa monitor junto con un emulador de memorias EPROM. Desafortunadamente, la mayoría de los programas monitores consumen algunos de los recursos del controlador. Esta seria desventaja se resuelve utilizando el emulador de memorias EPROM, que se comporta básicamente igual que una memoria RAM de un doble puerto: a un lado se encuentra la interfase, como una memoria EPROM, mientras que al otro lado proporciona las señales necesarias para introducir el flujo de datos a la memoria RAM.

    Cuando compañías como AMD desarrollaron las memorias EPROM "Flash" con una tensión de programación de 5V y un ciclo de vida que permitía programar la memoria hasta 100.000 veces, se abrieron las puertas a un nuevo modelo de emulador de memorias EPROM. El diseño que se presenta no solo actúa como un emulador con una enorme capacidad de almacenamiento, sino que también funciona como un programador de memorias EPROM "Flash", ahorrándose comprar un sistema exclusivamente dedicado a programar.

    Cuando se termine de trabajar con el emulador durante la fase del diseño, se dispondrá en la memoria EPROM "Flash" del código definitivo, que se sacará del emulador y se introducirá en el circuito que se vaya a utilizar en la aplicación. Como los precios de las memorias EPROM "Flash" no son mucho mayores que los de las memorias EPROM convencionales, la ventaja adicional que se ha descrito es sin costo.

     

    Qué es una memoria EPROM "Flash"

    Aparte de que las memorias EPROM "Flash" tienen una entrada de escritura, mientras están 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 programación de las memorias EPROM convencionales se necesita una tensión bien definida durante cierto intervalo de tiempo, y para borrar el componente hay que exponerlo a luz ultravioleta, en las E.Flash ambos procesos están 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.

    El comando se transfiere a la memoria EPROM "Flash" mediante una serie de operaciones de escritura, como se indica en la tabla 1. Los dos primeros comandos "Lectura/Reset" preparan la memoria para operaciones de lectura. El comando "Autoselección" permite leer el código del fabricante y el tipo de dispositivo. El comando "Byte" carga el programa dentro de la memoria EPROM, mientras que "Borrar Chip" actúa durante el proceso de borrado, que no dura más de un minuto. Desde el punto de vista lógico podemos afirmar que la memoria EPROM "Flash" está dividida en sectores que se pueden borrar individualmente con la ayuda del comando "Borrar Sector".

    Las memorias EPROM "Flash" disponen de otro mecanismo, basado en la división en sectores, que las protege de acciones de escritura o lectura no deseadas. Cuando un sector está protegido de esta forma no se puede realizar una operación de lectura o sobre escritura con una tensión de 5V. Este hecho es muy importante y se debe tener siempre presente cuando se utilicen estos dispositivos. Solamente se puede eliminar esta protección con la ayuda de un programador especial.

    Durante el proceso de programación o borrado se puede leer, mediante un comando de acceso en "lectura", el estado de la memoria EPROM "Flash" en la misma posición que el byte de programado o borrado. Mientras se borra un sector se puede leer cualquier dirección que pertenezca al sector.

    Durante la secuencia de programación, el bit de orden superior (DQ7) del byte que se está leyendo toma el valor negado del bit que se esté programando, mientras que DQ5 se mantiene a 0. Cuando el ciclo de programación termina correctamente se deshace esta inversión y los bits 5 y 7 toman los valores planeados.

    Como durante una secuencia de borrado parece que todas las posiciones de la memoria están programadas con el valor FFH, el bit 7 permanece invariablemente a cero durante este proceso. Cuando alguno de los dos procesos excede cierto límite de tiempo, que está determinado internamente, se produce un "error de temporización", entonces el bit 5 toma el valor 1 mientras que el bit 7 se mantiene invertido. La función que implementa el bit 6 está condicionada por el requisito de compatibilidad. El bit 3 se utiliza cuando se borran simultáneamente varios sectores. Sin embargo, el emulador descrito no tiene estas características.

    Diseño de sistemas

     

    Las Direcciones y los Datos

    En la figura 1 se muestra e diagrama de bloques del emulador/programador. Detrás de la interfase paralelo con el PC encontramos dos registros de direcciones, un registro de datos y un multiplexor que reduce a dos el número de líneas de datos que van hacia el PC. En el centro del circuito se encuentra la memoria EPROM.

    Mientras que el programa la memoria el resto de los bloques permanecen inactivos. En el modo emulador se lee la memoria mediante el circuito que realiza la aplicación, a través del "buffer". El circuito está conectado al bloque llamado "Sonda del emulador".

    Debido a las características propias de este circuito sería muy difícil realizar la comunicación con el PC mediante un puerto Centronics, se necesitaría un programa y unos circuitos extremadamente complejos. Por este motivo, aunque el programador/emulador utiliza el puerto paralelo del PC, no se utiliza el protocolo estándar Centronics.

    Además de ocho líneas de datos, el puerto paralelo proporciona cuatro líneas de control hacia el emulador y cinco líneas de estado que pueden emplear los comandos de escritura y lectura.

    Se utilizan tres líneas de estado para generar las señales de reloj de los registros IC2, IC3 e IC4, que controlan un total de 19 líneas de direcciones (desde A0 hasta A18), una línea para la señal OE, y cuatro líneas para seleccionar una señal CE (desde CE1 hasta CE4). La señal WE se genera a partir de las cuatro líneas de control. Como la memoria EPROM solamente copia el byte sobre el bus de datos durante el flanco de la señal WE, tanto los registros como la memoria EPROM comparten las 8 líneas de datos disponibles en la interfase paralelo. Durante las operaciones de lectura (OE = nivel bajo), el integrado IC5 desconecta la memoria EPROM de las líneas de datos. Esto se consigue invirtiendo la señal OE (en IC1c) y aplicándola a la señal de habilitación para IC5.

    Sólo hay cinco líneas disponibles para leer un byte, de manera que se necesitan dos multiplexores 4-a-1 para reducir las 8 líneas de datos a dos. Por este motivo el PC tiene que acceder cuatro veces a estas líneas para leer completamente cada byte. Como los registros únicamente copian los datos sobre las líneas de datos durante el flanco de subida de las señales CLK1, CLK2, y CLK3, se pueden usar éstas señales para controlar los multiplexores. Sin embargo, respecto al programa de control conviene tener en cuenta que cada vez que cambia el estado de las líneas de control solamente está disponible ese byte específico, el cual pertenece al registro cuya línea CLK ha cambiado de nivel bajo a nivel alto. La disposición de las líneas de datos del multiplexor es tal que el bit 7 y el bit 5 se seleccionan automáticamente después de la última operación de escritura de una secuencia de comandos. La distribución de la señal a través de los multiplexores permite que el circuito que lee el byte completo sea muy sencillo.

    El cambio entre el modo emulador y el modo programador se realiza de la misma forma. Cuando una de las tres líneas de control toma un nivel alto, los tres inversores con colector abierto, configurados en OR-cableada (IC1 d, IC1 e, IC1 f), aseguran que actúe la señal "Carga" (toma un nivel bajo). Esto permite habilitar las salidas de los registros IC2, IC3 e IC4, al igual que el integrado IC5, de tal manera que tanto las líneas de direcciones como las líneas de datos del circuito maestro se mantienen separadas de las correspondientes líneas de memoria EPROM. m

    Al mismo tiempo se prepara la señal "Reset", lo que permite que el pin RST (en el transistor FET T1) tome un nivel bajo, y el pin llamado RST+ tome un nivel alto. Cuando se aplica una señal "Reset" (activa el nivel alto) se puede aplicar una tensión de +5V (con el puente cerrado), o "robar" el nivel correspondiente del circuito (a través del pin RST+). La última opción es especialmente interesante cuando se usa un miembro de la familia de microcontroladores 80C51, porque permite conectar en paralelo el condensador que suele acompañar a la línea "Reset". Se podría seguir enunciando el modo de funcionamiento del programador/emulador, pero deberíamos insertarnos aún más en la conceptualización electrónica, por lo que consideramos que las nociones vertidas son suficientes para realizar nuestro estudio pertinente.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Figura 1. Diagrama de Bloques del programador/emulador de memorias

    EPROM , y distintas posiciones del bloque de interruptores.

     

    Programando las memorias EPROM "Flash"

    Cuando se utiliza el emulador como programador, S3 permite quitar la memoria EPROM sin ningún riesgo, y sin tener que desconectar el programador de PC o de la fuente de alimentación. El interruptor simplemente deshabilita la tensión de alimentación de 5V. También hace que la señal /WE quede conectada a 0 V y desconecta la señal "Carga", de tal manera que tanto las salidas del registro como las salidas del "driver" del bus queden deshabilitadas. Entonces el diodo D3 y el inversor bloquean las señales de los "driver" de las líneas de dirección del circuito de aplicación. Todas las líneas quedan conectadas a 0V a través de los conjuntos de resistencias (R7, R8, R9 y R10). Cuando se apaga el diodo LED D1 se puede retirar la memoria EPROM.

    El interruptor S1 permite utilizar el emulador de manera autónoma. Cuando se desconecta el emulador del PC las resistencias del "pull-up" (R1 y R2) fuerzan que todas las líneas tomen un nivel alto. En una situación normal esto provocaría que el circuito comenzase a trabajar en modo programador, pero como la señal "Carga" está bloqueada por el interruptor S1 y la resistencia de "pull-up" R2, el circuito permanece en modo emulador.

     

    Uso Práctico del Programador/Emulador de EPROM "Flash"

    Es compatible con las memorias EPROM "Flash" 29F040 y 29F010 de AMD. Como ambas tienen la misma secuencia de comandos no es necesario hacer ninguna distinción. Unicamente puede producirse algún problema si se intenta cargar un fichero con un tamaño mayor que la capacidad de almacenamiento de la memoria. El programa no detecta esta situación.

    Se pueden conectar hasta cuatro emuladores a un único puerto paralelo. Como la mayoría de los PC s disponen de tres puertos paralelos (LPT1, LPT2 y LPT3) podremos controlar hasta 12 emuladores. Las resistencias R1 y R2 sólo se conectan al último emulador. A través del interruptor DIP S2 se selecciona uno de los emuladores que esté conectado a un puerto particular. Si la memoria EPROM que se va a emular tiene un espacio de direcciones menor que una memoria EPROM "Flash", entonces las líneas de direcciones se pueden desactivar mediante unos puentes o el interruptor DIP S4. Cuando tanto el interruptor como el puente asociado están abiertos, la línea de direcciones correspondiente se mantiene a nivel bajo gracias a una resistencia "pull-down". Se comprobará que existen memorias EPROM que esperan que en los pines que no se utilizan haya un nivel alto. Si cuando se trabaja con una de esas memorias la línea de direcciones no está adecuadamente desconectada, el emulador no funcionará correctamente. Por este motivo se recomienda comprobar siempre que todos los interruptores y todos los puentes están en la posición correcta, y que todas las líneas de direcciones que no se utilizan están desconectadas.

    Otro error que se puede cometer facilmente consiste en intentar cargar ficheros hexadecimales. El programa únicamente admite ficheros binarios.

     

    Algunos Programas para el emulador /programador de EPROM "Flash"

    Parámetros comunes:

    /L<puerto><ce> donde <puerto> hace referencia a LPT1, LPT2 o LPT3 , y <ce> hace referencia al emulador CE1, o al CE2, CE3 o CE4.

    Por ejemplo, se conecta el emulador 1 al LPT2, entonces los parámetros serán /L21.

    Ejemplos de Programas para el programador de memorias EPROM "Flash":

    ERAFLASH /L<puerto><ce>: borra la memoria EPROM que se encuentre en el emulador.

    PRGFLASH /L<puerto><ce><fich.binario>: programa la memoria EPROM "Flash" con el fichero binario que se especifique. No se comprueba si el fichero cabe realmente en la memoria. Si el tamaño es mayor que la capacidad de la memoria la rutina de verificación dará un error.

    RDFLASH /L<puerto><ce><fichero> /B<número>: lee <número> bytes del contenido de la memoria EPROM instalada en el emulador y los copia en <fichero>. Como el programa no conoce el tamaño de la memoria que estáconectada no se comprueba si <número> es un valor demasiado grande.

     

    Ejemplos de Programas para el emulador:

    LOADEMU /L<puerto><ce><fich.binario> : el programa configura en modo de carga el emulador que se selecciona con el parámetro /L, borra la memoria "Flash", carga el fichero <fich.binario>, y vuelve al modo emulador.

    RESETAPP /L<puerto><ce>: permite inicializar la aplicación que se esté ejecutando en el circuito maestro a través del emulador que se seleccione con el parámetro /L. Se genera un pulso "reset" con una duración de 1s y se transfiere al circuito maestro.

     

    Borradores de EPROMs

    Diseño de sistemas

     

    Diseño de sistemas

     

     

    Diseño de sistemas
    En las fotografías se presentan diferentes modelos de los tantos borradores de EPROMs existentes.

    BIBLIOGRAFÍA

    • Técnicas digitales con Circuitos Integrados. - Gimzburg-

    • Revista Radio Práctica Electrónica Nº 2329 ( Artículo de Favio Wainstein).

    • Revista Elektor Nº 194 (Artículo de C. F. Urban)

    • Revista PC Práctica Nº 5 (Artículo del Lic. Fernando A. Tasso)

    • Revista Electonics Now Nº 11

    • Microprocesador Z80 - Nichols - Rony-

    • Revista Elektor Nº 89

    • Revista Electrónica y Telecomunicaciones Año 1 Nº 6

    • Microprocesadores - Cristiani-Goldszein -

    • El IBM PC y PS/2 - Peter Norton- Richard Wilton -

    • The Z-80 Microcomputer Handbook - William Barden Jr. -

    • Revista K-64 Computación para todos Nº 18

    • Bases de los microprocesadores y el 6800 - Ron Bishop -

    • Algunos Archivos de Internet

    • Apuntes Bibliográficos provistos por compañero español.

     

     

     

    AGRADECIMIENTOS:

    Al Ingeniero Sr. Gonzalo Estivariz

    Al Técnico Superior en Controles Automáticos y Sistemas Digitales Sr. Daniel Gamero

     

     

    DATOS DE LA AUTORA:

    Liliana Beatriz Olivera Rivas

    Licenciada en Sistemas

    Programadora de Sistemas

    Auxiliar Docente de Taller de Investigación (3er. año) de la carrera de Licenciatura en Sistemas de Facultad de Ciencias de la Administración de Concordia, Entre Ríos, Argentina (UNER)

    Auxiliar Docente de Metodología de la Investigación (3er. año) de la carrera de Licenciatura en Sistemas de Facultad de Ciencias de la Administración de Concordia, Entre Ríos, Argentina (UNER)

    e-mail: lorhab@concordia.com.ar

    ÍNDICE

     

    ROM-EPROM *

    INTRODUCCIÓN: *

    EL BIOS *

    El Firmware de la PC *

    El reemplazo del BIOS *

    MEMORIAS EPROM *

    Funcionamiento de una EPROM *

    La familia 2700 *

    PROGRAMADOR/ EMULADOR DE FLASH EPROM *

    Qué es una memoria EPROM "Flash" *

    Las Direcciones y los Datos *

    Programando las memorias EPROM "Flash" *

    Uso Práctico del Programador/Emulador de EPROM "Flash" *

    Algunos Programas para el emulador /programador de EPROM "Flash" *

    Borradores de EPROMs *

    AGRADECIMIENTOS: *

    DATOS DE LA AUTORA: *

    Gestión de Memoria

    Sistemas operativos i

  • introducción

  • memoria real

  • memoria virtual

  • segmentación

  • referencias bibliográficas:

  • Introducción

    La memoria es uno de los principales recursos de la computadora, la cual debe de administrarse con mucho cuidado. Aunque actualmente la mayoría de los sistemas de cómputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen también altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario.

    La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando éstos la necesiten y liberándola cuando terminen, así como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella.

    Los sistemas de administración de memoria se pueden clasificar en dos tipos: los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución y los que no.

    El propósito principal de una computadora es el de ejecutar programas, estos programas, junto con la información que accesan deben de estar en la memoria principal (al menos parcialmente) durante la ejecución.

    Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener varios procesos a la vez en la memoria principal, para lo cual dispone de varias opciones de administración tanto del procesador como de la memoria. La selección de uno de ellos depende principalmente del diseño del hardware para el sistema. A continuación se observarán los puntos correspondientes a la administración de la memoria.

    MEMORIA REAL

    La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso. Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor.

    SIN INTERCAMBIO

    1.1.1.- Monoprogramación sin intercambio o paginación

    Cuando solo se tiene un proceso que ocupe la memoria a la vez, el esquema de la administración de la memoria es el más sencillo que hay. Sin embargo, éste método ya no tiene aplicación en la actualidad, ya que era visto en las computadoras con sistemas operativos de un solo usuario y una sola tarea. El usuario introducía su disco a la computadora (por lo general, la máquina no contaba con disco duro) y ejecutaba su aplicación, la cual acaparaba toda la máquina.

    Para ver el grafico, utilize la opción "Bajar trabajo" del menu superior

    Fig.1. Ejemplos de distribución de la memoria principal con un sistema operativo y un solo proceso de usuario

    La figura 1 muestra la organización de la memoria usando este sistema. La memoria se divide entre el sistema operativo y el proceso de un solo usuario. La más conocida es la que muestra el inciso c, que es la usada por las PC' de IBM. Los controladores de dispositivo los almacena en memoria ROM, en un bloque de 8K de la parte superior del espacio de direcciones de 1M.

    El ejemplo más claro de este esquema es el que podemos ver en el sistema operativo MS-DOS, en que el usuario escribe un comando al sistema y al ejecutarse el sistema operativo lo carga a memoria desde el disco y realiza sus funciones. Cuando el proceso termina la memoria es liberada y le muestra al usuario el indicador de comandos (prompt) en la pantalla.

    1.1.2.- Multiprogramación y uso de memoria

    Esta organización facilita la programación de una aplicación al dividirla en dos o más procesos. Además ofrece la capacidad de tener más de un proceso a la vez en memoria así puede ofrecer servicios a varios usuarios a la vez.

    El esquema de multiprogramación incrementa el aprovechamiento del CPU, dado que a diferencia de la monoprogramación en donde solo un proceso reside en memoria a la vez limitando el uso del procesador a las llamadas que requiera dicho proceso, desperdiciando un promedio del 80% del tiempo del procesador. En cambio la multiprogramación, al tener varios procesos en la memoria principal y dividiéndose el tiempo de uso del procesador, logra reducir drásticamente el desperdicio del procesador.

    1.1.3.- Multiprogramación con particiones fijas

    Para poder implementar la multiprogramación, se puede hacer uso de particiones fijas o variables en la memoria. En el caso de las particiones fijas, la memoria se puede organizar dividiéndose en diversas partes, las cuales pueden variar en tamaño. Esta partición la puede hacer el usuario en forma manual, al iniciar una sesión con la máquina.

    Una vez implementada la partición, hay dos maneras de asignar los procesos a ella. La primera es mediante el uso de una cola única (figura 2a) que asigna los procesos a los espacios disponibles de la memoria conforme se vayan desocupando. El tamaño del hueco de memoria disponible es usado para localizar en la cola el primer proceso que quepa en él. Otra forma de asignación es buscar en la cola el proceso de tamaño mayor que se ajuste al hueco, sin embargo hay que tomar en cuenta que tal método discrimina a los procesos más pequeños. Dicho problema podría tener solución si se asigna una partición pequeña en la memoria al momento de hacer la partición inicial, el cual sería exclusivo para procesos pequeños.

     

    Fig. 2. (a) Particiones fijas en memoria con una cola única de entrada. (b) Particiones fijas en memoria con colas exclusivas para cada tamaño diferente de la partición. El espacio asignado a la partición 2 está en desuso.

    Esta idea nos lleva a la implementación de otro método para particiones fijas, que es el uso de diferentes colas independientes (figura 2b) exclusivas para cierto rango en el tamaño de los procesos. De esta manera al llegar un proceso, éste sería asignado a la cola de tamaño más pequeño que la pueda aceptar. La desventaja en esta organización es que si una de las colas tiene una larga lista de procesos en espera, mientras otra cola esta vacía, el sector de memoria asignado para ese tamaño de procesos estaría desperdiciándose.

    CON INTERCAMBIO

    1.2.1.- Multiprogramación con particiones variables

    Este esquema fue originalmente usado por el sistema operativo IBM OS/360 (llamado MFT), el cual ya no está en uso.

    El sistema operativo lleva una tabla indicando cuáles partes de la memoria están disponibles y cuáles están ocupadas. Inicialmente, toda la memoria está disponible para los procesos de usuario y es considerado como un gran bloque o hueco único de memoria. Cuando llega un proceso que necesita memoria, buscamos un hueco lo suficientemente grande para el proceso. Si encontramos uno, se asigna únicamente el espacio requerido, manteniendo el resto disponible para futuros procesos que requieran de espacio.

    Consideremos el ejemplo de la figura 3, en donde se cuenta un espacio reservado para el sistema operativo en la memoria baja de 400K y un espacio disponible para procesos de usuario de 2160K, siendo un total de memoria del sistema de 2560K. Dada la secuencia de procesos de la figura y usando un algoritmo de First Come - First Served (FCFS) se puede asignar de inmediato memoria a los procesos P1, P2 y P3, creando el mapa de memoria de la figura 4(a) en el cual queda un hueco de 260K que ya no puede ser utilizado por el siguiente proceso dado que no es suficiente para abarcarlo.

    Para ver el grafico, utilize la opción "Bajar trabajo" del menu superior

     

    Fig. 3. Ejemplo de una división inicial de memoria y una lista de trabajos.

    Para ver el grafico, utilize la opción "Bajar trabajo" del menu superior

    Fig. 4. Ejemplo de asignación de procesos en la memoria principal.

    Usando un proceso de asignación Round-Robin con un quantum de 1 unidad de tiempo, el proceso P2 terminaría en la unidad de tiempo 14, liberando esa cantidad de memoria, como se muestra en la figura 4(b). Entonces el sistema operativo checa la lista de trabajos y asigna el siguiente proceso que quepa en el espacio de memoria liberado. El proceso P4 produce el mapa de memoria que se muestra en la figura 4(c). El proceso P1 terminará en la unidad de tiempo 28 para producir el mapa de la figura 4(d) y entonces se asigna el proceso P5 generando el mapa de la figura 4(e).

    Cuando a un proceso se le asigna un espacio y es cargado a la memoria principal, puede entonces competir para el uso del CPU.

    1.2.1.1.- Compactación de memoria

    Cuando un proceso llega y necesita memoria, el sistema operativo busca en la tabla de huecos alguno lo suficientemente grande para el proceso. Si el hueco es muy grande, lo parte en dos. Una parte es asignada al proceso y la otra se identifica como hueco. Cuando el proceso termina y la memoria es liberada, el espacio es identificado como un hueco más en la tabla y si el nuevo hueco es adyacente con otro, ambos huecos se unen formando un solo hueco más grande. En ese momento se debe de checar si no existen procesos a los que este nuevo hueco pueda darles cabida.

    Para ver el grafico, utilize la opción "Bajar trabajo" del menu superior

     

    Fig. 5. Ejemplo de compactación de huecos no adyacentes.

    En la figura 5 se muestra como se modifica el mapa de la memoria después de compactar huecos no adyacentes generados después de intercambios realizados en el ejemplo de la figura 4.

    1.2.1.2.- Asignación dinámica

    El proceso de compactación del punto anterior es una instancia particular del problema de asignación de memoria dinámica, el cual es el cómo satisfacer una necesidad de tamaño n con una lista de huecos libres. Existen muchas soluciones para el problema. El conjunto de huecos es analizado para determinar cuál hueco es el más indicado para asignarse. Las estrategias más comunes para asignar algún hueco de la tabla son:

    • Primer ajuste: Consiste en asignar el primer hueco con capacidad suficiente. La búsqueda puede iniciar ya sea al inicio o al final del conjunto de huecos o en donde terminó la última búsqueda. La búsqueda termina al encontrar un hueco lo suficientemente grande.

    • Mejor ajuste: Busca asignar el espacio más pequeño de los espacios con capacidad suficiente. La búsqueda se debe de realizar en toda la tabla, a menos que la tabla esté ordenada por tamaño. Esta estrategia produce el menor desperdicio de memoria posible.

    • Peor ajuste: Asigna el hueco más grande. Una vez más, se debe de buscar en toda la tabla de huecos a menos que esté organizada por tamaño. Esta estrategia produce los huecos de sobra más grandes, los cuales pudieran ser de más uso si llegan procesos de tamaño mediano que quepan en ellos.

    Se ha demostrado mediante simulacros que tanto el primer y el mejor ajuste son mejores que el peor ajuste en cuanto a minimizar tanto el tiempo del almacenamiento. Ni el primer o el mejor ajuste es claramente el mejor en términos de uso de espacio, pero por lo general el primer ajuste es más rápido.

    1.2.2.- Administración de la memoria con mapas de bits

    Este tipo de administración divide la memoria en unidades de asignación, las cuales pueden ser tan pequeñas como unas cuantas palabras o tan grandes como varios kilobytes. A cada unidad de asignación le corresponde un bit en el mapa de bits, el cual toma el valor de 0 si la unidad está libre y 1 si está ocupada (o viceversa). La figura 6 muestra una parte de la memoria y su correspondiente mapa de bits.

    Para ver el grafico, utilize la opción "Bajar trabajo" del menu superior

    Fig. 6. Ejemplo de un mapa de bits para la administración de la memoria.

    Un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria, puesto que el tamaño del mapa sólo depende del tamaño de la memoria y el tamaño de la unidad de asignación.

    1.2.3.- Administración de la memoria con listas ligadas

    Otra forma de mantener un registro de la memoria es mediante una lista ligada de los segmentos de memoria asignados o libres, en donde un segmento puede ser un proceso o un hueco entre dos procesos. La memoria de la figura 7(a) está mostrada como una lista ligada de segmentos en la figura 7(b). Cada entrada de la lista especifica un hueco (H) o un proceso (P), la dirección donde comienza, su longitud y un apuntador a la siguiente entrada.

    Para ver el grafico, utilize la opción "Bajar trabajo" del menu superior

    Fig. 7. Ejemplo de listas ligadas.

    En este ejemplo, la lista de segmentos está ordenada por direcciones, lo que da la ventaja de que al terminar o intercambiar un proceso, la actualización de la lista es directa.

    1.2.4.- Asignación del hueco de intercambio

    En algunos sistemas, cuando el proceso se encuentra en la memoria, no hay un hueco en el disco asignado a él. Cuando deba intercambiarse, se deberá asignar un hueco para él en el área de intercambio del disco. Los algoritmos para la administración del hueco de intercambio son los mismos que se utilizan para la administración de la memoria principal.

    En otros sistemas, al caerse un proceso, se le asigna un hueco de intercambio en el disco. Cuando el proceso sea intercambiado, siempre pasará al hueco asignado, en vez de ir a otro lugar cada vez. Cuando el proceso concluya, se libera el hueco de intercambio. La única diferencia es que el hueco en disco necesario para un proceso debe representarse como un número entero de bloques del disco. Por ejemplo, un proceso de 13.5 K debe utilizar 14K (usando bloques de 1K).

    1.2.5.- Fragmentación

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

    La fragmentación es generada cuando durante el reemplazo de procesos quedan huecos entre dos o más procesos de manera no contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera. Tal vez en conjunto si sea espacio suficiente, pero se requeriría de un proceso de defragmentación de memoria o compactación para lograrlo. Esta fragmentación se denomina fragmentación externa.

    Existe otro tipo de fragmentación conocida como fragmentación interna, la cual es generada cuando se reserva más memoria de la que el proceso va realmente a usar. Sin embargo a diferencia de la externa, estos huecos no se pueden compactar para ser utilizados. Se debe de esperar a la finalización del proceso para que se libere el bloque completo de la memoria.

     

    MEMORIA VIRTUAL

    PAGINACIÓN

    Hasta ahora, los métodos que hemos visto de la administración de la memoria principal, nos han dejado con un problema: fragmentación, (huecos en la memoria que no pueden usarse debido a lo pequeño de su espacio) lo que nos provoca un desperdicio de memoria principal.

    Una posible solución para la fragmentación externa es permitir que espacio de direcciones lógicas lleve a cabo un proceso en direcciones no contiguas, así permitiendo al proceso ubicarse en cualquier espacio de memoria física que esté disponible, aunque esté dividida. Una forma de implementar esta solución es a través del uso de un esquema de paginación. La paginación evita el considerable problema de ajustar los pedazos de memoria de tamaños variables que han sufrido los esquemas de manejo de memoria anteriores. Dado a sus ventajas sobre los métodos previos, la paginación, en sus diversas formas, es usada en muchos sistemas operativos.

    Al utilizar la memoria virtual, las direcciones no pasan en forma directa al bus de memoria, sino que van a una unidad administradora de la memoria (MMU -Memory Management Unit). Estas direcciones generadas por los programas se llaman direcciones virtuales y conforman el hueco de direcciones virtuales. Este hueco se divide en unidades llamadas páginas. Las unidades correspondientes en la memoria física se llaman marcos para página o frames. Las páginas y los frames tienen siempre el mismo tamaño.

    2.1.1.- Tablas de páginas

    Cada página tiene un número que se utiliza como índice en la tabla de páginas, lo que da por resultado el número del marco correspondiente a esa página virtual. Si el bit presente / ausente es 0, se provoca un señalamiento (trap) hacia el sistema operativo. Si el bit es 1, el número de marco que aparece en la tabla de páginas se copia en los bits de mayor orden del registro de salida, junto con el ajuste (offset) de 12 bits, el cual se copia sin modificaciones de la dirección virtual de entrada. Juntos forman una dirección física de 15 bits. El registro de salida se coloca entonces en el bus de la memoria como la dirección en la memoria física.

    En teoría, la asociación de las direcciones virtuales con las físicas se efectúa según lo descrito. El número de página virtual se divide en un número de página virtual (los bits superiores)y un ajuste (los bits inferiores). El número de página virtual se utiliza como un índice en la tabla de páginas para encontrar la entrada de esa página virtual. El número de marco (si existe) se determina a partir de la tabla de páginas. El número de marco se asocia al extremo superior del ajuste y reemplaza al número de página virtual para formar una dirección física que se puede enviar a la memoria.

    La finalidad de la tabla de páginas es asociar las páginas virtuales con los marcos. En términos matemáticos, la tabla de páginas es una función, cuyo argumento es el número de página virtual y como resultado el número del marco físico. Mediante el resultado de esta función, se puede reemplazar el campo de la página virtual de una dirección virtual por un campo de marco, lo que produce una dirección en la memoria física. Sin embargo hay que enfrentar dos aspectos fundamentales:

  • La tabla de páginas puede ser demasiado grande.

  • La asociación debe ser rápida.

  • El primer punto proviene del hecho de que las computadoras modernas utilizan direcciones virtuales de al menos 32 bits. Por ejemplo, si el tamaño de página es de 4K, un hueco de direcciones de 32 bits tiene un millón de páginas; en el caso de un hueco de direcciones de 64 bits, se tendría más información de la que uno quisiera contemplar.

    El segundo punto es consecuencia del hecho de que la asociación virtual - física debe hacerse en cada referencia a la memoria. Una instrucción común tiene una palabra de instrucción y también un operando de memoria. Entonces es necesario hacer una, dos o más referencias a la tabla de páginas por cada instrucción.

    2.1.2.- Algoritmos de reemplazo de páginas

    Con el uso del método de paginación se puede llegar a saturar la memoria si se incrementa demasiado el nivel de multiprogramación. Por ejemplo, si se corren seis procesos, cada uno con un tamaño de diez páginas de las cuales en realidad sólo utiliza cinco, se tiene un mayor uso del CPU y con marcos de sobra. Pero pudiera suceder que cada uno de esos procesos quiera usar las diez páginas resultando en una necesidad de 60 marcos, cuando solo hay 40 disponibles.

    Esto provoca sobre-asignación y mientras un proceso de usuario se está ejecutando, ocurre un fallo de página. El hardware se bloquea con el sistema operativo, el cual checa en sus tablas internas y se da cuenta que es un fallo de página y no un acceso ilegal de memoria. El sistema operativo determina si la página está residiendo en disco, pero también determina que no hay marcos de memoria disponibles en la lista de marcos libres.

    Al ocurrir el fallo de página, el sistema operativo debe elegir una página para retirarla de la memoria y usar el espacio para la página que se necesita para desbloquear el sistema y que el hardware pueda seguir trabajando. Si la página por eliminar de la memoria fue modificada, se debe volver a escribir al disco para mantener la información actualizada; de lo contrario, si la página no fue modificada no es necesario rescribir la información a disco y la página que se carga simplemente se escribe sobre la página a borrar en memoria. La figura 8 muestra gráficamente un intercambio de páginas entre la memoria principal y el disco (memoria secundaria).

     

    Memoria Principal

     

    Memoria Secundaria

    Fig. 8. Se elimina de la memoria principal una página que no esté en uso y se reemplaza por una página de la cual el sistema operativo tiene necesidad de uso.

    2.1.2.1.- Algoritmo aleatorio

    Este algoritmo consiste simplemente en reemplazar aleatoriamente cualquier página de la memoria principal, sin hacer ningún esfuerzo de predicción.

    Es el algoritmo más sencillo dado que no requiere tener ninguna información, sin embargo, por no hacer uso de dicha información sobre el comportamiento del proceso, no puede lograr un buen desempeño.

    2.1.2.2.- Algoritmo de reemplazo de páginas óptimo

    Este algoritmo debe de tener el menor índice de fallos de página de todos los algoritmos. En teoría, este algoritmo debe de reemplazar la página que no va a ser usada por el periodo más largo de tiempo.

    Desafortunadamente, el algoritmo de reemplazo óptimo es fácil en teoría, pero prácticamente imposible de implementar, dado que requiere conocer a futuro las necesidades del sistema.

    Tal algoritmo existe y ha sido llamado OPT o MIN, pero se usa únicamente para estudios de comparaciones. Por ejemplo, puede resultar muy útil saber que aunque algún nuevo algoritmo no sea óptimo, está entre el 12.3% del óptimo y entre el 4.7% en promedio.

    2.1.2.3.- Algoritmo de reemplazo de páginas según el uso no tan reciente

    Este algoritmo hace uso de los dos bits de estado que están asociados a cada página. Estos bits son: R, el cual se activa cuando se hace referencia (lectura / escritura) a la página asociada; y M, que se activa cuando la página asociada es modificada (escritura). Estos bits deben de ser actualizado cada vez que se haga referencia a la memoria, por esto es de suma importancia que sean activados por el hardware. Una vez activado el bit, permanece en ese estado hasta que el sistema operativo, mediante software, modifica su estado.

    Estos bits pueden ser utilizados para desarrollar un algoritmo de reemplazo que cuando inicie el proceso, el sistema operativo asigne un valor de 0 a ambos bits en todas las páginas. En cada interrupción de reloj, limpie el bit R para distinguir cuáles páginas tuvieron referencia y cuáles no.

    Cuando ocurre un fallo de página, el sistema operativo revisa ambos bits en todas las páginas y las clasifica de la siguiente manera:

    Clase 0: La página no ha sido referenciada, ni modificada.

    Clase 1: La página no ha sido referenciada, pero ha sido modificada.

    Clase 2: La página ha sido referenciada, pero no ha sido modificada.

    Clase 3: La página ha sido referenciada y también modificada.

    Una vez obtenida la clasificación, elimina una página de manera aleatoria de la primera clase no vacía con el número más pequeño. Esto porque para el algoritmo es mejor eliminar una página modificada sin referencias en al menos un intervalo de reloj, que una página en blanco de uso frecuente.

    A pesar de que este algoritmo no es el óptimo, es fácil de implementar y de comprender y con mucha frecuencia es el más adecuado.

    2.1.2.4.- Algoritmo de reemplazo "Primero en entrar, primero en salir" (FIFO)

    El algoritmo más sencillo para remplazo de páginas es el FIFO (First In - First Out). Este algoritmo asocia a cada página el momento en que ésta fue traída a memoria. Cuando una página debe ser reemplazada se selecciona a la más antigua.

    No es estrictamente necesario registrar el momento de entrada de la página a memoria, sino que se puede crear una cola en la que se van agregando las páginas conforme van llegando a la memoria. Cuando se debe eliminar una página, se selecciona la que está al frente de la lista (o sea, la más antigua de la lista). Cuando llega una página nueva, se inserta en la parte trasera de la cola. En la figura 9 se representa el funcionamiento de éste algoritmo.

    Para ver el grafico, utilize la opción "Bajar trabajo" del menu superior

    Fig. 9. Reemplazo de páginas mediante el algoritmo FIFO.

    Al igual que el algoritmo aleatorio, este algoritmo es fácil de comprender y de programar. Sin embargo, su desempeño no siempre es del todo bueno. La página reemplazada puede ser un módulo de inicialización que fue usado hace mucho tiempo y ya no se tiene necesidad de él. Por otro lado, puede contener una variable de uso muy frecuente que fue inicializada de manera temprana y está en uso constante.

    2.1.2.5.- Algoritmo de reemplazo de páginas de la segunda oportunidad

    Este algoritmo es una modificación del FIFO. El algoritmo hace uso del bit de referencia de la página. Cuando una página ha sido seleccionada para reemplazo, se revisa el bit de referencia. Si tiene valor de 0, se procede a reemplazar la página. Si por el contrario, el bit de referencia es 1 se le da a la página una segunda oportunidad.

    Para ver el grafico, utilize la opción "Bajar trabajo" del menu superior

    Fig. 10. Algoritmo de la segunda oportunidad.

    Cuando esto sucede, se le cambia el bit de referencia a 0 y se actualiza su tiempo de llegada al tiempo actual para que la página se colocada al final de la cola. De esta manera, la página espera todo un ciclo completo de páginas para ser entonces reemplazada.

    Si la página tiene un uso muy frecuente, el bit de referencia se mantendría constantemente en 1 y la página no sería reemplazada. En la figura 10 se puede apreciar el funcionamiento del algoritmo.

    2.1.2.6.- Algoritmo de reemplazo de páginas del reloj

    Modificando el algoritmo de la segunda oportunidad (que a su vez es una modificación de FIFO) obtenemos el algoritmo aumentado de la segunda oportunidad o algoritmo del reloj. Usamos la misma clasificación vista en el algoritmo de uso no tan reciente (sección 2.1.2.3.).

    Este algoritmo organiza las páginas en una lista circular como se muestra en la figura 11 y se usa un apuntador (o manecilla) que señala a la página más antigua.

    Para ver el grafico, utilize la opción "Bajar trabajo" del menu superior

    Fig. 11. Algoritmo de reloj.

    Cuando se presenta un fallo de página, el algoritmo revisa la página a la que está apuntando la manecilla. Si el bit de referencia es 0, la página es reemplazada con la nueva y la manecilla avanza una posición. Si el bit es 1, entonces se limpia (cambia a 0) y la manecilla avanza a la siguiente página y así sucesivamente hasta encontrar una con bit 0.

    2.1.2.7.- Algoritmo de reemplazo de páginas "la de menor uso reciente" (LRU)

    Este algoritmo es una buena aproximación al óptimo y se basa en al observación de que las páginas de uso frecuente en las últimas instrucciones se utilizan con cierta probabilidad en las siguientes. De la misma manera, es probable que las páginas que no hayan sido utilizadas durante mucho tiempo permanezcan sin uso por bastante tiempo. Implementando el algoritmo con esta base, al ocurrir un fallo de página, se elimina la página que no haya sido utilizada durante el tiempo más grande. De ahí su denominación: menor uso reciente (LRU - Least Recent Use).

    A diferencia de los algoritmos anteriores, el LRU tiene un mejor rendimiento en cuanto al tiempo de aprovechamiento del CPU y del uso de la memoria. Sin embargo, el problema con este algoritmo es que su implementación es muy cara, ya que requiere de una asistencia considerable de hardware. Otro problema es el de determinar un orden para los marcos definido por el tiempo de menor uso. Para éste último hay dos posibles implementaciones:

    • Contadores: En el caso más sencillo, se asocia cada entrada tabla-página un campo de tiempo-de-uso y se le agrega al CPU un reloj lógico o contador. Este reloj es incrementado en cada referencia de memoria. Siempre que se hace referencia a una página, el contenido del registro del reloj es copiado al campo de tiempo-de-uso en la tabla de páginas para esa página. De esta forma, siempre se dispone del "tiempo" de la última referencia a cada página. La página que se reemplaza es la del menor valor de tiempo. Este esquema requiere de una búsqueda en toda la tabla de páginas para encontrar la página LRU, y una escritura en memoria al campo de tiempo-de-uso en la tabla de páginas por cada acceso a memoria. Los tiempos también se deben de mantener cuando las tablas de páginas son alteradas (debido a organización del CPU). Se debe considerar la posibilidad de sobrecarga en el reloj.

    • Pilas: Otra aproximación para implementar el reemplazo LRU es la de tener una pila con los números de páginas. Siempre que se hace referencia a una página, se quita de la pila y se pone en la parte superior. De esta manera, la parte superior de la pila es la página de uso más reciente y la de abajo es la LRU, tal como se muestra en la figura 12.

     

    Fig. 12. Uso de pilas en el algoritmo LRU

    SEGMENTACIÓN

    Otra opción para el manejo de la memoria es usar una forma de liberar al programador de la tarea del control de las tablas en expansión y contracción, de la misma forma que la memoria virtual elimina la preocupación por organizar el programa en una serie de proyectos.

    Esto se puede lograr dotando a la máquina de varios espacios independientes de direcciones llamados segmentos. Cada segmento tiene una serie lineal de direcciones, desde 0 hasta cierto máximo. La longitud de cada segmento puede variar de 0 hasta un máximo permitido. Los distintos segmentos pueden tener y de hecho tienen por lo general, longitudes distintas. Además, la longitud de un segmento puede variar durante la ejecución. La longitud de un segmento de la pila puede crecer si algo entra a la pila y decrecer si algo sale de ella.

    Puesto que cada segmento constituye un espacio independiente de direcciones, los distintos segmentos pueden crecer o reducirse en forma independiente sin afectar a los demás. En la figura 13 podemos ver una lista de comparación entre la paginación y la segmentación.

    La segmentación también facilita el uso de procedimientos o datos compartidos entre varios procesos. Un ejemplo común son las bibliotecas compartidas (Shared DLL's). Es frecuente que las estaciones de trabajo modernas que ejecutan sistemas avanzados, con ventanas, tengan bibliotecas gráficas de tamaño muy grande que se compilan casi en todos los programas. En un sistema segmentado, la biblioteca gráfica se puede colocar en un segmento y compartirse entre varios procesos, sin necesidad de tenerla en el espacio de direcciones de cada proceso.

    Aunque también es posible tener bibliotecas compartidas sin los sistemas con paginación pura, es mucho más complejo. De hecho, estos sistemas simulan la segmentación.

    2.2.1.- Segmentación pura

    La implantación de la segmentación difiere del caso de la paginación en un sentido esencial: las páginas tienen un tamaño fijo y los segmentos no. La figura 14 muestra un ejemplo de memoria física que contiene al principio 5 segmentos. Consideremos que el segmento 1 se elimina y su lugar se ocupa por el segmento 7, que es menor. El área que queda entre el segmento 7 y el 2 es un hueco. Luego, el segmento 4 se reemplaza por el segmento 5 y el segmento 3 es reemplazado por el segmento 6. Después de que el sistema esté en ejecución durante cierto tiempo, la memoria quedará dividida en varios bloques, algunos con segmentos y otros con huecos.

    Considerando

    Paginación

    Segmentación

    ¿Necesita saber el programador si está utilizando esta técnica?

    No

    ¿Cuántos espacios lineales de direcciones existen?

    1

    Muchos

    ¿Puede el espacio total de direcciones exceder el tamaño de la memoria física?

    ¿Pueden distinguirse los procedimientos y los datos, además de protegerse en forma independiente?

    No

    ¿Pueden adecuarse con facilidad las tablas con tamaños fluctuantes?

    No

    ¿Se facilita el uso de procedimientos compartidos entre los usuarios?

    No

    ¿Para qué se inventó esta técnica?

    Para obtener un gran espacio lineal de direcciones sin tener que adquirir más memoria física

    Para permitir que los programas y datos fueran separados en espacios independientes de direcciones y poder proporcionar la protección y uso de objetos compartidos

    Fig. 13. Comparación de paginación y segmentación.

     

    Este fenómeno de fragmentación externa o checkboarding, desperdicia la memoria correspondiente a los huecos, pero es fácilmente corregido mediante el uso de la compactación. De esta forma los huecos son unificados, generando así un hueco de tamaño suficiente para albergar algún otro segmento más.

    Para ver el grafico, utilize la opción "Bajar trabajo" del menu superior

     

    Fig. 14. Desarrollo de fragmentación externa y su corrección mediante compactación.

    2.2.2.- Segmentación con paginación: MULTICS

    En el sistema MULTICS, una dirección lógica está formada por un número de segmento de 18-bit y un offset de 16 bit. Aunque este esquema crea un espacio de dirección de 34-bit, la sobrecarga en la tabla de segmentos es tolerable; solo se requiere de las suficientes localidades en la tabla de segmentos como haya segmentos, puesto que no debe haber localidades vacías.

    Sin embargo, con segmentos de palabras de 64K, es donde cada una consiste de 36 bits, el tamaño promedio de segmento puede ser grande y se podría presentar un problema de fragmentación externa. Aunque no lo fuera, el tiempo de búsqueda para ubicar un segmento, usando primer ajuste o mejor ajuste, puede ser prolongado. Lo que puede causar desperdicio de memoria debido a la fragmentación externa, o desperdicio de tiempo por las largas búsquedas o ambas.

    La solución al problema es paginar los segmentos. La paginación elimina la fragmentación externa y convierte el problema de ubicación en algo trivial: cualquier frame desocupado puede ser usado para una página deseada. En MULTICS, cada página consiste de palabras de 1K. En consecuencia, el offset del segmento (16 bits) es dividido en un número de página de 6 bit y un offset de página de 10 bit. El número de página se indexa en la tabla de páginas para obtener el número de frame. Finalmente, el número de frame es combinado con el offset de página para formar una dirección física. El esquema de esto se muestra en la figura 15.

    Para ver el grafico, utilize la opción "Bajar trabajo" del menu superior

    Fig. 15. Segmentación paginada en el GE 645 (MULTICS)

    Ahora se debe de tener una tabla de páginas individual para cada segmento. Sin embargo, dado que cada segmento está limitado en tamaño por su ubicación en la tabla de segmentos, la tabla de páginas no tiene que ser de tamaño completo, solo requiere de los espacios que son realmente necesarios.

    Al igual que en la paginación, la última página de cada segmento, por lo general no estará totalmente llena. En consecuencia, se tiene, en promedio, una fragmentación interna de media página por segmento.

    2.2.3.- Segmentación con paginación: Intel 386

    El sistema operativo IBM OS/2 de 32 bits es un sistema operativo que corre con las arquitecturas del procesador Intel 386 y 486. El 386 una la segmentación con paginación para su manejo de memoria. El número máximo de segmentos por proceso es de 16K y cada segmento puede llegar a ser de hasta 4 gigabytes. El tamaño de página es de 4K.

    Para ver el grafico, utilize la opción "Bajar trabajo" del menu superior

    Fig. 16. Traducción de dirección en el Intel 80386

    El espacio de direcciones lógicas está dividido en dos particiones. La primera partición consiste en segmentos de hasta 8K los cuales son privados para ese proceso. La segunda partición también consiste en segmentos de hasta 8K, los cuales son compartidos entre todos los procesos. La información de la primera partición es guardada en la tabla descriptora local (LDT - Local Descriptor Table), y la de la segunda partición es guardada en la tabla descriptora global (GDT - Global Descriptor Table). Cada registro de las tablas LDT y GDT consiste de 8 bytes con información detallada sobre un segmento en particular incluyendo la ubicación base y longitud del segmento.

    Cada segmento es paginado, y cada página es de 4K. Una tabla de páginas puede entonces consistir de hasta un millón de registros. Dado que cada registro consiste de 4 bytes, cada proceso puede llegar a necesitar hasta 4 megabytes de espacio de direcciones física para la tabla de páginas únicamente. Claro está que no sería conveniente alojar la tabla de páginas contigua en la memoria principal. La solución que es implementada en el esquema para el 386, es usar un esquema de paginación de dos niveles. La dirección lineal es dividida en un número de página consistente de 20 bits y un offset de página de 12 bits. Siendo que se pagina a la tabla de páginas, el número de páginas es a su vez dividido en un apuntador para el directorio de páginas de 10 bit y en un apuntador para la tabla de páginas de 10 bit. La transición de la dirección se puede apreciar en más detalle en la figura 16.

    Referencias Bibliográficas:

    • "Sistemas Operativos Modernos" Andrew S. Tanenbaum. 1993. Prentice Hall.

    • "Sistemas Operativos" William Stallings. 1997 Prentice Hall.

    • "Sistemas Operativos" Deitel

    • "Operating System Concepts" Abraham Silberscatz y Peter B. Galvin. 1994 Addison-Wesley.

    Monografía realizada para la materia de Sistemas Operativos I a cargo de la profesora Patricia Parroquín por Ricardo Trejo Ramírez. rtrejo@hotmail.com, rctrejo@prodigy.net.mx

    Universidad Autónoma de Ciudad Juárez.

     

    Ricardo Trejo Ramírez

    rtrejo@hotmail.com, rctrejo@prodigy.net.mx

     

     

    1. Introducción

    Se denominan periféricos tanto a las unidades o dispositivos a través de los cuales el ordenador se comunica con el mundo exterior, como a los sistemas que almacenan o archivan la información, sirviendo de memoria auxiliar de la memoria principal.

    La memoria masiva o auxiliar trata de suplir las deficiencias de la memoria central.

    Estas son, su relativa baja capacidad y el hecho de que la información almacenada se borra al eliminar la alimentación de energía eléctrica (al desconectarla). En efecto, los dispositivos de memoria masiva auxiliar (hoy día principalmente discos y cintas magnéticas) son mucho más capaces (del orden de 10000 veces o más) que la memoria principal, y en ellos se puede grabar la información durante mucho tiempo.

    Según la definición de periférico dada anteriormente, éstos están constituidas por unidades de entrada, unidades de salida y unidades de memoria masiva auxiliar. Estas últimas unidades también pueden considerarse como unidades de E/S, ya que el ordenador central puede escribir (dar salidas) sobre ellas, y la información escrita puede ser leída, es decir, ser dada como entrada. Ahora bien, la información grabadas en estos soportes no es directamente inteligible para el usuario de la ordenador, esto es, no puede haber una intercomunicación directa usuario-ordenador como la que hay a través de un teclado/pantalla.

    El ordenador es una máquina que no tendría sentido si no se comunicase con el exterior, es decir, si pareciese de periféricos. Por lo que debe disponer de:

    • Unidad(es) de entrada, a través de la(s) cual(es) poderle dar los programas que queramos que ejecute y los datos correspondientes.

    • Unidad(es) de salida, con la(s) que la ordenador nos da los resultados de los programas.

    • Memoria masiva o auxiliar, que facilite su funcionamiento y utilización.

    Los dispositivos de E/S transforman la información externa en señales codificadas, permitiendo su transmisión, detección, interpretación, procesamiento y almacenamiento de forma automática. Los dispositivos de Entrada transforman la información externa (instrucciones o datos tecleados) según alguno de los códigos de entrada/salida (E/S). Así el ordenador recibe dicha información adecuadamente preparada (en binario). En un dispositivo de Salida se efectúa el proceso inverso: la información binaria que llega del ordenador se transforma de acuerdo con el código de E/S en caracteres escritos inteligibles por el usuario.

    Hay que distinguir claramente entre periféricos de un ordenador y máquinas auxiliares de un determinado servicio informático. Las máquinas auxiliares no están físicamente conectadas al ordenador (su funcionamiento es totalmente autónomo) y sirven para preparar o ayudar en la confección o utilización de la información que se da a, o produce, el ordenador. Por ejemplo, hace algunos años existían máquinas autónomas para perforar tarjetas, para grabar cintas magnéticas manualmente a través de un teclado, para separar el papel continuo producido por un programa a través de la impresora, etc.

    Tampoco hay que confundir periférico con soporte de información. Por soporte de información se entiende aquellos medios físicos sobre los que va la información. Por unidades o dispositivos periféricos se entiende aquellos elementos encargados de transcribir la información al correspondiente soporte.

    Ejemplos:

    Los disquetes son soporte de información, mientras que la unidad lectora o disquetera, es unidad periférica.

    El papel impresora es soporte de información, y la impresora unidad periférica.

    2. Objetivos

    Dar a conocer la importancia, funcionamiento, beneficios y ventajas de los diferentes tipos de dispositivos de entrada/salida y mixtos a los cuales les damos el nombre de periféricos, para el mejor entendimiento manejo y comprensión del usuario.

    En este trabajo se estudiaran cada una de las actividades asociadas con los periféricos, como desarrollar la habilidad de reconocer los diferentes dispositivos de entrada salida.

    Adquirir el conocimiento para seleccionar los mejores métodos como entrada de datos, almacenamiento, acceso, procesamiento y salidas.

    3. Conexión de periféricos al ordenador.

    Las unidades funcionales del ordenador , así como éstas con los periféricos, se comunican por conjuntos o grupos de hilos denominados buses.

    Como las unidades del ordenador central funcionan a velocidades muy elevadas, se intercomunican con buses paralelos. Sin embargo, hay periféricos que actúan, en comparación con las unidades centrales, muy lentamente y además pueden estar muy alejados del ordenador central necesitándose hilos muy largos para realizar la conexión. En este caso es aconsejable una conexión de tipo serie.

    Los periféricos se interconectan al bus del sistema directamente, o bien a través de unos circuitos denominados interfaces.

    Exist