Title: Diapositiva 1
1Introducción a la Ingeniería de Sistemas
SEMANA 03 - 1
Sistemas Operativos
2Elementos de un Sistema Informático
- Hardware (lo tangible)
- Software (programas, lo intangible)
- software del sistema
- Aplicaciones
- Personas (usuarios del sistema)
- usuarios
- programadores
El SO controla y coordina el uso del hardware
entre los distintos programas para diversos
usuarios
3Que es un Sistema Operativo?
- Un programa que sirve de intermediario entre los
usuarios y el hardware - Pertenece al software del sistema
- Objetivos
- Ejecutar las aplicaciones de los usuarios
- Administrar eficientemente los recursos de la
máquina - ?Eficiencia
- Facilitar la interacción con el computador
- ?Usabilidad
4Que es un Sistema Operativo?
- Es un administrador de recursos
- como si fuera un gobierno del hardware
- programa de control
- ojo, no realiza trabajo productivo
- Es una interfaz con el hardware
- añade características no existentes en el
hardware - oculta características inconvenientes del
hardware - máquina extendida
El SO proporciona un ambiente de ejecución de
programas
En caso de conflictos debe decidir de forma
eficiente y justa
5Definiciones breves
- Un sistema de software cuyo fin es que un sistema
informático sea operativo (utilizable). - Conjunto de programas que gestionan los recursos
del sistema, optimizan su uso y resuelven
conflictos.
6El SO como administrador de recursos
- Tenemos dos participantes en el sistema los
procesos y los recursos. - Un proceso es un programa en ejecución
- Un recurso puede ser real o virtual, físico o
lógico - Los procesos compiten por el uso de recursos
escasos. - Necesitamos un árbitro imparcial que asigne
recursos a los procesos, de forma justa y
eficiente.
7El SO como administrador de recursos
- El SO debe determinar a quién se le entregan los
recursos, qué cantidad de recursos se conceden,
en qué momento y durante cuánto tiempo. - ? Políticas de gestión de recursos
8El SO como administrador de recursos
- Criterios de gestión de recursos
- Optimizar el rendimiento del sistema
- Reparto justo ? evitar acaparamientos e inanición
de procesos perjudicados - Garantizar la seguridad e integridad de la
información - Normalmente, los distintos criterios entran en
conflicto - Ej. no se puede maximizar el rendimiento y a la
vez dar un reparto justo
9El SO como interfaz
- Es una capa entre el usuario y el hardware.
- La interfaz ofrece una máquina extendida que es
una abstracción de la realidad.
10El SO como interfaz
- Esa abstracción es más cómoda, más conveniente,
más usable para el usuario y para el programador. - Esta interfaz puede ser independiente del
hardware ganamos portabilidad.
11Recorrido histórico tipos de sistemas
- Primeros sistemas
- Sistemas por lotes
- Mejoras en la gestión de la E/S
- Sistemas por lotes multiprogramados
- Sistemas de tiempo compartido
- Ordenadores personales
- Sistemas paralelos multiprocesadores
- Sistemas distribuidos
- Sistemas de tiempo real
12Primeros sistemas
- Los primeros sistemas de computación se
caracterizaban - Gran tamaño
- Prácticamente sin ningún soporte lógico (tableros
enchufables, tarjetas perforadas,...)
?
13Primeros sistemas Organización del trabajo
- Organización del trabajo
- usuario experto operador/programador
- un solo usuario en cada momento (tiempo asignado,
listas de reserva)
14Primeras mejoras
- Dispositivos físicos
- Lectoras de tarjetas, impresoras y cintas
magnéticas - Elementos lógicos
- Aparece el primer software de sistema,
- Ensambladores, compiladores, cargadores
- Manejadores de dispositivos
- Bibliotecas con subrutinas de uso frecuente
- Finalmente aparecieron los primeros compiladores
de lenguajes de alto nivel (FORTRAN, COBOL), - Simplificando la labor de programación pero
aumentando la carga de trabajo del computador
15Problemas
- El modo de trabajo hacía que la máquina estuviera
parada mucho tiempo - tiempo de puesta a punto (setup time)
- tiempo de corrección manual de errores
- tiempo sobrante por finalización temprana
- Equipos muy caros
16Los sistemas por lotes multiprogramados
Los sistemas por lotes multiprogramados
proporcionan un entorno en el que los distintos
recursos del sistema (por ejemplo, CPU, memoria,
dispositivos periféricos) se aprovechan de manera
efectiva. No obstante, los sistemas por lotes
tienen ciertos problemas desde el punto de vista
del usuario. Puesto que el usuario no puede
interactuar con el trabajo durante su ejecución,
debe preparar las tarjetas de control de modo que
manejen todos los resultados posibles. En un
trabajo de varios pasos, los pasos subsecuentes
podrían depender del resultado de pasos
anteriores. Por ejemplo, la ejecución de un
programa podría depender de que su compilación
tenga éxito. Puede ser difícil definir cabalmente
lo que debe hacerse en todos los casos.
17Sistemas de tiempo compartido
Un sistema operativo de tiempo compartido utiliza
planificación de la CPU y multiprogramación para
ofrecer a cada usuario una pequeña porción del
tiempo de un computador. Cada usuario tiene por
lo menos un programa individual en la memoria. Un
programa que está cargado en la memoria y se está
ejecutando se conoce como proceso. Cuando un
proceso se ejecuta, generalmente lo hace sólo
durante un tiempo corto antes de que termine o
necesite realizar operaciones de BIS. La BIS
puede ser interactiva las salidas podrían
enviarse a una pantalla para que el usuario las
vea, y las entradas podrían recibirse del teclado
del usuario. Puesto que la FIS interactiva casi
siempre se efectúa a un ritmo humano, puede
tardar mucho tiempo en llevarse a cabo. Las
entradas, por ejemplo, pueden estar limitadas por
la velocidad con que el usuario teclea
consideramos que una persona que teclea a razón
de cinco caracteres por segundo es rápida, pero
es increíblemente lenta para los computadores. En
lugar de dejar que la CPU esté ociosa mientras
ocurre tal entrada interactiva, el sistema
operativo conmuta rápidamente la CPU al programa
de algún otro usuario.
18Un sistema operativo de tiempo compartido permite
a los múltiples usuarios compartir el computador
simultáneamente. Puesto que cada acción u orden
en un sistema de tiempo compartido tiende a ser
corta, cada usuario necesita sólo un poco de
tiempo de CPU. Como el computador cambia con gran
rapidez de un usuario al siguiente, cada uno
recibe la impresión de que tiene su propio
computador, aunque en realidad muchos usuarios lo
estén compartiendo.
19Sistemas por lotes
Objetivo sacar más provecho a la máquina
gracias a una mejor organización del trabajo
Los operadores agrupaban los trabajos por lotes,
que eran trabajos con necesidades similares y que
eran ejecutados en la computadora como un grupo
de tareas. A medida que la computadora quedaba
libre, se ejecutaba un lote.
20Sistemas por lotes
- Primer paso aparición del operador especialista.
- El programador no manipula directamente el
equipo. - El programador entrega su trabajo (job) al
operador. - El operador somete la tarea al sistema y entrega
los resultados al programador. - El programador corrige sus errores mientras el
operador sigue ejecutando otras tareas. - Resultado aumento de la productividad.
21Sistemas por lotes
- Segundo paso agrupar las tareas en lotes que se
procesan de forma automática - Procesamiento por lotes (batch processing)
- El operador puede preparar lotes con trabajos que
requieren una misma operación (ej. cargar el
compilador) - El operador lanza el lote, y éste se ejecuta sin
más intervención (secuencia automática de
trabajos)
22Sistemas por lotes
- Necesario automatizar ciertas acciones comunes
- Control de la finalización de tareas
- Tratamiento de errores
- Carga y ejecución automática de la siguiente
tarea - En lugar de dar órdenes al operador, Porqué no
dárselas directamente al computador?
23El Primer Sistema Operativo
- Es necesario que el computador tenga un pequeño
monitor residente (controlador) que realice
automáticamente las acciones anteriores. Cómo? - Distinguiendo entre
- Tarjetas de instrucciones de programas de
usuarios - Tarjetas de control (Primer lenguaje de control
de sistema FTN, ASM, RUN, JOB, END)
24Elementos de un sistema por lotes
- Lenguaje de control de tareas (JCL, job control
language) - el lote se escribe usando un JCL
- define qué programas hay que cargar, qué datos
leer,etc. - se escribe en tarjetas perforadas, cinta, etc.
- Monitor residente
- programa fijo en memoria con rutinas
imprescindibles para - que el sistema por lotes funcione intérprete del
JCL,cargador - de programas, rutinas de EIS...
- automatiza tareas del antiguo operador
- es el primer sistema operativo auténtico
25El monitor residente Protección
- Se empiezan a considerar aspectos de protección
- proteger la memoria ocupada por el monitor
residente - impedir accesos directos a la E/S
- evitar que una tarea deje bloqueado al sistema
- Todo ello requiere cierto apoyo del hardware
26Cuestiones
Quién carga el intérprete del lenguaje de
control ? Cómo se debe actuar en caso de fallo
del programa de usuario ? Cómo garantizar el
uso correcto de los dispositivos de E/S ? Cómo
los programas realizan las operaciones de E/S
? Cómo podemos diferenciar si las
instrucciones de E/S son utilizadas por el
usuario o por el monitor residente ? Cómo
proteger al monitor residente ? Cómo
garantizar el control del sistema ?
27La memoria en un sistema con monitor residente
Vector de interrupciones
Interprete de JCL
Cargador de programas
Monitor residente
Manejadores de dispositivos E/S
Memorias intermedias (Búferes)
Rutinas de tratamiento de errores
Registro Limite
Memoria del usuario
28SO y arquitectura del computador
- Los SO y la arquitectura de los computadores se
han influido mucho entre ellos dos - Los SO se crearon para facilitar el uso del
hardware - A medida que se diseñaron y usaron los SO, se
hizo evidente que podrían simplificarse si se
modificaba el diseño del hardware - A lo largo de la evolución de los SO se observa
que los problemas de los SO han dado pie a la
introducción de nuevas características del
hardware
29El problema de la E/S
- La E/S era muy lenta en comparación con la CPU.
- Esto provocaba que la CPU quedara ociosa mucho
tiempo esperando por la terminación de
operaciones de E/S. - Algunas técnicas para tratar el problema
- Operación fuera de línea (offline)
- Uso de búferes
- Spooling
30Operación fuera de línea (off-line)
- El computador central dialoga directamente sólo
con dispositivos rápidos (cintas magnéticas). - Un pequeño computador (satélite o canal) se
encarga de las transferencias con dispositivos
lentos (tarjetas, impresora).
31Operación fuera de línea (off-line)
- Resultado
- mejor aprovechamiento del procesador central
- ejecución paralela de cálculos y operaciones de
E/S - Se puede incrementar la velocidad utilizando
varios satélites. - Para trabajar con offline, no hace falta
recompilar los programas antiguos. - Los trabajos siguen usando los mismos servicios
para la E/S. Lo que cambia es su implementación
en el S.O independencia del dispositivo.
32Búferes
Esquema de operación de E/S en el que las
transferencias de E/S se realizan a través de un
área intermedia de memoria (búfer) La operación
de E/S se realiza sólo cuando el dispositivo está
preparado.
33Búferes
- La CPU sólo espera por E/S cuando el búfer está
vacío (entrada) o lleno (salida) - El uso de búferes permite solapar operaciones de
E/S de una tarea con instrucciones de CPU de esa
misma tarea - El uso de búferes no resuelve totalmente el
problema de la lentitud de los equipos de E/S - Los búferes sólo sirven para amortiguar picos de
alta actividad de E/S. - Su eficacia depende fundamentalmente de la
velocidad de los equipos de EIS y del tipo de
tareas en ejecución - Si la EIS es muy lenta, los búferes de entrada se
vacían y los de salida se congestionan. - Las tareas con muchos requerimientos de E/S
(I/O-bound jobs/CPU-bound jobs) provocaran el
mismo efecto
34Spooling (Simultaneous Peripheral Operation
On-Line)
- Este esquema de funcionamiento de operación de la
EIS surge gracias a la aparición de los discos - Se utiliza el disco como un enorme búfer.
- El proceso lee/escribe sobre el disco, en lugar
del dispositivo de E/S. - Mientras se ejecuta un trabajo, el S.O.
- lee los datos del siguiente trabajo de la
cinta/tarjetas al disco - imprime la salida del anterior trabajo, del disco
a la impresora - Permite solapar la EIS de un proceso ya terminado
con las operaciones en CPU de otro proceso. - Introduce una estructura de control. Fondo de
trabajos (job pool) el lote está en el disco.
así que el S.O. puede elegir el trabajo más
adecuado.
35Multiprogramación
- El modo de operación offline y el spooling
aumentan el rendimiento de la CPU pero tienen sus
limitaciones - En algún momento la CPU quedará ociosa esperando
por alguna operación de E/S - Al existir la posibilidad de tener varios
trabajos en un dispositivo de acceso directo.
como un disco. es posible la planificación de
trabajos - El SO puede escoger qué trabajo ejecutara a
continuación
36Multiprogramación
- Cuando un proceso se bloquea al esperar por la
EIS, ejecutamos en la CPU instrucciones de otro
proceso. - Los procesos entrelazan su ejecución
concurrencia. - La CPU y la E/S trabajan a la misma vez se
terminan más trabajos en menos tiempo
37Multiprogramación
- Los sistemas multiprogramados son más complejos
- Cuando la CPU queda libre, a qué proceso
elegimos? - (planificación de la CPU)
- conflictos por acceso simultáneo a la EIS
(planificación de - dispositivos)
- varios procesos a la vez en memoria (gestión de
memoria) - Protección
- Solución a situaciones de interbloqueo
38Tiempo compartido (Time Sharing)
- Multiprogramación interactividad tiempo
compartido - Los sistemas por lotes no son interactivos (el
usuario no interviene durante la ejecución de su
trabajo) - Con la multiprogramación e interactividad, se
replantea su caracterización antes era por el
agrupamiento de tareas similares mientras que
ahora se caracterizan por la falta de interacción
entre los usuarios y las tareas en ejecución
39Tiempo compartido (Time Sharing)
- Idea la CPU reparte su tiempo entre los
distintos procesos. - Cada proceso dispone de una rodaja de tiempo
periódica. Si el periodo es lo bastante pequeño,
el usuario no lo percibe. - Con el t.c. se pierde productividad de CPU, pero
se gana en productividad humana
40Tiempo compartido (Time Sharing)
- Por tanto con el tc se consigue
- tiempos de respuesta cortos
- Los usuarios tienen la impresión de poseer un
ordenador particular
?
?
?
?
41Ordenadores personales
- La aparición del microprocesador permitió
fabricar computadores baratos, asequibles para
el consumo de masas gt ordenadores personales
(años 80) - Destinados al uso individual y no experto.
- Máxima importancia a la facilidad de uso, bajos
tiempos de - respuesta, etc.
- Interfaces de usuario sistemas WIMP (windows,
icons, menus, - pointers).
- Utilizan tecnología de los grandes S.O., pero
prescinden de - ciertos servicios (protección,
multiprogramación, etc.)
42Sistemas paralelos -multiprocesadores
- Sistemas con más de un procesador. Pueden
ejecutar varias instrucciones simultáneamente
(en paralelo). - Sistemas estrechamente acoplados los
procesadores comparten una memoria común. - Sólo hasta decenas o centenares de procesadores.
- Ventajas
- aumento de velocidad de procesamiento con bajo
coste cierta - tolerancia a fallos
- Inconvenientes
- necesidad de sincronización entre procesos
43Sistemas distribuidos
- Múltiples procesadores conectados mediante una
red. - Sistemas débilmente acoplados los
procesadores no comparten memoria ni reloj. - Escalable hasta millones de procesadores (ejm.
Internet)
44Sistemas distribuidos
- Ventajas
- compartición de recursos dispersos
- ayuda al trabajo cooperativo de equipos humanos
- aumento de velocidad
- fiabilidad (tolerancia a fallos, alta
disponibilidad) - Complicaciones
- Uno comparten memoria la comunicación es más
compleja y no se puede tener un estado global
visible por todos los nodos al instante. - red de comunicaciones no fiable
- heterogeneidad de los nodos
45Sistemas de tiempo real
- Para poder ejecutar satisfactoriamente tareas que
han de completarse en un plazo prefijado (ejm.
sistemas de - control industrial, sistemas multimedia)
- Dos tipos
- s.t.r. crítico para tareas que siempre deben
cumplir los plazos de terminación. Adecuados para
la industria. Muy simples, incompatibles con
tiempo compartido, memoria virtual, etc. - s.t.r. no crítico intentan cumplir los plazos,
pero no los garantizan al 100. Adecuados para
multimedia, etc.
46Otros sistemas
- Sistemas empotrados (embedded systems)
- Sistemas de propósito especifico
- Teléfonos móviles
- Consolas de videojuegos
47Estructura del computador
48Estructura del computador
CPU
Controlador de discos
Controlador de impresora
Controlador de puerto PS/2
Controlador de memoria
bus del sistema
La CPU y los Controladores de dispositivos
funcionan concurrentemente compitiendo por la
memoria
Memoria
Memoria bus del sistema
49Estructura de la E/S
- Los dispositivos se conectan al bus a través de
controladores de E/S. - La CPU se comunica con los controladores a través
de instrucciones especiales o de direcciones
de memoria - concretas.
- Cada controlador tiene un búfer local. La CPU
envía y recoge datos del búfer. - El controlador notifica a la CPU la finalización
de una - operación o la llegada de nuevos datos
mediante una - interrupción
50Interrupciones
- Cuando llega una señal de interrupción a la
CPU, ésta suspende lo que está haciendo y
ejecuta una rutina de servicio de interrupción
(RSI). - Antes de ejecutar la RSI, hay que guardar el
estado de la CPU, para que pueda reanudar lo
que estaba haciendo después de completar la
RSI.
51Estructura del sistema operativo
52Componentes típicos de un SO
53procesos
Gestión de procesos
- Un proceso es un programa en ejecución. Para
poder ejecutarse, un proceso necesita tiempo
de CPU, una porción de memoria, archivos, E/S
y demás recursos. - Responsabilidades del S.O.
- creación y eliminación de procesos
- planificación de procesos repartir la CPU entre
los procesos activos - sincronización entre procesos
- comunicación entre procesos
54Gestión de memoria
memoria
- La memoria es un recurso escaso por el que
compiten los distintos procesos. - Responsabilidades del S.O.
- conocer qué zonas de memoria están libres y
cuáles están ocupadas - decidir qué procesos hay que cargar cuando haya
memoria libre - reservar y liberar zonas de memoria según se
solicite - memoria virtual utilizar el almacenamiento
secundario como una extensión de la memoria
principal
55Entrada/Salida
Gestión de entrada/salida
- La E/S es un conjunto de dispositivos muy
variados y complejos de programar. - Objetivos del S.O.
- proporcionar una interfaz uniforme para el acceso
a los dispositivos (independencia del
dispositivo) - proporcionar manejadores para los dispositivos
concretos - tratar automáticamente los errores más típicos
- para los dispositivos de almacenamiento, utilizar
cachés - para los discos, planificar de forma óptima las
peticiones
56Archivos
Sistema de archivos
- Un archivo es un conjunto de datos identificado
por un nombre. Los archivos se almacenan en
dispositivos de E/S. Un archivo es un concepto
de alto nivel que no existe en el hardware. - Funciones del S.O.
- manipulación de archivos crear. borrar. leer.
escribir... - manipulación de directorios
- ubicar los archivos y directorios en los
dispositivos de almacenamiento secundario - automatizar ciertos servicios copia de
seguridad. versiones. etc.
57Sistema de proteccion
Protección
- La protección abarca los mecanismos destinados a
controlar el acceso de los usuarios a los
recursos, de acuerdo con los privilegios que
se definan. - Objetivos del S.O.
- definir el esquema general de protección clases
de usuarios, clases de permisos/privilegios,
etc. - definir mecanismos de acceso a los recursos
contraseñas, llaves, capacidades, etc. - controlar el acceso a los recursos, denegando el
acceso cuando no esté permitido
58Redes
Redes
- En un sistema distribuido, existen varios
ordenadores con sus propios recursos locales
(memoria, archivos, etc.), conectados mediante
una red. - Objetivos del S.O.
- proporcionar primitivas para conectarse con
equipos remotos y acceder de forma controlada a
sus recursos primitivas de comunicación (enviar
y recibir datos) sistema de ficheros en red (ejm.
NFS) llamada remota a procedimiento (RPC) etc.
59Interprete de ordenes
Interprete de ordenes
- Para que un usuario pueda dialogar directamente
con el S.O., se proporciona una interfaz de
usuario básica para - cargar programas
- abortar programas
- introducir datos a los programas
- trabajar con archivos
- trabajar con redes
- Ejemplos JCL en sistemas por lotes,
COMMAND.COM en MS-DOS, shell en UNIX
60Procesos
61Concepto de proceso
- Un proceso es un programa en ejecución
- Un proceso necesita recursos para poder
ejecutarse memoria, dispositivos de E/S, la
CPU, etc. - Áreas típicas de la memoria
- código
- datos (variables globales, memoria dinámica)
- pila (parámetros y variables locales de
subrutinas)
62Estados de un proceso
- A medida que un proceso se ejecuta, cambia de
estado - nuevo recién creado por el S.O.
- en ejecución está en la CPU ejecutando
instrucciones - bloqueado esperando a que ocurra algún evento
(ej. una operación de E/S) - preparado esperando a que le asignen un
procesador - terminado no ejecutará más instrucciones y el
S.O. le retirará los
recursos que consume
63Estados de un proceso
64Concurrencia
65Que es concurrencia?
Definición de diccionario coincidir en el
espacio o en el tiempo dos o más personas o
cosas. En Informática, se habla de concurrencia
cuando hay una existencia simultánea de varios
procesos en ejecución. Ojo, concurrencia
existencia simultánea no implica ejecución
simultánea
66Paralelismo y concurrencia
- El paralelismo es un caso particular de la
concurrencia. - Se habla de paralelismo cuando ocurre la
ejecución simultánea de instrucciones
67Interbloqueo
68