Está en la página 1de 20

Resumen de Sistemas operativos

Definición de Sistemas operativos: Conjunto de programas que controlan las ejecuciones de


las aplicaciones y actúa como interfaz entre ellas y el hardware.

Los objetivos de un sistema operativo son:

Comodidad: Que facilite el uso de la PC

Eficiencia: Que gestione los recursos de la manera más eficiente posible

Capacidad de evolucion: Que tenga capacidad de evolucion (fácil de modificar)

Las funciones del sistema operativo son:

Tener la capacidad de gestionar los recursos (memoria, espacio de almacenamiento. Tiempo


de procesamiento, etc.).

Abstracción: Tener la capacidad de proporcionar una serie de abstracciones para que los
programadores puedan enfocarse en resolver las necesidades particulares de sus usuarios sin
preocuparse de los detalles innecesarios.

Aislamiento/proteger a la memoria

Debe tener la función a través de la denominada llamadas al sistema de la ejecución de los


programas de forma mas cómoda. Estas llamadas se encargan de:

- Ejecutar y terminar procesos.


- Facilitar la entrada y salida y las operaciones sobre los archivos.
- Detectar y tratar los errores detectados por el hardware.

El sistema operativo debe incorporar un módulo que permita el dialogo entre el usuario y el
sistema.

Evolución a lo largo del tiempo:

- Etapa 1: PROCESO EN SERIE. No había sistema operativo, el programador debía hacer


todo e interactuar con el hardware.
- Etapa 2: SISTEMA POR LOTES MONOPROGRAMADO. Servían a máquinas muy grandes
que se controlaban desde una única consola.
- Etapa 3: SISTEMA POR LOTES MULTIPROGRAMADO. Aparece el concepto de SPOOL
(Simultaneous Peripheral Operation On Line) que permite el acceso a los datos desde
los discos.
- Etapa 4: SISTEMAS DE TIEMPO COMPARTIDO. El usuario interactúa con el programa.
- Etapa 5: SISTEMAS DE PROPÓSITO GENERAL. Los sistemas operativos de propósito
general eran capaces de operar en lotes, en multiprogramación, en tiempo compartido
y en modo multiprocesador. Pusieron entre el usuario y el hardware una gruesa capa
de software.
- Etapa 6: SISTEMAS DE PC, SISTEMAS PARALELOS, SISTEMAS INTEGRADOS, SISTEMAS
DE TIEMPO REAL, ETC. Son las PC y sus características.

COMPONENTES DE UN SISTEMA OPERATIVO

G.P. (Gestión de los procesos): Provee la creación y finalización de procesos, planificación y


activación de procesos, sincronización de procesos, comunicación entre procesos,
administración de los bloques de control de proceso.

G.M. (Gestión de memoria): Se encarga de asignar memoria, liberar memoria, compartir


memoria.

G.E/S (Gestión de entrada/salida): Controla el funcionamiento de todos los dispositivos de


Entrada/Salida.

G.A. (Gestión de archivos): tiene como el objetivo de facilitar el manejo de los dispositivos
periféricos ofreciendo una visión lógica simplificada de los mismos en forma de archivos, como
el de proteger a los usuarios, poniendo limitaciones a los archivos que es capaz de manipular
cada usuario.

F.S. (Función de soporte): Se encarga de gestionar las interrupciones, administrar las


auditorias, administrar las protecciones y la seguridad.

ARQUITECTURA DE LOS SISTEMAS OPERATIVOS

Monolítica: en su tiempo esta era su arquitectura. Era un programa que se encargaba de


cumplir todas las tareas.

Por capas: Divide el cumplimiento de las tareas en pequeñas capas.

MicroKernel: Reduce las funciones que tenían poco uso y las transformaba en aplicaciones.

SOM (Sistema operativo Modular): estructura del sistema operativo está organizada alrededor
de un kernel central.

Maquina virtual: El S.O. simula su propio hardware para el procesamiento.

ExoKernel: a cada usuario le proporciona un subconjunto de los recursos.

LLAMADAS AL SISTEMA OPERATIVO

TIPOS DE LLAMADA

-Para control de procesos.

-Para manipulación de archivos.

-Manipulación de dispositivos.
-Mantenimiento de información.

-Comunicaciones.

SEGURIDAD Y LOS MECANISMOS DE PROTECCION

Protección:

-Memoria: Protege que la memoria no sea accedida por el usuario o aplicación


indebida.

-E/S: Controla que si un periférico está siendo usado por una aplicación o por otro
usuario que le esta utilizando en el mismo momento.

-Procesador: Protege que el orden de las instrucciones se procese correctamente. Se cumple


esto con estos modos:

-Modo Supervisor.

-Modo Usuario.

ACTIVACION DEL SISTEMA OPERATIVO

El trabajo del sistema operativo puede provenir de las siguientes fuentes:

