sistemas operativos · qué es un sistema operativo • es un programa que administra el hardware...

Post on 05-Oct-2020

9 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Sistemas Operativos Daniel Rojas U

UTN

Qué es un sistema operativo

• Es un programa que administra el hardware de una computadora.

• También sirve de base para que las aplicaciones interactúen entre el usuario y el hardware.

• Algunos sistemas operativos están diseñados para ser convenientes o eficientes. Algunos buscan alguna combinación de ambos.

Sistema Operativo

Vista de Usuario• La vista del usuario hacia un sistema operativo

depende de la interfaz que se use.

• La mayoría de usuarios acceden a la computadora mediante el monitor, teclado y mouse.

• En este caso el sistema operativo está diseñado para facilidad de uso y los requerimientos de un único usuario.

Vista de Usuario• En otros casos el usuario se conecta a una terminal

conectada a una Mainframe.

• Múltiples usuarios acceden la Mainframe utilizando diferentes terminales.

• En estos casos el sistema operativo está diseñado para compartir recursos.

• Lo más importante es que se compartan y aprovechen los recursos.

Vista del Sistema• Desde el punto de vista de la computadora el sistema

operativo es el programa más cercano al hardware.

• Se puede considerar al sistema operativo como un administrador de recursos.

• Se encarga de resolver conflictos y manejar las solicitudes de recursos.

• Estas tareas se vuelven vitales cuando se trabaja en sistemas multiusuarios.

Vista del Sistema

• También se considera al sistema operativo un programa de control.

• Debido a que controla dispositivos de E/S y programas del usuario.

Definiendo un sistema operativo

• Un sistema operativo cubre muchos roles y funciones.

• El sistema operativo es el encargado de hacer fácil de usar a una computadora.

• La meta fundamental de una computadora es ejecutar programas de usuarios y ayudar al usuario a resolver problemas.

Definiendo un sistema operativo

• Debido a que utilizar el hardware por si solo es muy difícil, se desarrollan aplicaciones de usuarios.

• Estas aplicaciones requieren de ciertas operaciones comunes: dispositivios E/S.

• Estas operaciones comunes y el manejo de recursos se agrupan en un sistema operativo.

Definiendo un sistema operativo

• Otra definición aceptada es: El programa que siempre está corriendo en una computadora.

• Normalmente está compuesto por:

• Kernel

• Programas del Sistema

Organización de un sistema de Computadoras

• Un sistema computacional se puede definir como uno o más CPUS y un grupo de dispositivos conectados a través de un bús común que provee acceso a memoria compartida.

• Cada controlador se encarga de un tipo de dispositivo.

• El CPU y los controladores pueden funcionar en paralelo compitiendo por los ciclos de procesador.

Organización de un sistema de Computadoras

Organización de un sistema de Computadoras

• Cuando se inicia una computadora el primer programa que arranca es el bootstrap.

• Este está guardado en una memoria ROM o EEPROM.

• Inicializa todos los aspectos del sistema operativo.

• Ubica el kernel y lo carga en memoria.

Organización de un sistema de Computadoras

• Una vez que el kernel está cargado y ejecutándose puede comenzar a proveer servicios a los usuarios.

• También se inician ciertos servicios de acompañamiento al kernel, conocidos como procesos del sistema.

• Una vez que el sistema se inicia completamente comienza a esperar que algo ocurra.

Organización de un sistema de Computadoras

• La ocurrencia de un evento se señala con una interrupción.

• La interrupción puede venir del software o hardware.

• El hardware puede hacer una interrupción enviando una señal al CPU a través del bus del sistema.

• El software puede hacer una llamada al sistema para avisar sobre una interrupción.

Organización de un sistema de Computadoras

• Cuando la CPU es interrumpida deja de hacer lo que está haciendo y pasa el control a alguna parte que maneje la interrupción.

• Posteriormente retorno a su operación normal.

Estructura de almacenamiento

• El CPU puede cargar instrucciones únicamente de la memoria.

• Normalmente cargan los programas desde la RAM o ROM.

• Todos los tipos de memoria proveen arreglos de bytes.

• Cada byte posee su propia dirección.

Estructura de almacenamiento

• Idealmente todos los programas deberían de estar en la memoria principal (RAM o ROM) permanentemente.

• Sin embargo no es posible por:

• El tamaño reducido de esta memoria.

• Esta memoria es volátil.

Estructura de almacenamiento

• Existen otros medios de almacenamiento conocidos como medios secundarios.

• Normalmente se utilizan discos magnéticos.

Estructura de almacenamiento

Estructura E/S• Un sistema computacional contiene un gran

número de dispositivos de Entrada y Salida.

• Cada dispositivo debe de tener un controlador que lo administre.

• Los controladores normalmente poseen un buffer y algunos registros especiales.

• En muchos casos es necesario instalar un driver para el que periférico funcione.

Estructura E/S• Para iniciar una operación de E/S, el driver carga los

registros en el controlador.

