jueves, 4 de diciembre de 2014

Unidad 02 Conceptos introductorios de arquitectura del computador

Es un dispositivo electrónico programable, diseñado para llevar a cabo tareas de manipulación de información con gran rapidez.
El rango de aplicaciones abarca desde usos comerciales (facturación, control de inventario, etc) hasta aplicaciones científicas o ingenieriles como control de experimentos de un laboratorio, extensivos cálculos en dinámica de fluídos, o el control de naves espaciales.

Arquitectura simplificada de un computador

Hardware

Se denomina así a todos los componentes físicos del computador o sistema de cómputo, cuya funcionalidad no puede ser modificada fácilmente.
Los componentes principales de un computador (Hardware) son:
  • Unidad central de Procesamiento (CPU): Dispositivo electrónico principal de procesamiento de datos. Es capaz de realizar operaciones básicas sobre los datos como lectura y escritura de un dato, operaciones aritméticas y lógicas básicas, control de la ejecución del programa, etc.
  • Memoria de acceso aleatorio (RAM): Dispositivos electrónicos de almacenamiento rápido y volátil de la información.
  • Memoria de acceso sólo a lectura (ROM): Dispositivo electrónico de almacenamiento de información no volátil. Generalmente usada para almacenar FirmWare.
  • Dispositivos de Entrada y Salida:
  • Medios de almacenamiento masivo (Diskettes, discos magnéticos, ópticos, magneto-ópticos, cintas magnéticas, etc.) utilizadas como un medio masivo no volátil de almacenamiento de datos.
  • Teclado: Dispositivo de entrada de información.
  • Monitor: Dispositivo de salida de información.
  • Mouse: Dispositivo de entrada de datos por apunte y selección.
  • Impresor: Dispositivo de salida de información en papel.
  • Puertos de comunicación: Canales de comunicación de datos entre computadores.
  • Conversores Analógico-Digitales y Digitales-Analógicos de datos: Son canales de entrada o salida de datos en forma analógica. La aplicación principal de este tipo de dispositivos es el control de procesos o dispositivos analógicos externos. También se emplea este tipo de canales para almacenar sonidos en forma digital, y luego reproducirlos.

Representación Interna de Datos
Un sistema digital de información utiliza dispositivos electrónicos con alto nivel de integración de elementos binarios. Es decir que la unidad mínima de información (denominada bit) es capaz de almacenar dos estados diferentes que se identifican como valores lógicos 0 y 1. Debido a que, a los fines prácticos, esta unidad es demasiado pequeña, es que se definen los siguientes múltiplos: 1 byte (= 8 bits), 1 Kilobyte (= 2^10 bytes), 1 Megabyte (= 2^20 bytes), etc.

Software

Son los programas que dirigen la operación del Hardware para la solución de un problema, siendo su funcionalidad fácilmente modificable.
Segun su funcionalidad se lo puede clasificar en:
Sistema Operativo (S.O.)
Aplicaciones
Sistemas de desarrollo

Sistema Operativo

El sistema operativo es un conjunto de programas que se encargan de realizar la administración de todos los recursos que posee un computador. Además provee a los programas de una interfase con el Hardware.
En los S.O.s modernos se pretende que la programación se independice del hardware específico del computador sobre el cual corre, permitiendo transportabilidad de programas entre computadores de arquitectura disímil.
Estos se pueden clasificar de la siguiente manera:
De acuerdo a los usuarios que soporta:
  • Monousuarios: Son aquellos S.O.s que permiten que sólo un usuario pueda estar haciendo uso del computador a la vez (DOS, PC/M, Apple Macintosh System 7, etc.).
  • Multiusuarios: Permite que múltiples usuarios puedan hacer uso de un mismo computador en forma simultánea, compartiendo los recursos (UNIX, VMS, VM, Sun OS, NeXT Step, etc.).
De acuerdo al número de tareas "simultáneas" que puede ejecutar:
  • Mono Tarea: Sólo una tarea puede estar siendo ejecutada.
  • Multi Tarea: Múltiples tareas pueden estas siendo ejecutadas simultáneamente. Todos los S.O.s multiusuarios son sistemas multitareas.