-Llamadas al sistema emitidas por los programas.

- Interrupción E/S

-Fallo de memoria

En todos estos casos se deja de ejecutar el proceso en ejecución y se pasa a ejecutar el sistema
operativo. Los mecanismos para romper la sentencia lineal de ejecución son dos: Las
instrucciones de bifurcación e interrupciones

Partes de un microprocesador:

-Núcleo/s del procesador.

-Controlador del bus del sistema.

-Niveles compartidos del cache.

-Bus del microprocesador.

-Registros.

-Controlador de memoria.

-Reloj.

Partes de un núcleo
- Unidad de control
- Unidad aritmético -lógica.
- TLB
- MMU
- Niveles exclusivos de cache
- Contador de programa
- Registro de instrucción.
- Registro índice.
- Registro de estado.
- MAR
- MBR
- Registros direccionables

Ciclo de instrucciones

Es lo que se encarga la CPU, ejecuta las instrucciones especificadas en el programa.

Este ciclo este compuesto por las siguientes etapas:

- Actualización o incremento del contador de programa y capacitación de


instrucciones.
- decodificación de la operación indicada en la instrucción
- Búsqueda de operandos.
- Ejecución de la operación con los operandos
- Cálculo de la dirección del resultado y Almacenamiento del resultado.

Las acciones del CPU se dividen en cuatro categorías

- Procesador-memoria.
- Procesador-E/S.
- Procesamiento de datos.
- Control.

Tipos de Interrupciones:

Una interrupción es un pulso eléctrico generado por el hardware conectado al bus del
computador, o por un proceso, que provoca que la CPU no continúe ejecutando
temporariamente las instrucciones del proceso.

-Interrupciones por hardware: Enmascarables y no enmascarables.

-Interrupciones por error de máquina.

-Interrupciones por entrada/salida.

-Interrupciones de reinicio.

-Interrupciones de Software.

-Interrupciones por llamada al supervisor

-Interrupciones de verificación de programa.


Modos de una computadora

- Modo activo.
- Modo en espera.
- Modo supervisor.
- Modo problema.
- Modo enmascarado.
- Modo desenmascarado.

Ciclo de concesión de interrupción

El ciclo de concesión de interrupción consiste en hacer que la CPU realice una bifurcación no
programada

ciclo de tratamiento de la interrupción

ciclo de tratamiento de la interrupción, el programa o rutina de tratamiento de la interrupción


deberá realizarlas operaciones necesarias para atender al dispositivo que solicitó la
interrupción.

ADMINISTRACION DE PROCESOS

Definición: Un proceso tiene diferentes formas de describir (Programa de ejecución/ lo que


se puede ejecutar en un procesador).

Modelo de proceso de dos estados

Se procesa las instrucciones con solo dos estados

-En ejecución

-No en ejecución

Razones para crear un proceso

- En un entorno de lotes, se crea uno en respuesta al envió de un trabajo.


- En entorno interactivo, se crea cuando un usuario intenta conectarse.
- Un SO puede crear uno en nombre de una aplicación.
- Es Generado por el proceso existente para aprovechar el paralelismo.

Razones para terminar un proceso.

- finalización normal.
- Se excedió el límite de tiempo
- Memoria no disponible
- Violación de los limites
- Error de protección
- Error aritmético
- Tiempo excedido
- Fallo de E/S
- Instrucción no valida
- Instrucción privilegiada
- Uso indebido de datos
- Intervención del operador
- terminación del padre
- Solicitud del padre

MODELO DE CINCO ESTADOS


Los estados de vida de un proceso son:

En ejecución: El proceso se está ejecutando actualmente..

Listo: Un proceso que está preparado para ejecutarse cuando se le dé la oportunidad.

Bloqueado/En espera: En espera es un término alternativo frecuentemente usado para


bloqueado como estado de proceso.

Nuevo: Un proceso que acaba de ser creado pero que aún no ha sido admitido por el sistema
operativo en el conjunto de procesos ejecutables.

Terminado: Un proceso que ha sido liberado del conjunto de procesos ejecutables por el
sistema operativo, ya sea porque se ha detenido o porque ha abortado por alguna razón.

Los diferentes posibles eventos que conducen a cada transición de estado para un proceso
son:

Nulo ---- Nuevo: Se crea un nuevo proceso para ejecutar el programa.

Nuevo---- Listo: El sistema operativo moverá un este proceso cuando esté listo para asumir un
proceso adicional.

Listo------En Ejecución: Cuando llega el momento de seleccionar un proceso para ejecutarlo.

En ejecución ------ Terminado: El proceso que se está ejecutando actualmente es terminado


por el sistema operativo.

En Ejecución ---- Listo: El proceso en ejecución alcanzo el tiempo máximo permitido para la
ejecución interrumpida debiendo liberar voluntariamente el control del procesador.

En ejecución -----Bloqueado: Un proceso se pone en el estado de bloqueo si solicita algo por lo


