Generalidades Computacionales

Anuncio
Capı́tulo 2
Generalidades Computacionales
2.1.
Introducción a los Computadores
Definición: Un computador es un dispositivo electrónico que puede transmitir, almacenar,
recuperar y procesar información (datos). Es capaz de realizar cálculos y tomar decisiones
lógicas a velocidades de millones(incluso miles de millones) de veces mas rápidas que los
humanos.
Los computadores realizan el procesamiento de los datos, por medio de un conjunto de
instrucciones llamados programas. El ordenamiento y la lógica de los programas esta
definida por un conjunto de personas llamados programadores.
El computador se divide fundamentalmente en una parte fı́sica llamada Hardware y una
parte lógica, es decir un conjunto de instrucciones que hacen funcionar el computador
llamada Software.
11
12
CAPÍTULO 2. GENERALIDADES COMPUTACIONALES
2.2.
Hardware
La parte fı́sica del computador agrupa una serie de dispositivos que se dividen de acuerdo
a las tareas que realiza en:
Dispositivos de entrada/salida.
Dispositivos de memoria.
Dispositivos de comunicación.
Dispositivo de procesamiento.
2.2.1.
Dispositivos de entrada/salida
Los dispositivos de entrada/salida son los dispositivos que permiten la comunicación entre
el usuario y el computador. Al igual que los dispositivos de almacenamiento secundario, a
los dispositivos de Entrada/Salida también se les denomina periféricos que normalmente
son externos al computador.
Los dispositivos de entrada son los que permiten ingresar datos al computador que normalmente
son almacenados en la memoria central y algunos de ellos son el teclado, el ratón, el scaner,
el micrófono, etc.
los dispositivos de salida son aquellos que permiten mostrar resultados de la información
procesada. Entre estos dispositivos los más comunes son el monitor y la impresora.
Las ultimas generaciones de computadores pueden dar entrada o salida de información a
través de redes locales o globales como la Internet.
2.2. HARDWARE
2.2.2.
13
Dispositivos de memoria
Los dispositivos de memoria son aquellos donde el computador puede almacenar información
nueva y/o recuperar información previamente guardada. Los más comunes son los discos
duros, discos flexibles, usb, CDs y DVDs.
La memoria es una zona organizada en unidades o celdas individuales de almacenamiento.
La mı́nima unidad de almacenamiento es denominada byte, la cual tiene capacidad para
almacenar un carácter de información. Un byte esta conformado por 8 bits (binary digit),
que son dı́gitos binarios 0 y 1.
2.2.3.
Dispositivos de comunicación
Los dispositivos de comunicación son aquellos que permiten al computador comunicarse
con otros equipos en red o a Internet para permitir la entrada y salida de información.
Algunos de estos dispositivos son el módem, la tarjeta de red y los Routers.
2.2.4.
Dispositivo de Procesamiento
El dispositivo de procesamiento le permite al computador dirigir y controlar tanto el
procesamiento de la información como el funcionamiento de los demás dispositivos. Se
encuentra conformado por 3 partes fundamentales:
La unidad central de proceso
La Memoria
El bus de datos y direcciones
14
CAPÍTULO 2. GENERALIDADES COMPUTACIONALES
2.2.4.1.
La unidad central de proceso
La unidad central de proceso o CPU (Central Process Unit), es el cerebro del computador
y es la que manipula la información de la memoria, realizando los cálculos y comunicándose
con los diferentes dispositivos mediante el bus de datos.
La unidad central de proceso consta de 2 componentes: la Unidad de Control y la unidad
aritmético lógica(ALU).
Unidad de Control: Es la encargada de coordinar las actividades del computador,
sincronizando las operaciones para que se realicen en un orden especı́fico, solicitando
la datos de los dispositivos de entrada, enviándolos a la unidad aritmético lógica,
coordinando como deben ser procesados y enviando la información procesada a los
dispositivos de salida.
Unidad Aritmético lógica: Es la encargada de realizar las operaciones aritméticas
y comparaciones lógicas.
2.2.4.2.
La Memoria
Debido a que el procesador no tiene la gran cantidad de memoria necesaria para almacenar
instrucciones y datos de programa, deben emplearse transistores como elementos de memoria
auxiliar en combinación con el microprocesador.
Los tipos de memoria auxiliar son:
RAM:(Random Access Memory) Esta es la memoria de acceso aleatorio, que puede
ser leı́da y escrita por el procesador tantas veces como sea necesario mientras el
computador este encendido, ya que su información es temporal y se borra una vez se
apaga el computador.
2.3. SOFTWARE
15
ROM:(Read Only Memory) Esta memoria es de solo lectura ya que puede ser leı́da
pero no modificada. En esta memoria se almacenan el software de arranque del
sistema operativo y no se altera una vez se apague el computador.
Cache: Esta memoria es de reserva temporal para los datos que recientemente fueron
leı́dos o escritos y sirve para evitar demoras en el manejo de los datos del disco duro
o memorias secundarias, ya que por ejemplo cuando se solicita información del disco
duro, parte de ésta se almacena en cache y si nuevamente se solicita la información
no se busca en el disco duro sino en cache haciendo más rápido el proceso.
2.2.4.3.
El bus de datos y direcciones
Es un conjunto de lı́neas conductoras de información, utilizadas para la transmisión de datos
entre los diferentes componentes del computador, como el procesador, el disco duro, los
dispositivos de memoria y los puertos de entrada/salida. El bus que conecta componentes
internos de la computadora se llama bus local o bus del procesador y el que conecta las
estaciones de red de denomina bus de red.
2.3.
Software
2.3.1.
Programa
Los programas son una lista de instrucciones que se ejecutan secuencialmente, que le indican
a un computador las acciones que debe realizar, como resolver un problema o las decisiones
que debe tomar.
La ejecución secuencial indica que cada instrucción debe ejecutarse una después de otra,
pero aunque este tipo de programas son los más comunes, actualmente se viene desarrollando
otro tipo de programación llamada programación en paralelo.
16
CAPÍTULO 2. GENERALIDADES COMPUTACIONALES
La programación en paralelo permite que las instrucciones se pueden ejecutar simultáneamente
en varios procesadores del mismo equipo, si la configuración del computador lo permite,
o distribuida en una red, para que varios equipos por ejemplo de una misma empresa,
realicen una parte de los cálculos que conforman entre si una tarea general.
Un conjunto de programas se denomina Software.
El software se clasifica en tres grupos:
Software de sistema.
Software de desarrollo
Software de aplicación.
2.3.2.
Software de sistema
A este tipo de software pertenecen los sistemas operativos, que son los programas que
controlan y supervisan todas las actividades para que el computador funcione. El sistema
operativo ofrece e interpreta comandos para que el usuario siendo o no programador pueda
interactuar con el computador, ya sea mediante información tecleada o mediante interpretes
gráficos que son más fáciles de manejar mediante un ratón haciendo click en la opción
deseada.
2.3.3.
Software de desarrollo
El software de desarrollo es un software especial para crear y mantener nuevo software,
además de permitir la comunicación usuario/maquina.
Ejemplos de este software son programas como C, el pascal, el fortran y el Visual Basic
entre otros.
2.4. LENGUAJES DE PROGRAMACIÓN
2.3.4.
17
Software de aplicación
Este tipo de software es también llamado paquetes y es construido para que realice una
tarea especı́fica que no es la de crear nuevos programas.
Ejemplo de este software son las editores de texto, las hojas de cálculo, los manejadores de
bases de datos, diseñadores de gráficos, reproductores de sonido y los juegos entre otros.
2.4.
Lenguajes de programación
Los lenguajes de programación permiten al usuario escribir algoritmos, es decir una secuencia
de instrucciones para que sean interpretadas por un computador.
Los lenguajes de programación se clasifican en:
Lenguaje de Máquina.
Lenguaje ensamblador.
Lenguaje de alto nivel.
2.4.1.
Lenguaje de Máquina
El lenguaje de máquina es el único usado directamente por el computador y compuesto
de instrucciones en código binario. Es de difı́cil utilización por los usuarios y de lenta
implementación hasta para realizar los programas mas sencillos.
18
2.4.2.
CAPÍTULO 2. GENERALIDADES COMPUTACIONALES
Lenguaje ensamblador
Este lenguaje es más fácil de programar que el lenguaje de máquina ya que sus instrucciones
son nemotécnicas, es decir son abreviaturas de fácil recordación, algunas de estas son
STORE(grabar), ADD(adicionar o sumar) y JUMP(saltar), entre otras.
El lenguaje ensamblador interpreta instrucciones que son llevadas a lenguaje de maquina
para ser ejecutadas por el hardware.
El gran inconveniente de programar en lenguaje ensamblador es que las instrucciones
dependen de la maquina en la que se trabaja y si cambia a otro computador, todas la
instrucciones cambian.
El requerimiento de que los programas tuvieran instrucciones más estándar y de fácil
estructuración, además de que funcionaran independiente de la máquina en la que se este
trabajando, insidio para la creación de los lenguajes de alto nivel.
2.4.3.
Lenguaje de alto nivel
Los lenguajes de alto nivel son lenguajes fabricados especı́ficamente para que los usuarios
realicen sus propios programas, los cuales traen muchas ayudas, poseen en muchos casos
un entorno visual que es más amigable para el usuario y facilita su utilización.
Los programas escritos en lenguajes de alto nivel son independientes del hardware y pueden
funcionar en un computador diferente al que fue realizado, ya que el manejo de direcciones
y otros requerimientos fı́sicos son manejador internamente por el programa.
Los lenguajes de alto nivel se dividen en Interpretes y Compiladores.
2.4. LENGUAJES DE PROGRAMACIÓN
2.4.3.1.
19
Interpretes
Los interpretes son traductores de código que toman un programa fuente de alto nivel y lo
convierten en lenguaje de máquina para que el procesador pueda ejecutar las operaciones
requeridas.
Algunos ejemplos de este tipo de programas son el BASIC1 y el LOGO2 .
Un inconveniente que tienen los interpretes es que cuando traducen ciclos3 , que son muy
comunes en programación, se genera una lı́nea de código de máquina nueva por cada vez
que se repite el ciclo, generado un volumen considerable de nuevas instrucciones y haciendo
más lenta la ejecución que los programas en lenguaje de máquina.
2.4.3.2.
Compiladores
Los compiladores toman un archivo fuente escrito en un lenguaje de alto nivel y lo traducen
integro a un código llamado código objeto que contiene instrucciones de lenguaje de
máquina, con lo que hace que ejecutarlo sea tan rápido como si hubiera sido escrito en
lenguaje de máquina.
Algunos de los compiladores más conocidos son el C, El pascal, Fortran4 , QuickBasic,
entre otros.
1 Beginners
All-purpose Symbolic Instruction Code (Código de Instrucciones Simbólicas de Uso General
para Principiantes).El lenguaje BASIC se suele enseñar a los programadores principiantes porque es fácil
de utilizar y de comprender.
2 El LOGO posee un entorno gráfico sencillo que utiliza una tortuga que deja un rastro con movimientos
básicos arriba,abajo, izquierda o derecha.
3 Un ciclo es un conjunto de instrucciones que la computadora ejecuta repetidamente, mientras una
condición permanezca verdadera.
4 FORmula TRANslation (traducción de fórmulas). El primer lenguaje de programación de alto nivel
para computadoras desarrollado 1954 por Jim Backus, en la actualidad es rara vez usado por existir otros
más potentes y flexibles.
20
2.5.
CAPÍTULO 2. GENERALIDADES COMPUTACIONALES
Computadores personales y cliente servidor
En el principio de la industria computacional, solo era un sueño que un computador
pudiera estar en los hogares. Debido a los grandes tamaños de los primeros computadores
y los costos que implicaba adquirirlos y mantenerlos; solo era posible para potencias que
financiaban proyectos de algunas universidades, que en la mayorı́a de los casos eran con
fines militares.
Solo hasta 1977,Apple Computers gracias a que la tecnologı́a permitió fabricar equipos más
económicos, introduce los llamados computadores personales para los negocios y por
primera vez para el hogar; ya que hasta el momento los equipos que fabricaban las grandes
empresas, por su gran volumen requieran de varias personas para hacerlos operar.
En 1981 la IBM,(mayor vendedor de computadores del mundo para la época), masificó la
utilización del computador personal en la entidades tanto del estado, las industrias, las
grandes y pequeñas empresas, para hacerse rápidamente común en los hogares de los paı́ses
desarrollados.
En las empresas los computadores de cada puesto de trabajo que inicialmente no tenian
mucha capacidad de computo, se interconectan entre si para formar una pequeña red y
fue ası́ como se pone en practica la llamada computación distribuida donde las tareas ha
realizar, se distribuyen en toda la red para que los equipos con menor carga de trabajo
realicen procesamiento de aquellos con mayor carga.
En cuanto las computadoras tienen mayor capacidad de procesamiento, se hacia más
evidente que los usuarios desperdiciaban esta capacidad, a la espera de repuesta de los
lentos dispositivos de entrada y salida; es por esto que se implemento el concepto de tiempo
compartido donde los usuarios que solo tienen un monitor y un teclado comparten una
misma maquina central(estructura muy utilizada en los bancos), que es tan rapida en sus
respuestas, que pareciera que las tareas las resolviera simultáneamente o en paralelo.
2.5. COMPUTADORES PERSONALES Y CLIENTE SERVIDOR
21
Actualmente a pesar de que los equipos tienen mayor capacidad de almacenamiento, en
algunas empresas no se requiere que todos las estaciones de trabajo de la red, tengan todos
los programas y los datos que son comunes entre ellas; Esta información es almacenada
en un equipo central llamado servidor que realiza el control, gestiona el procesamiento, el
envio y la recepcion de los datos de los clientes como son llamadas todas las estaciones de
trabajo de la red, con lo que se genera la computación Cliente-Servidor.
Los lenguajes C, C++ y java permiten desarrollar programas como sistemas operativos,
software para computación distribuida y aplicaciones Cliente-Servidor.
Descargar