SlideShare une entreprise Scribd logo
1  sur  32
Sistemas Operativos


                Unidad I
Administración de procesos y procesador
Contenido

 Concepto de proceso.

 Estados y transiciones de los procesos.

 Procesos ligeros (hilos o hebras).

 Concurrencias y secuenciabilidad.
Concepto de Proceso.

 Un programa que se esta ejecutando.

 Una actividad asincrónica.

 Aquello que se manifiesta por la existencia del
  Sistema Operativo de un bloque de control de
  proceso.

 Aquella entidad a la cual son asignados los
  procesadores.
Concepto de Proceso.

 Programa: conjunto de instrucciones que
  ejecuta una computadora para realizar una
  actividad.

 Proceso: instancia de ejecución de un programa,
  caracterizado por su contador de programa,
  estado, registros del procesador, segmento de
  texto, pila y datos.
Estados y Transiciones de los procesos.
Estados

En ejecución: Utiliza la CPU.

Listo: Ejecutable, se detiene de forma temporal.

Bloqueado: No se puede ejecutar debido a la
 ocurrencia de algún evento externo.
Estados y Transiciones de los procesos.
Transacciones


                    En ejecución




        Bloqueado                  Listo
Procesos ligeros (hilos o hebras)
Un hilo o hebra en los S.O. son programas que
 tienen como característica principal el ejecutar
 varias tareas a la vez (concurrencia) .

•   Comparten recursos
•   Cuentan con un contador de programa
•   Pila de ejecución
•   Estado del CPU
Procesos ligeros (hilos o hebras)

• Espacio de memoria

• Variables globales

• Ficheros abiertos

• Procesos hijos

• Temporizadores

• Señales y semáforos

• Contabilidad
Procesos ligeros (hilos o hebras)
Beneficios:

• Explotación del paralelismo

• Explotación de concurrencia (I/O)

• Estilo de programación
Procesos ligeros (hilos o hebras)
Aplicaciones:

• Creación y destrucción

• Sincronización

• Gestión de prioridades

• Gestión de señales

• Gestión de memoria

• Se pueden utilizar todas las funciones incluidas en POSIX.1 y
  POSIX.1b

• La interfaz de hilos POSIX es pthreads, aunque existen otras
  bibliotecas de hilos
Procesos ligeros (hilos o hebras)
• Si se desea crear una nueva hebra, es suficiente construir un
  nuevo objeto de la clase Thread y llamar a su método start().
public class DosHebrasBasicas extends Thread {
     int cont;

  DosHebrasBasicas(int c) {
        cont = c;
      }
      public void run() {
        while (true) {
           system.out.println(cont);
        }
      }
      public static void main(String[] args) {
        new DosHebrasBasicas(0).start();
        new DosHebrasBasicas(1).start();
      }
  } // class
Procesos ligeros (hilos o hebras)
• En algún momento de la ejecución del método run() se
  ha generado una excepción que nadie ha capturado. La
  excepción se propaga hasta el propio método run(). Si
  tampoco éste tiene un manejador para la excepción, el
  método run() finaliza abruptamente, terminando la
  ejecución de la hebra.

• Si se llama al método stop() o stop(excepción) de la
  hebra. Estos dos métodos originan que la hebra termine,
  y son en realidad un caso particular del anterior.

• Cuando se llama al método destroy() de la hebra.
  También se comenta posteriormente.
Procesos ligeros (hilos o hebras)
Ejemplo para asignar una prioridad

public class ComprobarPrioridad implements Runnable {
 int num;
 ComprobarPrioridad(int c) { num = c; }
 public void run() {
       while (!parar) {
         system.out.println(num);
         cont++;
       }
     }
 public static void main(String[] args) {
       Thread nueva;
       for (int c = 0; c < 10; c++) {
         nueva = new Thread(new ComprobarPrioridad(c));
         if (c == 0) nueva.setPriority(Thread.MAX_PRIORITY);
         nueva.start();
       }
     }
  } // class
Procesos ligeros (hilos o hebras)
Ejemplo para asignar una prioridad

setPriority(int): establece la prioridad de la hebra. Puede ocasionar la
  generación de una excepción de seguridad si la hebra que solicita el cambio
  de prioridad de otra no está autorizada a hacerlo.

 getPriority(): devuelve la prioridad de la hebra.