que debe esperar.

Bloqueado-----Listo: Un proceso en estado de bloqueo pasa al estado listo cuando se produce


el evento por el que ha estado esperando.

Listo----Terminado: Un padre puede terminar un proceso hijo en cualquier momento.


Bloqueado---Terminado: Se aplican lo mismo que en el anterior proceso.

Tipos de procesos:

- Intercambiables: durante su ejecución el sistema operativo puede en un swapping llevar a


disco.
- Residentes: siempre durante su ejecución deben residir totalmente en memoria central.
- Reutilizables: deben ser cargados en memoria siempre que son ejecutados.
- Reentrantes: solo necesitan tener una copia del código en memoria cuando más de un
usuario los está usando.
- Padre: es aquel proceso que crea otro proceso.
- Hijo: es aquel proceso creado por otro proceso.
- Privilegiado: proceso ejecutado en modo Kernel.
- No privilegiado: proceso ejecutado en modo usuario.
- De usuario: proceso creado por el usuario que se ejecuta en modo usuario.
- Del sistema: proceso creado por el sistema operativo.
- Apropiativos: procesos que una vez que tienen los recursos que necesitan, solo los dejan
voluntariamente.
- No apropiativos: procesos que les permiten a otros procesos sacarles los recursos que
tienen asignados.
Cambio de proceso:

Se puede cambiar de proceso por tres motivos:

- Interrupción del reloj.


- Interrupción de E/S.
- Fallo de memoria.

OTRAS APLICACIONES DE LA SUSPENSION.

Definimos un proceso suspendido como el que tiene las siguientes características:

- El proceso no está disponible inmediatamente para su ejecución.


- El proceso puede o no estar esperando un evento.
- El proceso fue colocado en un estado de suspensión por un agente.
- El proceso no puede ser removido de este estado hasta que el agente ordene
explícitamente la remoción.

Motivos de una suspensión

- Intercambio.
- Razón del sistema operativo.
- Solicitud interactiva del usuario.
- Temporización.
- Solicitud de proceso del padre.

Tablas de E/S: Gestionan los dispositivos de E/S.


Tablas de procesos: Gestiona los procesos.

Tablas de memoria: Llevan la cuenta de la memoria principal y secundaria. Deben incluir

- La asignación de la memoria principal a los procesos.


- La asignación de la memoria secundaria a los procesos.
- Atributo de protección de bloques de memoria principal o secundaria.
- Cualquier info. Para gestionar la memoria secundaria

Estructura de control de proceso. Bloque de control de proceso


El SO debe saber donde se encuentra el proceso, debe conocer los atributos del proceso que
son necesarios para su gestión

Localización de procesos

Mostrara donde se encuentra un proceso y sus atributos. Dentro abarca:

- Datos de usuario: La parte modificable del espacio del usuario


- Programa de Usuario: Programa a ejecutar
- Pila del sistema: donde se almacenan los parámetros y las direcciones de retorno a
los procesos y llamadas al sistema
- Bloque de control de proceso: Datos necesarios para que el sistema operativo
pueda controlar los procesos.

Atributos de proceso: Información necesitada sobre cada proceso.

Existen tres categorías generales:

- Identificación de proceso: permite identificar a cada proceso de una forma única


- Información del estado del procesador: Información en registros que almacena
procesos interrumpidos o suspendidos.
- Información de control del proceso: Es la información adicional que necesita el
sistema operativo para controlar y coordinar los distintos procesos.

Bloque de control de procesos: es la estructura de datos más importante de un sistema


operativo. Contiene toda la información sobre un proceso que necesita el sistema operativo.
Contiene:

- Identificadores: Identificadores numéricos que se pueden guardar dentro del bloque


de control del proceso

- Registros visibles por el usuario: Es aquel al que se puede hacer referencia por medio
del lenguaje máquina
- Registros de estado y control: variedad de distintos registros del procesador utilizados
para el control de operaciones.

- Puntero de pila: Una pila se utiliza para almacenar los parámetros y las direcciones de
retorno de los procesos y llamadas al sistema.
- Información de estado y de planificación: información que el SO necesita para analizar
las funciones de planificación.
- Estructuración de datos: Un proceso que puede estar enlazado con otro proceso en
una cola, anillo o cualquier otra estructura.
- Comunicación entre procesos: Mensajes relativos para la comunicación entre
procesos.
- Privilegios de procesos: Adquieren privilegios según la memoria que necesita y el
proceso a ejecutar.
- Gestión de memoria: Punteros que apuntan a tablas o páginas de segmentos que
describen la memoria virtual asignada al proceso.
- Propiedad y utilización de los recursos: Se deben indicar los recursos controlados por
el proceso, por ejemplo, archivos abiertos.

Acciones con procesos.

