AMPLIACIÓN DE SISTEMAS OPERATIVOS (Código: ) Febrero 2018

Documentos relacionados
La secuencia de referencias a páginas para el proceso B es:

SISTEMAS OPERATIVOS (Código: ) Febrero 2017 A =

Aviso 2: Escriba con buena letra y evite los tachones. Aviso 3: Solución del examen y fecha de revisión en

SISTEMAS OPERATIVOS (Código: ) Septiembre 2018

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Sistemas Operativos Practica 1: procesos y concurrencia.

1. Sistema Operativo Unix

Sistemas de Archivos. Unidad 2 Almacenamiento y Estructuras de Archivos

FUNDAMENTOS BÁSICOS DE LOS SISTEMAS OPERATIVOS Fe de Erratas Actualizada a 12 de septiembre de 2018

Biblioteca de sistema

MC Hilda Castillo Zacatelco PROCESOS

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

Sistemas Operativos. Procesos

Tema 1: Introducción a los Sistemas Operativos

Prácticas de Sistemas operativos

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

Hilos Secciones Stallings:

Tema III: Componentes de un Sistema Operativo

SOLUCION EXAMEN junio 2006

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

GESTION DE LA MEMORIA

Sistemas Operativos II Junio 2006 Nombre:

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo)

SISTEMAS OPERATIVOS Manejo de procesos

Apartado Puntuación. No Presentado

Sistemas Operativos II Convocatoria ordinaria 24 de Enero de 2001 Escuela Universitaria de Informática (Grupo K)

SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos

Tema 12: El sistema operativo y los procesos

ÍNDICE INTRODUCCIÓN CAPÍTULO 1. ARQUITECTURAS DE UN SISTEMA MICROINFORMÁTICO... 15

*** SOLUCIÓN *** SISTEMAS OPERATIVOS (II-ITIS-ITIG) Examen Final 9 de junio de SEGUNDA PARTE -

* * * * SOLUCIONES * * * *

Segundo control de teoría

Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México

Sistemas Operativos Primer Recuperatorio Parcial 1

Sumario Prólogo Unidad didáctica 1. Introducción a los sistemas operativos Objetivos de la Unidad... 12

Sistemas Operativos. Trabajo Práctico N ō 6

UNIX. Curso de Modelado Molecular I INTRODUCCIÓN

GESTIÓN DE ARCHIVOS. Presentado por: Alba Arosemena Alma Vargas Hospicia Mendoza Roselvira Fernández Ahías Arosemena

1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8.

Sistemas Operativos Tema 9

Sistemas Operativos II CONVOCATORIA ORDINARIA 8 de septiembre de 2000 Escuela Universitaria de Informática / Facultad de Informática FIRMA

Introducción a Sistemas Operativos: Ficheros

Apellidos: Nombre: DNI: Parte Sistema Ficheros (Se deben contestar correctamente todas las cuestiones de cada pregunta para puntuar la misma).

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS

SISTEMAS OPERATIVOS: Lección 4: Planificación de Procesos

Herramientas Informáticas I Software: Sistemas Operativos

Fundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 2. Investigación sobre Paginación y Segmentacion.

Sistemas Operativos Tema 8. Gestión de la Entrada/Salida UNED Manuel Fernández Barcell Blog:

ARQUITECTURA, FUNCIONES Y ELEMENTOS DEL SISTEMA OPERATIVO INFORMÁTICO PEDRO MILENA JACOBO RUYMÁN

SISTEMA DE FICHEROS EN UNIX

Administración de Memoria

SOLUCIONES. DURACIÓN: Dispone de 120 minutos para realizar el examen.

PRÁCTICA 1: PROCESOS Y COMUNICACIÓN ENTRE PROCESOS

Examen Final de SO Grau

Convivencia Gestión de Procesos

Fundamentos de los Sistemas Operativos. Tema 1. Conceptos generales Estructura del computador y el SO

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

1. Sistema Operativo Unix

Examen de Arquitectura de Computadores

Sistemas Operativos. Daniel Rúa Madrid

