Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
Software
Herramientas Informáticas I
Prof. Ing. Norma Cañizares
Software
Definición de Software.
Clasificación de Software.
Sistemas Operativos.
Software de Aplicación.
Lenguajes de Programación.
Software Libre VS Software Propietario
Evolución Histórica de los Sistemas
Operativos
Software
De Aplicación
Software
de
Programación
Software
de Sistema
SOFTWARE
• El software de una computadora constituye la parte
lógica del sistema, e incluye a todos los programas
(sistemas operativos, procesadores de texto,
reproductores multimedia, etc.) y datos (archivos de
texto, audio, video, gráficos, etc.) del equipo de
computación.
• El Software se clasifica, básicamente, en:
Concepto de Sistema Operativo s/ distintos autores.
• Es un programa que actúa como intermediario entre el usuario y el
hardware. El primer objetivo es la comodidad, el segundo la eficiencia
[Silberschatz].
• Es un programa que tiene encomendada una serie de funciones
diferentes cuyo objetivo es simplificar el manejo y utilización de la
computadora, haciéndolo seguro y eficiente [Carretero].
• El trabajo del sistema operativo es proporcionar a los programas de
usuario un modelo de computadora sencillo, además de encargarse de
la administración de todos los recursos hardware de la misma.
[Tanenbaum].
• Es un programa que controla la ejecución de los programas de
aplicación y que actúa como interfaz entre los usuarios y el hardware.
[Stallings].
SOFTWARE – Sist. Operativo
Concepto de Sistema Operativo s/ Tanenbaunm
El concepto de Sistema Operativo esta relacionado con la
ubicación del mismo en el Sistema de Computación.
Capa de
Software
Modo Kernel
Puente
(Interfaz)
Software de
Usuario
HardWare
Maquina
Gestión de
Dispositivos de
Maquina
Fig. Ubicación del S.O. dentro del Sistema de Computación.
SOFTWARE – Sist. Operativo
En síntesis, el núcleo (kernel) es la parte fundamental de
un sistema operativo.
• Es el software responsable de facilitar a los distintos
programas acceso seguro al hardware de la
computadora, es decir, es el encargado de gestionar
los recursos, a través de servicios de llamada al
sistema.
• Como hay muchos programas y el acceso al
hardware es limitado, el núcleo también se encarga
de decidir qué programa podrá hacer uso de un
dispositivo de hardware y durante cuánto tiempo, lo
que se conoce como multiplexado.
SOFTWARE. Sist. Operativo
Puntos de Vista de Sistema Operativo s/ Tanenbaunm
• Según Andrew S. Tanenbaum, los sistemas operativos se pueden
ver desde dos puntos de vista: como administrador de recursos y
como máquinas extendidas.
Sistema
Operativo
Maquina Virtual
o Extendida
Administrador
de Recursos
SOFTWARE – Sist. Operativo
Sistema Operativo como Administrador de Recursos
Un sistema operativo es un conjunto de políticas para gestionar un conjunto de
recursos, normalmente escasos, entre un conjunto de procesos que compiten
por ellos. El sistema operativo lleva la cuenta del estado de cada recurso y
decide quien lo obtiene, durante cuanto tiempo y cuando.
Estos recursos son:
• El procesador
• La memoria
• El sistema de archivos
• Los dispositivos de entrada y salida
Ejemplo de S.O. como Administrador de Recursos:
Espacio
Memoria, Disco Duro
Tiempo
CPU, Impresora
Compartir Recursos usando Multiplexación
Cuando un recurso se multiplexa en
el tiempo, los distintos programas o
usuarios toman turnos para utilizarlo
Cuando un recurso se multiplexa en
el espacio, cada programa o usuario
obtiene una parte del recurso.
Sistema Operativo como Máquina Virtual o Extendida
Un sistema operativo es una serie de componentes que ocultan la
complejidad del hardware y proporcionan abstracciones de
mayor nivel (máquina extendida) que facilitan su uso a través de
servicios o llamadas al Sistema.
Proporciona servicios o llamadas al sistema
para:
Control de procesos
Manipulación de archivos
Manipulación de dispositivos
Mantenimiento de información
Comunicaciones
Virtualización: es la abstracción de los
recursos de una computadora la cual permite
manejar, gestionar y arbitrar los cuatro
recursos principales de una computadora
(CPU, Memoria, Red, Almacenamiento)
Ejemplos: Tipos de llamadas al sistema.
• Control de procesos: fin, abortar; cargar, ejecutar;
crear proceso, terminar proceso; esperar suceso,
indicar la Ocurrencia del suceso; asignar y liberar
memoria
•Manipulación de archivos: crear archivo, eliminar
archivo; abrir, cerrar; leer, escribir, reposicionar;
obtener atributos de archivo, establecer atributos
de archivo
•Manipulación de dispositivos: solicitar dispositivo,
liberar dispositivo; leer, escribir, reposicionar;
conectar o desconectar lógicamente dispositivos
•Mantenimiento de información: obtener hora o
fecha, establecer hora o fecha; obtener datos del
sistema, establecer datos del sistema; obtener
atributos de un proceso, archivo o dispositivo
• Comunicaciones: crear, eliminar conexión de
comunicación; enviar, recibir mensajes; transferir
información de estado; conectar o desconectar
dispositivos remotos.
El Sistema Operativo como una Interfaz de Usuario según Stanlling.
Según Williams Stanlling, los sistemas operativos tienen un tercer punto de vista
el cual es “S.O. como una interfaz de un Usuario”.
Según este punto de vista los S.O. permiten que los usuarios dialoguen de forma
interactiva con el sistema. El dialogo puede ser a través de:
Interfaz de Texto.
• Se conoce como shell o intérprete de comandos.
• Espera que el usuario teclee una orden en el shell. Después la analiza y si es
válida la ejecuta. Una vez que esta concluye retorna a la espera.
Interfaz grafica.
• Existen elementos gráficos para comunicarse con el S.O. (botones, menús,
iconos, etc.). En este caso al interprete de comandos se lo conoce como GUI.
• Espera por eventos generados por el ratón y el teclado. Valida el evento y lo
ejecuta. Una vez ejecutado retorna a la espera de más eventos.
SOFTWARE – Sist. Operativo
Software - Sistemas Operativos
Niveles de un Sistema Operativo s/ Stanlling
Núcleo (Kernel): Es la capa más cercana al Hardware la cual gestiona los
recursos hardware del sistema y suministra la funcionalidad básica del sistema
operativo como: el procesador, la memoria, los dispositivos de E/S.
Capa de servicios o llamadas al sistema: Ésta capa ofrece a los programas,
servicios en forma de una interfaz de programación o API (application
programming interface); facilitando la creación de programas aplicando las
funciones que le suministra el SO.
Intérprete de comandos o Shell: Suministra la interfaz para que el usuario
pueda comunicarse de manera interactiva con la computadora. El Shell recibe las
órdenes del usuario; los interpreta y si puede los ejecuta. Algunos autores no
consideran el Shell como parte del sistema, ya que se ejecuta a nivel de usuario.
Ciclo Escolar 2013-2014B
Funciones básicas
Un sistema operativo desempeña 5 funciones básicas
en la operación de un sistema informático:
1. Suministro de interfaz al usuario
2. Administración de recursos
3. Administración de archivos
4. Administración de tareas
5. Servicio de soporte y utilidades
Software - Sistemas Operativos
Clasificación de Sistemas Operativos por Servicio
SOFTWARE – Sist. Operativo
El sistema operativo por servicio hace referencia al punto de vista
del usuario final (visión externa):
• Por el numero de usuarios:
Monousuarios
Multiusuarios
• Por el numero de tareas:
Monotareas
Multitareas
• Por el numero de procesadores:
Monoproceso
Multiproceso
Fuertemente acoplados (simétricos y asimétricos)
Débilmente acoplados (procesamiento paralelo y sistemas distribuidos)
Ejercicios:
• Un Sistema Multiusuario podría ser un sistema Monotarea?
• Un Sistema Multitarea podría ser un Sistema
Monoproceso?
• Un Sistema Multiusuario podría ser un sistema Multiproceso?
• Los sistemas operativos monousuario fueron diseñados para
ser utilizados por una persona en un solo ordenador. (V/F)
• Los sistemas operativos multiusuario pueden funcionar en
red. (V/F)
• Los sistemas monotarea ejecutan varias tareas a la vez. (V/F)
• Con los sistemas multitarea se pueden utilizar varios
programas a la vez, porque están capacitados para mantener
todos los datos en memoria. (V/F)
SOFTWARE – Sist. Operativo
Procesadores de Texto
Base de Datos
Hojas de Cálculo
Gráficos
Organizador Personal
A MEDIDA
Control de Producción
Gestión de Mantenimiento de Maquinaria
Ofimática (Más utilizado)
COMERCIALES
Sistemas Específicos (Contabilidad)
Software de Aplicación: Es el software diseñado y escrito
para realizar una tarea especifica, ya sea personal, o de
procesamiento. Aquí se incluyen las bases de datos,
tratamientos de textos, hojas electrónicas, gráficas,
comunicaciones, etc..
SOFTWARE
Software de programación: Es el conjunto de
herramientas que permiten al programador
desarrollar programas informáticos, usando
diferentes alternativas y lenguajes de
programación, de una manera práctica. Incluye
entre otros:
Editores de texto
Compiladores
Intérpretes
Enlazadores
Depuradores
Entornos de Desarrollo Integrados (IDE): Agrupan las
anteriores herramientas, usualmente en un entorno visual,
de forma que el programador no necesite introducir
múltiples comandos para compilar, interpretar, depurar,
etc.. Habitualmente cuentan con una avanzada interfaz
gráfica de usuario (GUI).
SOFTWARE
Otras formas de clasificar el SW
De acuerdo a su costo:
De costo cero: SW gratis, costo de adquisición nulo.
De costo mayor a cero: SW Comercial.
De acuerdo a la apertura de su código fuente:
De código fuente abierto: Open Source, acceso al código fuente.
De código fuente cerrado: no se puede tener acceso al código fuente. En
Gral., es sw propietario.
De acuerdo a su “filosofía”:
Propietario
Libre
De acuerdo a su protección:
De dominio público: sw que no esta protegido con ningún tipo de licencia.
Protegido por licencias
Protegido con copyright: con derechos de autor (o de copia)
Protegido con copyleft: garantiza las libertades del sw libre, establece que
cuando se redistribuye el sw, estas libertades se trasladen a los receptores del
mismo..
Acerca de las Licencias de Uso
El software se rige por licencias de utilización, es decir, en ningún
momento un usuario compra un programa o se convierte en
propietario de él, tan sólo adquiere el derecho de uso, incluso así haya
pagado por el.
Las condiciones bajo las cuales se permite el uso del software --o sea
las licencias-- son contratos suscritos entre los productores de software
y los usuarios.
En general, las licencias corresponden a derechos que se conceden a
los usuarios, principalmente en el caso del software libre, y a
restricciones de uso en el caso del software propietario.
Las licencias son de gran importancia tanto para el software
propietario como para el software libre, igual que cualquier contrato.
Un caso especial, en lo que concierne a la propiedad sobre el software,
lo constituyen los programas denominados de dominio público,
porque sus creadores renuncian a los derechos de autor.
SOFTWARE PROPIETARIO (SW privado)
• Es un software creado por personas o empresas con
finalidad comercial, generando ingresos mediante la venta
masiva de la licencia. (software pago)
• Las licencias propietarias establecen que el usuario adquiere
solamente la facultad de utilizar el programa pero no la
propiedad del mismo (Protegido con copyright.)
• Tampoco el usuario adquiere el derecho de modificar ni
analizar el funcionamiento interno del software (código
cerrado).
• Los fabricantes de programas sometidos a este tipo de
licencias por lo general ofrecen servicios de soporte técnico
y actualizaciones durante el tiempo de vida del producto.
Software Libre (Free software)
De acuerdo con la definición de los autores del modelo, el software libre se
refiere a cuatro libertades fundamentales de los usuarios. Otorga la libertad de:
Usar el programa, con cualquier finalidad,
Estudiar su funcionamiento y adaptarlo a necesidades específicas,
Distribuir copias de la manera que se desee, y
Mejorar el programa haciendo públicas dichas mejoras.
Condición necesaria para que estas libertades puedan existir, “es necesario
disponer del código fuente del programa”
En este tipo de licencia, debe entenderse libre en el sentido de libertad.
no hay que confundirlo con software gratis.
Por lo tanto, puede existir algún costo asociado a su adquisición o con
servicios de soporte con licencia bajo el paradigma de software libre.
Esta modalidad no significa no comercial, por tal razón este software puede
comercializarse.
No obstante, gran parte del sw libre existente también es gratuito
Sistemas Operativos
Evolución Histórica
Primera Generación
Respecto al procesamiento de la Información.
Procesamiento en Serie.
• El programador insertaba su trabajo y esperaba su turno.
• Existía un desaprovechamiento inadecuado del computador
("tiempos muertos de la CPU").
Requerimientos para el procesamiento en serie:
• Planificación del uso de la maquina en una planilla en el que se
especificaba la asignación del tiempo requerido (en Gral. cada
½ hora) para cada tarea.
• Tiempo necesario para la configuración de la maquina en
función de la tarea a procesar (esto significaba montar y
desmontar cintas o configurar tarjetas).
Segunda Generación
Sistemas Operativos en Lotes o Bach
• Sistemas Batch: Procesamiento en serie a través de lotes de tarjetas perforadas
o jobs (trabajos).
• El programador es el encargado de organizar, los lotes de tarjetas perforadas,
mediante máquinas especialmente dedicadas para ese propósito llamadas
máquinas perforadoras.
• El programador no interactúa directamente con el computador.
• Procesaban un único flujo de trabajos en lotes.
• Disponían de un conjunto de rutinas de E/S.
• Tenían un lenguaje de control de trabajos que permitía especificar los recursos
a utilizar y las operaciones a realizar por cada trabajo.
• El software principal del S.O. se denominaba monitor residente, y era el que
controlaba la secuencia de sucesos.
• Control inicial en el monitor
• Transfiere el control a el primer job
• Cuando el job termina o se produce un error se transfiere el control al monitor
Segunda Generación (Cont.)
$END
$RUN
$LOAD
$FTN
Tratamiento de
interrupciones
Controlador de
Dispositivos
Secuenciamiento
de trabajos
Intérprete del
Lenguaje de
Control
Zona del
Programa
del
Usuario
M
o
n
it
o
r
Disposición de
la memoria
$JOB
Programa
a compilar
Paquete de tarjetas
para un sistema
sencillo de por lotes
Fig. Ejemplo de utilización del sistema
Fig. Uno de los primeros sistemas de procesamiento por lotes. a) Los programadores llevan las tarjetas a la 1401. ) La 1401 lee los lotes de trabajos y los
coloca en cinta. c) El operador lleva la cinta de entrada a la 7094. d) La 7094 realiza los cálculos. e) El operador lleva la cinta de salida a la 1401. f) La 1401
imprime los resultados.
Tercera Generación
Respecto al procesamiento de la Información.
Procesamiento de los trabajos en lotes con carga continua -
Spooling – Tecnología de discos
• Spooling, es una tecnología que apareció con los sistemas batch para mejorar el
rendimiento del sistema.
• La introducción de la tecnología de discos entrega una solución en la que la CPU
interactúa directamente con el disco. Esta forma de procesamiento se
denomina Spooling (Simultaneous peripheral operation on-line)
Tercera Generación (Cont.)
Sistemas en Lotes Multiprogramados.
• La Multiprogramacion
permite al procesador gestionar múltiples trabajos en lotes en
un determinado tiempo.
• Para ello es necesario particionar la memoria en varias piezas, de esta manera en la
misma se puede almacenar, aparte del Sistema Operativo, mas de un trabajo de
usuario.
• La implementación de esta técnica requiere del uso de Hardware especial que gestione
los DMA (Acceso Directo a Memoria) y las interrupciones de E/S.
• Objetivo: Maximizar el uso del procesador.
Ventaja: Se aprovecha de manera mas eficiente el uso del procesador.
Desventaja: El usuario no puede interactuar con el Job durante su ejecución.
Fig.Un sistema de multiprogramación
con tres trabajos en memoria.
Ejecutar Ejecutar
Esperar E/S
Tiempo
Monoprogramación
Solo un programa
en ejecución a la vez
Ejecutar
A
Ejecutar
A
Tiempo
Ejecutar
B
Ejecutar
B
Multiprogramación
Más de un programa
en ejecución a la vez
Esperar E/S
Esperar E/S Esperar E/S
Ejecutar
C
Ejecutar
C
Tercera Generación (Cont.)
Sistemas de Tiempo Compartido (también se basa en la
multiprogramación).
• En estos sistemas, múltiples usuarios acceden simultáneamente al sistema a
través de terminales, siendo el sistema operativo el encargado de entrelazar la
ejecución de cada programa de usuario en pequeños intervalos de tiempo.
• En este caso se divide el tiempo del procesador para ejecutar los trabajos de
distintos usuarios ubicados en las terminales.
• En estos sistemas el usuario interacciona directamente con el sistema.
• Objetivo: Minimizar el tiempo de respuesta.
Usuario 3
Usuario 2
Usuario 1
Tareas del Sistema Operativo
•Sistema Multitarea
•Sistema Interactivo
•Sistema de Archivos
(archivos/directorios)
•Sistema Multiusuario
•Memoria Virtual (memoria lógica)
Cuarta Generación
Características de los Sistemas Operativos para PC:
Sistemas operativos monousuario.
Los sistemas operativos incorporan técnicas implementadas en generaciones
anteriores: Multiprogramación, Tiempo Compartido, Memorial Virtual, Sistema
Jerárquico De Archivos.
Los sistemas operativos para las primeras microcomputadoras se basaban en
que los usuarios escribieran los comandos mediante el teclado. Ej. MsDos, Unix.
Luego, se evoluciona a una interfaz grafica intuitiva y amigable, destinado a
usuarios no profesionales. El S. O. crea un ambiente de trabajo según el
concepto de máquina virtual, que lo aísla del funcionamiento interno de la
máquina.
Avances a mediados de la década del 80’.
Desarrollo de sistemas operativos de red y sistemas operativos distribuidos.
Gran énfasis en la seguridad, en especial por el desarrollo de los sistemas de
comunicaciones de datos.
Proliferación de sistemas de bases de datos, accesibles mediante redes de
comunicación.
Cuarta Generación (Cont.)
Sistemas operativos de red:
Los usuarios están conscientes de la existencia de varias
computadoras conectadas.
Cada máquina ejecuta su propio S. O. local.
Son similares a los S. O. de un solo procesador pero con el
agregado de:
Controlador de interfaz de la red y su software de bajo
nivel.
Software para conexión y acceso a archivos remotos, etc.
SO
SO
SO SO
SO
Red de
comunicación
Server
Sistemas operativos distribuidos:
Se entiende por Sistema Distribuido aquel en que la inteligencia del Sistema Informático
esta repartida por distintos procesadores. Ejemplo: una red de ordenadores.
Ventajas de los sistemas distribuidos
• Se comparten recursos: Se puede utilizar otro dispositivo que esté conectado a otro nodo
de la red.
• Aumenta la velocidad de computación:
−Se distribuye el trabajo entre los distintos procesadores, o nodos.
−Fiabilidad: Si falla un ordenador otro puede seguir con la tarea.
• Comunicación.
Quinta Generación
En esta generación:
• Se explota al máximo el concepto de Multitheading
(multihilo) o multitareas para mantener trabajando al
procesador con más de un proceso a la vez, y
• También se desarrollan Sistemas Operativos que permiten
realizar procesamientos en paralelo (por ejemplo,
Multiprocesamiento Simétrico).
Multitheading: Es una técnica en la cual un proceso, que
ejecuta una aplicación, se divide en una serie de hilos o
threads para ejecutarse concurrentemente.
Multiprocesamiento Simétrico (SMP: Symmetric Multi-
Processing) o Sistemas Paralelos: Es un término que se refiere
a la arquitectura hardware del computador y también al
comportamiento del sistema operativo que explota dicha
arquitectura.
Quinta Generación (Cont.)
Multiprocesador Simétrico
Se puede definir un Multiprocesador Simétrico como un
sistema de computación con las siguientes características:
• Tiene múltiples procesadores.
• Estos procesadores comparten las mismas utilidades de
memoria principal y de E/S, interconectadas por un bus de
comunicación u otro esquema de conexión interna.
• Todos los procesadores pueden realizar las mismas funciones
(de ahí el término simétrico).
El sistema operativo de un SMP planifica procesos o hilos
a través de todos los procesadores.
Por lo tanto, varios procesos se pueden ejecutar
simultáneamente, cada uno de ellos en un procesador
diferente.
Además, debido a que todos los procesadores pueden
llevar a cabo las mismas funciones, el fallo de un solo
procesador no detiene el equipo.