- Crearlo
- Destruirlo
- Modificarle la prioridad.
- Bloquear su ejecución.
- Desbloquear su ejecución.
- Suspenderlo.
- Activarlo.

Control de procesos
Modos de ejecución
- Modo de usuario: Ejecutara los programas de tipo usuario.
- Modo Supervisor: Abarca la ejecución de las funciones más importantes del sistema

Creación de procesos

- Asignar un identificador de proceso único: Se añade una nueva entrada a la tabla de


procesos.
- Asigna el espacio para el proceso.
- Inicializar el bloque de control de proceso.
- Establece los enlaces apropiados.
- Crea o amplia otras estructuras de datos.

Cambio de proceso

Cuando un proceso en ejecución se interrumpe y el sistema asigna otro proceso al estado de


ejecución y le entrega el control a ese proceso.

¿Cuándo se cambia de proceso? Puede ocurrir que en cualquier momento el SO haya


obtenido el control del proceso que se ejecuta actualmente. Algunos eventos que generan
esto son:

- Interrupción.
- Interrupción del reloj: Determina el sistema si el proceso que se realiza uso su
tiempo máximo.
- Interrupción de E/S: El SO determina qué acción de E/S ha ocurrido. Si la
acción de E/S constituye un evento por el cual uno o más procesos están
esperando, entonces el SO mueve todos los procesos bloqueados
correspondientes al estado Listo.
- Fallo de memoria: El procesador encuentra una referencia de dirección de
memoria virtual para una palabra que no esta en la memoria principal.

Trap: Asociada a la ejecución de la instrucción actual y se utiliza para manejar errores o


excepciones

- Llamada al sistema: Llamada a una función del sistema operativo

Cambio de modo

Si hay una interrupción pendiente, el procesador hace lo siguiente.

- Pone el contador de programa en la dirección de inicio de un programa controlador de


interrupciones.
- Pasa del modo usuario al modo supervisor para que el código de procesamiento de la
interrupción pueda incluir instrucciones privilegiada.

Cambios de estado del proceso

Se utiliza cuando el proceso actual se encuentra en ejecución debe ser movido a otro estado

Los pasos son los siguientes:

- Guardar el contexto en el procesador.


- Actualizar el bloque de proceso del proceso que está actualmente en ejecución.
- Mover el bloque de control de proceso de este proceso a la cola apropiada.
- Seleccionar otro proceso para su ejecución.
- Actualizar el bloque de control de proceso seleccionado.
- Actualizar las estructuras de datos de gestión de memoria.
- Restaurar el contexto del procesador al que existía en el momento en el que proceso
seleccionado fue cambiado por ultima vez del estado en ejecución

HILOS es una unidad básica de utilización de la CPU; comprende un ID de hilo, un contador de


programa (CP), un conjunto de registros y una pila. Un proceso tradicional tiene un único hilo
de control. Si un proceso tiene varios hilos de control, puede realizar más de una tarea a la vez.

Multihilo: se refiere a la capacidad de un sistema operativo para soportar múltiples rutas de


ejecución concurrentes dentro de un único proceso. los sistemas operativos que usan
multithreading deberán manejar 2 estructuras: el bloque de control de procesos (BCP) que
contiene información sobre el espacio de direcciones, asignación de recursos, permisos de
acceso y el bloque de control de hebras (BCH) que contiene información de estado de la hebra
e información de scheduling.
Ventajas del uso de hilos:

- Capacidad de respuesta: permite que una parte de un programa bloqueado pueda


seguir ejecutándose.
- Compartir recursos: debe ser organizada por el programador.
- Economía: es más barato que lo convencional.
- Escalabilidad: mejoran la arquitectura.

Funcionalidad de hilos

Los hilos tienen estados de ejecución y pueden sincronizarse entre si.

Estados de hilo

Los estados de un hilo son: Ejecución, listo y bloqueado.

Hay cuatro operaciones básicas de hilos asociadas a un cambio de estado de hilos

- Generación: Se crea un nuevo proceso y con eso se crea un subproceso.


- Bloqueo: Cuando un hilo necesita esperar un evento, se bloquea.
- Desbloqueo: Cuando se produce el evento, se desbloquea.
- Finalizar: Cuando un hilo finaliza,

sincronización de hilos

Método utilizado cuando hay problemas como que se pierdan elementos o se generen
malformaciones.

Implementación de Hilos:

Según su implementación, hay dos niveles de jerarquia

ULT: El soporte para los hilos es proporcionado a nivel usuario. Se soportan por encima del
núcleo y sin su soporte.

KLT ( Kernel level Threads): Hilos proporcionados por el núcleo donde su gestion y soporte son
directamente por el SO.

Enfoques combinados

Múltiples hilos dentro de la misma aplicación pueden ejecutarse en paralelo en múltiples


procesadores, y una llamada bloqueante al sistema no necesita bloquear todo el proceso.

