domingo, 2 de octubre de 2016

1.3 Tipos de sistemas operativos

Tipos de Sistemas Operativos

Esta clasificación es la empleada y conocida desde el punto de vista del usuario final. Esta clasificación se comprende fácilmente con el cuadro sinóptico que a continuación se muestra:
Por el número de usuarios
Resultado de imagen para Monousuarios
  • Monousuarios: Los sistemas operativos monousuarios son aquéllos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente se han clasificado en este renglón.

  • Multiusuarios: Los sistemas operativos multiusuarios son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente.
Por el número de tareas
  • Monotareas: Los sistemas monotarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo sólo una tarea a la vez.

  • Multitareas o multiprogramación: Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad.
Resultado de imagen para monotareas ms-dosEn general, los sistemas de multiprogramación se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos.
Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea.
Por el número de procesadores
  • Uniproceso: Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS.

  • Multiproceso: Un sistema operativo multiproceso se refiere al número de procesadores del sistema, que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente. Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualesquiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.
Se dice que un thread es la parte activa en memoria y corriendo de un proceso, lo cual puede consistir de un área de memoria, un conjunto de registros con valores específicos, la pila y otros valores de contexto. Un aspecto importante a considerar en estos sistemas es la forma de crear aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que fueron hechas para correr en sistemas monoproceso que no toman ninguna ventaja a menos que el sistema operativo o el compilador detecte secciones de código paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes. Por otro lado, el programador puede modificar sus algoritmos y aprovechar por sí mismo esta facilidad, pero esta última opción las más de las veceses costosa en horas hombre y muy tediosa, obligando al programador a ocupar tanto o más tiempo a la paralelización que a elaborar el algoritmo inicial.

Resultado de imagen para MultiusuariosSistemas Operativos por tipo de servicio

Esta clasificación también se refiere a una visión externa, que en este caso se refiere a la del usuario, el cómo accesa los servicios. Bajo esta clasificación se pueden detectar dos tipos principales: sistemas operativos de red y sistemas operativos distribuidos.

Sistemas Operativos de Red.
Los sistemas operativos de red se definen como aquellos que tienen la capacidad de interactuar con sistemas operativos en otras computadoras por medio de un medio de transmisión con el objeto de intercambiar información, transferir archivos, ejecutar comandos remotos y un sin fin de otras actividades. El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un conjunto de comandos o llamadas al sistema para ejecutar estas operaciones, además de la ubicación de los recursos que desee acceder.
Por ejemplo, si un usuario en la computadora hidalgo necesita el archivo matriz.pas que se localiza en el directorio /software/codigo en la computadora morelos bajo el sistema operativo UNIX, dicho usuario podría copiarlo a través de la red con los comandos siguientes: hidalgo% hidalgo% rcpmorelos:/software/codigo/matriz.pas . hidalgo% En este caso, el comando rcp que significa "remote copy" trae el archivo indicado de la computadora morelos y lo coloca en el directorio donde se ejecutó el mencionado comando. Lo importante es hacer ver que el usuario puede acceder y compartir muchos recursos.
Los Sistemas Operativos de red más ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.