La interacción del usuario con el S.O. se realiza a través de comandos. Estos pueden ser dados de formas diversas (dependiendo del S.O. en cuestión). Los mecanismos más usuales son: líneas de comandos tipeadas por el usuario (DOS, UNIX Shell, VMS); o selección de operaciones a través de la interacción con un entorno texto-gráfico (MS-Windows, Apple Macintosh, OpenWindows, Motif, etc.).
En general, un peso grande dentro de las tareas de un S.O. cae en la organización y administración de los medios masivos de almacenamiento. Para tal fin, esta organización utiliza dos conceptos fundamentales:
  • Directorios: Son entidades lógicas que permiten realizar una organización estructurada y jerárquica de la información. No son contenedoras de información en sí, y sólo sirven a fines organizativos.
  • Archivos: Son entidades lógicas que contienen información. El carácter de la información contenida en un archivo puede ser muy diverso, por ejemplo programas, bibliotecas de subprogramas, gráficos, imágenes, bases de datos, textos, sonidos, etc.
Para la creación y mantenimiento de directorios, se utilizan recursos del S.O. Para la creación y mantenimiento de archivos se utilizan diversas aplicaciones, dependiendo del tipo de archivo de que se trate. En particular, para crear y/o modificar archivos de texto, se pueden utilizar los llamados "editores de textos".
Aplicaciones
Son programas o conjuntos de programas que llevan a cabo tareas específicas: Manejo de Bases de Datos, Cálculo científico, Procesamiento de textos, Diseño asistido por computador, Control de procesos, Planillas de cálculo, Sistemas de graficación, Planificación empresarial, etc.
Sistemas de desarrollo
Son conjuntos de programas destinados a la generación de aplicaciones. Estos se pueden clasificar de diversas maneras:
  • De acuerdo a su nivel de abstracción
  • Lenguajes de bajo nivel de abstracción: Son lenguajes en que el programador debe especificar las tareas que debe realizar el computador, desde un punto de vista muy cercano al hardware (Assembler, código de máquina, etc.)
  • Lenguajes de alto nivel de abstracción: El programador manipula entidades abstractas, sin involucrarse en los detalles de su implementación interna (Pascal, Fortran, C, Basic, C++, Prolog, Lisp, Logo, Cobol, Ada, PL1, RPG, Mathematica, etc.).
  • De acuerdo a las metodologías de programación utilizadas
  • Lenguajes Imperativos: Son aquellos en que el programador debe especificar en forma detallada el flujo del programa. (Assembler, C, Basic, Fortran, Pascal, etc.).
  • Lenguajes Declarativos: Son aquellos en que el programador debe poner énfasis en la definición del problema, más que en su solución, descansando esta última en mecanismos del lenguaje mismo. (Prolog, Lisp, etc).
  • Lenguajes Orientados a Objetos: El programador define entidades (objetos) caracterizadas por un estado interno, y un conjunto de mecanismos capaces de modificarlo. Esto permite abstraer entidades físicas con más facilidad, brindando una manera más directa para la modelización de un problema. (C++, Smalltalk, Objective C, Eiffel, CLOOS, ADA, HyperCard, etc.)
  • Lenguajes Mixtos: Son aquellos que permiten al programador mezclar metodogías de programación (Mathematica, SMP, Nexpert Object, etc.).
  • De acuerdo a la manera de ejecutar un programa
  • Intérpretes: Son aquellos en que existe un proceso adicional al programa, que se encarga de ir traduciendo las sentencias del programa a lenguaje de máquina, durante la ejecución misma. Otorgan flexibilidad, pero a costa de pérdida de eficiencia.
  • Compiladores: El proceso de traducción a código de máquina se realiza antes de la ejecución. Esto aumenta considerablemente la eficiencia, a costa de pérdida en la flexibilidad durante el desarrollo de un programa.
  • Ambientes de programación: Son ambientes ricos para el programador, facilitando la tarea de desarrollo, depuración y prueba de un programa.

No hay comentarios.:

Publicar un comentario