ASO 2022
|
|
Título del Test:
![]() ASO 2022 Descripción: Examenes ASO convocatorias 2022 |



| Comentarios |
|---|
NO HAY REGISTROS |
|
Con respecto a las llamadas al sistema en Linux: La llamadas al sistema están encapsuladas en funciones de la biblioteca de C. La llamada al sistema propiamente dicha consta de un conjunto de instrucciones ensamblador que incluyen una interrupción, y están encapsuladas en funciones de la biblioteca de POSIX. En el sistema de E/S de Windows: El Windows Driver Model realiza la llamada al sistema gestionando el flujo de información por la pila de drivers. El IRP guarda la información necesaria para hacer la llamada al sistema y esa información irá fluyendo por los filtros de la pila de drivers. El código int nread; while((nread = read(fh1, buf, BUF_SIZE)) >0) write(1, buf, nread); implementa: Una función equivalente al programa cat. Una función equivalente al programa head -c BUF_SIZE (imprime los primeros BUF_SIZE bytes de fh). En POSIX, tras la ejecución sobre un fichero fh abierto de las instrucciones lseek(fh, 1000,SEEK_SET); write(fh, buffer, 1);, suponiendo que no fallen, se da que: El tamaño del fichero asociado a fh es igual a 1001. El tamaño del fichero asociado a fh es mayor o igual a 1001. En xv6, el código sbrk(sbrk(0) - sbrk(0)); : Dobla el tamaño del proceso. Deja el tamaño del proceso como está. Con respecto al planificador CFS (Completely Fair Scheduler), indica cuál de las siguientes afirmaciones es cierta. La forma que tiene de proporcionar prioridades es enlentecer el tiempo virtual de las tareas más prioritarias. Tiene un orden de ejecución constante al realizar inserciones en el árbol balanceado. En el formato binario ELF: Todos los segmentos, menos el dinámico, se mapean en memoria. El intérprete necesario para que funcionen los programas enlazados dinámicamente se indica en el propio binario. Un proceso al que se le vuelve a conceder la CPU... Siempre arranca su ejecución en el núcleo del sistema operativo. Arrancará su ejecución en el mismo modo de ejecución en el que se encontraba cuando se le quitó la CPU. En un sistema Linux de 32 bits, se accede a la dirección virtual 0x00401028, entonces esta dirección queda dividida como: GlobalDir=0x1, UpperDir=0x0, MiddleDir=0x0, Table=0x1, Offset=0x028. GlobalDir=0x4, UpperDir=0x0, MiddleDir=0x0, Table=0x1, Offset=0x028. El algoritmo de reemplazo de páginas de Windows, cuando un proceso produce un fallo de página: Si empieza a haber presión de memoria se sustituye la página más antigua del conjunto de trabajo del proceso por la página nueva. Se amplía siempre el conjunto de trabajo del proceso, quitándole páginas a otros procesos si es necesario, sin tener en cuenta la presión de memoria. Cuando un proceso proporciona un manejador para una cierta señal y dicha señal se produce... El kernel pasa el control al manejador, que está en modo usuario, que al terminar su ejecución retorna a la instrucción siguiente a la que fue interrumpida por la señal. El kernel pasa el control al manejador, que está en modo usuario, que al terminar su ejecución retorna al kernel, que a su vez retornará a la instrucción siguiente a la que fue interrumpida por la señal. El código dup2(fh,5) es equivalente a dup(fh): Sólo cuando el identificador de fichero 5 está cerrado y todos los de números menores están abiertos. Sólo cuando el identificador de fichero 5 está cerrado. En la paravirtualización,. El sistema operativo guest tiene que ser modificado. El sistema operativo host tiene que ser modificado. Los sistemas de ficheros basados en log se dividen en: Segmentos y zona de nodos-i. Los segmentos contienen bloques de directorios y bloques de datos, y la zona de nodos-i todos los nodos-i del sistema de ficheros. Segmentos que contienen bloques de nodos-i, bloques de directorios y bloques de datos. En el sistema de gestión de memoria de buddy o de colegas de Linux, ¿es posible que haya dos bloques adyacentes de memoria libre del mismo tamaño y que no sean funsionados en un único bloque del doble de tamaño?. Si. No. Indica cuál de las siguientes afirmaciones es cierta: Linux trata de premiar a las tareas limitadas por CPU frente a las limitadas por E/S. Linux trata de premiar a las tareas limitadas por E/S frente a las limitadas por CPU. Las bibliotecas dinámicas de un programa en Linux se mapean con mmap con un mapeo... MAP_PRIVATE. MAP_SHARED. Indica cuál de las siguiente cuestiones sobre los procesos, hilos y fibras de Windows es la correcta. Cada proceso, hilo y fibra en Windows tiene una pila asociada diferente. Cada hilo y cada fibra en Windows tiene una pila asociada diferente. Si en un sistema de ficheros Ext3, un nodo-i tiene 12 direcciones para bloques de datos, un BSI, un BDI y un BTI. Si las direcciones son de 4 bytes y cada bloque de disco es de 1 KiB, el tamaño máximo de fichero es: De aproximadamente un 1 GiB. Deaproximadamente 16 GiB. Indica cuál de las siguientes opciones es un método válido para compartir datos entre dos procesos: Un mismo archivo mapeado en la memoria de ambos procesos. Que un proceso reserve memoria con malloc(), y luego cree un hijo. Tanto el padre como el hijo tienen acceso a esa zona de memoria porque ya estaba creada cuando se hizo el fork(). En la implementación de free(void*p) para memoria dinámica vista en clase... free(void*p) utiliza los bytes anteriores al puntero p para saber el tamaño del bloque. free(void*p) utiliza los primeros bytes apuntados por el puntero p para saber el tamaño del bloque. Respecto a los grupos de bloques usados por Ext2, Ext3 y Ext4: Cada grupo contiene una copia del superbloque, unos descriptores de grupo, un bloque con el mapa de bits de bloques del grupo, un bloque con el mapa de bits de nodos-i del grupo, varios bloques de nodos-i y bloques de datos. Cada grupo contiene unos bloques de disco reservados que se usan para el journaling del dichos sistemas de ficheros. En cuanto a la virtualización,. Un hipervisor de tipo 1 necesita de un S.O. subyacente para ejecutarse. Los hipervisores procuran que la mayor parte del tiempo tanto los programas como el S.O. se ejecuten nativamente sobre el procesador. En Linux, todas las bibliotecas compartidas se compilan: Usando código independiente de la posición. Usando código reubicable. Cada tarea (task) en Linux... Tiene una única pila pero dos punteros de pila: uno que indica por dónde va cuando se encuentra en modo usuario, y otro que indica por dónde se encuentra la pila cuando está en modo núcleo. Tiene dos pilas: una para la ejecución en modo usuario, y otra para la ejecución en modo núcleo. Un proceso ejecuta el siguiente código: if (fork()) sleep(a); else sleep(b); exit(0);. Si a es mucho mayor que b, el proceso hijo queda huérfano. Si a es mucho mayor que b, el proceso hijo queda zombie. En el sistema de ficheros NTFS, se tiene un fichero cuyos bloques del 0 al 6 están almacenados en los bloques del disco 900, 901, 902, 800, 1001, 1002 y 1003, entonces la entrada de datos de su MFT será la siguiente: Header=0,7; Run=900,901,902,800,1001,1002,1003. Header=0,7; Run1=900,3; Run2=800,1; Run3=1001,3. En Windows, una página física que reside en la lista de espera: Está libre y ha sido puesta a cero, y está en espera de ser asignada a un conjunto de trabajo de cualquier proceso. Puede ser recuperada para el conjunto de trabajo al que pertenecía si el proceso vuelvea referenciarla. En el sistema de ficheros NTFS de Windows: Cada fichero tiene una entrada en la MFT con sus correspondientes atributos. Sólo los ficheros especiales y los directorios tienen una entrada en la MFT. Para los ficheros regulares se guardan sus atributos en los directorios correspondientes. En Linux, el algoritmo de reemplazo de páginas una página marcada como intercambiable: Puede ser intercambiada entre procesos distintos de forma inmediata porque tiene información compartida. Debe escribirse en el area de intercambio o en la partición de paginación antes de ser reclamada. En el formato binario ELF: Todos los segmentos, menos el dinámico, se mapean en memoria. El intérprete necesario para que funcionen los programas enlazados dinámicamente se indica en el propio binario. Con respecto al planificador CFS (Completely Fair Scheduler), indica cuál de las siguientes afirmaciones es cierta. La forma que tiene de proporcionar prioridades es enlentecer el tiempo virtual de las tareas más prioritarias. Tiene un orden de ejecución constante al realizar inserciones en el árbol balanceado. En Linux, todas las bibliotecas compartidas se compilan: Usando código independiente de la posición. Usando código reubicable. En POSIX, tras las instrucciones fh = open ("datos.txt", O_WRONLY | O_CREAT | O_TRUNC , S_IRWXU ) ; lseek(fh, 1000, SEEK_SET); write(fh, buffer, 1);, suponiendo que no fallen, se da que: El tamaño del fichero datos.txt es igual a 1001. El tamaño del fichero datos.txt es mayor o igual a 1001. Indica cuál de las siguientes opciones es un método válido para compartir datos entre dos procesos : Un mismo archivo mapeado en la memoria de ambos procesos. Que un proceso reserve memoria con malloc(), y luego cree un hijo. Tanto el padre como el hijo tienen acceso a esa zona de memoria porque ya estaba creada cuando se hizo el fork(). ¿Cuántos procesos resultarían de la ejecución del siguiente fragmento de código asumiendo que fork() nunca falla?: pid = fork(); if (pid) fork(); fork();. 6. 7. En un sistema Linux de 48 bits, se accede a la dirección virtual 0x01001010205C, entonces esta dirección queda dividida como: GlobalDir=0x2, UpperDir=0x0, MiddleDir=0x80, Table=0x102, Offset=0x05C. GlobalDir=0x1, UpperDir=0x1, MiddleDir=0x1, Table=0x2, Offset=0x05C. Los sistemas de ficheros basados en log se dividen en : Segmentos y zona de nodos-i. Los segmentos contienen bloques de directorios y bloques de datos, y la zona de nodos-i todos los nodos-i del sistema de ficheros. Segmentos que contienen bloques de nodos-i, bloques de directorios y bloques de datos. En Linux, el algoritmo de reemplazo de páginas una página marcada como no reclamable: Debe escribirse en el área de intercambio o en la partición de paginación ya que no pueden ser reclamada. No pueden ser expulsadas, y son páginas bloqueadas o reservadas. El código dup2(fh,6) es equivalente a close(6); dup(fh): Sólo si todos los descriptores de ficheros con números menores al 6 están abiertos. Sí, ambos son equivalentes. Dado el código int p[2]; pipe(p); if (fork()) {close(p[0]); ...} else {close(p[1]); ...} es cierto que: El proceso padre y el proceso hijo pueden usar la tubería p para comunicarse. El proceso padre y el proceso hijo no pueden comunicarse con la tubería p porque han cerrado uno de los extremos de la misma. Un proceso al que se le vuelve a conceder la CPU... Siempre arranca su ejecución en el núcleo del sistema operativo. Arrancará su ejecución en el mismo modo de ejecución en el que se encontraba cuando se le quitó la CPU. Con respecto as las llamadas al sistema en Linux: La llamadas al sistema están encapsuladas en funciones de la biblioteca de C. La llamada al sistema propiamente dicha consta de un conjunto de instrucciones ensamblador que incluyen una interrupción, y están encapsuladas en funciones de la biblioteca de POSIX. En el sistema de E/S de Windows: El WindowsDriver Model debería ser cumplido por los drivers de dispositivos. El IRP realiza la llamada al sistema que gestiona el proceso de E/S por la pila de drivers del API de Windows. En el manejo de señales en Linux: Un manejador de señal puede ser interrumpido por otro manejador de una señal distinta. Un manejador de señal puede ser interrumpido por si mismo. En el sistema de ficheros NTFS de Windows: El directorio raíz tiene una entrada especial en la MFT, y es un fichero que puede crecer. El directorio c:\Windows tiene una entrada especial en la MFT, lo que permite localizar rápidamente los ejecutables más usados. Indica cuál de las siguientes afirmaciones es cierta: Linux trata de premiar a las tareas limitadas por CPU frente a las limitadas por E/S. Linux trata de premiar a las tareas limitadas por E/S frente a las limitadas por CPU. Si un programa en Linux mapea un fichero con mmap para que las modificaciones que realice sobre dicho fichero se guarden en disco debe usar: MAP_PRIVATE. MAP_SHARED. En cuanto a la virtualización,. Un hipervisor de tipo 1 necesita de un S.O. subyacente para ejecutarse. Loshipervisores procuran que la mayor parte del tiempo tanto los programas como el S.O. se ejecuten nativamente sobre el procesador. En Windows, una página física que reside en la lista de libres: Está libre y está en espera de ser asignada a un conjunto de trabajo de cualquier proceso. Puede ser recuperada para el conjunto de trabajo al que pertenecía si el proceso vuelve a referenciarla. En el sistema de gestión de memoria de buddy o de colegas de Linux, ¿es posible que haya dos bloques adyacentes de memoria libre del mismo tamaño y que no sean fusionados en un único bloque del doble de tamaño?. Si. No. En la implementación de void *malloc(...) para memoria dinámica vista en clase... Utiliza los bytes anteriores al puntero devuelto para indicar el tamaño del bloque reservado. Utiliza los últimos bytes de la memoria reservada para indicar el tamaño del bloque reservado. Respecto a los grupos de bloques usados por Ext2, Ext3 y Ext4: Cada grupo contiene una copia del superbloque, unos descriptores de grupo, un bloque con el mapa de bits de bloques del grupo , un bloque con el mapa de bits de nodos-i del grupo, varios bloques de nodos-i y bloques de datos. Cada grupo contiene unos bloques de disco reservados que se usan para el journaling del dichos sistemas de ficheros. En la paravirtualización ,. El sistema operativo guest tiene que ser modificado. El sistema operativo host tiene que ser modificado. Cada tarea (task) en Linux ... Tiene una única pila pero dos punteros de pila: uno que indica por dónde va cuando se encuentra en modo usuario, y otro que indica por dónde se encuentra la pila cuando está en modo núcleo. Tiene dos pilas: una para la ejecución en modo usuario, y otra para la ejecución en modo núcleo. Indica cuál de las siguiente cuestiones sobre los procesos, hilos y fibras de Windows es la correcta. Cada proceso, hilo y fibra en Windows tiene una pila asociada diferente. Cada hilo y cada fibra en Windows tiene una pila asociada diferente. El algoritmo de reemplazo de páginas de Windows , cuando un proceso produce un fallo de página: Si empieza a haber presión de memoria se sustituye la página más antigua del conjunto de trabajo del proceso por la página nueva. Se amplía siempre el conjunto de trabajo del proceso, quitándole páginas a otros procesos si es necesario, sin tener en cuenta la presión de memoria. Si en un sistema de ficheros Ext3, un nodo-i tiene 12 direcciones para bloques de datos, un BSI y un BDI. Si las direcciones son de 4 bytes y cada bloque de disco es de 4 KiB, el tamaño máximo de fichero es: De aproximadamente 4 GiB. De aproximadamente 4 TiB. En xv6, el código sbrk(sbrk(0) - sbrk(0)); : Dobla el tamaño del proceso. Deja el tamaño del proceso como está. En el sistema de ficheros NTFS, se tiene un fichero cuyos bloques del 0 al 5 están almacenados en los bloques del disco 10000, 10001, 10002, 10003 y 10005, entonces la entrada de datos de su MFT será la siguiente: Header=0,6; Run1=10000,5. Header=0,6; Run1=10000,4; Run2=10005,1. Si en un sistema de ficheros Ext3, un nodo-i tiene 12 direcciones para bloques de datos, un BSI y un BDI. Si las direcciones son de 4 bytes y cada bloque de disco es de 8 KiB, el tamaño máximo de fichero es: De aproximadamente 32 GiB. De aproximadamente 8 GiB. En el manejo de señales en Linux: Un manejador de señal puede ser interrumpido por otro manejador de una señal distinta. Un manejador de señal puede ser interrumpido por si mismo. Cada tarea (task) en Linux... Tiene una única pila pero dos punteros de pila : uno que indica por dónde va cuando se encuentra en modo usuario, y otro que indica por dónde se encuentra la pila cuando está en modo núcleo. Tiene dos pilas: una para la ejecución en modo usuario, y otra para la ejecución en modo núcleo. Si un programa en Linux mapea un fichero con mmap para que las modificaciones que realice sobre dicho fichero se guarden en disco debe usar : MAP_PRIVATE. MAP_SHARED. Los sistemas de ficheros basados en log se dividen en : Segmentos y zona de nodos-i. Los segmentos contienen bloques de directorios y bloques de datos, y la zona de nodos-i todos los nodos-i del sistema de ficheros. Segmentos que contienen bloques de nodos-i, bloques de directorios y bloques de datos. En la implementación de void *malloc(...) para memoria dinámica vista en clase... Utiliza los bytes anteriores al puntero devuelto para que free() sepa cuántos bytes liberar. Utiliza los últimos bytes de la memoria reservada para indicar el tamaño del bloque reservado. En el sistema de E/S de Windows. El WindowsDriver Model debería ser cumplido por los drivers de dispositivos. El IRP realiza la llamada al sistema que gestiona el proceso de E/S por la pila de drivers del API de Windows. El código dup2(fh,6) es equivalente a close(6); dup(fh) : Sólo si todos los descriptores de ficheros con números menores al 6 están abiertos. Sí, ambos son equivalentes. El algoritmo de reemplazo de páginas de Windows, cuando un proceso produce un fallo de página: Si empieza a haber presión de memoria el SO reducirá el conjunto de trabajo del proceso pero solo si el número de páginas asignadas no baja de un valor mínimo configurado. Si empieza a haber presión de memoria el SO reducirá el conjunto de trabajo del proceso, pudiendo incluso bajar del valor mínimo configurado. La llamada al sistema realloc() se utiliza normalmente para aumentar el tamaño de un bloque de memoria dinámica reservado con anterioridad: Reservando un nuevo bloque, en caso de que no haya memoria contigua libre, copiando todos los datos del bloque antiguo al bloque nuevo y liberando el bloque antiguo. Llamando siempre a sbrk() excepto que se disminuya el tamaño del bloque de memoria. Indica cuál de las siguiente cuestiones sobre los procesos, hilos y fibras de Windows es la correcta. Cada proceso, hilo y fibra en Windows tiene una pila asociada diferente. Cada hilo y cada fibra en Windows tiene una pila asociada diferente, pero no los procesos. En Linux, el algoritmo de reemplazo de páginas una página marcada como no reclamable : Debe escribirse en el área de intercambio o en la partición de paginación ya que no pueden ser reclamada. No pueden ser expulsadas, y son páginas bloqueadas o reservadas. En POSIX, tras las instrucciones fh = open ("datos.txt", O_WRONLY | O_CREAT, S_IRWXU); lseek(fh, 1000, SEEK_SET); write(fh, buffer, 1);, suponiendo que no fallen, se da que: El tamaño del fichero datos.txt es igual a 1001. El tamaño del fichero datos.txt es mayor o igual a 1001. En Windows, una página física que reside en la lista de páginas a cero: Se necesita en ciertas circunstancias donde el SO exige asignar al proceso una página inicializada a cero. Cuando un proceso necesita una página, se asigna prioritariamente de esta lista para evitar tener que inicializarla por programa. En Linux, todas las bibliotecas compartidas se compilan : Usando código independiente de la posición. Usando código reubicable. En cuanto a la virtualización,. Un hipervisor de tipo 2 necesita de un S.O. subyacente para ejecutarse. En el procesador físico, la mayor parte del tiempo se está ejecutando el código del hipervisor. Respecto a los grupos de bloques usados por Ext2, Ext3 y Ext4 : Cada grupo contiene una copia del superbloque, unos descriptores de grupo, un bloque con el mapa de bits de bloques del grupo, un bloque con el mapa de bits de nodos-i del grupo, varios bloques de nodos-i y bloques de datos. Cada grupo contiene unos bloques de disco reservados que se usan para el journaling del dichos sistemas de ficheros. Indica cuál de las siguientes opciones es un método válido para compartir datos entre dos procesos: Un mismo archivo mapeado en la memoria de ambos procesos. Que un proceso reserve memoria con malloc(), y luego cree un hijo. Tanto el padre como el hijo tienen acceso a esa zona de memoria porque ya estaba creada cuando se hizo el fork(). Un proceso al que se le vuelve a conceder la CPU... Siempre arranca su ejecución en el núcleo del sistema operativo. Arrancará su ejecución en el mismo modo de ejecución en el que se encontraba cuando se le quitó la CPU. En un sistema Linux de 48 bits, se accede a la dirección virtual 0x04002020405C, entonces esta dirección queda dividida como: GlobalDir=0x8, UpperDir=0x0, MiddleDir=0x101, Table=0x4, Offset=0x05C. GlobalDir=0x1, UpperDir=0x0, MiddleDir=0x80, Table=0x204, Offset=0x05C. En el formato binario ELF : Todos los segmentos, menos el dinámico, se mapean en memoria. El intérprete necesario para que funcionen los programas enlazados dinámicamente se indica en el propio binario. En el sistema de ficheros NTFS, se tiene un fichero cuyos bloques del 0 al 6 están almacenados en los bloques del disco 10000, 10001, 10003, 10004, 10005, 10007 y 10009 entonces la entrada de datos de su MFT será la siguiente: Header=0,7;10000,2,3,1,1. Header=0,7; 10000,2; 10003,3; 10007,1; 10009,1. ¿Cuántos procesos resultarían de la ejecución del siguiente fragmento de código asumiendo que fork() nunca falla? : pid = fork(); if (pid) fork(); fork();. 6. 7. En el sistema de gestión de memoria de buddy o de colegas de Linux, ¿es posible que haya dos bloques adyacentes de memoria libre del mismo tamaño y que no sean fusionados en un único bloque del doble de tamaño?. Si. No. En xv6, el código sbrk(sbrk(0)- sbrk(0)); : Dobla el tamaño del proceso. Deja el tamaño del proceso como está. Dado el código int p[2]; pipe(p); if (fork()) {close(p[1]); ...} else {close(p[0]); ...} es cierto que: El proceso padre puede comunicarse con el proceso hijo, leyendo lo que éste escribe en la tubería. El proceso padre y el proceso hijo no pueden comunicarse con la tubería p porque han cerrado uno de los extremos de la misma. En la paravirtualización,. No se puede utilizar cualquier kernel en el guest. Ambos sistemas operativos, guest y host, tienen que ser el mismo. Con respecto a la llamadas al sistema en Linux: La llamadas al sistema están encapsuladas en funciones de la biblioteca de C. La llamada al sistema propiamente dicha consta de un conjunto de instrucciones ensamblador que incluyen una interrupción, y están encapsuladas en funciones de la biblioteca de POSIX. Con respecto al planificador CFS (Completely Fair Scheduler), indica cuál de las siguientes afirmaciones es cierta. La forma que tiene de proporcionar prioridades es acelerar el tiempo virtual de las tareas menos prioritarias. Tiene un orden de ejecución constante al realizar inserciones en el árbol balanceado. En el sistema de ficheros NTFS de Windows: La MFT tiene una entrada especial en la propia MFT, lo que la convierte en un fichero que puede crecer. El directorio c:\Windows tiene una entrada especial en la MFT, lo que permite localizar rápidamente los ejecutables más usados. |





