18
SISTEMAS OPERATIVOS Y LENGUAJES DE PROGRAMACIÓN

Unidad didáctica Sistemas Operativos

Embed Size (px)

DESCRIPTION

Una pequeña descripción sobre sistemas operativos

Citation preview

Page 1: Unidad didáctica Sistemas Operativos

SISTEMAS OPERATIVOS Y LENGUAJES DE PROGRAMACIÓN

Page 2: Unidad didáctica Sistemas Operativos

Sistemas OperativosEl Sistema Operativo define toda nuestra experiencia con el ordenadorSon el primer software que vemos-salvo por la BIOS-cuando encendemos el ordenador y el último que vemos cuando lo apagamosEs el software que maneja todos los programas que usamosOrganiza y controla nuestro hardwareTodo Ordenador de Sobremesa tiene Sistema OperativoLos más comunes: Windows en todas sus versiones, 95, 98, 2000, NT, XP y CELa familia Unix(Linux incluido, aunque no sean exactamente igual),Sco Unix, etc.Los Sistemas Operativos MacIntoshHay cientos de otros sistemas operativos para aplicaciones de propósito específico, sistemas de tiempo real y para ordenadores mainframes.

Page 3: Unidad didáctica Sistemas Operativos

Sistemas OperativosEn su nivel más básico, un sistema operativo hace dos cosas1. Manejar los recursos Hardware y Software del Sistema Informático2. Proporciona una forma estable y consistente para tratar con el hardware sin tener que saber los detalles del HardwareProgramas y métodos de acceso compiten por tiempo de CPU y piden memoria, almacenaje y ancho de banda para Entrada/Salida para sus propósitosEl 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 aplicacionesLa 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

Page 4: Unidad didáctica Sistemas Operativos

Funciones del Sistema OperativoUn 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 mismaEso es así, porque es el S.O. y no la aplicación el encargado de manejar el Software y la distribución de sus recursosComo ejemplo de la flexibilidad que proporciona un Sistema Operativo, podemos citar a Windows 2000Windows 2000 se ejecuta en hardware de miles de vendedoresPuede acomodar miles de impresoras diferentes, unidades de disco y periféricos especiales en cualquier combinación

Page 5: Unidad didáctica Sistemas Operativos

Categorías de S.O.Hay cuatro tipos, basando la división en los tipos de ordenador que controlan y en los tipos de aplicación que soportan1. Sistemas Operativos de Tiempo Real. RTOS: Se usan para controlar maquinaria, instrumentos científicos y sistemas industrialesLa interfaz de estos sistemas es muy pobre, ya que el Sistema será una caja sellada cuando se vaya a usar2. 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 vezComo ejemplo, tenemos Palm Os para ordenadores Palm3. Monousuario, multitarea. El más extendido en los ordenadores de sobremesaWindows 2000 y Mac OS son ejemplos de Sistemas Operativos que dejarán tener varios programas en operación a la vez+4. Multiusuario: Muchos usuarios aprovechan los recursos del ordenador simultáneamente Unix, VMS y MVS son ejemplos de estos sistemas

Page 6: Unidad didáctica Sistemas Operativos

Categorías de S.O.Necesitamos diferenciar entre Sistemas Operativos Multiusuario y Sistemas Operativos que soportan RedW2K y Novell Netware pueden soportar cientos o miles de usuarios en red pero los sistemas operativos en sí no son verdaderos sistemas multiusuarioEl Administrador del Sistema es el único “Usuario” tanto para W2000 como para NetwareEl 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

Page 7: Unidad didáctica Sistemas Operativos

Secuencia básica de carga del S.O.Cuando se enciende el ordenador, el primer programa que se ejecuta

es la BIOSLa BIOS eventualmente comienza a activar las unidades de disco del ordenadorLa 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 operarPasos que lleva a cabo este programa-a su nivel más básico:1. Pone a punto los pequeños programas que controlan los subsistemas hardware deçl Ordenador2. Establece las Divisiones de Memoria que tendrá el Sistema Operativo, la información del Usuario y las aplicaciones del Ordenador3. Define las estructuras de datos que contendrán las señales, etiquetas y semáforos usados para comunicarse entre los subsistemas y aplicaciones del OrdenadorCede el control del Ordenador al Sistema Operativo

Page 8: Unidad didáctica Sistemas Operativos

La carga del Sistema OperativoLas tareas del Sistema Operativo, en su sentido más general son las siguientes:

