1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones:

Documentos relacionados
Introducción a los Sistemas Operativos

Herramientas Informáticas I Software: Sistemas Operativos

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistemas Operativos Administración de la Memoria

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Manipulación de procesos

Sistemas Operativos. Curso 2016 Sistema de Archivos

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4

1. INTRODUCCIÓN 1.1. Qué es un sistema operativo? El sistema operativo como máquina extendida El sistema operativo como gestor de

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos

CAPITULO 6. Control de Concurrencia y Recuperación

Arquitectura de Computadores. Apellidos, Nombre:

Memoria Cache. Departamento de Arquitectura de Computadores

Gestión de Memoria. Gestión de Memoria. Requisitos de Gestión de Memoria

Funcionamiento de la computadora

Sistemas operativos. Tema 10: Sistemas de ficheros

Introducción a la arquitectura de computadores

Diseño arquitectónico 1ª edición (2002)

Ejercicios de Arquitectura de Computadoras

SISTEMAS OPERATIVOS Arquitectura de computadores

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

Tema: Microprocesadores

Aritmética de Enteros

Representación de números enteros: el convenio exceso Z

Administración de Memoria.

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

1) Se dispone de un computador de 32 bits con la siguiente estructura:

Organización lógica Identificación de bloque

Objetos de aprendizaje: Computadora

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Manejo de Entrada-Salida. Arquitectura de Computadoras

Taller de Sistemas Operativos. Direccionamiento de Memoria 2012

Manual de instalación AutoFirma 1.4.3

UNIVERSIDAD DEL CARIBE UNICARIBE. Escuela de Informática. Programa de Asignatura

Estructura del Computador

Manejo de Entrada-Salida. Arquitectura de Computadoras

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Diagrama temporal de un programa simple. Multi-Programación con dos programas

Solución Examen Febrero 2006

1.4.1 Inicio de la computadora por primera vez Hay problemas Causas, síntomas y soluciones a posibles averías...

Tema 1: Arquitectura de ordenadores, hardware y software

Capítulo 2. Sistemas de Asignación Dispersa de

ESTRUCTURA BÁSICA DE UN ORDENADOR

MICROSOFT PowerPoint 2016 Básico

Introducción a los Sistemas Operativos

Aplicaciones Concurrentes

Comparativas de CPUs. Pablo Sanz Mercado.

Planificador de Linux (Scheduler)

MICROSOFT PowerPoint 2013 Básico

Tema 6: Periféricos y entrada-salida

Trabajo Práctico Nº 3 Parte 1

3. DOCUMENTACIÓN 3.1. DOCUMENTACIÓN DE APLICACIONES. OBJETIVOS PARA MODIFICAR HACE FALTA COMPRENDER/ESTUDIAR:

Threads, SMP y Microkernels. Proceso

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

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

Tema 2 Introducción a la Programación en C.

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.

El término productividad, con frecuencia, se confunde con el término producción. Muchas

UNIVERSIDAD DE GUADALAJARA

Sistema Operativo, Búsqueda de la Información: Internet/Intranet y Correo Electrónico (UF0319)

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Área: Microsoft SQL. Nombre del curso. Administración de Microsoft SQL Server 2014 Bases de datos

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo

Sesión No. 10. Contextualización INFORMÁTICA 1. Nombre: Gestor de Base de Datos (Access)

Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

NOTA TÉCNICA: Gestión de discos duros en grabadores digitales. Hikvision DS-9000/9100HFI-SE

Ordenador local + Servidor Remoto

Tema 5: Memorias. Espacio reservado para notas del alumno

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

Guía rápida de B-kin CRM

Aspectos Básicos de Networking

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

FUNCIONAMIENTO DEL ORDENADOR

Qué es ProFisio? Qué es Java? Ventajas al Utilizar ProFisio

REEA. Conexión de un S con WinCC RT Advanced V.12

SISTEMAS OPERATIVOS SISTEMA DE ARCHIVOS

BUAP FACULTAD DE CIENCIAS DE LA COMPUTACIÓN SISTEMAS OPERATIVOS 2 PRACTICA 2 JAIME MORALES FLORES

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

