Recopilación Preguntas Teoría PDF

Title Recopilación Preguntas Teoría
Course Sistemas Operativos
Institution Universitat Oberta de Catalunya
Pages 19
File Size 292 KB
File Type PDF
Total Downloads 68
Total Views 317

Summary

a) Indicad qué puede provocar que un proceso pase del estado Ready (preparado) al estado Run (ejecución).Este cambio de estado se produce cuando el planificador de la cpu selecciona un proceso de la cola de preparados para asignarle la CPU.b) Sea un sistema de gestión de memoria basado en paginación...


Description

a) Indicad qué puede provocar que un proceso pase del estado Ready (pr eparado) al estado Run (ejecución). Este cambio de estado se produce cuando el planificador de la cpu selecciona un proceso de la cola de preparados para asignarle la CPU. b) Sea un sistema de gestión de memoria basado en paginación bajo demanda. ¿Es posible que el espacio lógico de un proceso sea mayor que la can tidad de memo ria física instalada en la máquina ? Sí. Grac ias a la paginación bajo de manda, el espacio lógico puede ser más gr ande que la memoria física po rque el área de s wap puede almacenar las páginas del espacio lógico que no caben en memoria física. d) Definid el concepto de “lista de contr ol de acceso” (LCA). Es una lista de parejas (derecho, domino) asociada a un objeto. Para cada dominio, ind ica qué derechos tiene sobre el objeto. e) ¿En qué consiste la condición de “Circu lar Wa it” (Espera circula) necesaria para la existencia de deadlocks? Consiste en que existe un conjunto de 2 o más threads donde cada uno tiene concedido, como mínimo, un recurso en exclusión mutua y todos ellos están bloqueados esperando obtener un recurso que está concedido a otro de los threads de l conjunto. a) Indicad qué puede provocar que un proceso pase del estado Run (ejecución) al estado Wait (bloqueo). Esta transición típicamente se realiza cuando un proceso invoca una llamada al sistema bloqueante. Otro caso sería si el proceso recibe un signal SIGSTOP. b) Sea un sistema de gestión de memoria basado en paginación bajo demanda. A lo largo de la ejecución de un proceso, ¿es posible que d irecciones lógicas diferentes sean traduc idas a una misma dirección física? Sí, porque con paginac ión bajo demanda, una pág ina puede ser expulsada de memo ria física y ser remplazado por otra página de l mismo proceso. Por tanto, am bas página s lógicas habrán tenido asociado el mismo frame físico. d) Definid de l concepto de “capability”. La capability es una tupla (objeto, derechos) asociad a a un domino. Para un dominio nos indica qué derechos tiene sobre un objeto. e) ¿En qué consiste la condición de “Hold and Wait” (Retención y espera) necesaria para la existencia de deadlocks? Consiste en que los threads tienen asignado un recurso en exclusión mutua (hold) y que está bloqueado esperando que el sistema le asign e o tro recurso (wait).

a) Indicad qué puede provocar que un proceso pase del estado Run (ejecución) al estado Ready(preparado). Típicamente, esta transición sería provocada por un planificador de la cpu basado en round robin cuando finaliza el quantum asociado al proceso. b) Sea un sistema de gestión de memoria basado en paginación bajo demanda. A lo largo de la ejecución de un proceso, ¿es posible qu e una d irección lógica sea traducida a diferentes direcciones físicas? Sí. Grac ias a la paginación bajo de manda, una página lóg ica puede ser intercambiada de memoria a disco y de disco a memoria diversas veces a lo largo de la ejecución de un proceso, pudiendo ocupar un frame diferente cada vez que vuelve a memoria.