Para establecer los posibles valores en el parámetro de setPriority o como
  resultado de getPriority, la clase Thread define tres constantes estáticas a la
  clase:

   MAX_PRIORITY (= 10): es el valor que simboliza la máxima prioridad.
    MIN_PRIORITY (= 1): es el valor que simboliza la mínima prioridad.
    NORM_PRIORITY (= 5): es el valor que simboliza la prioridad
  normal, la que tiene la hebra creada durante el arranque de la máquina
  virtual y que se encarga de ejecutar la función main
Concurrencia y secuenciabilidad
Los procesos son concurrentes si existen
 simultáneamente. Los procesos concurrentes
 pueden funcionar en forma totalmente
 independiente unos de otros, o pueden ser
 asíncronos, lo cual significa que en ocasiones
 requieren cierta sincronización o cooperación.
Concurrencia y secuenciabilidad
Beneficios del uso de la concurrencia

• Trata de evitar los tiempos muertos de la UCP.
• Comparte y optimiza el uso de recursos.
• Permite la modularidad en las diferentes etapas del
  proceso.
• Acelera los cálculos.
• Da mayor comodidad.
Concurrencia y secuenciabilidad
Desventajas del uso de la concurrencia

• Que dos o mas procesos requieran el mismo
  recurso .
• Ocurrencia de bloqueos.
• Interrupción de procesos.
Concurrencia y secuenciabilidad
Elementos a gestionar y diseñar a causa de la
 concurrencia

1.   El sistema operativo debe ser capaz de seguir la pista de los
     distintos procesos activos. Esto lo hace por medio de PBC’s
     (Bloque de Control de Procesos) .

2. El sistema operativo debe asignar y quitar los distintos recursos a
   cada proceso activo.(Tiempo de procesador, memoria, Archivos,
   dispositivos de entrada y salida).

3. El sistema operativo debe proteger los datos y los recursos físicos
   de cada proceso contra injerencias no intencionadas de otros
   procesos.

4. Los resultados de un proceso deben ser independientes de la
   velocidad relativa a la que se realiza la ejecución con respecto a
   otros procesos concurrentes.
Concurrencia y secuenciabilidad
Exclusión Mutua
La exclusión mutua la podríamos definir como una operación de
  control que permite la coordinación de procesos .

Formas de satisfacer los requisitos de exclusión mutua:

• Soluciones por Software. Una manera es dejar la
  responsabilidad a los procesos que deseen ejecutar
  concurrentemente, de esta manera los procesos deben
  coordinarse unos con otros para cumplir la exclusión mutua
  sin ayuda alguna, aunque estas soluciones son propensas a
  errores y a una fuerte carga de proceso (Algunos ejemplos de
  estas son: Algoritmo de Dekker y Algoritmo de
  Peterson).

• Soluciones por Hardware. Propone el uso de instrucciones de
  la máquina a tal efecto, estas tienen la ventaja de reducir la
  sobrecarga.
Concurrencia y secuenciabilidad


Nota: Investigar el Algoritmo de Dekker y el
 Algoritmo de Peterson para la exclusión
 mutua.
Concurrencia y secuenciabilidad
void sleep(long milis): duerme a la hebra durante al menos
  <milis> milisegundos. Transcurrido el tiempo, la hebra
  pasará a estar preparada para ejecutarse, pero eso no implica
  que pase inmediatamente a hacerlo (dependerá del
  planificador), de ahí que pueda estar más tiempo del que se
  especifica                  sin                    ejecutarse.

 void sleep(long milis, int nanos): duerme a la hebra
  durante al menos <milis> milisegundos y <nanos>
  nanosegundos. Sirve como una implementación con más
  precisión que la anterior. En la práctica, la implementación
  actual no permite tanta parecisión, y se limita a redondear los
  <milis> en función de los <nanos> y a llamar al método sleep
  anterior        con         el          valor         obtenido.

void yield(): cede el procesador. Pasará a ejecutarse de nuevo
  el planificador, que decidirá qué otra hebra ejecutar.
Concurrencia y secuenciabilidad
Sincronización de procesos

La comunicación entre procesos es necesaria si se
 desea que varios procesos puedan colaborar para
 realizar una misma tarea. La sincronización es el
 funcionamiento coordinado en la resolución de
 una tarea encomendada.
Concurrencia y secuenciabilidad
Sincronización de procesos
Los servicios básicos de comunicación son:
• Crear: el proceso solicita la creación del
  mecanismo
• Enviar o escribir: el proceso emisor envía
  información al proceso receptor