La memoria del ordenador

FIABILIDAD, CONFIDENCIALIDAD, INTEGRIDAD Y DISPONIBILIDAD

Definición de Sistema Operativo

1. Computadores y programación

Unidad 2: Gestión de Memoria

PROBLEMAS TEMA 3: Unidad de Entrada/Salida

SMV. Superintendencia del Mercado de Valores

INDICE. Prefacio Parte 1: sistemas operativos tradicionales

UNIVERSIDAD DE CIENCIAS EMPRESARIALES Y SOCIALES FACULTAD DE CIENCIAS DE LA SALUD

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

Universidad Autónoma Metropolitana Unidad Azcapotzalco. División de Ciencias Básicas e Ingeniería. Licenciatura en Ingeniería en Computación

MICROSOFT EXCEL 2010

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

Organización del Computador 1 Memoria Cache

Consideraciones previas a la instalación de sistemas operativos libres y propietarios

Office 365 Pro Plus ACTVACIÓN EN EQUIPOS COMPARTIDOS

Universidad Autónoma del Estado de México ADMINISTRACIÓN Y SEGURIDAD EN SISTEMAS OPERATIVOS SEGURIDAD SOBRE WINDOWS POR: J. JAIR VÁZQUEZ PALMA

Programación en java. Estructuras algorítmicas

Transcripción:

Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Convocatoria de Junio, 26 de Junio de 2003 SOLUCIONES Calificación 1 2 3 4 Nombre Titulación 1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones: a) Cuál es el propósito de las llamadas al sistema y cómo se relacionan éstas con el S.O. y con el concepto de modo dual de operación? Las llamadas al sistema son la interfaz del S.O. para los programas en ejecución, es decir, son los mecanismos que utilizan los programas en ejecución para solicitar servicios al núcleo del sistema operativo de tal forma que cuando un proceso realiza una llamada al sistema, el S.O. recupera el control y se conmuta de modo no privilegiado a modo privilegiado. b) En los primeros computadores cada byte de datos de lectura o escritura era directamente manejado por la CPU, Qué implicaciones tiene esta organización con respecto a la multiprogramación? Cuando las operaciones de E/S son manejadas directamente por la CPU, es decir, no se dispone ni de interrupciones ni de DMA, se requiere la intervención activa del procesador para transferir los datos entre la memoria y el módulo de E/S. Esto es especialmente grave en dispositivos de E/S rápidos donde se podría transmitir información a velocidades cercanas a las de la memoria, lo que en definitiva implica que el procesador no dispondría de mucho tiempo para la ejecución de procesos en medio de las operaciones de E/S de un proceso. En cambio, cuando disponemos de DMA, el procesador sólo se ve involucrado al principio y al final de la transferencia, estando desocupado en el transcurso de la operación de E/S y pudiendo aprovechar ese tiempo para ejecutar otro proceso (multiprogramación). c) Debe ser un sistema operativo multiprogramado de tiempo compartido? Y viceversa? Cuando hablamos de un sistema multiprogramado nos referimos a un sistema que permite la ejecución concurrente de varios procesos, es decir, observaríamos como se entrelaza la ejecución de varios procesos. Cuando hablamos de un sistema de tiempo compartido hablamos también de un sistema multiprogramado en el que a cada proceso se le asigna un intervalo de tiempo de ejecución. Podríamos perfectamente pensar en un sistema multiprogramado en el que la asignación de la CPU a los procesos no se realice en base a un intervalo de tiempo, por ejemplo, un sistema multiprogramado con una política de planificación de CPU FIFO (cuando un proceso espera por algún evento, se conmuta a otro proceso). Queda por tanto claro y justificado que la respuesta a la primera pregunta es NO y a la segunda SI.