Sistemas Operativos Distribuidos.
Los sistemas operativos distribuidos abarcan los servicios de los de red, logrando integrar recursos (impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso) en una sola máquina virtual que el usuario acceda en forma transparente. Es decir, ahora el usuario ya no necesita saber la ubicación de los recursos, sino que los conoce por nombre y simplemente los usa como si todos ellos fuesen locales a su lugar de trabajo habitual. Todo lo anterior es el marco teórico de lo que se desearía tener como sistema operativo distribuido, pero en la realidad no se ha conseguido crear uno del todo, por la complejidad que suponen: distribuir los procesos en las varias unidades de procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y paralelismo, recuperarse de fallas de algunos recursos distribuidos y consolidar la protección y seguridad entre los diferentes componentes del sistema y los usuarios.
Los avances tecnológicos en las redes de área local y la creación de microprocesadores de 32 y 64 bits lograron que computadoras más o menos baratas tuvieran el suficiente poder en forma autónoma para desafiar en cierto grado a los mainframes, y a la vez se dio la posibilidad de intercomunicarlas, sugiriendo la oportunidad de partir procesos muy pesados en cálculo en unidades más pequeñas y distribuirlas en los varios microprocesadores para luego reunir los sub- resultados, creando así una máquina virtual en la red que exceda en poder a un mainframe.
El sistema integrador de los microprocesadores que hacer ver a las varias memorias, procesadores, y todos los demás recursos como una sola entidad en forma transparente se le llama sistema operativo distribuido.Las razones para crear o adoptar sistemas distribuidos se dan por dos razones principales: por necesidad (debido a que los problemas a resolver son inherentemente distribuidos) o porque se desea tener más confiabilidad y disponibilidad de recursos. En el primer caso tenemos, por ejemplo, el control de los cajeros automáticos en diferentes estados de la república. Ahí no es posible ni eficiente mantener un control centralizado, es más, no existe capacidad de cómputo y de entrada/salida para dar servicio a los millones de operaciones por minuto.
En el segundo caso, supóngase que se tienen, en una gran empresa, varios grupos de trabajo, cada uno necesita almacenar grandes cantidades de información en disco duro con una alta confiabilidad y disponibilidad. La solución puede ser que para cada grupo de trabajo se asigne una partición de disco duro en servidores diferentes, de manera que si uno de los servidores falla, no se deje dar el servicio a todos, sino sólo a unos cuantos y, más aún, se podría tener un sistema con discos en espejo (mirror) a través de la red, de manera que si un servidor se cae, el servidor en espejo continúa trabajando y el usuario ni cuenta se da de estas fallas, es decir, obtiene acceso a recursos en forma transparente.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.

 Sistemas operativos por lotes.
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico.

 Sistemas operativos de tiempo real.
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados un gran número de sucesos o eventos. Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo muy rápidamente.
Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra.

Sistemas operativos de tiempo compartido.
Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, ésta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.

Sistemas operativos paralelos.
En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo.
En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso.
Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.

Sistemas operativos por sus propósitos.
  • De propósito general (Ms-Dos, Dr-Dos, OS/2, Windows xx, MAS/OS)
  • De propósito específico (Ciruito cerrado de video)
De Red (Netware, NT, Windows 2000 Server, OS/2 Server, Lantastic, pathworks, Linux, Unix)

1.2 Software

Definición de software - Qué es, Significado y Concepto


El software es una palabra que proviene del idioma inglés, pero que gracias a la masificación de uso, ha sido aceptada por la Real Academia Española. Según la RAE, el software es un conjunto de programas, instrucciones y reglas informáticas que permiten ejecutar distintas tareas en una computadora.
Resultado de imagen para softwareSe considera que el software es el equipamiento lógico e intangible de un ordenador. En otras palabras, el concepto de software abarca a todas las aplicaciones informáticas, como los procesadores de textos, las planillas de cálculo y los editores de imágenes.

El software es desarrollado mediante distintos lenguajes de programación, que permiten controlar el comportamiento de una máquina. Estos lenguajes consisten en un conjunto de símbolos y reglas sintácticas y semánticas, que definen el significado de sus elementos y expresiones. Un lenguaje de programación permite a los programadores del software especificar, en forma precisa, sobre qué datos debe operar una computadora.

Dentro de los tipos de software, uno de los más importantes es el software de sistema o software de base, que permite al usuario tener el control sobre el hardware (componentes físicos) y dar soporte a otros programas informáticos. Los llamados sistemas operativos, que comienzan a funcionar 
cuando se enciende la computadora, son software de base.
Resultado de imagen para software
La industria del desarrollo de software se ha convertido en un protagonista importante dentro de la economía global, ya que mueve millones de dólares al año. La compañía más grande y popular del mundo es Microsoft, fundada en 1975 por Bill Gates y Paul Allen. Esta empresa logró trascender gracias a su sistema operativo Windows y a su suite de programas de oficinaOffice.








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:


Proceso de creación del software

