0% encontró este documento útil (0 votos)
39 vistas

Iso 01

1) El documento introduce los sistemas operativos y sus características principales como la gestión de memoria, procesos, dispositivos y sistemas de archivos. 2) Explica que el sistema operativo facilita la comunicación entre el hardware, programas y usuario. 3) Describe las clasificaciones de los sistemas operativos según usuarios, procesos, procesadores y tiempo de respuesta, así como los estados de los procesos como listo, bloqueado y ejecución.

Cargado por

Alberto Aliaga
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
39 vistas

Iso 01

1) El documento introduce los sistemas operativos y sus características principales como la gestión de memoria, procesos, dispositivos y sistemas de archivos. 2) Explica que el sistema operativo facilita la comunicación entre el hardware, programas y usuario. 3) Describe las clasificaciones de los sistemas operativos según usuarios, procesos, procesadores y tiempo de respuesta, así como los estados de los procesos como listo, bloqueado y ejecución.

Cargado por

Alberto Aliaga
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 31

1.

TEMA 1: Introducción a los Sistemas Operativos

En este tema aprenderemos cuales son las características de los sistemas operativos,
como funcionan internamente, la gestión de memoria, de procesos, ejecución de
programas, administración de dispositivos.
Conoceremos los sistemas de ficheros, los diferentes tipos, como se gestionan y se
organizan.
Entenderemos la relación entre el sistema operativo, el hardware y los programas.

“El ordenador nació para resolver


problemas que antes no existían.”
Bill Gates

1.1 Introducción
Si pensamos en la sucesión de procesos que se ejecutan en una máquina desde que
la ponemos en marcha hasta que la apagamos, tratándose de un ordenador podríamos
decir que lo primero que se ejecuta cuando lo encendemos es la BIOS, es el primer
programa que se encarga de gestionar el arranque y reconocimiento de los dispositivos
del sistemas, después de este empieza a ejecutarse el sistema operativo, que arranca a
partir de una partición con un sector de arranque, que puede ser un disco duro, tarjeta de
memoria, pendrive, o incluso un CD o DVD si hablamos de un sistema operativo portable.
El sistema operativo estará presente entonces durante el arranque y funcionamiento
del sistema, como si de un proceso en segundo plano se tratase, de tal manera que el
resto de programas que se ejecuten funcionarán siempre sobre el sistema operativo, y
serán gestionados por este.
Para facilitar el uso del ordenador el sistema operativo proporciona un nexo común
entre el hardware y las aplicaciones, este nexo podría denominarse interfaz. Hablamos de
interfaz como el intermediario entre dos o varios elementos. Esto nos aporta
transparencia de cara al usuario y portabilidad entre diferentes sistemas y
configuraciones, ya que permite que los elementos de ambas partes se abstraigan de los
detalles de la comunicación.

1.1.1 Clasificación de los sistemas operativos


Podemos clasificar los sistemas operativos según:
● El número de usuarios:
○ Monousuario: Un sistema en el que solo existe un perfil de usuario. Un ejemplo
de este sería el sistema operativo: MS-DOS, PC-DOS, ...
○ Multiusuario: Un sistema capaz de reconocer y gestionar varios perfiles de
usuario, podemos iniciar sesiones en función de un perfil. Un ejemplo sería:
Linux, Windows 98 SE, Windows XP, BSD, Solaris, Unix, Windows NT ...

Implantación de Sistemas Operativos - Andrés Terol Sánchez -1-


TEMA 1: Introducción a los Sistemas Operativos
1.1 Introducción

● El número de procesos concurrentes:


○ Monotarea: Los sistemas monotarea son aquellos que sólo permiten una tarea
a la vez por usuario. Puede darse el caso de un sistema multiusuario y
monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada
uno de ellos puede estar haciendo solo una tarea a la vez. Ejemplo: MS-DOS
○ Multitarea: Un sistema operativo multitarea es aquél que puede ejecutar varios
procesos al mismo tiempo. Ejemplos: UNIX, Windows 95, Windows 98,
Windows NT, MAC-OS, OS/2, soportan la multitarea.
● El número de procesadores soportados:
○ Monoprocesador: Solo pueden ejecutarse en un sistema con un procesador, no
son capaces de usar varios procesadores. Ejemplo: DOS
○ Multiprocesador: Pueden ejecutarse y utilizar un sistema con varios
procesadores. Ejemplo: Windows 2000 Server, Linux, Windows XP, ...
● El tiempo de respuesta:
○ Sistema de tiempo compartido: Sistemas que permiten que varios usuarios
individuales interactúen con él “al mismo tiempo”, de forma que parezca que
está atendiendo exclusivamente a cada uno de ellos, aunque, en realidad, cada
tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que
el sentido temporal del usuario es mucho más lento que la velocidad de
procesamiento del ordenador, las operaciones de multitarea en tiempo
compartido parecen ser simultáneas. Ejemplos: Multics, OS/360 y DEC-10
○ Sistema de tiempo real: Son los que permiten al ordenador dar una respuesta
rápida (en tiempo real) de acciones en determinados procesos muy específicos
como control de tráfico aéreo, bolsas de valores, control de refinerías, etc...
Ejemplos: VxWorks, Solaris, Lyns OS y Spectra.

1.2 Gestión de procesos


Cuando hablamos de un proceso nos referimos a un programa en ejecución. Cuando
yo desde mi sistema operativo ejecuto un
Proceso 1 programa, el sistema operativo reserva un
área de memoria crea una imagen de este
Proceso 2 programa en la memoria RAM, y además
crea una una estructura para almacenar
información sobre la ejecución de este
programa, esta estructura es llamada
bloque de control (PCB - Process
Control Block). El sistema operativo
Área de gestiona la memoria dividiéndola en varias
procesos áreas, una de ellas es el área de procesos,
y otra el área de kernel. Veamos una figura
Nombre:Proceso1 que ilustra esto:
Área de Kernel Tamaño: 30
Propietario: user1 Por cada programa que lanzamos
tenemos su imagen en memoria y su
Nombre:Proceso2
Tamaño: 35 correspondiente bloque de control. La
Propietario: Sys imagen del proceso se crea en el área

Implantación de Sistemas Operativos - Andrés Terol Sánchez -2-


TEMA 1: Introducción a los Sistemas Operativos
1.2 Gestión de procesos

destinada a los procesos, y el bloque de control se almacena dentro del espacio del
núcleo o kernel del sistema. El PCB almacena la siguiente información:
● PID del proceso.
● Estado
● Contador de programa
● Registros de la CPU
● Información de planificación CPU
● Información E/S
Como vemos es una descripción de la ejecución del proceso en un momento dado,
como vemos tenemos uno de los datos del bloque que se llama Estado, cada sistema usa
sus propios estados para sus procesos, pero genéricamente nosotros vamos a manejar 5
estados diferentes: Listo, Bloqueado, Ejecución, Bloqueado y Suspendido, Listo y
Suspendido.

1.2.1 Estados de los procesos


Como hemos dicho en el apartado anterior vamos a manejar 5 estados para los
procesos:
● Listo: Un proceso estará en estado Listo cuando está preparado para continuar su
ejecución pero no se está ejecutando por causas ajenas a él, comenzará a
ejecutarse cuando el sistema operativo le de paso a ello.
● Bloqueado: Un proceso está en estado Bloqueado cuando no se está ejecutando, y
no podrá ejecutarse ni estar preparado para ello hasta que se resuelva la causa de
su bloqueo.
● Ejecución: Un proceso está siendo tratado por el procesador y está ejecutándose.
● Bloqueado y suspendido: Un proceso que estaba en estado Bloqueado y no se ha
resuelto aún su causa de bloqueo y ha pasado a la memoria secundaria (disco
duro, memoria virtual).

Implantación de Sistemas Operativos - Andrés Terol Sánchez -3-


TEMA 1: Introducción a los Sistemas Operativos
1.2 Gestión de procesos

● Listo y suspendido: Un proceso que estaba en estado de Listo, pero que aún no se
le ha asignado procesador y ha pasado a memoria secundaria.
Los tres primeros estados están en memoria primaria, mientras que los dos últimos
están en memoria secundaria. En la siguiente figura podemos observar como se
relacionan entre ellos:

Memoria Principal
Memoria Principal
Ejecución
Ejecución
D
B A

Bloqueado C
Bloqueado Listo
Listo
E

H
Memoria Secundaria
Memoria Secundaria

Bloqueado y suspendido F
Listo y suspendido
Bloqueado y suspendido Listo y suspendido

A) El proceso comienza a ejecutarse porque el sistema operativo le otorga el uso de


la CPU.
B) El proceso sufre un bloqueo y no puede continuar hasta que la condición de
bloqueo cambie. Esto puede ser causado por ejemplo porque el proceso requiera
alguna interrupción hardware, que un dispositivo esté listo, una pulsación de una
tecla, o el proceso necesita un recurso que está siendo usado por otro proceso,
etc...
C) La condición de bloqueo ha cambiado y se ha solucionado, entonces el proceso
para a estar listo para ejecutarse de nuevo, y se sitúa en la cola de procesos, y
comenzará a ejecutarse cuando el sistema operativo en base a la planificación de
procesos le de paso.
D) El sistema operativo estima que el proceso ha usado suficiente CPU durante
tiempo y expulsa al proceso.
E) El proceso lleva bloqueado mucho tiempo y el sistema determina que tiene que
pasar a memoria secundaria.