• El controlador examina estos registros y toma la decisión de que acción tomar (leer carácter del teclado).

• El controlador comienza a transferir datos del dispositivo a su buffer local.

• Una vez finalizado avisa al driver mediante una interrupción.

Arquitectura de un sistema computacional

Sistemas de 1 procesador

• Son sistemas que tienen un único procesador para realizar todas las tareas.

• Pueden tener algunos otros de propósito específico (disco, teclado, vídeo...) pero con funcionalidades limitadas.

Sistemas Multiprocesador

• Estos sistemas tienen dos o más procesadores en constante comunicación.

• Comparten el bus, la memoria, el reloj y los periféricos.

• Inicialmente aparecieron en servidores y fueron migrando paulatinamente hacia las computadoras de escritorio.

Sistemas Multiprocesador

• Tienen 3 ventajas importantes:

• Se incrementa la productividad.

• Economías de escala.

• Se aumenta la confiabilidad.

Sistemas en Cluster• Son sistemas que unen varios CPUs.

• Estos sistemas se diferencian de los multiprocesadores debido a que son más de un sistema unidos.

• Normalmente estos sistemas comparten el almacenamiento y se interconectan a través de una LAN.

Sistemas en Cluster

• Estos sistemas proveen alta disponibilidad.

• El sistema continúa funcionando aunque uno de sus nodos falle.

Sistemas en Cluster

• Se pueden dividir en dos tipos:

• Simétricos: Todos los nodos funcionan al mismo tiempo.

• Asimétricos: Un nodo funciona mientras el otro monitorea esperando un fallo para entrar a funcionar.

Sistemas en Cluster

Sistemas en Cluster

Estructura de un Sistema Operativo

• Uno de los aspectos más importantes de un sistema operativo es la característica de multiprograma.

• Un solo programa no puede mantener ocupado el CPU y los dispositivos totalmente.

• Multiprograma aumenta la utilización del CPU organizando los pendientes, de tal forma que siempre haya algo que ejecutar.

Estructura de un Sistema Operativo

• El sistema operativo toma un trabajo y comienza a ejecutarlo.

• Puede ser que tenga que esperar por alguna subtarea, lectura E/S por ejemplo.

• En ese momento se cambia a otra tarea.

• En un sistema que no fuera multiprograma se quedaría esperando y gastando el tiempo.

Estructura de un Sistema Operativo

• Un concepto importante es el tiempo compartido.

• El CPU cambia de tarea de forma periódica, debido a que el cambio es tan rápido el usuario no se da cuenta.

• Esto permite que el usuario interactúe con varios programas a la vez.

• Inclusive permite que sistemas multiusuario se manipulen de forma simultánea.

Estructura de un Sistema Operativo

• Otro concepto importante es la programación de los trabajos.

• El sistema tiene que ser capaz de seleccionar cuales tareas mantener en memoria y cuales en el disco duro.

Operaciones de un sistema operativo

• Los sistemas operativos se manejan a través de interrupciones.

• En caso de que no hayan tareas por ejecutar ni ningún pendiente en E/S el sistema se queda esperando.

• También pueden darse traps. Son excepciones de software cuando ocurre un error.

Operaciones de un sistema operativo

• Es importante aislar los errores de los diferentes programas.

• Debido a que se comparten muchos recursos el aislamiento es muy importante.

Modos de operación

• Existen dos modos de operación en un sistema operativo.

• Cuando se ejecuta código de sistema operativo o código de usuario.

• El sistema operativo provee soporte de hardware para determinar en que modo se encuentra.

Modos de operación

Modos de operación

• El sistema operativo requiere realizar transiciones de modo usuario a modo kernel para llevar a cabo ciertas tareas.

• El sistema inicia en modo kernel.

• Posteriormente se mueve a modo usuario para ejecutar los programas.

Modos de operación

• Estos modos son importantes para proteger al kernel del usuario y viceversa.

• Existen ciertas instrucciones conocidas como instrucciones privilegiadas que solo se pueden ejecutar en modo kernel.

Timer• Es importante que el sistema operativo mantenga

control sobre el procesador.

• No sería correcto que una tarea se mantuviera eternamente en el procesador.

• El timer interrumpe una tarea en un tiempo determinado.

• Puede ser periódico o variable.

Manejo de Procesos

• A los programas en ejecución se les conoce como procesos.

• Un proceso necesita de ciertos recursos: CPU, Memoria, Archivos, Dispositivios E/S...

• Los procesos son parte vital de los sistemas operativos

Manejo de Procesos• Programar procesos

• Crear y borrar procesos de usuario y de sistema

• Suspender y resumir procesos

• Proveer mecanismos para la sincronía de procesos

• Proveer mecanismos para la comunicación de procesos

Manejo de memoria

• El sistema operativo debe de tener en cuenta cuales partes de la memoria están siendo usadas y por quién

• Decidir cuales procesos mover a la memoria

• Administar el espacio en la memoria como sea necesario

top related