d) Indicad un ejemplo de utilización de “lista de contr ol de acceso ” y de “capability” en Unix. Un ejemplo de llista de control de acceso son los bits de protección rwxrwx rwx asociados a los ficheros. Un ejemplo de c apability es el file descriptro retor nado por la llamada al sistema open. e) ¿En qué consiste la condición de “No preemption” (No expropiac ión) necesa ria para la existencia de deadlocks? Consiste en que un recurso que ha sido asignado a un thread sólo puede ser liberado por ese mismo thread. Ni ngún o tro proceso puede a rrebatarle el recurso. a) Indicad un acontecimiento que pueda provocar que un proceso cambie de estado Ready (Preparado) a estado Run (Ejecución). Una interrupción de reloj causa que el planificador expulse de la CPU el proceso que actualmente está en ejecución y seleccione a uno de los que actualmente está a Ready para que pase a Run. b) Dado un proceso en ejecución en un sistema Linux, si no existe ni memoria física ni espacio en swap dis ponible, ¿cuál será el resultado de ejecutar la rutina malloc()? La rutina malloc() devolverá un error; concretamente, la dirección de retorno será NULL, porque no es posible satisfacer la petición del usuario. c) Indicad un ejemplo de c ada tipo de dispositivo: físico, lógico y virtual. Disco duro, fichero y canal de entrada/salida respectivamente. El primero corresponde al hardware desnudo, el segundo corresponde a la abstracción que construye el SO para facilitar el uso de dic ho dispositivo físico y el tercero es la abstracción que ofrece el SO para acceder a todos los dispositivos de entrada/salida. d) ¿Es posible que un proceso padre tenga varios hijos simultáneamente en estado Zombie? Sí. Un proceso puede estar en estado zombie con independencia de en qué estado se encuentren sus procesos hermanos. Por tanto, un proceso padre puede tener varios hijos en estad o zombie simultáneamente. e) Queremos sincronizar dos threads (es decir, qu e el primer thread se bloquee mientras el segundo thread no le notifique que puede continuar) mediante un semaforo, ¿cómo debemos inicializar y utilizar el semáforo? Debe inicializarse a 0. El proceso que espera la notificación debe realizar un sem_wait sobre el semáforo mientras que el que realiza la notificación debe hacer un sem_signal sobre el semáforo.

c) En un sistema de gestión de memoria basado en paginación sin memoria virtual, es posible ejecutar un programa asignándole un solo frame de memoria física. No es posible, ya que si no se utiliza memoria virtual, se requiere que todo el mapa de memoria de un proceso se encuentre ubicado en memoria física. d) Indicar las llam adas al sistema necesita utilizar el intérprete de comandos para ejecutar el siguiente comando: >sort< file.txt & El intérprete de comandos necesita utilizar la llamada al sistema fork para crear un proceso hijo. Para redirigir el fichero "file.txt" a la stdin del proceso hijo tiene que utilizar las llamadas al sistema close para cerrar la stdin y el open para abrir el fichero de lectura sobre dicho descriptor. A continuación , el proceso hijo tiene qu e realizar un recubrimiento (llamada al sistema exec*) para que el proceso ejecute el programa sort. Como se ejecuta en primer plano, el intérprete de comandos no puede c ontinuar con su ejecución (y pedir un nuevo comando) hasta que el programa anterior haya acaba do, por lo que necesita invocar a la llamada al sistema wait. Por último el programa del proceso hijo cuando finalice invocará a la llamada al sistema exit(). c) En un sistema de gestión de memoria basado en paginación con memoria virtual, indicad bajo que circunstancias un frame se escribe en el swap o se lee del swap. Un frame se envía al sw ap cuando se necesita su memoria para otro proceso y se necesita salvar su contenido en el disco para poder recuperar m ás tarde. Un frame se lee del sw ap cuando se produce un fallo de página y se necesita acceder a la información de esa página, por lo que es necesario asignarle un frame y leer su estado desde el swap. d) Indicar las llam adas al sistema necesita utilizar el interprete de comandos para ejecutar un programa en m odo foreground (prim er plano) Necesita utilizar la llamada al sis tema fork para crear un proceso hijo, a continuación sobre el proceso hijo tiene que realizar un recubrimiento (llamada al sistemaexec*) para cargar el nuevo program a. Como se ejecut a en primer plano, el interprete de comandos no puede continuar con su ejecución (y pedir un nuevo comando) hasta qu e el programa anterior haya acabado, por lo que necesita invocar a la llamada al sistema wait. Por último el programa del proceso hijo cuando finalice invocará a la llamada al sistema exit().

c) En un sistema de gestión de memoria basado en paginación sin memoria virtual, ¿Es posible que dos procesos puedan compartir una parte de la memoria en direcciones lógicas diferentes? Si que es posible, solo es necesario de que las dos direcciones lógicas de ambos procesos apunten al mismo frame de memoria física dentro de sus respectivas tablas de páginas.

