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

45
Sistemas Operativos Daniel Rojas U UTN

Upload: others

Post on 05-Oct-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Operativos · 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

Sistemas Operativos Daniel Rojas U

UTN

Page 2: Sistemas Operativos · 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

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.

Page 3: Sistemas Operativos · 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

Sistema Operativo

Page 4: Sistemas Operativos · 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

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.

Page 5: Sistemas Operativos · 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

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.

Page 6: Sistemas Operativos · 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

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.

Page 7: Sistemas Operativos · 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

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.

Page 8: Sistemas Operativos · 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

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.

Page 9: Sistemas Operativos · 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

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.

Page 10: Sistemas Operativos · 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

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

Page 11: Sistemas Operativos · 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

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.

Page 12: Sistemas Operativos · 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

Organización de un sistema de Computadoras

Page 13: Sistemas Operativos · 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

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.

Page 14: Sistemas Operativos · 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

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.

Page 15: Sistemas Operativos · 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

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.

Page 16: Sistemas Operativos · 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

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.

Page 17: Sistemas Operativos · 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

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.

Page 18: Sistemas Operativos · 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

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.

Page 19: Sistemas Operativos · 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

Estructura de almacenamiento

• Existen otros medios de almacenamiento conocidos como medios secundarios.

• Normalmente se utilizan discos magnéticos.

Page 20: Sistemas Operativos · 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

Estructura de almacenamiento

Page 21: Sistemas Operativos · 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

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.

Page 22: Sistemas Operativos · 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

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.

Page 23: Sistemas Operativos · 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

Arquitectura de un sistema computacional

Page 24: Sistemas Operativos · 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

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.

Page 25: Sistemas Operativos · 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

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.

Page 26: Sistemas Operativos · 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

Sistemas Multiprocesador

• Tienen 3 ventajas importantes:

• Se incrementa la productividad.

• Economías de escala.

• Se aumenta la confiabilidad.

Page 27: Sistemas Operativos · 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

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.

Page 28: Sistemas Operativos · 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

Sistemas en Cluster

• Estos sistemas proveen alta disponibilidad.

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

Page 29: Sistemas Operativos · 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

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.

Page 30: Sistemas Operativos · 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

Sistemas en Cluster

Page 31: Sistemas Operativos · 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

Sistemas en Cluster

Page 32: Sistemas Operativos · 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

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.

Page 33: Sistemas Operativos · 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

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.

Page 34: Sistemas Operativos · 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

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.

Page 35: Sistemas Operativos · 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

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.

Page 36: Sistemas Operativos · 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

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.

Page 37: Sistemas Operativos · 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

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.

Page 38: Sistemas Operativos · 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

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.

Page 39: Sistemas Operativos · 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

Modos de operación

Page 40: Sistemas Operativos · 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

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.

Page 41: Sistemas Operativos · 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

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.

Page 42: Sistemas Operativos · 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

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.

Page 43: Sistemas Operativos · 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

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

Page 44: Sistemas Operativos · 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

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

Page 45: Sistemas Operativos · 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

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