Implantación de Sistemas Operativos - Andrés Terol Sánchez -4-


TEMA 1: Introducción a los Sistemas Operativos
1.2 Gestión de procesos

F) El recurso ha sido liberado y pasa a estado de listo pero aún sigue en la memoria
secundaria.
G) Se ha liberado memoria principal y el proceso puede pasar a estado Listo en
memoria principal.
H) El proceso lleva mucho tiempo en la cola de planificación y el sistema determina
que necesita mas memoria principal y tiene que pasarlo a memoria secundaria.
Puede darse el caso de que dos procesos se queden bloqueado mutuamente, esto se
denomina bloqueo mutuo o deadlock que ocurre cuando dos procesos requieren los
recursos que está usando el otro. Supongamos el siguiente escenario:
● El proceso A está usando el recurso R1, pero requiere el recurso R2.
● El proceso B está usando el recurso R2, pero requiere el recurso R1.
Sino solucionamos esto ambos procesos quedarían bloqueados de manera indefinida.
El sistema operativo tiene soluciones para esto, de tal manera que usa la expropiación del
recurso para liberarlo y evitar el bloqueo, o la detención preventiva de uno de los
procesos.
Todo esto se puede entender perfectamente, pero, ¿como se comunica un recurso
hardware con el proceso?. Sencillamente esto se hace a través de interrupciones. Una
interrupción sería una linea eléctrica que se activa a través de la CPU, esta interrupción
provoca que la CPU deje de ejecutar lo que está haciendo y salte a otra zona de la
memoria. Esta zona de memoria es donde se cargan todas las interrupciones para cada
uno de los dispositivos, son trozos de código que gestionan los dispositivos y activan
estas lineas eléctricas, existe una rutina por cada línea de interrupción, en el momento
que se activa la CPU comenzará a ejecutar la rutina asociada a esa línea. Normalmente
estas líneas de interrupción están priorizadas de más a menos importancia.
También existe lo que se llama interrupciones software o llamadas al sistema que
sirven para que los procesos invoquen al sistema operativo interactuando con él y
requiriéndole servicios como ficheros, memoria, etc... Este tipo de interrupciones serán
abordadas más adelante cuando hablemos de ellas en el apartado de Entrada/Salida.

1.2.2 Planificación de procesos


Como hemos visto el sistema operativo va a ser quién otorga la CPU y los recursos a
los procesos, pero todo esto no puede ser de una manera aleatoria. Para ello cada
sistema va a establecer un sistema de Planificación o Scheduler. Para realizar la
planificación se va a servir de: una tabla de procesos, una cola de procesos y el bloque de
control del que hablamos anteriormente.
Existen diferentes políticas de planificación. Las que se van a abordar en este libro son
3: Round-Robin, FCFS (First Come, First Served), SJF (Short Job First).

1.2.2.1 FCFS (First Come – First Served)


El primero que llega se atiende primero. FCFS (First Come, First Served) por sus siglas
en inglés. Es un algoritmo que no usa expropiación, y que consiste en atender a los
procesos por estricto orden de llegada a la cola “Listo”. Cada proceso se ejecuta hasta
que termina, o hasta que hace una llamada bloqueante (de I/O), o sea, ejecuta su fase de
CPU completa. La gracia es que se trata de un algoritmo muy simple: la cola de “Listo” se
maneja como una simple cola FIFO (First In, First Out). El problema es que el algoritmo

Implantación de Sistemas Operativos - Andrés Terol Sánchez -5-


TEMA 1: Introducción a los Sistemas Operativos
1.2 Gestión de procesos

es bastante malo. Veámoslo con un ejemplo:


Tenemos 3 procesos: P1(con una duración de 24 milisegundos), P2(con una duración
de 3 ms) y P3(con una duración de 3 ms). Veamos dos planificaciones diferentes.

Planificación 1
PROCESO DURACIÓN TIEMPO DE ESPERA
P1 24 ms 0 ms
P2 3 ms 24 ms (0+24)
P3 3 ms 27 ms (0+24+3)

P1 P2 P3
0 24 27 30
Por tanto el tiempo promedio de espera es (0+24+27)/3 = 17 ms.
En cambio si cambiamos el orden de planificación.
Planificación 2
PROCESO DURACIÓN TIEMPO DE ESPERA
P2 3 ms 0 ms
P3 3 ms 3 ms (0+3)
P1 24 ms 6 ms (0+3+3)

P2 P3 P1
0 3 6 30
Por tanto el tiempo promedio de espera es (0+3+6)/3 = 3 ms.

1.2.2.2 SJN (Short Job First)


Este algoritmo selecciona al proceso con el próximo tiempo de ejecución más corto. Un
proceso corto saltará a la cabeza de la cola. La ejecución de un proceso consiste en
ciclos de ejecución de CPU y ciclos de espera por E/S. El algoritmo selecciona aquel
proceso cuyo próximo ciclo de ejecución de CPU sea menor. El problema está en conocer
dichos valores, pero podemos predecirlos usando la información de los ciclos anteriores
ejecutados.
El SJF es probablemente optimo pues da el mínimo tiempo promedio de espera. El
problema está en conocer la duración del próximo requisito de CPU para cada proceso.
Esta duración puede predecirse suponiendo que el próximo ciclo puede ser similar a los
anteriores.
Supongamos que tenemos los procesos: P1(6ms), P2(8ms), P3(7ms) y P4(3ms)
Planificación SJF
PROCESO DURACIÓN TIEMPO DE ESPERA

Implantación de Sistemas Operativos - Andrés Terol Sánchez -6-


TEMA 1: Introducción a los Sistemas Operativos
1.2 Gestión de procesos

P4 3 ms 0 ms
P1 6 ms 3 ms (0+3)
P3 7 ms 9 ms (0+3+6)
P2 8 ms 16 ms (0+3+6+7)

P4 P1 P3 P2
0 3 9 16 24
Por tanto el tiempo promedio de espera es (0+3+9+16)/4 = 7 ms.

1.2.2.3 Round-Robin
Una manera rápida de reducir la penalización que los procesos cortos sufren con FCFS
es usar expropiación basada en un reloj. Una interrupción de reloj es generada a
intervalos periódicos. Cuando ocurre la interrupción, el proceso en ejecución es colocado
en la cola de procesos listos y el próximo trabajo es seleccionado basado en el esquema
FIFO. A cada proceso se le da un trozo de tiempo.
La principal decisión de diseño que surge con Round Robin es el tamaño del trozo o
quantum. Si el quantum es muy corto, entonces los procesos se moverán a través del
sistema rápidamente. Por otro lado, hay un cierto overhead o desperdicio de tiempo
envuelto con el manejo de la interrupción de reloj y las funciones de planificación y
despacho. Por lo tanto quantum muy pequeños deberían evitarse. Una alternativa es usar
un quantum de tiempo que sea un poco más grande que el tiempo promedio requerido
para una interacción típica.
Round Robin es particularmente efectivo para sistemas generales de tiempo
compartido. Se implementa con una cola FIFO de procesos. Nuevos procesos son
agregados al final de la cola, y toma el proceso que se encuentra en la cabeza de la cola.
Actualiza el timer para que se interrumpa después del quantum de tiempo.
El desempeño de este algoritmo dependerá del tamaño del quantum. Si el quantum es
infinito entonces degenera en FCFS. Si el quantum es muy pequeño entonces Round
Robin es llamado compartición de CPU y en teoría parecería que cada proceso tiene su
propio procesador corriendo a 1/n la velocidad del procesador real (ineficiente).
Supongamos un quantum de 4 y que tenemos los procesos: P1(24ms), P2(3ms),
P3(11ms):
Planificación Round-Robin (Q=4)
PROCESO DURACIÓN TIEMPO DE ESPERA
P1 16 ms 14 ms (0+(11-4)+(19-15)+(26-23))
P2 3 ms 4 ms (0+4)
P3 11 ms 15 ms (7+(15-11)+(23-19))

P1 P2 P3 P1 P3 P1 P3 P1
0 4 7 11 15 19 23 26 30
Los cálculos que sacamos es para averiguar el tiempo promedio de espera, para ello
sumamos los tiempos de espera de cada proceso y los dividimos entre el total de

Implantación de Sistemas Operativos - Andrés Terol Sánchez -7-


TEMA 1: Introducción a los Sistemas Operativos
1.2 Gestión de procesos

procesos. En Round-Robin el tiempo de espera de cada proceso debemos calcularlo de la