Este enfoque combina las ventajas de los hilos a nivel de usuario y los hilos a nivel del
núcleo y minimizan las desventajas.

Otras configuraciones

- Modelos uno a uno: Cada hilo de ejecución es un único proceso con su propio espacio de
direcciones y recursos.
- Modelo muchos a uno: Múltiples hilos a un proceso
- Modelo de uno a muchos: Un solo hilo para muchos procesos
- Modelo de muchos a muchos: Combina atributos de M:1 y casos de 1: M.
Planificador de procesos y Algoritmos de planificación de procesos

Despachador: Se va a encargar de ordenar y evitar que un solo proceso monopolice el tiempo


del procesador. Sus funciones son:

- Cambiar el contexto de un proceso a otro.


- Cambiar al modo de usuario.
- Saltar a la ubicación adecuada en el programa de usuario para reanudar ese programa.

Cola de procesos: Donde están todos los procesos que se están ejecutando, sin importar su
estado.

Cola de procesos listos: Guardan los procesos en estado listo.

Cola de procesos bloqueados: Guardan los procesos en estado bloqueado.

Cambio de contexto

Se le dice cambio de contexto cuando se produce una interrupción y el sistema necesita


guardar el contexto actual del proceso en ejecución para poder restaurarlo cuando termine su
procesamiento, esencialmente suspendiendo el proceso y luego reanudándolo.

Planificador de largo plazo: analiza todo para ver si puede aceptar ese proceso. Va a la cola de
proceso a planificar.

Planificador de corto plazo: accede a la cola de procesos listos y a la cola de procesos


bloqueados para intervenir cuando se termine el bloqueo.

Planificador de mediano plazo: trae de disco a memoria central y al revés cuando se activa.
Existe si el sistema trabaja con procesos suspendidos, que los manda a disco.

Políticas de planificación

Determinará que proceso, entre los procesos listos, se selecciona para su ejecución. Puede
estar basada en distintas prioridades. En el ultimo caso, hay tres medidas cuantitativas

Hay tres medidas cuantitativas

- Tiempo usado en el sistema hasta el momento, esperando o ejecutando. Tiempo usado.


- Tiempo usado en ejecución hasta el momento. Tiempo en ejecución.
- Tiempo total de servicio requerido por el proceso. Tiempo que necesita actualmente.

Planificador de la CPU

Se encarga de seleccionar un proceso de los procesos en memoria que están listos para
ejecutarse y asigna la CPU a ese proceso.

Planificación apropiativa y no apropiativa

Las decisiones de planificación de la CPU tienen lugar en cuatro circunstancias.

- Cuando un proceso pasa del estado de ejecución al estado de espera.


- Cuando un proceso pasa del estado de ejecución al estado de listo.
- Cuando un proceso pasa del estado de espera al estado de listo.
- Cuando un proceso termina.

Cuando la planificación solo tiene lugar en las circunstancias 1 y 4 decimos que es no


apropiativa.

Cuando la planificación solo tiene lugar en las circunstancias 2 y 3 decimos que es


apropiativa.

Criterios de la planificación

Entre los criterios a la hora de elegir el mejor algoritmo se encuentra:

- Tasa de procesamiento y rendimiento.


- Tiempo de permanencia.
- Tiempo de espera.
- Tiempo de respuesta.
- Plazos
- Previsibilidad
- Utilización del procesador
- Equidad
- Aplicación de las prioridades
- Equilibrado de los recursos.

DIFERENTES TIPOS DE SISTEMAS y sus planificadores

Sistema de procesamiento por lotes

- Planificación FCFS(Primero en llegar primero en ser servido): se selecciona el proceso que


lleva más tiempo en la cola de espera. Cuando la CPU está libre se le asigna el proceso que
está en la cabeza de la cola.
- Planificación SJF (Primero el trabajo más corto): cuando la CPU está disponible se le asigna
al proceso que tiene la menor ráfaga de CPU. Si los dos son iguales se desempata con FCFS.
Causa inanición debido procesos muy largos
- Planificación SPN (Primero el proceso más corto): se selecciona al proceso con el tiempo
de procesamiento más corto esperado. Causa inanición debido procesos muy largos
- Planificación SRTF(Primero el tiempo restante mas corto): el planificador siempre elige el
proceso que tiene menor tiempo de procesamiento restante esperado. Posibilidad de
inanición por procesos largos.
- Planificación Aleatoria
- Planificación HRRN (Primero el de mayor tasa de respuesta): primero el de mayor tasa de
respuesta.

Sistema interactivo.
- Planificación por prioridades. a cada proceso se le asocia una prioridad y la CPU se asigna
al proceso que tenga la prioridad más alta. Posibilidad de inanición porque puede dejar
procesos de baja prioridad sin ejecutar indefinidamente.
- Planificador Round Robin: a todos los procesos se les da el mismo tiempo. Si se completa
en esa ráfaga, perfecto, pero si no vuelve a la cola y así hasta que se complete. Los

