option
Cuestiones
ayuda
daypo
buscar.php

SSOO_2

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
SSOO_2

Descripción:
Sist. Op

Fecha de Creación: 2022/05/20

Categoría: Informática

Número Preguntas: 32

Valoración:(1)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

Señala los campos que forman parte de un inodo en disco: UID y GID del usuario propietario y grupo propietario, respectivamente. Número de inodo. Contador de referencias. Código de tipo de inodo (fichero, directorio, pipe…). Contador de hard links al fichero. Número de dispositivos en que se encuentra. Máscara ugo de derechos. Flag de bloqueo para exclusión mutua.

Indicar si es verdadero o falso: La rutina alloc_block reserva un bloque en disco que se encontraba libre, y retorna un bloque en memoria para él en el buffer-cache. Verdadero. Falso.

Indica las afirmaciones correctas con respecto de las E/S: En la programación de un driver de salida a un dispositivo basada en interrupciones, cuando la interrupción se produce cuando el dispositivo está listo para operar, es necesario desactivar la interrupción si no hay información que enviar al mismo. La programación de E/S basada en escrutino se apoya en un algoritmo de espera activo, el cual en el caso particular de las salidas puede optimizarse invocando al schedule mientras espera la finalización de una operación. A partir del número mayor podemos determinar el driver correspondiente. El driver implementa código específico para las llamadas open, read, write, close, así como un servicio ioctl que permite vincular ese dispositivo a un fichero para que actúe como interfaz para el usuario. Se emplean los números mayor y menor para identificar el dispositivo. El número mayor es un índice en la tabla global de dispositivos, según su tipo, mientras que el número menor es el número de serie del fabricante.

Indicar las respuestas correctas sobre la llamada open: Si no hay inodos libres queda bloqueada hasta que un inodo quede libre. La llamada open termina invocando a iput sobre el inodo del fichero abierto. La llamada open retorna un valor entero, que es un índice en tabla local de ficheros abiertos. La comprobación de poder acceder al directorio donde se encuentra el fichero que se desea abrir se hace mediante la invocación a la rutina namei. Se comprueba el derecho de apertura indicado mediante el algoritmo permission.

Indica las respuestas correctas respecto a las tareas de núcleo en Linux 2.0.36: Se ejecutan por las interrupciones, justo al acabar su ejecución. Se ejecutan al retorno de las interrupciones, llamadas y excepciones, antes que los procesos de usuario, pero despues de otras interrupciones. Contienen actividades temporizadas por los procesos de usuario. Sirven como mecanismo para planificar los procesos de usuario.

La llamada mknod permite crear un fichero especial asociado a dispositivo. Cualquier usuario puede crear uno de estos ficheros, pero sólo el superusuario puede instalar el drives correspondiente incluyéndolo como módulo de carga o como parte del núcleo monolítico. Verdadero. Falso.

Indica las afirmaciones correctas con respecto a las tareas de núcleo de Linux. Se trata de código del sistema operativo para ejecutar acciones diferidas en el tiempo, en el instante que se inidique cuando se instancia. Se trata normalmente de código extraído de interrupciones, que puede ser ejecutado con interrupciones desenmascaradas, pero en absoluta exclusión mutua (no es posible ejecutar simultáneamente 2 tareas de núcleo). Se trata de kernel threads con la máxima prioridad en el sistema que se planifican por el scheduler, para ocupar la CPU en cuanto sean desbloqueadas. Sirven para implementar los timers del sistema, como acciones de muy alta prioridad, que se ejecutan al retorno de llamadas, interrupciones y excepciones.

Indica las afirmaciones correctas con respecto al cache de páginas: Nos permite conocer la ubicación de las páginas que se encuentran en memoria principal. La rutina findpage (inodo, página), siempre asociará una entrada en el cache para el par (inodo, página), devolviendo su descriptor de página correspondiente. Se implementa mediante una tabla hash, cuyas sublistas van asociadas a valores iguales de la función hash (inodo, página). Cuando una página queda libre, se mantiene en el cache, asignando su bit P a 0, de modo que pueda ser fácilmente recuperada si vuelve a ser utilizada por ese proceso. Cuando una página queda libre, se extrae del cache para poder reutilizar esa entrada.

La realización de los perfiles de ejecución no se puede extraer de la ISR del reloj para llevárselo a la tarea de núcleo de reloj: Verdadero. Falso.

Indicar la respuesta correcta: El offset de los ficheros se representa en la tabla local, de modo cada proceso ve sus propios desplazamientos. El offset de los ficheros va en la tabla de ficheros para que los hijos de un proceso compartan el offset. El offset de los ficheros se indica en el inodo para que todos los procesos vean el mismo offset. El offset del fichero se guarda en el directorio donde se encuentra.

