Está en la página 1de 34

29/09/2014

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

ESTRUCTURA DE LOS SISTEMAS


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
• Usuarios
• Gente, máquinas, otros computadores

2
29/09/2014

ESTRUCTURA DE LOS SISTEMAS


INFORMÁTICOS

LOS 4 COMPONENTES DE UN SISTEMA


INFORMÁTICO

3
29/09/2014

DEFINICIÓN ¿QUÉ ES UN 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
• En los sistemas empotrados (embedded systems) los SO están diseñados
fundamentalmente para ejecutarse sin la intervención del usuario

4
29/09/2014

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
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)

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
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

Otro criterio para clasificar los dispositivos de almacenamiento es la volatilidad o


no volatilidad de los mismos.
• Un almacenamiento volátil pierde su contenido cuando se deja de alimentar el
dispositivo. En ausencia de baterías o sistemas de alimentación continua, los datos
deben escribirse en un medio no volátil (o persistente) para su salvaguarda

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)

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.
• El controlador SW devuelve entonces el control al sistema de
la operación, devolviendo bien los datos leídos, bien la
información de estado de la operación realizada.

12
29/09/2014

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
• 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

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.
• Las decisiones acerca qué trabajo elegir, en qué momento conmutar, etc.,
introduce la funcionalidad que se conoce como planificación de trabajos (job
scheduling)

15
29/09/2014

ESTRUCTURA DE LOS SISTEMAS OPERATIVOS


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

MONOPROGRAMACIÓN
Antes de continuar, el procesador debe esperar hasta que
la instrucción E/S termine

16
29/09/2014

MULTIPROGRAMACIÓN

Cuando un trabajo necesite esperar una E/S, el


procesador puede cambiar a otro trabajo
Ejemplo de multiprogramación con dos programas

MULTIPROGRAMACIÓN

El rendimiento mejora con el número de programas ejecutados

17
29/09/2014

MULTIPROGRAMACIÓN

Requisitos: Cambio de contexto

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.

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)
• Cada interrupción (hw o sw) tiene una rutina de servicio
específico que la trata

19
29/09/2014

OPERACIONES DEL SISTEMA OPERATIVO


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)

20
29/09/2014

OPERACIONES DEL SISTEMA OPERATIVO

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

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
• Salvaguardar los ficheros en medios de almacenamiento estables (no
volátiles)

24
29/09/2014

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)

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

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)
El uso de sistemas operativos como Windows 95 (que soportaban
originalmente el lado cliente), han evolucionado dentro de Linux y
Windows XP, para actuar como clientes y servidores

28
29/09/2014

Fin Te m a 1

JERARQUÍA DE LOS DISPOSITIVOS


DE ALMACENAMIENTO

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

El movimiento entre niveles de almacenamiento puede ser


explícito o implítico

30
29/09/2014

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
Se dice que sistema operativo está dirigido por las interrupciones
(interrupt driven).

31
29/09/2014

MANEJO DE INTERRUPCIONES

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

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

DOS MÉTODOS DE E/S


Síncrono Asíncrono

TABLA DE ESTADO DE DISPOSITIVOS

33
29/09/2014

ESTRUCTURA DEL ACCESO


DIRECTO A MEMORIA (DMA)

• Se utiliza para dispositivos deE/S de alta velocidad, capaces


de transmitir información casi a la velocidad de los ciclos de
acceso a la memoria
• El controlador de dispositivotransfiere bloques de datos desde
su buffer directamente a la memoria principal, sin la
intervención de la CPU
• Sólo se genera una interrupción por bloque, en lugar de una
interrupción por byte

34

También podría gustarte