En 1945, John von
Neumann, que había trabajado con Eckert y Mauchly en la Universidad
de Pensilvania, publicó un artículo acerca del almacenamiento de
programas. El concepto de programa almacenado permitió la lectura de
un programa dentro de la memoria de la computadora, y después la
ejecución de las instrucciones del mismo sin tener que volverlas a
escribir. La primera computadora en usar el citado concepto fue la
la llamada EDVAC (Eletronic Discrete-Variable Automatic Computer, es
decir computadora automática electrónica de variable discreta),
desarrollada por Von Neumann, Eckert y Mauchly.
Los programas
almacenados dieron a las computadoras una flexibilidad y
confiabilidad tremendas, haciéndolas más rápidas y menos sujetas a
errores que los programas mecánicos. Una computadora con capacidad
de programa almacenado podría ser utilizada para varias aplicaciones
cargando y ejecutando el programa apropiado.
Hasta este punto, los
programas y datos podría ser ingresados en la computadora sólo con
la notación binaria, que es el único código que las computadoras
"entienden". El siguiente desarrollo importante en el diseño de las
computadoras fueron los programas intérpretes, que permitían a las
personas comunicarse con las computadoras utilizando medios
distintos a los números binarios.
En 1952 Grace Murray
Hoper una oficial de la Marina de E.U., desarrolló el primer
compilador, un programa que puede traducir enunciados parecidos al
inglés en un código binario comprensible para la maquina llamado
COBOL (Common Business-Oriented Languaje).
Generaciones de
computadoras
Primera Generación de
Computadoras
(de 1951 a 1958)
Las computadoras de
la primera Generación emplearon bulbos para procesar información.
Los operadores ingresaban los datos y programas en código especial
por medio de tarjetas perforadas. El almacenamiento interno se
lograba con un tambor que giraba rápidamente, sobre el cual un
dispositivo de lectura/escritura colocaba marcas magnéticas. Esas
computadoras de bulbos eran mucho más grandes y generaban más calor
que los modelos contemporáneos. Eckert y Mauchly contribuyeron al
desarrollo de computadoras de la 1era Generación formando una Cia.
privada y construyendo UNIVAC I, que el Comité del censó utilizó
para evaluar el de 1950. La IBM tenía el monopolio de los equipos de
procesamiento de datos basándose en tarjetas perforadas y estaba
teniendo un gran auge en productos como rebanadores de carne,
básculas para comestibles, relojes y otros artículos; sin embargo no
había logrado el contrato para el Censo de 1950.
Comenzó entonces a
construir computadoras electrónicas y su primera entrada fue con la
IBM 701 en 1953. Después de un lento pero excitante comienzo la IBM
701 se convirtió en un producto comercialmente viable. Sin embargo
en 1954 fue introducido el modelo IBM 650, el cual es la razón por
la que IBM disfruta hoy de una gran parte del mercado de las
computadoras. La administración de la IBM asumió un gran riesgo y
estimó una venta de 50 computadoras. Este número era mayor que la
cantidad de computadoras instaladas en esa época en E.U. De hecho la
IBM instaló 1000 computadoras. El resto es historia. Aunque caras y
de uso limitado las computadoras fueron aceptadas rápidamente por
las Compañías privadas y de Gobierno. A la mitad de los años 50 IBM
y Remington Rand se consolidaban como líderes en la fabricación de
computadoras.
- Segunda Generación
(1959-1964)
Transistor
Compatibilidad
limitada
El invento del
transistor hizo posible una nueva generación de computadoras, más
rápidas, más pequeñas y con menores necesidades de ventilación. Sin
embargo el costo seguia siendo una porción significativa del
presupuesto de una Compañía. Las computadoras de la segunda
generación también utilizaban redes de núcleos magnéticos en lugar
de tambores giratorios para el almacenamiento primario. Estos
núcleos contenían pequeños anillos de material magnético, enlazados
entre sí, en los cuales podían almacenarse datos e instrucciones.
Los programas de
computadoras también mejoraron. El COBOL desarrollado durante la
1era generación estaba ya disponible comercialmente. Los programas
escritos para una computadora podían transferirse a otra con un
mínimo esfuerzo. El escribir un programa ya no requería entender
plenamente el hardware de la computación. Las computadoras de la 2da
Generación eran sustancialmente más pequeñas y rápidas que las de
bulbos, y se usaban para nuevas aplicaciones, como en los sistemas
para reservación en líneas aéreas, control de tráfico aéreo y
simulaciones para uso general. Las empresas comenzaron a aplicar las
computadoras a tareas de almacenamiento de registros, como manejo de
inventarios, nómina y contabilidad.
La marina de E.U.
utilizó las computadoras de la Segunda Generación para crear el
primer simulador de vuelo. (Whirlwind I). HoneyWell se colocó como
el primer competidor durante la segunda generación de computadoras.
Burroughs, Univac, NCR, CDC, HoneyWell, los más grandes competidores
de IBM durante los 60s se conocieron como el grupo BUNCH (siglas).
Tercera Generación
(1964-1971)
circuitos integrados
Compatibilidad con
equipo mayor
Multiprogramación
Minicomputadora
Las computadoras de
la tercera generación emergieron con el desarrollo de los circuitos
integrados (pastillas de silicio) en las cuales se colocan miles de
componentes electrónicos, en una integración en miniatura. Las
computadoras nuevamente se hicieron más pequeñas, más rápidas,
desprendían menos calor y eran energéticamente más eficientes.
Antes del
advenimiento de los circuitos integrados, las computadoras estaban
diseñadas para aplicaciones matemáticas o de negocios, pero no para
las dos cosas. Los circuitos integrados permitieron a los
fabricantes de computadoras incrementar la flexibilidad de los
programas, y estandarizar sus modelos. La IBM 360 una de las
primeras computadoras comerciales que usó circuitos integrados,
podía realizar tanto análisis numéricos como administración ó
procesamiento de archivos.
Los clientes podían
escalar sus sistemas 360 a modelos IBM de mayor tamaño y podían
todavía correr sus programas actuales. Las computadoras trabajaban a
tal velocidad que proporcionaban la capacidad de correr más de un
programa de manera simultánea (multiprogramación).
Por ejemplo la
computadora podia estar calculando la nomina y aceptando pedidos al
mismo tiempo.
Minicomputadoras, Con
la introducción del modelo 360 IBM acaparó el 70% del mercado, para
evitar competir directamente con IBM la empresa Digital Equipment
Corporation DEC redirigió sus esfuerzos hacia computadoras pequeñas.
Mucho menos costosas de comprar y de operar que las computadoras
grandes, las minicomputadoras se desarrollaron durante la segunda
generación pero alcanzaron su mayor auge entre 1960 y 70.
- La cuarta
Generación
(1971 a la fecha)
- Microprocesador
- Chips de memoria.
-
Microminiaturización
Dos mejoras en la
tecnología de las computadoras marcan el inicio de la cuarta
generación: el reemplazo de las memorias con núcleos magnéticos, por
las de chips de silicio y la colocación de muchos más componentes en
un Chip: producto de la microminiaturización de los circuitos
electrónicos. El tamaño reducido del microprocesador de chips hizo
posible la creación de las computadoras personales. (PC)
Hoy en día las
tecnologías LSI (Integración a gran escala) y VLSI (integración a
muy gran escala) permiten que cientos de miles de componentes
electrónicos se almacenan en un chip. Usando VLSI, un fabricante
puede hacer que una computadora pequeña rivalice con una computadora
de la primera generación que ocupara un cuarto completo.
Lenguajes de
Programación
a.) Historia de
los lenguajes; Los lenguajes de programación cierran el
abismo entre las computadoras, que sólo trabajan con números
binarios, y los humanos, que preferimos utilizar palabras y otros
sistemas de numeración.
Mediante los
programas se indica a la computadora qué tarea debe realizar y como
efectuarla, pero para ello es preciso introducir estas ordenes en un
lenguaje que el sistema pueda entender. En principio, el ordenador
sólo entiende las instrucciones en código máquina, es decir, el
especifico de la computadora. Sin embargo, a partir de éstos se
elaboran los llamados lenguajes de alto y bajo nivel.
-
Generaciones de los
lenguajes
LENGUAJES DE BAJO
NIVEL:
Utilizan códigos muy
cercanos a los de la máquina, lo que hace posible la elaboración de
programas muy potentes y rápidos, pero son de difícil aprendizaje.
LENGUAJES DE ALTO
NIVEL:
Por el contrario, son
de uso mucho más fácil, ya que en ellos un solo comando o
instrucción puede equivaler a millares es código máquina. El
programador escribe su programa en alguno de estos lenguajes
mediante secuencias de instrucciones. Antes de ejecutar el programa
la computadora lo traduce a código máquina de una sola vez
(lenguajes compiladores) o interpretándolo instrucción por
instrucción (lenguajes intérpretes). Ejemplos de lenguajes de alto
nivel: Pascal, Cobol, Basic, Fortran, C++ Un Programa de
computadora, es una colección de instrucciones que, al ser
ejecutadas por el CPU de una máquina, llevan a cabo una tarea ó
función específica. Este conjunto de instrucciones que forman los
programas son almacenados en archivos denomina dos archivos
ejecutables puesto que, al teclear su nombre (o hacer clic sobre el
icono que los identifica) logras que la computadora los cargue y
corra, o ejecute las instrucciones del archivo. El contenido de un
archivo ejecutable no puede ser entendido por el usuario, ya que no
está hecho para que la gente lo lea, sino para que la computadora
sea quien lo lea.
Los archivos de
programas ejecutables contienen el código máquina, que la CPU
identifica como sus instrucciones. Son lo que conocemos como
Programas Objeto. Dado que sería muy difícil que los programadores
crearan programas directamente en código de máquina, usan lenguajes
más fáciles de leer, escribir y entender para la gente.
El programador teclea
instrucciones en un editor, que es un programa parecido a un simple
procesador de palabras, estas instrucciones son almacenadas en
archivos denominados programas fuentes (código fuente). Si los
programadores necesitan hacer cambios al programa posteriormente
vuelven a correr el editor y cargan el programa fuente para
modificarlo.
El proceso de
conversión de programas fuente a programas objeto se realiza
mediante un programa denominado compilador. El compilador toma un
programa fuente y lo traduce a programa objeto y almacena este
último en otro archivo.
PROGRAMA FUENTE:
Es el programa
escrito en alguno de los lenguajes y que no ha sido traducido al
lenguaje de la maquina, es decir el programa que no está en código
de máquina y que por lo tanto no puede ser ejecutable.
PROGRAMA OBJETO:
Es aquel programa que
se encuentra en lenguaje máquina y que ya es ejecutable por esta.
C.) Programación
Orientada a Objetos: La programación orientada a objetos no
es un concepto nuevo, sus inicios y técnicas de programación se
iniciaron a principios de los 70. Se puede definir programación
orientada a objetos (OOPS) como una técnica de programación que
utiliza objetos como bloque esencial de construcción. La OOPS, es un
tipo de programación más cercana al razonamiento humano. La OOPS
surge como una solución a la programación de grandes programas, y
para solventar el mantenimiento de dichas aplicaciones, ya que en la
programación estructura el más mínimo cambio supone la modificación
de muchas funciones relacionadas, en cambio con la OOPS solo es
cuestión de añadir o modificar métodos de una clase o mejor, crear
una nueva clase a partir de otra (Herencia). Dos lenguajes destacan
sobre el resto para programar de esta forma, Smalltalk y C++.
Concepto de Objeto:
Desde un punto de vista general un Objeto es una estructura de datos
de mayor o menor complejidad con las funciones que procesan estos
datos. Dicho de otra forma, sería Datos más un Código que procesa
estos datos. A los datos se les denomina miembros dato y a las
funciones miembro o miembro funciones. Los datos están ocultos y
sólo se puede acceder a ellos mediante las funciones miembro.
Clases: Las
Clases son como plantillas o modelos que describen como se
construyen ciertos tipos de Objeto. Cada vez que se construye un
Objeto de una Clase, se crea una instancia de esa Clase("instance").
Una Clase es una colección de Objetos similares y un Objeto es una
instancia de una Clase. Se puede definir una Clase como un modelo
que se utiliza para describir uno o más Objetos del mismo tipo.
Herencia: Una
característica muy importante de los Objetos y las Clases es la
Herencia, una propiedad que permite construir nuevos Objetos
(Clases) a partir de unos ya existentes. Esto permite crear
"Sub-Clases" denominadas Clases Derivadas que comparten las
propiedades de la Clase de la cual derivan (Clase base). Las Clases
derivadas heredan código y datos de la clase base, asimismo
incorporan su propio código y datos especiales. Se puede decir que
la herencia permite definir nuevas Clases a partir de las Clases ya
existentes.
Polimorfismo: En
un sentido literal, Polimorfismo significa la cualidad de tener más
de una forma. En el contexto de POO, el Polimorfismo se refiere al
hecho de que una simple operación puede tener diferente
comportamiento en diferentes objetos. En otras palabras, diferentes
objetos reaccionan al mismo mensaje de modo diferente. Los primeros
lenguajes de POO fueron interpretados, de forma que el Polimorfismo
se contemplaba en tiempo de ejecución. Por ejemplo, en C++, al ser
un lenguaje compilado, el Polimorfismo se admite tanto en tiempo de
ejecución como en tiempo de compilación
Decimos entonces que:
El tema de la
Programación Orientada a Objetos (Object Oriented Programming O-O-P)
sigue siendo para el que escribe un territorio inquietante,
interesante y en gran medida desconocido, como parece ser también
para la gran mayoría de los que estamos en el campo de la
programación. Sin tratar de excluir a aquellos que han afrontado
este desarrollo desde el punto de vista académico y formal
(maestrías y doctorados) el tema se antoja difícil para los no
iniciados. Con este breve artículo me dirigiré en particular a la
gran base de programadores prácticos que andamos en búsqueda de
mejores herramientas de desarrollo de programas, que faciliten el
trabajo de nuestros usuarios y a la vez disminuyan la gran cantidad
de considerandos que aparecen al empeñarnos en un proyecto de
cómputo.
Como muchos de
ustedes, me topé con el concepto de O-O-P como parte de esa búsqueda
y al explorarlo apareció el gusanillo de la curiosidad. A lo largo
de mi actividad como programador, y cuando se dio la necesidad, no
tuve ningún problema en convertir mis habilidades de programación en
FORTRAN de IBM 1130 al BASIC de la PDP, pues sólo era cuestión de
aprender la sintaxis del lenguaje, ya que las estrategias de
programación y los algoritmos eran iguales. Posteriormente, al
manejar el PASCAL se requirió un importante esfuerzo en entender la
filosofía de las estructuras, lo cual modificaba la manera de ver
(conceptualizar) a los datos y a las partes constitutivas de un
programa.
Posteriormente
aparece el QuickBasic, que adopté inmediatamente por la familiaridad
con el BASIC (ley del menor esfuerzo). Ofrecía estructuras de datos
(tipos y registros complejos), además de estructuras de
instrucciones en procedimientos y módulos; editor "inteligente" que
revisa la sintaxis y ejecución de las instrucciones mientras se
edita el programa, generación de ejecutable una vez terminado
(.EXE), existencia de bibliotecas externas y enlace con módulos
objeto generados en otro lenguaje. ¿Qué más podía yo pedir?
Pero la necesidad de
estar en la ola de moda es más fuerte que el sentido común. Las
aplicaciones en Windows siempre han despertado la envidia de los
programadores, al hacer ver sus programas pálidos e insulsos por
comparación. Solución: programar en Windows.
Originalmente
programar en Windows representaba un largo y tedioso camino para
dominar las complejas herramientas de desarrollo. Sólo recientemente
han aparecido desarrolladores de aplicaciones para Windows que le
permiten al programador pintar sus ventanas y realizar los enlaces
entre los objetos con programación tradicional, evitando en gran
medida involucrarse con los conceptos complicados de los objetos.
Sin embargo no dejaron de inquietarme algunos conceptos marcados por
O-O-P, según los cuales serán los pilares del futuro de la
programación de componentes y de objetos distribuidos en redes, en
donde la actual programación cliente/servidor pareciera por
comparación el FORTRAN o el COBOL de ahora.
Pidiendo perdón de
antemano a los puristas de las definiciones y conceptos de O-O-P,
expondré el resultado de mis propias indagaciones sobre este campo,
esperando que al paciente lector y posible programador le resulte
menos complicado que a mí asimilar los elementos básicos de O-O-P.
Los principales
conceptos que se manejan en la Programación Orientada a Objetos son:
1. encapsulado, 2. herencia y 3. Polimorfismo.
Según esto, la
encapsulación es la creación de módulos autosuficientes que
contienen los datos y las funciones que manipulan dichos datos. Se
aplica la idea de la caja negra y un letrero de "prohibido mirar
adentro". Los objetos se comunican entre sí intercambiando mensajes.
De esta manera, para armar aplicaciones se utilizan los objetos cuyo
funcionamiento está perfectamente definido a través de los mensajes
que es capaz de recibir o mandar. Todo lo que un objeto puede hacer
está representado por su interfase de mensajes. Para crear objetos,
el programador puede recurrir a diversos lenguajes como el C++, el
Smalltalk, el Visual Objects y otros. Si se desea solamente utilizar
los objetos y enlazarlos en una aplicación por medio de la
programación tradicional se puede recurrir al Visual Basic, al
CA-Realizer, al Power Builder, etc.
El concepto de
herencia me pareció sencillo de entender una vez que capté otro
concepto de O-O-P: las clases. En O-O-P se acostumbra agrupar a los
objetos en clases. Esto es muy común en la vida diaria. Todos
nosotros tendemos a clasificar los objetos comunes por clases.
Manejamos la clase mueble, la clase mascota, la clase alimento, etc.
Obviamente en el campo de la programación esta clasificación es más
estricta. ¿Cuál es el sentido de las clases? Fundamentalmente evitar
definir los objetos desde cero y facilitar su rehuso. Si trabajamos
con clases, al querer definir un nuevo objeto, partimos de alguna
clase definida anteriormente, con lo que el objeto en cuestión
hereda las características de los objetos de su clase. Imaginemos
que creamos una clase "aves" y describimos las características de
las aves (plumas, pico, nacen de huevo, etc.). Más adelante
necesitamos una clase "pingüino". Como pertenece a "aves" no
requerimos volver a declarar lo descrito sino marcamos que
"pingüino" es una subclase de "aves" con lo que "pingüino" hereda
todas sus características. A continuación sólo declaramos los
detalles que determinan lo que distingue a "pingüino" de "aves".
Asimismo podemos declarar "emperador" como una subclase de
"pingüino", con lo que "emperador" heredará todas las
características de las superclases "pingüino" y "aves" más las
características que nosotros declaremos en particular para
"emperador". En un programa (imaginario por supuesto) yo puedo
utilizar estas clases (aves, pingüino y emperador). El hecho de
colocar a un individuo en particular en estas clases es lo que se
llama objeto y se dice que es una instancia de una clase. Así, si yo
coloco a Fredy (un pingüino emperador) en mi programa, se dice que
el objeto Fredy es una instancia de la clase emperador. Fredy
aparecerá en mi programa con todas las características (herencia) de
aves, de pingüino y de emperador.
Por otra parte,
entender el concepto de Polimorfismo implicó un buen número de horas
de indagación y búsqueda de ejemplos. Espero que éste resulte claro:
supóngase que declaramos un objeto llamado Suma. Este objeto
requiere dos parámetros (o datos) como mensaje para operar. En la
programación tradicional tendríamos que definir el tipo de datos que
le enviamos, como por ejemplo dos números enteros, dos números
reales, etc. En O-O-P el tipo de dato se conoce hasta que se ejecuta
el programa.
E.) COMPILADOR:
Es un programa que traduce un lenguaje de alto nivel al lenguaje
máquina. Un programa compilado indica que ha sido traducido y está
listo para ser ejecutado. La ejecución de los programas compilados
es más rápida que la de los interpretados, ya que el interprete debe
traducir mientras está en la fase de ejecución (saca todos los
errores). Un compilador es un programa que traduce el programa
fuente (conjunto de instrucciones de un lenguaje de alto nivel, por
ejemplo BASIC o Pascal) a programa objeto (instrucciones en lenguaje
máquina que la computadora puede interpretar y ejecutar). Se
requiere un compilador para cada lenguaje de programación. Un
compilador efectúa la traducción, no ejecuta el programa. Una vez
compilado el programa, el resultado en forma de programa objeto será
directamente ejecutable. Presentan la ventaja considerable frente a
los intérpretes de la velocidad de ejecución, por lo que su uso será
mejor en aquellos programas probados en los que no se esperan
cambios y que deban ejecutarse muchas veces. En caso de que se opte
por un interpretador se debe considerar que el intérprete resida
siempre en memoria.
INTERPRETE:
Traductor de lenguajes de programación de alto nivel, los
interpretes ejecutan un programa línea por línea. El programa
siempre permanece en su forma original(programa fuente) y el
interprete proporciona la traducción al momento de ejecutar cada una
de la s instrucciones. Un intérprete es un programa que procesa los
programas escritos en un lenguaje de alto nivel, sin embargo, está
diseñado de modo que no existe independencia entre la etapa de
traducción y la etapa de ejecución. Un intérprete traduce cada
instrucción o sentencia del programa escrito a un lenguaje máquina e
inmediatamente se ejecuta. Encuentran su mayor ventaja en la
interacción con el usuario, al facilitar el desarrollo y puesta a
punto de programas, ya que los errores son fáciles de detectar y
sobre todo de corregir.
LENGUAJE MÁQUINA:
Lenguaje original de la computadora, un programa debe estar escrito
en el lenguaje de la máquina para poder ser ejecutado. Este es
generado por software y no por el programador. El programador
escribe en un lenguaje de programación, el cual es traducido al
lenguaje de máquina mediante interpretes y compiladores.
E.) Case:
(Computer-Aided Software Engineering o Computer- Aided Systems
Engineering) Ingeniería de Software Asistida por Computadora o
Ingeniería de Sistemas Asistida por computadora Software que se
utiliza en una cualquiera o en todas las fases del desarrollo de un
sistema de información, incluyendo análisis, diseño y programación.
Por ejemplo, los diccionarios de datos y herramientas de
diagramación ayudan en las fases de análisis y diseño, mientras que
los generadores de aplicaciones aceleran la fase de programación.
Las herramientas CASE
proporcionan métodos automáticos para diseñar y documentar las
técnicas tradicionales de programación estructurada. La meta última
de CASE es proveer un lenguaje para describir el sistema completo,
que sea suficiente para generar todos los programas necesarios.
Sistemas Operativos
Un sistema Operativo
(SO) es en sí mismo un programa de computadora. Sin embargo, es un
programa muy especial, quizá el más complejo e importante en una
computadora. El SO despierta a la computadora y hace que reconozca a
la CPU, la memoria, el tecla do, el sistema de vídeo y las unidades
de disco. Además, proporciona la facilidad para que los usuarios se
comuniquen con la computadora y sirve de plataforma a partir de la
cual se corran programas de aplicación.
Cuando enciendes una
computadora, lo primero que ésta hace es llevar a cabo un
autodiagnóstico llamado autoprueba de encendido (Power On Self Test,
POST). Durante la POST, la computadora identifica su memoria, sus
discos, su teclado, su sistema de vídeo y cualquier otro dispositivo
conectado a ella. Lo siguiente que la computadora hace es buscar un
SO para arrancar (boot).
Una vez que la
computadora ha puesto en marcha su SO, mantiene al menos parte de
éste en su memoria en todo momento. Mientras la computadora esté
encendida, el SO tiene 4 tareas principales:
-
Proporcionar ya sea
una interfaz de línea de comando o una interfaz gráfica al
usuario, para que este último se pueda comunicar con la
computadora. Interfaz de línea de comando: tú introduces palabras
y símbolos desde el teclado de la computadora, ejemplo, el MS-DOS.
Interfaz gráfica del Usuario (GUI), seleccionas las acciones
mediante el uso de un Mouse para pulsar sobre figuras llamadas
iconos o seleccionar opciones de los menús.
-
Administrar los
dispositivos de hardware en la computadora · Cuando corren los
programas, necesitan utilizar la memoria, el monitor, las unidades
de disco, los puertos de Entrada/Salida (impresoras, módems, etc).
El SO sirve de intermediario entre los programas y el hardware.
-
Administrar y
mantener los sistemas de archivo de disco · Los SO agrupan la
información dentro de compartimientos lógicos para almacenarlos en
el disco. Estos grupos de información son llamados archivos. Los
archivos pueden contener instrucciones de programas o información
creada por el usuario. El SO mantiene una lista de los archivos en
un disco, y nos proporciona las herramientas necesarias para
organizar y manipular estos archivos.
-
Apoyar a otros
programas. Otra de las funciones importantes del SO es
proporcionar servicios a otros programas. Estos servicios son
similares a aquellos que el SO proporciona directamente a los
usuarios. Por ejemplo, listar los archivos, grabarlos a disco,
eliminar archivos, revisar espacio disponible, etc. Cuando los
programadores escriben programas de computadora, incluyen en sus
programas instrucciones que solicitan los servicios del SO. Estas
instrucciones son conocidas como "llamadas del sistema"
El Kernel y el Shell.
Las funciones
centrales de un SO son controladas por el núcleo (kernel) mientras
que la interfaz del usuario es controlada por el entorno (shell).
Por ejemplo, la parte más importante del DOS es un programa con el
nombre "COMMAND.COM" Este programa ti ene dos partes. El kernel, que
se mantiene en memoria en todo momento, contiene el código máquina
de bajo nivel para manejar la administración de hardware para otros
programas que necesitan estos servicios, y para la segunda parte del
COMMAND.COM el shell, el cual es el interprete de comandos.
Las funciones de bajo
nivel del SO y las funciones de interpretación de comandos están
separadas, de tal forma que puedes mantener el kernel DOS corriendo,
pero utilizar una interfaz de usuario diferente. Esto es exactamente
lo que sucede cuando carga s Microsoft Windows, el cual toma el
lugar del shell, reemplazando la interfaz de línea de comandos con
una interfaz gráfica del usuario. Existen muchos shells diferentes
en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive
el mismo SO MS-DOS a partir de la versión 5.0 incluyó un Shell
llamado DOS SHELL.
A.) Categorías de
Sistemas Operativos
A.1) MULTITAREA:
El término multitarea se refiere a la capacidad del SO para correr
mas de un programa al mismo tiempo. Existen dos esquemas que los
programas de sistemas operativos utilizan para desarrollar SO
multitarea, el primero requiere de la cooperación entre el SO y los
programas de aplicación.
Los programas son
escritos de tal manera que periódicamente inspeccionan con el SO
para ver si cualquier otro programa necesita a la CPU, si este es el
caso, entonces dejan el control del CPU al siguiente programa, a
este método se le llama multitarea cooperativa y es el método
utilizado por el SO de las computadoras de Machintosh y DOS
corriendo Windows de Microsoft. El segundo método es el llamada
multitarea con asignación de prioridades. Con este esquema el SO
mantiene una lista de procesos (programas) que están corriendo.
Cuando se inicia cada proceso en la lista el SO le asigna una
prioridad. En cualquier momento el SO puede intervenir y modificar
la prioridad de un proceso organizando en forma efectiva la lista de
prioridad, el SO también mantiene el control de la cantidad de
tiempo que utiliza con cualquier proceso antes de ir al siguiente.
Con multitarea de asignación de prioridades el SO puede sustituir en
cualquier momento el proceso que esta corriendo y reasignar el
tiempo a una tarea de mas prioridad. Unix OS-2 y Windows NT emplean
este tipo de multitarea.
A.2) MULTIUSUARIO:
Un SO multiusuario permite a mas de un solo usuario accesar
una computadora. Claro que, para llevarse esto a cabo, el SO también
debe ser capaz de efectuar multitareas. Unix es el Sistema Operativo
Multiusuario más utilizado. Debido a que Unix fue originalmente
diseñado para correr en una minicomputadora, era multiusuario y
multitarea desde su concepción.
Actualmente se
producen versiones de Unix para PC tales como The Santa Cruz
Corporation Microport, Esix, IBM,y Sunsoft. Apple también produce
una versión de Unix para la Machintosh llamada: A/UX.Unix
Unix proporciona tres
maneras de permitir a múltiples personas utilizar la misma PC al
mismo tiempo.
1. Mediante
Módems.
2. Mediante conexión
de terminales a través de puertos seriales
3. Mediante
Redes.
A.3) MULTIPROCESO:
Las computadoras que tienen mas de un CPU son llamadas
multiproceso. Un sistema operativo multiproceso coordina las
operaciones de la computadoras multiprocesadoras. Ya que cada CPU en
una computadora de multiproceso puede estar ejecutando una
instrucción, el otro procesador queda liberado para procesar otras
instrucciones simultáneamente.
Al usar una
computadora con capacidades de multiproceso incrementamos su
velocidad de respuesta y procesos. Casi todas las computadoras que
tienen capacidad de multiproceso ofrecen una gran ventaja.
Los primeros Sistemas
Operativos Multiproceso realizaban lo que se conoce como:
Multiproceso
asimétrico: Una CPU principal retiene el control global de la
computadora, así como el de los otros procesadores. Esto fue un
primer paso hacia el multiproceso pero no fue la dirección ideal a
seguir ya que la CPU principal podía convertirse en un cuello de
botella.
Multiproceso
simétrico: En un sistema multiproceso simétrico, no existe una CPU
controladora única. La barrera a vencer al implementar el
multiproceso simétrico es que los SO tienen que ser rediseñados o
diseñados desde el principio para trabajar en u n ambiente
multiproceso. Las extensiones de Unix, que soportan multiproceso
asimétrico ya están disponibles y las extensiones simétricas se
están haciendo disponibles. Windows NT de Microsoft soporta
multiproceso simétrico.
B.) Lista de los
Sistemas Operativos más comunes.
B.1) MS-DOS:
Es el más común y popular de todos los Sistemas Operativos para PC.
La razón de su continua popularidad se debe al aplastante volumen de
software disponible y a la base instalada de computadoras con
procesador Intel.
Cuando Intel liberó
el 80286, D OS se hizo tan popular y firme en el mercado que DOS y
las aplicaciones DOS representaron la mayoría del mercado de
software para PC. En aquel tiempo, la compatibilidad IBM, fue una
necesidad para que los productos tuvieran éxito, y la
"compatibilidad IBM" significaba computadoras que corrieran DOS tan
bien como las computadoras IBM lo hacían.
B.2) OS/2:
Después de la introducción del procesador Intel 80286, IBM y
Microsoft reconocieron la necesidad de tomar ventaja de las
capacidades multitarea de esta CPU. Se unieron para desarrollar el
OS/2, un moderno SO multitarea para los microprocesadores Intel. <
BR>Sin embargo, la sociedad no duró mucho. Las diferencias en
opiniones técnicas y la percepción de IBM al ver a Windows como una
amenaza para el OS/2 causó una desavenencia entre las Compañías que
al final las llevó a la disolución de la sociedad.
IBM continuó el
desarrollo y promoción del OS/2.
Es un sistema
operativo de multitarea para un solo usuario que requiere un
microprocesador Intel 286 o mejor. Además de la multitarea, la gran
ventaja de la plataforma OS/2 es que permite manejar directamente
hasta 16 MB de la RAM ( en comparación con 1 MB en el caso del
MS-DOS ). Por otra parte, el OS/2 es un entorno muy complejo que
requiere hasta 4 MB de la RAM. Los usuarios del OS/2 interactuan con
el sistema mediante una interfaz gráfica para usuario llamada
Administrador de presentaciones. A pesar de que el OS/2 rompe la
barrera de 1 MB del MS-DOS, le llevo tiempo volverse popular. Los
vendedores de software se muestran renuentes a destinar recursos a
la creación de un software con base en el OS/2 para un mercado
dominado por el MS-DOS. Los usuarios se rehusan a cambiar al OS/2
debido a la falta de software que funcione en la plata forma del
OS/2 y a que muchos tendrían que mejorar la configuración de su PC
para que opere con el OS/2.
B.3) UNIX:
Unix es un SO multiusuario y multitarea, que corre en diferentes
computadoras, desde supercomputadoras, Mainframes, Minicomputadoras,
computadoras personales y estaciones de trabajo.
Es un sistema
operativo que fue creado a principios de los setentas por los
científicos en los laboratorios Bell. Fue específicamente diseñado
para proveer una manera de manejar científica y especializadamente
las aplicaciones computacionales. Este SO se adapto a los sistemas
de computo personales así que esta aceptación reciente lo convierte
en un sistema popular.
. Unix es más antiguo
que todos los demás SO de PC y de muchas maneras sirvió como modelo
para éstos. Aun cuando es un SO extremadamente sólido y capaz, la
línea de comandos Unix, no es apta para cardiacos, debido a que
ofrece demasiados comandos.
B.4) SISTEMA
OPERATIVO DE MACINTOSH: La Macintosh es una máquina
netamente gráfica. De hecho, no existe una interfaz de línea de
comando equivalente para ésta. Su estrecha integración de SO, GUI y
área de trabajo la hacen la favorita de la gente que no quiere saber
nada de interfaces de línea de comando.
Las capacidades
gráficas de la Macintosh hicieron de esa máquina la primera
precursora en los campos gráficos computarizados como la autoedición
por computadora.
La familia de
microcomputadoras de Apple Macintosh y su sistema operativo define
otra plataforma importante. Las PC de Macintosh, que se basan en la
familia de microprocesadores de Motorola, usan la arquitectura de
Bus de 32 bits. La plataforma para Macintosh incluye muchas
capacidades sofisticadas que comprende la multitarea, una GUI, la
memoria virtual y la capacidad para emular la plataforma MS-DOS. Las
PC de Macintosh también tiene la capacidad integrada de compartir
archivos y comunicarse con o tras PC de Macintosh en una red.
B.5) WINDOWS NT DE
MICROSOFT: Con Windows NT, Microsoft ha expresado su
dedicación a escribir software no sólo para PC de escritorio sino
también para poderosas estaciones de trabajo y servidores de red y
bases de datos. Microsoft Windows NT no es necesariamente un
sustituto de DOS ni una nueva versión de éste; es, en conjunto, un
nuevo SO diseñado desde sus bases para las máquinas más modernas y
capaces disponibles.
Windows NT de
Microsoft ofrece características ínter construidas que ningún otro SO
para PC ofrece, con excepción de Unix.
Además de las
características tradicionales de estricta seguridad de sistema, red
ínter construida, servicios de comunicación y correo electrónico
ínter construidos, herramientas de administración y desarrollo de
sistema y una GUI, Windows NT puede correr directamente aplicaciones
de Windows de Microsoft y de Unix.
Windows NT, al igual
que el OS/2 ver 2.0 y algunas versiones de Unix, es un SO de 32
bits, que puede hacer completo uso de los procesadores de estas
características.
Además de ser
multitarea, está diseñado para tomar ventaja del multiproceso
simétrico.
Bases de Datos
La DBMS (Data Base
Management System) es la herramienta que las computadoras utilizan
para realizar el procesamiento y almacenamiento ordenado de los
datos. Una base de datos es un recipiente para colecciones
relacionadas de datos. Cualquier conjunto de datos organizados para
su almacenamiento en la memoria de un
ordenador o computadora, diseñado para facilitar su
mantenimiento y acceso de una forma estándar. Los datos suelen
aparecer en forma de texto, números o gráficos. Desde su aparición
en la década de 1950, se han hecho imprescindibles para las
sociedades industriales. Hay cuatro modelos principales de bases de
datos: el modelo jerárquico, el modelo en red, el
modelo relacional (el más extendido hoy
en día; los datos se almacenan en tablas a los que se accede
mediante consultas escritas en SQL) y
el modelo de bases de datos deductivas. Otra línea de investigación
en este campo son las bases de datos orientadas a objeto, o de
objetos persistentes. Por ejemplo, un a agenda puede ser una base de
datos donde se almacenan los nombres, direcciones y números
telefónicos de amigos y contactos de negocios. La Base de Datos de
una Compañía puede contener información acerca de los consumidores,
vendedores, empleados, venta s en inventario.
Ejemplos de Bases de
Datos: Access, FoxPro, Approach.
-
Base de datos
relacional
, en informática, tipo de
base de datos o sistema de administración de bases de
datos, que almacena información en tablas (filas y columnas de
datos) y realiza búsquedas utilizando los datos de columnas
especificadas de una tabla para encontrar datos adicionales en
otra tabla. En una base de datos relacional, las filas representan
registros (conjuntos de datos acerca de elementos separados) y las
columnas representan campos (atributos particulares de un
registro). Al realizar las búsquedas, una base de datos relacional
hace coincidir la información de un campo de una tabla con
información en el campo correspondiente de otra tabla y con ello
produce una tercera tabla que combina los datos solicitados de
ambas tablas. Por ejemplo, si una tabla contiene los campos
NÚM-EMPLEADO, APELLIDO, NOMBRE y ANTIGÜEDAD y otra tabla contiene
los campos DEPARTAMENTO, NÚM-EMPLEADO y SALARIO, una base de datos
relacional hace coincidir el campo NÚM-EMPLEADO de las dos tablas
para encontrar información, como por ejemplo los nombres de los
empleados que ganan un cierto salario o los departamentos de todos
los empleados contratados a partir de un día determinado. En otras
palabras, una base de datos relacional utiliza los valores
coincidentes de dos tablas para relacionar información de ambas.
Por lo general, los productos de bases de datos para
microcomputadoras o microordenadores son bases de datos
relacionales.
-
Cliente/servidor:
En vez de construir sistemas informáticos como elementos
monolíticos, existe el acuerdo general de construirlos como
sistemas cliente/servidor. El cliente (un usuario de PC) solicita
un servicio (como imprimir) que un servidor le proporciona (un
procesador conectado a la LAN). Este enfoque común de la
estructura de los sistemas informáticos se traduce en una
separación de las funciones que anteriormente forman un todo. Los
detalles de la realización van desde los planteamientos sencillos
hasta la posibilidad real de manejar todos los ordenadores de modo
uniforme.
Redes
Una Red es una manera
de conectar varias computadoras entre sí, compartiendo sus recursos
e información y estando conscientes una de otra. Cuando las PC´s
comenzaron a entrar en el área de los negocios, el conectar dos PC´s
no traía ventajas, pero esto desapareció cuando se empezó a crear
los sistemas operativos y el Software multiusuario.
-
Topología de redes:
La topología de una red , es el patrón de interconexión
entre nodos y servidor, existe tanto la topología lógica (la forma
en que es regulado el flujo de los datos) ,como la topología
física ( la distribución física del cableado de la red).
Las topologías
físicas de red más comunes son:
-
Estrella.
-
Bus lineal
-
Anillo.
A.1) Topología de
estrella: Red de comunicaciones en que la que todas las
terminales están conectadas a un núcleo central, si una de las
computadoras no funciona, ésto no afecta a las demás, siempre y
cuando el "servidor" no esté caído.

