PROCESO: cuando un programa es leído del disco duro por el nucleo y es cargado a la memoria para ejecutarse y asi se convierte en proceso. CARACTERISTICAS: -Es una copia del programa -Ademas posee infromacion adicional para poder ser manejado por el nucleo. SE COMPONE POR 3 BLOQUES FUNDAMENTALES: -SEGMENTO DE TEXTO: es la copia del texto del programa -SEGMENTO DE DATOS: aquí se encuentran las variables estaticas y globales -SEGMENTO DE PILA: creado por el nucelo y de tamaño dinamico, aquí se localiza la información necesaria de las funciones programadas. EN UNIX LOS PROCESOS SE SE PUEDEN EJECUTAR DE 2 FORMAS: -Usuario y Supervisor(modo kernel) Por lo tanto hay una pila para cada modo de ejecución EL PLANIFICADOR: es la parte del nucleo encargada de gestionar el cambio de contexto o cambio de estado(Usuario y Supervisor) JERARQUIA DE PROCESOS: -Todos los procesos en unix es la entidad que se crea tras la llamada a FORK -Todos los procesos excepto el primero (Proceso 0 )son creados mediante la llamada a FORK -El proceso que llama a FORK es llamado proceso padre y el proceso que se crea es el proceso HIJO. -Todos los procesos solo tienen un único padre pero pueden tener varios procesos hijos -El nucleo identifica cada proceso mediante su PID (Proces identification)
MP:memoria principal MS:memoria secundaria
Hilos(Threads) Es una caracteristica que permite a una aplicación realizar varias tareas a la vez (concurrencia) Los hilos comparten una seria de recursos tales como MEMORIA,ARCHIVOS ABIERTOS , METODOS DE AUTENTICACION,ETC Un proceso sigue en ejecucion mientras uno de sus hilos este activo Los principales estados de ejecucion de los hilos son EJECUCION, LISTO Y BLOQUEADO Si un proceso esta expulsado de la memoria pincipal todos deberan estarlo ya que todos conparten el espacio de direcciones del proceso CONDICION DE COMPETENCIA Uno o varios procesos compiten por uno o varios procesos REGLA DE ORO PARA EVITAR LA COMPETENCIA: es garantixar un acceso seguro a recursos compartidos es decir debe de haber coordinacion y sincronizacion de procesos. REGLAS: -2 o mas procesos no pueden estar en su sección critica o pueden ocasionar el bloqueo del s.o -No debe de suponerse nada acerca de la velocidad -Orden de ejecución de los procesos -Ningun proceso deberá tener que esperar indeterminadamente para entrar en su sección critica
SECCION CRITICA: es la porción de código de un programa de computadora que accede a un recurso compartido que no debe de ser accedido por mas de un hilo de ejecución EXCLUSION MUTUA: se refiere a que una actividad impide que otras puedan tener acceso a un dato, mientras se encuentra realizando una operación sobre el mismo EXCLUSION ACTIVA: establecen la espera para entrar a la sección critica con iteración que será rota al cumplir una condición VENTAJA: los procesos no quedan bloqueados DESVENTAJA: los algoritmos sobrecargan el sistema y se vuelven engorrosos TECNICAS: -Espera con mutex: uso de switch(programacion)
-Alternancia: utiliza una variable de turno -De dekker: utiliza 2 switch es igual a una tabla unidimensional 2 elementos logicos EXCLUSION MUTUA CON ESPERA ACTIVA: 2 estados Dormir y Despertar DESVENTAJA: señales enviadas para despetar se pierden o se llegan a perder si el proceso al que se envía no se encuentra dormido(PAUSADO/REANUDADO) SEMAFOROS: variable de tipo entero que se inicializa n accesos simultaneos permitidos y se utilizan para 2 cosas: -Delimitar una región critica para que se vuelva con acceso exclusivo -Contador de recursos cuando los recursos se agotan el contador llega a 0 y se duerme el proceso OPERACIÓN ATOMICA: Down() si el semáforo es mayor que 0 la decrementan y continua si no se duermen y deja la operación pendiente Up()Incrementan el semáforo y si hay procesos durmiendo en el despierta a 1 (cualquiera) MONITORES Un monitor encapsula el código relativo a un recurso compartido en un solo modulo del programa
DESPERTAR Y DORMIR Sleep() Wake up()
SEMAFOROS Down() Up()
MONITOR JAVA Wait() Notify() Notify all()
MONITOR C++ Wait() Wake up() Wake up all()
MONITORES JAVA: son monitores de muy alto nivel lo que evita bloqueos mutuos. TRANSFERENCIA DE MENSAJES Para pasar datos de un proceso a otro y evitar la interferencia INTERFERENCIA: cuando 2 procesos quieren ocupar el mismo dato PLANEACION ROUND ROBIN O TORNEO
Asigna quantos de tiempo pequeños(son ineficientes ya que el planificador necesita tiempos grandes) se asignan quantos de tiempo grandes(son aburridos y crean sistemas inactivos).Por lo tanto ae tienen que encontrar la medida de los quantos pequeños y los cuantos grandes que se asigne. PLANIFICACION POR PRIORIDAD En un CPU se basa en la planificación -Equitatividad para todos los procesos -Eficiencia (% de tiempo de CPU ocupada) -Tiempo de respuesta (para procesos inactivos) -Tiempo de retorno o servicio(para procesos por lotes) PLANIFICACION POR PRIORIDAD Por prioridad (no es lo mismo que importancia). Colas multiples con round robin interno. Se les añade envejecimientop a la prioridad para evitar bloqueos indefinidos de tareas de baja prioridad( jerarquia) COLAS MULTIPLES Las colas multiples están basadas en una pila que sirve como índice de una lista de procesos que se tienen que ejecutar. EL PRIMER TRABAJO MAS CORTO SJF(primero el trabajo mas corto): disminuye el tiempo promedio de respuesta PLANIFICACION GARANTIZADA A cada uno de los n procesos garantizarle 1/n de tiempo de cpu (para ello hay que llevar la cuenta de quantos asignados) PLANIFICACION POR LOTERIA Se asignan boletos a los procesos que necesitan recursos y se hace una lotería 50 veces por segundo ganara mas frecuentemente quie tenga mas boletos PLANIFICACION DE TIEMPO REAL Garantías de tiempo de sevicio para cada tarea -Sistemas hardware y softeare -Tareas periódicas y aperiodicas
-Parametros de cada tarea: A= tiempo de llegada, C-WCET= tiempo de ejecución de caso por T= periodo, D= deadline PLANIFICADOR DE TIEMPO REAL -Conjunto de tareas planificable o no Planificadores optimos: -RR(rate monothonic)lio-laidand (todas sus tareas son periódicas e independientes unas de otras) -EDF(earlist deadline first):plazo de ejecucion maximo absoluto -LLF(least laxity= holgura first): se asignan las prioridades dando preferencia a last areas con menor holgura PLANIFICADOR DE ALTO NIVEL Se encarga de llevar procesos de disco a memoria y viceversa PLANIFICADOR DE BAJO NIVEL Se encarga de pasar un proceso a otro en memoria principal VARIOS CRITERIOS -Tiempo en memoria -Tiempo de procesador -Prioridad -Tamaño
Tuberias(fifos) TUBERIAS CON NOMBRE: nos permiten comunicar procesos sin ningún parentesco, la tubería con nombre tiene una semántica parecida a las tuberías sin nombre. La diferencia es un fichero que utiliza una entrada a un directorio y accede a travez de una ruta o dirección. TUBERIAS SIN NOMBRE: se crean con la llamada a PIPE y solo el proceso que la llama y sus descendientes pueden utilizarla.No sirven para comunicar procesos sin parentesco
Thank you for interesting in our services. We are a non-profit group that run this website to share documents. We need your help to maintenance this website.