• Recibir o leer: el proceso receptor recibe
  información
• Destruir: el proceso solicita la destrucción del
  mecanismo de comunicación
Concurrencia y secuenciabilidad
Sincronización de procesos
La comunicación puede ser síncrona y asíncrona:

• Síncrona: los dos procesos han de ejecutar
  servicios de forma simultánea. El emisor ha de
  ejecutar el servicio enviar mientras el receptor
  ejecuta recibir.

• Asíncrona: el emisor hace el envío y prosigue su
  ejecución. El SO ofrece un almacenamiento
  intermedio para guardar la información enviada,
  hasta que el receptor la solicite.
Concurrencia y secuenciabilidad
Sincronización de procesos
• Dos o más procesos leen o escriben en ciertas
  zonas compartidas.

• El resultado final puede depender de lo que cada
  proceso ejecutó.
               Proceso 1             Proceso 2


                           S. O.



                           Recurso
Concurrencia y secuenciabilidad
class almacen {

     int[] almacen = new int[16];
     int primero = 0;
     int cuantos = 0;

  synchronized public int coger() {
      int aux;
      if (cuantos == 0)
         return (-1);
      else {
         cuantos--;
         aux = primero;
         primero = (primero + 1) & 15;
         return(almacen[aux]);
      }

  }
  synchronized public boolean dejar(char val) {
         if (cuantos == 16)
            return false;
         int aux;
         aux = (primero + cuantos) & 15;
         cuantos++;
         almacen[aux] = val;
         return true;
       }
    } // almacen
Concurrencia y secuenciabilidad
Mecanismos de semáforos

Los semáforos son mecanismos para la
 sincronización de los procesos y esta
 representado por una variable entera positiva,
 cuyo valor solo puede ser acceso mediante las
 operaciones wait y signal.
Concurrencia y secuenciabilidad
Semáforos

• WAIT: verifica si el valor de un semáforo es
  mayor que cero y en este caso decrementa dicho
  valor y el proceso continúa. Si es cero, el proceso
  se va a dormir.

 Las modificaciones al valor del se ejecutan en forma
  indivisible, es decir, si un proceso está modificando un
  semáforo ningún otro proceso puede esta modificando
  el mismo valor
Concurrencia y secuenciabilidad
Semáforos

• SIGNAL: incrementa el valor del semáforo
  respectivo. Si uno o más procesos dormían y no
  podían completar una operación anterior, el SO
  elige alguno de ellos y se le permite terminar la
  operación WAIT.
Concurrencia y secuenciabilidad
Semáforos

/*Semáforo mutex compartido por N procesos es
inicializado en 1*/
/*Estructura del proceso Pi */
while (TRUE) {
wait(mutex);
/*Sección Critica*/
signal(mutex);
/*Sección No Crítica*/
}
Concurrencia y secuenciabilidad
Semáforos

/*Semáforo mutex compartido por N procesos es
inicializado en 1*/
/*Estructura del proceso Pi */
while (TRUE) {
wait(mutex);
/*Sección Critica*/
signal(mutex);
/*Sección No Crítica*/
}
Actividades

Investigación del tema Técnicas de administración del
 planificador (FIFO, SJF,RR, QUEVES MULTI-LEVEL,
 MULTI-LEVEL FEEDBACK QUEVES).

Contenu connexe

Tendances

Procesos Planificacion de los Sistemas Operativos
 Procesos Planificacion de los Sistemas Operativos Procesos Planificacion de los Sistemas Operativos
Procesos Planificacion de los Sistemas Operativos
G Hoyos A
 
Capas de abstracción de la arquitectura de ordenadores
Capas de abstracción de la arquitectura de ordenadoresCapas de abstracción de la arquitectura de ordenadores
Capas de abstracción de la arquitectura de ordenadores
Sandy Sócola
 
tipos de requisitos
  tipos de requisitos   tipos de requisitos
tipos de requisitos
Juan Henao
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
Ivan Porras
 

Tendances (20)

Diagrama de-estado-de-procesos
Diagrama de-estado-de-procesosDiagrama de-estado-de-procesos
Diagrama de-estado-de-procesos
 
Diagramas de Flujos de Datos
Diagramas de Flujos de DatosDiagramas de Flujos de Datos
Diagramas de Flujos de Datos
 
Ciclo de instrucción
Ciclo de instrucciónCiclo de instrucción
Ciclo de instrucción
 
