Академический Документы
Профессиональный Документы
Культура Документы
Arquitectura de Computadores
Departament
p d’Informàtica de Sistemes i
Computadors
E.P.S.Alcoi
Bloque Temático I:
Sistemas Operativos
Objetivos
Bibliografía
Ö A. Silberschatz, P. B. Galvin.
“Sistemas Operativos”. 5ª ed.
Ö W. Stallings.
“Operating Systems”, 3ª ed.
Ö J. Carretero, P. de Miguel
“Sistemas Operativos. Una versión
aplicada”
Arquitectura de Computadores y Sistemas Operativos 4
Índice
ÖSistema operativo
Programa que actúa como interfaz entre los usuarios y el
hardware del computador.
U s u a rio 2
U s u a rio 1 U s u a rio n
co mp ilad or
ed itor sistem a de
ba ses de dat os
P r o g ra m a s d e l s is te m a y ap lic a c io n e s
S is te m a O p er a tiv o
H a r d w a re
• Comodidad
Facilitar el uso de la máquina a los usuarios, proporcionando
un entorno cómodo para el desarrollo y ejecución de
programas y para el acceso a los recursos de la máquina
• Eficiencia
El s.o. debe administrar los recursos (hardware y software)
de la máquina de forma que se aprovechen de la manera
más conveniente.
Contenidos
1990 OS/2
Windows
Windows NT
2000
• Tipos de sistema
¾Máquinas voluminosas operadas desde una consola
¾Teletipos, tarjetas y cintas perforadas
¾Sin sistema operativo
• Modo de operación
¾“Hands on”: el usuario hace las veces de operador delante de
la consola y tiene el control total sobre la máquina.
• Problemática
P bl áti
¾Mala utilización de recursos caros (CPU, E/S) debido al
elevado tiempo de desarrollo y preparación delante de la
consola.
¾Interfaz muy rudimentaria con el usuario.
cinta cinta
CPU
satélite satélite
li
cinta cinta
SAT SAT
DISCO
Impresora
Lectora
Tarjetas
CPU
Utilización
CPU
Arquitectura de Computadores y Sistemas Operativos 18
• Problemática
¾La ausencia de interacción usuario-máquina hace difícil la
elaboración y depuración de programas
• Objetivos
¾Tiempos de respuesta aceptables
¾Mejora de la interfaz usuario-máquina
¾Multitarea: un usuario puede ejecutar varios procesos
concurrentemente.
• Tipo de sistema
¾Minicomputadores: máquinas de arquitectura más sencilla
que los mainframes pero con mayor potencia de cálculo y
menos usuarios
¾Ejemplos: PDP-1 ... PDP-7 ... PDP-11
• Objetivos
¾Adaptar los objetivos de los sistemas de tiempo compartido
(MULTICS) a arquitecturas minicomputador
¾Utilización de lenguajes de alto nivel para el diseño del
sistema operativo
• Aportaciones de Unix
¾Diseño sencillo y potente. Dos únicas abstracciones: proceso
y fichero.
¾Introduce el modelo de sistema de ficheros actual.
¾Introduce un potente intérprete de órdenes.
¾Entorno de programación muy completo
completo.
¾Base para el desarrollo de la primera red de computadores y
TCP/IP.
¾Introduce el concepto de sistema abierto.
• Tipo
Ti de
d sistema
i t
¾Máquinas basadas en microprocesadores. Inicialmente de
arquitectura muy sencilla y limitada, pero con una continua
evolución en potencia.
¾Interfaces usuario-máquina muy sofisticadas: ratones,
pantallas gráficas, etc.
¾Pensadas para un solo usuario.
• Objetivos
¾Sencillez y comodidad del usuario: contrasta con los
primeros sistemas, donde los altos precios imponían la
optimización en la utilización de recursos.
• Características
C t í ti primeros
i sistemas
i t (MS DOS CP/M,
(MS-DOS, CP/M ...))
¾Poco más que un sistema de ficheros y un cargador.
• Sistemas distribuidos
Permiten el acceso a recursos remotos de manera transparente
(obviando el hecho de la distribución). Proporcionan entornos de
programación distribuida y acceso transparente a bases de datos
remotas
remotas.
• Sistemas multimedia
Sistemas que incorporan interfaces audiovisuales.
¾Desarrollo de nuevas interfaces usuario-máquina.
¾Desarrollo de protocolos de transmisión en tiempo real.
Arquitectura de Computadores y Sistemas Operativos 26
• Micronúcleos
Núcleos
úc eos de ssistema
ste a ope
operativo
at o co
con uuna
a funcionalidad
u c o a dad mínima
a
sobre los que desarrollar el resto del sistema como una
aplicación de usuario.
Contenidos
Ö Gestión de procesos
Es importante diferenciar entre proceso y programa:
• Programa: Lista de instrucciones
instrucciones. Ente pasivo
pasivo. Se almacena en
ficheros.
• Proceso: Ejecución de un programa. Ente activo. Requiere que el
programa se cargue previamente en memoria.
Compilación Enlace
programa programa programa
fuente objeto ejecutable
proceso
Biblioteca de
módulos
objeto programa
ejecutable
• Problemática:
¾Ejecución concurrente: Simular la ejecución paralela de
varios programas sobre un único procesador (repartiendo para
ello el tiempo del procesador entre los procesos).
¾Planificación de procesos: Determinar a qué proceso se le
asigna el procesador en cada instante.
• Funciones:
¾Creación y eliminación de procesos.
¾Comunicación y sincronización de procesos.
Ö Gestión de la memoria
• Está asociada a la gestión de procesos:
¾ Para ejecutar un proceso es necesario asignarle memoria y cargarlo en ella
¾ Cuando finaliza su ejecución, la memoria debe ser liberada.
• Problemática
¾ Aislamiento del proceso: Cada proceso debe tener una zona de memoria
independiente.
¾ Asignación de la memoria: Hay que llevar el control de las zonas de memoria
libres y ocupadas y la zona de memoria asignada a cada proceso.
¾ Memoria virtual: Técnica que permite direccionar la memoria desde un punto
d vista
de i t ló
lógico,
i sin
i ddepender
d d dell ttamaño
ñ o lla ubicación
bi ió dde lla zona d
de memoria
i
que finalmente se asigne al proceso.
• Funciones:
La gestión de memoria es transparente al programador: la asignación y la
liberación se hacen automáticamente con la creación y eliminación de
procesos.
Ö Gestión de ficheros
• Fichero:
Ab t
Abstracción
ió para definir
d fi i una colección
l ió de
d iinformación
f ió no volátil.
látil S
Su
objetivo es proporcionar un modelo de trabajo sencillo con los
discos.
• Problemática:
¾Organización del sistema de ficheros: directorios
¾Asignación de espacio en disco a la información (de manera no
necesariamente contigua).
¾G tió d
¾Gestión dell espacio
i lib
libre y ocupado
d en di
disco.
¾Protección.
• Funciones para la gestión de ficheros:
¾Creación y eliminación de ficheros y directorios.
¾Manipulación de ficheros y directorios (lectura, escritura, copia, ...).
Ö Gestión de la red
Comprende varios niveles:
¾Manejadores (drivers) de tarjetas de red.
Ö Protección y seguridad
Mecanismo para permitir o denegar el acceso de un proceso de
un usuario determinado a un recurso ((ficheros,, dispositivos
p de
E/S).
• Problemática:
¾Diseño de un modelo y una política de protección para definir qué
accesos son legales y cuáles son ilegales.
¾Implementación de un mecanismo ejecutivo que vigile el
cumplimiento de las reglas de protección definidas.
¾Seguridad: Mecanismo para garantizar la privacidad de la
información frente a ataques intencionados por parte de intrusos.
Muchos de ellos se basan en técnicas para autenticar usuarios y
codificación criptográfica.
• Funciones:
¾Funciones para definir “propietarios” de recursos o niveles de
protección.
Arquitectura de Computadores y Sistemas Operativos 36
Contenidos
Controlador de memoria
Memoria
Interrupción
supervisor usuario
trap al sistema
operativo (error de MEMORIA
No
direccionamiento)
Sí
< +
dirección
120900 300040
Registro Registro
límite base
Llamadas al sistema
Contenidos
ÖConcepto
• Es el método utilizado por un proceso de usuario para solicitar
servicios al sistema operativo
• Por tanto, el conjunto de llamadas al sistema define:
¾El conjunto de servicios básicos que proporciona el sistema operativo
¾La interfaz entre un proceso y el sistema operativo.
ÖImplementación
• Habitualmente toma la forma de una excepción (trap) a una posición
específica del vector de interrupciones (interrupción software)
• Normalmente se proporciona una interfaz como funciones de biblioteca de
lenguajes de programación que ocultan el trap y dan la apariencia de
llamadas a procedimientos o funciones predefinidas.
Arquitectura de Computadores y Sistemas Operativos 51
Llamada al
Memoria principal
Sistema Operativo
² Procedimiento Modo supervisor o kernel
± Servidor
Contenidos
ÖConcepto
• Utilidades del sistema operativo que se ejecutan como
procesos de usuario y proporcionan un entorno más cómodo
cómodo.
• Son programas escritos en un lenguaje de programación (como C)
que realizan llamadas al sistema.
ÖClasificación
• Intérpretes de órdenes: sh, ksh, bash
• Tratamiento de ficheros y directorios: mkdir,, cp,
p, mv,, ls,, etc.
• Filtros: grep, sort, head, tail, etc.
• Desarrollo de programas: editores, compiladores, ensambladores,
etc.
• Sistemas de ventanas: X11
• Comunicaciones: mail, ftp, rlogin, etc.
Arquitectura de Computadores y Sistemas Operativos 57
ÖIntérprete de órdenes
• Es la interfaz p
primaria entre el usuario y el sistema
operativo.
• Es un programa que lee de su entrada estándar una orden
introducida por un usuario, la analiza y la ejecuta.
• En la mayoría de sistemas operativos, el intérprete de
órdenes es un programa que se ejecuta como un proceso
de usuario
usuario.
• Ejemplos: el Shell de Unix y el COMMAND.COM de MS-
DOS
• Ofrecen dos tipos de órdenes: externas e internas
ÖÓrdenes externas
• El intérprete
p de órdenes crea un p
proceso p para ejecutar
j la
orden. De esta forma, la orden es en realidad cualquier
fichero ejecutable.
• Ejemplo: cp f1 f2
ÖÓrdenes internas
• El intérprete de órdenes ejecuta él mismo la orden. Es decir
el código que ejecuta la orden forma parte del propio
intérprete.
• Ejemplo: cd /home
Contenidos
ÖSistema operativo
Programa que actúa como interfaz entre los usuarios y el
h d
hardware d
dell computador.
t d
ÖObjetivos:
• Comodidad:
Facilitar el uso de la máquina a los usuarios, proporcionando
un entorno cómodo para el desarrollo y ejecución de
programas y para el acceso a los recursos de la máquina.
• Eficiencia:
f
El sistema operativo debe administrar los recursos
(hardware y sofware) de la máquina de forma que se
aprovechen de la manera más conveniente.
ÖConcepto de proceso:
Existen diferentes visiones complementarias del
concepto de proceso:
• Programa en ejecución.
• Unidad de asignación de recursos.
• Proceso como procesador virtual.
programa
Biblioteca de
ejecutable
módulos
objeto
Tiempo
de CPU
P1
Memoria Tabla de
descriptores
ficheros
Otros
atributos
ÖEstructura de un proceso
Proceso P0
Proceso P0
ÖEstados de un proceso
Al ejecutar un proceso éste va cambiando de estado. El estado
de un proceso se define
f como el comportamiento que presenta
en un instante dado:
• Activo: El proceso se puede ejecutar. No hay impedimentos en
asignarle alguna CPU.
¾Ejecución: El proceso tiene asignada una CPU, las instrucciones se
están ejecutando.
¾Preparado: El proceso puede ser ejecutado pero está esperando que
se le asigne una CPU libre
libre. Puede haber varios procesos en este
estado.
• Suspendido: No puede ser ejecutado porque el proceso se
encuentra esperando un evento como:
¾ la finalización de una operación de E/S (una lectura de teclado)
¾ la comunicación con otro proceso, etc.
Arquitectura de Computadores y Sistemas Operativos 71
Proceso terminado
por otro proceso
ACTIVO
Terminación
Admitido
Elegido Planificador
NUEVO TERMINADO
EN
PREPARADO EJECUCIÓN
Expulsión
ÖPlanificador
Elemento del sistema operativo que determina a qué
proceso se le asigna un determinado recurso (p. e.
CPU) en cada instante de tiempo, de acuerdo con
alguna política.
En el caso de que el recurso a asignar sea la CPU se
distinguen entre tres planificadores:
• Planificador a largo plazo.
• Planificador a medio plazo
• Planificador a corto plazo.
Planificador a
Proceso largo plazo Expulsión
nuevo
Cola de procesos Planificador a Proceso
esperando ejecución corto plazo terminado
Cola de procesos
preparados CPU
Planificador a
medio plazo Cola de procesos
parcialmente
ejecutados
Cola de procesos
Recursos E/S esperando E/S
Colas
…
Cola de procesos
Suceso esperando suceso
8 Conceptos de planificación
8.- planificación.
9.- Criterios de planificación.
10.- Algoritmos de planificación.
11.- Evaluación de Algoritmos.
ÖCriterios de planificación
Algunos de los criterios y características que un planificador debe
conseguir son:
• Utilización: Los recursos se han de mantener tan ocupados como sea
posible.
¾Tiempo_recurso_ocupado / Tiempo_total
• Rendimiento: Maximizar el número de tareas procesadas por unidad
de tiempo.
¾Número_de_trabajos_terminados / Tiempo_total
• Tiempo de retorno: Tiempo que tarda en ejecutarse un proceso.
¾Tiempo de salida - Tiempo de entrada = ∑ TCPU + ∑ TE/S + ∑ TColas
CPU E/S CPU E/S CPU CPU E/S CPU E/S CPU
CON MULTIPROGRAMACIÓN
Utilización CPU = 100%
Se intercalan ráfagas de CPU con ráfagas de E/S Productividad = 2 trabajos /6
=00.33
33
Proceso P0 Tiempo de retorno = (5 + 6)/2
= 5.5
CPU E/S CPU E/S CPU Este representa un caso
Proceso P1 extremo. En el caso de TCPU
<< TE/S la utilización de la
CPU E/S CPU E/S CPU CPU sería < 100%
ÖObjetivo
Decidir a cuál de los procesos que están en la cola de
procesos listos se le asignará la CPU.
ÖClasificación de algoritmos de planificación:
• Por orden de llegada (FCFS).
• Circular (RR, round-robin)
• Por prioridades
¾Sin expulsión
p ((“Non p
preemptive”)
p ) / Con expulsión
p
(“Preemptive”)
¾Estáticos / Dinámicos
• Combinación de algoritmos: Clases de prioridades.
0 7 8 12 16
P1 P2 P3 P2 P4 P1
0 2 4 5 7 11 16
P1
P2
P3
P4
ÖPlanificación SJF/SRTF
Aunque no se conoce la longitud de la siguiente ráfaga se puede
predecir su valor esperando
p p que
q sea de longitud
g similar a las
anteriores.
ÖEstimación del siguiente intervalo de CPU
Se utiliza la media exponencial:
T n+1 = α tn + (1 - α) Tn
• tn: tamaño real del n-ésimo intervalo de CPU
• Tn: Tamaño estimado del n-ésimo intervalo de CPU.
• α : coeficiente exponencial 0 < α < 1
• Caso α = 1, los datos históricos son irrelevantes y sólo tiene
importancia la ráfaga más reciente de CPU. T n+1 = tn
• Caso α = 0, la historia reciente no tienen efecto, se supone que las
condiciones actuales son transitorias. T n+1 = Tn
• Es habitual que α = 1/2, por lo que la historia reciente y antigua se
ponderan de igual manera.
12
Puesto que tanto (1 - α) como α
son menores o iguales que 1 10
cada término sucesivo tiene
8
longitud de ráfaga
Ejemplo de 4
promedio 2
exponencial para
α = 1/2, y T0= 10
tiempo
Ráfaga de CPU: 6 4 6 4 13 13 13
Predicción: 10 8 6 6 5 9 11
Arquitectura de Computadores y Sistemas Operativos 98
P1 P2 P3 P2 P4 P1
0 2 4 5 7 11 16
P1
P2
P3
P4
ÖEjemplo:
P ro ceso s T . L leg ad a D u ració n
ÖPlanificación circular P1 0 16
P2 0 3
Quantum q=4 P3 0 11
Diagrama de Gantt
P1 P2 P3 P1 P3 P1 P3 P1
0 4 7 11 15 19 23 26 30
Cronograma por procesos
P1
P2
P3
ÖPlanificación circular
ÖValor del “quantum” de tiempo
• Para q grandes: el algoritmo degenera en un algoritmo
FCFS.
• Para q pequeños: sobrecarga del sistema -> q ha de ser
grande respecto al tiempo necesario para el cambio de
contexto, sino la sobrecarga introducida es muy alta.
Regla práctica: El 80% de los intervalos de CPU han de ser
inferiores al “quantum”
quantum de tiempo
tiempo.
ÖPlanificación circular
ÖPropiedades:
• Equitativo.
• El tiempo de espera máximo está limitado por (n -1) q, antes
de recibir su siguiente cuanto de tiempo (en un ciclo)
• El tiempo de retorno medio varía con el cuanto de tiempo.
• En general es peor que el del algoritmo SRTF. Mejora si un
porcentaje alto de trabajos acaban antes de que acabe el
cuanto de tiempo (de
( ahí la regla práctica anterior))
ÖEjemplos de algoritmos de
planificación entre colas:
• Prioridades estáticas:
á Procesos
FCFS (prio. 10)
Los procesos en cola con Sistema
menor prioridad no se
Usuarios
ejecutan mientras haya PRIO (prio. 8)
privilegiados
procesos en cola con
mayor prioridad. Procesos
RR (prio. 6)
Posibilidad de inanición. Interactivos
• Cuotas de tiempo: Cada Procesos
cola
l está
tá asignada
i d a un SJF (prio
(prio. 4)
Por Lotes
porcentaje del tiempo de
CPU. Ejemplo: el 80% a
Colas de procesos preparados
trabajos interactivos y el
20% a trabajos por lotes.
RR [q=16] (prio. 8)
FCFS (prio. 6)
t10 I/O
ÖAlgoritmo del sistema
operativo
P1 t11
• Round Robin (RR)
cuanto = 2
t12
P2 t20
0 5
Arquitectura de Computadores y Sistemas Operativos 112
Núcleo
_
Núcleo
tn1 _
tn4 Núcleo
tn2 _
tn3
tn1 tn2
Threads a nivel Threads de usuario tn1 tn3 tn2
de núcleo Threads híbridos
Arquitectura de Computadores y Sistemas Operativos 113
0 1 3 4 6 7 8 11
Núcleo
tn1 tn2 tn3 tn4 tn1 tn2 tn4
t10
t11 t20
I/O t12
t10
P1 P2
P1 t11
Núcleo
t12 P2 t20 _
0 1 2 3 0 5 tn1 tn4
tn2
tn3
Arquitectura de Computadores y Sistemas Operativos 114
t10
t10 I/O t11 t20
t12
P1 P2
P1 t11
0 1 2 3 0 5
tn1 tn2
0 1 3 5 7 8 9 10 11
Núcleo
tn1 tn2 tn3 tn1 tn2 tn3 tn2
t10
t11 t20
t12
t10 I/O
P1 P2
P1 t11
0 1 2 3 0 5
tn1 tn3 tn2
Resumen
Anotar el
avance del
tiempo
Pasar a preparado Finalizar el
al proceso Pasar a
Si tiempo límite proceso en Crear hijo. Resolver la
que esperaba el suspendido al
excedido: Hijo a llamada al
fin de la E/S ejecución proceso en
Proceso en preparado sistema
ejecución
ejecución
a preparado
Planificador:
selección del próximo
proceso
Anexo I: Interrupción Hw
#include <stdio.h>
#include <dos.h>
#define TRUE 1
#define FALSE 0
void open_intserv(void);
void close_intserv(void);
void interrupt far intserv(void);
Anexo I: Interrupción Hw
void main(void)
{
clrscr();
outportb(DATA,0xff);
p _intserv();
open ();
while(!kbhit())
{
if(int_occurred)
{
printf("\n INTERRUPCIà generada");
int_occurred=FALSE;
}
}
close_intserv();
}
Anexo I: Interrupción Hw
void open_intserv(void)
{
disable();
oldfunc=getvect(intlev);
setvect(intlev, intserv);
outportb(PIC1,(inportb(0x21) & ~0x80)); //Habilito la IRQ7 en el PIC1
outportb(CONTROL, inportb(CONTROL) | 0x10); //Habilita IRQ a trav‚s de ACK
// Cuando ~ACK, se genera IRQ
enable();
}
void close_intserv(void)
{
disable();
setvect(intlev, oldfunc);
outportb(PIC1, (inportb(PIC1) | 0x80)); //Inhabilito la IRQ7
outportb(CONTROL, inportb(CONTROL) & ~0x10); //inabilita IRQ a través de ACK
enable();
}
Anexo I: Interrupción Hw
OpenCL (Open
Computing Languge)
OpenCL (Open
Computing Languge)
• Se adapta automáticamente a la
potencia de procesamiento
disponible en cada uno de los
procesadores gráficos
Posibilidad de ejecutar
Windows de forma nativa