Indicar las afirmaciones correctas con respecto a la llamada read: La lectura se realizan en unidades de página, copiando la información desde el cache de páginas al buffer de usuario en unidades de páginas o fracción de ella cuando corresponda. La lectura se realiza en unidades de bloques, copiando la información desde el buffer-cache al buffer de usuario en unidades de un bloque cada vez o fracción de ellos cuando corresponda. En la parte genérica se comprueba con verify_area que el proceso invocador tiene derechos de escritura sobre el buffer de usuario. En la parte genérica se comprueba con verify_area que el proceso invocador tiene derecho de lectura sobre el buffer de usuario.

Tenemos un fichero con pathname /tmp/x y ejecutamos la orden siguiente: In /tmp/x /home/pepe/x Suponiendo que ambos directorios /tmp y /home/pepe se encuentran en el mismo sistema de ficheros esta orden sería ejecutada correctamente. Si ahora ejecutamos la orden: rm /tmp/x, aún será posible el acceso al fichero a través de /home/pepe/x. Verdadero. Falso.

Indica las respuestas correctas respecto al cache de páginas: Una escritura parcial sobre una página implica la lectura de la página desde disco si no estaba previamente en el cache. Tras escribir sobre una página en el cache, se ordena su escritura a disco de forma inmediata. La rutina find_page localiza una página por su número de dispositivo en que se encuentra. La rutina find_page localiza una página por el número de inodo y número de página. Linux 2.0.36 emplea un modelo de tabla hash basado en número de inodo y número de página para repartir las páginas en diferentes listas dinámicas.

Señala los campos que forman parte de un inodo en disco: UID y GID del usuario propietario y grupo propietario, respectivamente. Contador de hard links. Número de inodo. Máscara ugo de derechos. Contador de referencias. Flag de bloqueo para exclusión mutua. Número de dispositivos en que se encuentra. Código de tipo de inodo (fichero, directorio, pipe…).

Indica las respuestas correctas con respecto a la rutina bread: Sirve para leer un bloque de disco de forma directa, sin usar el buffer-cache. Sirve para leer una página desde disco. En ningún caso se bloquea, en caso de error retorna indicándolo. Sirve para leer un bloque de disco a través del buffer-cache.

El algoritmo iget se emplea para asignar u obtener un inodo en el cache de inodos. Si no hay inodos libres se queda bloqueado a la espera de uno libre. Verdadero. Falso.

La rutina getblk es una rutina del buffer-cache que sirve para obtener un buffer del cache, y nunca puede fallar en su ejecución, siempre retornará con éxito un buffer. Verdadero. Falso.

Nunca debe emplearse el método de escrutinio para programar la rutina write de un driver de un dispositivo de caracteres de E/S. Verdadero. Falso.

Sabiendo que un bloque de datos ocupa 512 bytes, y que en la tabla de implantación de un inodo tenemos la información siguiente: - 10 cursores directos: cursos número i es i+100, desde i=0 a 9. Ejemplo: El cursor 2 es 102. - 1 cursos indirecto, con valor 200 - 1 cursos doble indirecto, con valor 0 - 1 cursos triple indirecto con valor 0 En el bloque 200 tenemos 128 cursores de 4 bytes, con valores i+500, para el cursor i, desde i=0 hasta i=127. Ejemplo, el cursor 2 es 502. SE PIDE: Indicar el número de bloque físico correspondiente al offset 17801.

Cuando se ejecuta una ISR, el coste de ejecución de la misma en términos de tiempo de CPU se le carga al proceso actual en ejecución. Verdadero. Falso.

Indicar cuáles de los campos siguientes pertenecen al superbloque en disco: Tamaño del sistema de ficheros. Mapa de bits para indicar los bloques libres. Mapa de bits para indicar los inodos libres. Directorio de punto de montaje. Contador de número de bloques libres. Flag de bloqueo del superbloque. Número mayor del dispositivo.

Indica las afirmaciones correctas con respecto al sistema de ficheros: El nodo número 1 es la raíz del sistema de ficheros. La rutina namei es la responsable de transformar un pathname en un inodo en memoria, devolviendo la dirección de dicho inodo en el cache de inodos. Debe comprobar el derecho de ejecución en todos los directorios que deba atravesar. Dentro del superbloque se guarda la información de implantación de los ficheros, indicándo los bloques de disco que estos ocupan. Los directorios se implementan empleando ficheros especiales, cuyos contenidos son registros de longitud variable, para dar soporte a ficheros cuyo nombre sea hasta 255 caracteres. Así, las llamadas open. read, write y close también sea aplicables a directorios.