Procesos Planificacion de los Sistemas Operativos
 Procesos Planificacion de los Sistemas Operativos Procesos Planificacion de los Sistemas Operativos
Procesos Planificacion de los Sistemas Operativos
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesos
 
estructura de sistemas operativos
estructura de sistemas operativosestructura de sistemas operativos
estructura de sistemas operativos
 
Capas de abstracción de la arquitectura de ordenadores
Capas de abstracción de la arquitectura de ordenadoresCapas de abstracción de la arquitectura de ordenadores
Capas de abstracción de la arquitectura de ordenadores
 
Sistemas Operativos Moviles, Android y IOs
Sistemas Operativos Moviles, Android y IOsSistemas Operativos Moviles, Android y IOs
Sistemas Operativos Moviles, Android y IOs
 
Sistemas Por Capas
Sistemas Por CapasSistemas Por Capas
Sistemas Por Capas
 
Planificación de la CPU
Planificación de la CPUPlanificación de la CPU
Planificación de la CPU
 
Acceso Directo de Memoria
Acceso Directo de MemoriaAcceso Directo de Memoria
Acceso Directo de Memoria
 
Gestion de memoria en Linux
Gestion de memoria en LinuxGestion de memoria en Linux
Gestion de memoria en Linux
 
Procesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas OperativosProcesos e Hilos en los Sistemas Operativos
Procesos e Hilos en los Sistemas Operativos
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
tipos de requisitos
  tipos de requisitos   tipos de requisitos
tipos de requisitos
 
Candados bd
Candados bdCandados bd
Candados bd
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 
Unidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos IUnidad 3 : Sistemas Operativos I
Unidad 3 : Sistemas Operativos I
 
Gestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas OperativosGestion Procesos, Sistemas Operativos
Gestion Procesos, Sistemas Operativos
 
SEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWS
SEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWSSEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWS
SEGURIDAD EN LINUX vs SEGURIDAD EN WINDOWS
 

En vedette

Nucleo del sistema operativo
Nucleo del sistema operativoNucleo del sistema operativo
Nucleo del sistema operativo
Emily_Fdez
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
Juan Anaya
 
Equipo 4 concurrencia y secuenciabilidad
Equipo 4   concurrencia y secuenciabilidadEquipo 4   concurrencia y secuenciabilidad
Equipo 4 concurrencia y secuenciabilidad
Ana Gómez
 
Mapa mental de memoria virtual
Mapa mental de memoria virtualMapa mental de memoria virtual
Mapa mental de memoria virtual
jorge77712
 
Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas Operativos
Kim Sorel Rush
 
Unidad 2 Sistema Operativo de Windows
Unidad 2 Sistema Operativo de WindowsUnidad 2 Sistema Operativo de Windows
Unidad 2 Sistema Operativo de Windows
Nadia Gonzalez
 
Deteccion Y Recuperacion De Un Interbloqueo
Deteccion Y Recuperacion De Un InterbloqueoDeteccion Y Recuperacion De Un Interbloqueo
Deteccion Y Recuperacion De Un Interbloqueo
Tecnologico de pinotepa
 
Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativos
Andy Lopez
 
Introducción a los Sistemas Operativos
Introducción a los Sistemas OperativosIntroducción a los Sistemas Operativos
Introducción a los Sistemas Operativos
Gabriela
 

En vedette (20)

Nucleo del sistema operativo
Nucleo del sistema operativoNucleo del sistema operativo
Nucleo del sistema operativo
 
Mapa Conceptual procesos concurrentes
Mapa Conceptual procesos concurrentesMapa Conceptual procesos concurrentes
Mapa Conceptual procesos concurrentes
 
Mapa conceptual sobre
Mapa conceptual sobre Mapa conceptual sobre
Mapa conceptual sobre
 
Unidad 1 sistemas operativos
Unidad 1 sistemas operativosUnidad 1 sistemas operativos
Unidad 1 sistemas operativos
 
Sistemas operativos administracion cpu
Sistemas operativos administracion  cpuSistemas operativos administracion  cpu
Sistemas operativos administracion cpu
 
Programa sistemas-operativos
Programa  sistemas-operativosPrograma  sistemas-operativos
Programa sistemas-operativos
 
Equipo 4 concurrencia y secuenciabilidad
Equipo 4   concurrencia y secuenciabilidadEquipo 4   concurrencia y secuenciabilidad
Equipo 4 concurrencia y secuenciabilidad
 