Gestión de Entrada-salida

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA GRADO EN INGENIERÍA INFORMÁTICA. ESTRUCTURA DE COMPUTADORES

Sistemas Operativos. Curso 2016 Administración de memoria II

El subsistema de Memoria

1. Para qué sirve un Descriptor de Dispositivo? Qué funciones del sistema operativo acceden a ellos y para qué?

Sistemas Operativos II Febrero 2008 Nombre:

Configuración de la tarjeta SD

UNIVERSIDAD DE ORIENTE NÚCLEOS NUEVA ESPARTA-SUCRE COMISIÓN DE CURRICULA PROGRAMA ANALÍTICO DE LA ASIGNATURA

El scheduler O(1) de Linux

Procesos Definición y Estados

Sistemas Operativos. Curso 2016 Procesos

Relación de problemas. Sistemas Operativos II

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

SISTEMAS OPERATIVOS, 10 de septiembre de 2009 Examen Convocatoria Extraordinaria

Examen Final de Teoría. Grupo de teoría:

Sistemas Operativos I Manual de prácticas

Contenido 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS PROCESOS Prólogo...

Apellidos: Nombre: DNI:

Concurrencia en UNIX / LINUX. Introducción: Procesos e Hilos POSIX

Introducción a los Sistemas Operativos S.O.

6. Enumere tres ventajas de los ULT frente a los KLT.

Sistemas Operativos ING. EN COMPUTACIÓN Tercer Examen Parcial

Ejercicio 1. Considere el siguiente fragmento en ensamblador:

PROCESOS E HILOS - Hilo

Nombre del estudiante: Giovanna Kristhel Mendoza Castillo Gustavo Antonio González Morales Eduardo Solis Lara Francisco Javier Merodio Molina

TEMARIO. Créditos teóricos: 3 Créditos prácticos: 3. Lenguajes y Sistemas Informáticos Departamento: Lenguajes y Computación - PROGRAMA DE TEORÍA:

Fundamentos de Sistemas Operativos Licenciatura en Administración de Tecnologías de Información y Comunicaciones

Tema 2. Administración de procesos

Tema 6: Gestión de la Entrada/Salida

Teoría. Procesos. Escuela Politécnica Superior Universidad Autónoma de Madrid 1

Sistemas operativos: una visión aplicada. Capítulo 3 Procesos

Sistemas Operativos. Estructura de los sistemas operativos

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U MEMORIA VIRTUAL

Arquitecturas cliente/servidor

HP - UX. Qué es HP UX?

Problemas resueltos. Problema 1. Problema 3. Problema 5. 0BTema 2: Modelos de redes. Indique los niveles del modelo de Internet.

Sistemas Operativos Práctica 3

Transcripción:

AMPLIACIÓN DE SISTEMAS OPERATIVOS (Código: 71023016) Febrero 2018 Material permitido: Solo calculadora no programable Tiempo: 2 horas N2 Aviso 1: Todas las respuestas deben estar debidamente razonadas. Aviso 2: Escriba con buena letra y evite los tachones. Aviso 3: Solución del examen y fecha de revisión en http://www.uned.es/71023016/ 1. Conteste razonadamente a las siguientes preguntas: a) (1 p) Dibujar, adecuadamente rotulado, el diagrama de transición de estados de un hilo en Windows. b) (1 p) Qué es un turnstile? Cómo gestiona el núcleo de Solaris los turnstiles? 2. (2 p) Qué es y a quién atiende el asignador a nivel de páginas en los SOBUNIX? Qué operaciones realiza sobre la lista de marcos de página libres? 3. (2 p) Explicar la estructura de un sistema de archivos EXT2. 4. Explique razonadamente el significado de las siguientes órdenes en un SOBUNIX: a) (0.5 p) ipcs b) (0.5 p) more /valores c) (0.5 p) cp datp1,p2 detalles d) (0.5 p) ps -AlL 5. (2 p) En la Figura 1 se muestra el código C del programa f18. Supóngase que al invocar este programa desde la línea de ordenes de un intérprete de comandos se crea un proceso con PID=920 y que la asignación de los PIDs de los procesos hijos, si se llegaran a crear, se realizaría incrementando en una unidad el PID del proceso padre. Suponer además que el intérprete de comandos desde donde se lanza f18 tiene asociado PID=900. a) (1 p) Explique el significado de las llamadas al sistema: signal(sigusr2,fun); kill(getppid(),sigusr2); b) (1 p) Explicar el funcionamiento del programa si se invoca desde el intérprete de comandos mediante la orden: f18