- Planificador mediante colas Multinivel: clasifica los procesos en diferentes grupos


dependiendo de respectivas características que comparten entre ellos. Causa
inanición.
- Planificador mediante colas multinivel con retroalimentación: penaliza los trabajos que
llevan más tiempo en ejecución. Probabilidad de inanición si entran nuevos trabajos en el
sistema con frecuencia.
- Planificación garantizada: : hace promesas reales a los usuarios sobre el rendimiento y
luego las cumple
- Planificación de la lotería: da a los procesos boletos de lotería para varios recursos del
sistema, como por ejemplo el tiempo de la CPU.
- Planificación equitativa: tiene en cuenta a qué usuario pertenece un proceso antes de
planificarlo y lo hace dependiendo de eso.

Sistema de tiempo real.

sistemas de tiempo real: la computación en tiempo real puede definirse como aquel tipo de
computación en el que la corrección del sistema depende no sólo del resultado lógico del
cálculo, sino también del momento en que se producen los resultados. Los eventos que
atiende pueden ser:

Tipos de planificación

- Periódicos: se producen a intervalos regulares.


- Aperiódicos: se producen de forma imprevisible.
- Estáticos: toman sus decisiones de planificación antes que el sistema comience a
funcionar. Solo funciona teniendo la información perfecta de antemano sobre el
trabajo a realizar y los plazos que deben cumplirse.
- Dinámicos: no tienen las restricciones de los estáticos.
-Enfoques de planificación: Como se diferenciarán los algoritmos de planificaciones

- Enfoques estáticos dirigidos por tabla.

- Enfoque estáticos explusivos dirigidos por prioridad.

- Enfoques basados en la planificación dinámica.

- Enfoques dinámicos de mejor esfuerzo.

-Minimizar la latencia: la latencia de los eventos es el tiempo que transcurre desde que se
produce un evento hasta que se le presta servicio.

- Latencia de interrupción: periodo de tiempo que transcurre la llegada de una


interrupción a la CPU hasta el inicio de la rutina de atención a la interrupción.

- Latencia de despacho: Cantidad de tiempo requerida para que el despachador de


planificación detenga un proceso e inicie otro.
Sistema multiprocesador: Sistemas que proporcionan los siguiente:

- CPU´S multinúcleo.
- Núcleos multihilo.
- Sistemas NUMA.
- Multiprocesamiento heterogéneo

Granularidad: Frecuencia de esta, entre los procesos del sistema.

- Paralelismo independiente.
- Paralelismo de grano grueso y muy grueso
- Paralelismo de grano medio.
- Paralelismo de grano fino

Aspectos de diseño: Diferentes aspectos interrelacionados.

- Equilibrio de carga.
- La asignación de procesos a procesadores.
- El uso de la multiprogramación en cada procesador individual.
- Afinidad del procesador.
- La actividad del proceso, propiamente dicha.

planificación de procesos: Los procesos no están dedicados a los procesadores, hay una
sola cola para todos los procesadores.

planificación de hilos

Entre las numerosas propuestas para planificar hilos y asignar los procesadores en los
multiprocesadores, destacan cuatro enfoques generales.

-Compartición de carga: Es muy sencillo. Se mantiene una cola global de hilos listos, y cada
procesador, cuando esta inactivo, selecciona un hilo de la cola.

-Planificación en pandilla: Un conjunto de hilos relacionados para que se ejecuten en un


conjunto de procesadores al mismo tiempo, sobre una base de uno a uno

-Asignación de procesador dedicado: A cada programa se le asigna, durante su ejecución,


un número de procesadores igual al número de hilos del programa.

Procesadores multinúcleo

Procesadores que poseen en su interior mas de un núcleo. Cada núcleo mantiene su estado
arquitectónico y por lo tanto, para el sistema operativo parece ser una CPU lógica
independiente.

Pueden compilar los problemas de planificación.

- Planificación de hilos multinúcleo.

Multiprocesamiento heterogéneo.
Sistemas que están diseñados con núcleos que ejecutan el mismo conjunto de instrucciones
pero que varían en términos de velocidad de reloj y gestión de energía, incluyendo la
capacidad de ajustar el consumo de energía de un núcleo hasta el punto de dejarlo inactivo.

Evaluación de algoritmos

Consiste en la evaluación de las diferentes partes de su rendimiento con el fin de elegir el


algoritmo de planificación mas apto.

Los criterios que tiene son:

- Maximizar el uso del procesador con la condición de que el limite de respuesta sea de 1
segundo.
- Maximizar la tasa de procesamiento de forma que el tiempo de ejecución sea linealmente
proporcional al tiempo de ejecución

Los diferentes métodos de evaluación son:

- Modelado determinista.
- Análisis de colas.
- Modelos de simulación.
- Implementación.