siguiente manera, veamos como lo hacemos para el proceso P1:
P1 P2 P3 P1 P3 P1 P3 P1
0 4 7 11 15 19 23 26 30
En la barra de arriba he marcado en verde la ejecución del proceso P1 y el resto en
naranja. La primera vez el proceso P1 ha tenido que esperar 0 ms para ejecutarse, la
segunda vez ha tenido que esperar lo que dura P2 (3ms) y P3 (4ms) en ejecutarse, es
decir, un total de 7 ms, o lo que es lo mismo hacer el cálculo de 11-4=7ms, la tercera vez
que P1 se ejecuta ha tenido que esperar lo que tardaba P3 (4ms) en ejecutarse, es decir
19-15=4ms, y la cuarta vez que se ejecuta P1 y finaliza ha tenido que esperar de nuevo la
ejecución de P3 (3ms), es decir, 26-23=3ms, por tanto el tiempo de espera total de P1 es
0+7+4+3=14ms.
Veamos ahora P2:
P1 P2 P3 P1 P3 P1 P3 P1
0 4 7 11 15 19 23 26 30
Como vemos P2, sólo se ejecuta una vez, y lo hace después de la primera ejecución
de P1, por tanto ha tenido que esperar lo que dura la primera ejecución de P1, es decir, 4
ms.
Veamos ahora P3:
P1 P2 P3 P1 P3 P1 P3 P1
0 4 7 11 15 19 23 26 30
La primera vez que se ejecuta P3 lo hace en 7 ms, porque ha tenido que esperar a la
primera ejecución de P1 y P2, la segunda vez que se ejecuta debe esperar que se ejecute
P1 (4ms), es decir 15-11=4 ms, la tercera vez debe esperar a que se ejecute P1 (4ms) de
nuevo por tanto debe esperar 23-19=4 ms, por tanto el tiempo total de espera para este
proceso es 7+4+4=15 ms.
Por tanto el tiempo promedio de espera lo calculamos sumando los tiempos de espera
de todos los procesos que son (14+4+15)/3 = 11 ms.

Ejercicio de Auto-Evaluación A2.1: Realizar la planificación FCFS, SJF y Round Robin


para los siguientes procesos: P1(20ms), P2(10ms), P3(5ms), P4(2ms), P5(15 ms). Hacer
dos estimaciones para FCFS, una con el orden P1, P2, P5, P3, P4 y otra con P4, P3, P2,
P1, P5. Para la planificación Round-Robin usar Q=4. ¿Qué conclusiones sacas?.

Según lo visto anteriormente Round-Robin necesita parar un proceso y volverá a


continuar con él cuando le toque en la cola de planificación. Para realizar todo esto el
Sistema Operativo realiza algo que se denomina “Cambio de contexto”.
El Cambio de contexto se produce cuando el planificador cambia al proceso que esta
siendo ejecutado, para ello sigue los siguientes pasos:
1. El planificador decide expulsar al proceso
2. Almacena su estado en su bloque de control
3. Calcula el siguiente proceso que debe entrar

Implantación de Sistemas Operativos - Andrés Terol Sánchez -8-


TEMA 1: Introducción a los Sistemas Operativos
1.2 Gestión de procesos

4. Restaura el estado del proceso entrante


5. Continua la ejecución
En el estado del proceso se almacena una fotografía de todos los parámetros de este.
Destaca el valor del contador de programa que nos recordará por que dirección o
instrucción dejamos el proceso y los registros de la CPU que se restaurarán para
continuar ejecutando el proceso. El cambio de contexto es un proceso que lleva un
tiempo, por tanto no es gratuito, si realizamos un cambio de contexto continuo y en un
corto espacio de tiempo esto puede producir que desperdiciemos la mayor parte de la
CPU realizando estos cambios. Durante el tiempo que dura el cambio de contexto quién
lo ejecuta es el sistema operativo no los procesos.
Entonces, ¿como sabe el sistema operativo cuando tiene que realizar un cambio de
contexto?. El sistema operativo no se está ejecutando la mayor parte del tiempo, aunque
parezca lo contrario, el sistema operativo solo se ejecuta cuando se le llama y para ello se
usan las interrupciones. Por ejemplo, en Round-Robin se usa la interrupción del reloj.
Pero, ¿podemos influir en el planificador?. Sí, es posible. No se puede provocar que
dos procesos concurrentes se ejecuten siempre de la misma manera, pero existen
mecanismos externos para conseguir esto, se denominan IPC (Inter-Process
Comunication) que consisten, en general, en provocar bloqueos artificiales. Son muy
usados por los programadores mediante la sincronización de procesos y semáforos, de
manera que se priorizan unos procesos sobre otros.

1.3 Gestión de memoria


Es básica en cualquier computador o dispositivo para su correcto funcionamiento. En
ella se aloja todo el software, incluido el sistema operativo, normalmente solo aloja el
software activo (procesos). Los programas no activos están en memorias secundarias de
almacenamiento permanente. Es un recurso caro que se ha de gestionar con cuidado
para no desaprovecharlo. Otra cuestión que debemos tener en cuenta es que si un
proceso cambia de direcciones físicas continuamente, entonces las variables de nuestro
código cambian también, ¿como podemos direccionar variables que están cambiando de
lugar?. Para solucionar este y otros problemas introduciremos el concepto de memoria
virtual.

1.3.1 La memoria virtual


La memoria virtual es una técnica de gestión de la memoria que permite que el sistema
operativo disponga, tanto para el software de usuario como para sí mismo, de mayor
cantidad de memoria que la disponible físicamente. La mayoría de los ordenadores tienen
cuatro tipos de memoria: registros en la CPU, la memoria caché (tanto dentro como fuera
del CPU), la memoria RAM y el disco duro. En ese orden, van de menor capacidad y
mayor velocidad a mayor capacidad y menor velocidad:

Implantación de Sistemas Operativos - Andrés Terol Sánchez -9-


TEMA 1: Introducción a los Sistemas Operativos
1.3 Gestión de memoria

Precio, Velocidad
RegistrosCPU

Caché (L1,L2)

Memoria Principal (RAM)

Memoria Secundaria Capacidad


(HDD, pendrive,...)
Muchas aplicaciones requieren acceso a más información (código y datos) que la que
se puede mantener en memoria física. Esto es así sobre todo cuando el sistema operativo
permite múltiples procesos y aplicaciones ejecutándose simultáneamente. Una solución al
problema de necesitar mayor cantidad de memoria de la que se posee consiste en que
las aplicaciones mantengan parte de su información en disco, moviéndola a la memoria
principal cuando sea necesario. Cuando ejecutamos una aplicación se ejecuta en forma
de proceso, el cual es una imagen en memoria, esta imagen contiene de forma
organizada los siguientes aspectos:
Memoria ● Los datos del programa

Direcciones E/S ● Las instrucciones


● La pila y otros elementos

Espacio de A parte en la memoria tenemos:


procesos
● Una zona para los procesos de usuario
● Resto de zonas reservadas:
○ Sistema
Sistema Operativo ○ Entrada/Salida
Para cada proceso que lanzamos debemos crear una
Vectores de imagen y para cada imagen es necesario asignarle un
Interrupción espacio en el “espacio de procesos”.

Durante este proceso debemos garantizar los siguientes aspectos:


● Protección
● Movilidad de procesos
● Sobre-asignación de zonas externas (si es necesario)
Para ello usaremos la memoria virtual, donde la combinación entre hardware especial y
el sistema operativo hace uso de la memoria principal y la secundaria para hacer parecer
que el ordenador tiene mucha más memoria principal (RAM) que la que realmente posee.

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 10 -


TEMA 1: Introducción a los Sistemas Operativos
1.3 Gestión de memoria

Este método es invisible a los procesos. La cantidad de memoria máxima que se puede
hacer ver que hay tiene que ver con las características del procesador. Por ejemplo, en un
sistema de 32 bits, el máximo es 2 32, lo que da 4096 Megabytes (4 Gigabytes) de
memoria virtual. Todo esto hace el trabajo del programador de aplicaciones mucho más
fácil, al poder ignorar completamente la necesidad de mover datos entre los distintos
espacios de memoria.

Procesador La CPU envía direcciones


Virtuales a la MMU
CPU

La MMU envía direcciones Memoria


físicas a la memoria principal Principal
MMU

BUS

Aunque la memoria virtual podría estar implementada por el software del sistema
operativo, en la práctica casi siempre se usa una combinación de hardware y software,
dado el esfuerzo extra que implicaría para el procesador. Este hardware destinado a parte
de la gestión de la memoria virtual es la unidad de gestión de memoria (MMU – Memory
Management Unit) que permitirá realizar asignaciones entre ambos espacios, las
direcciones virtuales y las direcciones físicas, de tal manera que los procesos usarán
direcciones virtuales, a diferencia de la memoria y la CPU que usarán direcciones físicas.
A continuación analizaremos cada uno de los puntos que son necesarios para cumplir
las condiciones de ejecución de los procesos.

1.3.1.1 Asignación de memoria. Protección.


La memoria es compartida por el Sistema Operativo y por los procesos que hay en
ejecución, cada uno de estos procesos solo podrá hacer uso de su espacio o mapa
privado de memoria, de tal manera que ningún otro proceso deba interferir en él. Cuando
lanzamos un proceso, el Sistema Operativo va a asignar un espacio privado de memoria
para este proceso y se debe encargar lógicamente de que ningún otro proceso haga un
uso indebido de estas direcciones de memoria. Si se pone en marcha otro proceso, el
espacio en memoria que le será asignado nunca puede solaparse con estas direcciones
que ya están reservadas.

1.3.1.2 Asignación de memoria. Movilidad.


Los procesos entran y salen de memoria constantemente, y para ello usábamos el
PBC. Pero hay una cuestión importante y es que cada vez que solicitan ser ejecutados el
gestor de memoria los alojará en direcciones diferentes cada vez. Entonces nos surge
una pregunta... ¿como es posible direccionar variables o recursos si nuestro código
cambia de lugar?. La respuesta es sencillamente las direcciones virtuales.

1.3.1.3 Asignación de memoria. Sobre-asignación.


