Tema 1 Introduccion TEMA 1 INTRODUCCION
Tema 1 Introduccion TEMA 1 INTRODUCCION
Tema 1 Introduccion TEMA 1 INTRODUCCION
Te m a 1 : I nt roduc c ión
TEMA 1: INTRODUCCIÓN
• Qué hacen los Sistemas Operativos
• Organización de los Sistemas de Computadores
• Arquitectura de los Sistemas de Computadores
• Estructura de los Sistemas Operativos
• Operaciones de los Sistemas Operativos
• Gestión de Procesos
• Gestión de Memoria
• Gestión del Almacenamiento
• Protección y Seguridad
• Sistemas Distribuidos
• Sistemas de Propósito Específico
• Entornos de Computación
1
29/09/2014
OBJETIVOS
Proporcionar una visión general de los principales
componentes de los sistemas operativos
Proporcionar conocimientos básicos acerca de la
organización de los sistemas de computación
2
29/09/2014
3
29/09/2014
4
29/09/2014
[gestor de recursos]
• El SO gestiona todos los recursos (tiempo CPU, memoria,
almacenamiento, dispositivos E/S, etc.)
• El SO decide entre peticiones conflictivas (competitivas) por
parte de programas y usuarios específicos, tratando de
garantizar un uso eficiente y equitativo.
[programa de control]
• El SO controla la ejecución de los programas con el objetivo
de prevenir errores y un uso inadecuado del computador
[máquina extendida o virtual]
• El SO hace que sea más fácil de utilizar, ofreciendo una
serie de funcionalidades comunes para controlar y gestionar
recursos, que utilizando directamente el hardware
subyacente sería muy fácil de utilizar por parte de los
programas de aplicación
5
29/09/2014
DEFINICIÓN DE SISTEMA
OPERATIVO (CONT.)
No existe una definición aceptada universalmente
“Todo lo que un vendedor te da cuando se le pide un
sistema operativo” es una buena aproximación …
• pero varía mucho
“El único programa ejecutándose en el ordenador
durante todo el tiempo” es el núcleo (kernel). Todo los
demás, o bien es un programa de sistema (distribuido
conjuntamente con el sistema operativo) o un programa
de aplicación
ESTRUCTURA DE COMPUTADORES
Operación de los Sistemas de Computadores
• Una o más CPUs, controladores de dispositivo (device controllers) conectados a
través de un bus común que proporciona el acceso a la memoria compartida. Es la
arquitectura clásica de von Neumann
• Ejecución concurrente de las operaciones de la CPU y las operaciones de E/S
realizadas por los controladores de dispositivo, compitiendo por los ciclos de
acceso a memoria
6
29/09/2014
OBJETIVOS DE UN SO
Comodidad
• Hace que un computador sea mas cómodo de utilizar.
Abstracción, Factores humanos ...
Eficiencia
• Permite un uso eficiente de los recursos de un sistema
informático.
Capacidad de evolución
• Permite el desarrollo efectivo, la verificación y la
introducción de nuevas funciones en el sistema sin
interferir en los servicios.
NIVELES DE UN SISTEMA
INFORMÁTICO
7
29/09/2014
SERVICIOS DE UN SO
1 Creación de programas:
• Editores.
• Compiladores.
• Depuradores.
2 Acceso ordenado a los dispositivos de E/S.
3 Acceso controlado a los archivos.
4 Acceso al sistema.
5 Detección y respuesta a errores:
• Errores internos y externos del hardware:
• Error de memoria.
• Fallo de dispositivos.
• Errores de software:
• Desbordamiento aritmético.
• Acceso a una posición prohibida de memoria.
• Incapacidad del sistema operativo para satisfacer la solicitud de una aplicación.
SERVICIOS DE UN SO
6 Contabilidad:
• Recoger estadísticas.
• Supervisar su rendimiento.
• Utilizado para anticiparse a las mejoras futuras.
• Adaptabilidad: interfaces adaptativas.
• Utilizado para los usuarios de cuotas..
8
29/09/2014
ESTRUCTURA DE COMPUTADORES
(ARRANQUE DEL ORDENADOR)
ESTRUCTURA DE COMPUTADORES
(INTERRUPCIONES)
La ocurrencia de un evento se señaliza habitualmente mediante
una interrupción, bien originada por el hw, bien por el sw
• El hw puede disparar una interrupción en cualquier momento
enviando una señal a la CPU, vía el bus del sistema
• El sw puede disparar una interrupción mediante la ejecución de
una operación especial denominada llamada al sistema (system
call)
Cuando la CPU es interrumpida, para la ejecución del programa
en curso e inmediatamente transfiere el control a una dirección
fija en memoria, a partir de la cual se localiza la rutina de servicio
de la interrupción (ISR, Interrupt Service Routine)
Una vez ejecutada la rutina de servicio de la interrupción, la CPU
reanuda la ejecución de la operación previamente interrumpida
Las interrupciones son una parte importante de la arquitectura de
un computador
Existen diferentes esquemas de manejo de interrupciones
(interrupt handling): sondeo (pooling) o sistema vectorizado de
interrupciones
9
29/09/2014
ESTRUCTURA DE COMPUTADORES
(CRONOGRAMA TÍPICO DE UNA
INTERRUPCIÓN)
interrupt interrupt
ESTRUCTURA DE COMPUTADORES
(ESTRUCTURA DEL ALMACENAMIENTO)
Los programas de ordenador deben estar cargados en memoria
principal (main memory) o memoria RAM para ejecutarse
• La memoria principal es el único medio de almacenamiento de
gran tamaño al que puede acceder directamente la CPU
• Tiene una estructura lineal, en forma de array de palabras, donde
cada palabra tiene su propia dirección de memoria
• La CPU interacciona con la memoria principal mediante:
• Ejecución explícita de instrucciones LOAD y STORE sobre
direcciones específicas de memoria
• Automáticamente la CPU carga las instrucciones de un programa,
almacenadas en memoria principal, para poder ejecutarlas. Es el
ciclo de ejecución de una instrucción.
• Para ello la CPU tiene registros específicos, como el registro
de instrucciones y el contador de programa
10
29/09/2014
ESTRUCTURA DE COMPUTADORES
(ESTRUCTURA DEL ALMACENAMIENTO)
Idealmente, tanto las instrucciones como los datos deberían residir
siempre en memoria principal, pero …
• La memoria principal no es lo suficientemente grande para almacenar
todos los posibles programas y datos, y
• La memoria principal es volátil, pierde su contenido cuando deja de
alimentarse
Esta situación implica la necesidad de disponer de un
almacenamiento secundario (secondary storage) – Extensión de la
memoria principal que proporciona capacidad de almacenamiento
mayor y no volátil (persistente)
• El dispositivo más común para almacenamiento secundario son los
discos magnéticos – soportes rígidos de metal o vidrio, cubiertos por
material magnético grabable
• La mayoría de los programas está almacenado en disco hasta que se
cargan (load) en memoria para ejecutarse. Por otro lado muchos
programas utilizan el disco como fuente y destino de datos, donde
almacenar la información que procesan.
• Por tanto, la gestión del espacio de discos es de capital importancia
en el rendimiento de un computador
ESTRUCTURA DE COMPUTADORES
(JERARQUÍA DE ALMACENAMIENTO)
La gran variedad de dispositivos de almacenamiento, hace que sea necesario
clasificarlos atendiendo a su velocidad y coste, en lo que se conoce como
jerarquía de almacenamiento
11
29/09/2014
ESTRUCTURA DE COMPUTADORES
(ESTRUCTURA DE E/S)
Los dispositivos de almacenamiento son uno de los muchos tipos de
dispositivos de E/S existentes en un computador
Una gran parte del código de un SO se encarga de manejar dispositivos de E/S,
dada su importancia de cara a conseguir la fiabilidad y buen rendimiento del
sistema, tanto por su gran diversidad
Recordando que un ordenador de propósito general dispone de una (o varias)
CPUs y diferentes controladores HW de dispositivo (device controllers),
conectados a través de un bus común
• Cada controlador HW de dispositivo se encarga de un tipo particular de
dispositivo
• Dependiendo del controlador, puede haber más de un dispositivo soportado por
el mismo controlador
• Cada controlador de dispositivo dispone de al menos un buffer local (memoria
intermedia) y un conjunto de registros de propósito específico
• El controlador HW de dispositivo es responsable de mover los datos entre los
periféricos que controla y su almacenamiento local temporal (buffers)
Por otro lado, lo habitual es que el SO disponga de un controlador SW de
dispositivo (device driver), que actúa de mediador entre el HW de dispositivo
(traduciendo las operaciones a instrucciones de bajo nivel soportadas por el
controlador HW de dispositivo) y el SO (ofreciendo una interface uniforme al
resto del SO)
ESTRUCTURA DE COMPUTADORES
(ESTRUCTURA DE E/S)
12
29/09/2014
ESTRUCTURA DE COMPUTADORES
(ESTRUCTURA DE E/S)
ARQUITECTURA DE COMPUTADORES
Sistemas monoprocesadores
• Muchos sistemas son monoprocesadores, desde PDAs hasta
mainframes.
• Estos sistemas se caracterizan porque sólo disponen de una
única CPU capaz de ejecutar un conjunto de instrucciones de
propósito general, incluidas las instrucciones de los procesos de
usuario
• Además, es habitual que estos sistemas dispongan de otros
procesadores de propósito específico (controladoras gráficas, de
teclado, de disco, …), es decir, controladores de dispositivo
• Todos estos procesadores de propósito específico ejecutan un
conjunto limitado de instrucciones y no ejecutan procesos de
usuario
• En algunas ocasiones son gestionados por el SO, en el sentido,
de que el SO les envía información acerca de la siguiente tarea a
realizar y monitoriza su estado
13
29/09/2014
ARQUITECTURA DE COMPUTADORES
Sistemas multiprocesadores
• Hoy en día, los sistemas multiprocesadores están adquiriendo
gran relevancia por su uso cada vez mayor
• Estos sistemas se caracterizan porque disponen de dos o más
CPUs de propósito general, compartiendo el bus del sistema y
algunas veces el reloj, la memoria principal y los dispositivos
periféricos
• Los sistemas multiprocesadores presentan tres ventajas
principalmente:
• Mayor productividad. Mediante el incremento del número de
procesadores, se espera hacer más trabajo en menos tiempo
• Economía de escala. Un sistema multiprocesador puede costar
menos que su equivalencia en sistemas monoprocesadores, dado
que estos sistemas pueden compartir periféricos, discos, fuentes
de alimentación, …,
• Mayor fiabilidad. Si las funciones pueden distribuirse
adecuadamente entre varios procesadores, el fallo de un
procesador no debería detener por completo al sistema, sólo
ralentizarlo
ARQUITECTURA DE COMPUTADORES
Sistemas multiprocesadores (cont.)
• Multiprocesamiento asimétrico (asymetric multiprocessing)
• A cada procesador se le asigna una tarea específica y un procesador maestro
(master) controla el sistema y el resto de procesadores esperan por las
instrucciones del maestro o tienen tareas predefinidas
• Se establece una relación maestro-esclavo (master-slave)
• El procesador maestro planifica y asigna el trabajo para los procesadores
esclavos
• Multiprocesamiento simétrico (SMP, symetric multiprocessing):
• Es el tipo de sistemas más común, en el que cada procesador puede realizar
todas las tareas dentro del SO.
• SMP implica que todos los procesadores son iguales entre sí (peers), y no se
establece ninguna relación del tipo maestro-esclavo
• El beneficio de este modelo es que muchos procesos pueden ejecutarse
simultáneamente (paralelismo real) sin verse afectada significativamente su
rendimiento. Implica, sin embargo, un cuidadoso control de la E/S para
garantizar que los datos llegan al procesador adecuado
• Una tendencia reciente en el diseño de las CPUs, son los procesadores
multinúcleo, que salvando consideraciones de diseño a nivel arquitectónico,
se comportan como un sistema multiprocesador
14
29/09/2014
ARQUITECTURA DE COMPUTADORES
Clusters de computación
• Los clusters reúnen múltiples CPUs para realizar algún trabajo de computación
• La diferencia con los sistemas multiprocesadores radica en que un cluster está
formado por dos o más sistemas individuales, acoplados conjuntamente
• La definición más general de un cluster es que los ordenadores “agrupados”
comparten un almacenamiento y están enlazados vía una red de área local o una
interconexión más rápida
• Los clusters se utilizan para proporcionar un servicio de alta disponibilidad (un
servicio que continuará ejecutándose incluso si uno o más sistemas del cluster
fallan).
• La alta disponibilidad se obtiene mediante redundancia
• Una porción de código se ejecuta en todos los nodos del cluster, de modo
que cada nodo puede monitorizar a uno o varios nodos del cluster
• Si la máquina monitorizada falla, la máquina que la monitoriza puede
tomar posesión de su almacenamiento y reiniciar las aplicaciones que
se estaban ejecutando en la máquina que falló
• Los clusters también pueden organizarse tanto asimétrica como simétricamente
15
29/09/2014
MONOPROGRAMACIÓN
Antes de continuar, el procesador debe esperar hasta que
la instrucción E/S termine
16
29/09/2014
MULTIPROGRAMACIÓN
MULTIPROGRAMACIÓN
17
29/09/2014
MULTIPROGRAMACIÓN
MULTIPROGRAMACIÓN
Requisitos: Intercambio
18
29/09/2014
MULTIPROGRAMACIÓN
Requisitos: tiempo compartido
• Utiliza la multiprogramación para gestionar varias tareas
interactivas.
• El tiempo del procesador se comparte entre los diversos
usuarios.
• Múltiples usuarios acceden simultáneamente al sistema
por medio de terminales.
Tiempo Compartido
Objetivo principal Minimizar el tiempo de respuesta
Origen de las instrucciones al SO Ordenes dadas en el terminal
19
29/09/2014
20
29/09/2014
Temporizadores
• Para prevenir bucles infinitos o la acaparación indefinida de recursos
por parte de los procesos, el SO hace uso de temporizadores
• Fijar el temporizador para generar interrupción, después de un tiempo
dado
• El sistema operativo decrementa periódicamente el contador
• Cuando el contador llega a cero, generar interrupción
• Prepararse para retomar el control antes de que se dispare el proceso
de planificación o terminar el programa que supera el tiempo asignado
ELEMENTOS PRINCIPALES
1 Los procesos.
2 La gestion de memoria.
3 La seguridad y la proteccion de la informacion.
4 La planicacion y la gestion de recursos.
5 La estructura del sistema.
21
29/09/2014
GESTIÓN DE PROCESOS
Un proceso es un programa en ejecución. Es también la unidad de trabajo dentro
del sistema. Un programa es una entidad pasiva, mientras que un proceso es una
entidad activa
Los procesos necesitan recursos para llevar a cabo su tarea
• CPU, memoria, E/S, ficheros
• Inicialización de datos
La terminación de un proceso implica “reclamarle” cualquier recurso reutilizable
que tuviera
Un proceso mono-hilo (single-threaded process) tiene un único contador de
programa (program counter) indicando la dirección de la siguiente instrucción a
ejecutar
• Los procesos ejecutan las instrucciones secuencialmente, una cada vez, hasta
completar su ejecución
Un proceso multi-hilo (multi-threaded process) tiene un contador de programa por
hilo
Un sistema típico, puede tener muchos procesos en ejecución, unos de usuario y
otros del propio sistema, ejecutándose concurrentemente en una o más CPUs
• La concurrencia se consigue multiplexando (compartiendo) las CPUs disponibles
entre los procesos/hilos en ejecución
ACTIVIDADES DE LA
GESTIÓN DE PROCESOS
• El sistema operativo es responsable de las siguientes
actividades, relacionadas con la gestión de procesos:
• Crear y eliminar tanto procesos de usuario como del sistema
• Suspender y reanudar procesos
• Proporcionar mecanismos para la sincronización de procesos
• Proporcionar mecanismos para la comunicación entre
procesos
• Proporcionar mecanismos para manejar inter-bloqueos
(deadlock)
22
29/09/2014
PROCESOS
GESTIÓN DE MEMORIA
Todos los datos deben estar en memoria antes y después de
su procesamiento
Todas las instrucciones deben estar en memoria para
ejecutarlas
La gestión de memoria determina qué es lo que está o no en
memoria con el fin de
• Optimizar la utilización de la CPU y la respuesta del
computador a los usuarios
Actividades propias de las gestión de memoria son:
• Llevar cuenta de qué partes de memoria se están usando
actualmente y por parte de quién
• Decidir qué procesos (o partes de ellos) y datos se mueven
dentro y fuera de la memoria
• Asignar y liberar espacio de memoria según las necesidades
23
29/09/2014
GESTIÓN DE MEMORIA
24
29/09/2014
SUBSISTEMA DE E/S
Uno de los propósitos fundamentales del SO es ocultar al
usuario las particularidades de los dispositivos hardware
El subsistema de E/S es responsable de:
• Gestión de memoria de la E/S incluyendo la utilización de
buffers (almacenar datos temporalmente mientras se están
transfiriendo), utilización de cachés (almacenar parte de los
datos en medios de almacenamiento más rápidos para
aumentar el rendimiento) o el spooling (solapar la salida de
un trabajo con las entradas de otros trabajos)
• Proporcionar una interfaz general entre driver - dispositvo
• Proporcionar drivers (controladores software de dispositivo)
para dispositivos hardware específicos
25
29/09/2014
PROTECCIÓN Y SEGURIDAD
Protección – cualquier mecanismo para controlar el acceso de los
proceso o usuarios a los recursos definidos por el SO
Seguridad – defensa del sistema contra ataques internos y
externos
• Amplia gama de ataques, por ejemplo, denegación de servicio,
gusanos (worms), virus, robo de identidad, robo de servicio
Los sistemas generalmente lo que primero hacen es distinguir
entre usuarios, para determinar quién puede hacer qué
• Identidades de usuario (user IDs, security IDs) que incluyen nombre
e identificador numérico asociado (uno por persona)
• Entonces se asocia el UID con todos los ficheros y procesos de
aquellos usuarios que pueden fijar el control de acceso
• Un identificador de grupo (group ID) permite definir y controlar
conjuntamente a un conjunto de usuarios
• Una escalada de privilegios permite al usuario cambiar de
identificador efectivo con el fin de adquirir más derechos
ESQUEMA
26
29/09/2014
ENTORNOS DE COMPUTACIÓN
Computadora tradicional
• Este entorno se ha ido desdibujando con el paso del tiempo
• Entorno de oficina
• PCs conectados a una red o terminales conectados a un
mainframe o minicomputadora que proporcionaba
procesamiento batch y tiempo compartido (timesharing)
• Hoy en día, portales que permiten trabajo en red y acceso
a sistemas remotos y a los mismos recursos
• Home networks
• Antes como si fueran sistemas individuales, con conexión
vía modem
• Ahora sistemas interconectados con cortafuegos
ENTORNOS DE COMPUTACIÓN
Computación Cliente-Servidor
Simplificación del núcleo, al mover el código correspondiente de algunas
funcionalidades a capas superiores.
Acceso a los servicios mediante mensajes desde los procesos de
usuario (clientes) a los procesos que controlan los distintos servicios
(servidores) que se ejecutan en modo usuario.
El nucleo se limita a encauzar los mensajes.
Ejemplos: UNIX moderno, Linux
Nos ofrece las siguientes ventajas:
Facilidad de mantenimiento, debido a la modularizacion de los servicios.
Robustez, al ejecutarse los procesos de servicio en modo usuario: un
servicio puede dejar de funcionar sin que todo el sistema tenga que
interrumpir.
Extension natural del modelo a sistemas distribuidos..
27
29/09/2014
28
29/09/2014
Fin Te m a 1
29
29/09/2014
MEMORIA CACHÉ
Principio importante, empleado en múltiples niveles de un
ordenador (a nivel hardware, del sistema operativo y del
software)
La información “en uso” se copia temporalmente desde un
almacenamiento más lento a otro más rápido
La caché comprueba primero, si la información necesitada ya
está en la caché:
• Si así es, la información es usada directamente desde la caché
(ganancia en rapidez)
• Si no, los datos se copian a la caché y se utilizan allí
La memoria caché es menor que el almacenamiento para el que
se quiere acelerar su acceso
• La gestión de la caché es un problema de diseño importante
• En especial, lo referido al tamaño de la caché y la política de
reemplazo
RENDIMIENTO DE VARIOS
NIVELES DE ALMACENAMIENTO
30
29/09/2014
FUNCIONES COMUNES DE
LAS INTERRUPCIONES
La interrupción transfiere generalmente el control a la rutina de
servicio de interrupción (interrupt service routine), a través del vector
de interrupciones (interrupt vector), que contiene las direcciones de
todas las rutinas de servicio
La arquitectura de interrupciones debe guardar la dirección de la
instrucción interrumpida
Las interrupciones entrantes se desactivan (se inhiben) cuando se
está procesando otra interrupción con el fin de evitar interrupciones
perdidas (lost interrupts)
Una excepción (trap) es una interrupción generada vía software y
que puede deberse a un error o una petición de usuario
Se dice que sistema operativo está dirigido por las interrupciones
(interrupt driven).
31
29/09/2014
MANEJO DE INTERRUPCIONES
ESTRUCTURA DE E/S
Después de que una operación de E/S comienza, el control retorna al
programa de usuario sólo una vez que se complete
• La instrucción wait, “para” a la CPU hasta la siguiente interrupción
• Bucle de espera activa (wait loop)
• Como mucho, sólo una petición de E/S está pendiente en un instante dado, ya
que no hay procesamiento de E/S simultáneo
Después del comienzo de la E/S, el control retorna al programa de usuario se
esperar por la terminación de la E/S
• Llamada al sistema (System call) – se solicita al sistema operativo permitir al
usuario esperar por la terminación de la operación de E/S
• La tabla de estado de dispositivos (device-status table) contiene una entrada
para cada dispositivo de E/S, indicando su tipo, dirección y estado
• El sistema operativo, a través de la entrada de dispositivos de E/S, determina
el estado del dispositivo y modifica la entrada de la tabla para incluir la
interrupción
32
29/09/2014
33
29/09/2014
34