d) Indicar las llam adas al sistema necesita utilizar el interprete de comandos para ejecutar el siguiente comando: >ls -la | sort> file.txt Primero, el interprete de com andos necesita crear un pipe para comunicar los dos comandos, para ello utili za la llamada al sis tema pip e. A continuación utiliza la llamada al sistema fork para crear dos procesos hijo (uno para el ls y otro para el sort). Seguidamente tiene que redirigir la stdout del proceso hijo "ls" a la entrada del pipe y la salida del pipe a la stdin d el proceso hijo "sort", para ello ut iliza las lla madas al sistema close y dup (o alternativamente dup2). Por últim o realiza el recubrimiento en ambo s procesos (llamada al sistema exec*) para cargar los programas de los comandos que tie ne que ejecutar cada uno de ellos. Cuando los programas hij os finalicen invocarán a la llamada al sistema exit(). Como el comando se ejecuta en modo background (segundo plano), el interprete de comandos no tie ne que utilizar la llamada al sistema wait.

a) Indicad un acontecimiento que pueda provocar que un proceso cambie de estado Run (Ejecución) a estado Ready (Preparado). La interrupción de reloj hace que el planificador pueda expulsar de la CPU al proceso que actualmente la está utilizando para dar paso a otro proceso de los que están Preparados. b) Dado un proceso en ejecución en un sistema Linux, ¿es posible que dos invocaciones diferentes a la rutina malloc() devuelvan como resultado la misma dirección lógica? Es posible si entre las dos invocaciones a malloc() se ha producido un free() de la dirección obtenida en el primer malloc(). c) ¿Qué es un dispositivo virtual? Poned un ejemplo de este tipo de dispositivo. Es la abstracción que el SO ofrece a los procesos para realizar operaciones de entrada/salida. Todos los canales que tiene abiertos un proceso corresponden a dispositivos virtuales. d) ¿Qué es un proceso Zombie? Es un proceso que ha muerto pero que está esperando que su padre reciba la notificación (mediante la llamada al sistema wait()) de su terminación. En cuanto el padre reciba la notificación, el proceso zombie desaparecerá del sistema. e) Queremos regular el acceso a una variable en exclusión mútua mediante un semaforo, ¿cómo debemos inicializar y utilizar el semáforo? Debe inicializarse a 1. Antes de acceder a la variable es preciso solicitar el acceso mediante un sem_wait sobre el semáforo; una vez finalizado el acceso, es preciso notificar que queda libre mediante un sem_signal sobre el semáforo.

a) Indicad un acontecimiento que pueda provocar que un proceso cambie de estado Run (Ejecución) a estado Wait/Block (Bloqueo). La ejecución de un a llamada al sistema bloqueante; por ejemplo, la llamada al sistema read() sobre el teclado. b) Dado un proceso en ejecución en un sistema Linux, ¿la rutina malloc()devuelve una dirección lógica o una dirección física? Es una dirección lógica. Desde el punto de vista del usuario, las direcciones de memoria son lógicas. c) ¿Qué tipo de dispositivo es un fichero ordinario? Un fichero ordinario corresponde a un dispositivo lóg ico porque es una abstracción construída por el sistema operativo pero que no es accesible directamente por los procesos. d) ¿Es posible que un proceso Zombie vuelva al estado Run? No. Un proceso puede estar en estado zombie entre que invoca a la llamada exit() y desaparece completamente del sistema. No es posible el retorno a un estado de ejecución.

e) Queremos gestionar un contador de recursos mediante un semaforo, ¿cómo debemos inicializar y utilizar el semáforo? El semáforo debe inicializarse con la cantidad de recursos disponibles inicialmente. Para solicitar un recurso debe ejecutarse la llamada sem_wait() sobre el semáforo; para liberar un recurso debe ejecutarse la llamada sem_signal sobre el semáforo.