Se define como proceso al conjunto ordenado de pasos a seguir para llegar a la solución de un problema u obtención de un producto, en este caso particular, para lograr un producto software que resuelva un problema específico.
Resultado de imagen para softwareEl proceso de creación de software puede llegar a ser muy complejo, dependiendo de su porte, características y criticidad del mismo. Por ejemplo la creación de un sistema operativo es una tarea que requiere proyecto, gestión, numerosos recursos y todo un equipo disciplinado de trabajo. En el otro extremo, si se trata de un sencillo programa (por ejemplo, la resolución de una ecuación de segundo orden), éste puede ser realizado por un solo programador (incluso aficionado) fácilmente. Es así que normalmente se dividen en tres categorías según su tamaño (líneas de código) o costo: de «pequeño»«mediano» y «gran porte». Existen varias metodologías para estimarlo, una de las más populares es el sistema COCOMO que provee métodos y un software (programa) que calcula y provee una aproximación de todos los costos de producción en un «proyecto software» (relación horas/hombre, costo monetario, cantidad de líneas fuente de acuerdo a lenguaje usado, etc.).
Considerando los de gran porte, es necesario realizar complejas tareas, tanto técnicas como de gerencia, una fuerte gestión y análisis diversos (entre otras cosas), la complejidad de ello ha llevado a que desarrolle una ingeniería específica para tratar su estudio y realización: es conocida como Ingeniería de Software.
Resultado de imagen para softwareEn tanto que en los de mediano porte, pequeños equipos de trabajo (incluso un avezado analista-programador solitario) pueden realizar la tarea. Aunque, siempre en casos de mediano y gran porte (y a veces también en algunos de pequeño porte, según su complejidad), se deben seguir ciertas etapas que son necesarias para la construcción del software. Tales etapas, si bien deben existir, son flexibles en su forma de aplicación, de acuerdo a la metodología oproceso de desarrollo escogido y utilizado por el equipo de desarrollo o por el analista-programador solitario (si fuere el caso).
Los «procesos de desarrollo de software» poseen reglas preestablecidas, y deben ser aplicados en la creación del software de mediano y gran porte, ya que en caso contrario lo más seguro es que el proyecto no logre concluir o termine sin cumplir los objetivos previstos, y con variedad de fallos inaceptables (fracasan, en pocas palabras). Entre tales «procesos» los hay ágiles o livianos (ejemplo XP), pesados y lentos (ejemplo RUP), y variantes intermedias. Normalmente se aplican de acuerdo al tipo y porte del software a desarrollar, a criterio del líder (si lo hay) del equipo de desarrollo. Algunos de esos procesos son Programación Extrema (en inglés eXtreme Programming o XP), Proceso Unificado de Rational (en inglés Rational Unified Process o RUP), Feature Driven Development (FDD), etc.
Cualquiera sea el «proceso» utilizado y aplicado al desarrollo del software (RUP, FDD, XP, etc), y casi independientemente de él, siempre se debe aplicar un «modelo de ciclo de vida».6
Se estima que, del total de proyectos software grandes emprendidos, un 28 % fracasan, un 46 % caen en severas modificaciones que lo retrasan y un 26 % son totalmente exitosos.7
Resultado de imagen para softwareCuando un proyecto fracasa, rara vez es debido a fallas técnicas, la principal causa de fallos y fracasos es la falta de aplicación de una buena metodología o proceso de desarrollo. Entre otras, una fuerte tendencia, desde hace pocas décadas, es mejorar las metodologías o procesos de desarrollo, o crear nuevas y concientizar a los profesionales de la informática a su utilización adecuada. Normalmente los especialistas en el estudio y desarrollo de estas áreas (metodologías) y afines (tales como modelos y hasta la gestión misma de los proyectos) son los ingenieros en software, es su orientación. Los especialistas en cualquier otra área de desarrollo informático (analista, programador, Lic. en informática, ingeniero en informática, ingeniero de sistemas, etc.) normalmente aplican sus conocimientos especializados pero utilizando modelos, paradigmas y procesos ya elaborados.
Es común para el desarrollo de software de mediano porte que los equipos humanos involucrados apliquen «metodologías propias», normalmente un híbrido de los procesos anteriores y a veces con criterios propios.
El proceso de desarrollo puede involucrar numerosas y variadas tareas,6 desde lo administrativo, pasando por lo técnico y hasta la gestión y el gerenciamiento. Pero, casi rigurosamente, siempre se cumplen ciertas etapas mínimas; las que se pueden resumir como sigue:
Resultado de imagen para software
  • Captura, elicitación8 , especificación y análisis de requisitos (ERS)
  • Diseño
  • Codificación
  • Pruebas (unitarias y de integración)
  • Instalación y paso a producción
  • Mantenimiento