d) Puede producirse una cambio de contexto en un sistema con un planificador basado en el algoritmo primero el trabajo más corto además de cuando se bloquea o se termina el proceso? Si nos referimos a la versión no expulsiva (SJF) la respuesta es NO ya que una vez que el planificador toma la decisión de quién entra en base a la duración de la ráfaga de CPU y dado que se trata de una política no expulsiva, ese proceso sólo abandonará la CPU cuando se bloque por algún motivo (por ejemplo cuando realiza una operación de E/S) o cuando termine su ejecución. En cambio, en la versión expulsiva (SRTF) existe otra situación que provoca un cambio de contexto: la llegada de un proceso con una duración de ráfaga de CPU inferior a la del proceso que actualmente tiene asignada la CPU. e) Qué algoritmo de planificación será más conveniente para optimizar el rendimiento de la CPU en un sistema que sólo tiene procesos en los cuales no hay E/S? Si se trata de procesos en los que no hay E/S, el objetivo de optimizar el rendimiento de CPU debe basarse en elegir un algoritmo de planificación simple de forma que se pierda el menor tiempo posible en trabajo no productivo, entendiéndose como tal todo el tiempo invertido por el propio sistema operativo en la toma de decisión del proceso a ocupar la CPU, manejo de las estructuras necesarias para implementar la política de planificación, tiempo invertido en cambios de contexto, etc... En este sentido la política de planificación FIFO es una candidata ideal. f) Suponga que se encuentra definiendo la estrategia a seguir en su S.O. en relación al problema del interbloqueo, Cuáles serían a grandes rasgos las opciones a considerar? A la hora de plantearnos el problema del interbloqueo podemos optar por diferentes estrategias: 1.- Garantizar que en el sistema nunca ocurran interbloqueos empleando para ello algún algoritmo de prevención (evitando que ocurra alguna de las cuatro condiciones necesarias) o de evitación (por ej. el algoritmo del banquero). 2.- Permitir la aparición de interbloqueos y recuperarse cuando ocurran (necesitaremos algún algoritmo de detección y recuperación). 3.- No tratar el problema (si se producen interbloqueos, el usuario tendrá que intervenir). g) Cuáles son las ventajas fundamentales que aportan los hilos frente a los procesos? La ventaja principal es poder dotar de concurrencia interna a una aplicación, con un coste reducido. Varios hilos dentro de un proceso pesado comparten el mismo espacio de memoria (código y datos), así como los recursos que la aplicación tenga asignados. Por tanto, la comunicación entre hilos es más sencilla y además al ser entidades que consumen menos recursos que los procesos el cambio de contexto entre hilos es menos costoso.

Nombre 2 (2,5 puntos) Suponiendo que estamos trabajando con el Nachos, desarrolle una implementación de las variables de tipo condición, utilizando semáforos, según el estilo de Mesa. Para cada variable de tipo condición se deberá utilizar: Semaforo: Sbloqueo; // Semáforo para implementar el funcionamiento de wait, signal y broadcast // Su valor inicial es 0 Entero: contador; // Para almacenar el número de hilos bloqueados por haber realizado una operación de wait y esperan a que se realice una operación signal. // Su valor inicial es 0 Además todas las variables de tipo condición definidas en un mismo monitor deberán hacer uso de un semáforo común, que llamaremos cerrojo, para garantizar la exclusión mutua. Asumimos que todo hilo que realice una operación de wait, signal o broadcast previamente tiene el control de este semáforo. Operación wait : Sumar 1 a contador; V(cerrojo): P(Sbloqueo); P(cerrojo); Operación sígnal : Si contador > 0 Entonces V(Sbloqueo); Restar 1 a contador; Fin si Operación broadcast : Mientras contador > 0 hacer V(Sbloqueo); Restar 1 a contador; Fin mientras