1. Gestión del Procesador2. Gestión de la Memoria3. Gestión de los dispositivos4. Gestión del Almacenaje5. Interfaz de Aplicación6. Interfaz de Usuario

Estas seis tareas definen el núcleo de esencialmente todos los sistemas operativosLas herramientas para llevar a cabo estas funciones son las que siguen:

Page 9: Unidad didáctica Sistemas Operativos

Gestión de MemoriaSe trata de que cada proceso y aplicación reciba suficiente del tiempo del procesador para funcionar adecuadamenteLa 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.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 OperativoSon los procesos y no las aplicaciones, los que controla el Sistema Operativo para ejecución por la CPUEn 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

Page 10: Unidad didáctica Sistemas Operativos

InterrupcionesSon señales mandadas a la CPU pidiendo una acciónAlgunas veces el SO ignorará(Enmascarará) las interrupciones de algunas fuentes para que un trabajo particular pueda ser terminado lo antes posibleHay algunas interrupciones(Tales como condiciones de error o problemas con la memoria) que son tan importantes que no pueden ser ignoradasEstas interrupciones no ignorables deben ser atendidas inmediatamente, sin tener en cuenta las otras tareas pendientesEl trabajo de manejo de interrupciones en un sistema multitarea es mucho más complicado

Page 11: Unidad didáctica Sistemas Operativos

MultiTareaEl 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 multitareaEsto es complicado porque la CPU puede hacer sólo una cosa a la vezPara 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 segundoAhora veremos cómo ocurre:

Page 12: Unidad didáctica Sistemas Operativos

Transición de ProcesosUn proceso ocupa una cierta cantidad de RAMAdemás, el proceso hará uso de registros, pilas y colas dentro de la CPU y espacio de memoria de Sistema OperativoCuando dos procesos son multitarea, el Sistema Operativo permitirá un número de ciclos de ejecución de CPU a un programaDespué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ónCargará entonces los registros, colas y pilas usados por el segundo proceso y le permitirá un número de ciclosCuando se completen, hará copias de los registros colas y pilas usados por el segundo programa y cargará el primer programaToda 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 BlockEl 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

Page 13: Unidad didáctica Sistemas Operativos

Transición de procesosLa 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 tiempoEl problema puede venir, si el usuario trata de tener muchos procesos funcionando a la vezSi 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 procesosCuando esto ocurre-thrashing-normalmente requiere alguna clase de intervención directa del usuario para parar procesos y devolver estabilidad al sistemaEn 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 CPUsAlgunos SO-llamados Asimétricos-usarán una CPU para sus propias necesidades dividiendo los procesos de aplicación entre las restantes CPUsLos SO simétricos se dividirán entre varias CPUs, equilibrando la demanda con la disponibilidad de CPU

Page 14: Unidad didáctica Sistemas Operativos

Gestión de memoria y almacenaje

Cada proceso debe tener suficiente memoria para ejecutarseNo puede invadir el espacio de memoria de otro proceso ni ser invadido por otro procesoLos distintos tipos de memoria en el sistema deben ser usados adecuadamente para que cada proceso se ejecute adecuadamenteLa primera tarea requiere que el SO establezca límites para aplicaciones individualesLa mayor parte de la información que una aplicación almacena en la memoria no está siendo usada en ningún momentoUn 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 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 VirtualEl 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

Page 15: Unidad didáctica Sistemas Operativos

Gestión de DispositivosEl 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 dispositivoMucha 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ónLos 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 SOLa gestión de Entrada Salida(E/S) es una cuestión de manejo de colas y almacenamiento intermedio-buffersHay 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

Page 16: Unidad didáctica Sistemas Operativos

Interfaz de Aplicación 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 CPUUn 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 cintaOS 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

Page 17: Unidad didáctica Sistemas Operativos

Interfaz de UsuarioUna Interfaz de Usuario(UI) proporciona estructura a la interacción entre el usuario y el ordenadorCasi todos los desarrollos han sido en el área de la Interfaz Gráfica de Usuario, con Microsoft Windows y MacOs como principales exponentesOtros interfaces de usuario:Unix tiene interfaces llamados shells que presentan una interfaz de usuario más flexible y potente que el interfaz estándar basado en textoProgramas 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 OperativoTambié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.

Page 18: Unidad didáctica Sistemas Operativos

Interfaz de UsuarioLa interfaz de usuario es un programa o conjunto de programas, que se sitúa una capa por encima del propio sistema opertivoLas funciones internas o core functions están en el núcleo –kernel- del SOLa 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 alteradasCó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