Como ya se ha hablado antes, la memoria es un recurso limitado y caro, así que la

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 11 -


TEMA 1: Introducción a los Sistemas Operativos
1.3 Gestión de memoria

pregunta que se hace cualquier programador es, ¿como puedo maximizar su uso si tengo
muchos procesos a la vez?. Como todos los procesos no pueden alojarse al mismo
tiempo en la memoria física, y sabemos que tampoco todos pueden ejecutarse a la vez en
el procesador, la solución consiste en dejar fragmentos de procesos en ejecución fuera de
la memoria física para dejar espacio a los que tienen que ejecutarse en ese momento.
Estos fragmentos se quedarán en memoria secundaria hasta que son requeridos por la
CPU, de tal manera que se van cargando a memoria física bajo demanda.
De tal manera que llegamos a la conclusión que mediante el direccionamiento virtual
conseguimos cumplir la protección y la movilidad, y para cumplir la Sobre-asignación
necesitaremos la Paginación y la Segmentación que son términos que forman parte de
la memoria virtual.

1.3.2 La paginación
La paginación es una técnica que divide a la memoria física en particiones de tamaño
fijo llamados marcos de página o frames. A su vez, el espacio de direccionamiento virtual
es divido en unidades fijas del mismo tamaño que los frames (page size) denominadas
páginas (pages). Las páginas tienen un tamaño que es potencia de 2 y, en general, son
desde 512 bytes a 16 Mbytes. De esta forma, la cantidad de memoria desperdiciada por
un proceso es el final de su última página, lo que minimiza la fragmentación interna y evita
la externa. En los sistemas que brindan paginación, la transferencia entre la memoria
principal y el disco es siempre en unidad de página. Cuando un proceso ejecuta sus
páginas son cargadas en los frames de memoria principal y en disco (sección de swap).
Los frames en el swap tienen el mismo tamaño que los frames de memoria principal.
En un momento cualquiera, la memoria se encuentra ocupada con páginas de
diferentes procesos, mientras que algunos marcos están disponibles para su uso. El
sistema operativo mantiene una lista de estos últimos marcos, y una tabla por cada
proceso, donde consta en qué marco se encuentra cada página del proceso. De esta
forma, las páginas de un proceso pueden no estar contiguamente ubicadas en memoria, y
pueden intercalarse con las páginas de otros procesos.
En la tabla de páginas de un proceso, se encuentra la ubicación del marco que
contiene a cada una de sus páginas. Las direcciones lógicas ahora se forman como un
número de página y de un desplazamiento dentro de esa página (conocido comúnmente
como offset). El número de página es usado como un índice dentro de la tabla de
páginas, y una vez obtenida la dirección del marco de memoria, se utiliza el
desplazamiento para componer la dirección real o dirección física. Este proceso se realiza
en una parte del computador específicamente diseñada para esta tarea, es decir, es un
proceso hardware y no software.
De esta forma, cuando un proceso es cargado en memoria, se cargan todas sus
páginas en marcos libres y se completa su tabla de páginas.
Veamos un ejemplo:
Número de Marco Programa.#página Dirección física
0 Programa A.0 1000:0000
1 Programa A.1 1000:1000
2 Programa A.2 1000:2000
3 Programa D.0 1000:3000

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 12 -


TEMA 1: Introducción a los Sistemas Operativos
1.3 Gestión de memoria

4 Programa D.1 1000:4000


5 Programa C.0 1000:5000
6 Programa C.1 1000:6000
7 Programa D.2 1000:7000

La tabla de arriba muestra una posible configuración de la memoria en un momento


dado, con páginas de 4Kb. La forma en que se llegó a este estado puede haber sido la
siguiente:
Se tienen cuatro procesos, llamados A, B, C y D, que ocupan respectivamente 3, 2, 2 y
3 páginas.
1. El programa A se carga en memoria (se le asignan los marcos 0, 1 y 2)
2. El programa B se carga en memoria (se le asignan los marcos 3 y 4)
3. El programa C se carga en memoria (se le asignan los marcos 5 y 6)
4. El programa B termina, liberando sus páginas
5. El programa D se carga en memoria (se le asignan los marcos 3 y 4 que usaba el
proceso B y el marco 7 que permanecía libre)
De esta forma, las tablas simplificadas de cada proceso se ven de esta forma:
Proceso A Proceso B Proceso C Proceso D
Página Dir. física Página Dir. física Página Dir. física Página Dir. física
0 1000:0000 - - 0 1000:5000 0 1000:3000
1 1000:1000 - - 1 1000:6000 1 1000:4000
2 1000:2000 2 1000:7000

Ahora consideremos qué sucede cuando un programa quiere acceder a su memoria. Si


el programa A contiene una referencia a la memoria con dirección 20FE, se realizará el
siguiente procedimiento. 20FE es 0010000011111110 en notación binaria (en un sistema
de 16 bit), y en el ejemplo se están usando páginas de 4Kb de tamaño. Cuando la
petición de la dirección de memoria 20FE es realizada, la Unidad de Gestión de memoria
(MMU) se ve de esta forma:
0010 000011111110
2 0FE
Número de página: 2
Posición de memoria dentro de la página: 0FE
Al usar páginas de 4096 bytes, todas las ubicaciones dentro de una página pueden ser
representadas por 12 bits, en el sistema binario (2 12=4096), lo que deja 4 bits para
representar el número de página. Si las páginas hubieran sido de la mitad del tamaño
(2048) se podrían tener 5 bits para el número de página, lo que significa que a menor
tamaño de página se pueden tener tablas con más páginas.
Con los cual las direcciones van a tener este formato:

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 13 -


TEMA 1: Introducción a los Sistemas Operativos
1.3 Gestión de memoria

Número de página Desplazamiento


m-n n

El tamaño de página es 2n.


Cuando el pedido de acceso a memoria es realizado, la MMU busca en la tabla de
páginas del proceso que realizó el pedido por la relación en memoria física. En nuestro
ejemplo, la página número 2 del proceso A corresponde al marco número 2 en memoria
física, con dirección real 1000:2000, por lo tanto, la MMU devolverá la dirección del marco
en memoria física, con el desplazamiento dentro de esa página: 1000:20FE.
Si una página buscada está marcada como no disponible (tal vez porque no está
presente en la memoria principal, pero sí en el área de intercambio), cuando la CPU
intenta referenciar una dirección de memoria en esa página, la MMU responde levantando
una excepción (comúnmente llamada fallo de página). Si la página se encuentra en el
espacio de intercambio, el sistema operativo invocará una operación llamada intercambio
de página, para traer a memoria principal la página requerida. Aunque el término sugiere
un mal funcionamiento, se trata de un procedimiento normal dentro de la marcha del
programa.
En resumen, el esquema general de direccionamiento virtual sería el siguiente:
Proceso X
10 direcciones por página MEMORIA

Página 2 Marco 5
Dir. Virtual Dir. Física
Marco 4
Página Desplazam Marco Desplazam Página 1
CPU Marco 3

Marco 2

Marco 1
Tabla de páginas Proceso X
Página 4 Marco 0
Página 1 Marco 3
Página 2 Marco 5
Página 3 X
Página 4 Marco 0

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 14 -


TEMA 1: Introducción a los Sistemas Operativos
1.3 Gestión de memoria

Ejercicio de Auto-Evaluación A2.2: Supongamos que tenemos un sistema de 16 bits,


y tenemos instalado en el equipo un total de 16 Kbytes de RAM. Nuestro Sistema
Operativo va a usar páginas y marcos de página de un tamaño de 2 Kbytes. Ejecutamos
2 procesos, un proceso A con un tamaño de 9 Kbytes y un proceso B con un tamaño de
6 Kbytes.

Tabla del proceso A Tabla del proceso B


Página 1 → Marco 2 Página 1 → Marco 4
Página 2 → Marco 0 Página 2 → Marco 7
Página 3 → Marco 1 Página 3 → Marco 5
Página 4 → Marco 7
Página 5 → Marco 3

Se pide lo siguiente:
a) ¿Cuánta memoria virtual podemos usar como máximo?
b) ¿Cuántas páginas podemos tener como máximo por proceso?
c) ¿Cuántos marcos de página va a tener la memoria física?
d) Suponiendo la tabla de páginas del proceso A y B. Traducir la dirección de
memoria 20FE para A y 10E2 para B. ¿Sacas alguna conclusión?.¿Cuál?.

Ejercicio de Auto-Evaluación A2.3: Supongamos que tenemos un sistema de 16 bits,


y tenemos instalado en el equipo un total de 32 Kbytes de RAM. Nuestro Sistema
Operativo va a usar páginas y marcos de página de un tamaño de 8 Kbytes. Ejecutamos
un proceso A con un tamaño de 41 Kbytes.

Tabla del proceso A


Página 0 → Marco 2
Página 1 → Marco 0
Página 2 → Marco 1
Página 3 → Marco 3
Página 4 → Marco 1
Página 5 → Marco 2

Se pide lo siguiente:
a) ¿Es posible ejecutar un programa mas grande que la RAM como en este
caso?. Justifica tu respuesta.
b) ¿Cuánta memoria virtual podemos usar como máximo?
c) ¿Cuántas páginas podemos tener como máximo por proceso?
d) Si el tamaño de página fuese de 16 Kbytes.¿Cuántas páginas podemos
tener como máximo por proceso?. ¿Qué conclusión sacas con respecto al
apartado anterior?. Justifica la respuesta.
e) ¿Cuántos marcos de página va a tener la memoria física?
f) Suponiendo la tabla de páginas del proceso A. Traducir la dirección de
memoria 6CD3 y después BE1A.

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 15 -