En las anteriores etapas pueden variar ligeramente sus nombres, o ser más globales, o contrariamente, ser más refinadas; por ejemplo indicar como una única fase (a los fines documentales e interpretativos) de «análisis y diseño»; o indicar como «implementación» lo que está dicho como «codificación»; pero en rigor, todas existen e incluyen, básicamente, las mismas tareas específicas.
En el apartado 4 del presente artículo se brindan mayores detalles de cada una de las etapas indicadas.

1.1Hardware

Definición de hardware - Qué es, Significado y Concepto


El origen etimológico del término hardware que ahora vamos a analizar en profundidad lo encontramos claramente en el inglés. Y es que aquel está conformado por la unión de dos vocablos de la lengua anglosajona: hard que puede traducirse como “duro” y ware que es sinónimo de “cosas”.


El origen etimológico del término hardware que ahora vamos a analizar en profundidad lo encontramos claramente en el inglés. Y es que aquel está conformado por la unión de dos vocablos de la lengua anglosajona: hard que puede traducirse como “duro” y ware que es sinónimo de “cosas”.

La Real Academia Española define al hardware como el conjunto de los componentes que conforman la parte material (física) de una computadora, a diferencia del software que refiere a los componentes lógicos (intangibles). Sin embargo, el concepto suele ser entendido de manera más amplia y se utiliza para denominar a todos los componentes físicos de una tecnología.

En el caso de la informática y de las computadoras personales, el hardware permite definir no sólo a los componentes físicos internos (disco duro, placa madre, microprocesador, circuitos, cables, etc.), sino también a los periféricos (escáners, impresoras).
El hardware suele distinguirse entre básico (los dispositivos necesarios para iniciar el funcionamiento de un ordenador) y complementario (realizan ciertas funciones específicas).

Resultado de imagen para HardwareEn cuanto a los tipos de hardware, pueden mencionarse a los periféricos de entrada (permiten ingresar información al sistema, como el teclado y el mouse), los periféricos de salida (muestran al usuario el resultado de distintas operaciones realizadas en la computadora. Ejemplo: monitor, impresora), los periféricos de entrada/salida (módems, tarjetas de red, memorias USB), la unidad central de procesamiento o CPU (los componentes que interpretan las instrucciones y procesan los datos) y la memoria de acceso aleatorio o RAM (que se utiliza para el almacenamiento temporal de información).

En el caso de lo que es la memoria RAM tenemos que subrayar además que existe una clasificación de la misma en dos grandes categorías. Así, por un lado, tenemos lo que se conoce como dinámicas, el conjunto de tarjetas que en los ordenadores están conectadas al bus de memoria de la placa base, y por otro lado están las especiales. Estas últimas, al contrario que las anteriores, no se utilizan en las computadoras como memoria central.
Entre estas últimas habría que destacar las VRAM (Video Random Access Memory), las SRAM (Static Random Acces Memory) y las NVRAM (Non-Volatile Random Access Memory).
La historia del desarrollo del hardware, por otra parte, marca diversos hitos y etapas. Se habla de una primera generación (con tubos de vidrio que albergaban circuitos eléctricos), una segunda generación (con transistores), una tercera generación (que permitió empaquetar cientos de transistores en un circuito integrado de un chip de silicio) y una cuarta generación(con el advenimiento del microprocesador). El avance en los estudios sobre nanotecnología permite prever la aparición de un hardware más avanzado en los próximos años.

Además de toda la información expuesta hasta el momento tampoco podemos pasar por alto lo que se conoce como hardware libre. Este es un concepto de gran importancia en el sector pues hace referencia al conjunto de dispositivos que se caracterizan por el hecho de que cualquier persona, bien de forma gratuita o bien mediante el pago de una determinada cantidad, puede acceder de manera pública a lo que son sus especificaciones.
En concreto, este tipo de hardware puede clasificarse tomando como punto de partida su naturaleza, lo que dará lugar a dos categorías (estático o reconfigurable), o según su filosofía. En este último caso nos encontraremos, por ejemplo, con el libre hardware design o con el open source hardware.