Organización de archivos
Organización de archivosOrganización de archivos
Organización de archivos
 
2.2 tecnicas de ingenieria de requisitos
2.2 tecnicas de ingenieria de requisitos2.2 tecnicas de ingenieria de requisitos
2.2 tecnicas de ingenieria de requisitos
 
Mapa mental de memoria virtual
Mapa mental de memoria virtualMapa mental de memoria virtual
Mapa mental de memoria virtual
 
Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas Operativos
 
Unidad 2 Sistema Operativo de Windows
Unidad 2 Sistema Operativo de WindowsUnidad 2 Sistema Operativo de Windows
Unidad 2 Sistema Operativo de Windows
 
Deteccion Y Recuperacion De Un Interbloqueo
Deteccion Y Recuperacion De Un InterbloqueoDeteccion Y Recuperacion De Un Interbloqueo
Deteccion Y Recuperacion De Un Interbloqueo
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativos
 
Operaciones Sobre Procesos
Operaciones Sobre ProcesosOperaciones Sobre Procesos
Operaciones Sobre Procesos
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Sistema Operativo ppt
Sistema Operativo pptSistema Operativo ppt
Sistema Operativo ppt
 
Introducción a los Sistemas Operativos
Introducción a los Sistemas OperativosIntroducción a los Sistemas Operativos
Introducción a los Sistemas Operativos
 
Paginación, Segmentación y Fragmentación
Paginación, Segmentación y FragmentaciónPaginación, Segmentación y Fragmentación
Paginación, Segmentación y Fragmentación
 

Similaire à Sistemas operativos unidad 2 (20)

Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
Lps 17 hilos
Lps 17 hilosLps 17 hilos
Lps 17 hilos
 
Presentación1
Presentación1Presentación1
Presentación1
 
Portafolio 2
Portafolio 2Portafolio 2
Portafolio 2
 
Unidad 2 jacinto
Unidad 2 jacintoUnidad 2 jacinto
Unidad 2 jacinto
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1
 
Lab5 guia
Lab5 guiaLab5 guia
Lab5 guia
 
Colaborativo_Nelis Rivero
Colaborativo_Nelis RiveroColaborativo_Nelis Rivero
Colaborativo_Nelis Rivero
 
Tema3 procesos
Tema3 procesos Tema3 procesos
Tema3 procesos
 
Colaborativo_Nelis Rivero
Colaborativo_Nelis RiveroColaborativo_Nelis Rivero
Colaborativo_Nelis Rivero
 
Procesos
ProcesosProcesos
Procesos
 
Trabajo de sisope
Trabajo de sisopeTrabajo de sisope
Trabajo de sisope
 
Trabajode Sisope
Trabajode SisopeTrabajode Sisope
Trabajode Sisope
 
Unidad2
Unidad2Unidad2
Unidad2
 
21
2121
21
 
Estados de un proceso
Estados de un procesoEstados de un proceso
Estados de un proceso
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Planificador
PlanificadorPlanificador
Planificador
 

Plus de Luis Cigarroa

Formulación y evaluación de proyectos de inversión unidad 6
Formulación y evaluación de proyectos de inversión unidad 6Formulación y evaluación de proyectos de inversión unidad 6
Formulación y evaluación de proyectos de inversión unidad 6
Luis Cigarroa
 
Formulación y evaluación de proyectos de inversión unidad 5
Formulación y evaluación de proyectos de inversión unidad 5Formulación y evaluación de proyectos de inversión unidad 5
Formulación y evaluación de proyectos de inversión unidad 5
Luis Cigarroa
 
Formulación y evaluación de proyectos de inversión unidad 4
Formulación y evaluación de proyectos de inversión unidad 4Formulación y evaluación de proyectos de inversión unidad 4
Formulación y evaluación de proyectos de inversión unidad 4
Luis Cigarroa
 
Formulación y evaluación de proyectos de inversión unidad 3
Formulación y evaluación de proyectos de inversión unidad 3Formulación y evaluación de proyectos de inversión unidad 3
Formulación y evaluación de proyectos de inversión unidad 3
Luis Cigarroa
 
Formulación y evaluación de proyectos de inversión unidad2
Formulación y evaluación de proyectos de inversión unidad2Formulación y evaluación de proyectos de inversión unidad2
Formulación y evaluación de proyectos de inversión unidad2
Luis Cigarroa
 
