Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Introducción a los Sistemas Operativos Responsable: Ing. Tonny E. Bardales Lozano Introducción • Un Sistema Operativo (S.O.) tiene significados distintos para diferentes usuarios. • La visión de cada uno de éstos se denomina visión abstracta porque enfatiza las características que son importantes desde la perspectiva del observador, ignorando todos los demás aspectos. • Un S.O. implementa una visión abstracta al actuar como intermediario entre el usuario y el sistema de cómputo. Metas de un S.O. • Un S.O. tiene dos metas: 1. El uso eficiente de un sistema de cómputo. 2. Conveniencia del usuario. • Desafortunadamente, la 2da. meta a menudo está en conflicto con la primera. En consecuencia un S.O. no puede proveer a ambos. • Comúnmente, encuentra el equilibrio que resulte más efectivo en el ambiente en el cual se usa un sistema de cómputo. • El uso eficiente es importante cuando un sistema de cómputo es compartido por varios usuarios, mientras la conveniencia del usuario es importante en computadoras personales. Utilización efectiva • Destinamos el término utilización efectiva para referirnos al balance entre la eficiencia y la conveniencia del usuario, que a su vez se ajuste mejor al ambiente. • La función primaria de un S.O. es admitir la ejecución de los programas del usuario para asegurar su conveniencia y el uso eficiente de los recursos. Visión Abstracta del S.O. ¿Qué es un Sistema Operativo? • Para un escolar o estudiante universitario, un S.O. es el software que permite el acceso a la riqueza de conocimiento disponible en el Internet. • Para un programador, un S.O. es el software que permite el uso de un sistema de cómputo para el desarrollo de programas. • Para una persona que usa un paquete de aplicaciones, un S.O. es simplemente el software que hace posible que use el paquete. • Para un técnico en una planta química informatizada, el S.O. es el componente invisible de un sistema de cómputo que controla la planta. Percepción del usuario de un S.O. • La percepción del usuario de un S.O. depende de 3 factores: 1. El propósito para el cual una computadora está siendo usado. 2. El ambiente de cómputo (¿Dónde?). 3. Grado de identidad del sistema de cómputo con el propósito que se está atendiendo. • Para el estudiante, el propósito único del sistema de cómputo podría ser usar un navegador del Internet. El S.O. coadyuva a lograr esto, así es que se identifica con el uso del sistema de cómputo para la navegación en Internet. Percepción del usuario de un S.O. • Un programador desea destinar un sistema de cómputo al desarrollo de programas de uso general, así es que la habilidad para usar un compilador para un lenguaje específico es de suma importancia. • Para una persona que usa un paquete de aplicaciones, el S.O. es simplemente un medio de uso del paquete. • Para un técnico en una planta química informatizada considera al S.O. como un todo en el sistema de control de la planta. Percepción del usuario de un S.O. • De los ejemplos anteriores, es claro que un usuario percibe al S.O. como el software que le ayuda a lograr el uso buscado de un sistema de cómputo; las demás capacidades del sistema de cómputo y su ambiente no parecen tener importancia. • Así, el SO es simplemente una manera de lograr un propósito establecido. • Un usuario preferirá un SO que le permita alcanzar su propósito de la manera más simple y rápida posible. Usos de las visiones abstractas Usos Descripción Recopilación de los requerimientos del sistema La visión abstracta del usuario indica los servicios importantes que un sistema debe suministrar. Puede usarse un conjunto de visiones abstractas para integrar una especificación de los requerimientos del sistema. Diseño del sistema El uso de las visiones abstractas permite que un diseñador se centre en una parte específica del sistema. Los detalles de las demás partes están ocultos; se supone que estas partes se encuentran disponibles. Implementación del sistema La parte cuyos detalles están ocultos en una visión de diseño se convierte en un módulo, que puede invocarse desde otros módulos. Este hecho conduce a una implementación modular. Visión abstracta de un diseñador de S.O. Interfaz del Usuario Programas que no son de kernel Kernel (Núcleo) Hardware de la computadora Parte Descripción Kernel Controla la operación de la computadora y provee funciones para usar el CPU y demás recursos. Programas que no son de kernel Implementan los comandos del usuario. No interactúan con el hardware. Interfaz del usuario Proveen al usuario una interfaz de comando de línea o bien una de usuario gráfico (la interfaz gráfica del usuario). Metas de un Sistema Operativo • Un S.O. no sólo debe asegurar el uso eficiente de un sistema de cómputo, sino que también debe proveer la conveniencia del usuario. Sin embargo, estas consideraciones a menudo están en conflicto. • Por ejemplo, el suministro de un servicio rápido a una petición del usuario podría implicar que haya que despreciar a otros usuarios del sistema. • También podría significar que los recursos deberían permanecer asignados al programa de un usuario aun cuando el programa no los esté usando, lo cual conduciría a la sub-utilización de recursos. Metas de un Sistema Operativo • En tales casos, el diseñador del S.O. debe tomar una decisión consciente para intercambiar la conveniencia y la velocidad de un usuario con las de otros, o bien con el uso eficiente del sistema de cómputo. • Así, la meta crucial de un SO es proveer la combinación que mejor se ajuste al ambiente de uso eficiente y de conveniencia del usuario. Esta es la noción de utilización efectiva de un sistema de cómputo. El SO y la utilización efectiva • La noción de utilización efectiva abarca un espectro amplio de consideraciones. En un extremo del espectro se ubican consideraciones centradas en el usuario, como la conveniencia del usuario y el servicio rápido para las peticiones del mismo. Son importantes en sistemas operativos que admiten computación interactiva o aplicaciones de tiempo crítico. • Las consideraciones centradas en el sistema existen en el otro extremo del espectro. El uso eficiente del sistema es la preocupación suprema en un ambiente de computación que se centre en el sistema, tal como el procesamiento de datos no interactivo. Esto se obtiene a través del uso de buenas políticas de asignación de recursos. El SO y la utilización efectiva • La eficiencia de uso tiene dos aspectos. Un SO consume algunos recursos de un sistema de cómputo durante su propia operación; por ejemplo, ocupa memoria y usa el CPU. Este consumo de recursos constituye una sobrecarga (overhead) que reduce los recursos disponibles a los programas de los usuarios. • El otro aspecto del uso eficiente tiene que ver con el empleo de recursos que realizan los programas del usuario. Puede resultar una eficiencia baja debido a dos causas: • Si un SO le asigna exceso de recursos a los programas o si es incapaz de asignar recursos libres a los programas que los necesiten. Lo primero conduce a un derroche de recursos, mientras que lo último produce entorpecimiento de los recursos y afecta el progreso de los programas. El uso eficiente • El uso eficiente de recursos puede obtenerse mediante la revisión constante de su empleo y realizando medidas correctivas cuando sean necesarias. Sin embargo, un sistema de cómputo contiene varios recursos, como la memoria, los dispositivos de E/S y el CPU, por lo que un método comprehensivo de revisión de la eficiencia puede conducir a una sobrecarga alta. Así, los SO utilizan estrategias que son de aplicación simple y fácil, pero que se sabe que no son del todo óptimas para asegurar una buena eficiencia. • Por ejemplo, se centran en la eficiencia de algunos recursos importantes, como el CPU y la memoria, o manejan los programas del usuario de manera que garanticen una eficiencia alta.Facetas de la conveniencia del usuario Faceta Ejemplos Necesidad Capacidad para ejecutar programas, uso del sistema de archivos. Buen servicio Respuesta rápida a las peticiones de computación. SO amigable con el usuario Comandos de uso sencillo, interfaz gráfica de usuario (GUI). Nuevo modelo de programación Programación concurrente, XP o POO. Características para expertos Medios para construir estructuras computacionales complejas. Características orientadas a la red Medios para construir servidores con capacidad de red. Evolución Capacidad para añadir nuevas características, uso de nuevas PC’s. La Operación de un S.O. –Funciones clave Función Responsabilidad del S.O. Programas Iniciación y terminación de programas. Suministrar métodos convenientes, de modo que varios programas puedan trabajar con un objetivo común. Recursos Asegurar la disponibilidad de los recursos en el sistema y asignarlos a los programas. Planificación Decidir cuándo y durante cuánto tiempo dedicar el CPU a un programa. Protección Proteger los datos y los programas contra la interferencia de otros usuarios y de sus programas. La Operación de un S.O. • Para darse cuenta de la ejecución de un programa, un SO debe asegurar que recursos tales como la memoria y los dispositivos de E/S están disponibles para aquél. • También debe proveerse suficiente atención del CPU a la ejecución de un programa. Esta función se llama planificación. Un usuario puede utilizar varios programas para cumplir con un requisito computacional; por eso un SO debe proporcionar medios para asegurar funcionamiento armonioso de tales programas. • Para ganarse la confianza de los usuarios, un SO debe proveer una garantía de que sus datos no se usarán ilegalmente ni se perderán, y que la ejecución de sus programas no afrontará la interferencia de otros programas en el sistema. Tareas comunes realizadas por los S.O. Tarea Cuándo/quién ejecuta 1. Mantener una lista de usuarios autorizados. Administrador del sistema 2. Construir una lista de todos los recursos del sistema . Cuando se inicia el S.O. 3. Iniciar la ejecución de los programas. Con comandos del usuario. 4. Mantener la información del uso de recursos por los programas y el estado actual de todos los programas. Continuamente durante la operación del S.O. 5. Mantener el estado actual de todos los recursos y asignar los recursos a los programas cuando se solicite. Cuando se soliciten recursos o se liberen. 6. Realizar la planificación. Durante la operación del S.O. 7. Mantener información para la protección. Durante la operación del S.O. 8. Manejar las peticiones hechas por los usuarios y sus programas. Con las peticiones del usuario. Programas Estructura Computacional Responsabilidades del S.O. Programa individual Ejecutar la iniciación/terminación de los programas, administración de recursos. Secuencia de programas individuales Implementar la dependencia de los programas: terminar la secuencia si un programa experimenta una terminación anormal. Coejecución de programas Suministrar las interfaces apropiadas entre los programas, ejecutar la terminación de los programas coejecutados. • Una estructura computacional es una configuración de uno o más programas que trabajan con una meta común. Se crea al emitir uno o más comandos para especificar las relaciones entre los programas y para iniciar su ejecución. Algunas son: La asignación y planificación de recursos • La función de asignación de recursos realiza la unión de uno o más recursos con un programa solicitante: es decir, asocia los recursos con un programa. También retira la asignación de ellos de un programa y los asigna a otros. De esta manera, la asignación y el retiro de asignación de recursos ayudan a implementar el uso compartido de recursos por los usuarios. • Los recursos se dividen en recursos de sistema y creados por el usuario. • La función de protección de los recursos impide la interferencia mutua entre usuarios que comparten un conjunto de ellos. La protección se implementa realizando una asignación sólo si una petición satisface un conjunto de restricciones. La asignación y planificación de recursos La asignación y planificación de recursos La asignación y planificación de recursos Recursos virtuales Recursos virtuales Seguridad y protección Seguridad y protección Temas a abordar
Compartir