Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas Operativos
Contenidos Objetivos
2.1 Componentes de un Sistema Operativo (SO) • Conocer los elementos necesarios para
multiprogramado. implementar la multiprogramación en un sistema
2.1.1 Sistemas multiprogramados y de tiempo operativo (SO).
compartido. • Conocer el concepto de proceso y el modelo de
2.1.2 Concepto de proceso. cinco estados de los procesos.
2.1.3 Modelo de cinco estados de los procesos. • Conocer el uso que realiza el SO del apoyo
2.2 Descripción y control de procesos. hardware e integrarlo en el modelo de cinco
2.2.1 Bloque de control de proceso (PCB). estados.
2.2.2 Control de procesos. • Conocer el concepto de hebra (hilo), su modelo
2.3 Hebras (hilos) de cinco estados y su utilidad.
2.4 Gestión básica de memoria. • Conocer la gestión básica de memoria que realiza
2.4.1 Paginación el SO.
2.4.2 Segmentación
Bibliografía básica
[Stal05] W. Stallings, Sistemas Operativos, Aspectos Internos y Principios de Diseño (5ª Edición).
Pearson Education, 2005
[Carr07] J. Carretero, F. García, P. de Miguel, F. Pérez, Sistemas Operativos (2ª Edición), McGraw-Hill,
2007
DEPARTAMENTO DE _______________________________________
3-Nov-2010 1
LENGUAJES Y SISTEMAS INFORMÁTICOS
Fundamentos del Software
1er Curso de Grado en Ingeniería Informática
– Multiprogramación
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
Fundamentos del Software
Monoprogramación
1er Curso de Grado en Ingeniería Informática
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
Fundamentos del Software
1er Curso de Grado en Ingeniería Informática
Multiprogramación
o El SO multiprogramación carga en memoria principal varios
programas y el distribuidor asigna el procesador a los procesos
preparados.
o Se aprovechan:
o Los tiempos muertos del procesador
o Los tiempos de acceso a periféricos
o El espacio de memoria principal no ocupado por procesos o por el SO.
o La ejecución se realiza de forma solapada en el tiempo
(concurrentemente) de modo que parece que los procesos se ejecutan
simultáneamente.
o En un intervalo de tiempo determinado se ejecutan alternativamente a
trozos varios procesos ubicados en la memoria principal.
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
Fundamentos del Software
2.1 Componentes de un SO multiprogramado Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 5
Fundamentos del Software
2.1 Componentes de un SO multiprogramado Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 6
Fundamentos del Software
2.1 Componentes de un SO multiprogramado Tema 2. Introducción a los Sistemas Operativos
Ejemplo de multiprogramación
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 7
Fundamentos del Software
2.1 Componentes de un SO multiprogramado Tema 2. Introducción a los Sistemas Operativos
Ejemplo de multiprogramación
Monoprogramación Multiprogramación
Uso del procesador 20% 40%
Uso de memoria 33% 67%
Uso de disco 33% 67%
Uso de impresora 33% 67%
Tiempo transcurrido 30 minutos 15 minutos
Productividad 6 trabajos/hora 12 trabajos/hora
Tiempo de respuesta medio 18 minutos 10 minutos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 8
Fundamentos del Software
2.1 Componentes de un SO multiprogramado Tema 2. Introducción a los Sistemas Operativos
• Un programa en ejecución.
• Una instancia de un programa ejecutándose en un ordenador
• La entidad que se puede asignar o ejecutar en un procesador.
• Una unidad de actividad caracterizada por un solo flujo de
ejecución, un estado actual y un conjunto de recursos del
sistema asociados.
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 9
Fundamentos del Software
Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
Fundamentos del Software
2.1 Componentes de un SO multiprogramado Tema 2. Introducción a los Sistemas Operativos
El bloque de control de proceso es una estructura de datos con campos para registrar los
diferentes aspectos de la ejecución del proceso y de la utilización de recursos
Identificador
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 11
Fundamentos del Software
2.1 Componentes de un SO multiprogramado Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 12
Fundamentos del Software
2.1 Componentes de un SO multiprogramado Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 13
Fundamentos del Software
2.1 Componentes de un SO multiprogramado Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 14
Fundamentos del Software
2.1 Componentes de un SO multiprogramado Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 15
Fundamentos del Software
Tema 2. Introducción a los Sistemas Operativos
Llamadas al Sistema
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 16
Fundamentos del Software
Tema 2. Introducción a los Sistemas Operativos
Llamadas al Sistema
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 17
Fundamentos del Software
2.1 Componentes de un SO multiprogramado Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 18
Fundamentos del Software
2.1 Componentes de un SO multiprogramado Tema 2. Introducción a los Sistemas Operativos
Nuevo Finalizado
Desasignación de CPU
Preparado Ejecutándose
Planificación
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 19
Fundamentos del Software
2.1 Componentes de un SO multiprogramado Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 20
Fundamentos del Software
Tema 2. Introducción a los Sistemas Operativos
Ejercicio
Dado un proceso que está en modo “ejecutándose” y
pretende acceder a una dirección de memoria fuera
del área asignada, lo cual sería un error en la ejecución, ¿a
qué modo pasaría dicho proceso? Razone la respuesta.
(a) Bloqueado.
(b) No cambia de modo.
(c) Finalizado.
(d) Preparado.
Sea un proceso que cambia de Ejecutándose a Bloqueado,
¿puede este cambio provocar un cambio de estado en
otros procesos? Si es así, ¿en qué casos?
e) Idem para el cambio de estado Bloqueado a Ejecutable.
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
Fundamentos del Software
2.2 Descripción y control de procesos Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 22
Fundamentos del Software
2.2 Descripción y control de procesos Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 23
Fundamentos del Software
2.2 Descripción y control de procesos Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 24
Fundamentos del Software
2.2 Descripción y control de procesos Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 25
Fundamentos del Software
Tema 2. Introducción a los Sistemas Operativos
Ejercicio
Diga cuales de las siguientes operaciones pueden realizarse
únicamente en modo supervisor, o modo kernel:
a) Consultar la hora del sistema.
b) Cambiar la fecha del sistema.
c) Generar una interrupción software.
d) Generar una interrupción.
e) Modificar la dirección de un vector de la tabla de
vectores de interrupción.
f) Deshabilitar las interrupciones.
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
Fundamentos del Software
2.2 Descripción y control de procesos Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 27
Fundamentos del Software
2.2 Descripción y control de procesos Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 28
Fundamentos del Software
2.2 Descripción y control de procesos Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 29
Fundamentos del Software
2.2 Descripción y control de procesos Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 30
Fundamentos del Software
2.3 Hebras (hilos) Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 31
Fundamentos del Software
2.3 Hebras (hilos) Tema 2. Introducción a los Sistemas Operativos
Concepto de Hebra
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 32
Fundamentos del Software
2.3 Hebras (hilos) Tema 2. Introducción a los Sistemas Operativos
Preparado Ejecutándose
Planificación
Fin de E/S Espera por
o suceso E/S o suceso
Bloqueado
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 33
Fundamentos del Software
2.3 Hebras (hilos) Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 34
Fundamentos del Software
2.3 Hebras (hilos) Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 35
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 36
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
Compilador Compilador
(y Encuadernador) (y Encuadernador)
X 0
Programa Programa
N Ejecutable M
Ejecutable
direcciones absolutas direcciones lógicas o relativas
Memoria Principal Memoria Principal
S.O. S.O. Cargador
O
Hardware
Cargador X Y
N Y+M
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 37
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
Reubicación estática
• El compilador genera direcciones lógicas (relativas) de 0 a M.
• La decisión de dónde ubicar el programa en memoria
principal se realiza en tiempo de carga.
• El cargador añade la dirección base de carga a todas las
referencias relativas a memoria del programa.
• Los programas no pueden ser movidos una vez iniciados 1000
Programa ejecutable
con direcciones lógicas MOVE A, 1100
0
1000 + M
MOVE A, 100
M
Memoria Principal
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 38
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
Reubicación dinámica
• El compilador genera direcciones lógicas (relativas) de 0 a M.
• La traducción de direcciones lógicas a físicas se realiza en
tiempo de ejecución luego el programa está cargado con
referencias relativas.
• Los programas pueden moverse en tiempo de ejecución
b
CPU
MOVE A, 100
Dirección
Lógica
R.Base + b+M
b Dirección
Física
Hardware
Memoria Principal
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 39
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 40
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
F ic h e r o E je c u ta b le
0 N ú m e r o m á g ic o
C a b e c e ra C o n t a d o r d e p r o g r a m a in ic ia l
....................
T a b la d e s e c c io n e s M a p a d e m e m o r ia
0
1000
C ó d ig o C ó d ig o
5000 4000
S e c c io n e s D a t o s c o n v a lo r in ic ia l D a t o s c o n v a lo r in ic ia l
5000
“0 ” D a t o s s in v a lo r in ic ia l
. . . . . . . . . . . . . . . .
8000
T a b la d e s í m b o lo s
A rg u m e n to s d e l p ro g ra m a
P ila
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 41
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 42
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 43
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
2.4.1 Paginación
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 44
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
2.4.1 Paginación
Las direcciones lógicas, que son las que genera la CPU se dividen en
número de página (p) y desplazamiento dentro de la página (d)
p d
Las direcciones físicas se dividen en número de marco (m, dirección base
del marco donde está almacenada la página) y desplazamiento (d)
m d
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 45
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
2.4.1 Paginación
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 46
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 47
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
Esquema de traducción
Dirección virtual
N. pagina DESPLAZAMIENTO
N. de marco protección
RBTP
m DESPLAZAMIENTO
Dirección real
m rw
TABLA DE PAGINAS
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 48
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 49
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 50
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
CPU p d m d
Acierto
TLB Memoria
Física
TLB
m
Fallo
TLB
Nº página
Nº marco Tabla de páginas
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 51
Fundamentos del Software
Tema 2. Introducción a los Sistemas Operativos
Ejercicio
Sitúese en un sistema paginado, en donde la memoria
real tiene un tamaño de 16 Mbytes, una dirección
lógica ocupa 32 bits, de los cuales los 22 de la
izquierda constituyen el número de página, y los 10 de
la derecha el desplazamiento dentro de la página.
Según lo anterior,
a) ¿Qué tamaño tiene cada página?
b) ¿En cuántos marcos de página se divide la memoria
física?
c) ¿Qué tamaño deberá tener el campo Número de
Marco de la Tabla de Páginas?
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
Fundamentos del Software
Tema 2. Introducción a los Sistemas Operativos
Ejercicio
11. Suponga que la tabla de páginas para el proceso actual se
parece a la de la figura. Todos los números son decimales, la
numeración comienza en todos los casos desde cero, y todas
las direcciones de memoria son direcciones en bytes. El
tamaño de página es de 1024 bytes.
¿Qué direcciones físicas corresponderán con cada una de las siguientes direcciones lógicas del proceso?
a) 999
b) 2121
c) 5400
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
Fundamentos del Software
Tema 2. Introducción a los Sistemas Operativos
Ejercicio
Suponga que un proceso emite una dirección
lógica igual a 2453 y que se utiliza la técnica de
paginación, con páginas de 1024 palabras
Indique el par de valores (número de página,
desplazamiento) que corresponde a dicha
dirección.
¿Es posible que dicha dirección lógica se traduzca
en la dirección física 9322? Razónelo.
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
2.4.2 Segmentación
S1 S1
S2 S4
S3
S3
S4 S1
Espacio de Memoria
usuario física
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 55
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
Tabla de Segmentos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 56
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 57
Fundamentos del Software
2.4 Gestión básica de memoria Tema 2. Introducción a los Sistemas Operativos
Esquema de traducción
Dirección virtual no
d>t
N. Segmento d
si Excepción
acceso indebido
RBTS D. base tamaño protección.
¿Acceso autorizado?
no
S’ t rw
si Excepción
violación de privilegios
TABLA DE SEGMENTOS
S’ + d
Dirección real
DEPARTAMENTO DE _______________________________________
LENGUAJES Y SISTEMAS INFORMÁTICOS 58
Fundamentos del Software
Tema 2. Introducción a los Sistemas Operativos
Ejercicio
Considere la siguiente tabla de segmentos: