¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie...

55

Transcript of ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie...

Page 1: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.
Page 2: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

¿Que es un Sistema

Operativo?

Page 3: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar el manejo y la utilización de la computadora, haciendolo seguro y eficiente

Page 4: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Sist. Oper

Monotarea

Multitarea

Page 5: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

S.O. Monotarea

Un sistema se dice que es monotarea cuando divide la permite tener en un solo proceso de usuario en la memoria además del sistema operativo y hasta que este proceso de usuario no termine no permite cargar otro. programa de usuario.

Page 6: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

S.O. Multitarea

Un sistema se dice que es multitarea cuando permite que coexistan varios procesos activos a la vez

Page 7: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Sist. Oper

Gestión de recursos

Ejecución de servicios para los programas

Ejecución de los mandatos y ordenes de los usuarios

Tareas del sistema operativo

Page 8: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Sistema operativo como gestor de recursos

a) Asignación de recursos

b) Protección

c) Monitoreo de recursos

d) ejecución de programas

Page 9: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Dispositivo que está a disposición para ser utilizado, generalmente es administrado por el Gestor o administrador de recursos del S.O. dependiendo de las condiciones existente

RECURSO

Page 10: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Unidades de almacenamiento

ABC

Z

Disquetera

Disco duro Disco secundario particiones de Discos C.D. Grabadoras cintas de respaldo otros periféricos de almacenamiento

Page 11: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.
Page 12: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Proceso Lotes (Batch)

Ent./SalImpresiónAsignación de memoria

almacenamiento

Page 13: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

¿Que es un Proceso?

Page 14: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Cualquier tarea activa es un proceso en ejecución

Estas pueden ser creadas por el usuario o responsabilidad directa del sistema operativo

Page 15: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

El proceso en general es un programa en ejecución

Este puede ser creado, ejecutado y destruido, por el Sistema Operativo de acuerdo con las ordenes que imparte el usuario

Page 16: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Control de procesos

Ejecución de programas

Controlar las condiciones de ejecución

Comunicar y sincronizar un programa con otros

Page 17: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Estados de los Procesos

• En estado de “ejecución” (si tiene en ese momento la CPU).

• En estado de “listo” (cuando podría usar una CPU, si hubiera una disponible).

• En estado “bloqueado” (si espera que ocurra algo).

Page 18: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Lista de “listos”– Se mantiene en orden de prioridades.

• Lista de “bloqueados”– Desordenada.– Los procesos se desbloquean en el

orden en que tienen lugar los eventos que están esperando.

Page 19: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Transiciones de estado de Procesos

• Cuando un proceso es admitido, es insertado en la Lista de “listos” y se va moviendo hacia la cabeza a medida que se completan los procesos anteriores.

• Cuando llega a la cabeza y la CPU está disponible, hace una transición del estado de “listo”al de “ejecución”.

Page 20: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• La asignación del primer proceso es llamado despacho y es ejecutado por el despachador.

• Mientras tenga la CPU, está en ejecución.

• Para evitar que un proceso monopolice el sistema, se ajusta un “reloj de interrupción”, volviéndolo al estado de listo.

Page 21: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

El Bloque de Control• Es una estructura de datos que contiene

cierta información acerca del proceso :– Estado actual del Proceso.– Identificación única del Proceso.– Prioridad del Proceso.– Apuntadores para localizar la memoria del

proceso.– Area para preservar registros.

• Mantiene la información que precisa para reiniciar el proceso cuando consiga la CPU.

Page 22: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Operaciones sobre Procesos• Un Sist.Operativo que administre procesos por

lo menos debe ser capaz de realizar:

– Crear un Proceso– Destruir un Proceso– Reanudar un Proceso– Cambiar la prioridad de un Proceso– Bloquear un Proceso– Despertar un Proceso– Despachar un Proceso

Page 23: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• La Creación de un Proceso implica, por lo menos :– Dar nombre al Proceso

– Insertar un Proceso en la Lista de Procesos conocidos

– Determinar la prioridad inicial del Proceso

– Crear el bloque de control de Proceso

– Asignar los recursos iniciales del Proceso

Page 24: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Un proceso puede crear un nuevo Proceso– Padre e hijo– Cada hijo, un solo padre– Cada padre puede tener varios hijos

• La destrucción de un proceso es mas complicada:– En algunos SO un proceso se destruye

