PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · Problemas Resueltos Sistemas Operativos! Ing. Jorge...

25
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIA DEPARTAMENTO INFORMATICA – SISTEMAS PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS Jorge Walter Orellana Araoz 2016

Transcript of PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · Problemas Resueltos Sistemas Operativos! Ing. Jorge...

Page 1: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

UNIVERSIDAD MAYOR DE SAN SIMON

FACULTAD DE CIENCIAS Y TECNOLOGIA DEPARTAMENTO INFORMATICA – SISTEMAS

PROBLEMAS RESUELTOS

SISTEMAS OPERATIVOS

Jorge Walter Orellana Araoz

2016

Page 2: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 3: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 4: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 5: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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 */;

Page 6: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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);

Page 7: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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();

Page 8: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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; } }

Page 9: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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); } }

Page 10: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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)

Page 11: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 12: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 13: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 14: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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.

Page 15: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 16: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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?

Page 17: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 18: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 19: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 20: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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:

Page 21: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 22: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 23: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 24: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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

Page 25: PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS · 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.

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