AMPLIACIÓN DE SISTEMAS OPERATIVOS (Código: 71023016) Febrero 2018 Material permitido: Solo calculadora no programable Tiempo: 2 horas N2 Aviso 1: Todas las respuestas deben estar debidamente razonadas. Aviso 2: Escriba con buena letra y evite los tachones. Aviso 3: Solución del examen y fecha de revisión en http://www.uned.es/71023016/ #include <signal.h> void fun(int sig); main() int r1=0, r2=0; signal(sigusr2,fun); if(fork()==0) sleep(3); printf("\n Mensaje AB"); kill(getppid(),sigusr2); else r1=sleep(7); r2=sleep(1); printf("\n r1= %d r2= %d\n",r1,r2); void fun(int sig) sleep(1); printf("\n Mensaje Z"); Figura 1 Código C del programa f18

AMPLIACIÓN DE SISTEMAS OPERATIVOS (Cód. 71023016) Solución Examen Febrero 2018 Solución Ejercicio 1 a) En la Figura 1 se muestra el diagrama de transición de estados de un hilo en Windows. Sus pendido S e se l ecc i ona otro h il o m á s pr i or i tar i o S eleccionado P asa a e j ecutarse Ini c i a li zado Creac ión Pr epa r a do Expr o pi ado Ejecutá ndos e Termina Term inado Pil a de l núcl eo c argada e n m e m or i a Se pr oduc e el e v ent o Esper a por un e v ento Transi c ión S e produce el evento pero su pila del núcleo no est á cargada en memoria Espe rando Figura 1 b) Un turnstile es una estructura de datos que contiene, entre otras informaciones, la cabecera de una cola de hilos dormidos. Los hilos en la cola de un turnstile se organizan por prioridad. Además existe la posibilidad de despertar a todos los hilos de la cola o solamente al más prioritario. El núcleo mantiene un conjunto de turnstiles de tamaño dinámico, siempre mayor que el número de hilos del núcleo activos. Cuando en un objeto de sincronización se bloquea un primer hilo el núcleo asigna al objeto de sincronización un turnstile para implementar una cola de hilos dormidos. En el momento que la cola se queda vacía el turnstile queda libre y puede ser asignado a otro objeto de sincronización. 1

Solución Ejercicio 2 El asignador a nivel de página es un componente del subsistema de gestión de memoria principal que se encarga de la asignación de marcos de página de memoria principal. Este asignador atiende las peticiones de memoria del sistema de paginación y del asignador de la memoria del núcleo. El sistema de paginación es la funcionalidad de la arquitectura de gestión de memoria virtual encargada de asignar (y liberar) marcos de página para alojar en memoria principal las páginas virtuales referenciadas por los procesos durante su ejecución. En algunos SOBUNIX también se encarga de asignar marcos para la caché de buffers de bloques de disco. El sistema de paginación solicita marcos de página al asignador a nivel de página para repartirlos entre sus clientes: los procesos de los usuarios o la caché de buffers de bloques de E/S. Por su parte, el asignador de la memoria del núcleo solicita marcos de página al asignador a nivel de página para atender las peticiones de memoria de los diferentes subsistemas del núcleo. El asignador a nivel de página trabaja sobre la lista de marcos de página libres sobre la que realiza, entre otras, las siguientes operaciones: Eliminar marcos. Cuando el sistema de paginación o el asignador de la memoria del núcleo necesitan una determinada cantidad de memoria principal invocan al asignador a nivel de página para que les asigne marcos libres de memoria principal, los cuales son eliminados de la lista de marcos de página libres. Añadir marcos. Cuando el sistema de paginación o el asignador de la memoria del núcleo liberan una cierta cantidad de memoria invocan al asignador a nivel de página para que añada los marcos liberados a la lista de marcos de página libres. Buscar páginas en los marcos. Durante determinados eventos, como por ejemplo, el tratamiento de un fallo de página, el sistema de paginación puede solicitar al asignador a nivel de página que busque en la lista de marcos de página libres si se encuentra cargada en un marco de dicha lista la página cuya referencia originó el fallo de página. Puede suceder que dicha página se encuentre en esta lista por haber sido seleccionada por el escáner de página para ser reemplazada. Si la página se encuentra en la lista se elimina de la misma. Nótese que encontrar una página en esta lista evita tener que leerla del disco, con lo cual se ahorra tiempo, ya que una operación de búsqueda sobre la lista requiere de menos tiempo que una operación de lectura a disco. 2

