T3 Introducción A Los SO
T3 Introducción A Los SO
T3 Introducción A Los SO
ÍNDICE
1. INTRODUCCIÓN........................................................................................................ 3
SO POR SUS SERVICIOS .................................................................................................. 4
SO POR SU ESTRUCTURA ................................................................................................ 6
1. Introducción
Por ejemplo, no tenemos por qué saber exactamente en qué parte del disco
duro tenemos guardado cada documento que hemos creado, ya que es el SO el que se
encarga de hacerlo.
3
Introducción a los SO
4
Introducción a los SO
5
Introducción a los SO
SO por su estructura
6
Introducción a los SO
2. Funciones del SO
En concordancia con la estructura por niveles del SO, es posible analizar las
funciones principales del mismo. Algunas de las funciones principales de un SO son:
• Gestión de procesos.
• Gestión de memoria.
• Gestión de los dispositivos de E/S.
• Gestión del sistema de archivos.
• Gestión de la red.
• Protección.
Gestión de procesos
7
Introducción a los SO
Implementación
Cada vez que un programa se convierte en proceso, es decir, cada vez que se
ejecuta, además de ubicarse en memoria las instrucciones que permiten su ejecución, se
le asocia una estructura de datos. Esta estructura de datos es única para cada proceso, y
lo identifica de forma inequívoca, en ella se almacena información necesaria sobre el
proceso, para asegurar una correcta ejecución. A esta estructura de datos se le conoce
con el nombre de Bloque de Control de Procesos o PCB.
8
Introducción a los SO
Estados
Suspendido
Planificación de procesos
Una CPU no puede ejecutar dos o más procesos a la vez. Dada la elevada
rapidez a la que se ejecutan los procesos, el usuario aprecia que los procesos se ejecutan
simultáneamente, aunque la CPU los ejecute secuencialmente. Para dar la apariencia de
ejecución simultánea de varios procesos, el tiempo de CPU se debe repartir entre los
procesos a ejecutar, de modo que cada proceso tendrá disponible un intervalo de tiempo
9
Introducción a los SO
de la CPU durante el cuál podrá ejecutarse. Un proceso pierde la CPU debido a los
siguientes motivos:
CPU
Recursos
Algoritmos de Planificación
10
Introducción a los SO
11
Introducción a los SO
A X X X
B E X X X X X X
C E E E E E X X X X
D E E E E E E E X X X X X
E E E E E E E E E E E X X
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
A X X X
B E X X X X X X
C E E E E E E E X X X X
D E E E E E E E E E X X X X X
E E X X
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
• SRTF: es una versión del STF, pero en este caso se asignará la CPU a aquel
proceso que le quede menos tiempo de CPU para ejecutarse. Es un algoritmo
expulsivo.
12
Introducción a los SO
A X X X
B E X E E E E E E X X X X X
C X X X X
D E E E E E E E E E X X X X X
E X X
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
P4 P3 P2 P1
A X X E E X
B X X E E E X X E E E E E E X X
C E X X E E E E X X
D E E E X X E E E E E E X X X
E E E E E E X X
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Tme = (2 + 9 + 5 + 9 + 5) / 5 = 6 Tmr = (5 + 15 + 9 + 14 + 7) / 5 = 10
13
Introducción a los SO
A X X E E E E E E E E X
B X X X X X X
C E E E E E E E X X X X
D E E E E E E E E E X X X X X
E X X
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
14
Introducción a los SO
Ejercicios
i) Un sistema tiene los siguientes recursos: una CPU, dos discos y una
impresora. Existen dos tipos de trabajos según las necesidades de utilización
de los recursos:
15
Introducción a los SO
• RR con q = 2
• Colas multinivel con realimentación, donde cada cola se gestiona como
un RR de q = 2i, y la llegada de un proceso a una cola más prioritaria
nunca interrumpe la ejecución de un proceso.
16
Introducción a los SO
Un proceso de una cola (i) pasa a pertenecer a otra cola (i + 1) cuando agota
su quantum q sin finalizar su ejecución. La cola por la que entran los
procesos nuevos es la 0, siendo esta la más prioritaria.
C0 Æ q = 20 = 1
C1 Æ q = 21 = 2 CPU
C2 Æ q = 22 = 4
iv) Este algoritmo es una versión modificada del RR tradicional que da mejor
servicio a los procesos que ya se han ejecutado, durante un cierto periodo de
tiempo, que a los recién llegados.
17
Introducción a los SO
NUEVOS
ACEPTADOS RR q = 1 CPU
18
Introducción a los SO
• No comparten estado.
• Su ejecución es determinista, es decir la ejecución del mismo proceso con los
mismos datos produce los mismos resultados.
• Cada proceso avanza a un ritmo arbitrario.
Esta fase de ejecución del proceso es lo que se conoce como sección crítica:
aquella en la que el SO tiene que sincronizar los procesos para asegurar una ejecución
ordenada.
19
Introducción a los SO
Otro ejemplo puede ser un programa que accede a una variable de memoria y
modifica su contenido. Supongamos que ese programa necesitara ese valor
posteriormente. Si, entre tanto, la CPU asigna su tiempo de ejecución a un proceso
nuevo, y este necesita tomar el valor de esa misma variable para modificarlo, cuando el
primer proceso vuelva a ejecución no encontrará el valor deseado, y se producirán
conflictos y errores en la ejecución de los procesos.
20
Introducción a los SO
mientras que si tiene algún proceso, lo despierta, de modo que vuelve a recibir ciclos de
CPU y sigue su ejecución.
Interbloqueos
Imagina dos procesos que desean imprimir un gran archivo situado en una cinta
al mismo tiempo. El proceso A solicita en uso exclusivo la impresora mientras el
proceso B solicita el uso exclusivo de la cinta. El proceso A no puede comenzar la
impresión porque no tiene acceso a la cinta, pero no libera la impresora. Mientras tanto,
el proceso B no inicia la impresión ya que no tiene acceso a la impresora, pero no libera
la apropiación de la cinta. Se dice que los procesos se han bloqueado y permanecerá así
para siempre, en un bucle de espera infinita, si el SO no se encarga de solucionarlo.
21
Introducción a los SO
Gestión de memoria
Asignación contigua
0
SO
PROCESO A
(300K)
...
512K
22
Introducción a los SO
Particiones Fijas
SO
PROCESO A
(5K)
Bloque 8K
Fragmentación Interna
PROCESO B
Bloque 8K (8K)
...
23
Introducción a los SO
Particiones Variables
SO SO SO SO SO SO SO
FIN P1 P5 P5
P1 P1 P1
900K 900K
P4 P4 P4 P4
2160K FIN P2
P2
24
Introducción a los SO
Las estrategias más comunes para seleccionar una partición libre de un conjunto
de particiones disponibles son:
Las simulaciones han mostrado que tanto el primer ajuste como el mejor ajuste
son mejores que el peor ajuste en cuanto a la reducción del tiempo y de la utilización del
almacenamiento. Ni el primer ajuste ni el mejor ajuste son definitivamente superiores
uno respecto al otro en relación con la utilización del almacenamiento, pero por lo
general el primer ajuste es más rápido.
25
Introducción a los SO
SO SO
PROCESO A
PROCESO A
(5KB)
(3KB) Fragmentación
Externa
PROCESO B
PROCESO B
(8KB)
PROCESO C
(5KB) Compactación
A partir de este momento, hay que cargar tres bloques de 500, 1200 y 200 (en
ese orden). Especificar el contenido de la memoria una vez satisfechas las
peticiones.
26
Introducción a los SO
Solución:
0 0 0 0
P1 P1
P4 P4
1500 1500
P1 P1
2000 2000
P5 P5
P4
2500
2700 2700
P6
2900 2900 2900 2900
P2 P2 P2 P2
P3 P3 P3 P3
Asignación no Contigua
Paginación
27
Introducción a los SO
Cada dirección generada por la CPU (dirección lógica) se divide en dos partes:
un número de página (p) y el desplazamiento dentro de la página (d). El número de
página se utiliza como índice en una tabla de páginas, que contiene la dirección base
para cada página, en memoria física. La dirección base se combina con el
desplazamiento para obtener la dirección física.
CPU p d m d
Memoria
Física
Tabla de Páginas
El tamaño de página, al igual que el tamaño de marco, viene definido por el HW.
Generalmente es una potencia de dos, lo que facilita la traducción de una dirección
lógica a un número de página y un desplazamiento. Si el tamaño de la página es de 2n
bits, los n bits de menor peso representan el desplazamiento en la página, y los bits
restantes el número de página.
28
Introducción a los SO
20 a
b
c
d
24 e
f
g
h
28
Memoria
física
29
Introducción a los SO
Segmentación
Se dividen los programas en bloques de tamaño variable llamados segmentos.
Las direcciones lógicas se descomponen en un número de segmento (s) y un
desplazamiento (d) dentro de él. El número de segmento se utiliza como índice en la
tabla de segmentos. Cada entrada de la tabla tiene una base (dirección de inicio del
segmento en memoria física) y un límite (longitud del segmento) para el segmento. El
desplazamiento de la dirección lógica debe estar entre 0 y el límite del segmento, si es
así se suma a la base del segmento para producir la dirección física.
Si
<
CPU s d +
Memoria
Física
Límite Base
Tabla de Segmentos
30
Introducción a los SO
1400
Segmento 0
2400
Segmento 3
Segmento 0 Límite Base
0 1000 1400
1 400 6300
3200
2 400 4300 Segmento 3
Segmento 4 3 1100 3200
4 1000 4700
Tabla 4300
Segmento 1 Segmentos Segmento 2
4700
Segmento 2 Segmento 4
5700
6300
Segmento 1
6700
Memoria
física
Segmentación Paginada
31
Introducción a los SO
≤ Si
CPU s d p d’
Límite Base
segment Tabla Memoria
Pág + m m d’ Física
Dirección Física
Tabla de Páginas
Tabla de Segmentos
Memoria Virtual
Si, en un momento dado, es necesario ejecutar una parte del programa que está
almacenada en memoria virtual (en el disco duro), esta pasará a memoria RAM para su
ejecución, y la parte del programa que estaba en memoria RAM se almacenará en el
disco duro.
Con esta técnica se consigue disponer, casi siempre, de RAM libre necesaria
para el propio procesador.
32
Introducción a los SO
Este esquema requiere que se añadan más bits a cada entrada de la tabla de
páginas: un bit válido-inválido. Cuando este bit está como válido, quiere decir que la
página se encuentra en memoria. La ejecución de un proceso continua normalmente
mientras se acceda a páginas residentes en memoria, en caso contrario se produce un
fallo de página y se ha de incorporar la nueva página a memoria desde el disco.
33
Introducción a los SO
Ejercicios
(A, 2900) (B, 1200) (A, 1850) (A, 3072) (B, 527)
(B, 2987) (A, 27) (A, 2000) (B, 4800) (B, 1500)
34
Introducción a los SO
Se pide:
{c, a, d, b, e, b, a, b, c, d}
• ÓPTIMO.
• FIFO.
• LRU.
iv) Sea un sistema de memoria virtual con paginación por demanda, en el que:
(A, 1035) (B, 312) (A, 530) (B, 780) (A, 600)
(A, 2000) (B, 1400) (B, 927) (A, 1030) (A, 1720)
Hiperpaginación o Thrashing
35
Introducción a los SO
Para evitar la hiperpaginación hay que ofrecer a un proceso todos los marcos
libres que necesite.
36
Introducción a los SO
Archivo Pagefile.sys
37
Introducción a los SO
38
Introducción a los SO
39
Introducción a los SO
recomiendan que esta zona sea del 20%, aproximadamente, del espacio del disco o el
doble de la capacidad de memoria RAM.
Protección de memoria
La protección del SO es una tarea que el SO tiene que realizar para que en
ningún momento se solapen unos procesos con otros en la memoria física del
ordenador.
40
Introducción a los SO
41
Introducción a los SO
Técnicas de transferencia
MEM
BUFFER
CPU
Cuenta
42
Introducción a los SO
Las extensiones se deben incluir en los nombres de archivo, ya que con ellas es
posible diferenciar rápidamente el tipo de archivo del que se trata. Algunas de las más
usuales en SO actuales son las siguientes:
43
Introducción a los SO
Tipos de archivos
44
Introducción a los SO
De ellos, los más importantes, son los que indican qué tipo de operaciones o qué
tipo de usuarios pueden usar los archivos.
45
Introducción a los SO
Sistemas de archivos
Un aspecto muy importante es la elección del tamaño del clúster, para esto hay
que entender que si el tamaño del clúster es muy grande, aún cuando el archivo sea de
un tamaño muy pequeño, se le asignará el clúster entero con el que se desperdiciará gran
parte de la capacidad del disco.
Por otra parte, si el tamaño del clúster es demasiado pequeño para almacenar un
archivo, harán falta muchos bloques con los que se producirá un retraso en la lectura del
archivo, al tener que localizar el disco todos los clusters que componen dicho archivo.
Una vez más, se ha de llegar a una solución de compromiso, eligiendo un tamaño de
clúster suficientemente pequeño para no desperdiciar capacidad de disco, pero
suficientemente grande como para no ralentizar en exceso la lectura de los archivos.
Diversos estudios realizados, indican que el tamaño medio de los archivos en sistemas
Unix y MS-DOS ronda el 1KB, así pues, son adecuados tamaños de bloque 512B, 1KB
o 2KB.
Si se elige un tamaño de clúster de, por ejemplo, 2KB en un disco cuyo sector
tiene 512B, cada clúster estará compuesto por cuatro sectores.
Para manejar los clusters asociados a cada archivo, se pueden utilizar varias
técnicas:
47
Introducción a los SO
consumida para almacenar la tabla no estará disponible para ser usada por
otros procesos.
48
Introducción a los SO
Atributos
Dirección clúster 1
Dirección clúster 2
Dirección clúster 3
Dirección clúster 4
...
Dirección clúster n
Las últimas entradas del i-nodo se reservan para cuando el archivo ocupa más
clusters de los que el i-nodo es capaz de almacenar, y pueden contener la dirección de
otro clúster en el que se guardan las demás direcciones de los clusters del archivo. A
este clúster se le llama clúster indirecto.
49
Introducción a los SO
FAT 16 y FAT 32
1 1
2 2
3 3
... ...
n n
16 bits 32 bits
1
Un cluster es una agrupación de sectores (unidad mínima del disco) y es la mínima cantidad de datos
que recupera un SO, además es potencia de 2, es decir un cluster pueden ser 1, 2, 4, 8, 16 ... sectores.
51
Introducción a los SO
El directorio raíz
Este índice es un tipo especial de carpeta que almacena las subcarpetas y
ficheros que componen cada carpeta de la región de datos. Cada entrada del directorio
contiene:
Región de datos
Donde se almacena los ficheros. Cada fichero ocupa un número entero de
clusters (uno o más). El tamaño de cualquier archivo o carpeta puede ser ampliado
siempre que queden suficientes clusters libres. Si un determinado cluster no se ocupa
por completo, su espacio restante se desperdicia.
De esto se deduce que cuanto más pequeño sea el cluster, menos espacio
desperdiciamos. Es más, lo ideal es que el cluster sea justo lo mínimo que físicamente
podemos obtener, es decir un sector (512 bytes).
F1 F1 F1 F1 F1 F1 F1
52
Introducción a los SO
Ventajas de FAT16:
Inconvenientes de FAT16:
Ventajas de FAT32:
Inconvenientes de FAT32:
NTFS
NTFS permite definir el tamaño del clúster, a partir de 512B (tamaño mínimo de
un sector) de forma independiente al tamaño de la partición.
2
Lista ordenada de todos los usuarios que pueden acceder al objeto (archivo, carpeta, ordenador, etc.) y
sus permisos de acceso. (Se verá en profundidad en temas posteriores).
53
Introducción a los SO
• Necesita para sí mismo una buena cantidad de espacio en disco duro, por lo
que no es recomendable su uso en discos con menos de 400 MB libres.
Este log guarda información acerca de los cambios. Si se trabaja con Bases de
Datos, el histórico es como una lista de tareas por hacer. Periódicamente las tareas
hechas son marcadas como terminadas y borradas del archivo histórico (esto es
necesario para evitar enormes archivos históricos.)
54
Introducción a los SO
Para terminar con este apartado comentar que los detalles de la implementación
de este sistema de archivos permanecen en secreto, de manera que los fabricantes y
distribuidores ajenos a Microsoft encuentran serias dificultades para proveer
herramientas que manejen NTFS, a pesar de lo cual existen varios proyectos de distintos
grados de madurez que permiten acceder para lectura e incluso escritura a particiones
NTFS desde GNU/Linux, y otros SO compatibles con este.
Ext2
55