1. Objetivos
El objetivo de esta unidad es poder reconocer aspectos básicos del software para indagar sus características, reconocer sus propiedades y modo de funcionamiento. Para ello, vamos a establecer una clasificación inicial sobre la cual ahondaremos posteriormente:
Sistemas operativos:
Entender qué es un sistema operativo y para qué sirve.
Clasificar los sistemas operativos según su tipo y utilidad.
Bases de datos y sistemas de información:
Comprender el concepto de base de datos y cómo se construyen
Reconocer los tipos de sistemas de información más extendidos, las infraestructuras típicas que se emplean para materializarlos.
Software de usuario:
Saber las diferencias principales entre las distintas categorías de software y licencias digitales.
Distinguir distintos tipos de formato de archivos de imagen, audio y video.
2. Sistemas Operativos
Un Sistema Operativo (SO) se entiende actualmente como un programa o conjunto de programas que está pensado para facilitar el uso de las computadoras y que proporciona una serie de servicios básicos como:
Sistemas de Archivos: Un sistema de archivos es una visión abstracta del almacenamiento que nos permite acceder y trabajar con información de los dispositivos memoria secundaria (como pueden ser los discos o memorias Flash) de forma estructurada. Para ello se asigna a cada conjunto de datos relacionados o archivo, un nombre y una ruta (carpeta en la que está localizado el archivo) permitiendo el acceso al recurso a través de ese nombre. Los sistemas de archivos simplifican enormemente el uso de un computador ya que el usuario no necesita saber cómo se almacenan físicamente los datos en cada dispositivo y puede trabajar con ellos de forma sencilla.
Gestión de memoria: El SO coordina el uso de la memoria principal (RAM) entre los diferentes programas en ejecución. Cuando el usuario pide al SO que arranque un programa, puede despreocuparse del uso de la memoria ya que es el SO el que decide en qué lugar de la memoria se va a colocar cada proceso y cuanta memoria se le va a asignar.
Control de procesos: Este servicio se encarga de crear, gestionar y detener procesos. Un proceso es un programa en ejecución. Cuando el usuario pide al SO que arranque un programa, el SO se encarga de crear un proceso asociado a dicho programa reservando la memoria necesaria, cargando el programa en la memoria, ejecutando el proceso y liberando la memoria cuando este acaba de ejecutarse.
Comunicación y sincronización de procesos: Es un servicio que permite que unos programas se comuniquen con otros enviándose información, facilitando que los programas colaboren unos con otros para realizar una tarea compleja.
Interacción con el usuario: Los SO tienen una unidad que el usuario utiliza manejar el computador, llamada interfaz de usuario, esta es la parte visible del SO y lo que las personas perciben cuando manejan el computador.
Una función esencial del SO es la interacción con el hardwre. El núcleo (kernel) del SO tiene esa función y de este modo, los usuarios y los programadores no necesitan saber los detalles del funcionamiento del dispositivo.
Para realizar esta interacción, el SO requiere un programa específico para cada dispositivo denominado controlador SW o driver del dispositivo que se encarga de los detalles de funcionamiento del mismo y suele ser proporcionado por el fabricante del hardware. En la actualidad, muchos dispositivos disponen de la tecnología plug and play que automatiza este proceso.
TIP: Si un dispositivo no es reconocido por el SO, es probable que debas ir al sitio web de su fabricante para obtener el driver. Asegúrate de conocer el modelo específico para localizarlo.
2.1 Clasificación de los SO
Los criterios más comunes que se usan para clasificar los SO son:
El número de usuarios que puede atender
El número de tareas que puede ejecutar al mismo tiempo
La finalidad del computador que lo alberga
El tipo licencia de uso
2.1 Clasificación de los SO
Dependiendo de que admita uno, o más usuarios el SO puede ser monousuario o multiusuario.
Sistema monousuario es aquel que solo puede atender a un determinado usuario. Cuando el usuario se conecta a un sistema monousuario tiene el control absoluto sobre la máquina, tiene acceso a todos los archivos, puede ejecutar todos los programas y, además, no puede ser interrumpido por nadie.
Sistema multiusuario es aquel que puede atender a varios usuarios al mismo tiempo. Esto hace que el SO sea más complejo al tener que ocuparse de aspectos como control de sesión, permisos, gestión de roles, etc.
TIP: Si tenés un SO multiusuario y la computadora es compartida por varias personas, es conveniente que cada una tenga su propio usuario. Ejemplo: Linux, Windows7, MacOS X y sus versiones posteriores son sistemas multiusuario.
2.1.2 Clasificación por el número de tareas
Algunos SO solo pueden llevar a cabo una tarea al mismo tiempo (monotarea) mientras que otros son capaces de llevar a cabo varias tareas simultáneamente (multitarea).
Sistemas monotarea: Estos sistemas también llamados sistemas monoprogramados solo mantienen un programa en memoria al mismo tiempo (aparte del propio SO, que también es un programa. Estos SO son muy simples en su funcionamiento.
Sistemas multitarea: Un sistema multitarea o multiprogramado es un SO capaz de ejecutar varios procesos al mismo tiempo. La mayoría de los SO modernos pertenecen a este grupo.
2.1.3 Clasificación por tipo de aplicación
Los sistemas operativos también suelen clasificarse de acuerdo a las necesidades de los programas que se ejecutan en ellos. La siguiente clasificación no es excluyente por lo que un mismo SO puede pertenecer a varias categorías.
Sistemas de Tiempo Real: En un SO multitarea el tiempo se comparte entre los procesos y, en general, el SO no garantiza cuánto tiempo se puede tardar en atender a un determinado proceso. Cuando los programas necesitan responder a eventos externos en un determinado tiempo se necesita un SO de tiempo real. Un SO de tiempo real es aquel que garantiza unos tiempos máximos de respuesta y que además permite priorizar las diferentes tareas.
Sistemas para supercomputadores: Son sistemas operativos diseñados para trabajar en máquinas que realizan mucho trabajo de cálculo. Suelen interactuar con sistemas compuestos por muchos procesadores que trabajan juntos en paralelo para resolver un problema, así como con grandes sistemas de almacenamiento de datos. Su punto fuerte es la estabilidad (tienen pocos fallos) y la escalabilidad (es fácil aumentar el número de máquinas para repartir el trabajo).
Sistemas para PC: Son los más conocidos. Su principal objetivo es suministrar una interfaz amigable al usuario final. Sin un SO no es posible utilizar un PC por lo que es un componente esencial del mismo y generalmente viene preinstalado en muchos PCs. Pero esto no significa que sea un componente fijo. Por el contrario, es posible cambiarlo e instalar otro.
Sistemas para servidores: Estos sistemas operativos se enfocan en computadores centrales de altas prestaciones que atienden a varios usuarios simultáneamente. Estas máquinas se denominan servidores ya que atienden las peticiones de otros computadores (clientes). Algunos ejemplos son los servicios web, impresión y gestión de archivos, entre otros.
SO para dispositivos móviles: Se trata de sistemas operativos diseñados para computadores de mano (celulares, tabletas y relojes inteligentes, entre otros). Están optimizados para mejorar el uso de la energía y atender a las limitaciones del dispositivo.
SO integrados: Muchos computadores se encuentran integrados en otros productos, por ejemplo, reproductores de routers o lectores de tarjetas magnéticas. Estos SO suelen ser pequeños y eficientes.
Sistemas Operativos de red: Se trata de sistemas operativos para PC que trabajan en red, permitiendo interactuar con otras computadoras y compartir recursos. Se distinguen de los servidores en que no están dedicados y optimizados para dar un servicio a otros ordenadores sino para su uso en una red de computadores.
Sistemas operativos multiprocesador: Son sistemas operativos que permiten repartir el trabajo entre varios procesadores en la misma máquina. En la actualidad la mayoría de los sistemas operativos modernos permiten el multiprocesamiento simétrico en varios procesadores/núcleos.
Sistemas operativos distribuidos: Son sistemas operativos que utilizan varios ordenadores conectados en red de forma colaborativa. Cada ordenador tiene su SO y todos ellos colaboran de forma transparente al usuario.
3. Bases de datos y sistemas de información
3.1 Bases de datos
Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. Concretamente, son los archivos informáticos donde se almacenan los datos de manera estructurada y los programas que permiten su gestión, es decir, el almacenamiento y la recuperación de los datos desde los archivos.
Si los archivos de almacenamiento y los programas de gestión son independientes y no están coordinados entre sí bajo una misma estructura, simplemente se tiene un sistema de archivos. Si los archivos y programas de gestión están organizados bajo una única estructura y están coordinados entre todos ellos se tendrá un sistema de gestión de una base de datos.
Los siguientes elementos son típicos de una base de datos:
Registro: los registros agrupan toda la información de cada individuo o entidad bajo un mismo nombre. Son el origen de la agrupación de la información. En una lista telefónica, el registro lo constituye la persona o la entidad que es titular del teléfono. Los registros están constituidos por información particular. Esta información particular se estructura en campos.
Campo: los campos son cada uno de los elementos particulares de información que definen un registro. Son datos individuales y a priori sin estructura. Serían por ejemplo el nombre, los apellidos, la calle del domicilio, el número de teléfono. Se pueden tener tantos campos como se quieran asociados a cada registro. Todos los registros de la misma naturaleza deberán constar de los mismos campos. No tiene sentido que siendo todos los abonados iguales tengan una estructura diferente. Si para algún registro se desconoce la información de uno de los campos se dejará vacío, pero siempre tiene que existir.
Tabla: los diferentes registros se agrupan en tablas, entendiendo que todos los registros de una tabla deben tener el mismo formato. En el ejemplo propuesto se tendrá una tabla de abonados donde cada registro será un abonado que contará con una serie de campos donde se almacena su información.
3.2 Sistemas de Información
Un Sistema de Información, SI, es un conjunto de tecnologías relacionadas entre sí y cuyo objetivo es la realización y gestión de una determinada actividad mediante el almacenamiento, análisis y recuperación de la información relacionada con la actividad.
Por ejemplo: Un comercio vende productos a clientes. Esto es un sistema. Hay normas, procedimientos que se aplican a un grupo o colectivo. La gestión adecuada de este sistema requiere información, esto es, información de los productos, información de los clientes e información de las ventas. Esta información proviene del procesado de los datos que se generan en la actividad.
Entre las actividades cotidianas que se realizan con sistemas de información encontramos transacciones financieras, comercio electrónico, seguros y sistemas de gestión del aprendizaje. En la UNRC, contamos con sistemas de información como SIAL (Sistema Integral de Alumnos), GISAU (Comedor), o SISA (Sistema Integral de Salud).
4. Software de Usuario
El software de usuario consta de herramientas informáticas (software o programas) que suelen ser muy utilizados por cualquier usuario como programas de procesamiento de texto, de hojas de cálculo, de presentaciones, de imágenes y de audio y video. Todos estos programas tienen en común que:
Están diseñados para realizar una tarea concreta y para ello manejan documentos o tipos de archivo específicos.
Pueden crear un documento nuevo partiendo de uno vacío sin información o pueden abrir un documento que ya esté creado para consultarlo o para modificarlo, ya sea en contenido o en aspecto, guardando o sin guardar los cambios.
Cada documento se puede guardar en uno o varios formatos de archivo. Un formato de archivo es un método estándar de codificación de datos para su almacenamiento. Los formatos de archivo son importantes, debido a que indican qué tipo de datos contiene el archivo, la forma en la que están organizados y con qué programa se pueden abrir.
Puede haber problemas de compatibilidad entre distintos formatos de un mismo tipo de documento. Por ejemplo, puede que un programa de hoja de cálculo genere un documento que no pueda ser leído con otro programa distinto de hoja de cálculo.
En todo el software de usuario hay menús desplegables (en los que se pueden encontrar opciones y herramientas para realizar tareas concretas, así como ayuda sobre las mismas), barras de desplazamiento vertical y horizontal, barra de estado con información adicional sobre el documento y un área de trabajo para elaborar el documento propiamente dicho.
En todo tipo de documento se puede introducir información, copiar, pegar y borrar.
Generalmente hay opciones que deshacen los cambios no deseados.
4.1 Licencias de software
Existen distintas categorías de software, dependiendo del deseo que tenga el desarrollador sobre su uso y distribución.
Software libre: se suministra con autorización para que cualquiera pueda usarlo, copiarlo, modificarlo y/o distribuirlo libremente ya sea con o sin modificaciones, gratuitamente o mediante pago. Por tanto, el código fuente tiene que ser de acceso libre.
Software privativo: no es libre y es ilegal hacer copias no autorizadas para su distribución.
Software de código abierto: tiene el código fuente disponible (open source). No todo software de código abierto es software libre.
Software de dominio público: no tiene derechos de autor. Puede ser libre o no. El código fuente es gratuito y se puede utilizar por cualquier persona y con cualquier propósito.
Freeware: se permite la distribución, pero no la modificación. El código fuente no está disponible por lo que no es software libre.
Adware: gratuito pero que incluye publicidad.
Shareware: permite que se comparta y normalmente que se pruebe antes de comprarlo. La prueba puede ser durante un tiempo prefijado e incluso sobre una versión no completa. Tampoco es software libre.
Software comercial: desarrollado por una empresa con parte de su actividad comercial. No hay que confundir comercial con privativo, aunque la mayoría del software comercial es software privativo.