TEMA 1: Introducción a los Sistemas Operativos

1.4 Sistema de ficheros


El sistema de archivos o ficheros (en inglés:filesystem) es el componente del sistema
operativo encargado de administrar y facilitar el uso de las memorias periféricas, ya sean
secundarias o terciarias. Sus principales funciones son la asignación de espacio a los
archivos, la administración del espacio libre, y la administración del acceso a los datos
resguardados. Estructuran la información guardada en una unidad de almacenamiento
(normalmente un disco duro de una computadora), que luego será representada ya sea
textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas
operativos manejan su propio sistema de archivos.
Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso
a los datos como una cadena de bloques de un mismo tamaño, a veces llamados
sectores, usualmente de 512 bytes de longitud (también denominados clusters). El
software del sistema de archivos es responsable de la organización de estos sectores en
archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y
cuáles no han sido utilizados. En la práctica, un sistema de archivos también puede ser
utilizado para acceder a datos generados dinámicamente, como los recibidos a través de
una conexión de red (sin la intervención de un dispositivo de almacenamiento).
Los sistemas de archivos tradicionales proveen métodos para crear, mover, renombrar
y eliminar tanto archivos como directorios, pero carecen de métodos para crear, por
ejemplo, enlaces adicionales a un directorio o archivo (enlace duro en Unix) o renombrar
enlaces padres (".." en Unix).
El acceso seguro a sistemas de archivos básicos puede estar basado en los esquemas
de lista de control de acceso o capacidades. Las listas de control de acceso hace
décadas que demostraron ser inseguras, por lo que los sistemas operativos
experimentales utilizan el acceso por capacidades. Los sistemas operativos comerciales
aún funcionan con listas de control de acceso.
Para optimizar el rendimiento el sistema de ficheros crea una estructura sobre los
soportes usando un formato lógico. Esta estructura se construye grabando bytes sobre los
soportes. Generalmente esta forma de grabar puede ser magnética (HDD), eléctrica
(Chip), quemado laser (CD,DVD).... La creación de esta estructura implica una pérdida de
espacio y cada sistema de ficheros suele usar su propio formato: NTFS, FAT, Ext3, Ext4,
etc...

1.4.1 Particiones
Una partición de un disco duro es una división lógica en una unidad de
almacenamiento (por ejemplo un disco duro o unidad flash), en la cual se alojan y
organizan los archivos mediante un sistema de archivos. Existen distintos esquemas de
particiones para la distribución de particiones en un disco. Los más conocidos y
difundidos son MBR (Master Boot Record) y GPT (GUID Partition Table). Las particiones,
para poder contener datos tienen que poseer un sistema de archivos. El espacio no
asignado en un disco no es una partición, por lo tanto no puede tener un sistema de
archivos. Existen múltiples sistemas de archivos con diferentes capacidades: como FAT,
NTFS, FAT32, EXT2, EXT3, EXT4, Btrfs, FedFS, ReiserFS, Reiser4 u otros.
Los discos ópticos (DVD, CD) utilizan otro tipo de particiones llamada UDF (Universal
Disc Format) Formato de Disco Universal por sus siglas en inglés, el cual permite agregar

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 16 -


TEMA 1: Introducción a los Sistemas Operativos
1.4 Sistema de ficheros

archivos y carpetas y es por ello que es usado por la mayoría de software de escritura por
paquetes, conocidos como programas de grabación de unidades ópticas. Este sistema de
archivos es obligatorio en las unidades de (DVD) pero también se admiten en algunos
(CD)
En Windows, las particiones reconocidas son identificadas con una letra seguida por un
signo de doble punto (p.ej. C:\). prácticamente todo tipo de discos magnéticos y memorias
flash (como pendrives) pueden particionarse. En sistemas UNIX las particiones de datos
son montadas en un mismo y único árbol jerárquico, en el cual se montan a través de una
carpeta, proceso que sólo el superusuario (root) puede realizar.
El formato o sistema de archivos de las particiones (p. ej. NTFS) no debe ser
confundido con el tipo de partición (p. ej. partición primaria), ya que en realidad no tienen
directamente mucho que ver. Independientemente del sistema de archivos de una
partición (FAT, ext3, NTFS, etc.), existen 3 tipos diferentes de particiones:
● Partición primaria: Son las divisiones crudas o primarias del disco. Depende de
una tabla de particiones. Un disco físico completamente formateado consiste, en
realidad, de una partición primaria que ocupa todo el espacio del disco y posee un
sistema de archivos. A este tipo de particiones, prácticamente cualquier sistema
operativo puede detectarlas y asignarles una unidad, siempre y cuando el sistema
operativo reconozca su formato (sistema de archivos).
● Partición extendida: También conocida como partición secundaria es otro tipo de
partición que actúa como una partición primaria; sirve para contener múltiples
unidades lógicas en su interior. Fue ideada para romper la limitación de 4
particiones primarias en un solo disco físico en el caso de MBR. Solo puede existir
una partición de este tipo por disco, y solo sirve para contener particiones lógicas.
Por lo tanto, es el único tipo de partición que no soporta un sistema de archivos
directamente.
● Partición lógica: Ocupa una porción de la partición extendida o la totalidad de la
misma, la cual se ha formateado con un tipo específico de sistema de archivos
(FAT32, NTFS, ext2,...) y se le ha asignado una unidad, así el sistema operativo
reconoce las particiones lógicas o su sistema de archivos. Puede haber un máximo
de 23 particiones lógicas en una partición extendida. Linux impone un máximo de
15, incluyendo las 4 primarias.
Es común que los sistemas basados o similares a UNIX generalmente se usan hasta
con 3 particiones: la principal, montada en el directorio raíz (/); a veces hay también una
segunda que se usa para montar el directorio /home, el cual contiene las configuraciones
de los usuarios, y finalmente, una tercera llamada swap, que se usa para la memoria
virtual temporal. Sin embargo, 2 particiones (/, y swap); es el mínimo suficiente en estos
sistemas operativos.
El índice de las particiones de un disco se almacena en la tabla de particiones, la tabla
se almacena en el disco según la organización elegida (MBR o GPT).
En los discos con particiones tipo MBR (Master Boot Record) solo se puede almacenar
cuatro entradas de particiones primarias, o bien 3 primarias y una extendida que puede
albergar varias lógicas, particiones lógicas siempre deben ir dentro de una partición
extendida. Cada partición no puede sobrepasar los 2,2 TB o terabytes de tamaño, por lo
que con 4 particiones primarias, o 3 primarias y 1 extendida, nunca podríamos gestionar
más de 8,8 TB.

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 17 -


TEMA 1: Introducción a los Sistemas Operativos
1.4 Sistema de ficheros

Para las particiones GPT (GUID Partition Table) admiten un máximo de 128 particiones
primarias, cada partición puede llegar a un tamaño de 9,3 ZB o zettabytes (1 zettabyte = 1
billón de terabytes).
En cada sistema operativo disponemos de múltiples herramientas para la gestión de
particiones, algunos vienen incluidos en el propio sistema y otros son software propietario.
Alguno de los mas comunes incluidos en los sistemas son: GParted (Linux) y DiskPart y el
Administrador de Discos (Windows).

1.4.2 El Archivo
Es un contenedor de bytes al que le asociamos un nombre y unas propiedades
llamadas “metadatos”. Es la unidad mínima de almacenamiento. El archivo puede además
tener un formato interno que es independiente del Sistema de Ficheros, por ejemplo yo
puedo tener un archivo en formato de “Word” y este archivo puede estar en un sistema
NTFS, FAT o ext2.
Muchos (pero no todos) sistemas informáticos usan extensiones en los nombres de
archivo para ayudar a identificar qué contienen. En computadoras Windows, las
extensiones consisten en un punto al final del nombre del archivo, seguido de unas pocas
letras para identificar el tipo de archivo. Una extensión .txt identifica un archivo de texto; la
extensión .doc identifica cualquier tipo de documento o documentación, comúnmente en
el formato de archivo de Microsoft Office Word; etc. Incluso cuando se utilizan extensiones
en un sistema informático, el grado con el que un sistema informático los reconoce y trata
puede variar; en algunos sistemas son obligatorios, mientras que en otros sistemas se
ignoran completamente si están presentes.

1.4.3 El directorio
La mayoría de las computadoras organizan los archivos en jerarquías llamadas
carpetas, directorios o catálogos. (El concepto es el mismo independientemente de la
terminología usada.) Cada carpeta puede contener un número arbitrario de archivos, y
también puede contener otras carpetas. Las otras carpetas pueden contener todavía más
archivos y carpetas, y así sucesivamente, construyéndose un estructura en árbol en la
que una «carpeta raíz» (el nombre varía de una computadora a otra) puede contener
cualquier número de niveles de otras carpetas y archivos. A las carpetas se les puede dar
nombre exactamente igual que a los archivos (excepto para la carpeta raíz, que a menudo
no tiene nombre). El uso de carpetas hace más fácil organizar los archivos de una manera
lógica.

