INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACAN DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN SISTEMAS OPERATIVOS SOLUCIÓN A LA PRÁCTICA 1. Conceptos de un Sistema Operativo UNIDAD I, Introducción OBJETIVOS PARTICULARES DE LA UNIDAD El alumno describirá los conceptos de Sistemas Operativos, su evolución a través de la historia de la computación y sus funciones principales, que a través de la historia también han evolucionado. Diferenciará los tipos de sistemas operativos y su relación con las generaciones de computadoras. OBJETIVO DE LA PRÁCTICA: Describir los conceptos de Sistema Operativo y sus funciones principales. Conteste a cada una de las preguntas que se formulan en forma breve y conciso. Puede consultar apuntes o libro que disponga durante la sesión de la práctica. Es decisión del profesor el uso del internet. 1.1 Cuales son los tres propósitos principales de un Sistema Operativo? Respuesta: • Proveer un ambiente para un usuario de la computadora para ejecutar programas sobre el hardware de la computadora en una forma conveniente y eficiente. • Alojar por separado los recursos de la computadora cuando sean requeridos para resolver un problema dado. El proceso de alojamiento debe ser tan justo y eficiente como sea posible. • Como un controlador de programas da servicio a dos funciones principales: (1) Supervisar la ejecución de programas de usuario para prevenir errores o uso inapropiado de la computadora y (2) administrar la operación y control de los dispositivos de entrada/salida (E/S). 1.2 Cuales son las principales diferencias entre sistemas operativos para computadoras “mainframe” y computadoras personales Respuesta: • Generalmente, los sistemas operativos en lote tienen mas simples requerimientos que para la computadora personal. Los Sistemas Batch no están dedicados a interactuar con un usuario tanto como una computadora personal. Como resultado, un sistema operativo para una computadora personal debe interesarse mas con el tiempo de respuesta para un usuario interactivo. Los sistemas Batch no tienen tales requerimientos, Un sistema Batch puro también debe de manejar el tiempo compartido, mientras que un sistema operativo debe intercambiar velozmente entre diferentes tareas. 1 /4 INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACAN DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN 1.3 Liste los cuatro pasos necesarios para ejecutar un programa en una máquina dedicada Respuesta: a) Reservar tiempo de máquina b) Cargar manualmente el programa en la memoria c) Cargar la dirección de inicio y comenzar la ejecución d) Supervisar y controlar la ejecución del programa desde la consola. 1.4 Se han hecho grandes esfuerzos para que un sistema operativo haga uso eficiente del hardware. ¿Cuándo es apropiado para un sistema operativo pasar por alto este principio y “dispendiar” los recursos? ¿Porqué ese tipo de sistema operativo no es realmente derrochador? Respuesta: • Sistemas de usuario único deben maximizar el uso para el usuario. Una interfaz de usuario gráfica (Graphical User Interface:GUI), podría gastar ciclos de CPU, pero optimizar la interacción del usuario con el sistema. 1.5 Cual es la principal dificultad que un programador debe superar al escribir un sistema operativo para un ambiente de tiempo real? Respuesta: • La principal dificultad es mantener al sistema operativo dentro de las restricciones de tiempo fijadas en un sistema de tiempo real. Si el sistema no completa una tarea en un cierto marco de tiempo, puede causar una interrupción del sistema completo mientras está corriendo. Por tanto al escribir un sistema operativo para tiempo real, el diseñador debe asegurarse que su sistema de despacho no permita tiempo de respuesta que excedan las restricciones de tiempo. 1.6 Considere las diferentes definiciones de Sistema Operativo. Considere si éste debiera incluir aplicaciones como un navegador de internet o correo electrónico. Argumente ambas porque si o porque no y fundamente su respuesta Respuesta; A favor: Las aplicaciones tales como herramientas, navegadores o el correo electrónico llevan a cabo un creciente e importante papel en escritorio de los sistema de computo. Al hacerlo, pueden proveer mayor eficiencia y mayor integración con el resto del sistema. Además, estas aplicaciones importantes pueden tener la misma vista y sentido que el software del sistema operativo. En contra: El papel fundamental de un sistema operativo es administrar los recursos tales como la CPU, la memoria, dispositivos de E/S, etc, además de ejecutar aplicaciones de software tales como un navegador web y correo electrónico. Incorporándolos al sistema operativo se carga al mismo con funcionalidad agregada. Tal carga puede resultar en una ejecución menos que satisfactoria de la tarea de administrar los recursos del sistema. Además, se incrementa el tamaño del sistema operativo aumentando así la probabilidad de caídas del sistema y violaciones de seguridad. 2 /4 INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACAN DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN 1.7 Como distingue entre el modo kernel y modo usuario como una forma rudimentaria de protección de un sistema de seguridad? Respuesta: La distinción entre el modo kernel y el modo usuario provee una forma rudimentaria de protección en la siguiente forma: Ciertas instrucciones podrían ejecutarse solo cuando el CPU esta en modo kernel, de manera similar, los dispositivos de hardware podrían accederse solo cuando el programa este ejecutándose en modo kernel, El control de cuando las interrupciones podrían habilitarse o deshabilitarse son también posibles solo cuando el CPU esté en modo kernel. Consecuentemente, el CPU tiene capacidades muy limitadas cuando se ejecuta en modo usuario, por tanto forzando a la protección de los recursos críticos. 1.8 Cuáles de las siguientes instrucciones deben privilegiarse? a) Establecer el valor del reloj b) Leer el reloj c) Limpiar la memoria d) Suministrar una instrucción de trampa. e) Apagar las interrupciones f) Modificar las entradas en una tabla de estado de los dispositivos Respuesta: Las siguientes operaciones necesitan privilegiarse: a) Establecer el valor del reloj, b) limpiar la memoria, c) apagar las interrupciones, d) modificar las entradas en una tabla de estado del dispositivo y e) acceder a los dispositivos de E/S. Las restantes pueden llevarse a cabo en modo usuario 1.9 Algunas de las primeras computadoras protegían al sistema operativo colocándolo en la partición de la memoria que no podía ser modificada ni por la tarea de un usuario o por el sistema operativo inclusive. Describa dos dificultades que cree que podrían ocasionarse con tal esquema. Respuesta: Los datos requeridos por el sistema operativo (claves de usuario, controles de acceso, información contable, etc.) podrían almacenarse en o pasarse a través de memoria desprotegida y así ser accesible a usuarios no autorizados. 3 /4 INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACAN DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN 1.10 Algunos CPU proveen operación par mas de dos modos. Cuales son dos posibles usos de éstos múltiples modos? Respuesta: Aunque la mayoría de los sistemas operativos distinguen entre modos kernel y de usuario, algunos CPU han suministrado modos múltiples. Estos podrían usarse para proveer políticas de seguridad más finas. Por ejemplo, en lugar de distinguir entre solo modo de usuario y modo kernel. Podría distinguirse entre diferentes tipos de modos de usuario. Quizá usuarios pertenecientes al mismo grupo podrían ejecutar el código de otro. La máquina podría estar en un modo específico cuando uno de estos usuarios estuviera corriendo código perteneciente a cualquiera dentro del grupo. Otra posibilidad seria proveer distinciones entre códigos de kernel. Por ejemplo, un modo específico podría permitir a manejadores de dispositivos USB ser ejecutados. Esto significaría que las unidades USB podrían ser servidas sin tener que conmutar de modo kernel, por tanto permitiendo esencialmente a manejadores de dispositivos USB ejecutarse en un modo cuasi-usuario/kernel. 1.11 Los relojes podrían ser usados para calcular la hora actual. De una breve descripción de cómo esto podría llevarse a cabo. Respuesta: Un programa podría usar la siguiente alternativa para calcular la hora actual usando interrupciones de tiempo. El programa podría usar un reloj para algún tiempo en el futuro y después irse a dormir. Cuando se despierte por la interrupción, actualizaría su estado local, el cual podría ser manteniendo registro del número de interrupciones recibidas hasta el momento. Podría entonces repetir el proceso continuamente ajustando las interrupciones de tiempo y su estado local cuando las interrupciones lleguen. 1.12 La Internet es una LAN o una WAN? Respuesta: La Internet es una WAN ya que las computadoras se localizan en lugares geográficamente diferentes y se conectan por enlaces de redes de larga distancia. 1.13 Escriba un archivo batch para ejecutarse en una ventana de MSDOS de manera que el archivo se ejecute a si mismo. Respuesta: Usando un editor de texto, se incluyen en un archivo batch, entre las ordenes a ejecutarse el propio archivo como otra orden, haciéndose recursivo. Por ejemplo: programa01.bat es el nombre del archivo a editar y en el se incluyen ordenes como a continuación; “echo off echo archivo batch que se llama a si mismo echo.... programa01” Ejecutar el archivo batch en una ventana MSDOS y verificar los resultados. 4 /4