Hardware típico de una computadora personal:
1. Monitor.
2. Placa principal.
3. Microprocesador (CPU) y zócalo.
4. Un módulo de RAM y tres ranuras.
5. Dos tarjetas de expansión y tres ranuras.
6. Fuente de alimentación.
7. Unidad de disco óptico (CDDVDBD).
8. Unidad de disco duro ó unidad de estado sólido.
9. Teclado.
10. Ratón.

Historia

La clasificación evolucionista del hardware del computador electrónico está dividida en generaciones, donde cada una supone un cambio tecnológico notable. El origen de las primeras es sencillo de establecer, ya que en ellas el hardware fue sufriendo cambios radicales.5 Los componentes esenciales que constituyen la electrónica del computador fueron totalmente reemplazados en las primeras tres generaciones, originando cambios que resultaron trascendentales. En las últimas décadas es más difícil distinguir las nuevas generaciones, ya que los cambios han sido graduales y existe cierta continuidad en las tecnologías usadas. En principio, se pueden distinguir:
  • 1.ª Generación (1945-1956): electrónica implementada con tubos de vacío. Fueron las primeras máquinas que desplazaron los componentes electromecánicos (relés).
  • 2.ª Generación (1957-1963): electrónica desarrollada con transistores. La lógica discreta era muy parecida a la anterior, pero la implementación resultó mucho más pequeña, reduciendo, entre otros factores, el tamaño de un computador en notable escala.
  • 3.ª Generación (1964-hoy): electrónica basada en circuitos integrados. Esta tecnología permitió integrar cientos de transistores y otros componentes electrónicos en un único circuito integrado impreso en una pastilla de silicio. Las computadoras redujeron así considerablemente su costo, consumo y tamaño, incrementándose su capacidad, velocidad y fiabilidad, hasta producir máquinas como las que existen en la actualidad.
  • 4.ª Generación (futuro): probablemente se originará cuando los circuitos de silicio, integrados a alta escala, sean reemplazados por un nuevo tipo de material o tecnología.6
La aparición del microprocesador marca un hito de relevancia, y para muchos autores constituye el inicio de la cuarta generación.7 A diferencia de los cambios tecnológicos anteriores, su invención no supuso la desaparición radical de los computadores que no lo utilizaban. Así, aunque el microprocesador4004 fue lanzado al mercado en 1971, todavía a comienzo de los 80's había computadores, como el PDP-11/44,8 con lógica carente de microprocesador que continuaban exitosamente en el mercado; es decir, en este caso el desplazamiento ha sido muy gradual.
Otro hito tecnológico usado con frecuencia para definir el inicio de la cuarta generación es la aparición de los circuitos integrados VLSI (very large scale integration), a principios de los ochenta. Al igual que el microprocesador, no supuso el cambio inmediato y la rápida desaparición de los computadores basados en circuitos integrados en más bajas escalas de integración. Muchos equipos implementados con tecnologías VLSI y MSI (medium scale integration) aún coexistían exitosamente hasta bien entrados los 90.

Clasificación del hardware


Microcontrolador Motorola 68HC11 y chips de soporte que podrían constituir el hardwarede un equipo electrónico industrial.
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.
Necesita un medio de entrada de datos, la unidad central de procesamiento, 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 procesamiento
  2. Almacenamiento: Memorias
  3. Entrada: Periféricos de entrada 
  4. Salida: Periféricos de salida 
  5. Entrada/Salida: Periféricos mixtos 
Desde un punto de vista básico y general, un dispositivo de entrada es el que provee el medio para permitir el ingreso de información, datos y programas(lectura); un dispositivo de salida brinda el medio para registrar la información y datos de salida (escritura); la memoria otorga la capacidad de almacenamiento, temporal o permanente (almacenamiento); y la CPU provee la capacidad de cálculo y procesamiento de la información ingresada (transformación).11
Un periférico mixto es aquél que puede cumplir funciones tanto de entrada como de salida; el ejemplo más típico es el disco rígido (ya que en él se lee y se graba información y datos).