Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Software
Introducción
• Todo el hardware que hemos visto está
pensado para dar un servicio (hacer una
función).
• Algo tiene que controlarlo y darle las
órdenes para que haga una función que
nos sea útil.
• Es la parte no física del computador. Son
los programas y datos que necesitan los
programas.
1
Introducción
• Definición
– El software de un computador es el conjunto
de programas, sus datos y la documentación
asociada.
• Definición (demasiada técnica para nosotros)
– El software es instrucciones (programas de
computadora) que cuando se ejecutan proporcionan
la función y el rendimiento deseados, estructuras de
datos que permiten a los programas manipular
adecuadamente la información, y documentos que
describen la operación y el uso de programas.
Clasificación
• El hardware es complejo
2
Clasificación
• Software de sistema
Otros programas
Usuario
Software de Sistema
Hardware
Clasificación
• Software de sistema
– Definición: Software que se utiliza para
controlar otros programas y gestionar
recursos internos de la computadora.
– Funcionalidad:
• Eliminar complejidad a otros programas (proporciona una
abstracción sobre el hardware)
• Gestionar los recursos (distribuir ficheros en discos, asignar
memoria a programas, permitir que varios programas se
puedan ejecutar de forma concurrente, etc.).
• Permitir al usuario la configuración de la computadora.
3
Clasificación
• Software de sistema
– Eliminar complejidad
• Ejemplo: Imprimir un documento
01101010
10100010
01101010
10100010
Clasificación
• Ejemplo: Imprimir un documento
– Un problema importante.
4
Clasificación
• Ejemplo: Imprimir un documento
01101010
10100010
Soft.
Sistema
Clasificación
• Ejemplo: Imprimir un documento
– Trasladamos el problema al Software de sistema. Parece mucho
más problemático. No lo es:
5
Clasificación
• Permitir al usuario la configuración de la
computadora.
– Ejemplo: imprimir un documento
• Cómo configura el usuario la impresora (calidad de
impresión, número de páginas por hoja, impresión a doble
cara, etc.)
• Debería también hacerlo desde el programa.
• Volvemos a introducir complejidad a cada programa.
• Si se hace desde el software de sistema, los programas no
se han de preocupar de hacerlo.
• Y así, sólo necesitaríamos desarrollar un programa de
configuración para cada impresora y software de sistema.
Clasificación
• Software de sistema:
– El principal: El Sistema Operativo:
• Programa, o conjunto de programas, que tienen por objeto
facilitar el uso del ordenador y ofrecer servicios a otros
programas y al usuario para conseguir que el sistema
informático se utilice eficientemente.
– No todo el software de sistema es Sistema Operativo.
Ejemplo:
• Hay programas que se encargan de buscar el sistema
operativo en los discos duros para ejecutarlo.
• Otros informan al S.O. de las unidades que están instaladas
y hacen una configuración básica.
• Etc.
6
Sistema Operativo
• Sistema Operativo
– Partes:
• Núcleo: funcionalidades básicas (gestión CPU,
memoria, discos, etc.). En general, lo mínimo
necesario para que “encienda” el ordenador.
Sistema Operativo
• Clasificación
– Por modo de uso:
• Órdenes: se escriben las órdenes y el sistema las
interpreta.
7
Sistema Operativo
• Clasificación
– Por modo de uso
• Menús, ventanas e iconos.
Sistema Operativo
• Clasificación
– Forma de trabajar
• Monotarea
• Multitarea
Proceso 1
Multitarea Proceso 2
Tiempo
8
Sistema Operativo
• Multitarea
– Real: existen varios procesadores y cada uno ejecuta
un proceso distinto
– Apropiativa: un único procesador que reparte el
tiempo (ejecución concurrente, NO paralela).
Apropiativa P1 P2 P1 P2 P1 P2 P1 P2
Proceso 1
Real Proceso 2
Tiempo
Sistema Operativo
• Clasificación
– Número de usuarios simultáneos
• Monousuarios:
– En cada momento sólo puede estar trabajando un único
usuario.
– No tiene por qué ser multitarea, pero puede serlo
• Multiusuarios:
– Pueden estar múltiples usuarios realizando tareas de
forma simultánea.
– Necesita ser multitarea.
– Tienen protección de disco y memoria.
9
Sistema Operativo
• Clasificación
– Por número de CPU soportadas
• Monoprocesador: 1 procesador
– Si son multitarea lo son apropiativa.
• Multiprocesador: varios.
– Estos pueden ser multitarea real.
Sistema Operativo
• Ejemplos de S.O.
– Microsoft:
• MS-DOS
– Monousuario
– Monotarea
– Mediante órdenes
– Admitía 1 procesador, poca memoria y poco disco
– No admitía conexión a red.
– Rey en PC de los años 80.
– Surgieron clónicos: DR-Dos, IBM-Dos
10
Sistema Operativo
• Ejemplos de S.O.
– Microsoft
• Windows 95, 98 y Me
– Monousuario
– Multitarea apropiativa
– Utiliza ventanas e iconos
– En teoría NO se basa en MS-DOS.
– No tiene protección de disco ni memoria (poca protección ante
virus)
– Fragmenta en exceso el disco duro (mala gestión)
– Permite nombres largos
– Permite conexiones a red
– Uso intuitivo
– Conexión de dispositivos fácil
– Se han desarrollado muchos programas.
Sistema Operativo
• Ejemplos S.O.
– Microsoft
• Windows NT y 2000
– Monousuario
– Multitarea
– Multiprocesador
– Define usuario y grupos de usuarios (privilegios)
– Orientados al usuario profesional
– Protección avanzada de disco y memoria
– Diferentes versiones de 2000:
» Professional: una persona
» Server: pequeñas empresas
» Advanced Server: empresas algo más grandes (servidores
de BD, etc)
» DataCenter Server: para grandes empresas.
11
Sistema Operativo
• Ejemplos S.O.
– Microsoft
• Windows XP
– Multitarea
– Multiusuario
– Multiprocesador (versiones Professional)
– Usuarios y grupos (privilegios)
– Diferentes versiones:
» Home Edition: evolución del núcleo de Me. Usuarios
domésticos.
» Professional: 1 usuario, profesional.
» Windows 2003 Server: diferentes versiones para
empresas (según necesidades)
Sistema Operativo
• Ejemplos S.O.
– Microsoft
• Windows Vista
– Multitarea
– Multiusuario
– Multiprocesador (versiones superiores)
– Usuarios y grupos (privilegios)
– Diferentes versiones:
» Starter
» Home Basic.
» Home Premium.
» Ultimate: usuarios profesionales.
» Business: para pequeñas empresas.
» Enterprise: grandes empresas.
12
Sistema Operativo
• Ejemplos
– IBM
• OS/2
– Empezó como proyecto entre IBM y Microsoft
(desarrollar un sucesor de MS-DOS).
– Primera versión en modo órdenes (multitarea).
– 1988: utilizaba entorno gráfico.
– Sistema muy estable (utilizado principalmente en
empresas y cajeros automáticos)
– En OS/4 (1996) se incluía VoiceType: manejo de
ordenador mediante comandos de voz.
– Poca suerte en el mercado (menor apoyo de empresas
de software que a Windows).
Sistema Operativo
• Ejemplos
– Linux
13
Sistema Operativo
• Linux
– Versión para PC de sistema UNIX
– Multiusuario
– Multitarea
– Multiprocesador
– Comienza siendo por órdenes (actualmente existen entornos
gráficos).
– Muy orientado al trabajo con redes.
– Permite el trabajo remoto.
– Protección de memoria, disco (buena gestión de disco).
– Usuario y grupos.
– Comenzó orientado a usuarios profesionales (se está intentado
acercar a los usuarios domésticos).
– Existen versiones orientadas a empresas.
Sistema Operativo
• Linux
– Distribuciones
• El kernel de linux es de libre distribución (licencia
GNU).
• Hay empresas que hacen recopilaciones del
kernel y programas, añadiendo herramientas para
configurar múltiples aspectos y estableciendo
organizaciones distintas.
• Cada uno saca una distribución de Linux
(Mandrake, Suse, RedHat y Fedora, Debian,
Linex, Guadalinex, Gentoo, etc.)
14
Sistema Operativo
• Linux
– Las distribuciones incluyen todo tipo de software
• Ofimática: OpenOffice, WordPerfect, koffice
• Navegadores: Netscape, Mozilla, FireFox
• Juegos: Al principio muy pocos, cada vez más.
• Tratamiento de imágenes: GIMP
• Etc.
– Al principio pocos drivers para dispositivos (las
empresas no los desarrollaban). Actualmente si no lo
desarrolla la empresa lo hacen comunidades de
desarrolladores, bajo licencia GNU normalmente.
Sistema Operativo
• Shell
– Programas pensados para interactuar de forma más
cómoda con el sistema operativo.
– Tipos:
• Por órdenes: Permiten hacer de forma más cómoda algunas
tareas, integrando comandos complejos (incluso realizar
pequeños programas)
– Ejemplos:
» sh
» Bash
» csh
» Tsch
» Etc.
15
Sistema Operativo
• Shell
– Entornos gráficos: realizar comandos sobre el
sistema operativo de forma gráfica (utilizando el
ratón, iconos, ventanas, etc.).
• Ejemplos:
– Windows hasta 3.11 era un entorno gráfico para MS-DOS.
– El escritorio de los Windows actuales realmente también los es
(aunque muy integrado con el S.O.).
– Gnome y KDE son los más utilizados en entornos Linux.
– XWindows y OpenWindows (Unix)
– MacOS es totalmente gráfico (no es un entorno sobre el
sistema operativo).
Sistema Operativo
• Shell
– Windows Vista
16
Sistema Operativo
• Shell
– Tactile 3D
Sistema Operativo
• Shell
– Cube
17
Sistema Operativo
• Entornos con otros requerimientos:
– Sistemas de control
• Sistemas en tiempo real: debe de dar respuesta
en un tiempo máximo (aviones, etc.).
– Dispositivos con poco almacenamiento.
• Tenga funcionalidades básicas y ocupen lo menos
posible.
• Sistemas embebidos/empotrados:
– PDA (cada vez menos): Windows CE, PalmOS, Linux
– Teléfonos móviles: distintos según fabricante.
– Routers (ej. BusyBox: sistema basado en Linux).
Sistema Operativo
• Otras herramientas
– Monitores de actividad
(uso de los diferentes
recursos).
18
Sistema Operativo
• Otras herramientas
– Configuración
Sistema Operativo
• Otras herramientas
– Programas que sustituyen funcionalidades del
S.O.
• gestión de recursos como redes, de discos,
• instalación/desinstalación,
• etc.
19
Sistema Operativo
• Herramientas
– Antivirus
• Qué es un virus?
– Los virus informáticos son programas, habitualmente ocultos
dentro de otro programa, correo electrónico, pagina web,
fichero o volumen. Se ejecutan automáticamente, haciendo
copias de sí dentro de otros programas a los que infectan. Esta
capacidad de copiarse a sí mismos genera un efecto de
propagación exponencial, que además suele conllevar la
alteración del funcionamiento del equipo infectado.
(www.seguridadenlared.org)
Sistema Operativo
• Antivirus
– Otros tipos:
• Gusanos: realizan copias de si mismos sin dañar
ninguna parte del ordenador. Buscan saturar los
recursos del ordenador y/o redes.
20
Sistema Operativo
• Antivirus
– Otros tipos:
• Backdoors: se introduce en el ordenador y da
acceso a este para realizar múltiples acciones
(abren una “puerta trasera”).
Sistema Operativo
• Antivirus
– Otros tipos:
• Fishing: envío de correos suplantando la
identidad de bancos electrónicos para hacerse con
las claves de los usuarios y acceder a sus
cuentas.
– Envían un correo suplantando la identidad de un banco.
– Solicitan las claves del usuario con alguna excusa.
– Realizan copias casi idénticas de las páginas del banco
para engañar al usuario.
– NO ES TAN DRAMÁTICO si se tiene cuidado (nunca dar
las claves, observar bien las direcciones, etc.).
21
Sistema Operativo
• Antivirus
– Es un programa (o conjunto de programas)
que se integra con el sistema operativo para
detectar programas/correos peligrosos.
– Son una herramienta del sistema.
– Necesitan conocer los virus/programas
maliciosos (actualizar frecuentemente los
datos que utilizan para detectar nuevos virus).
– Fabricantes: Panda Software, McAfee,
Norton, AVG (gratuito) ,etc.
Sistema Operativo
• Antivirus
– ActiveScan (Panda Software)
http://www.pandasoftware.es/productos/activescan
22
Sistema Operativo
• Antivirus
– Situaciones de riesgo
• Conectado a Internet (alto riesgo)
– Actualizaciones del S.O.
• Intercambio de datos/programas (riesgo medio)
• Programas “piratas” (alto riesgo con los cracks)
• Redes de intercambio de ficheros (riesgo medio)
• Oficina que maneja documentos internos sin
conexión con exterior (riesgo casi nulo)
Sistema Operativo
• Cortafuegos o Firewalls
– Herramienta del sistema que evita los
accesos no deseados al ordenador desde
otros ordenadores (intentos de infecciones de
virus, intentos de accesos por hackers y/o
crackers).
– Programas
• Windows XP (integrado)
• Zone Alarm (gratuito uso personal)
• Antivirus (Panda, Norton, McAfee)
• Cada vez más.
2006 - 2007 OFIMATICA RR. LL.
23
Sistema Operativo
• Anti-spyware
– Spyware: programa espía que obtiene
información del usuario sin su conocimiento.
– Anti-spyware: programa que busca estos
programas y los elimina.
– Programas:
• Windows XP
• Ad-Aware SE Personal
• SpyBot Search & Destroy
• Integradas en suites de seguridad
Sistema Operativo
• Anti-spyware
– Situaciones de riesgo
• Conectado a Internet (riesgo alto)
– Opciones de privacidad de navegadores
24
Sistema Operativo
Traductores
• El ordenador sólo entiende código máquina (1’s
y 0’s).
• Realizar programas directamente en código
máquina es muy complejo incluso para
programas pequeños.
• Existen lenguajes de programación y programas
asociados que traducen el programa escrito en
un lenguaje al que entiende el ordenador.
• Cada vez los programas que se realizan son
más complejos.
• Los realizan personas especializadas.
25
Traductores
• Fases del desarrollo de un programa
– Análisis
– Diseño
– Codificación
– Prueba
– Mantenimiento
Traductores
• Antes cada empresa tenía una departamento
que se encargaba de realizar los programas que
necesitaban.
• Hoy en día, se suelen subcontratar (empresas
dedicadas a hacer programas a medida a otras).
• De todas formas, suelen tener un departamento
de informática.
• Normalmente se encargan de gestionar la
información interna a la empresa (bases de
datos) y de hacer programas para acceder a
ésta de la forma que requiera cada puesto.
26
Traductores
• Funcionamiento:
Código fuente Traducción Código objeto
• Tipos de lenguajes
– Compilados: se genera código objeto directamente
entendible por la máquina. Una vez compilados los
programas sólo funcionas para un tipo de máquina.
Habría que recompilar para otras.
– Interpretados: al ejecutarlos existe un programa que
traduce el lenguaje a instrucciones de la máquina
actual. El mismo programa sirven para múltiples tipos
de máquinas si se cuenta con el intérprete en la
misma.
Traductores
• Los lenguajes interpretados son más lentos en
la ejecución que los compilados (aunque cada
vez menos).
• Se suelen denominar lenguajes de Script (guión en
inglés) y se utilizan mucho en Internet.
– En los servidores (para generar páginas dinámicas)
– En los clientes (para realizar pequeños cálculos,
adaptar la visualización de la página, realizar efectos
gráficos, etc.).
• Algunos lenguajes Script: JavaScript, ASP,
PHP, Perl, etc.
27
Traductores
• Java (Sun Microsystems)
• .NET:
– Propuesta de Microsoft en la línea de Java (máquina virtual) pero
pensado para múltiples lenguajes.
– .NET sería una plataforma de ejecución.
• En ambos casos: seguir la misma filosofía del S.O. (aislar a los
programas de la complejidad de la máquina) pero aplicada al propio
sistema operativo (aislar a los programas de la peculiaridades de
los S.O.).
Traductores
Muchos compiladores lo
que hacen es traducir a un
lenguaje muy cercano al
código máquina (lenguaje
ensamblador)
…010100101110101010101001…
28
Traductores
IDE’s: entornos para
ayudar a programas
Bases de Datos
• Archivo/Fichero
– Definición: Conjunto de información sobre un mismo
tema, tratada como una unidad de almacenamiento y
organizada de forma estructurada para la búsqueda
de un dato individual.
– Operaciones:
• Añadir un dato.
• Modificar un dato.
• Leer un dato.
• Eliminar un dato (o todo el archivo).
29
Bases de Datos
• Archivo
– Se almacenan en la memoria auxiliar (no volátil,
permanente).
– Los gestiona el S.O.
– Las aplicaciones han de saber su estructura para
poder acceder a ellos (el S.O. sólo gestiona el
almacenamiento, no la estructura).
– Como el S.O. gestiona el almacenamiento, este es el
que limita los posibles nombres que pueda tener así
como su tamaño máximo.
– El S.O. da los mecanismos básicos para
crear/leer/modificar/borrar los archivos.
Bases de Datos
• Archivo
– Conforme aumenta la información
almacenada en un archivo se hace más
necesario tener mecanismos eficientes de
búsqueda de datos.
– Si diferentes aplicaciones utilizan los mismos
datos, necesitan compartir archivos, saber su
estructura y evitar problemas de concurrencia
(varias aplicaciones quieran acceder a un
mismo dato para modificarlo o leer/modificar).
30
Bases de Datos
• Conforme aumentan el número de
aplicaciones y el tamaño se presentan
ciertos problemas:
– Dificultad de mantenimiento.
– Redundancia.
– Rigidez de acceso.
– Dependencia con los programas.
– Confidencialidad y seguridad.
Bases de Datos
• Definición
– Una Base de Datos es un sistema formado por un
conjunto de datos y un paquete software para gestión
de dicho conjunto de datos de tal modo que: se
controla el almacenamiento de datos redundantes,
los datos resultan independientes de los programas
que se usan, se almacenan las relaciones entre los
datos junto con éstos y se puede acceder a los datos
de diversas formas.
• Una B.D. es un sistema pensado para el
almacenamiento y acceso a datos, orientado a
dar servicio a otros programas.
31
Bases de Datos
• Funcionalidad
– Acceso múltiple
– Utilización múltiple
– Flexibilidad
– Confidencialidad y seguridad
– Protección contra los fallos
– Independencia física
– Independencia lógica
– Redundancia controlada
– Interfaz de alto nivel
– Interrogación directa
Bases de Datos
• Modelo Relacional
– Formalismo para representar los datos mediante
tablas y relaciones entre las mismas.
– Es el más utilizado actualmente:
• Empresas:
– Oracle
– MS SQL Server
– MySQL, PostgreSQL, etc.
• Usuario doméstico
– MS Access
– Paradox
– MySQL, etc.
32
Bases de Datos
• Para acceder a la información se utiliza un
lenguaje para expresar las consultas:
SQL.
– Ejemplo: Obtener los nombres de los clientes
ordenados alfabéticamente.
Bases de Datos
• Para crear una base de datos hace falta
un desarrollo similar a crear un programa:
33
Bases de Datos
Software de Gestión
• Las bases de datos suelen dar servicio al
denominado software de gestión:
34
Software de Gestión
• Sistemas de Apoyo a la Decisión (DSS)
Planificación estratégica
Información
Ordenes
Control de gestión
Control operativo
Software de Gestión
• Sistemas de Apoyo a la Decisión (DSS)
– Sistema, basado en ordenadores, interactivo
que ayuda en la toma de decisiones.
– Tipos:
• Basados en modelos: tienen modelos
matemáticos que dado datos actuales pretenden
dar una predicción de qué puede pasar.
• Basados en datos: se basan en analizar los
datos existentes dentro de la organización para,
basándose en el pasado, predecir el futuro (Ej:
Data Warehousing y OLAP).
35
Ingeniería y cálculo avanzado
• Sistemas para ayudar al diseño y simulación de sistema.
• CAD: Diseño Asistido por Computador
• Ejemplo: AutoCAD: programa para ayudar en el diseño de
estructuras muy utilizado por arquitectos.
– Cálculo complejo con números
• Paquetes que ayudan a modelar sistemas matemáticos complejos
(ej: astrofísica, biología, etc.).
• Se caracterizan por la gran cantidad de datos con la que trabajan y
que no suelen ser programas interactivos:
– Se modela el sistema (ej: modelos meteorológicos).
– Se obtienen los datos (ej: datos del meteosat)
– Se aplica el modelo a los datos sin intervención del usuario (ej: horas,
días, mes de ejecución).
– Se obtiene el resultado del modelo (ej: predicción meteorológica).
Software Empotrado
• Aplicaciones para sistemas de propósito
específico.
• Normalmente restricciones de almacenamiento
y velocidad de procesamiento.
• Ejemplos:
– Programas de las lavadoras.
– Los menús de los videos, DVD’s
– Sistemas electrónicos de los coches.
– Máquinas expendedoras.
– Teléfonos móviles.
36
Software de Tiempo Real
• La estructura de los sistemas en tiempo real
suele ser:
– Adquieren datos del entorno mediante sensores.
– Los procesan, normalmente con una restricción en
cuanto al tiempo que puede tardar.
– Los resultados repercuten en el entorno.
• Suelen ser sistemas de control en los que el
tiempo de respuesta es muy importante.
– Control de reactores nucleares.
– Control de aviones.
– Visión artificial (en general robótica).
Inteligencia Artificial
• Intentar que los ordenadores presenten un
comportamiento inteligente:
– Diferentes enfoques para definir esa
inteligencia:
• Sistemas que piensan como humanos:
– “La interesante tarea de lograr que las computadoras
piensen… maquinas con mente, en su ámplio sentido
literal”
– “La automatización de actividades que vinculamos con
procesos de pensamiento humano, actividades tales
como toma de decisiones, resolución de problemas,
aprendizaje,…”
37
Inteligencia Artificial
• Enfoques
– Sistemas que piensen racionalmente
Inteligencia Artificial
• Enfoques
– Sistemas que actúan como humanos
38
Inteligencia Artificial
• Enfoques
– Sistemas que actúan racionalmente
Inteligencia Artificial
• Resolver un sistema de ecuaciones
– Sistemas que piensan
39
Inteligencia Artificial
• Prueba de Turing (Alan Turing, “¿Pueden pensar
las máquinas?”, 1950)
Inteligencia Artificial
• Prueba de Turing
– Los sistemas deben:
• Representar el conocimiento
• Razonar automáticamente
• Autoaprendizaje de la máquina
40
Inteligencia Artificial
– Sistema experto: sistema informático que presente un
comportamiento similar al de un experto en un ámbito concreto
(ej: clasificación de ejemplares).
– Resolución automática de problemas:
• Demostración de teoremas.
• Planificación de tareas
– Sistemas que aprendan del entorno o de la resolución de otros
problemas que se le hayan presentado.
– Entender un texto en lenguaje natural.
– Juegos:
• Ajedrez (Deep blue).
• Cartas
• Go
Software recreativo
• Aplicaciones orientadas para el ocio.
– Videojuegos:
41
Software recreativo
• Animación/efectos especiales:
– Aplicaciones orientadas a la obtención de secuencias
de imágenes que simulen la realidad.
– Ejemplos:
• Toy Story: 150 estaciones de trabajo duales Silicon
Graphics OCTANE usando Onyx2
• Parque Jurásico: Estaciones Silicon Graphics usando
Softimage y Caricature (ILM)
• Star Ship Troopers: Estaciones Silicon Graphics usando
Wavefront Composer , Cineon, Inferno y Softimage (además
de usar escáner tridimensional para maquetas).
Software recreativo
• Ejemplos:
– Star Wars Episodio II:
• ILM cambió a Linux y
desarrolló nuevo software
(ILM CompTime) y usó otros
comerciales Softimage,
Maya.
42
Licencias
• Comercial
• Shareware
– Programas que se distribuyen con restricciones en el tiempo
(sólo funcionan por un número limitado de días) o en la
funcionalidad (no todas las funcionalidades están disponibles).
• Adware
– Programas gratuitos que muestran publicidad al usuario.
• Freeware
– Programas completamente gratuitos.
• Software libre
– Lo que vimos al hablar de linux.
43