3 (2,5 puntos) Suponga un sistema paginado de memoria virtual en el que una dirección posee la siguiente estructura: 22 bits para especificar número de página y 10 bits para desplazamiento de la página. Explique de forma algorítmica el proceso de traducción de una dirección virtual. En su descripción deberá contemplar el uso de: o Recursos hardware. Deberá especificar en qué punto se utilizan y para qué. o Estructuras de datos (tablas y registros). Deberá explicar sus estructuras internas, así como para qué se utilizan y en qué punto de su descripción. o Políticas empleadas en caso de ser necesarias su utilización. Deberá especificar cuándo se utilizan y con que finalidad. Recursos hardware (ver estructura interna en la bibliografía): Registros asociativos (TLBs) para la traducción rápida de direcciones. Registro base de la tabla de páginas Registro de longitud de la tabla de páginas Recursos Software (ver estructura interna en la bibliografía): Tabla de páginas (una por programa en ejecución) Tabla de marcos de páginas del Sistema Operativo. Políticas: Política de reemplazo de páginas, que decide que página sustituir cuando un programa referencia a una página y ésta no se encuentra en memoria y además no existen marcos disponibles. El proceso de traducción se realiza paralelamente vía hardware (mediante TLBs) y vía software (mediante tablas). Si el proceso hardware falla (debido a que la página referenciada no está representada en estos registros asociativos), entonces los pasos que se describen a continuación se ejecutan en su totalidad: 1.- Obtener la dirección base de la tabla de páginas utilizando el registro base de la tabla de página. 2.- Comprobar que el campo página de la dirección es válido, si no es así, entonces error por dirección inválida y se interrumpe el proceso de traducción. 3.- Entrar en la entrada correspondiente en la tabla de páginas (usando el campo página de la dirección virtual) y comprobar si se trata de una página válida o no. 4.- Si es una página inválida, entonces: 4.1.- Si el programa tiene consumido su número máximo de páginas en memoria, entonces invocar a la política de reemplazo. 4.2.- Cargar la página en memoria, actualizando la tabla de páginas del programa y la tabla de marcos de página del sistema operativo. 5.- La dirección final será la suma de la dirección base del marco de página que contiene a dicha página y el contenido del campo desplazamiento de la dirección virtual.

Nombre 4 ( 1,5 puntos) Suponga un sistema de archivos que utiliza una política de asignación en disco indexada a un solo nivel, teniendo la tabla de índices 25 entradas y cada una de ellas de 4 bytes. Suponga que el tamaño en bytes de un bloque de sistema de ficheros es DBLOQ. Especifique los pasos e ejecutar y cálculos a realizar para atender a la siguiente petición de acceso a un registro de fichero de usuario: Readat( fd, Nreg, buff) Siendo: - fd un descriptor de fichero válido que previamente se ha obtenido mediante la función open. - Nreg el número de registro a acceder, se trata por tanto de un acceso directo a fichero. - Buff dirección de memoria dónde depositar el contenido del registro a leer. LREG es el tamaño de los registros del fichero, cumpliéndose que todos tienen el mismo tamaño y LREG puede ser menor o igual que DBLOQ. 1.- El descriptor de archivo (fd) es empleado cómo índice en la tabla de archivos abiertos donde se almacena toda la información de la entrada de directorio asociada al archivo (información que es copiada en dicha tabla en la operación de apertura del fichero). En dicha entrada tendremos información relacionada con cuestiones de seguridad (permisos), fechas de acceso y modificaciones y entre otros datos, la referencia al bloque índice de dicho fichero. Leemos dicho bloque índice y lo almacenamos en memoria (INDICE). 2.- Obtenemos la posición del primer byte del registro lógico Nreg con respecto al origen del fichero: P = Nreg*LREG 3.- Obtenemos el bloque relativo que contiene al primer byte del registro lógico Nreg: Br = Parte entera (P/DBLOQ) 4.- Obtenemos la posición del primer byte (Desplazamiento) del registro lógico Nreg en el bloque Br: D = Resto (P/DBLOQ) 5.- Obtenemos el número de bloque de sistema de archivo del bloque Br a partir del bloque índice donde se encuentra Nreg: Bloque1 = INDICE[Br] 6.- En el caso de que el registro Nreg se encuentre en dos bloques, es decir, si DBLOQ no es un múltiplo exacto de LREG (dado que el enunciado indica que LREG<=DBLOQ, como mucho se necesitará leer dos bloques), será necesario acceder al siguiente bloque: Bloque2 = INDICE[Br+1] 7.- La información leída de disco del registro Nreg se guarda en memoria en buff.