Examen Enero 2026 ASO
|
|
Título del Test:
![]() Examen Enero 2026 ASO Descripción: examen enero 2026 ASO |



| Comentarios |
|---|
NO HAY REGISTROS |
|
Entre las funciones del kernel de un SO podemos encontrar: El procesamiento de las líneas de órdenes tecleadas por el usuario y la ejecución de cada orden usando la API de llamadas al sistema. La comunicación y sincronización de procesos (IPC). Una llamada al sistema: Siempre implica un cambio de modo usuario a kernel. En ocasiones se puede resolver directamente en modo usuario si la tarea a realizar no es demasiado compleja. En cuanto al tiempo promedio de ejecución: La ejecución de una llamada al sistema suele ser más rápida que la ejecución de una función de usuario, debido a que el planificador prioriza la ejecución de código en modo kernel. La ejecución de una llamada al sistema suele ser más lenta que la ejecución de una función de usuario, debido principalmente a los cambios de modo de funcionamiento del procesador. Si una llamada al sistema ha devuelto el valor R, siendo R < 0, entonces…. la función de biblioteca correspondiente devolverá R y establecerá el valor de errno igual a -1. la función de biblioteca correspondiente devolverá -1 y establecerá el valor de errno igual a R. La biblioteca GNU C (glibc): No contiene todas las funciones del estándar POSIX. Contiene algunas funciones que no cumplen con el estándar de POSIX. En el kernel, durante una llamada al sistema, ¿cual es la función principal de la rutina de servicio correspondiente (tabla[#syscall])?. Copiar los argumentos desde la pila del usuario a los registros de la CPU. Realizar el servicio solicitado y devolver un valor de retorno. El formato ELF: Se refiere a la estructura interna de un proceso, con sus diferentes zonas, direcciones de inicio y de fin, etc. Se refiere a la estructura interna de un fichero ejecutable. Dado un proceso P que ha creado un proceso hijo H, si el proceso P se pone a ejecutar un bucle infinito sin llamar a wait() y el proceso H termina de ejecutarse, entonces: El proceso H se convierte en un proceso zombie. El proceso H se convierte en un proceso huérfano. Tras la ejecución del siguiente código (suponiendo que no falla ninguna llamada al sistema): fd1=open(“f.txt”, O_WRONLY | O_CREAT | O_TRUNC, S_IRWXU); write(fd1, “AAA”, 3); fd2=dup(fd1); write(fd2, “BBB”, 3); write(fd1, “CCC”, 3); close(fd1); close(fd2);. El contenido del fichero f.txt será BBBCCC, siendo su tamaño de 6 bytes. El contenido del fichero f.txt será AAABBBCCC, siendo su tamaño de 9 bytes. Sean P y N dos números enteros positivos, con P < N. Dado un fichero cuyo tamaño es de N bytes…. si se escribe en la posición (N+P) de dicho fichero se genera un hueco de P bytes, desde la posición N a la (N+P-1), ambas inclusives. si se escribe en la posición (N-P) de dicho fichero se genera un hueco de (P-1) bytes, desde la posición (N-P+1) a la (N-1), ambas inclusive. Dada una máquina con un único disco duro formado por una única partición que está formateada con un sistema de ficheros UNIX tradicional. La llamada rename para renombrar o mover un fichero: No mueve bloques de datos de este fichero en ningún caso. Mueve bloques de datos de este fichero en el caso de que se esté cambiando dicho fichero a un directorio diferente del que tenía originalmente. En el código que está ejecutando un proceso contiene lo mostrado en la figura 1: El contenido de la variable curso está almacenado en el segmento de datos inicializados del proceso. El contenido de la variable curso está almacenado en la zona de la pila correspondiente al proceso. En el código que está ejecutado un proceso contiene lo mostrado en la figura 1: El contenido de la variable puntuaciones está almacenado en la zona heap del proceso. El contenido de la variable puntuaciones está almacenado en la zona de la pila correspondiente a main(). En el código que está ejecutado un proceso contiene lo mostrado en la figura 1: Los valores 8.75 y 5.25 correspondientes a las dos primeras puntuaciones están almacenados en la zona heap del proceso. Los valores 8.75 y 5.25 correspondientes a las dos primeras puntuaciones están almacenados en la zona de la pila correspondiente a main(). El proceso P tiene bloqueada la señal S y entonces el proceso Q le envía a P dicha señal S: En el proceso P la señal S se queda pendiente hasta que él decida desbloquearla. El proceso P desbloquea la señal S inmediatamente. En relación a la implementación de la memoria virtual en modo protegido IA32 del x86. Una dirección lógica esta física está formada por: un selector de segmento de 16 bits y un desplazamiento de 32 bits. un selector de segmento de 10 bits, un número de página virtual de 10 bits y un desplazamiento dentro del segmento de 12 bits. En relación a la implementación de la memoria virtual en modo protegido IA32 del x86: Por cada segmento se tiene una tabla de traducción de páginas de 2 niveles. Se tiene una tabla de traducción de páginas de 2 niveles que es común para todos los segmentos. En relaciona la estructura global de un sistema Linux: La capa de VFS (Virtual File System ) es la encargada de la gestión de la memoria virtual del sistema. El gestor de memoria es el encargado de gestionar la caché de páginas del sistema. En la gestión de procesos de Linux, cuando el proceso P crea un proceso hijo H: Se realiza una copia de la tabla de páginas de P para el proceso hijo H. El proceso padre P y el proceso hijo H compartirán la misma tabla de páginas. En Linux, entre otras informaciones, en el descriptor de un proceso podemos encontrar: Un puntero a la tabla de ficheros abiertos en el sistema ( OFT ). Los valores de los registros de la máquina. En Linux, si se utiliza el antiguo planificador de tareas de orden 0(1)(Linux 2.6): Una tarea común con valor nice igual a 10 se insertaría en la cola 130. Una tarea común con valor nice igual a 10 se insertaría en la cola 110. En linux, si si utiliza el planificador de tareas CFS ( Completely Fair Scheduler): El método de elección de la siguiente tarea a ejecutar es de orden O(log n)). Por cada tarea, el sistema operativo maneja un tiempo virtual que se calcula en base a su tiempo real ya su prioridad. En la implementación de las señales de Linux, el núcleo mantiene dos vectores de bits por cada proceso…. sobre las señales pendientes y las señales bloqueadas. sobre las señales bloqueadas y las señales ignoradas. Sea el proceso P que tiene establecido ignorar la señal S. Si a P le llega la señal S: Se añade la nueva señal a la cola de pendientes, se actualiza el bit S del array de pendientes y, finalmente, el valor de sigaction para S se establece igual a SIG_ING. No ocurre nada, ni se actualiza ninguna estructura de la gestión de señales ni ocurre ningún cambio de planificación de tareas. Sea un proceso P que tiene bloqueada la señal S. Si a P le llega la señal S un total de N veces y , a continuación P desbloquea esta señal S, ¿cuantas veces se ejecutara la acción prevista para manejar esta señal?. Se ejecutará una vez si S tiene un manejador en modo usuario y N veces si S es manejada por el kernel. Se ejecutará una única vez en cualquier caso. En Windows, si tenemos 5 procesos y cada uno de ellos cuenta con 3 hilos: Tendremos 5 PEBs, 3 TEBs y 15 estructuras user_shared_data. Tendremos 5 PEBs, 15 TEBs y 5 estructuras user_shared_data. En relación al interfaz binario de las aplicaciones, ABI: Si las posiciones de las funciones y de los datos de un programa se establecen en tiempo de compilación, el compilador está generando codigo absoluto. Si el compilador de un programa genera código independiente de la posición entonces el enlazado final entre símbolos y direcciones ocurre al cargarse dicho programa. Linux distingue entre tres zonas de memoria física: Zona DMA, Zona Normal y Zona Higmem. Zona de Código, Zona de Datos y Zona de Pila. En relación a la gestión de la memoria que hace Linux, el array mem_map…. contiene una entrada por cada página virtual. contiene una entrada por cada página física. En linux, en el mapa de memoria de un proceso, el área que corresponde a la zona de código …. estará mapeada al fichero ejecutable correspondiente en disco. estará mapeada a una partición de swapping. En Windows, dentro del mapa de memoria de un proceso P, en la zona del kernel: Se encuentran mapeadas las tablas de páginas de todos los procesos. Únicamente se encuentra mapeada la tabla de páginas de este proceso P. En Windows, en relación al mapa de memoria de un proceso, una referencia a una dirección que pertenece a una página committed: Siempre causa un fallo de página que genera una violacion de acceso. Puede provocar un fallo de página que causara el mapeo entre la dirección virtual y una de las páginas representadas en el objeto de respaldo. En windows, el conjunto de trabajo (working-set) de un proceso es : La estructura que define las características principales del proceso, es decir, el PCB. El conjunto de páginas de ese proceso que están cargadas en memoria física. En Windows, un soft_page_fault no precisa que se escriba ninguna página en discos porque…. la página solicitada realmente ya está cargada en un marco de la memoria física. la memoria física tiene suficientes marcos de páginas libres, por lo que no es necesario desalojar ninguna página de memoria a disco. En relación a la E/S, en una lectura de disco, cuando se utiliza un controlador de DMA…. La CPU lee los datos directamente del buffer de disco y los copia en la zona de memoria denominada DMA. El controlador del disco se comunica con el controlador de DMA pero no con la CPU. En el sistema de ficheros tradicional de UNIX: Un directorio está formado por el conjunto de nodos-i de los ficheros que contiene. Un nodo-i se utiliza para describir a un fichero o a un directorio. En un sistema de ficheros basado en log: Cada segmento que se escribe en el disco puede contener tanto nodos-i como bloques de datos de directorios y de ficheros regulares. De cara a mejorar la eficiencia de las operaciones de E/S, cada nodo-i tiene siempre asignado un segmento concreto en el disco. En un sistema de ficheros basado en bitácora (journal), al arrancar el sistema tras un fallo eléctrico: En bitacora puede haber anotadas operaciones que ya se han realizado y otras que aún están pendientes de ser realizadas. En bitacora solamente estarán anotadas operaciones que aún están pendientes de ser realizadas. ¿Cual es la principal característica que distingue el sistema de ficheros ext3 del sistema de ficheros ext2?. El uso de bitácora. La división del disco ( o partición del disco ) en grupos de bloques. En el sistema de E/S de Windows, la E/S asíncrona: permite que cualquier hilo lance una operación de E/S y siga ejecutándose sin bloquearse. permite que un hilo se pueda comunicar con un dispositivo de E/S en cualquier momento, sin depender de que dicho dispositivo esté ocupado o no. En un sistema de fichero NTFS, el tamaño mínimo que puede ocupar un fichero en disco…. son dos bloques. uno para los atributos + metadatos y otro para los datos. es un bloque, donde se incluyen atributos, metadatos y datos. En virtualización, el hipervisor que hace eso de los servicios y abstracciones ofrecidas por un S.O. anfitrión: Es un hipervisor de tipo 1. Es un hipervisor de tipo 2. En virtualización, es importante considerar las instrucciones sensibles del hardware porque estas instrucciones…. se comportan de forma diferente en modo usuario que en modo núcleo. solamente pueden ejecutarse en modo núcleo. Comparando un contenedor frente a una máquina virtual: El tiempo de arranque de un contenedor es mayor que el de una máquina virtual, pues supone establecer todas las medidas de aislamiento necesarias para poder seguir utilizando el mismo sistema operativo anfitrión con seguridad. El tiempo de arranque de un contenedor es menor que el de una máquina virtual pues es equivalente simplemente a poner en marcha un proceso. |