A.2) Topología Bus
lineal: Todas las computadoras están conectadas a un cable
central, llamado el "bus" o "backbone". Las redes de
bus lineal son de las más fáciles de instalar y son relativamente
baratas.
l
A.3) Topología de
anillo: Todas las computadoras o nodos están conectados el
uno con el otro, formando una cadena o círculo cerrado.

-
Protocolos
de intercambio, en informática, como en las relaciones
humanas, señal mediante la cual se reconoce que puede tener lugar
la comunicación o la transferencia de información. Los protocolos
de intercambio se pueden controlar tanto con
hardware como con software.
Un protocolo de intercambio de hardware, como el existente
entre un ordenador o computadora con
una impresora o con un módem, es un
intercambio de señales, a través de cables específicos, en el que
cada dispositivo señala su disposición para enviar o recibir
datos. Un protocolo de software, normalmente el que se
intercambia durante las comunicaciones del tipo módem a módem,
consiste en una determinada información transmitida entre los
dispositivos de envío y de recepción. Un protocolo de intercambio
de software establece un acuerdo entre los dispositivos
sobre los protocolos que ambos utilizarán al comunicarse. Un
protocolo de intercambio de hardware es por tanto similar a
dos personas que físicamente estrechan sus manos, mientras que un
protocolo de intercambio de software es más parecido a dos
grupos que deciden conversar en un lenguaje particular.
-
TCP/IP:
(Transmission Control Protocol/Internet Protocol) Protocolo de
control de transmisiones/protocolo Internet. Conjunto de
protocolos de comunicaciones desarrollado por la Defense Advanced
Research Projects Agency (DARPA - Agencia de proyectos de
investigación avanzada de defensa) para intercomunicar sistemas
diferentes. Se ejecuta en un gran número de computadoras VAX y
basadas en UNIX, y es utilizado por muchos fabricantes de
hardware, desde los de computadoras personales hasta los de
macrocomputadoras. Es empleado por numerosas corporaciones y por
casi todas las universidades y organizaciones federales de los
Estados Unidos. El File Transfer Protocol (FTP - Protocolo
detransferencia de archivos) y el Simple Mail Transfer Protocol
(SMTP -Protocolo simple de transferencia de correspondencia)
brindan capacidades de transferencia de archivos y de correo
electrónico. El protocolo TELNET proporciona una capacidad de
emulación de terminal que permite al usuario interactuar con
cualquier otro tipo de computadora de la red. El protocolo TCP
controla la transferencia de los datos, y el IP brinda el
mecanismo para encaminarla.
En el siguiente
diagrama se muestran TCP/IP, junto con los modelos DOD y OSI.
-
IPX:
(Internet Packet EXchange) intercambio de paquetes entre redes Un
protocolo de comunicaciones del NetWare de Novell que se utiliza
para encaminar mensajes de un nodo a otro. Los programas de
aplicación que manipulan sus propias comunicaciones
cliente/servidor o de igual a igual en una red Novell pueden
acceder directamente al IPX o al protocolo SPX de NetWare. El IPX
no garantiza la entrega del mensaje como lo hace el SPX.
-
NETBEUI:
NetBEUI
(NETBIOS Extended User Interface) Interfaz de usuario extendido de
NetBIOS La realización del protocolo de transporte NetBIOS en LAN
Manager y LAN Server. Se comunica con las tarjetas de interfaz de
red (NICs) vía NDIS (Network Driver Interface Specification). El
término fue originalmente usado para definir el protocolo NetBIOS
después que éste fue mejorado para soportar la Token Ring Network.
-
Tipos de Redes:
Según el lugar y el
espacio que ocupen, las redes, se pueden clasificar en dos tipos:
1.Redes LAN (Local
Area Network) o Redes de área local
2.Redes WAN (Wide
Area Network) o Redes de área amplia
1.- LAN - Redes de
Área Local:
Es una red que se
expande en un área relativamente pequeña. Éstas se encuentran
comúnmente dentro de una edificación o un conjunto de edificaciones
que estén contiguos. Así mismo, una LAN puede estar conectada con
otras LANs a cualquier distancia por medio de línea telefónica y
ondas de radio.
Pueden ser desde 2
computadoras, hasta cientos de ellas. Todas se conectan entre sí por
varios medios y topología, a la computadora(s) que se encarga de
llevar el control de la red es llamada "servidor" y a las
computadoras que dependen del servidor, se les llama "nodos" o
"estaciones de trabajo".
Los nodos de una red
pueden ser PC´s que cuentan con su propio CPU, disco duro y software
y tienen la capacidad de conectarse a la red en un momento dado; o
pueden ser PC´s sin CPU o disco duro y son llamadas "terminales
tontas", las cuales tienen que estar conectadas a la red para su
funcionamiento.
Las LANs son capaces
de transmitir datos a velocidades muy rápidas, algunas inclusive más
rápido que por línea telefónica; pero las distancias son limitadas.
2. - WAN - Redes de
Área Amplia:
Es una red comúnmente
compuesta por varias LANs interconectadas y se encuentran en una
amplia área geográfica. Estas LANs que componen la WAN se encuentran
interconectadas por medio de líneas de teléfono, fibra óptica o por
enlaces aéreos como satélites.
Entre las WANs mas
grandes se encuentran: la ARPANET, que fue creada por la Secretaría
de Defensa de los Estados Unidos y se convirtió en lo que es
actualmente la WAN mundial: INTERNET, a la cual se conectan
actualmente miles de redes universitarias, de gobierno, corporativas
y de investigación.
G.) Componentes de
una red:
De lo que se compone
una red en forma básica es lo siguiente:
1.-Servidor (server):
El servidor es la
máquina principal de la red, la que se encarga de administrar los
recursos de la red y el flujo de la información. Muchos de los
servidores son "dedicados" , es decir, están realizando tareas
específicas, por ejemplo , un servidor de impresión solo para
imprimir; un servidor de comunicaciones, sólo para controlar el
flujo de los datos...etc. Para que una máquina sea un servidor, es
necesario que sea una computadora de alto rendimiento en cuanto a
velocidad y procesamiento, y gran capacidad en disco duro u otros
medios de almacenamiento.
2.- Estación de
trabajo (Workstation):
Es una computadora
que se encuentra conectada físicamente al servidor por medio de
algún tipo de cable. Muchas de las veces esta computadora ejecuta su
propio sistema operativo y ya dentro, se añade al ambiente de la
red.
3. - Sistema
Operativo de Red:
Es el sistema
(Software) que se encarga de administrar y controlar en forma
general la red. Para ésto tiene que ser un Sistema Operativo
Multiusuario, como por ejemplo: Unix, Netware de Novell, Windows NT,
etc.
4. - Recursos a
compartir:
Al hablar de los
recursos a compartir, estamos hablando de todos aquellos
dispositivos de Hardware que tienen un alto costo y que son de alta
tecnología. En éstos casos los más comunes son las impresoras, en
sus diferentes tipos: Láser, de color, plotters, etc.
5. - Hardware de Red
Son aquellos
dispositivos que se utilizan para interconectar a los componentes de
la red, serían básicamente las tarjetas de red (NIC-> Network
Interface Cards) y el cableado entre servidores y estaciones de
trabajo, así como los cables para conectar los periféricos.
-
Routers y
bridges:
Los servicios en la
mayoría de las LAN son muy potentes. La mayoría de las
organizaciones no desean encontrarse con núcleos aislados de
utilidades informáticas. Por lo general prefieren difundir
dichos servicios por una zona más amplia, de manera que los
grupos puedan trabajar independientemente de su ubicación. Los
routers y los bridges son equipos especiales que
permiten conectar dos o más LAN. El bridge es el equipo
más elemental y sólo permite conectar varias LAN de un mismo
tipo. El router es un elemento más inteligente y
posibilita la interconexión de diferentes tipos de redes de
ordenadores. Las grandes empresas disponen de redes corporativas
de datos basadas en una serie de redes LAN y routers.
Desde el punto de vista del usuario, este enfoque proporciona
una red físicamente heterogénea con aspecto de un recurso
homogéneo.
Brouters:
Un disco dispositivo de comunicaciones que realiza funciones
de puente (bridge) y de encaminador (router). Como puente, las
funciones del "brouter" son al nivel de enlace de datos (estrato
2), independientemente de protocolos más altos, pero como
encaminador, administra líneas múltiples y encamina los mensajes
como corresponde.
Gateway
:
pasarela, puerta de acceso Una computadora que conecta dos tipos
diferentes de redes de comunicaciones. Realiza la conversión de
protocolos de una red a otra. Por ejemplo, una puerta de acceso
podría conectar una red LAN de computadoras. Nótese la
diferencia con bridge, el cual conecta redes similares.
H.) Transmisión de
datos en las redes:
La transmisión de
datos en las redes, puede ser por dos medios:
1. - Terrestres: Son
limitados y transmiten la señal por un conductor físico.
2. - Aéreos: Son
"ilimitados" en cierta forma y transmiten y reciben las señales
electromagnéticas por microondas o rayo láser.
1.- Terrestres:
Cable par trenzado:
Es el que comúnmente se utiliza para los cables de teléfonos,
consta de 2 filamentos de cobre, cubiertos cada uno por plástico
aislante y entrelazados el uno con el otro, existen dos tipos de
cable par trenzado: el "blindado", que se utiliza en conexiones de
redes y estaciones de trabajo y el "no blindado", que se utiliza
en las líneas telefónicas y protege muy poco o casi nada de las
interferencias.
Cable coaxial: Este
tipo de cable es muy popular en las redes, debido a su poca
susceptibilidad de interferencia y por su gran ancho de banda, los
datos son transmitidos por dentro del cable en un ambiente
completamente cerrado, una pantalla sólida, bajo una cubierta
exterior. Existen varios tipos de cables coaxiales, cada uno para
un propósito diferente.
Fibra óptica: Es un
filamento de vidrio sumamente delgado diseñado para la transmisión
de la luz. Las fibras ópticas poseen enormes capacidades de
transmisión, del orden de miles de millones de bits por segundo.
Además de que los impulsos luminosos no son afectados por
interferencias causadas por la radiación aleatoria del ambiente.
Actualmente la fibra óptica está remplazando en grandes cantidades
a los cables comunes de cobre.
Herramientas de
Software para la Automatización de
Oficinas
Definición de
Software:
El software es el
conjunto de instrucciones que las computadoras emplean para
manipular datos. Sin el software, la computadora sería un conjunto
de medios sin utilizar. Al cargar los programas en una computadora,
la máquina actuará como si recibiera una educación instantánea; de
pronto "sabe" cómo pensar y cómo operar.
El Software es un
conjunto de programas, documentos, procedimientos, y rutinas
asociados con la operación de un sistema de computo. Distinguiéndose
de los componentes físicos llamados hardware. Comúnmente a los
programas de computación se les llama software; el software asegura
que el programa o sistema cumpla por completo con sus objetivos,
opera con eficiencia, esta adecuadamente documentado, y
suficientemente sencillo de operar.
Es simplemente el
conjunto de instrucciones individuales que se le proporciona al
microprocesador para que pueda procesar los datos y generar los
resultados esperados.
El hardware por si
solo no puede hacer nada, pues es necesario que exista el software,
que es el conjunto de instrucciones que hacen funcionar al hardware.
Clasificaciones del
Software
El software se
clasifica en 4 diferentes Categorías: Sistemas Operativos, Lenguajes
de Programación, Software de uso general, Software de Aplicación.
(Algunos autores consideran la 3era y 4 ta clasificación como una
sola).
Lenguajes de
Programación
Mediante los
programas se indica a la computadora que tarea debe realizar y cómo
efectuarla, pero para ello es preciso introducir estas órdenes en un
lenguaje que el sistema pueda entender. En principio, el ordenador
sólo entiende las instrucciones en código máquina, es decir, el
específico de la computadora. Sin embargo, a partir de éstos se
elaboran los llamados lenguajes de alto y bajo nivel.
Software de Uso
General
El software para uso
general ofrece la estructura para un gran número de aplicaciones
empresariales, científicas y personales. El software de hoja de
cálculo, de diseño asistido por computadoras (CAD), de procesamiento
de texto, de manejo de Bases de Datos, pertenece a esta categoría.
La mayoría de software para uso general se vende como paquete; es
decir, con software y documentación orientada al usuario (manuales
de referencia, plantillas de teclado y demás).
Software de
aplicaciones
El software de
aplicación esta diseñado y escrito para realizar tareas específicas
personales, empresariales o científicas como el procesamiento de
nóminas, la administración de los recursos humanos o el control de
inventarios. Todas éstas aplicaciones procesan datos (recepción de
materiales) y generan información (registros de nómina) para el
usuario.
-
Procesadores de
Palabras:
Son utilizados para escribir cartas, memorándums
y otros documentos, El usuario teclea una serie de letras o
párrafos, y son mostradas en la pantalla. El usuario puede
fácilmente adherir, borrar y cambiar el texto hasta que el
documento quede exactamente como se desea. Algunas características
avanzadas que encontramos en la actualidad en los procesadores de
texto son: corrector de ortografía, diccionario de sinónimos,
presentación preliminar del texto antes de imprimir.
Ejemplos de procesadores de texto: Word, AmiPro, Wordperfect.
-
Hojas de Cálculo:
Una Hoja de Cálculo es una herramienta para calcular y
evaluar números. También ofrece capacidades para crear informes y
presentaciones para comunicar lo que revelan los análisis; el
usuario teclea los datos y las fórmulas que serán usadas para
obtener los resultados; después el programa aplica las fórmulas a
los datos y así obtiene los resultados; una de sus características
mas importantes es la habilidad de preguntar (Condicionales)"what
IF" "QUE PASARÍA SI?", cambiando los datos y rápidamente re-
calculando los nuevos resultados. La mayoría de las Hojas de
Cálculo cuentan también con la posibilidad de graficar estos
resultados en diferentes estilos de gráficas (Barras, Líneas,
Pastel, etc.). Ejemplos de Hojas de Cálculo: Excel, Lotus 123,
Quatro.
-
Paquetes de
Presentación:
Software que permite al usuario diseñar
presentaciones para desplegarlas a través de la misma computadora
o imprimir diapositivas y acetatos. Contienen opciones avanzadas
para integrar efectos en cada cambio de diapositiva. Ejemplos:
Presentation, Power Point.
-
Shareware y
Freeware:
-
Shareware:
Software distribuido de forma gratuita para ser probado. Si el
usuario decide quedarse con el programa y seguir usándolo, debe
pagar al desarrollador. Normalmente, el shareware es desarrollado
por compañías relativamente pequeñas o inclusive por programadores
individuales, y generalmente es barato.
-
Freeware:
Programas gratuitos que los desarrolladores ponen a disposición de
otros usuarios sin ningún costo. En algunos casos el desarrollador
no reclama derechos de autor y el programa se convierte en
software del dominio público. En otros casos, el software tiene
derechos de autor pero el desarrollador ha permitido a otra gente
usarlos y copiarlo gratuitamente.
-
Aplicación
Vertical:
Las aplicaciones verticales son programas que
realizan todas las fases de una función crítica del negocio. Estos
programas, que muchas veces corren en una combinación de
Mainframes, minis y computadoras personales, se denominan algunas
veces aplicaciones de misión crítica. Generalmente son
desarrollados a la medida por cada compañía que los tiene y son
usados por muchos individuos dentro de una Organización.
Sistemas de
Información
Una aplicación
comercial de la computadora. Está constituido por las bases de
datos, los programas de aplicación, los procedimientos manuales y
automatizados, y abarca los sistemas informáticos que llevan a cabo
el procesamiento.
Las bases de datos
almacenan los asuntos de los negocios (archivos maestros) y sus
actividades (archivos de transacciones). Los programas de aplicación
proveen la entrada de datos, la actualización, consulta y
procesamiento de informes. Los procedimientos manuales documentan la
forma en que se obtienen los datos para su introducción, y la forma
en que se distribuyen las salidas del sistema. Los procedimientos
automáticos instruyen a la computadora acerca de cómo ejecutar las
actividades de procesamiento por lotes, en las cuales la salida de
un programa es automáticamente transferida a la entrada de otro
programa.
El procesamiento
diario es el procesamiento interactivo y en tiempo real de las
transacciones. Al final del día o de algún otro período, los
programas de procesamiento por lotes actualizan los archivos
maestros que no fueron actualizados desde el período anterior. Se
imprimen los informes de las actividades de ciclo. El procedimiento
periódico de un sistema de información es la actualización de los
archivos maestros, en la cual se agrega, borra y modifica la
información sobre clientes, empleados, proveedores y productos.
Cada sistema abarca a
los que lo suceden:
Equipo de Computación
-
Historia de las
Computadoras Personales:
Las microcomputadoras o
Computadoras Personales (PC´s) tuvieron su origen con la creación
de los microprocesadores. Un microprocesador es "una computadora
en un chip", o sea un circuito integrado independiente. Las PC´s
son computadoras para uso personal y relativamente son baratas y
actualmente se encuentran en las oficinas, escuelas y hogares.
El término PC se
deriva de que para el año de 1981, IBM®, sacó a la venta su modelo
"IBM PC", la cual se convirtió en un tipo de computadora ideal para
uso "personal", de ahí que el término "PC" se estandarizó y los
clones que sacaron posteriormente otras empresas fueron llamados "PC
y compatibles", usando procesadores del mismo tipo que las IBM, pero
a un costo menor y pudiendo ejecutar el mismo tipo de programas.
Existen otros tipos
de microcomputadoras, como la Macintosh®, que no son compatibles con
la IBM, pero que en muchos de los casos se les llaman también
"PC´s", por ser de uso personal.
En la actualidad
existen variados tipos en el diseño de PC´s:
-
Computadoras
personales, con el gabinete tipo minitorre, separado del monitor.
-
Computadoras
personales portátiles "Laptop" o "Notebook".
-
Computadoras
personales más comunes, con el gabinete horizontal, separado del
monitor.
-
Computadoras
personales que están en una sola unidad compacta el monitor y el
CPU.
Las computadoras
"laptops" son aquellas computadoras que están diseñadas para poder
ser transportadas de un lugar a otro. Se alimentan por medio de
baterías recargables, pesan entre 2 y 5 kilos y la mayoría trae
integrado una pantalla de LCD (Liquid Crys tal Display).
A.1)
Supercomputadoras: Una supercomputadora es el tipo de
computadora más potente y más rápido que existe en un momento dado.
Estas máquinas están diseñadas para procesar enormes cantidades de
información en poco tiempo y son dedicadas a una tarea específica.
Así mismas son las
más caras, sus precios alcanzan los 30 MILLONES de dólares y más; y
cuentan con un control de temperatura especial, ésto para disipar el
calor que algunos componentes alcanzan a tener.
Unos ejemplos de
tareas a las que son expuestas las supercomputadoras son los
siguientes:
-
Búsqueda y estudio
de la energía y armas nucleares.
-
Búsqueda de
yacimientos petrolíferos con grandes bases de datos sísmicos.
-
El estudio y
predicción de tornados.
-
El estudio y
predicción del clima de cualquier parte del mundo.
-
La elaboración de
maquetas y proyectos de la creación de aviones, simuladores de
vuelo.
-
Etc.
Debido a su precio,
son muy pocas las supercomputadoras que se construyen en un año.
A.2)
Minicomputadoras: En 1960 surgió la minicomputadora, una
versión más pequeña de la Macrocomputadora. Al ser orientada a
tareas específicas, no necesitaba de todos los periféricos que
necesita un Mainframe, y ésto ayudo a reducir el precio y costos de
mantenimiento.
Las minicomputadoras,
en tamaño y poder de procesamiento, se encuentran entre los
mainframes y las estaciones de trabajo.
En general, una
minicomputadora, es un sistema multiproceso (varios procesos en
paralelo) capaz de soportar de 10 hasta 200 usuarios
simultáneamente. Actualmente se usan para almacenar grandes bases de
datos, automatización industrial y aplicaciones multiusuario.
A.3) Estaciones de
trabajo o Workstations: Las estaciones de trabajo se
encuentran entre las minicomputadoras y las macrocomputadoras (por
el procesamiento). Las estaciones de trabajo son un tipo de
computadoras que se utilizan para aplicaciones que requieran de
poder de procesamiento moderado y relativamente capacidades de
gráficos de alta calidad. Son usadas para:
-
Aplicaciones de
ingeniería
-
CAD (Diseño
asistido por computadora)
-
CAM (manufactura
asistida por computadora)
-
Publicidad
-
Creación de
Software
En redes, la palabra
"workstation" o "estación de trabajo" se utiliza para referirse a
cualquier computadora que está conectada a una red de área local.
-
Historia de los
Servidores y Mainframes:
B.1)
Macrocomputadoras o Mainframes:
Las
macrocomputadoras son también conocidas como Mainframes. Los
mainframes son grandes, rápidos y caros sistemas que son capaces
de controlar cientos de usuarios simultáneamente, así como cientos
de dispositivos de entrada y salida.
Los mainframes
tienen un costo que va desde 350,000 dólares hasta varios millones
de dólares. De alguna forma los mainframes son más poderosos que
las supercomputadoras porque soportan más programas
simultáneamente. PERO las supercomputadoras pueden ejecutar un
sólo programa más rápido que un mainframe.
En el pasado, los
Mainframes ocupaban cuartos completos o hasta pisos enteros de
algún edificio, hoy en día, un Mainframe es parecido a una hilera
de archiveros en algún cuarto con piso falso, ésto para ocultar
los cientos de cables d e los periféricos, y su temperatura tiene
que estar controlada.
B.2) Servidor de
archivos:
Dispositivo de
almacenamiento de archivos en una red de área local al que todos
los usuarios de la red pueden acceder. A diferencia de un servidor
de disco, que aparece ante el usuario como una unidad de disco
remota, un servidor de archivos es un dispositivo más complejo que
no sólo almacena archivos sino que también los administra y los
mantiene en orden a medida que los usuarios de la red los
solicitan y los modifican. Para gestionar las tareas de manejo de
varias solicitudes (a veces simultáneas), un servidor de archivos
cuenta con un procesador y software de control, así como
una unidad de disco para el almacenamiento. En redes de área
local, un servidor de archivos suele ser una computadora con un
disco duro grande que está dedicado exclusivamente a las funciones
de administración de archivos compartidos.
-
Terminales Tontas:
en informática, terminal sin
capacidad de proceso. Por lo general, los terminales tontos sólo
son capaces de presentar caracteres alfanuméricos y de responder a
un protocolo de comunicaciones sencillo, como el VT-52, VT-100 o
ANSI.
Es dispositivo
formado por un