domingo, 1 de octubre de 2017

Conceptos de software

Cuando surgió la informática sólo tenían acceso las organizaciones que podían pagar los altos precios; además se veía restringida sólo para aquellos que tenían conocimiento, ya que si fallaba debían analizar las luces para saber cual era el fallo; también se requería de los usuarios cierto conocimiento técnico y una alta complejidad a la hora de escribir un programa y ejecutarlo.
Luego, como una mejora, se introdujeron las tarjetas perforadas, como métodos de ingreso y salida de información.
A 10 años del comienzo de la informática se introdujeron los primeros sistemas operativos llamados “monitor”. Actualmente, lo que un programador desea es una abstracción simple de alto nivel con la cual trabajar. El sistema operativo es, en este caso, el programa que oculta la verdad del hardware al programador y los usuarios, presentándola de una forma simple y accesible; por eso, el sistema operativo es el que presenta al hardware de una manera más sencilla que el hardware implícito.
Las computadoras actuales cuentan con procesadores, memoria, discos, relojes, interfaces de red, dispositivos de almacenamiento, etc. En esta visión, el sistema operativo permite ofrecer una distribución ordenada y controlada de los procesadores, memorias y dispositivos de E/S entre los diversos programas que compiten con ellos. El sistema operativo es el que maneja y protege la memoria. Una de las tareas más complejas que realizan las computadoras es la comunicación a través de los periféricos. También incluye programas que se encargan de los detalles de comunicación con los periféricos o con el hardware que controla estos periféricos.
En el caso de las computadoras monousuario  el sistema operativo puede verificar que el usuario que trata de utilizar el equipo está habilitado para ello. Más aún puede tener derechos sobre determinados recursos del equipo pero no sobre todos los recursos. Cuando se trata de computadoras multiusuario, o en el caso de redes de computadoras, la tarea de administración de usuarios del sistema operativo es más compleja, ya que los derechos de cada usuario pueden ser diferentes sobre cada máquina, cada base de datos o cada periférico.
En general, un sistema operativo puede definirse como el lugar donde se incorporan las funciones de control del hardware de una computadora, de administración de sus recursos físicos y de sus usuarios, así como el control efectivo de la ejecución de los programas que en ella se carguen. Para que este funcione debe haber un programa funcionando constantemente junto con las demás aplicaciones.
Las dos funciones principales de un sistema operativo son: administrar los recursos de hardware y software de la computadora y brindar facilidades a los usuarios para su utilización. Pero, además, se puede definir como el administrador de los recursos ofrecidos por el hardware para alcanzar un rendimiento eficaz de los mismos. Los sistemas operativos construyen recursos de alto nivel, denominados virtuales, a base de encubrir los realmente existentes de bajo nivel, denominados fisicos. De esta manera, desde el punto de vista del usuario o de un proceso, la máquina física es convertida por el sistema operativo en una máquina virtual o máquina extendida, que, a diferencia de la física, ofrece muchas más funciones y es más fácil de utilizar. También otra definición es, como el conjunto de programas y funciones que ocultan los detalles del hardware, ofreciendo al usuario una manera sencilla y flexible de acceder al mismo. Este ocultamiento tiene dos objetivos: a) la abstracción, por la cual el software da una visión global y abstracta de la computadora haciendo fácil su uso ocultando por completo la gestión interna y b) la seguridad, necesaria para restringir determinadas operaciones a los usuarios creando varios niveles de privilegio, de tal forma que cada usuario tenga protegida su información y sus procesos.
La buena ejecución de un programa requiere una comunicación permanente con el sistema operativo para acceder a los recursos de la computadora, recursos que el sistema operativo controla y verifica. De este modo se puede detectar que una orden de impresión escrita en un programa es imposible de ejecutar porque la impresora no está encendida, o que un dato de un archivo no se puede recuperar porque falla el dispositivo periférico, o que la ejecución de un programa ha tardado más de un tiempo máximo determinado, etc. También el sistema operativo monitorea el resultado de la ejecución para trasmitir al usuario el mensaje adecuado resultante de la evolución de la ejecución.
Las computadoras multiusuario (que tienen terminales conectadas a un gran procesador central y permiten que sean utilizadas por varios usuarios a la vez), las redes de computadoras o las modernas computadoras paralelas con varios procesadores internos, pueden tener varios trabajos ejecutándose al mismo tiempo (procesamiento concurrente). Esto exige que el sistema operativo controle que hace cada proceso y permita que los mismos compartan datos y recursos (es decir se comuniquen y se sincronicen). Por otra parte estos múltiples procesos pueden tener diferente prioridad para acceder a los recursos, lo que debe ser controlado también por el sistema operativo.
Por otra parte, cada error de ejecución de una aplicación termina entregando el control al sistema operativo que debe manejar la solución al error y también la comunicación clara al usuario de sus causas.
Al poder procesar concurrentemente varios trabajos, el sistema operativo debe controlar la forma de usar la memoria de la computadora, de tal modo que un trabajo no invada el espacio físico de otro. Los esquemas de administración de memoria pueden ser muy sencillos o más sofisticada de modo de asignar y liberar memoria en forma dinámica según los requerimientos y prioridades de los procesos.
Los datos que se almacenan en la computadora se pueden proteger gracias al sistema operativo; además este sistema debe facilitar las herramientas necesarias para leer, escribir y eliminar archivos. Un sistema de archivos es una estructura de directorios con algún tipo de organización el cual nos permite almacenar, crear y borrar archivos en diferentes formatos. Los usuarios y las aplicaciones tienen la necesidad de almacenar datos en algún medio, a veces por períodos largos y a veces por instantes, cada aplicación y cada usuario debe tener ciertos derechos con sus datos, como son el poder crearlos y borrarlos, o cambiarlos de lugar; además de poder preservarlos de los demás.
Ahora, ya habiendo analizado lo anterior, podemos hablar de las distintas partes que componen el sistema de una computadora: a- 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), 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); monotareas (son aquellos que sólo permiten una tarea a la vez por usuario), multitareas (le permite al usuario estar realizando varias tareas al mismo tiempo); uniproceso (es capaz de manejar solamente un procesador de la computadora) y 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. Pueden trabajar de manera simétrica o asimétrica: cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual será el procesador maestro y será el encargado de distribuir la carga de trabajo a los demás procesadores. Cuando se trabaja de manera simétrica, los procesos o partes de ellos son enviados indistintamente a cualquiera de los procesadores disponibles, teniendo una mejor distribución y equilibrio.).

Como el sistema operativo solo permite utilizar recursos del Hardware se tuvo que incluir el sistema de aplicación que está a la altura de los requerimientos del usuario. Estos últimos se dividen en aplicaciones: de negocios (como los procesadores de textos, planillas de cálculo, autoedición, administración de bases de datos, aplicaciones gráficas, aplicaciones corporativas, etc.), utilitarios (permiten administrar y mantener la computadora, tales como  antivirus, anti-espías,  herramientas de mantenimiento de sistemas de archivos, herramientas para mejorar rendimiento, recuperadores de bases de datos, etc.), personales (para uso personal, como agendas, tareas para hacer, correo electrónico, etc.) y entretenimiento (son los programas dedicados a los juegos interactivos, también incluyen los programas educativos).

Fuente: conceptos de software, aulas virtuales, Unlu.

No hay comentarios.:

Publicar un comentario