Hardware y SoftWare
Definamos ambos elementos: Hardware: elemento físico de un computador. Incluye todos los materiales como la propia computadora, los dispositivos externos, los cables, los soportes de la información, etc.
Software: conjunto de elementos lógicos necesarios para que los computadores puedan realizar las tareas encomendadas. Dota al equipo físico de capacidad para prestar servicios a los usuarios. El hardware es completamente inútil sin el software, ya que no permite realizar ninguna operación. En un principio, el hardware tenía más peso específico que el software: había grandes y caras computadoras dotadas de pocos y pequeños programas. Hoy en día el software tiene mayor peso específico que el hardware. Metodología y tecnología de la programación (I) 12/24 En ocasiones el hardware lleva "empotrado" software; que se denomina Firmware.
Éste puede definirse como el software que las computadoras tienen pregrabado desde su fabricación y que suele estar en memorias de sólo lectura (ROM- Read Only Memory). Los ordenadores son máquinas que realizan lo que se denomina tratamiento de la información, y los programas determinan el tratamiento que debe de realizarse sobre la información. El tratamiento de la información puede estructurarse en:
1. Entrada de datos (se toman los datos del exterior y se envían a la computadora)
2. Almacenamiento de datos
3. Proceso Aritmético-Lógico
4. Salida (proporcionar los resultados a las personas o entidades correspondientes)
5. Almacenamiento de resultados La gran versatilidad de los ordenadores consiste en que la misma máquina (mismo hardware) puede efectuar tareas muy distintas dependiendo de los programas que ejecute.
3.1 El hardware El hardware es la parte física del equipo. Sus componentes principales son: CPU (Central Process Unit - Unidad Central de Proceso) o procesador: es un circuito integrado con capacidad de ejecutar instrucciones de un lenguaje elemental llamado lenguaje máquina o código máquina. Es el elemento principal del ordenador. Memoria Principal o memoria RAM: Es un espacio de almacenamiento donde se guardan: • Las instrucciones del programa a ejecutar. • Las variables donde se almacenan los datos iniciales, intermedios y finales. Dispositivos de E/S: permiten que el ordenador se comunique con el exterior. Los más comunes son la salida estándar (pantalla) y la entrada estándar (teclado). Para comunicarse entre sí estos dispositivos emplean el bus de datos. Veamos más detalle cada uno de estos componentes. Metodología y tecnología de la programación (I) 13/24 3.1.1 La CPU La CPU es el elemento principal, el centro neurálgico del ordenador. Su misión consiste en coordinar y realizar todas las operaciones del ordenador. Para ello extrae una a una las instrucciones del programa que está ejecutando, las analiza y emite las órdenes necesarias para su ejecución. Físicamente está formada por circuitos electrónicos que se encuentran integrados en un chip de silicio. Los distintos circuitos del chip se construyen sobre una oblea de silicio empleando técnicas similares a las que emplea una fotocopiadora para crear copias de una hoja. En la actualidad en una CPU hay del orden de decenas de millones de transistores.
La CPU consta de: • Unidad de Control (Control Unit, CU). Se encarga de gobernar al resto de las unidades. Interpreta y ejecuta las instrucciones y controla su secuencia. Contiene un reloj o generador de pulsos que sincroniza todas las operaciones elementales. La frecuencia de reloj (que suele darse en ciclos/segundo, habitualmente MegaHercios, MHz o GigaHercios, GHz) que determina la velocidad de funcionamiento del ordenador. En 1974 la velocidad típica de una CPU era de 2 MHz, hoy en día está entre los 2 y los 3 GHz. • Unidad Aritmético-lógica (Arithmetic-Logic Unit, ALU).
Se encarga de realizar todas las operaciones elementales de tipo aritmético (sumas, restas, productos y divisiones) y lógico (ej. comparaciones). La longitud de la palabra de CPU es el número de bits máximo de los datos con los que opera la ALU. En los ordenadores Metodología y tecnología de la programación (I) 14/24 de propósito general las longitudes de palabras típicas hoy en día son de 32 bits y 64 bits. Los procesadores de propósito específico orientados al procesado de imágenes (como las CPU de las vídeoconsolas) tienen longitudes de palabra superiores (128 bits). • Banco de registros (pequeñas unidades de almacenamiento de memoria). Son dispositivos de alta velocidad para almacenar datos o instrucciones temporalmente. Son la zona más alta en la jerarquía de memoria. Hay una serie de registros especiales como el contador de programa, que almacena la dirección de la siguiente instrucción ejecutar, registros que almacenan el estado del ordenador, etc. Hoy en día, gracias a la gran capacidad de integración de los circuitos de silicio, también suele incluirse cierta cantidad de memoria RAM dentro de la CPU, cuyo tamaño ronda el Megabyte.
3.1.2 La memoria RAM La memoria central, memoria principal o memoria RAM (Random Access Memory) se encarga de almacenar los programas y datos necesarios para el funcionamiento del sistema informático. Para que un programa pueda ser ejecutado tanto sus instrucciones como los datos que haya que procesar tienen que estar en esta memoria. Es volátil, esto es, se borra al apagar el ordenador ya que requiere de alimentación de corriente continuada para conservar la información que almacena. Está constituida por multitud de celdas o posiciones de memoria idénticas numeradas de forma consecutiva. La numeración de cada celda se denomina dirección de memoria y mediante esta dirección se puede acceder de forma directa a cualquiera de sus celdas. Por ello se dice que el acceso a esta memoria es directo o aleatorio. La Metodología y tecnología de la programación (I) 15/24 longitud de palabra de memoria es la cantidad de información (expresada en bits) que puede introducirse o extraerse de la memoria central de una sola vez. Los tamaños de palabra de memoria típicos actuales son 32 y 64 bits. Normalmente el tamaño de la memoria se expresa como algún múltiplo de 210=1024 bytes, esto es 1K. Actualmente el tamaño de la memoria suele ascender a cientos de Megabytes (1 M = 210 K) o Gigabyte (1 G=1024 M). A principios de la década de los 80 la capacidad de almacenamiento típica de un ordenador personal era del orden de unos pocos cientos de Kilobytes. Otro tipo de memoria que merece mención es la memoria ROM (Read Only Memory).
El contenido de esta permanece al desconectar el ordenador. Normalmente contiene instrucciones necesarias para que el hardware del equipo comience a funcionar. Es una memoria donde no se puede escribir nada, sólo se puede leer su contenido.
3.1.3 Dispositivos de entrada y salida Los dispositivos de entrada y salida (E/S) permiten la comunicación entre el ordenador y el resto del mundo. Actualmente los ordenadores incluyen tres tipos de dispositivos típicos para llevar a cabo las operaciones de entrada y salida: • Interfaz con el usuario. Permiten al ordenador comunicarse directamente con el ser humano. Los dispositivos de entrada más comunes son el ratón y teclado; otros son lápices ópticos, el micrófono, escáneres, cámaras de vídeo, lectores de códigos de barras, etc. Los dispositivos más típicos de salida son el monitor y la impresora; otros son Metodología y tecnología de la programación (I) 16/24 altavoces, ploters, proyectores, etc. • Conexión con los dispositivos de almacenamiento. Los dispositivos de almacenamiento solventan el problema de la volatilidad de la memoria RAM y proporcionan mayor capacidad de almacenamiento que ésta; el precio a pagar por estas ventajas es una velocidad de acceso mucho menor. Actualmente se usan distintas tecnologías para los dispositivos de almacenamiento: dispositivos de almacenamiento magnéticos (discos duros, diskettes y cintas), ópticos (CDROM y DVD) y microelectrónicos (lápices USB).
El disco duro constituye el principal almacenamiento del ordenador, siendo el dispositivo que permite un acceso más rápido y un mayor espacio de almacenamiento (también tienen el precio más alto). Es por ello que cuando la memoria RAM no resulta suficiente para almacenar toda la información se vuelca una parte del contenido de ésta al disco duro; a esta información se la denomina memoria virtual. El tamaño típico del disco duro actualmente ronda los 300 Gigabytes. • Conexiones a redes. Hay dos formas básicas de conexión a la red: conexión a red telefónica y conexión a la red de área local. La primera se lleva a cabo conectando al PC un dispositivo denominado módem y la segunda se realiza a través de una tarjeta de red.
3.1.4 El bus del sistema El bus es el mecanismo de comunicación entre los elementos de un ordenador. Está constituido por múltiples líneas que permiten indicar la dirección de memoria donde están los datos a tratar, transmitir señales de control a las líneas de datos y dirección, y transmitir los propios datos sobre los cuales opera el ordenador. Toda esta información circula en paralelo por el bus, por lo que cuando un dispositivo lo está usando ninguno más puede acceder a él. La mayor parte del tráfico del bus lo causan los accesos de la CPU a la memoria RAM. Los dispositivos de entrada y salida no se conectan directamente al bus del sistema; se conectan mediante un controlador, esto es, un circuito impreso que conoce el funcionamiento del dispositivo de entrada y salida y hace las veces de mediador para el intercambio de información entre el dispositivo y el resto del sistema. Metodología y tecnología de la programación (I) 17/24
3.2 El software Los programas o software están compuestos por un conjunto de instrucciones que operan sobre un conjunto de datos de entrada para generar un conjunto de datos de salida. Una instrucción es un conjunto de símbolos que representa una orden de operación o tratamiento para la computadora. Podemos definir programa como un conjunto de instrucciones que ejecuta un ordenador para realizar un proceso determinado. El concepto de programa está íntimamente ligado al concepto de ordenador, ya que un ordenador es una máquina que ejecuta las instrucciones codificadas en el programa. El ordenador está compuesto por un conjunto de circuitos electrónicos que tienen una serie de señales eléctricas de entrada y como resultado de su operación genera una serie de señales eléctricas de salida. En función de la intensidad de las señales se codifica la información: si las señales llevan intensidad (o se les ha aplicado un voltaje) se consideran 1s. Si las señales no llevan intensidad se consideran como 0s. Existen dos tipos de señales claramente diferenciadas. Por un lado, las que están orientadas al control operación de los componentes electrónicos del ordenador que, por tanto, sirven para controlar el funcionamiento interno. Las otras señales están ligadas a las instrucciones que debe ejecutar el ordenador y a los datos que se van a procesar. CPU RAM Controladores E/S Bus del sistema Metodología y tecnología de la programación (I) 18/24 El objetivo de esta asignatura es enseñar al alumno a construir programas que realicen un procesado de cierta información acorde a unas especificaciones dadas. En un principio, la programación de los ordenadores se realizaba mediante tarjetas perforadas donde la ausencia o presencia de agujeros indicaba 1 un 0. Afortunadamente, hoy en día existen formas mucho más simples y elegantes de crear programas: los lenguajes de programación, que definen el conjunto de símbolos y reglas para construir o redactar programas. La CPU es la encargada de ejecutar los programas. Para ello lee de forma ordenada una lista de instrucciones, las interpreta y controlar la ejecución de cada una de ellas. Las instrucciones se ejecutan de forma consecutiva una detrás de otra. Para ejecutar cada instrucción la CPU realiza los siguientes pasos:
1. Lee de la memoria la instrucción que tiene que ejecutar y la guarda en un registro interior de la CPU. 2. Identifica la instrucción que acaba de leer.
3. Comprueba si las instrucciones necesitan utilizar datos que se hallan en la memoria (y no en un registro interno de la CPU). Si es así, determina donde debe ir a buscar estos datos.
4. Trae los datos sobre los que va a operar a la CPU.
5. Ejecuta la instrucción.
6. Almacena el resultado de la ejecución. Metodología y tecnología de la programación (I) 19/24 Hardware Programas de control Utilidades Sistema Operativo Usuario Aplicaciones
7. Si hay un salto de secuencia, calcula la dirección de la siguiente instrucción ejecutar; si no hay ningún salto continúa ejecutando la siguiente instrucción. Una aplicación informática es conjunto de uno o varios programas, y su documentación correspondiente, cuyo fin es realizar un determinado trabajo.
La documentación permite al usuario de la aplicación comprender su funcionamiento y manejarla. Por sistema informático se entiende el conjunto de elementos necesarios (computadoras, terminales, impresoras, etc.) para la realización y explotación de aplicaciones informáticas.
Un sistema informático requiere de varios tipos diferentes de software (programas) que veremos a continuación.
3.2.1 Software de sistema y de aplicación Hay dos tipos diferentes de software: el software de sistema y software de aplicación. El software de sistema es aquél que proporciona los mecanismos de gestión del hardware y las utilidades para desarrollar aplicaciones. Sirve como base para desarrollar programas y para que el software de aplicación pueda acceder al hardware, permitiendo así aislar al programador de los detalles de bajo nivel de la máquina e incrementando su productividad. El sistema operativo es, sin duda, el software de sistema más importante de un ordenador. Este software controla y gestiona a los recursos hardware del ordenador, entre ellos la CPU, la memoria RAM y los dispositivos de entrada y salida. Sus funciones más destacadas son la gestión de los programas en ejecución, permitiendo que varios programas puedan compartir la CPU y los diversos recursos del ordenador; la Metodología y tecnología de la programación (I) 20/24 asignación de memoria los programas para que éstos puedan ejecutarse; la gestión de los controladores de los dispositivos de entrada y salida; la gestión del sistema de archivos proporcionando una organización lógica de los sistemas de almacenamiento a través de volúmenes, directorios y archivos; etc. Un sistema operativo contiene programas de control, que se ocupan de controlar al equipo físico en todos sus aspectos, y contiene programas de utilidad o aplicaciones, que se encargan de ayudar al usuario en trabajos típicos, como formatear disquetes, manejar ficheros, etc. Además del sistema operativo, el software de sistema incluye editores para introducir textos y programas en el ordenador, compiladores, intérpretes, etc. y una serie de herramientas que permiten al programador crear software. El software de aplicación o aplicaciones se compone de programas diseñados para que el usuario interaccione de modo simple con el ordenador con el objeto de realizar una determinada tarea. Es el software que utiliza todo el mundo: procesadores de texto, navegadores web, clientes de correo electrónico, hojas de cálculo, agendas electrónicas etc. Este software es el responsable del éxito de los computadores actuales, ya que proporciona un conjunto de servicios muy atractivos a un usuario que no tiene necesariamente conocimientos sobre el funcionamiento interno del ordenador ni de los programas.
3.2.2 Lenguajes de programación Los lenguajes de programación sirven para escribir programas que permitan a un ordenador prestar diversos servicios a los usuarios. Hay tres tipos de lenguajes: lenguaje máquina, lenguaje ensamblador y lenguajes de alto nivel. 3.2.2.1 Lenguaje Máquina Es el lenguaje que entiende directamente el procesador de un ordenador. En la práctica, no se utiliza para programar porque: • Requiere un conocer con detalle el diseño del procesador y es distinto para cada modelo. Metodología y tecnología de la programación (I) 21/24 • Tanto los datos como las instrucciones se representan numéricamente (en binario o hexadecimal). Por ejemplo, 3F2 puede significar "ver si el valor en el registro CX es mayor que 0''. • Las instrucciones son muy elementales: suma, comparación, copia, etc. de números o posiciones de memoria. Los circuitos electrónicos de la unidad de control de un ordenador sólo pueden interpretar instrucciones en lenguaje máquina. Por tanto, cualquier programa escrito en cualquier otro lenguaje de programación para poder ejecutarse en un ordenador tendrá que traducirse a lenguaje máquina.
3.2.2.2 Lenguaje Ensamblador Es equivalente al lenguaje máquina, pero las instrucciones se indican con palabras cortas (mnemónicos) en lugar de números. Por ejemplo, la instrucción CMP fue servir para comparar comparar dos valores, ADD para sumar dos valores, etc. A cada instrucción de ensamblador le corresponde una única instrucción de código máquina. La traducción de ensamblador a código máquina la realiza un programa que también se denomina Ensamblador. En la imagen podemos observar a la derecha un programa escrito en código ensamblador y a la izquierda su traducción a código máquina. El programa calcula la suma de los 10 primeros números enteros. Como podemos observar, la programación en lenguaje ensamblador sigue siendo bastante tediosa. Metodología y tecnología de la programación (I) 22/24
3.2.2.3 Lenguajes de más alto nivel Los lenguajes de alto nivel son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y ensambladores. Otra de sus ventajas es que son independientes del procesador. Esto hace que los programas sean portables sobre distintos tipos de ordenadores. Su sintaxis es más fácil de entender y recordar para una persona: do ... while (hacer mientras), open (abrir), .... y poseen instrucciones potentes (de control de flujo, manejo de ficheros, creación de gráficos), con lo que los programas son más cortos. Ejemplos de estos lenguajes son Pascal, BASIC, C, C++, COBOL, Java, C#, etc. Estos lenguajes en la actualidad suman varios cientos sino miles. El motivo de que haya tantos lenguajes es que, habitualmente, cada lenguaje de programación ha sido diseñado para resolver un tipo de problemas y el abordar desde ese lenguaje de programación problemas diferentes de aquellos para los que fue pensado puede resultar muy tedioso e incluso imposible. En la figura podemos ver el fragmento de código C que permite calcular el valor de la suma de los primeros 10 valores enteros. Como los procesadores sólo "entienden" instrucciones escritas en lenguaje máquina es necesario traducir a código máquina los programas escritos en lenguajes de alto nivel. Esta labor de traducción la realizan los compiladores y los intérpretes. Los compiladores traducen el código fuente generando un programa en lenguaje máquina. Al fichero que genera el compilador se denomina fichero objeto. Generalmente la compilación produce un programa en código máquina que todavía no es ejecutable, ya que está incompleto. Esto se debe a que casi siempre los programas Metodología y tecnología de la programación (I) 23/24 dependen de recursos externos denominados librerías; esto es, ficheros binarios que se han obtenido compilando programas, habitualmente escritos en el mismo lenguajes de programación que nuestro programa, y que proporcionan funcionalidad en la que se apoya nuestro software. Por ello existe una etapa posterior llamada enlace. En ella, el programa enlazador combina uno o varios ficheros objeto con las librerías para producir el fichero ejecutable. Los compiladores identifican errores sintácticos en el programa fuente y realizan tareas de optimización de código (ej.- eliminan código redundante). En ocasiones el código fuente antes de ser compilado sufre una serie de modificaciones que simplifican el trabajo del compilador como, por ejemplo, eliminar comentarios del código fuente cuya misión es facilitar la comprensión del código por parte de los programadores y que no contiene ningún tipo de instrucción que se deba ejecutar la CPU ni datos. En estos programas se les denomina preprocesadores. Los intérpretes son programas de traducción que, en lugar de generar código objeto, analizan cada una de las instrucciones del programa fuente y las van ejecutando una a una. De este modo se consiguen programas completamente independientes del hardware. Uno de los lenguajes más populares de este tipo es JavaScript, un lenguaje que se emplea para crear pequeños programas que se ejecutan al cargar una página web en un navegador. En la interpretación no se genera código máquina, es necesario el intérprete para poder ejecutar el programa y su ejecución es lenta, ya que al mismo tiempo se realiza el análisis del programa y su interpretación. En la compilación se genera código máquina que se guarda en un fichero, una vez obtenido el fichero ejecutable no se necesita el compilador y Metodología y tecnología de la programación (I) 24/24 su ejecución es más rápida. En la actualidad los lenguajes interpretados, debido su mayor portabilidad, a la mayor facilidad para el desarrollo de aplicaciones, y a las mayores posibilidades de interacción entre los distintos programas, se están imponiendo sobre los compilados, si bien se realiza una traducción a código máquina (al menos de las partes más críticas del programa) en tiempo de ejecución por motivos de eficiencia.
Fuentes:Autoría Propia
Comentarios
Publicar un comentario