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
OBJ ET I VOS
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
EST RU CT U RA DE LOS SI ST EM AS
INFORMÁTICOS
Los sistemas informáticos están caracterizados grosso modo
por cuatro componentes
•
Hardware – proporciona los recursos básicos de computación
al sistema
•
CPU (Central Processing Unit), memoria, dispositivos E/S
•
Sistema Operativo
•
Controla y coordina el uso del hardware entre varias
aplicaciones y usuarios
•
Programas de Aplicación – definen el modo en que los
recursos del sistema se utilizan para resolver los problemas de
computación de los usuarios
•
Procesadores de texto, compiladores, navegadores web,
sistemas de bases de datos, videojuegos
EST RU CT U RA DE LOS SI ST EM AS
INFORMÁTICOS
DEFI N I CI ÓN ¿QU É ES U N SO?
• Programa que controla la ejecución de
los programas de aplicación:
•
Acceso eficiente a recursos compartidos
limitados.
• Actúa como interfaz entre las
aplicaciones del usuario y el hardware:
•
Simplifica la labor del programador.
DEFINICIÓN DE SISTEMA OPERATIVO
(DESDE UN PUNTO DE VISTA DEL USUARIO)
La percepción de un ordenador por parte de un usuario depende de la interfaz empleada:
• En un ordenador personal (PC, Personal Computer) el SO está diseñado fundamentalmente para mejorar su facilidad de uso, en menor medida para obtener un buen rendimiento y, prácticamente, sin tener en cuenta la utilización de los recursos (cómo compartir recursos hw y sw) [centrado en un único usuario, no en el sistema]
• En un sistema mainframe o minicomputador, el SO se diseña para maximizar la utilización de los recursos [cada usuario su parte equitativa de los recursos]
• En un sistema basado en estaciones de trabajo (workstations) conectadas a servidores, el SO se diseña para lograr un balance adecuado entre la usabilidad individual y la utilización de los recursos
• En los “ordenadores de bolsillo” (handheld computers) el SO está diseñado para alcanzar una buena usabilidad individual y cierto rendimiento en el consumo de energía
DEFINICIÓN DE SISTEMA OPERATIVO
(DESDE UN PUNTO DE VISTA DEL SISTEMA)
Un sistema operativo es un programa que administra/gestiona el hardware de un ordenador [gestor de recursos]
Un sistema operativo es un programa que proporciona el entorno adecuado para la ejecución de otros programas de aplicación [programa de control]
Un sistema operativo es un programa que media entre el usuario y el hardware de un ordenador [máquina extendida]
Genéricamente, el diseño de un sistema operativo persigue:
• Hacer que un ordenador sea más práctico o fácil de utilizar por parte de los usuarios (por ejemplo, ordenadores personales – personal computers -, “ordenadores de bolsillo” – handheld computers)
• Utilizar eficientemente los recursos de un sistema informático (por ejemplo, mainframes)
DEFINICIÓN DE SISTEMA OPERATIVO
(DESDE EL PUNTO DE VISTA DEL SISTEMA)
[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
DEFINICIÓN DE SISTEMA
OPERAT IVO (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
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.
SERV ICIOS 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.
SERV I CIOS DE UN SO
6 Contabilidad:
• Recoger estadísticas.
• Supervisar su rendimiento.
• Utilizado para anticiparse a las mejoras futuras.
• Adaptabilidad: interfaces adaptativas.
ESTRUCTURA DE COMPUTADORES
(ARRANQUE DEL ORDENADOR)
El programa de inicialización (bootstrap program) se
carga cuando se enciende o se reinicia el ordenador
•
Típicamente se encuentra almacenado en la memoria
ROM o EPROM, lo que generalmente se conoce como
firmware
•
El programa de inicialización es responsable de:
•
Inicializar todos los componentes hw del sistema
•
Cargar el núcleo (kernel) del sistema operativo
desde su localización en disco hacia memoria
principal y comenzar su ejecución
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
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
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
Otro criterio para clasificar los dispositivos de almacenamiento es la volatilidad o no volatilidad de los mismos.
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)
E/S dirigida por interrupción
•
Al iniciarse la operación de E/S (transferencia), el controlador
SW (driver) carga los registros adecuados del controlador
HW
•
Durante la operación (transferencia), el controlador HW, en
función de la operación solicitada, transfiere la información
desde (hacia) el dispositivo hacia (desde) su búfer local
•
Una vez completada la operación (transferencia), el
controlador HW informa de este hecho al controlador SW, a
través de una interrupción.
ESTRUCTURA DE COMPUTADORES
(ESTRUCTURA DE E/S)
E/S basada en DMA (Direct Memory Access)
•
La E/S dirigida por interrupciones es adecuada para mover
pequeñas cantidades de información, pero no es adecuado para
operaciones de E/S que impliquen la transferencia de grandes
bloques de datos, como la E/S a disco
•
DMA es una técnica de estructura de computadores que:
•
Una vez establecidos los valores de los buffers, y registros del
controlador HW,
•
El controlador HW de dispositivo transfiere un bloque completo de
datos, directamente, desde/hacia sus buffers hacia/desde
memoria, sin intervención de la CPU
•
Sólo se genera una interrupción por bloque (en lugar de una
interrupción por byte) para informar al driver del dispositivo que la
operación se ha completado
•
Durante el tiempo que hay transferencia de datos entre el
controlador de dispositivo y memoria, la CPU está libre para
ejecutar otras instrucciones
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
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
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
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
Un SO proporciona el entorno en el cual se ejecutan los programas, y soportan la capacidad de multiprogramación (multiprogramming), o capacidad para ejecutar concurrentemente varios programas a un mismo tiempo [concurrencia]
• La multiprogramación es necesaria en aras de la eficiencia
• Un simple usuario no puede mantener la CPU y los dispositivos de E/S ocupados todo el tiempo
• Cómo se consigue soportar la multiprogramación: solapando en el tiempo las operaciones (tanto de CPU como de E/S) de varios programas cargados en memoria [grado de multiprogramación]
• El SO elige uno de los programas (trabajo), y lo ejecuta hasta que realiza una operación de E/S, momento en que tendría que esperar a completar la operación.
• En ese momento, el SO elige a otro programa (trabajo) y le cede el control de la CPU, y así sucesivamente.
Los sistemas multiprogramados proporcionan un entorno adecuado para utilizar eficazmente los recursos, pero no soportan la interacción del usuario
Los sistemas de tiempo compartido (timesharing) o multitarea (multitasking) son una extensión lógica de los sistemas multiprogramados,
• Y se basan en que la CPU cambie frecuentemente de trabajo
• Si la frecuencia de cambio de trabajo es tal que se consiga un tiempo de respuesta reducido (típicamente, menor que 1s) los usuarios tienen la sensación de poder interactuar con sus trabajos
Así pues, los SO de tiempo compartido permiten que muchos usuarios compartan simultáneamente el ordenador, dando la apariencia de interacción o multitarea
• Cada usuario tiene al menos un programa en ejecución en memoria proceso
• Si varios trabajos están listos para ejecutarse al mismo tiempo planificación de la CPU
• Si los procesos no caben en memoria (principal), el mecanismo de intercambio (swapping) los mueve dentro y fuera según sea necesario
• La memoria virtual permite la ejecución de procesos que no estén completamente cargados en memoria
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
M ON OPROGRAM ACI ÓN
MULT IPROGRAMACIÓN
Cuando un trabajo necesite esperar una E/S, el
procesador puede cambiar a otro trabajo
Ejemplo de multiprogramación con dos programas
MULT IPROGRAMACIÓN
MULT IPROGRAMACIÓN
Requisitos: Cambio de contexto
MULT IPROGRAMACIÓN
MULT IPROGRAMACIÓ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.
Multiprogramacion por lotes frente a tiempo compartido
Multiprogramacion por lotes
Objetivo principal Maximizar la utilizacion del procesador
Origen de las instrucciones al SO Instrucciones de un lenguaje de control
de trabajos incluidas en el trabajo
Tiempo Compartido
Objetivo principal Minimizar el tiempo de respuesta
Origen de las instrucciones al SO Ordenes dadas en el terminal
OPERACIONES DEL SISTEMA OPERATIVO
Sistema Operativo dirigido por interrupciones
•
Si no hay ningún proceso que ejecutar, ningún dispositivo de E/S
al que atender y ningún usuario al que responder …
•
… un SO debe permanecer inactivo (idle), esperando a que
ocurra algún evento o suceso.
•
Pues bien, los sucesos casi siempre se señalizan mediante la
ocurrencia de una interrupción HW o una excepción (interrupción
SW o trap)
•
Las excepciones son interrupciones software generadas como
consecuencia de:
•
Errores en un programa (divisiones por cero, accesos inválidos a
memoria, etc.)
•
Solicitudes específicas por parte de los programas para que se
realice un servicio del SO (llamadas al sistema)
Operación en modo dual
•
Dado que SO y usuarios comparten recursos HW y SW, se
necesita garantizar que un error en un programa no afecta a otros
•
Para asegurar la correcta ejecución del SO, es imprescindible
poder distinguir entre la ejecución de código del sistema
operativo (seguro) y código del usuario (potencialmente inseguro)
•
La forma habitual de conseguir esta diferenciación es que el HW
permite diferenciar como mínimo dos modos de operación:
•
modo usuario (user mode) con un conjunto restringido de
instrucciones, y
•
modo núcleo (kernel mode) o modo supervisor, del sistema, o
privilegiado, con acceso a todas las instrucciones de la CPU
•
El HW de la máquina soporta un bit de modo, que mantiene en
todo momento el modo de ejecución actual: 0 (kernel) ó 1
(usuario)
OPERACIONES DEL SISTEMA OPERATIVO
Operación en modo dual (cont.)
• El sistema arranca siempre en modo kernel. Una vez cargado (por parte del programa de inicialización) y en ejecución el SO, se ejecutan las aplicaciones de usuario, cambiando a modo usuario
• Estando en modo usuario, se puede volver a modo kernel:
• Cuando se produce una interrupción, indicando que un dispositivo de E/S requiere la atención del SO
• Cuando se produce una excepción, indicando que
• Se ha producido un error irrecuperable en un programa de usuario
• El programa de usuario ha solicitado al SO que realice una tarea reservada del SO en nombre del programa de usuario, mediante una llamada al sistema (system call)
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
OPERACIONES DEL SISTEMA OPERATIVO
ELEM EN TOS PRI N CI PALES
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.
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
ACT I V I DADES DE LA
GEST I Ó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
PROCESOS
GEST I ÓN DE M EM ORI A
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
GEST I ÓN DE M EM ORI A
GESTIÓN DEL ALMACENAMIENTO
El SO proporciona una vista lógica y uniforme de los dispositivos de almacenamiento
• Abstrae las propiedades físicas a una unidad de almacenamiento lógica – el fichero (file)
• Cada medio es controlado por un dispositivo (i.e., unidad de disco, unidad de cinta)
• Las propiedades variables de éstos, incluyen la velocidad de acceso, la capacidad, la tasa de transferencia de datos, el método de acceso (secuencial o aleatorio)
Gestión del Sistema de Ficheros (file system)
• Los ficheros habitualmente se organizan en directorios
• El control de acceso en la mayoría de sistemas determina quién puede acceder a qué
• Las actividades del SO a este respecto incluyen:
• Creación y eliminación de ficheros y directorios
• Primitivas para manipular ficheros y directorios
• Hacer corresponder los ficheros sobre el almacenamiento secundario
GESTIÓN DEL ALMACENAMIENTO MASIVO
Habitualmente los discos para almacenar los datos no caben en memoria principal o los datos deben mantenerse por un “largo” periodo de tiempo
La gestión adecuada es de vital importancia
En su totalidad, la velocidad de la operación del sistema descansa sobre el subsistema de disco y sus algoritmos
Actividades del SO
• Gestión del espacio libre
• Asignación de espacio
• Planificación de disco (disk scheduling)
Algunos almacenamientos no necesitan ser rápidos
• El almacenamiento terciario incluye almacenamiento óptico, cintas magnéticas
• Aún así debe ser gestionado
• Una amplia gama que van desde medios WORM (write-once, read-many-times) hasta RW (read-write)
SU BSI ST EM A 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)
PROT ECCI ÓN Y SEGU RI DAD
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
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
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.
COMPUTACIÓN P2P: PEER-TO-PEER
Otro modelo de sistema distribuido
P2P no diferencia entre clientes y servidores
•
En su lugar, todos los nodos son considerados como iguales
entre sí (peers)
•
Cada uno puede actuar como cliente, servidor o ambos
•
Cada nodo debe unirse a una red P2P
•
Para ello, el nodo registra su servicio ante un servicio de
localización (lockup) centralizado sobre la red, o
•
Difunde (broadcast) peticiones para obtener un servicio y
responde a peticiones de servicio vía un protocolo de
descubrimiento (discovery protocol)
•
Ejemplos en esta categoría son los sistemas Napster y Gnutella
COMPUTACIÓN BASADA EN WEB
La Web se ha convertido en omnipresente (ubicua)
Los PCs son los dispositivos más corrientes
Muchos más dispositivos se han convertido en dispositivos de red
para permitir el acceso a la Web
Ha aparecido una nueva categoría de dispositivos para gestionar el
tráfico Web entre servidores similares: los balanceadores de carga
(load balancers)
Fin Te m a 1
M EM ORI A 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
MIGRACIÓN DEL ENTERO A
DESDE DISCO A REGISTRO
Un entorno multitarea debe ser cuidadoso con utilizar siempre
el valor más reciente, independientemente de en qué lugar esté
este almacenado, dentro de la jerarquía de almacenamiento
Un entorno multiprocesador debe proporcionar coherencia de la
caché a nivel de hardware, de modo que todas las CPUs tengan
en sus cachés el valor más recientes
En un entorno distribuido, la situación puede ser aún más
complicada, porque pueden existir varias copias de un dato
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
M AN EJ O DE I N T ERRU PCI ON ES
El sistema operativo preserva el estado de la CPU,
almacenando el valor de sus registros y del contador de
programa (program counter)
Determina qué tipo de interrupción ha ocurrido, mediante
una de estas dos técnicas:
•
Sondeo (polling)
•
Sistema vectorizado de interrupciones
Segmentos diferentes de código determinan que acción
debería tomarse para cada tipo de interrupción
EST RU CT U RA 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
DOS M ÉTODOS DE E/S
Síncrono
Asíncrono
ESTRUCTURA DEL ACCESO
DIRECTO A MEMORIA (DMA)
•
Se utiliza para dispositivos de E/S de alta velocidad, capaces
de transmitir información casi a la velocidad de los ciclos de
acceso a la memoria
•
El controlador de dispositivo transfiere bloques de datos desde
su buffer directamente a la memoria principal, sin la