Formulación y evaluación de proyectos de inversión
Formulación y evaluación de proyectos de inversiónFormulación y evaluación de proyectos de inversión
Formulación y evaluación de proyectos de inversión
Luis Cigarroa
 
Planificación y modelado del sistema de una pizzeria.
Planificación y modelado del sistema de una pizzeria.Planificación y modelado del sistema de una pizzeria.
Planificación y modelado del sistema de una pizzeria.
Luis Cigarroa
 

Plus de Luis Cigarroa (8)

Formulación y evaluación de proyectos de inversión unidad 6
Formulación y evaluación de proyectos de inversión unidad 6Formulación y evaluación de proyectos de inversión unidad 6
Formulación y evaluación de proyectos de inversión unidad 6
 
Formulación y evaluación de proyectos de inversión unidad 5
Formulación y evaluación de proyectos de inversión unidad 5Formulación y evaluación de proyectos de inversión unidad 5
Formulación y evaluación de proyectos de inversión unidad 5
 
Formulación y evaluación de proyectos de inversión unidad 4
Formulación y evaluación de proyectos de inversión unidad 4Formulación y evaluación de proyectos de inversión unidad 4
Formulación y evaluación de proyectos de inversión unidad 4
 
Formulación y evaluación de proyectos de inversión unidad 3
Formulación y evaluación de proyectos de inversión unidad 3Formulación y evaluación de proyectos de inversión unidad 3
Formulación y evaluación de proyectos de inversión unidad 3
 
Formulación y evaluación de proyectos de inversión unidad2
Formulación y evaluación de proyectos de inversión unidad2Formulación y evaluación de proyectos de inversión unidad2
Formulación y evaluación de proyectos de inversión unidad2
 
Formulación y evaluación de proyectos de inversión
Formulación y evaluación de proyectos de inversiónFormulación y evaluación de proyectos de inversión
Formulación y evaluación de proyectos de inversión
 
Unidad1
Unidad1Unidad1
Unidad1
 
Planificación y modelado del sistema de una pizzeria.
Planificación y modelado del sistema de una pizzeria.Planificación y modelado del sistema de una pizzeria.
Planificación y modelado del sistema de una pizzeria.
 