a) ¿En qué circunstancias un proceso pasa de estado Blocked(Wait) a estado Ready? ¿Y de Run a Blocked(Wait)? Si es posible, indicad una llamada al sistema que provoque el cambio en cada caso. Típicamente, un proceso abandona el estado de Wait y pasa a Ready cuando se produce el acontecimiento que el proceso estaba esperando (por ejemplo, la finalización de una operación de lectura, la expiración de un temporizador,...). [No es necesario] También puede provocarse esta transición con algún signal o si el SO detecta algún error mientras se espera el acontecimiento. La transición de Run a Wait se producirá cuando el proceso invoque una llamada al sistema bloqueante como por ejemplo un a lectura (read) s obre el teclado, sigsuspend,... ( b) Sea un sistema de gestión de memoria basado en paginación bajo demanda con tamaño de página 4KB. ¿Es posible que la traducción de la dirección lógica 0x1001 no provoque una excepción por fallo de página pero que la traducción de la dirección lógica 0x1002 sí la genere? Podéis asumir que las direcciones lógicas involucradas en este ejercicio corresponden a páginas válidas y que el contenido de la tabla de páginas es el mismo en ambas traducciones; las direcciones están expresadas en hexadecimal. Ambas direcciones lógicas corresponden a la misma página lógica (la 0x1, el resultado de descartar los 12 bits bajos porque las páginas s on de 2^12 bytes). Por tanto, al traducir ambas direcciones lógicas se accederá a la misma entrada de la tabla de páginas. Por tanto, como nos dicen que el contenido de la tabla de páginas no varia, o ambas traducciones no generan fallo de páginas o ambas lo generan. c) Los dispositivos de entrada/salida pueden clasificarse como “físicos”, “lógicos” y “virtuales”. ¿En qué se diferencian un dispositivo “físico” y un “virtual”? Indicad qué tipos de dispositivos aparecen en el siguiente f ragmento de código.

... int fd, p[2]; char c; fd = open(“file.txt”, O_RDONLY); pipe(p); while (read(fd, &c, 1) > 0) write(p[1], &c, 1); ...

Un dispositivo físico corresponde al hardware, sin soporte alguno del SO. Un dispositivo virtual es la visión que tienen los procesos de los dispositivos de entrada/salida; es una visión ofrecida por el SO e independiente del dispositivo físico al que están accediendo. En el código aparecen dos dispositivos lógicos (“file.txt” y una pipe) y tres dispositivos virtuales (fd, p[0] y p[1]).

d) ¿Qué es un deadock? ¿En qué consiste la condición necesaria para la existencia de deadlock “No expropiación”? ¿Cómo se puede garantizar que nunca se producirá? Consiste en que los recursos que han sido asignados a un thread sólo pueden s er liberados por el propio thread. La forma de evitar esta condición sería perm itir que los threads pudieran liberar recursos que actualmente están asignados a otros threads.

a) ¿En qué circunstancias un proceso pasa de estado Ready a estado Run? ¿Y de Ready a Wait (Blocked)? Si es posible, indicad una llamada al sistema que provoque el cambio en cada caso. Un proceso pasa de Ready a Run cuando el proceso actualmente a Run pierde la CPU y el planificador de la CPU escoge, entre los procesos que están a Ready, a es te proceso para ejecutarse. Un proceso pasará de Ready a Wait si recibe un signal de otro proceso que lo bloquee mediante, por ejemplo, la llamada al sistema kill(pid, SIGSTOP).

b) Sea un sistema de gestión de memoria basado en paginación bajo demanda con tamaño de página 4KB. ¿Las direcciones lógicas no consecutivas 0x0FFF y 0x2000 serán siempre traducidas a direcciones físicas no consecutivas? Podéis asumir que las direcciones lógicas involucradas en este ejercicio corresponden a páginas válidas y presentes en memoria física; las direcciones están expresadas en hexadecimal. Aunque las direcciones lógicas no son consecut ivas, corresponden a páginas lógicas diferentes no consecutivas (la 0x0 y la 0x2 respectivamente, resultado de descartar los 12 bits bajos de las direcciones lógicas porque las páginas son de 2^12 bytes). Por tanto, estas direcciones lógicas estarán mapeadas a páginas físicas diferentes. Gracias a paginación, estas páginas físicas podrían ser dos páginas físicas cualesquiera, c on lo que podrían ser consecutivas.