Sabiendo que un bloque de datos ocupa 512 bytes, y que en la tabla de implantación de un inodo tenemos la información siguiente: - 10 cursores directos: cursos número i es i+100, desde i=0 a 9 . Ejemplo: El cursor 2 es 102. - 1 cursos indirecto, con valor 200 - 1 cursos doble indirecto, con valor 0 - 1 cursos triple indirecto con valor 0 En el bloque 200 tenemos 128 cursores de 4 bytes, con valores i+500, para el cursor i, desde i=0 hasta i=127. Ejemplo, el cursor 2 es 502. SE PIDE: Indicar el número de bloque físico correspondiente al offset 12325.

Indica afirmaciones correctas de las rutinas alloc_inode y destroy_inode. Cuando no hay un inodo libre, alloc_inode retorna error de forma inmediata. Cuando no hay un indo libre, alloc_inode queda bloqueada hasta que quede uno libre. Son rutinas del superbloque, para asignar y liberar inodos en disco. Se implementan mediante un mapa de bits para conocer los inodos libres en disco. Son rutinas asociadas al cache de inodos, para asignar y liberar un inodo en la cache de inodos, respectivamente.

Indica las afirmaciones correctas con respecto a los timers en Linux. Con el modelo dinámico, en cada ocurrencia de la interrupción del reloj basta decrementar en uno el contador del nodo en cabeza de la lista, y si es 0 este se ejecuta, así como los consecutivos con ceros. El resto no se ven alterados. El modelo dinámico admite una cantidad ilimitada de timers, ordenados según el instante de ejecución. Además, admite un argumento entero o dirección de memoria virtual. El modelo dinámico admite una cantidad ilimitada de timers, ordenados según el instante en que han sido creados. Además, admite un argumento entero o dirección de memoria virtual. En el modelo estático se puede definir hasta 32 timers, los cuales no pueden llegar argumentos.

Indica las afirmaciones correctas con respecto a la llamada creat: Permite crear un fichero nuevo, el cual debe ser posteriormente abierto mediante open. Requiere una nueva entrada en la tabla local de fichero, que apunta a una entrada en la tabla global, que también debe ser creada. Esta última apunta al inodo en memoria que ha sido previamente asignado. Con esta llamada sólo el proceso invocador puede acceder al fichero así creado. No permite crear el fichero si este ya existía. Permite crear un fichero nuevo, el cual queda ya abierto para su uso.

El número mayor de un fichero especial asociado a un dispositivo nos permite conocer el driver asociado al dispositivo. Verdadero. Falso.

Indica las respuestas correctas con respecto a la estructura lógica de un sistema de ficheros tipo ext: inodos. El bloque 0 lo ocupa el MBR, el bloque 1 el superbloque y a partir del bloque 2 empieza la lista de inodos. Los bloques 0 y 1 están ocupados por el MBR, el bloque 2 lo ocupa el superbloque, a partir del bloque 3 empiezan los bloques de datos. El bloque 0 lo ocupa el superbloque, el bloque 1 está libre, a partir del bloque 2 empieza la lista de inodos. El bloque 0 lo ocupa el MBR, el bloque 1 está libre y se puede usar como extensión del MBR, en el bloque 2, está el superbloque y a partir del bloque 3 empieza la lista de.

Indicar si el fragmento de código siguiente es correcto (Verdadero como respuesta) o no (Falso como respuesta): ISR_DISP: TEST(disp); if (error) <Tratar error> else { LEER(disp,c); if (lleno(input_buffer) sem_wait(semaforo_llenos); else { insertar(input_buffer, c); sem_signal(semaforo_libres); } }. Verdadero. Falso.

Las prioridades de tiempo real de los procesos de usuario se mueven en el rango [0,99]. Los procesos con política de planificación SCHED_OTHER no son de tiempo real, y sólo pueden ejecutarse cuando no haya ninguno de tiempo real en la cola de elegibles. Verdadero. Falso.

Indica las respuestas correctas con respeto a los timers: En el modelo dinámico, en cada ocurrencia de la interrupción del reloj se decrementa en 1 el campo contador del nodo en cabeza de la lista, no es necesario recorrer la lista completa. Cuando llega a 0 se ejecuta el timer. Un timer permite controlar el número de veces que se produce la interrupción del reloj. Un timer permite programar la ejecución de una función del kernel en un instante futuro. Para insertar un nuevo timer en la lista cronológica tenemos que ir decrementando el valor del tiempo absoluto con los valores de los nodos que vamos recorriendo y con el valor de la variable jiffies . En el modelo estático de timers sólo tenemos 32 timers, pero podemos pasarles un argumento en su ejecución, como un puntero a una estructura.

Con respecto al tiempo de asignación de la CPU a los procesos, la reasignación del campo "counter" se realiza cuando todos los procesos elegibles tienen dicho campo a 0. Al realizar dicha reasignación al valor del campo "priority", se suma el valor del campo "counter" para los procesos bloqueados, dividiéndolo por 2. El motivo es que de esta forma se beneficia a los procesos que hacen uso excesivo de la CPU. Verdadero. Falso.

Denunciar Test