Administración de recursos compartidos, sincronización, comunicación entre procesos

Sincronización o concurrencia

Se define como la propiedad de los sistemas operativos de permitir que múltiples procesos
sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.

Características de la concurrencia

- Concurrencia real: Ocurre cuando en un sistema de multiprocesamiento hay un proceso


para ser ejecutado por cada procesador permitiendo que los procesos concurrentes
puedan ser ejecutados realmente de forma simultánea.
- Concurrencia simulada: Presente cuando solo existe un procesador encargado de ejecutar
los procesos concurrentes.
- Las Hebras comparten los espacios de direcciones lógicas y ejecutan procesos
concurrentes lo que facilita su programación, permite acelerar los cálculos, posibilita el uso
interactivo a múltiples usuarios y consigue un mejor aprovechamiento de los recursos de la
computadora

Los procesos concurrentes que se ejecutan en un sistema pueden ser:

- Independientes: Se ejecutan sin requerir la ayuda o cooperación de otros procesos.


- Cooperativos: Procesos que han sido diseñados para trabajar conjuntamente en alguna
actividad.

La Concurrencia de accesos puede presentarse en tres contextos diferentes:

- Múltiples aplicaciones: Es el caso típico de la multiprogramación.


- Aplicaciones estructuradas: Normalmente se implementan con procesos concurrentes.
- Estructura del sistema operativo: El propio SO puede tener aplicaciones estructuradas que
trabajen con procesos concurrentes.

Condición de carrera: evento que sucede cuando múltiples procesos o hilos leen y escriben
datos de manera que el resultado final depende del orden de ejecución de las instrucciones en
los múltiples procesos.

Interacción de procesos. Sección critica.

Se pueden clasificar las formas en los procesos se interaccionan en base al grado en que
perciben la existencia unos de otros, y entonces tendrían:

PERCEPCION:

- Procesos que no se perciben entre sí.


- Procesos que se perciben indirectamente entre sí.
- Procesos que se perciben directamente entre sí.

Estas formas de percepción dan lugar a ciertas situaciones que el SO tendrá que tratar y
son:

- La competencia entre procesos y recursos.


- La cooperación entre procesos vía compartición.
- La cooperación entre procesos vía comunicación.

En caso de competencia, el SO debe afrontar los siguientes problemas.

- La exclusión mutua: Consiste en excluir los demás procesos que deben de acceder a un
recurso compartido.
- El interbloqueo: Bloque mutuo entre dos procesos
- La inanición: Cuando un proceso de baja prioridad podría denegársele indefinidamente el
acceso al recurso solicitado.

Se llama Recurso critico al recurso compartido solicitado y a la porción del programa que
lo utiliza se lo conoce como Sección Critica.

Cualquier protocolo diseñado para proteger la sección critica deberá cumplir con una serie
de requisitos, a saber:

- Exclusión mutua: si un proceso se está ejecutando en su sección crítica, entonces ningún


otro proceso puede ejecutarse en su sección crítica.
- Progreso: se refiere a qué proceso puede acceder al recurso crítico.
- Espera limitada: es para que el proceso no espere el recurso crítico indefinidamente. Para
que no ocurra la inanición.

Condiciones de competencia

Se presentan cuando dos o mas procesos o hebras intentan acceder simultáneamente a un


mismo recurso. Se utilizan Operaciones atómicas para asegurar que los procesos estén
libres de interferencias.

Operación atómica
Conjunto de instrucciones que realiza una sola función lógica durante la cual no se
interrumpe al procesador.

Comunicación entre procesos

Comunicación entre procesos: puede ser directa/indirecta y sincrónica/asincrónica.

- Directa: cuando entre un proceso y otro se envían mensajes. “Send and receive
messages” o “send and receive un identificador de proceso (IDP)” (quien es el emisor y
quién es el receptor), además de enviarse el mensaje. Eso es comunicación simétrica,
pero también puede ser asimétrica: send (identificador de proceso, mensaje) and
receive (nro, mensaje).
- Indirecta: usa el buzón, que es donde los procesos pueden dejar y eliminar mensajes.
Puede ser creado por el proceso, que cuando éste termina deja de existir o se lo
hereda a algún hijo. Si no, el sistema operativo es propietario del buzón. Cada buzón
recibe mensajes de un proceso.
El envío y la recepción pueden ser bloqueantes o no bloqueantes. Los con bloqueo
dejan su mensaje y esperan una confirmación de recepción. La recepción con bloque
es que hasta que no reciba un mensaje, ese proceso está bloqueado.

Capacidad: puede ser nula (el emisor debe bloquearse hasta que el receptor reciba el
mensaje), limitada (se pueden recepcionar X cantidad de mensajes, cuando se llena la
capacidad el mensaje que había se tiene que bloquear) o ilimitada (el emisor nunca se
bloquea ya que potencialmente la capacidad del buzón es infinita).