1.4.4 El árbol de ficheros

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 18 -


TEMA 1: Introducción a los Sistemas Operativos
1.4 Sistema de ficheros

Raíz /

Contabilidad

Salarios

Directores.txt

Siempre posee una raíz:


● En Windows es C,D,E,...
● En Linux es ’/’
Cada archivo posee una ruta o camino desde la raíz hasta el mismo. Cuando una
computadora permite el uso de carpetas, cada archivo y carpeta no sólo tiene un nombre
propio, sino también una ruta, que identifica la carpeta o carpetas en las que reside un
archivo o carpeta. En la ruta, se emplea algún tipo de carácter especial (como una barra)
para separar los nombres de los archivos y carpetas. Por ejemplo, en la imagen anterior,
la ruta “/Contabilidad/Salarios/Directores.txt” identifica unívocamente un archivo llamado
“Directores.txt” que está en una carpeta llamada “Salarios” que a su vez está contenida en
una carpeta llamada “Contabilidad”. En este ejemplo, los nombres de las carpetas y
archivos están separados por barras, la superior o carpeta raíz no tiene nombre, y por ello
la ruta comienza con una barra (si la carpeta raíz tuviera nombre, precedería a esta
primera barra).

1.4.5 Los metadatos


Son los datos de los datos. Es una estructura que almacena propiedades del archivo.
Aporta información del archivo pero no forma parte de el mismo. Algunos de estos datos
son:
● Tamaño
● Tipo
● Fecha de modificación
● Fecha de creación
● Autor o usuario
● …

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 19 -


TEMA 1: Introducción a los Sistemas Operativos
1.4 Sistema de ficheros

Estos datos están contenidos en el propio fichero, de tal manera que nos pueden
proporcionar múltiple información acerca del mismo, tanto al usuario como al sistema. A
nivel de usuario se suele usar mucho para el análisis de información.

1.4.6 El Sistema de Ficheros FAT


Tabla de asignación de archivos, comúnmente conocido como FAT (del inglés file
allocation table), es un sistema de archivos desarrollado para MS-DOS, así como el
sistema de archivos principal de las ediciones no empresariales de Microsoft Windows
hasta Windows Me.
FAT es relativamente sencillo. A causa de ello, es un formato popular para disquetes
admitido prácticamente por todos los sistemas operativos existentes para computadora
personal. Se utiliza como mecanismo de intercambio de datos entre sistemas operativos
distintos que coexisten en la misma computadora, lo que se conoce como entorno
multiarranque. También se utiliza en tarjetas de memoria y dispositivos similares.
Las implementaciones más extendidas de FAT tienen algunas desventajas. Estaba
pensado para discos pequeños y por ello no funciona bien en discos grandes y puede
llegar a consumir mucha memoria en disco. Cuando se borran y se escriben nuevos
archivos tiende a dejar fragmentos dispersos de éstos por todo el soporte. Con el tiempo,
esto hace que el proceso de lectura o escritura sea cada vez más lento. La denominada
desfragmentación es la solución a esto, pero es un proceso largo que debe repetirse
regularmente para mantener el sistema de archivos en perfectas condiciones. FAT
tampoco fue diseñado para ser redundante ante fallos. Inicialmente solamente soportaba
nombres cortos de archivo: ocho caracteres para el nombre más tres para la extensión.
También carece de permisos de seguridad: cualquier usuario puede acceder a cualquier
archivo.
El sistema de archivos FAT se compone de cuatro secciones:
● El sector de arranque. Siempre es el primer sector de la partición (volumen) e
incluye información básica, punteros a las demás secciones, y la dirección de la
rutina de arranque del sistema operativo.
● La región FAT (Tabla de asignación FAT). Contiene dos copias de la tabla de
asignación de archivos (por motivos de seguridad). Estos son mapas de la
partición, indicando qué clusters están ocupados por los archivos.
● La región del directorio raíz. Es el índice principal de carpetas y archivos.
● La región de datos. Es el lugar donde se almacena el contenido de archivos y
carpetas. Por tanto, ocupa casi toda la partición. El tamaño de cualquier archivo o
carpeta puede ser ampliado siempre que queden suficientes clusters libres. Cada
cluster está enlazado con el siguiente mediante un puntero. Si un determinado
cluster no se ocupa por completo, su espacio remanente se desperdicia.
Básicamente la Tabla de asignación FAT va a contener los siguientes datos:
● Cluster: El sector o sectores de disco. Un sector puede ser por ejemplo de 512
bytes.
● Ocupado: Si el sector está ocupado o no.
● Final: Si es el último sector del fichero.
● Siguiente: El siguiente sector del fichero.

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 20 -


TEMA 1: Introducción a los Sistemas Operativos
1.4 Sistema de ficheros

Veamos un ejemplo:
Región Directorio Raíz Tabla de asignación FAT
Fichero Inicio Cluster Ocupado Final Siguiente
Hola.txt 1 1 1 0 3
Fich1.doc 4 2 0 0 0
Imagen.jpg 5 3 1 1 0
4 1 0 6
5 1 0 9
6 1 0 7
7 1 1 0
8 0 0 0
9 1 0 15
... ... ... ...

Ejercicio de Auto-Evaluación A2.4: Supongamos que tenemos la estructura de


abajo perteneciente a un sistema de ficheros FAT. ¿Es correcta?, ¿Qué fallos tiene?.
Justifica tus respuestas.

Región Directorio Raíz Tabla de asignación FAT


Fichero Inicio Cluster Ocupado Final Siguiente
img.jpg 5 1 0 0 0
inicio.log 2 2 1 1 1
Pru.txt 3 3 0 0 10
4 0 0 1
5 1 0 6
6 1 0 8
7 1 0 9
8 1 0 7
9 1 1 0
10 1 0 3

1.4.7 El Sistema de Ficheros NTFS


El sistema de archivos NTFS (New Technology File System [Sistema de archivos de
nueva tecnología]) se basa en una estructura llamada "tabla maestra de archivos" o MFT,
la cual puede contener información detallada en los archivos. Este sistema permite el uso
de nombres extensos, aunque, a diferencia del sistema FAT32, distingue entre

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 21 -


TEMA 1: Introducción a los Sistemas Operativos
1.4 Sistema de ficheros

mayúsculas y minúsculas. Está basado en el sistema de archivos HPFS de IBM/Microsoft


usado en el sistema operativo OS/2, y también tiene ciertas influencias del formato de
archivos HFS diseñado por Apple.
En cuanto al rendimiento, el acceso a los archivos en una partición NTFS es más
rápido que en una partición de tipo FAT, ya que usa un árbol binario de alto rendimiento
para localizar a los archivos. En teoría, el tamaño límite de una partición es de 16
exabytes (17 mil millones de TB).
Su principal inconveniente es que 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 MiB libres.
Sin embargo, a pesar de lo descrito anteriormente, este sistema de archivos posee un
funcionamiento prácticamente secreto, ya que Microsoft no ha liberado su código, como
hizo con FAT.
Gracias a la ingeniería inversa, aplicada sobre el sistema de archivos, se desarrollaron
controladores como el NTFS-3G que actualmente proveen a sistemas operativos
GNU/Linux, Solaris, MacOS X o BSD, entre otros, de soporte completo de lectura y
escritura en particiones NTFS.
Sus desventajas son:
● Utiliza gran cantidad de espacio en disco para sí mismo.
● No es compatible con sistemas operativos como DOS, Windows 95, 98 ni ME.
● No puede ser usado en disquetes.
● La conversión a NTFS es unidireccional, por lo tanto, no se puede volver a
convertir en FAT al actualizar la unidad.
Sus ventajas y mejoras con respecto al FAT son:
● Compatibilidad mejorada con los metadatos.
● Uso de estructura de datos avanzadas (árboles-B), optimizando el rendimiento,
estabilidad y aprovechando espacio en disco, pues acelera el acceso a los ficheros
y reduce la fragmentación.
● Mejora de la seguridad
● Listas de control de acceso
● El registro de transacciones (journaling), que garantiza la integridad del sistema de
ficheros.
Curiosidad: Después de lo visto en este apartado del Sistema de Ficheros podemos
llegar a comprender porqué cuando movemos ficheros o directorios es mucho mas rápido
que cuando copiamos archivos o carpetas. Cuando movemos ficheros lo que hacemos
simplemente es cambiar las referencias de estos archivos en la tabla de asignaciones si
es FAT, o el árbol de jerarquía si se trata de NTFS, en cambio cuando copiamos ficheros
lo que hacemos es duplicar la información, y esta no solo tiene que añadirse a la tabla se
asignaciones sino que también escribimos en los sectores de disco.

1.5 Entrada/Salida
En computación, la entrada y salida o E/S (en inglés input/output o I/O), es la

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 22 -


TEMA 1: Introducción a los Sistemas Operativos
1.5 Entrada/Salida

comunicación entre un sistema de procesamiento de información, tal como un ordenador,


y el mundo exterior, posiblemente un humano u otro sistema de procesamiento de
información. Los dispositivos de E/S son utilizados por una persona (u otro sistema) para
comunicarse con un ordenador. Por ejemplo, un teclado o un ratón puede ser un
dispositivo de entrada para un ordenador, mientras que los monitores e impresoras se
consideran los dispositivos de salida para un ordenador. Dispositivos para la
comunicación entre computadoras, tales como módems y tarjetas de red , por lo general
sirven para entrada y salida.
El Sistema Operativo controla la comunicación entre los periféricos y los procesos. Es
una comunicación en dos sentidos: De los procesos a los periféricos De los periféricos a
los procesos.

