1.1 Conceptos de Sistemas Operativos
1.- Un sistema operativo (SO) es un programa o conjunto de programas que
en un sistema informático gestiona los recursos de hardware y provee servicios a los programas
de aplicación, y corre en modo
privilegiado respecto de los restantes.
2.- Es el software básico de una
computadora que provee una interfaz entre el resto de programas del ordenador,
los dispositivos hardware y el usuario.
3.- Es el programa (o software) más importante de un ordenador. Para
que funcionen los otros programas, cada ordenador de uso general debe tener un
sistema operativo. Los sistemas operativos realizan tareas básicas, tales como
reconocimiento de la conexión del teclado, enviar la información a la pantalla,
no perder de vista archivos y directorios en el disco, y controlar los
dispositivos periféricos tales como impresoras, escáner, etc.
Definición propia
Un sistema
operativo consta de una serie de programas que controlan todas las actividades
que la computadora realiza.
Tipos,
Clasificación y Nombres
Clasificación de
los Sistemas Operativos
Los sistemas operativos pueden
ser clasificados de la siguiente forma:
- Multiusuario: Permite que dos o más usuarios utilicen sus programas al mismo tiempo. Algunos sistemas operativos permiten a centenares o millares de usuarios al mismo tiempo.
- Multiprocesador: Soporta el abrir un mismo programa en más de una CPU.
- Multitarea: Permite que varios programas se ejecuten al mismo tiempo.
- Multitramo: Permite que diversas partes de un solo programa funcionen al mismo tiempo.
- Tiempo Real: Responde a las entradas inmediatamente. Los sistemas operativos como DOS y UNIX, no funcionan en tiempo real.
1.2 Evolución de los sistemas operativos
Los primeros sistemas
operativos fueron desarrollados por cada usuario para adecuar el uso de su
propio computadora central, y es en 1956 que la General
Motors desarrolla lo que es hoy considerado el primer sistema, el GM-NAA I/O, para su IBM 704. Los sistemas operativos han venido evolucionando a través de los años.
Ya que los sistemas operativos se han apegado íntimamente a la arquitectura de
las computadoras en las cuales se ejecutan.
La primera generación (1945 -
1955): Tubos de vacío y tableros enchufables
Un grupo singular de personas diseño, construyo, programo, opero y dio
mantenimiento a cada maquina. Toda la programación se realizo en lenguaje de
maquina absoluto. Los lenguajes de programación se desconocían (todavía no
existía el lenguaje ensamblador). Los primeros sistemas operativos eran
extraños. El modo usual de operación consistía en que el programador firmaba
para tener acceso a un bloque de tiempo en la hoja de registro situada en la
pared, después bajaba al cuarto de maquinas, insertaba su tablero enchufable en
la computadora y pasaba las siguientes horas esperando que ninguno de los
20,000 tubos de vació se fundiera durante la ejecución de su programa.
Al inicio de
la década de 1950, la rutina había mejorado un poco con la introducción de la
tarjetas perforadas. Ahora era posible escribir en tarjetas y leerlos, en vez
de utilizar tableros enchufables; de lo contrario el procedimiento era el
mismo.
La
segunda generación (1955 - 1965): Transistores y sistemas de lote
La introducción del transistor
a mediados de la década de 1950 cambio la imagen radicalmente. Las computadoras
se volvieron lo suficientemente confiables, en un principio hubo una clara
separación entre los diseñadores, armadores, operadores, programadores y
personal de mantenimiento. Estas maquinas se instalaban en cuartos de
computadoras especialmente acondicionados con aire, con cuerpo de operadores
profesionales para accionarlas. Un programador primeramente escribiría el
programa en papel (en FORTRAN o en lenguaje Ensamblador) y después lo
perforaría en tarjetas. Después llevaría la pila de tarjetas al cuarto de
introducción al sistema y la entregaría a uno de los operadores el cual iniciaba
el proceso en la computadora, este proceso desperdiciaba mucho tiempo.
La tercera generación (1965 -
1980): Circuitos integrados (CI) y multiprogramación
Se inicia en 1964, con la introducción de la familia de computadores
Sistema/360 de IBM. Los computadores de esta generación fueron diseñados como
sistemas para usos generales. Casi siempre eran sistemas grandes, voluminosos,
con el propósito de serlo todo para toda la gente. Eran sistemas de modos
múltiples, algunos de ellos soportaban simultáneamente procesos por lotes,
tiempo compartido, procesamiento de tiempo real y multiprocesamiento. Eran
grandes y costosos, nunca antes se había construido algo similar, y muchos de
los esfuerzos de desarrollo terminaron muy por arriba del presupuesto y mucho
después de lo que el planificador marcaba como fecha de terminación. Estos
sistemas introdujeron mayor complejidad a los ambientes computacionales; una
complejidad a la cual, en un principio, no estaban acostumbrados los usuarios.
Multiprogramación
En un sistema multiprogramado
la memoria principal alberga
a más de un programa de usuario. La CPU ejecuta instrucciones de un programa, cuando el
que se encuentra en ejecución realiza una operación de E/S; en lugar de esperar
a que termine la operación de E/S, se pasa a ejecutar otro programa. Si éste
realiza, a su vez, otra operación de E/S, se mandan las órdenes oportunas al
controlador, y pasa a ejecutarse otro. De esta forma es posible, teniendo
almacenado un conjunto adecuado de tareas en cada momento, utilizar de manera
óptima los recursos disponibles.
Tiempo compartido
En este punto tenemos un
sistema que hace buen uso de la electrónica disponible, pero adolece la falta
de interactividad; para conseguirla debe convertirse en un
sistema multiusuario, en
el cual existen varios usuarios con un terminal en línea, utilizando el modo de operación de tiempo
compartido. En estos
sistemas los programas de los distintos usuarios residen en memoria. Al realizar
una operación de E/S los programas ceden la CPU a otro programa, al igual que en la multiprogramación. Pero, a diferencia de ésta, cuando un programa
lleva cierto tiempo ejecutándose el sistema operativo lo detiene para que se
ejecute otra aplicación.
Tiempo real
Estos sistemas se usan en
entornos donde se deben aceptar y procesar en tiempos muy breves un gran número
de sucesos, en su mayoría externos al ordenador. Si el sistema no respeta las
restricciones de tiempo en las que las operaciones deben entregar su resultado
se dice que ha fallado. El tiempo de respuesta a su vez debe servir para
resolver el problema o hecho planteado. El procesamiento de archivos se hace de
una forma continua, pues se procesa el archivo antes de que entre el siguiente,
sus primeros usos fueron y siguen siendo en telecomunicaciones.
Multiprocesador
Diseño que no se encuentran en
ordenadores monoprocesador. Estos problemas derivan del hecho de que dos
programas pueden ejecutarse simultáneamente y, potencialmente, pueden
interferirse entre sí. Concretamente, en lo que se refiere a las lecturas y
escrituras en memoria. Existen dos arquitecturas que resuelven estos problemas:
La cuarta
generación (1980 - 1990): Computadoras personales
Con la creación de los circuitos integrados LSI (integración a grande
escala), chips que contiene miles de transistores en un centímetro cuadrado de
silicón, la era de computadora personal vio sus inicios.
Dos sistemas operativos han dominado la escena de la computadora
personal: MS-DOS, escrito por Microsoft, Inc., para la IBM PC y otras
computadoras que utilizan la CPU Intel 8088 y sus sucesores. Y UNIX, que domina
en las computadoras personales mayores que hacen uso de CPU Motorola 68000.
Aunque la versión inicial de MS-DOS era relativamente primitiva,
versiones subsiguientes han incluido más y más características de UNIX, lo que
no es totalmente sorprendente dado que Microsoft es un proveedor importante de
UNIX, que usa el nombre comercial de XENIX.
1.3 Estructura de un sistema operativo
Se deben observar dos
tipos de requisitos cuando se construye un sistema operativo, los cuales son:
Requisitos de usuario: Sistema fácil de usar y de aprender, seguro,
rápido y adecuado al uso al que se le quiere destinar.
Requisitos del software: Donde se engloban aspectos como el
mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia
frente a los errores y flexibilidad.
A continuación se
describen las distintas estructuras que presentan los actuales sistemas
operativos para satisfacer las necesidades que de ellos se quieren obtener.
Estructura monolítica.
Es la estructura de los
primeros sistemas operativos constituidos fundamentalmente por un solo programa
compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una
puede llamar a cualquier otra (Ver Fig. 2). Las características fundamentales
de este tipo de estructura son:
Construcción del programa
final a base de módulos compilados separadamente que se unen a través del
ligador.
Buena definición de
parámetros de enlace entre las distintas rutinas existentes, que puede provocar
mucho acoplamiento.
Carecen de protecciones y
privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos
de la computadora, como memoria, disco, etc.
Generalmente están hechos
a medida, por lo que son eficientes y rápidos en su ejecución y gestión, pero
por lo mismo carecen de flexibilidad para soportar diferentes ambientes de
trabajo o tipos de aplicaciones.
Estructura jerárquica
A medida que fueron
creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se
hizo necesaria una mayor organización del software, del sistema operativo,
donde una parte del sistema contenía subpartes y esto organizado en forma de
niveles.
Se constituyó una
estructura jerárquica o de niveles en los sistemas operativos, el primero de
los cuales fue denominado THE (Technische Hogeschool, Eindhoven), de Dijkstra,
que se utilizó con fines didácticos. Se puede pensar también en
estos sistemas como si fueran `multicapa’. Multics y Unix caen en esa
categoría.
Máquina Virtual.
Se trata de un tipo de
sistemas operativos que presentan una interface a cada proceso, mostrando una
máquina que parece idéntica a la máquina real subyacente. Estos sistemas
operativos separan dos conceptos que suelen estar unidos en el resto de
sistemas: la multiprogramación y la máquina extendida. El objetivo de los
sistemas operativos de máquina virtual es el de integrar distintos sistemas
operativos dando la sensación de ser varias máquinas diferentes.
El núcleo de estos
sistemas operativos se denomina monitor virtual y tiene como misión llevar a
cabo la multiprogramación, presentando a los niveles superiores tantas máquinas
virtuales como se soliciten. Estas máquinas virtuales no son máquinas
extendidas, sino una réplica de la máquina real, de manera que en cada una de
ellas se pueda ejecutar un sistema operativo diferente, que será el que ofrezca
la máquina extendida al usuario.
Cliente-servidor (Microkernel)
El tipo más reciente de
sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado
en la mayoría de las computadoras, ya sean grandes o pequeñas.
Este sistema sirve para
toda clase de aplicaciones por tanto, es de propósito general y cumple con las
mismas actividades que los sistemas operativos convencionales.
El núcleo tiene como
misión establecer la comunicación entre los clientes y los servidores. Los
procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de
aplicación normal es un cliente que llama al servidor correspondiente para
acceder a un archivo o realizar una operación de entrada/salida sobre un
dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor
para otro”. Este paradigma ofrece gran flexibilidad en cuanto a los servicios
posibles en el sistema final, ya que el núcleo provee solamente funciones muy
básicas de memoria, entrada/salida, archivos y procesos, dejando a los
servidores proveer la mayoría que el usuario final o programador puede usar.
Estos servidores deben tener mecanismos de seguridad y protección que, a su
vez, serán filtrados por el núcleo que controla el hardware. Actualmente se
está trabajando en una versión de UNIX que contempla en su diseño este
paradigma.
1.4
Tendencias
Los sistemas operativos siguen evolucionando. La
principal tendencia de los sistemas operativos en cuanto a organización de
trabajo es convertirse en sistemas operativos distribuidos.
Los sistemas operativos distribuidos están
diseñados para su uso en un grupo de computadoras conectadas pero
independientes que comparten recursos. En un sistema operativo distribuido, un
proceso puede ejecutarse en cualquier computadora de la red (normalmente, una
computadora inactiva en ese momento) para aumentar el rendimiento de ese
proceso. En los sistemas distribuidos, todas las funciones básicas de un
sistema operativo, como mantener los sistemas de archivos, garantizar un
comportamiento razonable y recuperar datos en caso de fallos parciales,
resultan más complejas.
- El Sistema Operativo del Mañana:
Se ha progresado mucho en el desarrollo de los
sistemas operativos. Estos progresos han sido paralelos a la aparición de
nuevas tecnologías y de nuevos algoritmos para las tareas de los sistemas
operativos.
Actualmente, hay solamente dos paradigmas
fundamentales del sistema operativo: el intérprete de la línea de comando
(UNIX, DOS), y la interfaz gráfica (Macintosh OS, OS/2, Windows 95). Mientras
que el último es claramente más intuitivo y preferido por la mayoría de los
usuarios, la industria debe ahora tomar otra medida hacia el sistema operativo
ideal. La generación siguiente de sistemas operativos utilizará las nuevas
herramientas desarrolladas tales como programación orientada a objetos (OOP), y
nueva tecnología de hardware (DRAM's y los microprocesadores densos y baratos),
para crear un ambiente que beneficie a los programadores (con modularidad y la
abstracción crecientes) así como a los usuarios (proporcionándoles una interna,
constante y gráficamente orientada interfaz). Los sistemas operativos futuros
también se adaptarán fácilmente a las preferencias cambiantes del usuario y a
las tecnologías futuras (tales como sistemas de realidad virtual).
- Principios en el desarrollo de Sistemas Operativos Futuros:
Existen cuatro principios dominantes que deben
regir en el diseño de sistemas operativos futuros
1.- Abstracción
El principio de la abstracción es que un nivel del
ambiente de software no debe necesitar " saber " los detalles sobre
la implementación en otros niveles. Por ejemplo, un Programador no debe
requerir saber qué clase de procesador será usado cuando se ejecute su
programa, y un usuario de correo-electrónico no debe requerir de conocimientos
de los protocolos de red.
2. Robustez y gestión de errores
Los sistemas operativos futuros deben ser
extremadamente robustos. Sus metas:
1. Ninguna acción del usuario debe hacer que el sistema comporte en una
extraña o ilógica manera
2. Debe ser imposible que cualquier programa interrumpa el funcionamiento
de otros programas, o de la máquina en su totalidad. Es decir sin importar las
acciones y las decisiones del usuario y del programador, la computadora nunca
debe "colapsarse". Además, cualquier acontecimiento inesperado se
debe manjar de una manera práctica. Los problemas que el sistema operativo no
puede solucionar se deben señalar al usuario de una manera no-secreta (tales
como un "cuadro de diálogo"), y se deben explicar de una manera no
técnica (utilizar un lenguaje dependiendo del módulo de programación).
3. El sistema debe enumerar claramente las opciones de las cuales el
usuario debe elegir.
3.- Estandarización
Actualmente, hay numerosos sistemas operativos y
sistemas de hardware que se comportan de varias maneras. Por lo tanto, la
comunicación entre las máquinas de diferente arquitectura es difícil, y esta
situación es confusa para cualquier usuario que procure cambiarse de una
plataforma a otra. Esta confusión da lugar a un costo significativo debido a la
capacitación y al tiempo perdido durante la transición y fase de aprendizaje.
Un sistema operativo bien diseñado debe ser estandarizado
de una manera tal que se adapte y siga siendo útil indefinidamente. Debe crecer
en a la par con la tecnología de cómputo, la visualización, y tecnologías de
interacción, y preferencias del usuario. La naturaleza modular del sistema
operativo del mañana será tal que piezas del sistema serán continuamente
modificadas y puestas al día reflejar estos cambios. Para que estas características
sean posibles, el sistema requerirá: 1) un conjunto muy bien definido de los
estándares públicos disponibles (para la comunicación entre las capas y los
objetos), 2) que este conjunto de estándares se desarrolle con un cierto plazo
de tiempo pero que siga siendo claro y conciso, y 3) que los estándares no
cambien tan rápidamente como para causar problemas de compatibilidad o altos
costos de cambio de hardware.
4.- Diseño para facilidad de empleo y desarrollo de
software
La mayoría de los sistemas operativos actuales
fueron diseñados para ser fáciles de poner en ejecución. En contraste, los
sistemas operativos de mañana serán diseñados para el uso fácil y el desarrollo
fácil. El diseño será hecho con poco disminuciones en cuanto a su facilidad de
implementación con excepción de su modularidad y estandarización inherentes.
Debido a estos buenos principios del diseño, el sistema operativo del mañana no
será difícilmente de implementar. Estas mismas cualidades facilitarán el
trabajo de los programadores también, en cuanto a la mayoría de los proyectos
de desarrollo necesitarán solamente ensamblar objetos de alto nivel. Esos
módulos que deben escribir para sí mismos serán reutilizables y fácilmente
adaptables a las necesidades de cada programador.
1.5 Hardware
El
hardware corresponde a todas las
partes tangibles de un sistema informático sus componentes son: eléctricos,
electrónicos, electromecánicos y mecánicos. Sus cables, gabinetes o
cajas, periféricos
de todo tipo y cualquier otro elemento físico involucrado; contrariamente, el
soporte lógico es intangible y es llamado software. El término es propio
del idioma inglés (literalmente traducido: partes duras), su traducción
al español no tiene un significado acorde, por tal motivo se la ha adoptado tal
cual es y suena; la Real Academia Española lo define como «Conjunto de los
componentes que integran la parte material de una computadora». El término,
aunque es lo más común, no solamente se aplica a una computadora tal como se la
conoce, también, por ejemplo, un robot, un teléfono móvil, una cámara
fotográfica o un reproductor multimedia poseen hardware (y software).
Tipos de hardware
Una
de las formas de clasificar el hardware es en dos categorías: por un
lado, el "básico", que abarca el conjunto de componentes
indispensables necesarios para otorgar la funcionalidad mínima a una computadora;
y por otro lado, el hardware "complementario", que,
como su nombre indica, es el utilizado para realizar funciones específicas (más
allá de las básicas), no estrictamente necesarias para el funcionamiento de la
computadora.
Así
es que: un medio de entrada de datos, la unidad central de procesamiento
(C.P.U.), la memoria RAM, un medio de salida de datos y un medio de
almacenamiento constituyen el "hardware básico".
Los
medios de entrada y salida de datos estrictamente indispensables dependen de la
aplicación: desde el punto de vista de un usuario común, se debería disponer,
al menos, de un teclado y un monitor para entrada y salida de información,
respectivamente; pero ello no implica que no pueda haber una computadora (por
ejemplo controlando un proceso) en la que no sea necesario teclado ni monitor;
bien puede ingresar información y sacar sus datos procesados, por ejemplo, a
través de una placa de adquisición/salida de datos.
Las
computadoras son aparatos electrónicos capaces de interpretar y ejecutar
instrucciones programadas y almacenadas en su memoria; consisten básicamente en
operaciones aritmético-lógicas y de entrada/salida. Se reciben las entradas
(datos), se las procesa y almacena (procesamiento), y finalmente se producen
las salidas (resultados del procesamiento). Por ende todo sistema informático
tiene, al menos, componentes y dispositivos hardware dedicados a alguna
de las funciones antedichas; a saber:
1.
Procesamiento:
Unidad Central de Proceso o CPU
2.
Almacenamiento:
Memorias
3.
Entrada:
Periféricos de entrada (E)
4.
Salida:
Periféricos de salida (S)
5.
Entrada/Salida:
Periféricos mixtos (E/S)
Unidad central de procesamiento
La
CPU, siglas en inglés de Unidad Central de Procesamiento, es el componente fundamental del computador,
encargado de interpretar y ejecutar instrucciones y de procesar datos. En los
computadores modernos, la función de la CPU la realiza uno o más
microprocesadores. Se conoce como microprocesador a una CPU que es
manufacturada como un único circuito integrado.
Un
servidor de red o una máquina de cálculo de alto rendimiento (supercomputación),
puede tener varios, incluso miles de microprocesadores trabajando
simultáneamente o en paralelo (multiprocesamiento); en este caso, todo ese
conjunto conforma la CPU de la máquina.
Las
unidades centrales de proceso (CPU) en la forma de un único microprocesador no
sólo están presentes en las computadoras personales (PC), sino también en otros
tipos de dispositivos que incorporan una cierta capacidad de proceso o
"inteligencia electrónica", como pueden ser: controladores de
procesos industriales, televisores, automóviles, calculadores, aviones,
teléfonos móviles, electrodomésticos, juguetes y muchos más. Actualmente los
diseñadores y fabricantes más populares de microprocesadores de PC son Intel y AMD;
y para el mercado de dispositivos móviles y de bajo consumo, los principales
son Samsung, Qualcomm y Texas Instruments.
El
microprocesador se monta en la
llamada placa base, sobre un zócalo conocido como zócalo de CPU, que permite
las conexiones eléctricas entre los circuitos de la placa y el procesador.
Sobre el procesador ajustado a la placa base se fija un disipador térmico de un
material con elevada conductividad térmica, que por lo general es de aluminio,
y en algunos casos de cobre. Éste es indispensable en los microprocesadores que
consumen bastante energía, la cual, en gran parte, es emitida en forma de calor:
en algunos casos pueden consumir tanta energía como una lámpara incandescente
(de 40 a 130 vatios).
Adicionalmente,
sobre el disipador se acopla uno o dos ventiladores (raramente más), destinados
a forzar la circulación de aire para extraer más rápidamente el calor acumulado
por el disipador y originado en el microprocesador. Complementariamente, para
evitar daños por efectos térmicos, también se suelen instalar sensores de
temperatura del microprocesador y sensores de revoluciones del ventilador, así
como sistemas automáticos que controlan la cantidad de revoluciones por unidad
de tiempo de estos últimos.
La
gran mayoría de los circuitos electrónicos e integrados que componen el hardware
del computador van montados en la placa madre.
La
placa base, también
conocida como placa madre o con
el anglicismo board, es un gran circuito impreso sobre el que se suelda
el chipset, las ranuras de expansión (slots), los zócalos, conectores, diversos
integrados, etc. Es el soporte fundamental que aloja y comunica a todos los
demás componentes: Procesador, módulos de memoria RAM, tarjetas gráficas, tarjetas
de expansión, periféricos de entrada y salida. Para comunicar esos componentes,
la placa base posee una serie de buses mediante los cuales se trasmiten los
datos dentro y hacia afuera del sistema.
La
tendencia de integración ha hecho que la placa base se convierta en un elemento
que incluye a la mayoría de las funciones básicas (vídeo, audio, red, puertos
de varios tipos), funciones que antes se realizaban con tarjetas de expansión.
Aunque ello no excluye la capacidad de instalar otras tarjetas adicionales
específicas, tales como capturadoras de vídeo, tarjetas de adquisición de datos,
etc.
Memoria RAM
Del
inglés Random Access Memory, literalmente significa "memoria de acceso aleatorio".
El término tiene relación con la característica de presentar iguales tiempos de
acceso a cualquiera de sus posiciones (ya sea para lectura o para escritura).
Esta particularidad también se conoce como "acceso directo", en
contraposición al Acceso secuencial.
La
RAM es la memoria utilizada en una computadora para el almacenamiento
transitorio y de trabajo (no masivo). En la RAM se almacena temporalmente la
información, datos y programas que la Unidad de Procesamiento (CPU) lee,
procesa y ejecuta. La memoria RAM es conocida como Memoria principal de la
computadora, también como "Central o de Trabajo"; a diferencia de las
llamadas memorias auxiliares, secundarias o de almacenamiento masivo
(como discos duros, unidades de estado sólido, cintas magnéticas u otras
memorias).
Las
memorias RAM son, comúnmente, volátiles; lo cual significa que pierden
rápidamente su contenido al interrumpir su alimentación eléctrica.
Las
más comunes y utilizadas como memoria central son "dinámicas" (DRAM),
lo cual significa que tienden a perder sus datos almacenados en breve tiempo
(por descarga, aún estando con alimentación eléctrica), por ello necesitan un
circuito electrónico específico que se encarga de proveerle el llamado
"refresco" (de energía) para mantener su información.
La
memoria RAM de un computador se provee de fábrica e instala en lo que se conoce
como “módulos”. Ellos albergan varios circuitos integrados de memoria DRAM que,
conjuntamente, conforman toda la memoria principal.
Memoria RAM dinámica
Es
la presentación más común en computadores modernos (computador personal, servidor);
son tarjetas de circuito impreso que tienen soldados circuitos integrados de
memoria por una o ambas caras, además de otros elementos, tales como resistores
y condensadores. Esta tarjeta posee una serie de contactos metálicos (con un
recubrimiento de oro) que permite hacer la conexión eléctrica con el bus de
memoria del controlador de memoria en la placa base.
Los
integrados son de tipo DRAM, memoria denominada "dinámica", en la
cual las celdas de memoria son muy sencillas (un transistor y un condensador),
permitiendo la fabricación de memorias con gran capacidad (algunos cientos de Megabytes)
a un costo relativamente bajo.
Las
posiciones de memoria o celdas, están organizadas en matrices y almacenan cada
una un bit. Para acceder a ellas se han ideado varios métodos y protocolos cada
uno mejorado con el objetivo de acceder a las celdas requeridas de la manera
más eficiente posible.
Entre
las tecnologías recientes para integrados de memoria DRAM usados en los módulos
RAM se encuentran:
- SDR SDRAM: Memoria con un ciclo sencillo de acceso por ciclo de reloj. Actualmente en desuso, fue popular en los equipos basados en el Pentium III y los primeros Pentium 4.
- DDR SDRAM: Memoria con un ciclo doble y acceso anticipado a dos posiciones de memoria consecutiva. Fue popular en equipos basados en los procesadores Pentium 4 y Athlon 64.
- DDR2 SDRAM: Memoria con un ciclo doble y acceso anticipado a cuatro posiciones de memoria consecutivas.
- DDR3 SDRAM: Memoria con un ciclo doble y acceso anticipado a ocho posiciones de memoria consecutivas. Es el tipo de memoria más actual, está remplazando rápidamente a su predecesora, la DDR2.
Los
estándares JEDEC, establecen las características eléctricas y las físicas de
los módulos, incluyendo las dimensiones del circuito impreso.
Los
estándares usados actualmente son:
- DIMM Con presentaciones de 168 pines (usadas con SDR y otras tecnologías antiguas), 184 pines (usadas con DDR y el obsoleto SIMM) y 240 (para las tecnologías de memoria DDR2 y DDR3).
- SO-DIMM Para computadores portátiles, es una miniaturización de la versión DIMM en cada tecnología. Existen de 144 pines (usadas con SDR), 200 pines (usadas con DDR y DDR2) y 240 pines (para DDR3).
Memorias RAM especiales
Hay
memorias RAM con características que las hacen particulares, y que normalmente no se utilizan como memoria central de
la computadora; entre ellas se puede mencionar:
- SRAM: Siglas de Static Random Access Memory. Es un tipo de memoria más rápida que la DRAM (Dynamic RAM). El término "estática" deriva del hecho que no necesita el refresco de sus datos. Si bien esta RAM no requiere circuito de refresco, ocupa más espacio y utiliza más energía que la DRAM. Este tipo de memoria, debido a su alta velocidad, es usada como memoria caché.
- NVRAM: Siglas de Non-Volatile Random Access Memory. Memoria RAM no volátil (mantiene la información en ausencia de alimentación eléctrica). Hoy en día, la mayoría de memorias NVRAM son memorias flash, muy usadas para teléfonos móviles y reproductores portátiles de MP3.
- VRAM: Siglas de Video Random Access Memory. Es un tipo de memoria RAM que se utiliza en las tarjetas gráficas del computador. La característica particular de esta clase de memoria es que es accesible de forma simultánea por dos dispositivos. Así, es posible que la CPU grabe información en ella, al tiempo que se leen los datos que serán visualizados en el Monitor de computadora.
De
las anteriores a su vez, hay otros subtipos más.
Periféricos
Se
entiende por periférico a las unidades o dispositivos que permiten a la computadora
comunicarse con el exterior, esto es, tanto ingresar como exteriorizar
información y datos. Los periféricos son los que permiten realizar las
operaciones conocidas como de entrada/salida (E/S).
Aunque
son estrictamente considerados “accesorios” o no esenciales, muchos de ellos
son fundamentales para el funcionamiento adecuado de la computadora moderna;
por ejemplo, el teclado, el disco duro y el monitor son elementos actualmente
imprescindibles; pero no lo son un escáner o un plóter. Para
ilustrar este punto: en los años 80, muchas de las primeras computadoras
personales no utilizaban disco duro ni mouse (o ratón), tenían sólo una
o dos disqueteras, el teclado y el monitor como únicos periféricos.
Dispositivos de entrada de información (E)
De
esta categoría son aquellos que permiten el ingreso de información, en general
desde alguna fuente externa o por parte del usuario. Los dispositivos de
entrada proveen el medio fundamental para transferir hacia la computadora (más
propiamente al procesador) información desde alguna fuente, sea local o remota.
También permiten cumplir la esencial tarea de leer y cargar en memoria el sistema
operativo y las aplicaciones o programas informáticos, los que a su vez ponen
operativa la computadora y hacen posible realizar las más diversas tareas.
Entre
los periféricos de entrada se puede mencionar: teclado, mouse o ratón, escáner,
micrófono, cámara web , lectores ópticos de código de barras, Joystick, lectora
de CD, DVD o BluRay (sólo lectoras), placas de adquisición/conversión de datos,
etc.
Pueden
considerarse como imprescindibles para el funcionamiento, (de manera
como hoy se concibe la informática) al teclado, al ratón y algún
dispositivo lector de discos; ya que tan sólo con ellos el hardware
puede ponerse operativo para un usuario. Los otros son más bien accesorios,
aunque en la actualidad pueden resultar de tanta necesidad que son considerados
parte esencial de todo el sistema.
Dispositivos de salida de información (S)
Son
aquellos que permiten emitir o dar salida a la información resultante de las
operaciones realizadas por la CPU (procesamiento).
Los
dispositivos de salida aportan el medio fundamental para exteriorizar y
comunicar la información y datos procesados; ya sea al usuario o bien a otra
fuente externa, local o remota.
Los
dispositivos más comunes de este grupo son los monitores clásicos (no de
pantalla táctil), las impresoras, y los altavoces.
Entre
los periféricos de salida puede considerarse como imprescindible para el
funcionamiento del sistema, al monitor. Otros, aunque accesorios, son sumamente
necesarios para un usuario que opere un computador moderno.
Dispositivos mixtos (E/S de información)
Son
aquellos dispositivos que pueden operar de ambas formas: tanto de entrada como
de salida. Típicamente, se puede mencionar como periféricos mixtos o de Entrada/Salida
a: discos rígidos, disquetes, unidades de cinta magnética, lecto-grabadoras de CD/DVD,
discos ZIP, etc. También entran en este rango, con sutil diferencia, otras
unidades, tales como: Tarjetas de Memoria flash o unidad de estado sólido,
tarjetas de red, módems, tarjetas de captura/salida de vídeo, etc.
Si
bien se puede clasificar al pendrive (lápiz de memoria), memoria flash o
memoria USB o unidades de estado sólido en la categoría de memorias,
normalmente se los utiliza como dispositivos de almacenamiento masivo; siendo
todos de categoría Entrada/Salida.
Los
dispositivos de almacenamiento masivo también son conocidos como "Memorias
Secundarias o Auxiliares". Entre ellos, sin duda, el disco duro ocupa un
lugar especial, ya que es el de mayor importancia en la actualidad, en el que
se aloja el sistema operativo, todas las aplicaciones, utilitarios, etc. que
utiliza el usuario; además de tener la suficiente capacidad para albergar
información y datos en grandes volúmenes por tiempo prácticamente indefinido.
Los servidores Web, de correo electrónico y de redes con bases de datos,
utilizan discos rígidos de grandes capacidades y con una tecnología que les
permite trabajar a altas velocidades como SCSI incluyendo también, normalmente,
capacidad de redundancia de datos RAID; incluso utilizan tecnologías híbridas:
disco rígido y unidad de estado sólido, lo que incrementa notablemente su
eficiencia. Las interfaces actuales más usadas en discos duros son: IDE, SATA, SCSI
y SAS; y en las unidades de estado sólido son SATA y PCI-Express ya que
necesitan grandes anchos de banda.
La
pantalla táctil (no el monitor clásico) es un dispositivo que se considera
mixto, ya que además de mostrar información y datos (salida) puede actuar como
un dispositivo de entrada, remplazando, por ejemplo, a algunas funciones del
ratón o del teclado.
Hardware gráfico
El
hardware gráfico lo constituyen básicamente las tarjetas gráficas.
Dichos componentes disponen de su propia memoria y unidad de procesamiento,
esta última llamada unidad de procesamiento gráfico (o GPU, siglas en inglés de Graphics Processing Unit). El
objetivo básico de la GPU es realizar los cálculos asociados a operaciones
gráficas, fundamentalmente en coma flotante, liberando así al procesador
principal (CPU) de esa costosa tarea (en tiempo) para que éste pueda efectuar
otras funciones en forma más eficiente. Antes de esas tarjetas de vídeo con
aceleradores por hardware, era el procesador principal el encargado de
construir la imagen mientras la sección de vídeo (sea tarjeta o de la placa
base) era simplemente un traductor de las señales binarias a las señales
requeridas por el monitor; y buena parte de la memoria principal (RAM) de la
computadora también era utilizada para estos fines.
Dentro
de ésta categoría no se deben omitir los sistemas gráficos integrados (IGP),
presentes mayoritariamente en equipos portátiles o en equipos prefabricados (OEM),
los cuales generalmente, a diferencia de las tarjetas gráficas, no disponen de
una memoria dedicada, utilizando para su función la memoria principal del
sistema. La tendencia en los últimos años es integrar los sistemas gráficos
dentro del propio procesador central. Los procesadores gráficos integrados (IGP)
generalmente son de un rendimiento y consumo notablemente más bajo que las GPU
de las tarjetas gráficas dedicadas, no obstante, son más que suficiente para
cubrir las necesidades de la mayoría de los usuarios de un PC.
Actualmente
se están empezando a utilizar las tarjetas gráficas con propósitos no
exclusivamente gráficos, ya que en potencia de cálculo la GPU es superior, más
rápida y eficiente que el procesador para operaciones en coma flotante, por
ello se está tratando de aprovecharla para propósitos generales, al concepto,
relativamente reciente, se le denomina GPGPU (General-Purpose Computing on
Graphics Processing Units).
La
Ley de Moore establece que cada 18 a 24 meses la cantidad de transistores que
puede contener un circuito integrado se logra duplicar; en el caso de los GPU
esta tendencia es bastante más notable, duplicando, o aún más, lo indicado en
la ley de Moore.
Desde
la década de 1990, la evolución en el procesamiento gráfico ha tenido un
crecimiento vertiginoso; las actuales animaciones por computadoras y
videojuegos eran impensables veinte años atrás.
1.6Software
Se conoce como software al equipamiento lógico o
soporte lógico de un sistema informático; comprende el conjunto de los
componentes lógicos necesarios
que hacen posible la realización de tareas específicas, en contraposición a los
componentes físicos, que son llamados hardware.
Los componentes lógicos
incluyen, entre muchos otros, las aplicaciones informáticas; tales como el procesador
de texto, que permite al usuario realizar todas las tareas concernientes a la
edición de textos; el software de sistema, tal como el sistema operativo, que,
básicamente, permite al resto de los programas funcionar adecuadamente,
facilitando también la interacción entre los componentes físicos y el resto de
las aplicaciones, y proporcionando una interfaz con el usuario.
Clasificación del software
Si
bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los
fines prácticos se puede clasificar al software en tres grandes tipos:
Software de sistema:
Su objetivo es desvincular
adecuadamente al usuario y al programador de los detalles del sistema
informático en particular que se use, aislándolo especialmente del
procesamiento referido a las características internas de: memoria, discos,
puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc.
El software de sistema le procura al usuario y programador, adecuadas interfaces
de alto nivel, controladores, herramientas y utilidades de apoyo que permiten
el mantenimiento del sistema global. Incluye entre otros:
·
Sistemas operativos: Un sistema operativo (SO) es un programa
o conjunto de programas que en un sistema informático gestiona los recursos de hardware
y provee servicios a los programas de aplicación, y corre en modo privilegiado
respecto de los restantes.
·
Controladores de
dispositivos:
Un controlador de dispositivo,
llamado normalmente controlador
(en inglés, device driver) es un programa informático que permite al sistema
operativo interactuar con un periférico, haciendo una abstracción del hardware
y proporcionando una interfaz -posiblemente estandarizada- para usarlo. Se
puede esquematizar como un manual de instrucciones que le indica al sistema
operativo, cómo debe controlar y comunicarse con un dispositivo en particular.
·
Herramientas de
diagnóstico:
Una herramienta de diagnóstico es
un software que permite monitorear y en algunos casos controlar la
funcionalidad del hardware, como: computadoras, servidores y periféricos, según
el tipo y sus funciones. Estos dispositivos pueden ser, la memoria RAM, el procesador,
los discos duros, ruteadores, tarjetas de red, entre muchos dispositivos más.
El software permite monitorear temperatura, rendimiento, transferencia de
datos, etc.
Servidores: En informática, un servidor es una computadora que,
formando parte de una red, provee servicios a otras computadoras denominadas clientes.
También se suele denominar con la palabra servidor a:
Ø Una aplicación informática o programa que realiza algunas tareas en
beneficio de otras aplicaciones llamadas clientes. Algunos servicios habituales son
los servicios de archivos, que permiten a los usuarios almacenar y acceder a
los archivos de una computadora y los servicios de aplicaciones, que realizan
tareas en beneficio directo del usuario final. Este es el significado original
del término. Es posible que un ordenador cumpla simultáneamente las funciones
de cliente y de servidor.
Ø Una computadora en la que se ejecuta un programa
que realiza alguna tarea en beneficio de otras aplicaciones llamadas clientes,
tanto si se trata de un ordenador central (mainframe), un miniordenador,
una computadora personal, una PDA o un sistema
embebido; sin embargo, hay computadoras destinadas únicamente a
proveer los servicios de estos programas: estos son los servidores por
antonomasia.
Ø Un servidor no es necesariamente una máquina de última generación de
grandes proporciones, no es necesariamente un superordenador;
un servidor puede ser desde una computadora vieja, hasta una máquina sumamente
potente (ej.: servidores web, bases de datos grandes, etc. Procesadores
especiales y hasta varios terabytes de memoria). Todo esto depende del uso que
se le dé al servidor. Si usted lo desea, puede convertir al equipo desde el
cual usted está leyendo esto en un servidor instalando un programa que trabaje
por la red y a la que los usuarios de su red ingresen a través de un programa
de servidor web como Apache.
·
Utilidades: En informática, una utilidad es una herramienta que
realiza:
Ø
Tareas de mantenimiento
Ø
Soporte para la construcción y ejecución de programas
Ø
Las tareas en general
En donde se incluyen las bibliotecas de sistema, middleware,
herramientas de desarrollo, etc.
Entre ellas podemos nombrar cifrado y descifrado de archivos, compresión
de archivos, desfragmentadores de disco, editores de texto, respaldo, etc.
Software
de programación:
Es
el conjunto de herramientas que permiten al programador desarrollar programas
informáticos, usando diferentes alternativas y lenguajes de programación, de
una manera práctica. Incluyen básicamente:
- Editores de texto: Un editor de texto es un programa que permite crear y modificar archivos digitales compuestos únicamente por texto sin formato, conocidos comúnmente como archivos de texto o texto plano. El programa lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor.
- Compiladores: Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación.
- Intérpretes: En ciencias de la computación, intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.
- Enlazadores: Un enlazador es un programa que toma los objetos generados en los primeros pasos del proceso de compilación, la información de todos los recursos necesarios (biblioteca), quita aquellos recursos que no necesita, y enlaza el código objeto con su(s) biblioteca(s) con lo que finalmente produce un fichero ejecutable o una biblioteca. En el caso de los programas enlazados dinámicamente, el enlace entre el programa ejecutable y las bibliotecas se realiza en tiempo de carga o ejecución del programa.
- Depuradores: Un depurador, es un programa usado para probar y depurar (eliminar los errores) de otros programas (el programa "objetivo"). El código a ser examinado puede alternativamente estar corriendo en un simulador de conjunto de instrucciones (ISS), una técnica que permite gran potencia en su capacidad de detenerse cuando son encontradas condiciones específicas pero será típicamente algo más lento que ejecutando el código directamente en el apropiado (o el mismo) procesador. Algunos depuradores ofrecen dos modos de operación - la simulación parcial o completa, para limitar este impacto.
Software
de aplicación:
Es
aquel que permite a los usuarios llevar a cabo una o varias tareas específicas,
en cualquier campo de actividad susceptible de ser automatizado o asistido, con
especial énfasis en los negocios. Incluye entre muchos otros:
- Aplicaciones ofimáticas: Una suite ofimática o suite de oficina es una recopilación de aplicaciones, las cuales son utilizados en oficinas y sirve para diferentes funciones como crear, modificar, organizar, escanear, imprimir, etc. archivos y documentos. Son ampliamente usados en varios lugares, ya que al ser eso (una recopilación), hace que sea asequible adquirir toda la suite, que programa por programa, lo cual es más complejo, al tener que conseguir programa por programa, y en caso del software pagado, más caro.
- Software educativo: Se denomina software educativo al destinado a la enseñanza y el aprendizaje autónomo y que, además, permite el desarrollo de ciertas habilidades cognitivas.
- Software empresarial: Por software empresarial se entiende generalmente cualquier tipo de software que está orientado a ayudar a una empresa a mejorar su productividad o a medirla.
- Bases de datos: Una base de datos o banco de datos (en ocasiones abreviada con la sigla BD o con la abreviatura b. d.) es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos.
- Telecomunicaciones: La telecomunicación («comunicación a distancia»), del prefijo griego tele, "distancia" y del latín comunicare) es una técnica consistente en transmitir un mensaje desde un punto a otro, normalmente con el atributo típico adicional de ser bidireccional. El término telecomunicación cubre todas las formas de comunicación a distancia, incluyendo radio, telegrafía, televisión, telefonía, transmisión de datos e interconexión de computadoras a nivel de enlace.
- Videojuegos: Un videojuego o juego de vídeo es un software creado para el entretenimiento en general y basado en la interacción entre una o varias personas y un aparato electrónico que ejecuta dicho videojuego; este dispositivo electrónico puede ser una computadora, una máquina árcade, una videoconsola, un dispositivo handheld (un teléfono móvil, por ejemplo) los cuales son conocidos como "plataformas". Aunque, usualmente el término "video" en la palabra "videojuego" se refiere en sí a un visualizador de gráficos rasterizados, hoy en día se utiliza para hacer uso de cualquier tipo de visualizador.
- Software médico: Software médico se llama a aquellos programas informáticos que son utilizados para fines médicos. Se utilizan muchos dispositivos médicos para vigilar o controlar a los pacientes, en su mayoría controlados por software. Estos programas son producto sanitario y deben cumplir la normativa de los mismos. Nótese que no todos los programas que se utilizan en el entorno médico son producto sanitario.







No hay comentarios:
Publicar un comentario