Sistemas operativos unidad 2

  • 1. Sistemas Operativos Unidad I Administración de procesos y procesador
  • 2. Contenido  Concepto de proceso.  Estados y transiciones de los procesos.  Procesos ligeros (hilos o hebras).  Concurrencias y secuenciabilidad.
  • 3. Concepto de Proceso.  Un programa que se esta ejecutando.  Una actividad asincrónica.  Aquello que se manifiesta por la existencia del Sistema Operativo de un bloque de control de proceso.  Aquella entidad a la cual son asignados los procesadores.
  • 4. Concepto de Proceso.  Programa: conjunto de instrucciones que ejecuta una computadora para realizar una actividad.  Proceso: instancia de ejecución de un programa, caracterizado por su contador de programa, estado, registros del procesador, segmento de texto, pila y datos.
  • 5. Estados y Transiciones de los procesos. Estados En ejecución: Utiliza la CPU. Listo: Ejecutable, se detiene de forma temporal. Bloqueado: No se puede ejecutar debido a la ocurrencia de algún evento externo.
  • 6. Estados y Transiciones de los procesos. Transacciones En ejecución Bloqueado Listo
  • 7. Procesos ligeros (hilos o hebras) Un hilo o hebra en los S.O. son programas que tienen como característica principal el ejecutar varias tareas a la vez (concurrencia) . • Comparten recursos • Cuentan con un contador de programa • Pila de ejecución • Estado del CPU
  • 8. Procesos ligeros (hilos o hebras) • Espacio de memoria • Variables globales • Ficheros abiertos • Procesos hijos • Temporizadores • Señales y semáforos • Contabilidad
  • 9. Procesos ligeros (hilos o hebras) Beneficios: • Explotación del paralelismo • Explotación de concurrencia (I/O) • Estilo de programación
  • 10. Procesos ligeros (hilos o hebras) Aplicaciones: • Creación y destrucción • Sincronización • Gestión de prioridades • Gestión de señales • Gestión de memoria • Se pueden utilizar todas las funciones incluidas en POSIX.1 y POSIX.1b • La interfaz de hilos POSIX es pthreads, aunque existen otras bibliotecas de hilos
  • 11. Procesos ligeros (hilos o hebras) • Si se desea crear una nueva hebra, es suficiente construir un nuevo objeto de la clase Thread y llamar a su método start(). public class DosHebrasBasicas extends Thread { int cont; DosHebrasBasicas(int c) { cont = c; } public void run() { while (true) { system.out.println(cont); } } public static void main(String[] args) { new DosHebrasBasicas(0).start(); new DosHebrasBasicas(1).start(); } } // class
  • 12. Procesos ligeros (hilos o hebras) • En algún momento de la ejecución del método run() se ha generado una excepción que nadie ha capturado. La excepción se propaga hasta el propio método run(). Si tampoco éste tiene un manejador para la excepción, el método run() finaliza abruptamente, terminando la ejecución de la hebra. • Si se llama al método stop() o stop(excepción) de la hebra. Estos dos métodos originan que la hebra termine, y son en realidad un caso particular del anterior. • Cuando se llama al método destroy() de la hebra. También se comenta posteriormente.
  • 13. Procesos ligeros (hilos o hebras) Ejemplo para asignar una prioridad public class ComprobarPrioridad implements Runnable { int num; ComprobarPrioridad(int c) { num = c; } public void run() { while (!parar) { system.out.println(num); cont++; } } public static void main(String[] args) { Thread nueva; for (int c = 0; c < 10; c++) { nueva = new Thread(new ComprobarPrioridad(c)); if (c == 0) nueva.setPriority(Thread.MAX_PRIORITY); nueva.start(); } } } // class
  • 14. Procesos ligeros (hilos o hebras) Ejemplo para asignar una prioridad setPriority(int): establece la prioridad de la hebra. Puede ocasionar la generación de una excepción de seguridad si la hebra que solicita el cambio de prioridad de otra no está autorizada a hacerlo. getPriority(): devuelve la prioridad de la hebra. Para establecer los posibles valores en el parámetro de setPriority o como resultado de getPriority, la clase Thread define tres constantes estáticas a la clase: MAX_PRIORITY (= 10): es el valor que simboliza la máxima prioridad. MIN_PRIORITY (= 1): es el valor que simboliza la mínima prioridad. NORM_PRIORITY (= 5): es el valor que simboliza la prioridad normal, la que tiene la hebra creada durante el arranque de la máquina virtual y que se encarga de ejecutar la función main
  • 15. Concurrencia y secuenciabilidad Los procesos son concurrentes si existen simultáneamente. Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o pueden ser asíncronos, lo cual significa que en ocasiones requieren cierta sincronización o cooperación.
  • 16. Concurrencia y secuenciabilidad Beneficios del uso de la concurrencia • Trata de evitar los tiempos muertos de la UCP. • Comparte y optimiza el uso de recursos. • Permite la modularidad en las diferentes etapas del proceso. • Acelera los cálculos. • Da mayor comodidad.
  • 17. Concurrencia y secuenciabilidad Desventajas del uso de la concurrencia • Que dos o mas procesos requieran el mismo recurso . • Ocurrencia de bloqueos. • Interrupción de procesos.
  • 18. Concurrencia y secuenciabilidad Elementos a gestionar y diseñar a causa de la concurrencia 1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo hace por medio de PBC’s (Bloque de Control de Procesos) . 2. El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo.(Tiempo de procesador, memoria, Archivos, dispositivos de entrada y salida). 3. El sistema operativo debe proteger los datos y los recursos físicos de cada proceso contra injerencias no intencionadas de otros procesos. 4. Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se realiza la ejecución con respecto a otros procesos concurrentes.
  • 19. Concurrencia y secuenciabilidad Exclusión Mutua La exclusión mutua la podríamos definir como una operación de control que permite la coordinación de procesos . Formas de satisfacer los requisitos de exclusión mutua: • Soluciones por Software. Una manera es dejar la responsabilidad a los procesos que deseen ejecutar concurrentemente, de esta manera los procesos deben coordinarse unos con otros para cumplir la exclusión mutua sin ayuda alguna, aunque estas soluciones son propensas a errores y a una fuerte carga de proceso (Algunos ejemplos de estas son: Algoritmo de Dekker y Algoritmo de Peterson). • Soluciones por Hardware. Propone el uso de instrucciones de la máquina a tal efecto, estas tienen la ventaja de reducir la sobrecarga.
  • 20. Concurrencia y secuenciabilidad Nota: Investigar el Algoritmo de Dekker y el Algoritmo de Peterson para la exclusión mutua.
  • 21. Concurrencia y secuenciabilidad void sleep(long milis): duerme a la hebra durante al menos <milis> milisegundos. Transcurrido el tiempo, la hebra pasará a estar preparada para ejecutarse, pero eso no implica que pase inmediatamente a hacerlo (dependerá del planificador), de ahí que pueda estar más tiempo del que se especifica sin ejecutarse. void sleep(long milis, int nanos): duerme a la hebra durante al menos <milis> milisegundos y <nanos> nanosegundos. Sirve como una implementación con más precisión que la anterior. En la práctica, la implementación actual no permite tanta parecisión, y se limita a redondear los <milis> en función de los <nanos> y a llamar al método sleep anterior con el valor obtenido. void yield(): cede el procesador. Pasará a ejecutarse de nuevo el planificador, que decidirá qué otra hebra ejecutar.
  • 22. Concurrencia y secuenciabilidad Sincronización de procesos La comunicación entre procesos es necesaria si se desea que varios procesos puedan colaborar para realizar una misma tarea. La sincronización es el funcionamiento coordinado en la resolución de una tarea encomendada.
  • 23. Concurrencia y secuenciabilidad Sincronización de procesos Los servicios básicos de comunicación son: • Crear: el proceso solicita la creación del mecanismo • Enviar o escribir: el proceso emisor envía información al proceso receptor • Recibir o leer: el proceso receptor recibe información • Destruir: el proceso solicita la destrucción del mecanismo de comunicación
  • 24. Concurrencia y secuenciabilidad Sincronización de procesos La comunicación puede ser síncrona y asíncrona: • Síncrona: los dos procesos han de ejecutar servicios de forma simultánea. El emisor ha de ejecutar el servicio enviar mientras el receptor ejecuta recibir. • Asíncrona: el emisor hace el envío y prosigue su ejecución. El SO ofrece un almacenamiento intermedio para guardar la información enviada, hasta que el receptor la solicite.
  • 25. Concurrencia y secuenciabilidad Sincronización de procesos • Dos o más procesos leen o escriben en ciertas zonas compartidas. • El resultado final puede depender de lo que cada proceso ejecutó. Proceso 1 Proceso 2 S. O. Recurso
  • 26. Concurrencia y secuenciabilidad class almacen { int[] almacen = new int[16]; int primero = 0; int cuantos = 0; synchronized public int coger() { int aux; if (cuantos == 0) return (-1); else { cuantos--; aux = primero; primero = (primero + 1) & 15; return(almacen[aux]); } } synchronized public boolean dejar(char val) { if (cuantos == 16) return false; int aux; aux = (primero + cuantos) & 15; cuantos++; almacen[aux] = val; return true; } } // almacen
  • 27. Concurrencia y secuenciabilidad Mecanismos de semáforos Los semáforos son mecanismos para la sincronización de los procesos y esta representado por una variable entera positiva, cuyo valor solo puede ser acceso mediante las operaciones wait y signal.
  • 28. Concurrencia y secuenciabilidad Semáforos • WAIT: verifica si el valor de un semáforo es mayor que cero y en este caso decrementa dicho valor y el proceso continúa. Si es cero, el proceso se va a dormir. Las modificaciones al valor del se ejecutan en forma indivisible, es decir, si un proceso está modificando un semáforo ningún otro proceso puede esta modificando el mismo valor
  • 29. Concurrencia y secuenciabilidad Semáforos • SIGNAL: incrementa el valor del semáforo respectivo. Si uno o más procesos dormían y no podían completar una operación anterior, el SO elige alguno de ellos y se le permite terminar la operación WAIT.
  • 30. Concurrencia y secuenciabilidad Semáforos /*Semáforo mutex compartido por N procesos es inicializado en 1*/ /*Estructura del proceso Pi */ while (TRUE) { wait(mutex); /*Sección Critica*/ signal(mutex); /*Sección No Crítica*/ }
  • 31. Concurrencia y secuenciabilidad Semáforos /*Semáforo mutex compartido por N procesos es inicializado en 1*/ /*Estructura del proceso Pi */ while (TRUE) { wait(mutex); /*Sección Critica*/ signal(mutex); /*Sección No Crítica*/ }
  • 32. Actividades Investigación del tema Técnicas de administración del planificador (FIFO, SJF,RR, QUEVES MULTI-LEVEL, MULTI-LEVEL FEEDBACK QUEVES).