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

Post on 09-Mar-2015

9 views 4 download

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

¿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 manejo y la utilización de la computadora, haciendolo seguro y eficiente

Sist. Oper

Monotarea

Multitarea

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.

S.O. Multitarea

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

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

Sistema operativo como gestor de recursos

a) Asignación de recursos

b) Protección

c) Monitoreo de recursos

d) ejecución de programas

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

Unidades de almacenamiento

ABC

Z

Disquetera

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

Proceso Lotes (Batch)

Ent./SalImpresiónAsignación de memoria

almacenamiento

¿Que es un Proceso?

Cualquier tarea activa es un proceso en ejecución

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

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

Control de procesos

Ejecución de programas

Controlar las condiciones de ejecución

Comunicar y sincronizar un programa con otros

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).

• 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.

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”.

• 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.

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.

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

• 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

• 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 ?

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.

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

ó• Por un evento no relacionado con

dicho proceso.

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

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.

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.

• 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.

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.

Administración de la memoria

• 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.

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.

• 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.

• 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.

Multiprogramación con particiones fijas

• 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.

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.

• 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.

• 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.

• 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.

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.

Multiprogramación con particiones variables

• 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.

• 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.

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

– Mapa de bits

– Listas

– Sistemas amigables

Analizaremos las listas

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.

• 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.

• 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.

a) A X B A B

b) A X A

c) X B B

d) X

• 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.

• 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.

• 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.

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.