Iso 01
Iso 01
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.
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.
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.
● 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
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.
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.
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
Precio, Velocidad
RegistrosCPU
Caché (L1,L2)
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.
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.
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
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
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?.
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.
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
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.
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.
Raíz /
Contabilidad
Salarios
Directores.txt
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.
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
... ... ... ...
1.5 Entrada/Salida
En computación, la entrada y salida o E/S (en inglés input/output o I/O), es la
Aplicaciones de usuario
Aplicación 1 Aplicación 2
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
...
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.
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
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.
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.