Unidad didáctica Sistemas Operativos

4,936 views

Published on

Una pequeña descripción sobre sistemas operativos

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,936
On SlideShare
0
From Embeds
0
Number of Embeds
2,038
Actions
Shares
0
Downloads
64
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Unidad didáctica Sistemas Operativos

  1. 1. SISTEMAS OPERATIVOS Y LENGUAJES DE PROGRAMACIÓN
  2. 2. Sistemas Operativos <ul><li>El Sistema Operativo define toda nuestra experiencia con el ordenador </li></ul><ul><li>Son el primer software que vemos-salvo por la BIOS-cuando encendemos el ordenador y el último que vemos cuando lo apagamos </li></ul><ul><li>Es el software que maneja todos los programas que usamos </li></ul><ul><li>Organiza y controla nuestro hardware </li></ul><ul><li>Todo Ordenador de Sobremesa tiene Sistema Operativo </li></ul><ul><li>Los más comunes: </li></ul><ul><li>Windows en todas sus versiones, 95, 98, 2000, NT, XP y CE </li></ul><ul><li>La familia Unix(Linux incluido, aunque no sean exactamente igual),Sco Unix, etc. </li></ul><ul><li>Los Sistemas Operativos MacIntosh </li></ul><ul><li>Hay cientos de otros sistemas operativos para aplicaciones de propósito específico, sistemas de tiempo real y para ordenadores mainframes. </li></ul>
  3. 3. Sistemas Operativos <ul><li>En su nivel más básico, un sistema operativo hace dos cosas </li></ul><ul><li>1. Manejar los recursos Hardware y Software del Sistema Informático </li></ul><ul><li>2. Proporciona una forma estable y consistente para tratar con el hardware sin tener que saber los detalles del Hardware </li></ul><ul><li>Programas y métodos de acceso compiten por tiempo de CPU y piden memoria, almacenaje y ancho de banda para Entrada/Salida para sus propósitos </li></ul><ul><li>El S.O, juega el papel de Administrador de Recursos, asegurándose de que cada aplicación consiga los recursos necesarios a través de las necesidades de todos los usuarios y todas las aplicaciones </li></ul><ul><li>La segunda tarea un API o interfaz de Programa de Aplicación, permite a un Desarrollador de Software escribir una aplicación en un ordenador y tener un alto nivel de confianza en que se ejecutará en un ordenador del mismo tipo sin problemas </li></ul>
  4. 4. Funciones del Sistema Operativo <ul><li>Un Sistema Operativo puede asegurar que las aplicaciones continúen ejecutándose cuando ocurran actualizaciones o se pase a una versión más reciente de la misma </li></ul><ul><li>Eso es así, porque es el S.O. y no la aplicación el encargado de manejar el Software y la distribución de sus recursos </li></ul><ul><li>Como ejemplo de la flexibilidad que proporciona un Sistema Operativo, podemos citar a Windows 2000 </li></ul><ul><li>Windows 2000 se ejecuta en hardware de miles de vendedores </li></ul><ul><li>Puede acomodar miles de impresoras diferentes, unidades de disco y periféricos especiales en cualquier combinación </li></ul>
  5. 5. Categorías de S.O. <ul><li>Hay cuatro tipos, basando la división en los tipos de ordenador que controlan y en los tipos de aplicación que soportan </li></ul><ul><li>1. Sistemas Operativos de Tiempo Real. RTOS: Se usan para controlar maquinaria, instrumentos científicos y sistemas industriales </li></ul><ul><li>La interfaz de estos sistemas es muy pobre, ya que el Sistema será una caja sellada cuando se vaya a usar </li></ul><ul><li>2. Monousuario, monotarea. Tal como indica su nombre este S.O. Está diseñado para que sólo un usuario pueda hacer una cosa a la vez </li></ul><ul><li>Como ejemplo, tenemos Palm Os para ordenadores Palm </li></ul><ul><li>3. Monousuario, multitarea. El más extendido en los ordenadores de sobremesa </li></ul><ul><li>Windows 2000 y Mac OS son ejemplos de Sistemas Operativos que dejarán tener varios programas en operación a la vez+ </li></ul><ul><li>4. Multiusuario: Muchos usuarios aprovechan los recursos del ordenador simultáneamente </li></ul><ul><li>Unix, VMS y MVS son ejemplos de estos sistemas </li></ul>
  6. 6. Categorías de S.O. <ul><li>Necesitamos diferenciar entre Sistemas Operativos Multiusuario y Sistemas Operativos que soportan Red </li></ul><ul><li>W2K y Novell Netware pueden soportar cientos o miles de usuarios en red pero los sistemas operativos en sí no son verdaderos sistemas multiusuario </li></ul><ul><li>El Administrador del Sistema es el único “Usuario” tanto para W2000 como para Netware </li></ul><ul><li>El soporte de la red, y las entradas a la misma, son tratadas por el S.O. como un programa ejecutado por el Administrador del Sistema </li></ul>
  7. 7. Secuencia básica de carga del S.O. <ul><li>Cuando se enciende el ordenador, el primer programa que se ejecuta es la BIOS </li></ul><ul><li>La BIOS eventualmente comienza a activar las unidades de disco del ordenador </li></ul><ul><li>La BIOS busca el “Boostrap Loader”, programa que es la primera parte del Sistema Operativo, y su función es cargar el S.O. En la memoria y permite que comience a operar </li></ul><ul><li>Pasos que lleva a cabo este programa-a su nivel más básico: </li></ul><ul><li>1. Pone a punto los pequeños programas que controlan los subsistemas hardware deçl Ordenador </li></ul><ul><li>2. Establece las Divisiones de Memoria que tendrá el Sistema Operativo, la información del Usuario y las aplicaciones del Ordenador </li></ul><ul><li>3. Define las estructuras de datos que contendrán las señales, etiquetas y semáforos usados para comunicarse entre los subsistemas y aplicaciones del Ordenador </li></ul><ul><li>Cede el control del Ordenador al Sistema Operativo </li></ul>
  8. 8. La carga del Sistema Operativo <ul><li>Las tareas del Sistema Operativo, en su sentido más general son las siguientes: </li></ul><ul><li>Gestión del Procesador </li></ul><ul><li>Gestión de la Memoria </li></ul><ul><li>Gestión de los dispositivos </li></ul><ul><li>Gestión del Almacenaje </li></ul><ul><li>Interfaz de Aplicación </li></ul><ul><li>Interfaz de Usuario </li></ul><ul><li>Estas seis tareas definen el núcleo de esencialmente todos los sistemas operativos </li></ul><ul><li>Las herramientas para llevar a cabo estas funciones son las que siguen: </li></ul>
  9. 9. Gestión de Memoria <ul><li>Se trata de que cada proceso y aplicación reciba suficiente del tiempo del procesador para funcionar adecuadamente </li></ul><ul><li>La unidad básica con la que el S.O. da cuenta del trabajo hecho por el procesador es o bien un proceso o una hebra(Thread) según el Sistema Operativo. </li></ul><ul><li>Un proceso es software que realiza alguna acción especifica y que puede ser controlado por un usuario, por otra aplicación o por el Sistema Operativo </li></ul><ul><li>Son los procesos y no las aplicaciones, los que controla el Sistema Operativo para ejecución por la CPU </li></ul><ul><li>En Sistemas monotarea, el Sistema Operativo suspende la ejecución de la aplicación sólo lo bastante para tratar con interrupciones y entradas de usuario </li></ul>
  10. 10. Interrupciones <ul><li>Son señales mandadas a la CPU pidiendo una acción </li></ul><ul><li>Algunas veces el SO ignorará(Enmascarará) las interrupciones de algunas fuentes para que un trabajo particular pueda ser terminado lo antes posible </li></ul><ul><li>Hay algunas interrupciones(Tales como condiciones de error o problemas con la memoria) que son tan importantes que no pueden ser ignoradas </li></ul><ul><li>Estas interrupciones no ignorables deben ser atendidas inmediatamente, sin tener en cuenta las otras tareas pendientes </li></ul><ul><li>El trabajo de manejo de interrupciones en un sistema multitarea es mucho más complicado </li></ul>
  11. 11. MultiTarea <ul><li>El SO arregla la ejecución de las aplicaciones de tal modo que el usuario crea que están ocurriendo varias cosas a la vez. Esto da la impresión de multitarea </li></ul><ul><li>Esto es complicado porque la CPU puede hacer sólo una cosa a la vez </li></ul><ul><li>Para dar la apariencia de que hay varias cosas ocurriendo a la vez, el Sistema Operativo tiene que cambiar entre diferentes procesos miles de veces por segundo </li></ul><ul><li>Ahora veremos cómo ocurre: </li></ul>
  12. 12. Transición de Procesos <ul><li>Un proceso ocupa una cierta cantidad de RAM </li></ul><ul><li>Además, el proceso hará uso de registros, pilas y colas dentro de la CPU y espacio de memoria de Sistema Operativo </li></ul><ul><li>Cuando dos procesos son multitarea, el Sistema Operativo permitirá un número de ciclos de ejecución de CPU a un programa </li></ul><ul><li>Después de ese número de ciclos, el Sistema Operativo hará copias de los registros, colas y pilas usados en el proceso y anotará el punto en el que el proceso detuvo su ejecución </li></ul><ul><li>Cargará entonces los registros, colas y pilas usados por el segundo proceso y le permitirá un número de ciclos </li></ul><ul><li>Cuando se completen, hará copias de los registros colas y pilas usados por el segundo programa y cargará el primer programa </li></ul><ul><li>Toda la información usada para seguir la pista a un proceso cuando se cambian se guarda en un paquete de datos llamado bloque de control: Control Block </li></ul><ul><li>El bloque de control de procesos contiene típicamente: Un número de ID, que identifica al proceso y punteros a la localización del programa y sus datos donde ocurrió la última operación del proceso hasta ese momento </li></ul>
  13. 13. Transición de procesos <ul><li>La transición entre procesos-swapping- ocurre sin la intervención del usuario y el SO asegurará que cada proceso tenga suficiente tiempo de CPU para realizar su tarea en un plazo razonable de tiempo </li></ul><ul><li>El problema puede venir, si el usuario trata de tener muchos procesos funcionando a la vez </li></ul><ul><li>Si el SO no ha sido bien diseñado y hay un número grande de procesos en ejecución, el SO puede empezar a usar la mayor parte de los ciclos de su CPU en cambiar entre procesos en vez de en ejecutar esos procesos </li></ul><ul><li>Cuando esto ocurre-thrashing-normalmente requiere alguna clase de intervención directa del usuario para parar procesos y devolver estabilidad al sistema </li></ul><ul><li>En un sistema con dos o más CPUs, el Sistema Operativo debe intentar equilibrar las demandas de los procesos requeridos con los ciclos disponibles en las diferentes CPUs </li></ul><ul><li>Algunos SO-llamados Asimétricos-usarán una CPU para sus propias necesidades dividiendo los procesos de aplicación entre las restantes CPUs </li></ul><ul><li>Los SO simétricos se dividirán entre varias CPUs, equilibrando la demanda con la disponibilidad de CPU </li></ul>
  14. 14. Gestión de memoria y almacenaje <ul><li>Cada proceso debe tener suficiente memoria para ejecutarse </li></ul><ul><li>No puede invadir el espacio de memoria de otro proceso ni ser invadido por otro proceso </li></ul><ul><li>Los distintos tipos de memoria en el sistema deben ser usados adecuadamente para que cada proceso se ejecute adecuadamente </li></ul><ul><li>La primera tarea requiere que el SO establezca límites para aplicaciones individuales </li></ul><ul><li>La mayor parte de la información que una aplicación almacena en la memoria no está siendo usada en ningún momento </li></ul><ul><li>Un procesador sólo puede acceder a la memoria una localización por vez, así que la inmensa mayoría de la RAM no se usa </li></ul><ul><li>Dado que el espacio de disco es barato comparado con la RAM, mover información coherentemente desde la RAM hasta el disco duro puede expandir mucho la RAM sin costo. Esta técnica se llama Gestión de Memoria Virtual </li></ul><ul><li>El SO debe equilibrar las necesidades de varios procesos moviendo datos en bloques llamados páginas entre la memoria disponible tal como el esquema de procesos dicta. Esto se llama paginación/segmentación </li></ul>
  15. 15. Gestión de Dispositivos <ul><li>El enlace entre el SO y todo el Hardware que no está en la placa madre funciona a través de un programa especial llamado device driver-controlador de dispositivo </li></ul><ul><li>Mucha de la función de un driver es ser traductor entre las señales eléctricas de los subsistemas de hardware y los lenguajes de aplicación de alto nivel del SO y programas de aplicación </li></ul><ul><li>Los controladores están separados del sistema operativo así que nuevas funciones pueden ser añadidas al controlados y así al subsistema de Hardware sin tener que modificar el SO </li></ul><ul><li>La gestión de Entrada Salida(E/S) es una cuestión de manejo de colas y almacenamiento intermedio-buffers </li></ul><ul><li>Hay facilidades especiales de almacenaje que toman un flujo de bits de un dispositivo, de teclados a puertos de comunicaciones en serie, guardan los bits y los pasan a la CPU a un ritmo lo bastante lento como para que la CPU los maneje </li></ul>
  16. 16. Interfaz de Aplicación <ul><li>Las interfaces de programas de aplicación dejan que los programadores usen funciones del SO sin tener en cuenta todos los detalles de la operación de la CPU </li></ul><ul><li>Un programador usando una API para –por ejemplo-almacenaje de disco, no tiene que tener en cuenta los códigos de instrucción, tipos de datos, y códigos de respuesta para cada posible disco duro o unidad de cinta </li></ul><ul><li>OS conectan a los drivers para varios subsistemas de Hardware. Ellos son los que tratan los detalles cambiantes del Hardware. El programador sólo escribe el código para la API y confía que el SO haga el resto </li></ul>
  17. 17. Interfaz de Usuario <ul><li>Una Interfaz de Usuario(UI) proporciona estructura a la interacción entre el usuario y el ordenador </li></ul><ul><li>Casi todos los desarrollos han sido en el área de la Interfaz Gráfica de Usuario, con Microsoft Windows y MacOs como principales exponentes </li></ul><ul><li>Otros interfaces de usuario: </li></ul><ul><li>Unix tiene interfaces llamados shells que presentan una interfaz de usuario más flexible y potente que el interfaz estándar basado en texto </li></ul><ul><li>Programas tales como el Korn Shell y el C Shell son interfaces basados en texto cuyo principal propósito es hacer más fácil al usuario manipular las funciones del Sistema Operativo </li></ul><ul><li>También hay interfaces gráficas, tales como X-Windows y Gnome que hacen Unix y Linux parecer más como Windows y Macintosh desde el punto de vista del usuario. </li></ul>
  18. 18. Interfaz de Usuario <ul><li>La interfaz de usuario es un programa o conjunto de programas, que se sitúa una capa por encima del propio sistema opertivo </li></ul><ul><li>Las funciones internas o core functions están en el núcleo –kernel- del SO </li></ul><ul><li>La mayor parte de los sistemas operativos, controladores y programas de utilidad están escritos por organizaciones comerciales que distribuyen versiones ejecutables de su software, versiones que no pueden ser estudiadas o alteradas </li></ul><ul><li>Código abierto requiere la distribución de materiales de software original que puedan ser estudiados, alterados y construidos, con los resultados libremente distribuidos, tal como Linux </li></ul>

×