- Sincrónica/asincrónica: es lo mismo que bloqueantes/no bloqueantes. Envío con


bloqueo: el proceso emisor se bloquea hasta que el receptor o el buzón reciben el
mensaje. Sin bloqueo: el proceso transmisor envía el mensaje y continúa operando.
Recepción con bloqueo: el proceso receptor se bloquea hasta que hay un mensaje
disponible. Recepción sin bloqueo: el proceso receptor extrae un mensaje válido o un
mensaje nulo.

Soluciones al problema de la Sección critica

- inhabilitación de interrupciones: Inhibir interrupciones: cuando se está ejecutando o


se quiere ejecutar la sección crítica, no se aceptan interrupciones. Solo funciona en un
monoprocesador, el cuál se le entrega al único proceso y listo. Debe efectuarse en el
código del programa. No es aplicable en sistemas de tiempo real. No es muy viable.

- Sentencias especiales: Consiste en el uso de instrucciones especiales para conseguir la


exclusión mutua.

- Algoritmo de Dekker: Resuelve el problema de la exclusión mutua, pero mediante un


programa complejo y muy difícil de seguir y demostrar su corrección.

- Algoritmo de Peterson: Este algoritmo se restringe a dos procesos que van alterando
la ejecución de sus secciones críticas y de sus secciones restantes. Una variable global
indica la posición del proceso respecto de la exclusión mutua y una variable global
turno que resuelve los conflictos de simultaneidad.

- Semáforos: es una variable de tipo entero que puede tener valores positivos y
negativos. Actúa como señal para coordinar un conjunto de procesos secuenciales
cooperantes, a lo que solo se puede acceder a través de 3 operaciones atómicas:
wait(S), signal(S) y init(S, valor inicial) y que no puede requerir espera activa.

Hay dos tipos de semáforos

- Semaforo contador o general: es inicializado con cualquier valor entero positivo y


luego puede tomar cualquier valor, inclusive negativo.
- Semaforo binario: su valor entero puede ser 0 o 1 y es simple de implementar.

Monitor: Construcción de sincronización de alto nivel que permite compartir en forma


segura un tipo de dato abstracto entre procesos concurrentes. Existen dos tipos de
monitores el monitor de Hoael y el de Lampson/Redell.

Abrazo mortal

es el bloqueo perpetuo de un conjunto de procesos, o hilos donde cada uno de los


procesos del conjunto están bloqueados esperando por un evento.

Las condiciones para que surja un abrazo mortal tienen que ser de forma simultánea y son:

- Exclusión mutua: Si un proceso posee un conjunto de recursos compartidos estos no


pueden ser usado por otro proceso hasta haber tenido todos los recursos necesarios y
haber podido usarlos.
- Espera y retención: Mientras un proceso espera su asignación de algún recurso no libera
otros recursos que ya tiene asignado.
- Sin desalojo: Ningún proceso puede ser forzado a abandonar un recurso que retenga. Es
decir, si este proceso tiene tomados recursos y otros los necesita, no se le pueden quitar
los que ya tiene asignados.
- Espera circular: Cuando dos o mas procesos de una cadena cerrada de procesos en espera
circular cuando cada proceso tiene asignado un recurso y espera por otro recurso que ya
esta tomado por el siguiente proceso de la cadena y a su vez espera otro recurso ya
asignado.

Clasificación de recursos

Reutilizables y consumibles: aquel que puede ser usado con seguridad por un proceso y
no se agota con el uso. Los consumibles son aquellos que pueden ser creados, producidos
y una vez usados son consumidos.

Compartidos y Exclusivos: Es exclusivo cuando al ser usado ningún otro puede usarlo. Y es
compartido cuando puede ser usado simultáneamente por varios procesos.

Únicos y múltiples: Únicos presentan una instancia y los otros presentan múltiples.
Expropiables y no expropiables: Es expropiable cuando se le puede quitar al proceso que
lo posee sin dañar. No expropiable es uno que no se puede quitar de un proceso ya que
causaría daños.

GRAFO DE ASIGNACION DE RECURSOS (GAR)

consiste en un conjunto de nodos y aristas. Representa el estado del sistema en lo referido a


los recursos y los procesos.

Representación matricial: representa el estado del sistema en lo referido a los recursos y a los
procesos mediante el uso de matrices y vectores.

- Matriz de asignación (MA): su dimensión es de: número de procesos existentes por el


número de recursos distintos que hay en el sistema. Cada elemento M A ij especifica
cuántas unidades del recurso J estan asignadas al proceso I.
- Matriz de solicitud (MS): misma dimensión que la MA. Cada elemento M S ij especifica
cuántas unidades del recurso J está esperando el proceso I que se le concedan.
- Vector de recursos existentes (VR): su dimensión es el número de recursos distintos
que hay en el sistema. Cada número especifica cuántas unidades del recurso I existen.

También podría gustarte