b) Indicad cuántos procesos, pipes y redirecciones neces ita el intérprete de comandos para ejecutar el siguiente comando $ ls –la | grep nom | wc –l >> dades.txt Se neces itan 3 procesos: uno para ejecutar el comand o ls, o tro para el comand o grep y un tercero para el comando wc. Se necesitan 2 pipes uno para conectar la stdout del proceso ls a la stdin del proceso grep y otro para conectar la stdou t del proceso grep a la stdin del proceso wc. También se necesita realizar 5 redirecciones: red irigir la stdout de l proceso ls a la entrada del primer pipe; red irigir la stdin del proceso grep a la salida de l primer pipe; redirigir la stdout del proceso grep a la entrada del segundo pi pe; red irigir la stdin del proceso wc a la salida del segundo pipe y redirigir el archivo dades1.txt la stdout del proceso wc.

c) Es verdad que una de las principale s ventajas d e la memoria virtual e s que podemos Tamaño_Bus_Direcciones ejecutar procesos que tengan un espacio lógico mayor qu e 2 palabras (donde Tamaño_Bus_D irecci ones es el tamaño de l bus de d irecciones del procesador) independientem ente del tam año de la memoria física? Falso, la memoria virt ual nos permite ejecutar procesos que tengan un espacio ló gico mayor que el espacio físico, pero en ningún caso podremos considerar direcciones mayores que 2 Tamaño_Bus_Direcciones palabras ya que el rango potencial de d irecciones lógicas comienza en la d irección lóg ica 0 y finaliza en la dirección 2 Tamaño_Bus_Direcciones-1.

d) ¿Una aplicación de usua rio puede decidir que no quiere rec ibir una determinada inte rrupción? Falso, eso imp licaría ceder al usuario el con trol sobre el hardware, dand o pie a que las aplicaciones hicieran ma l uso , y causara n fa llas de protección o compartición de dispositivos, o simplemente pérdidas o inconsistencias de datos o func ionamiento. El acceso al sistema de inte rrupciones está reservado al modo supervisor. a) Indicad un motivo que pueda provocar que un proceso pas e de estad o Wait a estado Ready. Que se produzca el evento que el proceso está esperando (la finalización de un a operación de entrad a / salida, una tem porización, ...).

d) ¿Qué es un proceso zombie/defunct? Es un proceso que ya ha invocado la llamada al sistema exit , por lo tan to ya está m uerto, pero que su padre aún no ha invocado la llamada wait para tener constancia de su finalización.

P: La multiprogramación re duce e l tiempo de ejecución de los programas. R: Falso. La multiprogramación permite mejorar el ren dimiento global de un sistema pero no reduce el tiempo de ejecución de los programas. Con la multiprogramación se aprovecha el procesador durante el tiempo que un proceso realiza una entrada o salida. Por esta razón, el rendimiento del procesador aumenta, sin embargo, el proceso tardará lo mismo e incluso más para ejecutarse que sin multiprogramación. P: Puede existir un sistema monoprogramado y multiusuario R: Cierto, un ejemplo serian los sistemas de las primeras generaciones, co mo por ejemplo los sistemas Batch. Otro ejemplo podría ser un sistema que simula la ejecución de varías tareas a nivel de aplicación, por ejemplo podrían hacerse librerías se usuario que permitieran ejecutar varías tareas, por mecanismos, dónde por ejemplo, cada tarea deja un tiempo para que otras se ejecuten.

P: Los sistemas de tiempo compartido reducen e l tiempo de ejecución de las aplicaciones. R: Falso. Los sistemas de tiempo compartido permiten mejorar la utilización del procesador y, por lo tanto, mejoran el rendimiento del sistema y el t iempo de respuesta de las aplicaciones. En cambio, pueden incluso aumentar el tiempo de ejecución de las aplicaciones a causa del tiempo utilizado en cada cambio de contexto. P: El procesador nunca intentará ejecutar una instrucción privilegiada del lenguaje máquina desde el modo de ejecución de usuario (no privilegiado). R: Falso. El procesador puede intentar ejecutar cualquier instrucción, incluyendo una instrucción privilegiada, en cualquier modo de ejecución. Sin em bargo, en el caso que intente ejecutar una instrucció...


Similar Free PDFs