1.5.1 Comunicación de procesos a periféricos


Los procesos se comunican con los periféricos a través del uso de controladores (o
drivers en inglés). Un controlador es un programa o librería que contiene código para
comunicarse con un periférico. Suele ser suministrado por el fabricante del periférico.

Aplicaciones de usuario

Aplicación 1 Aplicación 2

Núcleo del Sistema Operativo

Controlador Controlador Controlador


A B C

Periférico A Periférico B Periférico C

¿Como envía datos el controlador al periférico?. Escribe en registros del propio


periférico o bien en buses.
A través de las instrucciones del repertorio del procesador:
Se usan instrucciones de escritura y lectura de memoria si el periférico está mapeado.
Se pueden usar también instrucciones específicas que ofrezca el repertorio.

Programa Word Driver Impresora


# Imprimir enviaByte(b)
# Usa el driver {
… Instrucción
Instrucción Instrucción
Instrucción }
enviaByte(b) Instrucciones
Instrucción leeByte(b) a bajo nivel
Instrucción {…}
...

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 23 -


TEMA 1: Introducción a los Sistemas Operativos
1.5 Entrada/Salida

Como vemos en la imagen anterior usamos un programa (Word), y en un determinado


momento usamos la función de imprimir, entonces este programa hace una llamada a la
rutina del controlador proporcionado por el fabricante de la impresora para enviar los
datos a la impresora y poder comunicarse con ella, esta comunicación se produce en un
lenguaje a bajo nivel.

1.5.2 Comunicación de periféricos a procesos


Se utilizan interrupciones. Una interrupción es una suspensión temporal de la ejecución
de un proceso, para pasar a ejecutar una subrutina de servicio de interrupción, la cual, por
lo general, no forma parte del programa, sino que pertenece al sistema operativo o al
BIOS). Una vez finalizada dicha subrutina, se reanuda la ejecución del programa.
Las interrupciones surgen de la necesidad que tienen los dispositivos periféricos de
enviar información al procesador principal de un sistema informático. Todos los
dispositivos que deseen comunicarse con el procesador por medio de interrupciones
deben tener asignada una línea única capaz de avisar al CPU cuando le requiere para
realizar una operación. Esta línea se denomina IRQ ("Interrupt ReQuest" o petición de
interrupción). Las IRQ son líneas que llegan al controlador de interrupciones, un
componente de hardware dedicado a la gestión de las interrupciones, y que puede estar
integrado en el procesador principal o ser un circuito separado conectado al mismo. Cada
línea de interrupción debe tener una rutina de interrupción que la trate. El conjunto de
rutinas se denomina vector de interrupción. El vector de interrupción se carga en un lugar
conocido de la memoria.
Podemos clasificar las interrupciones en tres tipos basándonos en su origen:
● Interrupciones de hardware. Estas son asíncronas a la ejecución del procesador,
es decir, se pueden producir en cualquier momento independientemente de lo que
esté haciendo el CPU en ese momento. Las causas que las producen son externas
al procesador y a menudo suelen estar ligadas con los distintos dispositivos de
E/S.
● Excepciones. Son aquellas que se producen de forma síncrona a la ejecución del
procesador y por tanto podrían predecirse si se analiza con detenimiento la traza
del programa que en ese momento estaba siendo ejecutado en la CPU.
Normalmente son causadas al realizarse operaciones no permitidas tales como la
división entre 0, el desbordamiento, el acceso a una posición de memoria no
permitida, etc.
● Interrupciones por software. Las interrupciones por software son aquellas
generadas por un programa en ejecución. Para generarlas, existen distintas
instrucciones en el código máquina que permiten al programador producir una
interrupción, las cuales suelen tener nemotécnicos tales como INT (por ejemplo, en
DOS se realiza la instrucción INT 0x21 y en Unix se utiliza INT 0x80 para hacer
llamadas de sistema).

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 24 -


TEMA 1: Introducción a los Sistemas Operativos
1.5 Entrada/Salida

CPU
MEMORIA
#1 UC
ALU
#2
Rutina de #3
Interrupción de Rutina #4
Controlador
la impresora #5 Registros
de
#6
Interrupciones
#7
#8
#9
#10 Líneas de
#11 Salta a #3 Interrupción
...

En la imagen anterior podemos observar el funcionamiento de estas líneas de


interrupción y las rutinas cargadas en memoria. Comienza la ejecución de un programa y
se detiene en la dirección #10 porque la impresora requiere comunicarse con la CPU y
para ello usa su línea de interrupción y ejecuta el código asociado que empieza en la
dirección #3, una vez se haya ejecutado el código asociado a la rutina de interrupción el
programa podrá continuar donde se quedó, esto es en la dirección de memoria #10.

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 25 -


TEMA 1: Introducción a los Sistemas Operativos
1.6 Solución a los ejercicios de Auto-evaluación

1.6 Solución a los ejercicios de Auto-evaluación


Solución A2.1:
PROCESO DURACIÓN
P1 20 ms
P2 10 ms
P3 5 ms
P4 2 ms
P5 15 ms

Planificación FCFS: P1, P2, P5, P3, P4


P1 P2 P5 P3 P4
0 20 30 45 50 52
Por tanto el tiempo promedio de espera es (0+20+30+45+50)/5 = 29 ms.

Planificación FCFS: P4, P3, P2, P1, P5


P4 P3 P2 P1 P5
0 2 7 17 37 52
Por tanto el tiempo promedio de espera es (0+2+7+17+37)/5 = 12,6 ms.

Planificación SJF (los primeros en ejecutarse son los mas cortos): P4, P3, P2, P5, P1
P4 P3 P2 P5 P1
0 2 7 17 32 52
Por tanto el tiempo promedio de espera es (0+2+7+17+32)/5 = 11,6 ms.

Planificación Round-Robin (Q=4): El orden en que entran P1, P2, P3, P4, P5
P1 P2 P3 P4 P5 P1 P2 P3 P5 P1 P2 P5 P1 P5 P1
0 4 8 12 14 18 22 26 27 31 35 37 41 45 48 52
Tiempo de P1: 0+(18-4)+(31-22)+(41-35)+(48-45)=32 ms.
Tiempo de P2: 4+(22-8)+(35-26)=27 ms.
Tiempo de P3: 8+(26-12)=22 ms.
Tiempo de P4: 12 ms.
Tiempo de P5: 14+(27-18)+(37-31)+(45-41)=33 ms.
Por tanto el tiempo promedio de espera es (32+27+22+12+33)/5 = 25,2 ms.

En el caso de los procesos propuestos la conclusión que podemos sacar es que en el

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 26 -


TEMA 1: Introducción a los Sistemas Operativos
1.6 Solución a los ejercicios de Auto-evaluación

peor de los casos la planificación FCFS es la peor, y en el mejor de los casos la SJF,
teniendo en cuenta Round-Robin a parte de tener un tiempo mayor habría que contar el
tiempo de cambio de contexto.
Solución A2.2:
a) ¿Cuánta memoria virtual podemos usar como máximo?
216 = 65536 bytes = 64 Kbytes
b) ¿Cuántas páginas podemos tener como máximo por proceso?
Si tenemos 16 bits para direccionar y sabemos que el tamaño de la página
es de 2 KB = 2048 bytes, sabiendo que 2 n = 2048, n = 11, o bien sabiendo
que 2KB = 21*210 bytes = 211 bytes. Por tanto tenemos 16 – 11 = 5 bits
restantes para direccionar las páginas, por tanto 2 5 = 32 páginas por proceso
como máximo.
Otra manera de llegar a la solución es sabiendo que la memoria virtual es de
64 Kb y que las páginas son de 2 Kb, hacemos la siguiente operación: 64/2
= 32 páginas.
c) ¿Cuántos marcos de página va a tener la memoria física?
Si tenemos 16 Kbytes de RAM y el tamaño de los marcos de página es de 2
Kbytes, tenemos que 16/2 = 8 marcos de página.
d) Suponiendo la tabla de páginas del proceso A y B. Traducir la dirección de
memoria 20FE para A y 10E2 para B. ¿Sacas alguna conclusión?.¿Cuál?.
Proceso A: Dirección virtual: 20FE
00100 00011111110
Página:4 Desplazamiento: 0FE
Sabemos que el marco correspondiente a la página 4 es el marco 7,
sabemos que las direcciones físicas en las que se divide la memoria
van de 2048 bytes en 2048 bytes, por tanto 7 x 2048 = 14.336 10 bytes
= Dirección física 380016 (en base hexadecimal). Ahora debemos
sumarle el desplazamiento correspondiente que es 0FE, por tanto
380016 + 0FE16 = Dirección física 38FE16
Otra manera de sacar la suma del marco y el desplazamiento es la
siguiente:
La página hemos dicho que es la 4, y le corresponde el marco 7,
entonces sabiendo que el número 7 en binario es 111, hacemos la
siguiente combinación:
00111 + 00011111110 = 0011 1000 1111 1110
Marco:7 Desplazamiento: 0FE 3 8 F E
Proceso B: Dirección virtual: 10E2
00010 00011100010
Página:2 Desplazamiento: 0E2
Sabemos que el marco correspondiente a la página 2 es el marco 7,
casualmente la misma que el proceso anterior, sabemos que las
direcciones físicas en las que se divide la memoria van de 2048 bytes
en 2048 bytes, por tanto 7 x 2048 = 14.336 10 bytes = Dirección física
380016 (en base hexadecimal). Ahora debemos sumarle el
desplazamiento correspondiente que es 0FE, por tanto 3800 16 + 0E216

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 27 -