automáticamente al destruir al padre– En otros continúan independientemente de

sus padres– Proceso 1 (uno), padre de todos ?

Page 25: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Procesamiento de Interrupciones

• Una interrupción es el evento que altera la secuencia en que el procesador ejecuta las instrucciones.

• Cuando ocurre la interrupción(que es generada por el Hardware), entonces :– El SO obtiene el control.– El SO salva el estado del proceso

interrumpido.– El SO analiza la interrupción y pasa el

control a la rutina apropiada.

Page 26: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Una interrupción debe ser iniciada por un proceso en ejecución.

ó• Por un evento no relacionado con

dicho proceso.

Page 27: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Tipos de Interrupciones

• El siguiente es el esquema de los procesadores IBM de gran porte– Interrupciones SVC (llamada al Supervisor)– Interrupciones de Entrada/Salida– Interrupciones externas– Interrupciones de reinicio– Interrupciones de verificación de programa– Interrupciones de verificación de la máquina

Page 28: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Kernel (núcleo) del SO• Las operaciones que implican procesos son

controladas por una parte de la programación del SO, que es llamada núcleo ó kernel.

• Suele permanecer en la memoria principal.

• Una de sus funciones mas importantes es el proceso de las interrupciones ya que la rápida respuesta a ellas mide la perfomance.

Page 29: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Funciones del Núcleo

• Manipulación de interrupciones.

• Creación y destrucción de procesos.

• Cambio de estados de procesos.

• Suspensión y reanudación de procesos.

• Sincronización de procesos.

• Comunicación entre procesos.

• Manipulación de bloques de control que se encarga de el despacho de procesos.

Page 30: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Soporte de las actividades de E/S

• Soporte de la asignación y liberación del almacenamiento.

• Soporte del Sistema de Archivos.

• Soporte de un mecanismo de llamada/retorno al procedimiento.

• Soporte de ciertas funciones contables del SO.

Page 31: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Habilitación e inhabilitación de interrupciones

• Al núcleo suele entrarse mediante una interrupción.

• El núcleo inhabilita las interrupciones mientras responde a ellas.

• Una vez determinada la causa de la interrupción, el núcleo pasa su procesamiento al proceso específico del sistema diseñado para manejar ese tipo de interrupción.

Page 32: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Administración de la memoria

Page 33: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• La parte del Sistema Operativo que administra la utilización de la memoria se llama “ADMINISTRADOR DE LA MEMORIA”

• Sus funciones son:– Llevar un registro de la memoria que se está

utilizando.– Llevar un registro de la memoria libre.– Asignar espacio a los procesos cuando la

necesiten y liberarla al terminar.– Administrar el intercambio entre la memoria

principal (virtual) y el disco.

Page 34: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Administración Sin Paginación:

• No desplazan los procesos de la memoria principal al disco.

• Son los mas sencillos pero mas lentos.• Con los precios de la memoria, es posible que

éste tipo de administración vuelva a utilizarse.

Page 35: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Monoprogramación:

– Un proceso por vez cargado en la memoria.

– La memoria se encuentra dividida entre el Sistemas Operativo y el Proceso.

– El SO podría estar al principio ó al final de la memoria.

Page 36: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Multiprogramación:

– Permite aprovechar los tiempos en que los procesos se encuentran esperando operaciones de ES.

– Facilita la atención de una aplicación al dividirla en dos ó mas procesos.

– Permite manejar varios usuarios en forma simultanea e interactiva.

Page 37: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Multiprogramación con particiones fijas

Page 38: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Es la manera mas sencilla de dividir la memoria (partes iguales ó distintas).

• Cualquier espacio que no sea utilizado por una tarea se pierde.

• Este sistema con particiones fijas elegidas por el operador al principio del día fue utilizado durante varios años por IBM OS/360 y se llamó MFT.

Page 39: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Reasignación y protección

• Son dos problemas esenciales a resolver en la multiprogramación.

• Una posible solución es modificar las instrucciones del programa al cargarlo a memoria.

• Lo que se hace es sumar como base de cálculo la dirección del comienzo de la partición que le toque y sumarle la dirección de la instrucción.

Page 40: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Esta técnica se conoce como:

– Base + Desplazamiento

• Se debe incluir en el programa una lista ó mapa de bits que indique cuales son direcciones a reasignar y cuales son elementos que no deben ser reasignados.