Solución Ejercicio 3 Un sistema de archivos EXT2 cuando se crea en una partición de disco presenta una estructura similar a la que se muestra en la Figura 2. Partición de disco Bloque de arranque Gr upo de bloques 0 Grupo de b l oques 1 """ Grupo de b l oques NG/1 Gr upo de b l oques j Cop ia Superb l oque Cop i a tab l a de descr i ptores de grupo Mapa de bits de b lo ques de datos Mapa de b it s de nodos i Tab l a de n o d oszi Área de da tos Figura 2 El primer bloque de la partición es el bloque de arranque que contiene el código necesario para arrancar Linux si dicha partición se utiliza como partición activa. El resto de la partición se divide en NG grupos de bloques. El tamaño máximo de un grupo es igual a 8 S B bloques, donde S B = 1, 2 o 4 KiB es el tamaño de bloque, el cual se fija en el momento de la creación del sistema. En cada grupo de bloques se distinguen los siguientes componentes: Copia del superbloque. El superbloque ocupa un bloque y contiene información estadística y administrativa del sistema de archivos: número mágico que identifica al sistema como de tipo EXT2, tamaño de un bloque de datos, número total de bloques y de nodos-i, número de bloques y de nodos-i libres, fecha y hora de la última modificación del sistema de archivos, hora y fecha del montaje del sistema, etc. Puesto que la información contenida en el superbloque es crítica para el funcionamiento del sistema el superbloque se duplica en cada grupo de bloques en previsión de posibles errores o de la corrupción del sistema. El núcleo normalmente trabaja con el superbloque del primer grupo de bloques. Copia de la tabla de descriptores de grupo. Un descriptor de grupo es una estructura de datos que describe a un grupo de bloques. Contiene la siguiente información sobre un grupo: la dirección del bloque que contiene el mapa de bits de bloques de datos del grupo, la dirección del bloque que contiene el mapa de bits de nodos-i del grupo, la dirección del bloque que contiene la tabla de nodos-i del grupo, contador de bloques libres, contador de nodos-i libres y contador de directorios existentes. Todos los descriptores de grupos se organizan en una tabla de descriptores de grupo, la cual ocupa varios bloques consecutivos. Al igual que sucede con el superbloque, la tabla de descriptores es una estructura fundamental para el funcionamiento del sistema por lo que es duplicada en todos los grupos de bloques, a continuación de la copia de superbloque. El núcleo normalmente trabaja con la tabla de descriptores de grupo ubicada en el primer grupo de bloques. 3

Mapa de bits de bloques de datos existentes en el grupo. Ocupa un bloque. Cada bloque de datos existente en el grupo de bloques tiene asignado un bit en el mapa. Si el bit está desactivado significa que el bloque está libre. Cuando el núcleo tiene que asignar bloques de datos para un archivo consulta este mapa. Mapa de bits de nodos-i existentes en el grupo. Ocupa un bloque. Su estructura y utilidad es similar a la descrita para el mapa de bits de bloques de datos pero aplicada a los nodos-i. Tabla de nodos-i existentes en el grupo. Ocupa varios bloques consecutivos. En EXT2 un nodo-i tiene un tamaño de 128 bytes, luego en un bloque de la tabla se pueden almacenar S B /128 nodos-i. Área de datos. Contienen los bloques de datos de los archivos y directorios. Solución Ejercicio 4 a) Esta orden muestra información sobre los mecanismos IPC (conjuntos de semáforos, memoria compartida y colas de mensajes) a los que tiene acceso el proceso que invoca la orden. b) Esta orden muestra en la pantalla el contenido del archivo valores ubicado en el directorio de trabajo inicial. Señalar que el nombre de ruta del archivo especificado en esta orden hace uso del comodín tilde ' ' el cual sustituye al nombre de ruta absoluta (/home o /users) del directorio que contiene los directorios de trabajo de todos los usuarios. Si se utiliza en la forma " /" entonces hace referencia al nombre de ruta absoluta del directorio de trabajo inicial del usuario. Por lo tanto supuesto, por ejemplo, que el directorio de trabajo inicial del usuario que invoca esta orden es /home/josema entonces la orden propuesta expandiendo el comodín tilde sería equivalente a more /home/josema/valores c) Esta orden copia los archivos datp1 y datp2 en el directorio detalles. Señalar que la orden hace uso del comodín llaves "cad1,cad2,...,cadn" el cual expande una palabra por cada una de las cadenas de caracteres cadj j = 1,...,N incluidas dentro de las llaves. d) Este comando muestra un listado con información sobre los procesos existentes en el sistema. La información que se muestra depende de cada SOBUNIX y de las opciones especificadas en el comando: la opción -A hace que se muestren todos los procesos existentes en el sistema. Mientras que la opción -l hace que se muestre un listado con más información, es decir, un mayor número de columnas. Por su parte la opción -L hace que se incluya información sobre los procesos ligeros existentes en cada proceso. 4

Solución Ejercicio 5 a) La llamada signal(sigusr2,fun) establece que si el proceso que la invoca recibe una señal SIGUSR2 se ejecute el manejador de la señal fun definido por el usuario. Por su parte, la llamada al sistema kill(getppid(),sigusr2) envía la señal SIGUSR2 al proceso padre del proceso que invoca la llamada, ya que la llamada al sistema getppid devuelve el PID del proceso padre del proceso que la invoca. b) En primer lugar el proceso A invoca la llamada al sistema signal(sigusr2,fun) que establece que ante la recepción de una señal SIGUSR2 se ejecute el manejador de la señal fun definido por el usuario. En segundo lugar, el proceso A invoca a la llamada al sistema fork para crear un proceso hijo B. Supóngase que el planificador planifica al proceso padre antes que al proceso hijo. Entonces el proceso A invoca a la función sleep(7) que suspende la ejecución del proceso A durante 7 segundos. Cuando se planifica el proceso hijo B, éste en primer lugar invoca a la función sleep para suspender su ejecución durante 3 segundos. A continuación invoca a la función de librería printf para imprimir por la salida estándar el texto: Mensaje AB Acto seguido invoca a la llamada al sistema kill(getppid(),sigusr2) para enviar la señal SIGUSR2 al proceso padre. Al retornar de la llamada kill el proceso hijo finaliza su ejecución. Por su parte el envío de la señal SIGUSR2 hace que el núcleo despierte al proceso A antes de completar sus 7 segundos de suspensión. Al ser planificado de nuevo el proceso A, se ejecuta el manejador fun definido para la señal. Este manejador realiza dos acciones. En primer lugar invoca a la función de librería sleep para suspender la ejecución del proceso durante 1 segundo. A continuación invoca a la función de librería printf que imprime por la salida estándar el texto Mensaje Z Finaliza la ejecución del manejador, se continúa con la ejecución de la instrucción del proceso A que fue interrumpida por la recepción de la señal. Como sleep no se completó con éxito al ser interrumpida por la señal, entonces devuelve en r1 el tiempo de suspensión que le quedaba al proceso, en este caso 4 segundos. A continuación se invoca a otra función de librería sleep para suspender la ejecución del proceso A durante 1 segundo. Como la función se ejecuta con éxito entonces en r2 se almacena el valor 0. Finalmente se invoca a la función de librería printf que imprime por la salida estándar el texto y finaliza la ejecución del proceso A. r1=4 r2=0 5