TEMA 1: Introducción a los Sistemas Operativos
1.6 Solución a los ejercicios de Auto-evaluación

= Dirección física 38E216.


Otra manera de sacar la suma del marco y el desplazamiento es la
siguiente:
La página hemos dicho que es la 2, y le corresponde el marco 7,
entonces sabiendo que el número 7 en binario es 111, hacemos la
siguiente combinación:
00111 + 00011100010 = 0011 1000 1110 0010
Marco:7 Desplazamiento: 0E2 3 8 E 2
Sí, se pueden sacar conclusiones. Las conclusiones que podemos sacar de
lo visto es que ambos procesos creen tener todo el espacio de direcciones
para ellos solos, y que debido a ello puede ser que ambos procesos
coincidan en el mismo marco como se ha dado el caso, esto lo mas posible
es que provoque lo que se ha visto como “fallo de página”, ya que cuando la
CPU pida la dirección 10E2 para el proceso B, seguramente esta no estará
alojada en memoria porque justo antes había sido alojado la página 4 del
proceso A.
Solución A2.3:
a) ¿Es posible ejecutar un programa mas grande que la RAM como en este caso?.
Justifica tu respuesta.
Si es posible, gracias a la paginación podemos cargar solo las partes necesarias
o activas del programa en los marcos de la RAM, por tanto no es necesario
cargar el programa entero en la RAM.

b) ¿Cuánta memoria virtual podemos usar como máximo?


216 = 65536 bytes = 64 Kbytes
c) ¿Cuántas páginas podemos tener como máximo por proceso?
Si tenemos 16 bits para direccionar y sabemos que el tamaño de la página
es de 8 KB = 8*210 bytes = 23*210 bytes = 213 bytes, necesitamos 13 bits para
el desplazamiento. Por tanto tenemos 16 – 13 = 3 bits restantes para
direccionar las páginas, por tanto 23 = 8 páginas por proceso como máximo.
Otra manera de llegar a la solución es sabiendo que la memoria virtual es de
64 Kb y que las páginas son de 8 Kb, hacemos la siguiente operación: 64/8
= 8 páginas.
d) Si el tamaño de página fuese de 16 Kbytes.¿Cuántas páginas podemos tener
como máximo por proceso?. ¿Qué conclusión sacas con respecto al apartado
anterior?. Justifica la respuesta.
Si el tamaño es 16 Kbytes tendríamos como máximo 64/16 = 4 páginas. La
conclusión que podemos sacar es que conforme crece el tamaño de la
página menor es el número de páginas.
e) ¿Cuántos marcos de página va a tener la memoria física?
Si tenemos 32 Kbytes de RAM y el tamaño de los marcos de página es de 2
Kbytes, tenemos que 32/8 = 4 marcos de página.
f) Suponiendo la tabla de páginas del proceso A. Traducir la dirección de
memoria 6CD3 y después BE1A.
Proceso A: Dirección virtual: 6CD3
011 0110011010011

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 28 -


TEMA 1: Introducción a los Sistemas Operativos
1.6 Solución a los ejercicios de Auto-evaluación

Página:3 Desplazamiento: 0CD3


Sabemos que el marco correspondiente a la página 3 es el marco 3,
sabemos que las direcciones físicas en las que se divide la memoria
van de 8192 bytes en 8192 bytes, por tanto 3 x 8192 = 24.576 10 bytes
= Dirección física 600016 (en base hexadecimal). Ahora debemos
sumarle el desplazamiento correspondiente que es 0CD3, por tanto
600016 + 0CD316 = Dirección física 6CD316
Otra manera de sacar la suma del marco y el desplazamiento es la
siguiente:
La página hemos dicho que es la 3, y le corresponde el marco 3,
entonces sabiendo que el número 3 en binario es 11, hacemos la
siguiente combinación:
011 + 0110011010011 = 0110 1100 1101 0011
Marco:3 Desplazamiento: 0CD3 6 C D 3
Proceso A: Dirección virtual: BE1A
101 1 1110 0001 1010
Página:5 Desplazamiento: 1 E 1 A
Sabemos que el marco correspondiente a la página 5 es el marco 2,
sabemos que las direcciones físicas en las que se divide la memoria
van de 8192 bytes en 8192 bytes, por tanto 2 x 8192 = 16.384 10 bytes
= Dirección física 400016 (en base hexadecimal). Ahora debemos
sumarle el desplazamiento correspondiente que es 1E1A, por tanto
400016 + 1E1A16 = Dirección física 5E1A16.
Otra manera de sacar la suma del marco y el desplazamiento es la
siguiente:
La página hemos dicho que es la 5, y le corresponde el marco 2,
entonces sabiendo que el número 2 en binario es 10, hacemos la
siguiente combinación:
10 + 1111000011010 = 0101 1110 0001 1010
Marco:2 Desplazamiento: 1E1A 5 E 1 A
Solución A2.4:
La tabla contiene los siguientes errores marcados en rojo:

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 29 -


TEMA 1: Introducción a los Sistemas Operativos
1.6 Solución a los ejercicios de Auto-evaluación

Región Directorio Raíz Tabla de asignación FAT


Fichero Inicio Cluster Ocupado Final Siguiente
img.jpg 5 1 0 0 0
inicio.log 2 2 1 1 1
Pru.txt 3 3 0 0 10
4 0 0 1
5 1 0 6
6 1 0 8
7 1 0 9
8 1 0 7
9 1 1 0
10 1 0 3

El cluster 2 no puede tener un siguiente, ya que su bit Final está marcado a 1.


El cluster 3 al ser el comienzo del archivo “Pru.txt” no puede tener su bit de ocupado a
0, ya que debería estar como ocupado.
El cluster 4 no puede tener un bit siguiente porque es un cluster vacío, ya que ningún
archivo lo referencia.
El cluster 10 no puede tener un bit siguiente igual a 3, porque esto causaría un error de
redundancia cíclica, ya que vuelve a referenciar al sitio de donde viene.
La solución correcta sería:
Región Directorio Raíz Tabla de asignación FAT
Fichero Inicio Cluster Ocupado Final Siguiente
img.jpg 5 1 0 0 0
inicio.log 2 2 1 1 0
Pru.txt 3 3 1 0 10
4 0 0 0
5 1 0 6
6 1 0 8
7 1 0 9
8 1 0 7
9 1 1 0
10 1 0 X

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 30 -


TEMA 1: Introducción a los Sistemas Operativos
1.7 Ejercicios Propuestos

1.7 Ejercicios Propuestos

1. Indicar en que categoría (según el apartado 2.1.1) encajan cada uno de los
siguientes sistemas operativos especificados. Busca información sobre ellos si es
necesario:
a) MS-DOS
b) Unix
c) MaRTE OS
d) RedHat Embedded Linux
e) Windows CE
f) Symbian
g) Blackberry 10
h) Windows Millenium
2. Buscar al menos 3 algoritmos de planificación de procesos distintos a los explicados.
Indicar cuales son las ventajas o desventajas respecto a los vistos en este tema.
3. Realizar la planificación FCFS, SJF y Round Robin para los siguientes procesos:
P1(7ms), P2(20ms), P3(25ms), P4(3ms), P5(17ms), P6(4ms). Hacer dos estimaciones
para FCFS, una con el orden P2, P1, P3, P5, P6, P4 y otra con P4, P1, P6, P2, P5, P3.
Para la planificación Round-Robin usar Q=5. ¿Qué conclusiones sacas?.
4. Supongamos que tenemos un sistema de 32 bits, y tenemos instalado en el equipo
un total de 6 Mbytes de RAM. Nuestro Sistema Operativo va a usar páginas y marcos
de página de un tamaño de 2 Mbytes. Ejecutamos un proceso A con un tamaño de
15 Mbytes.

Tabla del proceso A


Página 0 → Marco 2
Página 1 → Marco 0
Página 2 → Marco 1
Página 3 → Marco 2
Página 4 → Marco 1
Página 5 → Marco 0
Página 6 → Marco 1
Página 7 → Marco 0

Se pide lo siguiente:
a) ¿Es posible ejecutar un programa mas grande que la RAM como en este
caso?. Justifica tu respuesta.
b) ¿Cuánta memoria virtual podemos usar como máximo?
c) ¿Cuántas páginas podemos tener como máximo por proceso?
d) Si el tamaño de página fuese de 512 Mbytes.¿Cuántas páginas podemos
tener como máximo por proceso?. ¿Qué conclusión sacas con respecto al
apartado anterior?. Justifica la respuesta.
e) ¿Cuántos marcos de página va a tener la memoria física?
f) Suponiendo la tabla de páginas del proceso A. Traducir la dirección de
memoria 0000CCDE y después 00E20EEE. ¿Sacas alguna conclusión?.
¿Cuál?. Justifica tu respuesta.

Implantación de Sistemas Operativos - Andrés Terol Sánchez - 31 -

También podría gustarte