INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Sistemas Operativos – IS11 Curso 2003-2004 EJERCICIOS DE MEMORIA: 1) Un sistema realiza una gestión de memoria virtual mediante paginación por demanda, con la memoria dividida en cinco marcos de 512 posiciones cada uno. En un momento determinado, se encuentran en el sistema tres procesos, cada uno de ellos con el siguiente esquema de memoria lógica Proceso A Proceso B Proceso C A1 B1 C1 A2 B2 C2 A3 B3 C3 B4 C4 C5 Durante la ejecución de dichos procesos, se produce la siguiente secuencia de accesos a páginas, que dan lugar a la ocupación de memoria que se muestra: A1 A1 A2 B1 B2 B3 C1 C2 C3 C2 A2 A1 A2 B4 B1 C5 C4 t0 A1 A1 A2 A2 A2 A2 A2 A2 A2 A2 A2 A1 A2 A2 A2 A2 A2 t1 B1 B1 B3 B3 B3 B3 B3 B3 B3 B3 B3 B1 B1 B1 t2 B2 B2 B2 B2 B2 B2 B2 B2 B2 B4 B4 B4 B4 t3 C1 C1 C3 C3 C3 C3 C3 C3 C3 C5 C5 t4 C2 C2 C2 C2 C2 C2 C2 C2 C2 C4 ¿Qué algoritmo y qué estrategia de sustitución de páginas se ha utilizado. Justificar la respuesta indicando porqué no pueden ser ninguno de los otros algoritmos estudiados 2) En un sistema de gestión de memoria virtual mediante paginación por demanda se tiene un tamaño de página de 512 posiciones, una memoria virtual de 16 páginas (numeradas de 0 a 15) y una memoria física de 4 tramas (numeradas de 0 a 3). El contenido actual de la memoria libre para usuario es: Trama 0 1 2 3 Contenido Página 4 Página 9 Página 5 Página 1 a) Mostrar el contenido de la tabla de páginas b) Idem tras generar cada una de las siguientes direcciones lógicas (suponiendo que el algoritmo óptimo para el reemplazo de páginas): 0458H 066DH 0801H 026EH 0AD8H c) En la situación final del punto b) obtener las direcciones físicas equivalentes a las siguientes direcciones lógicas: 065CH 0353H 0A8CH d) ¿Qué ocurre al referenciar la dirección lógica 0532H? INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Sistemas Operativos – IS11 Curso 2003-2004 3) Tenemos un computador cuyo esquema de administración de memoria es segmentación paginada con paginación por demanda y se utiliza una política de reemplazo de páginas local. Sabemos que un proceso tiene los siguientes segmentos: Segmento 0 Pagina 0 Página 1 Página 2 Segmento 1 Segmento 2 Segmento 3 Página 0 Página 1 Página 2 Página 0 Página 1 Página 2 Página 3 Página 4 Página 0 Página 1 Página 2 Página 3 Segmento 4 Página 0 Página 1 Página 2 Página 3 Página 4 Página 5 Además, partiendo de un estado inicial en el que no tenía ninguna página cargada en memoria, ha generado las siguientes direcciones lógicas y como resultado de ellas sabemos las direcciones físicas con las que finalmente se ha accedido a memoria. Direcciones Tipo Acceso Direcciones Lógicas Físicas 00043H E 5243H 80AFCH L 70FCH 606B4H L 58B4H 60464H L 7064H 80693H E 5893H a) ¿Cuántos marcos de memoria han sido asignados al proceso y cuáles son?. ¿Cuál es el tamaño del marco de memoria?. ¿Cuál es el número máximo de páginas que puede tener un segmento?. ¿Cuál es el número de posiciones máximo que puede tener la memoria?. Justificar las respuestas. b) Dadas las siguientes direcciones lógicas que genera posteriormente el proceso, y suponiendo que se utiliza un algoritmo de reemplazo de páginas con bits de referenciado y modificado. Indicar las direcciones físicas a las que se accede. Direcciones Lógicas 40764H 0018CH 806DCH 202C3H 815C7H Tipo Acceso L E L E E NOTA: El sistema operativo pone periódicamente los bits de referenciado de todas las páginas a cero: Cada cuatro accesos a memoria y justo después del cuarto. INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Sistemas Operativos – IS11 Curso 2003-2004 4) Tenemos un computador que utiliza un esquema de administración de memoria de paginación por demanda. El número máximo de páginas de un proceso es de 64, el número de marcos de memoria de 16 y el tamaño de la palabra en memoria de 16 bits. Dada una secuencia de direcciones lógicas generadas por un proceso, se conoce el estado de la tabla de páginas del proceso después de cada acceso a memoria, siendo el que figura a continuación. El bit V/I es el bit de válido inválido, el bit R es el de referenciado y el bit M el de modificado. También se indica la dirección física a la que se ha accedido como consecuencia de la dirección lógica usada. 1) Página Marco V/I R M 2) Página Marco V/I R M 0 3h v 0 1 0 3h v 0 1 1 I 1 i 2 I 2 Ah v 1 1 3 5h v 0 0 3 5h v 0 0 4 I 4 i 5 Ah v 0 0 5 i 6 I 6 i 7 Fh v 1 0 7 Fh v 1 0 Dirección Física: 1EF1h Dirección Física: 1554h 3) 5) 7) Página Marco V/I R 0 3h v 0 1 i 2 Ah v 1 3 i 4 5h v 1 5 i 6 i 7 Fh v 1 Dirección Física: 0A33h M 1 Página Marco V/I R 0 3h v 0 1 i 2 Ah v 1 3 i 4 5h v 1 5 i 6 i 7 Fh v 1 Dirección Física: 0B6Bh M 1 Página Marco V/I R 0 3h v 1 1 i 2 Ah v 1 3 Fh v 1 4 5h v 1 5 i 6 i 7 i Dirección Física: 1E66h M 1 4) 1 0 0 6) 1 1 0 1 0 1 8) Página Marco V/I R 0 3h v 0 1 i 2 Ah v 1 3 i 4 5h v 1 5 i 6 i 7 Fh v 1 Dirección Física: 15BAh M 1 Página Marco V/I R 0 3h v 1 1 i 2 Ah v 1 3 i 4 5h v 1 5 i 6 i 7 Fh v 1 Dirección Física: 0635h M 1 1 0 0 1 1 0 Página Marco V/I R M 0 3h v 1 1 1 i 2 Ah v 1 1 3 i 4 5h v 1 1 5 i 6 i 7 Fh v 1 0 Dirección Física: 1FC7h a) Calcular las direcciones lógicas de memoria que se han utilizado e indicar qué tipo de acceso se ha realizado a memoria, de lectura, de escritura, o es posible que haya sido cualquiera de los dos. INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Sistemas Operativos – IS11 Curso 2003-2004 b) ¿Cuál es el tamaño máximo que puede tener un proceso en este sistema?, ¿cuál es el tamaño de la memoria del ordenador?, ¿cuál es el tamaño de las páginas?, ¿Y de los marcos?. c) ¿Es posible que se haya empleado el algoritmo óptimo para reemplazar páginas?. Justificar la respuesta. d) ¿Es posible que se haya empleado el algoritmo que utiliza los bits de referenciado y modificado para reemplazar páginas?. Justificar la respuesta. En la situación 1), ¿qué pagina llevaba más tiempo cargada en memoria, la 3 ó la 5. 5) En un determinado sistema informático se utiliza un esquema de paginación por demanda. El número máximo de páginas de un proceso es de 64, el número de marcos de memoria de sistema 16 y el tamaño de la palabra en memoria es de 16 bits. Para un determinado proceso se conoce la siguiente información. Su número de páginas es de 5, su tamaño de 70Kbytes, en un determinado momento la configuración de su tabla de páginas es la dada por la figura 1) y en dicho momento se sabe que la fragmentación interna del proceso es de 10Kbytes. A partir de dicha situación 1), el proceso genera una serie de direcciones lógicas. Para cada dirección lógica se sabe el número de página utilizado por el proceso y la dirección física con la que finalmente se accedió a memoria 2)-8). 1) Página 0 1 2 3 4 Marco V/I R M 3h V 0 1 I I I Fh V 0 0 2) Página: 3, DF: 2AA0h 3) Página: 1, DF: 893h 4) Página: 2, DF: DC6h 5) Página: 0, DF: 3384h 6) Página: 4, DF: 2A49h 7) Página: 2, DF: FCFh 8) Página: 3, DF: 3C9Fh Se pide: a) Calcular las direcciones lógicas que ha utilizado el proceso. b) Dibujar el estado de la tabla de páginas después de cada acceso a memoria. c) ¿Cuál es el tamaño máximo que puede tener un proceso en este sistema?, ¿Cuál es el tamaño de las páginas?, ¿Y de los marcos?. 6) Tenemos un computador que utiliza un sistema de administración de memoria de paginación por demanda. El número de páginas de un proceso es de 64, el número de marcos de memoria de 16 y el tamaño de la palabra de memoria de un byte. Dada una secuencia de direcciones lógicas generadas por un proceso A, se sabe que el estado de la tabla de páginas del proceso después de cada acceso a memoria es el que figura a continuación. También se indica la dirección física de memoria a la que se ha accedido, como consecuencia de la dirección lógica usada (inicialmente el proceso no tiene ninguna página cargada en memoria). 1) Página Nº Bit valiMarco do/invalido 2) Página Nº Bit valiMarco do/invalido 0 i 0 1 i 1 i 2 i 2 i 3 i 3 i 4 i 4 i v 5 6 i 6 i 7 i 7 i 5 5h 1) Dirección Física: 280h Ah 5h v v 2) Dirección Física 52Ch INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Sistemas Operativos – IS11 Curso 2003-2004 3) Página Nº Bit valiMarco do/invalido 4) Página Nº Bit valiMarco do/invalido 0 Ah v 0 Ah v 1 Ch v 1 Ch v 2 i 2 3 i 3 4 i 4 i v 5 i 6 i 6 i 7 i 7 i 5 5h 3) Dirección Física: 671h 5) Página Nº Bit valiMarco do/invalido i 5h v 4) Dirección Física: 2AEh 6) Página Nº Bit valiMarco do/invalido 0 Ah v 0 1 Ch v 1 i 2 v 3 4 i 4 i 5 i 5 i 6 i 6 i 7 i 7 2 3 5h 5) Dirección Física: 655h 7) Página Ch i 5h Ah v v 6) Dirección Física: 527h v i 3 i 5h v 5 i 6 i 7 v i 2 4 Ch Nº Bit valiMarco do/invalido 0 1 i Ah v 7) Dirección Física: 2E1h a) Calcular en hexadecimal las direcciones lógicas que han sido generadas por el proceso. b) ¿Cuál es el tamaño de las páginas, marcos y de la memoria lógica del ordenador?. ¿Cuáles son los algoritmos de reemplazo de páginas que pueden haberse empleado?. 7) Describir detalladamente como funcionan los siguientes algoritmos de reemplazo de páginas para administración de memoria virtual. 1.- Algoritmo FIFO. 2.- Algoritmo Óptimo. 3.- Algoritmo de la Segunda Oportunidad. 4.- Algoritmo usando bits de referenciado y modificado. INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Sistemas Operativos – IS11 Curso 2003-2004 b) Supongamos que tenemos un proceso para el que se han asignado tres marcos de memoria, que inicialmente no tiene ninguna página cargada en memoria, y que realiza los siguientes accesos a páginas en los que se especifica si es para escritura o lectura: Página Tipo de Acceso E.: L.: 7 E. 1 L. 2 L. 3 E. 4 L. 1 E. 7 L. Significa acceso para escritura. Significa acceso para lectura. Indicar cuales son las páginas que tendrá el proceso cargadas en memoria después de cada acceso, para los cuatro casos de algoritmos de reemplazo de páginas del apartado a). Suponiendo que el sistema operativo pone a cero los bits de referenciado de todas las páginas cada cuatro accesos a memoria del proceso. (Justo después del cuarto pone los bits de referenciado a cero). NOTA: En el caso 4, (algoritmo usando bits de referenciado y modificado), si hay casos en los que no se puede elegir una sola página, usa FIFO para decidir entre las páginas candidatas. 8) Se tiene un sistema de gestión de memoria virtual con paginación por demanda con 2Kbytes de memoria central y con un tamaño de página de 512 bytes. En un momento determinado se tienen tres procesos en el sistema Pa, Pb y Pc. Si se produce la siguiente secuencia de direccionamientos lógicos: 1) 2) 3) 4) 5) 6) Pa, 1023 Pa, 0783 Pc, 1089 Pb, 2450 Pa, 1025 Pc, 0024 7) 8) 9) 10) 11) 12) Pb, 0224 Pc, 3848 Pc, 0098 Pa, 0678 Pc, 2900 Pc, 1250 Obtener el diagrama de ocupación de memoria central, suponiendo un algoritmo de reemplazo de página óptimo, en los siguientes casos: a. Utilizando una política de reemplazo global. b. Utilizando una política de reemplazo local. 9) Un computador posee una memoria central de 2 Mbytes. El sistema operativo utiliza 640 Kb de la parte baja de dicha memoria. El resto de memoria es distribuida entre diversos procesos que se ejecutan utilizando un esquema de segmentación paginada con paginación por demanda. Cada proceso puede tener un máximo de 8 segmentos con un máximo de 64 páginas cada uno. Las páginas son de 32 kb. Los procesos A, B, y C presentan la siguiente segmentación: Segmento 0 1 A Tamaño 70 Kb 18 Kb 60 Kb B Tamaño 110 Kb 56 Kb C Tamaño 82 Kb 40 Kb 22 Kb Durante la ejecución de dichos procesos, se produce la siguiente secuencia de accesos a páginas, que dan lugar a la ocupación de memoria que se muestra. Las referencias se indican según la siguiente sintaxis (proceso, segmento, página): Referencias nº trama 2B 2D 1C 1D 0E 0F (C,1,1) (C,2,0) (A,0,1) (A,0,1) (A,0,2) (A,0,1) (A,0,2) (B,0,1) (A,0,1) (A,0,2) (B,0,1) (C,1,0) (A,0,1) (A,0,2) (B,0,1) (A,1,0) (A,1,0) (A,0,2) (B,0,1) (C,1,1) (C,1,1) (C,2,0) (C,1,1) (C,2,0) (C,1,1) (C,2,0) (C,1,1) (C,2,0) (C,1,0) (C,2,0) (C,1,0) (C,2,0) INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Sistemas Operativos – IS11 Curso 2003-2004 Referencias nº trama 2B 2D 1C 1D 0E 0F (A,0,2) (A,1,0) (A,0,2) (B,0,1) (C,1,0) (C,2,0) (B,0,2) (A,1,0) (A,0,2) (B,0,1) (B,0,2) (C,1,0) (C,2,0) (B,0,3) (A,1,0) (A,0,2) (B,0,1) (B,0,3) (C,1,0) (C,2,0) (B,0,1) (A,1,0) (A,0,2) (B,0,1) (B,0,3) (C,1,0) (C,2,0) (A,2,0) (A,2,0) (A,0,2) (B,0,1) (B,0,3) (C,1,0) (C,2,0) (A,0,2) (A,2,0) (A,0,2) (B,0,1) (B,0,3) (C,1,0) (C,2,0) a) ¿qué estrategia de sustitución de páginas se ha utilizado? Justificar la respuesta indicando porque no pueden ser ninguno de los otros algoritmos estudiados. b) Indicar el estado de las tablas de páginas de cada proceso al final de dicha secuencia de referencias. ¿Cuál es la fragmentación externa e interna que existe en ese momento? c) Calcular las direcciones lógicas generadas por el proceso A cuando se acceden a las direcciones físicas que se indican y que provocan que la tabla de páginas para dicho proceso quede en la situación mostrada tras cada acceso (se parte de la situación que se muestra en la primera tabla de páginas). Tabla de páginas inicial Nº Marco Bit presencia Bit de presencia 2D h 0 0= no presente 2B h 1 1=presente 2B h 0 2D h 0 2D h 1 2B h 0 Nº Marco Bit presencia Nº Marco Bit presencia 2D h 0 2D h 0 2B h 0 2B h 1 2B h 0 2B h 0 2B h 1 2B h 1 2D h 1 2D h 0 2B h 0 2D h 1 1) Dirección Física: 1594BF h 2) Dirección Física 1683AE h Nº Marco Bit presencia Nº Marco Bit presencia 2B h 1 2B h 1 2B h 0 2B h 0 2B h 0 2D h 1 2B h 0 2B h 0 2D h 0 2D h 0 2D h 1 2D h 0 3) Dirección Física: 15BC31 H 4) Dirección Física 168D77 h