• Esto no resuelve que un programa escrito con maldad siempre apunte a una dirección fija.

Page 41: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• No existe forma de evitar que un programa construya una instrucción de lectura ó escritura en una dirección de memoria.

• Obviamente, no es deseable que se utilice memoria del SO ó asignada a otros usuarios.

• IBM optó por colocar una contraseña de 4 bits a bloques de 2 Kb de memoria.

• La IBM/360 detenía cualquier acceso a una parte de la memoria cuyo código de protección fuera distinto.

Page 42: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Puesto que el Sistema Operativo era el único autorizado para modificar los códigos y las claves de protección, los procesos de los usuarios no podían interferir entre sí y con el sistema operativo.

Page 43: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Intercambio y Paginación:

• Es denominado el traslado del disco hacia la memoria principal y viceversa.

• Se utiliza cuando se trabaja en tiempo compartido y existen mas usuarios que los que puede albergar la memoria principal.

Page 44: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Multiprogramación con particiones variables

Page 45: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• En la práctica las particiones fijas no son muy adecuadas ya que la mayor parte de la memoria se desperdicia con programas menores que sus particiones.

• Al utilizar particiones variables el número y tamaño de los procesos varia en forma dinámica durante el día.

• Mejora el uso de la memoria pero hace mas compleja su asignación y re-asignación.

Page 46: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Una técnica es compactar la memoria:

– Combinar todos los huecos en uno grande, si se mueven todos los procesos hacia la parte inferior.

– Consume mucho tiempo de CPU – Una máquina de 1Mb de memoria tardaría un segundo en realizarlo.

• Si se espera que la mayoría de los procesos crezcan a medida que se ejecutan, sería buena idea asignar memoria adicional.

Page 47: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Existen tres formas utilizadas por los Sistemas Operativos para registrar el uso de la memoria:

– Mapa de bits

– Listas

– Sistemas amigables

Analizaremos las listas

Page 48: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Administración con listas ligadas:

• Se trata de una lista con punteros a los segmentos de memoria asignados ó libres, en dónde un segmento puede ser un proceso ó un hueco entre dos procesos.

• Cada entrada de a lista direcciona a un espacio libre ó a un proceso.

Page 49: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Cada uno de los nodos incluye:

– Dirección en donde comienza el espacio apuntado.

– Su longitud.– Un puntero a la siguiente entrada.

• Normalmente la lista de segmentos está ordenada por direcciones.

Page 50: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Un proceso que termina, en general tiene dos vecinos (excepto cuando se encuentra en alguno de los bordes de la memoria).

• Estos vecinos pueden ser procesos ó espacios libres, lo que produce cuatro combinaciones posibles.

Page 51: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

a) A X B A B

b) A X A

c) X B B

d) X

Page 52: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Cuando se mantiene una lista ordenada por direcciones, existen diferentes algoritmos para asignarle memoria a un proceso nuevo:

• Primero en ajustarse (first fit):– Se revisa toda la lista hasta encontrar un

espacio lo suficientemente grande.– El espacio se divide en dos parte:

• El proceso• La memoria no utilizada

– Es lo más rápido.

Page 53: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Mejor ajuste (best fit):– Se busca en toda la lista hasta encontrar

el espacio mas adecuado.– Es mas lento ya que tiene que revisar

toda la lista antes de definir la asignación.

– Tiende a definir la memoria con espacio libres pequeños, sin utilidad.

• Peor ajuste (worst fit):– Se trata de tomar siempre el espacio libre

mas grande.– Tampoco es una buena idea.

Page 54: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

• Se pueden mejorar éstos algoritmos con dos listas:

– Una para los procesos.

– Otra para los espacios libres, ordenada por tamaños.

• Ajuste rápido:

– Se mantiene una lista independiente para los tamaños utilizados mas frecuentemente.

Page 55: ¿Que es un Sistema Operativo? Un Sistema Operativo es un programa que tiene encomendadas una serie de funciones diferentes y cuyo objetivo es simplificar.

Memoria Virtual• La idea es que la combinación de

programa, datos y necesidades de crecimiento puedan exceder la cantidad de memoria disponible para el proceso.

• El SO mantiene aquellas partes del programa que se utilizan en cada momento en la memoria principal y el resto permanece en disco.