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 para el usuario.
Además de estas categorías basadas en tareas, varios tipos de software se describen basándose en su método de distribución. Entre estos se encuentran los así llamados programas enlatados, el software desarrollado por compañías y vendido principalmente por distribuidores, el freeware y software de dominio público,
que se ofrece sin costo alguno, el shareware, que es similar al freeware, pero suele conllevar una pequeña tasa a pagar por los usuarios que lo utilicen profesionalmente y, por último, el infame vapourware, que es software que no llega a presentarse o que aparece mucho después de lo prometido
Clasificación del software
Sistema operativo
Software de uso general
Software de aplicación
Sistema Operativo
Lenguaje de programación
Pespectiva historica
Los primeros sistemas (1945-1950) eran grandes máquinas operadas desde la consola maestra por los programadores. Durante la década siguiente (1950-1960) se llevaron a cabo avances en el hardware: lectoras de tarjetas, impresoras, cintas magnéticas, etc. dispositivos, etc.
Esto a su vez provocó un avance en el software: compiladores, ensambladores, cargadores, manejadores de dispositivos, etc.
Hace aparición el disco magnético con lo que surgen nuevas soluciones a los problemas de rendimiento. Se eliminan las cintas magnéticas para el volcado previo de los datos de dispositivos lentos y se sustituyen por discos (un disco puede simular varias cintas).
Debido al solapamiento del cálculo de un trabajo con la E/S de otro trabajo se crean tablas en el disco para diferentes tareas, lo que se conoce como Spool (Simultaneous Peripherial Operación On-Line).
Sistema operativo
Un Sistema Operativo (SO) es el programa o conjunto de programas que efectúan la gestión de los procesos básicos de un sistema informático, y permite la normal ejecución del resto de las operaciones.
Nótese que es un error común muy extendido denominar al conjunto completo de herramientas sistema operativo, es decir, la inclusión en el mismo termino
De programas como el explorador de ficheros, el navegador y todo tipo de herramientas que permiten la interacción con el sistema operativo, también llamado núcleo o kernel.
Problemas de explotación y soluciones iniciales.
El problema principal de los primeros sistemas era la baja utilización de los mismos, la primera solución fue poner un operador profesional que lo manejase, con lo que se eliminaron las hojas de reserva, se ahorro tiempo y se aumento la velocidad.
Para ello, los trabajos se agrupaban de forma manual en lote mediante lo que se conoce como procesamiento por lote (batch) sin
Monitores residentes
Fichas en lenguaje de procesamiento por lotes, con programa y datos, para ejecución secuencial.
Según fue avanzando la complejidad de los programas, fue necesario implementar soluciones que automatizaran la organización de tareas sin necesidad de un operador.
Debido a ello se crearon los monitores residentes: programas que residían en memoria y que gestionaban la ejecución de una cola de trabajos.
Sistemas con almacenamiento temporal de E/S
Los avances en el hardware crearon el soporte de interrupciones y posteriormente se llevó a cabo un intento de solución más avanzado: solapar la E/S de un trabajo con sus propios cálculos, por lo que se creó el sistema de buffers con el siguiente funcionamiento:
Un programa escribe su salida en un área de memoria (buffer 1).
El monitor residente inicia la salida desde el buffer y el programa de aplicación calcula depositando la salida en el buffer
2.
La salida desde el buffer 1 termina y el nuevo cálculo también.
Se inicia la salida desde el buffer 2 y otro nuevo cálculo dirige su salida al buffer 1.
El proceso se puede repetir de nuevo.
Sistemas operativos multiprogramados
Surge un nuevo avance en el hardware: el hardware con protección de memoria. Lo que ofrece nuevas soluciones a los problemas de rendimiento:
Se solapa el cálculo de unos trabajos con la entrada/salida de otros trabajos.
Se pueden mantener en memoria varios programas.
Se asigna el uso de la CPU a los diferentes programas en memoria.
Definición breve: llamadas que ejecutan los programas de aplicación para pedir algún servicio al SO.
Modos de ejecución en un CPU.
Las aplicaciones no deben poder usar todas las instrucciones de la CPU. No obstante el Sistema Operativo, tiene que poder utilizar todo el juego de instrucciones del CPU. Por ello, una CPU debe tener (al menos) dos modos de operación diferentes
Modo usuario:
Modo supervisor:
Llamadas al sistema.
Una aplicación, normalmente no sabe dónde está situada la rutina de servicio de la llamada. Por lo que si ésta se codifica como una llamada de función, cualquier cambio en el SO haría que hubiera que reconstruir la aplicación.
Pero lo más importante es que una llamada de función no cambia el modo de ejecución de la CPU.
Clases de excepciones
Las instrucciones de un programa pueden estar mal construidas por diversas razones:
El código de operación puede ser incorrecto.
Se intenta realizar alguna operación no definida, como dividir por cero.
La instrucción puede no estar permitida en el modo de ejecución actual.
La dirección de algún operando puede ser incorrecta o se intenta violar alguno de sus permisos de uso.
Importancia de las excepciones
El mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los modos de ejecución de la CPU y los mecanismos de protección de la memoria, que las aplicaciones realicen operaciones que no les están permitidas. En cualquier caso, el tratamiento específico de una excepción lo realiza el SO.
Como en el caso de las interrupciones, el hardware se limita a dejar el control al SO, y éste es el que trata la situación como convenga.
Gestión de procesos
Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de:
Crear y destruir los procesos.
Parar y reanudar los procesos.
Ofrecer mecanismos para que se comuniquen y sincronicen.
Gestión de la memoria principal:
La Memoria es una gran tabla de palabras o bytes que se referencian cada una mediante una dirección única. Este almacén de datos de rápido accesos es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido en los fallos del sistema. El SO es el responsable de:
Conocer qué partes de la memoria están siendo utilizadas y por quién.
Decidir qué procesos se cargarán en memoria cuando haya espacio disponible.
Asignar y reclamar espacio de memoria cuando sea necesario.
Gestión del almacenamiento secundario
Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de:
Planificar los discos.
Gestionar el espacio libre.
Asignar el almacenamiento.
Verificar que los datos se guarden en orden
Software de uso General
El software para uso general ofrece la estructura para un gran numero de aplicaciones empresariales, científicas y personales.
El software de hoja de calculo, 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 venden como paquete; es decir, con software y documentación orientada al usuario (manual de referencia, plantillas de teclado y demás).
Sistema operativo.
Conceptos básicos
Procesadores de texto.
Son utilizados para escribir cartas, marorandums y otros documentos, el usuario teclea una series 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.
Ejemplo de procesadores de texto: Microsoft Word, Wordperfect, Word, etc.
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 revela los análisis; el usuario tecla los datos y las formulas que serán usadas para obtener los resultados.
La mayoría de las hojas de cálculo cuentan también con la posibilidad de graficar estos resultados en diferentes estilos de graficas (Barras, líneas, paster, etc.)
Ejemplo de hojas de cálculo: Microsoft Excel, Lotus 123, etc.
Bases de datos
La DBMS (Data Base Management System) es la herramienta que las computadoras utilizan para realizar el procesamiento y almacenamiento ordenados de los datos.
Una base de datos es un recipiente para colecciones relacionadas de datos.
Por ejemplo, una agenda puede ser una base de datos donde se almacenen los nombres, direcciones y números telefónicos de amigos y contacto de negocios. La base de datos de una campaña puede contener informacion acerca de los consumidores, vendedores, empleados, ventas en inventarios.
Paquete de presentación
Software que permite al usuario diseñar presentaciones para desplegarlas a traves de la misma computadora o imprimir diapositivas y acetatos. Contiene opciones avanzadas para integrar efectos en cada cambio de diapositiva.
Ejemplo: Microsoft Power Point, Presentaciones, etc.
software de Aplicación
El software de Aplicación es aquel que hace que el computador coopere con el usuario en la realización de tareas típicamente humanas, tales como gestionar una contabilidad o escribir un texto.
La diferencia entre los programas de aplicación y los de sistema estriba en que los de sistema suponen ayuda al usuario para relacionarse con el computador y hacer un uso más cómo del mismo, mientras los de aplicación son programas que cooperan con el usuario para la realización de las actividades mencionadas.
Es en este software de Aplicación donde se aprecia en forma más clara la ayuda que puede suponer un computador en las actividades humanas, ya que la máquina se convierte en un auxiliar del hombre, liberándole de las tareas repetitivas.
Los programadores de aplicaciones, a diferencia de los programadores de sistemas, no necesitan conocer a fondo el modo de funcionamiento interno del hardware.
Basta con que conozcan las necesidades de información de sus aplicaciones y cómo usar el sistema operativo, para conseguir satisfacer estas necesidades.
Sus programas deben ser independientes del hardware específico que se utilice y deben ser transportados sin grandes problemas de adaptación a otras computadoras y otros entornos operativos.
Procesador de textos. Un procesador de texto es una aplicación informática destinada a la creación o modificación de documentos escritos por medio de un ordenador. Representa una alternativa moderna a la antigua maquina de escribir, mucho mas potente y versátil que esta.
Hoja de calculo. Es un programa que permite manipular datos numericos y alfanumericos dispuesto en forma de tablas.
(la cual es la union de filas y columna). Habitualmente es posible realizar calculos complejos con formulas y funciones y dibujar distintos tipos de graficas.
Navegador web. (del ingles, web browser) es una aplicación software que permite al usuario recuperar y visualizar documentos de hipertexto, comunmente descrito en HTML, desde servidores web de todo el mundo a traves de Internet.
Esta red de documentos se denomina World Wide Web (WWW). Cualquier navegador actual permite mostrar o ejecutar gráficos, secuencias de videos, sonidos, animaciones y programas diversos además del texto y los hipervínculos o enlaces.
Base de datos. es un conjunto de informacion almacenada en memoria auxiliar que permite acceso directo y un conjunto de programas que manipulan esos datos.