problemas resueltos sistemas operativos · problemas resueltos sistemas operativos! ing. jorge...
TRANSCRIPT
UNIVERSIDAD MAYOR DE SAN SIMON
FACULTAD DE CIENCIAS Y TECNOLOGIA DEPARTAMENTO INFORMATICA – SISTEMAS
PROBLEMAS RESUELTOS
SISTEMAS OPERATIVOS
Jorge Walter Orellana Araoz
2016
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
1
Capítulo 2. Gestión de Procesos 2.1. Planificación de Procesos
2.1.1. Se tienen que ejecutar 4 trabajos cuyas características son:
Trabajo Tiempo de uso CPU Prioridad A 6 4 B 10 3 C 13 2 D 8 3
a) Realizar diagramas de Gantt que muestren la ejecución de estos trabajos usando los algoritmos FCFS (primero en llegar, primero en ser servido), SJF (primera tarea más corta) y el de prioridades (Max prioridad=4)
b) Determinar para cada uno de los procesos el tiempo de retorno, sin considerar tiempo para el cambio de contexto.
Solución a) FCFS A B C D 0
6
16
29
37
SJF A D B C
0
6
14
24
37
PRIORIDADES
A B D C
0
6
16
24
37
b)
Tiempo de Retorno FCFS SJF PRIORIDAD A 6 6 6
B 16 24 16
C 29 37 37
D 37 14 24
PROMEDIO 22 20,25 20,75
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
2
2.1.2. Se tienen 6 procesos a ejecutarse, con las siguientes características:
Trabajo Tiempo de llegada (ms)
Tiempo uso CPU
A 5 9 B 6 14 C 7 10 D 1 16 E 11 11 F 10 5
a) Graficar el orden de su ejecución b) Calcular el tiempo de espera y retorno para cada uno de los procesos con Round
Robin y quantum de 4 ms (Cambio de contexto 1 ms).
Solución
a) COLA D-A-D-B-C-F-A-E-D
D A D B C F A E D
0-‐1
5-‐6
10-‐11 15-‐16 20-‐21 25-‐26 30-‐31 35-‐36 40-‐41 45-‐46 COLA B-C-F-A-E-D-B-C-E-B
B C F A E D B C E B
46 50-‐51 55-‐56 57-‐58 59-‐60 64-‐65 69-‐70 74-‐75 77-‐78 81-‐82 84
b)
Tiempo de espera Tiempo de Retorno
A 45 54
B 64 78
C 60 70
D 52 68
E 59 70
F 42 47
PROMEDIO 53,7 64,5
2.1.3. Se tienen que realizar 5 trabajos según la tabla siguiente. Despreciar el tiempo por cambio de contexto. Se pide:
Trabajo Tiempo de uso
de CPU A 10 B 25 C 13 D 11 E 39
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
3
Se tienen 4 colas para ejecución Cola 0: RR quantum=5 ms, Cola 1: RR quantum=8 ms, Cola 2: RR quantum=12 ms, Cola 3: FCFS. Representar diagramas que ilustren el orden de ejecución de estos trabajos y los tiempos de espera asociados
Solución
Cola 0 A B C D E A
Round Robin
0 5 10 15 20 25 30
Q= 5
Cola 1 B C D E Round Robin
0 8 16 22 30 Q= 8
Cola 2 B E Round Robin
0 12 24 Q= 12
Cola 3 E Round Robin
0 14 Q= 12
Parcial
Tiempo de Espera
A 0+20 20
B 5+0+0 5
C 10+8 18
D 15+16 31
E 20+22+12+0 54
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
4
Capítulo 3. Comunicación y Sincronización de Procesos 3.1. Problema de la sección critica 3.1.1. En una tienda de pájaros tienen problemas para tener a todos sus canarios felices.
Ellos comparten una jaula donde hay solo un plato de alpiste y un columpio para ejercitarse. Todos los canarios quieren inicialmente comer y luego ejercitarse, pero tienen el inconveniente que solo 3 de ellos pueden comer del plato y solo 1 columpiarse. Definir un proceso que ejecuten los canarios concurrentemente de forma que sincronicen sus actividades usando semáforos
Solución
semaphore comida=1; semaphore columpio=1; int num=0, i =0; void columpia(int col) { wait(columpio); for (i=1;i<3;i++) {
cout << " Canario "<< col << " columpia "<< endl; }
signal(columpio); } void come(int cana) { num=num+1; if (num <=3) { wait(comida); cout << "Canario "<< cana << " come alpiste"<< endl; signal(comida); } } void main() { cobegin
{ come(1); columpia(1); come(2); columpia(2); come(3); columpia(3); come(4);columpia(4); }
} 3.1.2. Considerar dos procesos. Alumno 1 y Alumno 2 y tres recursos disponibles, un
libro de “sistemas operativos”, un libro de “Bases de Datos” y una computadora, los procesos se comportan de la siguiente manera: Process Alumno1 begin while true do begin /*toma el libro de SO */; /*toma el libro de BD */;
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
5
/*utiliza la computadora */; /*deja el libro de BD*/; /*deja la computadora */; /*deja el libro de SO*/; end; end; Process Alumno2 begin while true do begin /*toma el libro de BD */; /*toma el libro de SO */; /*deja el libro de SO*/; /*deja el libro de BD*/; /*utiliza la computadora */; /*deja la computadora */; end; end;
Usando semáforos implementar la sincronización apropiada para que sin cambiar el orden de las acciones de estos procesos, el resultado esté libre de bloqueos. Solución
semaphore mutex=1; semaphore libro_BD=1; semaphore libro_SO=1; semaphore compu=1; void Alumno1() { int i; for(i=1;i<10;i++) { wait(mutex); wait(libro_SO); cout<<"Alumno 1 toma el libro de SO" << "\n"; wait(libro_BD); cout<<"Alumno 1 toma el libro de BD" << "\n"; signal(mutex); wait(compu); cout<<"Alumno 1 utiliza la computadora" << "\n"; signal(libro_BD); cout<<"Alumno 1 DEJA el libro de BD" << "\n"; signal(compu); cout << "Alumno 1 DEJA la computadora" << "\n"; signal(libro_SO); cout<<"Alumno 1 DEJA el libro de SO" << "\n"; } } void Alumno2() { int j; for(j=1;j<10;j++) { wait(mutex); wait(libro_BD); cout<<"Alumno 2 toma el libro de BD" <<"\n"; wait(libro_SO); cout<<"Alumno 2 toma el libro de SO" <<"\n"; signal(mutex); signal(libro_SO); cout<<"Alumno 2 DEJA el libro de SO" <<"\n"; signal(libro_BD); cout<<"Alumno 2 DEJA el libro de BD" <<"\n"; wait(compu);
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
6
cout<<"Alumno 2 utiliza la computadora" <<"\n"; signal(compu); cout<<"Alumno 2 DEJA la computadora" <<"\n"; } } void main(){ cobegin{ Alumno1(); Alumno2(); } }
3.1.3. Dado un consultorio médico, considerar la llegada de N pacientes que deben ser
atendidos en estricto orden de llegada, considerando que solo un paciente es atendido a la vez con un tiempo aleatorio de atención, los pacientes restantes deben esperar que el médico se desocupe, no hay límite de espacio de espera. Si no hay pacientes, el médico se pone a navegar en internet hasta la llegada del siguiente paciente, que tocara la puerta de su consultorio para avisarle de su llegada. Resolver este problema con monitores.
Solución
monitor Doctor { const int N = 1; //La cantidad de pacientes que el medico atendera int Count; //Indica el numero de pacientes en consultorio condition NoVacio; condition NoLleno; int enConsultorio; void Consultar(int ID) { if (Count == N) waitc(NoLleno); Count = 1; //Paciente entra al consultorio enConsultorio = ID; //Se guarda el ID del paciente cout<<"Paciente "<<ID<<" ingresa a consulta"<<endl; signalc(NoVacio); } void Diagnosticar() { if (Count == 0) waitc(NoVacio); cout<<"Medico atendiendo al Paciente "<<enConsultorio <<endl; Count = 0; //Consultorio vacio signalc(NoLleno); } init { Count = 0; } } int Values = 10; void Paciente(int ID) { Consultar(ID); } void Medico(int ID) { int I; for (I = 0; I < Values; I++) { Diagnosticar();
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
7
} } void main() { cobegin { Paciente(1);Paciente(2);Paciente(3);Paciente(4);Paciente(5);Paciente(6); Paciente(7);Paciente(8);Paciente(9);Paciente(10);Medico(100); } }
3.1.4. Considerar un parque infantil que tiene una piscina y un columpio. Los niños
pueden columpiar o nadar en la piscina. Pero se encuentran con el inconveniente de que todos ellos pueden nadar al mismo tiempo pero sólo uno puede columpiar. Definir un proceso que ejecuten los niños concurrentemente de forma que sincronicen estas actividades usando monitores.
Solución
monitor Parque { const int N = 1; const int M = 10; int suma=0; int columpio; int piscina; condition libreP; condition libreC; void columpiar(int ID) { int i; if(columpio == N) { waitc(libreC); columpio = columpio +1;} else { for (i=1;i<random(5)+1;i++) { cout <<" Nino " << ID << " columpiando tiempo " << i << '\n'; } cout << endl; signalc(libreC); columpio = columpio - 1;} } void nadar(int ID) { if(piscina == M) { waitc(libreP); suma--; piscina = piscina -1;} else { cout << "Nino " << ID << " nadando en la piscina" << '\n'; suma++; cout << suma << " Ninos en la piscina " << '\n'; signalc(libreP); piscina = piscina + 1; cout << endl;} } init { piscina = 0; columpio = 0; } }
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
8
//fin del monitor void jugar(int ID) { int j; j=random(1); if (j==0) columpiar(ID); nadar(ID); } void main() { cobegin { jugar(1);jugar(2);jugar(3);jugar(4);jugar(5);jugar(6);jugar(7);jugar(8);jugar(9);jugar(10); } }
3.1.5. En una clínica de traumatología hay tres secciones diferentes: Médico, Yeso y Rayos-X. Los enfermos acceden a la clínica y esperan a que les atienda una enfermera que les indica la sala a la que deben acceder. De forma que la sección Medico tiene una sala de espera para 20 enfermos, Yeso tiene una sala de espera para 6 enfermos y Rayos-X No espera. Realizar un programa concurrente de forma que utilizando semáforos coordine las tareas de los enfermos.
Solución semaphore enfermera=1; semaphore salaMedico=1; semaphore salaYeso=1; int destino; void enfermo(int ID) { wait(enfermera); destino=random(10)+1; signal(enfermera); if (destino <4) { wait(salaMedico); cout << "Enfermo "<< ID << " en diagnostico medico"<< endl; signal(salaMedico); } if ((destino <7) && (destino >3)) { wait(salaYeso); cout << " ponen yeso al Enfermo "<< ID << endl; signal(salaYeso); } if (destino >6) { wait(salaYeso); cout << " hacen placas Rayos X al Enfermo "<< ID << endl; signal(salaYeso); } } void main() { cobegin { enfermo(1);enfermo(2);enfermo(3);enfermo(4);enfermo(5); enfermo(6);enfermo(7);enfermo(8);enfermo(9);enfermo(10); } }
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
9
Capítulo 4. Bloqueos Irreversibles 4.1. Evasión de bloqueos 4.1.1. Dado un sistema con cinco procesos, P1 a P5, y tres tipos de recursos, A, B y C, de los que existen 10, 5 y 7 ejemplares, respectivamente. Supongamos que en el instante actual tenemos la siguiente situación del sistema: Solución Se calcula la matriz de necesidad, restando la matriz de Asignación de la matriz Maximo requerido. Se compara el vector disponible con la matriz de necesidad y se cubre los requerimientos de un proceso, luego se recupera toda la asignación maxima que junto al saldo se convierte en el nuevo disponible, como se ilustra a continuación: Disponible = (3 3 2) Se puede atender a P2 o P4, se elige P2 = - (1 2 2) Nuevo disponible después de la asignación =
(2 1 0)
Se recupera todos los recursos asignados a P2 = + (3 2 2) Nuevo disponible después de recuperar recursos =
(5 3 2)
Se puede atender a P4 o P5, se elige P4 = - (0 1 1) Nuevo disponible después de la asignación =
(5 2 1)
Se recupera todos los recursos asignados a P2 = + (2 2 2) Nuevo disponible después de recuperar recursos) =
(7 4 3)
Se puede atender a P3 o P5, se elige P5 = - (4 3 1) Nuevo disponible después de la asignación =
(3 1 2)
Se recupera todos los recursos asignados a P2 = + (4 3 3) Nuevo disponible después de recuperar recursos =
(7 4 5)
Se puede atender a P3 = - (6 0 0) Nuevo disponible después de la asignación =
(1 4 5)
Se recupera todos los recursos asignados a P2 = + (9 0 2) Nuevo disponible después de recuperar recursos =
(10 4 7)
Se puede atender a P1 = - (7 4 3) Nuevo disponible después de la asignación =
(3 0 4)
Se recupera todos los recursos asignados a P2 = + (7 5 3) Nuevo disponible después de recuperar recursos = (10 5 7)
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
10
El orden de atencion de los procesos es P2, P4, P5, P3 y P1; secuencia que permite un estado seguro de asignacion de recursos.
4.1.2. Se tiene un sistema formado por tres procesos: P1 (que necesita como máximo 5
recursos), P2 (que necesita como máximo 6 recursos) y P3 (que necesita como máximo 4 recursos). Considerando 10 recursos disponibles. Utilizando el algoritmo del banquero. Determinar si las dos situaciones siguientes corresponden a estados seguros:
a) El proceso P1 usa 3 recursos, P2 usa 2 recursos y P3 usa 1 recurso b) El proceso P1 usa 3 recursos, P2 usa 4 recursos y P3 usa 2 recursos
Solución a)
Procesos Maximo Asignado Necesario
P1 5 3 2
P2 6 2 4
P3 4 1 3
Libre 4
Total Rec 10
Se Asigna los recursos libres a P2
Procesos Maximo Asignado Necesario
P1 5 3 2
P2 6 6 0
P3 4 1 3 Devuelve 6 recursos y se asignan a P3 o P1 Es un estado seguro. b)
Procesos Maximo Asignado Necesario
P1 5 3 2
P2 6 4 2
P3 4 2 2
Libre 1
Total Rec 10
El recurso libre es1 y n o puede asignarse a ningún proceso Es un estado inseguro. 4.1.3. Supongamos el siguiente sistema de procesos:
Recursos máximos necesarios Recursos Asignados R1 R2 R3 R4 P1 5 2 1 3 P2 4 3 2 2 P3 3 4 3 1
R1 R2 R3 R4 P1 3 2 0 0 P2 1 1 1 0 P3 2 3 1 1
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
11
Recursos existentes=(8 8 4 3) Recursos disponibles=(2 2 2 2) ¿Es un estado seguro? Y si es así cual será el orden de ejecución de procesos Solución Recursos necesarios
R1 R2 R3 R4
P1 2 0 1 3
P2 3 2 1 2
P3 1 1 2 0 Disponible = (2 2 2 2)
Se puede atender a P3 = - (1 1 2 0)
Nuevo disponible después de la asignación =
(1 1 0 2)
Se recupera todos los recursos asignados a P3 = + (3 4 3 1)
Nuevo disponible después de recuperar recursos =
(4 5 3 3)
Se puede atender a P1 o P2, se elige P1 = - (2 0 1 3)
Nuevo disponible después de la asignación =
(2 5 2 0)
Se recupera todos los recursos asignados a P1 = + (5 2 1 3)
Nuevo disponible después de recuperar recursos) =
(7 7 3 3)
Se puede atender a P2 = - (3 2 1 2)
Nuevo disponible después de la asignación =
(4 5 2 1)
Se recupera todos los recursos asignados a P2 = + (4 3 2 2)
Nuevo disponible después de recuperar recursos =
(8 8 4 3) El orden de atención de los procesos es P3, P1 y P2; secuencia que permite un estado seguro de asignación de recursos 4.2. Detección de bloqueos 4.2.1. Considerando la grafica siguiente, detectar si existe interbloqueo dibujando un grafo de asignación de recursos en el que cada vehículo representa un proceso y cada intersección un recurso
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
12
Solución
Existe un ciclo de asignaciones y solicitudes que no pueden ser reducidas, por lo tanto, existe interbloqueo 4.2.2. Dada la siguiente asignación y solicitud de recursos pro procesos, determinar si existe interbloqueo:
Solución
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
13
Ya que todos los procesos pueden terminar, so existe interbloqueo 4.2.3. Analizar si existe interbloqueo en la siguiente asignación y solicitud de recursos por los procesos:
Solución
No se puede reducir mas, por lo que existe un interbloqueo.
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
14
4.2.4. Mediante la reducción de grafos, determinar si existe interbloqueo
Solución Como el recurso R2 esta asignado a P4, este proceso termina y libera el recurso, al igual que el recurso R3 que esta asignado a P3, por lo tanto una vez liberados estos recursos pueden ser asignados a P2
Al tener todos los recursos, el proceso P2 termina liberando sus recursos, por lo que el recurso R1 se asigna al proceso P1 y este puede terminar, por lo que se concluye que no existe interbloqueo
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
15
Capítulo 5. Administración de Memoria 5.1. Colocación de Memoria 5.1.1. Considerar la memoria principal de un computador con la siguiente lista de huecos libres de tamaño: 12 Kb, 14 Kb, 2 Kb, 21 Kb, 5 Kb, 18 Kb, 13 Kb y 32 Kb ¿Cuáles huecos de la memoria son utilizados para los siguientes requerimientos de memoria de 5 Kb, 29 Kb y 7 Kb. Al utilizar un algoritmo para la asignación de segmentos de tipo: First Fit, Next Fit, Best Fit y Worst Fit? Solución
First Fit
Next Fit
Best Fit
Worst Fit
7
7
5
12 5
12 5
12 7
12
7
7
14 7
14 7
14
14
2
2
2
2
14
21
21
21
21 7
5
5
5 5
5
18
18
18
18
13
13
13
13
3
3
3
27 32 29
32 29
32 29
32 5
Frag.Interna = 17 Frag.Interna = 17 Frag.Interna = 8 Frag.Interna = 41 Frag.Externa = 0
Frag.Externa = 0
Frag.Externa = 0
Frag.Externa = 29
5.1.2. Considerar un sistema con intercambio en el que la memoria posee agujeros libres de tamaño: 1250 Kb, 845 Kb, 1750 Kb, 850 Kb y 1200 Kb, dispuestos en el orden dado. Se requieren 5 segmentos de tamaños 1210 Kb, 845 Kb, 1225 Kb, 800 Kb y 1650 Kb. Para los algoritmos primero en ajustarse, siguiente en ajustarse, mejor ajuste y peor ajuste ¿Que agujeros serán asignados? y ¿qué algoritmo aprovecha mejor la memoria, considerando la fragmentación?
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
16
Solución
First Fit
Next Fit
Best Fit
Worst Fit
40
40
40
405
1250 1210
1250 1210
1250 1210
1250 845
845 845
845 845
845 845
845
525
525
525
540
1750 1225
1750 1225
1750 1225
1750 1210
50
50
50
850 800
850 800
850 800
850
400
1200
1200
1200
1200 800
Frag.Interna = 615 Frag.Interna = 615 Frag.Interna = 615 Frag.Interna = 1345
Frag.Externa = 1650
Frag.Externa = 1650
Frag.Externa = 1650
Frag.Externa = 2875 5.2. Paginación de Memoria 5.2.1. Un proceso genera las siguientes direcciones lógicas: 252, 62, 125 y (2,265).
Indique las direcciones físicas correspondientes según la técnica de paginación, con un tamaño de página de 64 bytes. La tabla de páginas del proceso es la siguiente:
Pagina Marco 0 520 1 430 2 230 3 610
Solución a) #pagina= 252/64 = 3
Desplazamiento = 252 mod 64 = 60 (3,60) = (610,60)= 610 * 64 + 60 = 39100
b) #pagina= 62/64 = 0
Desplazamiento = 62 mod 64 = 62 (0,62) = (520,62)= 520 * 64 + 62 = 33342
c) #pagina= 125/64 = 1 Desplazamiento = 125 mod 64 = 61 (1,61) = (430,61)= 430 * 64 + 61 = 27581
d) (2,265) = (230,265)= 230 * 64 + 265 = 14985
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
17
5.2.2. Un proceso genera las siguientes direcciones lógicas: 65, 31, 100 y (4,25). Indique las direcciones físicas correspondientes según la técnica de paginación, con un tamaño de página de 32 bytes. La tabla de páginas del proceso es la siguiente:
Pagina Marco 0 70 1 65 2 99 3 65
Solución a) #pagina= 65/32 = 2
Desplazamiento = 65 mod 32 = 1 (2,1) = (99,1)= 99 * 32 + 1 = 3169
b) #pagina= 31/32 = 0
Desplazamiento = 31 mod 32 = 31 (0,31) = (70,31)= 70 * 32 + 31 = 2271
c) #pagina= 100/32 = 3 Desplazamiento = 100 mod 32 = 4 (3,4) = (65,4)= 65 * 32 + 4 = 2084
d) (4,25) = Error de paginacion
5.3. Segmentación de Memoria 5.3.1. En un sistema que utiliza segmentación de memoria, se tiene la siguiente tabla de segmentos:
N° Segmento Base Longitud 0 534 440 1 230 50 2 290 739 3 1562 287
A que direcciones físicas corresponden las siguientes direcciones lógicas (N° segmento, desplazamiento): a) (0, 444) b) (1, 23) c) (2, 738) d) (3, 287)
Solución a) (0, 444) Si 444 < 440 entonces Error de Segmentacion b) (1, 23) Si 23 < 50 entonces 230+23 = 253 c) (2, 738) Si 738 < 739 entonces 290+738 = 1028 d) (3, 287) Si 287 < 287 entonces Error de Segmentacion
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
18
5.3.2. En un sistema que utiliza gestión de memoria segmentada, se tiene la siguiente tabla de segmentos:
¿A qué direcciones físicas corresponden las siguientes direcciones virtuales?: (0,128) (3,558) (0, 950) El formato corresponde a (no de segmento, desplazamiento). Solución a) (0,128) Si 128 < 300 500 + 128 = 628 b) (3,558) Si 558 < 650 entonces 2634 + 558 = 3192 c) (0, 950) Si 950 < 300 entonces Error de segmentacion 5.4. Paginación - Segmentación de Memoria 5.4.1. Se tiene un sistema que utiliza gestión de memoria con segmentación paginada, con un tamaño de pagina de 256 bytes. A continuación se muestra la tabla de segmentos de un proceso y la tabla de paginas de todos los segmentos:
N segmento Base Longitud 0 0 600 1 2 14
Tabla de paginas N paginas N de marco 0 50 1 22 2 145 3 29 4 21 5 83 6 210
Se pide calcular las direcciones físicas para las siguientes direcciones lógicas. El formato de la dirección lógica es (N segmento, desplazamiento):
a) (0,259) b) (0,518) c) (1,10) d) (0,600) e) (3,150)
Solución
a) (0,259) Si 259 < 600 entonces
# pagina = 259 / 256 = 1 Desplazamiento = 259 mod 256 = 3 (1,3) base + #Pagina = 0 + 1 = 1 (22,3) = 22 * 256 + 3 = 5635
b) (0,518) Si 518 < 600 entonces
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
19
# pagina = 518 / 256 = 2 Desplazamiento = 518 mod 256 = 6 (2,6) base + #Pagina = 0 + 2 = 2 (145,6) = 145 * 256 + 6 = 37126
c) (1,10) Si 10 < 14 entonces # pagina = 10 / 256 = 0 Desplazamiento = 10 mod 256 = 10 (0,10) base + #Pagina = 0 + 2 = 2 (145,10) = 145 * 256 + 10 = 37130
d) (0,600) Si 600 < 600 entonces Error de segmentacion e) (3,150) No hay segmento 3 Error 5.5. Sustitución de Memoria 5.5.1. En un sistema con memoria virtual con 3 marcos de memoria que tiene la siguiente información:
Pagina Tiempo de carga inicial
Tiempo de última referencia
Bit Referencia Bit Modificación
0 120 250 1 0 1 155 210 0 0 2 140 260 1 1 3 185 190 0 1
¿Qué pagina es candidata a reemplazar el algoritmo LRU (Ultimo Recientemente Usado), al terminar esta sustitución? ¿Qué pagina es candidata a reemplazar el algoritmo de reloj, al terminar esta sustitución Solución LRU
0 2 1 3 3 1 0 2 0 2 1 3 3 1 0 2 0 2 1 1 3 1 0 0 2 2 2 3 1 X X X X
X X
Candidato a salir, pagina 1 Reloj
2 1
1 0
0 1
Candidato a salir, pagina 0 5.5.2. Considera un programa que genera una secuencia de referencias a direcciones
virtuales que corresponde a la siguiente secuencia de referencias de páginas:
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
20
1, 2, 3, 4, 1, 2, 5, 6, 1, 3, 1, 2, 5
Aplicar sustitución de paginas para los algoritmos siguientes LRU (Ultimo Recientemente Usado) y Optimo. Inicialmente se dispone de 5 marcos vacíos. Solución LRU
1 2 3 4 1 2 5 6 1 3 1 2 5 1 2 3 4 1 2 5 6 1 3 1 2 5 1 2 3 4 1 2 5 6 1 3 1 2
1 2 3 4 1 2 5 6 6 3 1 1 2 3 4 1 2 5 5 6 3 3 4 4 2 2 5 6 X X X X
X X
X
Se generan 7 fallos de pagina OPTIMO
1 2 3 4 1 2 5 6 1 3 1 2 5 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 6 6 6 6 6 6 5 5 5 5 5 5 5 X X X X
X X
Se generan 6 fallos de pagina 5.5.3. En un sistema que implementa memoria virtual mediante demanda de páginas se
utiliza el algoritmo LFU (Ultimo Frecuentemente Usado) para la sustitución de páginas. Un proceso genera la siguiente secuencia de referencias a páginas en memoria:
1 2 3 4 5 3 4 1 6 7 8 9 7 8 9 6 1 2 3 5 4 3 7 Determinar cuántos fallos de página se producen disponiendo 3 marcos de memoria para este proceso. Solución LFU 1
2
3
4
5
3
4
1
6
7
8
9
7
8
9
6
1
2
3
5
4
3
7
1 1 1 1 1 1 4 1 5 1 5 1 5 1 1 1 6 1 7 1 8 1 9 1 7 1 8 1 9 1 6 1 1 1 2 1 2 1 5 1 5 1 5 1 7 1
2 1 2 1 2 1 4 1 4 1 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 3 4 3 4 3
3 1 3 1 3 1 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 2 3 3 3 3 3 3 3 3 3 3
X X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
Se generan 18 fallos de pagina
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
21
Capítulo 7. Sistemas de Entrada/Salida 7.1. Planificación de Discos 7.1.1. Suponga que un manejador de disco recibe peticiones de bloques de disco para las siguientes pistas: 52, 35, 46, 23, 90, 102, 13, 134, 20, 42, 100, 55, 70, 180, 150. Si el disco tiene 200 pistas, el tiempo de acceso entre pistas consecutivas es 4 ms y el tiempo de acceso de la pista 0 a la 199 es 8 ms. Calcule los desplazamientos y tiempos de acceso para los algoritmos de planificación de disco FCFS (First Come First Served), SSFT (Shortest Seek First), SCAN(up), C-SCAN(up), LOOK(up) y C-LOOK(up). El cabezal de lectura esta en la pista 30. Solución FCFS
Desplazamientos entre cilindros = 22+6+23+67+12+89+121+114+22+58+45+15+110+30 =734 / 14 = 52,43 Tiempo de acceso = 734 * 4 = 2936 ms
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
22
SSFT
Desplazamientos entre cilindros = 5+7+4+6+3+15+20+10+2+32+16+30+157+10 =317 / 14 = 22,64 Tiempo de acceso = 317 * 4 = 1268 ms SCAN
Desplazamientos entre cilindros = 5+7+4+6+3+15+20+10+2+32+16+30+19+176+3+7 =355 / 14 = 25,35 Tiempo de acceso = 355 * 4 = 1420 ms
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
23
C-SCAN
Desplazamientos entre cilindros = 5+7+4+6+3+15+20+10+2+32+16+30+19+0+13+7+3 =192 / 14 = 13,71 Tiempo de acceso = 192 * 4 + 8 = 776 ms LOOK
Desplazamientos entre cilindros = 5+7+4+6+3+15+20+10+2+32+16+30+157+3+7 =317 / 14 = 22,64 Tiempo de acceso = 317 * 4 = 1268 ms
Problemas Resueltos Sistemas Operativos
Ing. Jorge Orellana A.
24
C-LOOK
Desplazamientos entre cilindros = 5+7+4+6+3+15+20+10+2+32+16+30+167+7+3 =327 / 14 = 23,35 Tiempo de acceso = 327 * 4 = 1308 ms