Resumen de Sistemas Operativos
Resumen de Sistemas Operativos
Resumen de Sistemas Operativos
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
El sistema operativo debe incorporar un módulo que permita el dialogo entre el usuario y el
sistema.
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.
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.
TIPOS DE LLAMADA
-Manipulación de dispositivos.
-Mantenimiento de información.
-Comunicaciones.
Protección:
-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.
-Modo Supervisor.
-Modo Usuario.
- 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:
-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
- 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 de reinicio.
-Interrupciones de Software.
- Modo activo.
- Modo en espera.
- Modo supervisor.
- Modo problema.
- Modo enmascarado.
- Modo desenmascarado.
El ciclo de concesión de interrupción consiste en hacer que la CPU realice una bifurcación no
programada
ADMINISTRACION DE PROCESOS
-En ejecución
-No en ejecución
- 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
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:
Nuevo---- Listo: El sistema operativo moverá un este proceso cuando esté listo para asumir un
proceso adicional.
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.
Tipos de procesos:
- Intercambio.
- Razón del sistema operativo.
- Solicitud interactiva del usuario.
- Temporización.
- Solicitud de proceso del padre.
Localización de procesos
- 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.
- 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
Cambio de proceso
- 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.
Cambio de modo
Se utiliza cuando el proceso actual se encuentra en ejecución debe ser movido a otro estado
Funcionalidad de hilos
Estados de hilo
sincronización de hilos
Método utilizado cuando hay problemas como que se pierdan elementos o se generen
malformaciones.
Implementación de Hilos:
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
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
Cola de procesos: Donde están todos los procesos que se están ejecutando, sin importar su
estado.
Cambio de contexto
Planificador de largo plazo: analiza todo para ver si puede aceptar ese proceso. Va a la cola de
proceso a planificar.
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
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.
Criterios de la planificación
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
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
-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.
- CPU´S multinúcleo.
- Núcleos multihilo.
- Sistemas NUMA.
- Multiprocesamiento heterogéneo
- Paralelismo independiente.
- Paralelismo de grano grueso y muy grueso
- Paralelismo de grano medio.
- Paralelismo de grano fino
- 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.
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.
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
- 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
- Modelado determinista.
- Análisis de colas.
- Modelos de simulación.
- Implementación.
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
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.
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:
Estas formas de percepción dan lugar a ciertas situaciones que el SO tendrá que tratar y
son:
- 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:
Condiciones de competencia
Operación atómica
Conjunto de instrucciones que realiza una sola función lógica durante la cual no se
interrumpe al procesador.
- 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).
- 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.
Abrazo mortal
Las condiciones para que surja un abrazo mortal tienen que ser de forma simultánea y son:
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.
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.