Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Unidad 2 jacinto
Unidad 2 jacinto
Wird geladen in …3
×

Hier ansehen

1 von 36 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Ähnlich wie Unidad 2 (20)

Anzeige

Aktuellste (20)

Unidad 2

  1. 1. ESPECIALIDAD: ING. INFORMATICA MATERIA: SISTEMAS OPERATIVOS TITULAR: JACINTO TOLEDO TORRES PRESENTA: OSVELI GOMEZ MANUEL SEMESTRE: 4° GRUPO: “S” HEROICA CD. JUCHITAN DE ZARAGOZA OAX, FEBRERO DEL 2016
  2. 2. 2.1 CONCEPTO DE PROCESO Un proceso no es mas que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros y las variables. Conceptualmente cada unos de estos procesos tiene su propia CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro. Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Otra información que permite al sistema operativo su planificación. Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución.
  3. 3. Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria. En los sistemas operativos multi-hilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso. En este modelo: todo software ejecutable de la computadora, lo que a menudo incluye al sistema operativo, esta organizado en una serie del proceso secuenciales, o simplemente procesos. La idea clava aquí es que un proceso es una actividad de algún tipo: tiene programa, entrada, salida y un estado. Se puede compartir un procesador entre varios procesos, usando algún algoritmo de planificación para determinar cuando debe de trabajar en un proceso para atender a uno distinto.
  4. 4. JERARQUÍAS DE PROCESOS Los sistemas operativos que manejan el concepto de proceso deben contar con algún mecanismo para crear todos los procesos necesarios. en los sistemas muy sencillos, o en los diseñados para ejecutar solo una aplicación. En otros sistemas operativos existen llamadas al sistema para crear un proceso, cargar su memoria y ponerlo en ejecutar. Sea cual sea la naturaleza exacta de la llamada al sistema. Los procesos necesitan poder crear otros procesos. En MINIX, los procesos se crean con la llamada al sistema FORK (bifurcar), que crea una copia idéntica del proceso invocador. El proceso hijo también puede ejecutar FORK, así que es posible tener un árbol de proceso.
  5. 5. ESTADOS DE PROCESOS El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa por una serie de estados discretos. Estos estados son se muestran en el siguiente diagrama:
  6. 6. NUEVO BLOQUEADO LISTO EJECUCION TERMINADO Admitir Expedir Salir Fin del Tiempo Ocurre Suceso Espera Suceso SUSPENDIDO
  7. 7. Estado Descripción Nuevo Se dice que un proceso está en estado de nuevo cuando apenas se encuentra en proceso de crearse. Listo Un proceso está en estado de listo, cuando podría usar una UCP, si hubiera una disponible. En ejecución Se dice que un proceso está estado de ejecución, si en ese momento tiene esta ocupando la CPU. Bloqueado Se dice que un proceso está en estado de bloqueado, si espera que ocurra algo, como por ejemplo, la terminación de una E/S, para así poder ponerse en marcha. Terminado Cuando un proceso se ha completado su ejecución pasa a ser un proceso terminado suspendido Se da cuando los procesos se detienen a la espera de que se complete alguna operación. El proceso ha sido movido de la memoria principal a la memoria secundaria
  8. 8. TRANSICIONES DE ESTADOS Cuando un trabajo es admitido se crea un proceso equivalente, y es insertado en la ultima parte de la cola de listos (ésta se tratara más adelante). Cuando un proceso pasa de un estado a otro se dice que hace una transición de estado, estas transiciones se describen a continuación.
  9. 9. Transición Descripción Admitido(Proceso):Nuevo Listo Cuando un proceso se ha creado y se le es permito para competir por la CPU. Despacho(Proceso):Listo En ejecución La asignación de la CPU al primer proceso de la lista de listos es llamado despacho y es ejecutado por la entidad de sistema llamada despachador. Mientras que el proceso tenga la CPU se dice que esta en ejecución. Tiempo excedido(Proceso):En ejecución Listo El S.O , cuando un proceso se le expira el intervalo de tiempo asignado para estar en ejecución (CUANTO), hace que este proceso que se hallaba en estado de ejecución pase al estado de listo y inmediatamente el despachador hace que el primer proceso de la lista pase a estado de ejecución. Bloqueo(Proceso):En ejecución Bloqueado Si un proceso que se encuentra en estado de ejecución inicia una operación de E/s antes que termine su cuanto, el proceso voluntariamente abandona la CPU, es decir, el proceso se bloquea a sí mismo. Despertar(Proceso):Bloqueo Listo La única transición posible en nuestro modelo básico ocurre cuando acaba una operación de E/S (o alguna otra causa por la que esté esperando el proceso), y esta termina pasa a el estado de listo. Salir(Proceso):En ejecución Terminado Esta transición ocurre cuando el proceso se ha terminado de ejecutarse, y pasa a un estado de terminado
  10. 10. Exclusión Mutua Administra el área de datos compartidos y los recursos compartidos del sistema. La exclusión mutua es la actividad que realiza el sistema operativo para evitar que dos o más procesos ingresen al mismo tiempo a un área de datos compartidos o accedan a un mismo recurso. En otras palabras, es la condición por la cual, de un conjunto de procesos, sólo uno puede acceder a un recurso dado o realizar una función dada en un instante de tiempo. En sistemas de multiprogramación con un único procesador, los procesos se intercalan en el tiempo para dar la apariencia de ejecución simultánea. Uno de los grandes problemas que nos podemos encontrar es que el hecho de compartir recursos está lleno de riesgos. Por ejemplo, si dos procesos hacen uso al mismo tiempo de una variable global y ambos llevan a cabo tanto operaciones de lectura como de escritura sobre dicha variable, el orden en que se ejecuten estas lecturas y escrituras es crítico, puesto que se verá afectado el valor de la variable.
  11. 11. REGION CRÍTICA O SECCION CRITICA Una región o sección crítica es una secuencia de instrucciones que no debe ser interrumpida por otros procesos, es decir, se debe tratar una región crítica como una sola instrucción atómica. No es suficiente que los recursos usados en una región crítica no deban ser alterados por otros procesos, porque es posible que su valor o contenido en el momento de lectura no sean validos; puede ser que estén en un estado transitorio. Se denomina sección crítica, en programación concurrente, a la porción de código de un programa de computador en la cual se accede a un recurso compartido (estructura de datos o dispositivo) que no debe ser accedido por más de un hilo en ejecución. La sección crítica por lo general termina en un tiempo determinado y el hilo, proceso o tarea sólo tendrá que esperar un período determinado de tiempo para entrar.
  12. 12. Se necesita un mecanismo de sincronización en la entrada y salida de la sección crítica para asegurar la utilización en exclusiva del recurso, por ejemplo un semáforo El acceso concurrente se controla teniendo cuidado de las variables que se modifican dentro y fuera de la sección crítica. La sección crítica se utiliza por lo general cuando un programa multihilo actualiza múltiples variables sin un hilo de ejecución separado que lleve los cambios conflictivos a esos datos. Una situación similar, la sección crítica puede ser utilizada para asegurarse de que un recurso compartido, por ejemplo, una impresora, puede ser accedida por un solo proceso a la vez. La manera en cómo se implementan las secciones puede variar dependiendo de los diversos sistemas operativos. Sólo un proceso puede estar en una sección crítica a la vez. El método más común para evitar que dos procesos accedan al mismo tiempo a un recurso es el de la exclusión mutua
  13. 13. SEMÁFOROS Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del sistema o variables del código fuente) en un entorno de multiprocesamiento (en el que se ejecutarán varios procesos concurrentemente). Fueron inventados por Edsger Dijkstra en 1965 y se usaron por primera vez en el sistema operativo THEOS. Los semáforos se emplean para permitir el acceso a diferentes partes de programas (llamados secciones críticas) donde se manipulan variables o recursos que deben ser accedidos de forma especial. Según el valor con que son inicializados se permiten a más o menos procesos utilizar el recurso de forma simultánea. Un tipo simple de semáforo es el binario, que puede tomar solamente los valores 0 y 1. Se inicializan en 1 y son usados cuando sólo un proceso puede acceder a un recurso a la vez. Son esencialmente lo mismo que los mutex. Cuando el recurso está disponible, un proceso accede y decrementa el valor del semáforo con la operación P. El valor queda entonces en 0, lo que hace que si otro proceso intenta decrementarlo tenga que esperar. Cuando el proceso que decrementó el semáforo realiza una operaciónV, algún proceso que estaba esperando comienza a utilizar el recurso.
  14. 14. Para hacer que dos procesos se ejecuten en una secuencia predeterminada puede usarse un semáforo inicializado en 0. El proceso que debe ejecutar primero en la secuencia realiza la operación V sobre el semáforo antes del código que debe ser ejecutado después del otro proceso. Éste ejecuta la operación P. Si el segundo proceso en la secuencia es programado para ejecutar antes que el otro, al hacer P dormirá hasta que el primer proceso de la secuencia pase por su operación V. Este modo de uso se denomina señalación (signaling), y se usa para que un proceso o hilo de ejecución le haga saber a otro que algo ha sucedido. El otro uso de los semáforos es para la sincronización. Los semáforos vacíos y llenos se necesitan para garantizar que ciertas secuencias de eventos ocurran o no. En este caso, aseguran que el productor deje de ejecutarse cuando el búfer esté lleno y que el consumidor deje de ejecutarse cuando el búfer esté vacío. Este uso es distinto de la exclusión mutua.
  15. 15. PLANIFICACION DEL PROCESADOR Gestión del procesador realizada por el sistema operativo a través de distintas políticas y mecanismos. OBJETIVO: Dar un buen servicio a los procesos. FUNCION: Reparto de tiempo del procesador para los procesos.
  16. 16. Objetivos Justicia Máxima capacidad de ejecución Máximo Numero de usuarios interactivos Predecibilidad Minimización de sobrecarga Equilibrio uso de recursos Seguridad de prioridades
  17. 17. Tiempo de servicio (T) T = tf - ti Tiempo de espera (E) E = T - t Índice de servicio (I) I = t / T Medidas Tiempo del núcleo Tiempo de inactividad (Idle)
  18. 18. Tiempo de servicio (T) • es la diferencia que existe entre el instante en que el proceso termina su ejecución (tf ) menos el instante en que el usuario da la orden de ejecución del proceso (ti) T = tf - ti
  19. 19. Tiempo de espera (E): • Es la diferencia del tiempo de servicio (T) menos el tiempo que un proceso P necesita estar en ejecución para llevar a cabo su trabajo (t). E = T - t
  20. 20. ALGORITMOS DE PLANIFICACION El planificador del procesador tiene como misión la asignación del mismo a los procesos que están en la cola de procesos preparados.
  21. 21. ALGORITMOS DE PLANIFICACION
  22. 22. FCFS-FIFO DESCRIPCION: En este algoritmo de planificación el procesador ejecuta cada proceso hasta que termina, en el orden que llegan. Los procesos permanecerán encolados hasta que les toque su ejecución. POLÍTICA: no apropiativa.
  23. 23. Ejercicio : suponga que los siguientes procesos han sido planificados para trabajar en el primero en llegar el primero en ser servido los datos del tiempo de inicio son: PROCESO T.INICIO TEXE A 0 8 B 1 5 C 3 3 D 5 6
  24. 24. A)Determine el tiempo en que finaliza cada proceso b)Determine el tiempo de servicio de cada proceso c)Obtenga el valor promedio del tiempo de servicio d)Obtenga el valor promedio del tiempo espera e)Represente gráficamente con una grafica de gant el tiempo que cada proceso utiliza al procesador f)Obtenga el rendimiento del procesador para cada proceso g) Elabore un resumen explicando como funciona ese método de planificación
  25. 25. PROCESO T.FINAL T E I A 8 8 0 100 B 13 12 7 240 C 16 13 16 433.3 D 22 17 11 283.3 PROMEDIO DELTIEMPO DE SERVICIO = 10 PROMEDIO DELTIEMPO DE ESPERA = 5.6 TEXE: tiempo de ejecución T:tiempo de servicio E:tiempo de espera I : rendimientoT=T FINAL –T INICIO E=T-TEXE I =T TEXE . 100
  26. 26. A A A A A A A A B B B B B C C C D D D D D D GRAFICA DE GANNT ESTE PROCESO DE PLANIFICACION EL PROCESADOR EJECUTA SEGÚN EL ORDEN DE LLEGAN COMO ES NO SE PUEDE REALIZAR DOS PROCESOSAL MISMO TIEMPO SE ESPERAA QUE FINALIZE UNO PRARA EJECUTAR EL OTRO
  27. 27. EL SIGUIENTE PROCESO EL MAS CORTO(SJN) DESCRIPCION: Toma de la cola de procesos preparados el que necesite menor tiempo de ejecución. POLITICA: no apropiativa.
  28. 28. Planificación s-j-f(short first) proceso Tiempo de inicio Tiempo de ejecución A 0 10 B 1 8 C 3 3 D 5 6 E 6 5 A) ORDENARTABLA B) APLICAR F.C.E.S PARA OBTENERTIEMPO FINAL DE CADA PROCESO C) VALORES DE TIEMPO DE SERVICIOY TIEMPO DE ESPERA D) PROMEDIO DETIEMPO DE SERVICIOYTIEMPO DE ESPERA E) GRAFICAR F) COMPARAR RESULTADO
  29. 29. a) Ordenar la tabla mediante el método de ordenamiento secuencial for (int i = 0; i < a.length - 1; i++) { Val = i; Pos = i for (int j = i + 1; j < a.length; j++) { if (a[j] <Val) { Pos = [í] ; } } Pos= a[i]; a[i] =Val } }}
  30. 30. A={10,8,3, 6, 5} 0 1 2 3 4 i=0 0<4 0++ Val = a[i] Val = 10 Pos= 0 j=0+1 1<5 1++ a[2] <Val 3<8 Pos = 2 Val = a[2] Val =3 j=2+1 3<5 1++ a[3] <Val 6<3 ** j=3+1 4<5 1++ a[4] <Val 5<3 ** j=4+1 5<5 ** A [pos]=A[i] A[2]=a[0] A[2]=10 A[0]=val A[0]=3 A={3,8,10, 6, 5} 0 1 2 3 4 i=1 1<4 1++ Val = a[i] Val = 8 Pos= 1 j=1+1 2<5 1++ a[2] <Val 10<8 * j=2+1 3<5 2++ a[3] <Val 6<8 Pos = 3 Val =6 j=3+1 4<5 3++ a[4] <Val 5<6 Pos = 4 Val =5 j=4+1 5<5 ** A [pos]=A[i] A[4]=a[1] A[4]=8 A[1]=val A[1]=5
  31. 31. A={3,5,10, 6, 8} 0 1 2 3 4 i=2 2<4 2++ Val = a[i] Val = 10 Pos= 2 j=2+1 3<5 2++ a[3] <Val 6<10 Pos = 3 Val =6 j=3+1 4<5 3++ a[4] <Val 8<6 ** j=4+1 5<5 ** A [pos]=A[i] A[3]=a[2] A[3]=10 A[2]=val A[2]=6 A={3,5,6, 10, 8} 0 1 2 3 4 i=3 3<4 3++ Val = a[i] Val = 10 Pos= 3 j=3+1 4<5 3++ a[4] <Val 8<10 Pos = 4 Val =8 j=4+1 5<5 ** A [pos]=A[i] A[4]=a[3] A[4]=10 A[3]=val A[3]=8 A={3,5,6, 8, 10} 0 1 2 3 4 i=4 4<4**
  32. 32. Proceso Tiempo de inicio Tiempo de ejecucion C 0 3 E 1 5 D 3 6 B 5 8 A 6 10 ORDENARTABLA APLICAR F.C.E.S PARAOBTENERTIEMPO FINAL DE CADA PROCESO Proceso Tiempo de inicio Tiempo final Tiempo de ejecución C 0 3 3 E 1 8 5 D 3 14 6 B 5 22 8 A 6 31 10
  33. 33. VALORES DE TIEMPO DE SERVICIOY TIEMPO DE ESPERA Proceso Tiempo de inicio Tiempo final Tiempo de ejecución Tiempo de servicio Tiempo de espera C 0 3 3 3 0 E 1 8 5 7 2 D 3 14 6 11 5 B 5 22 8 17 9 A 6 31 10 25 15 PROMEDIO DETIEMPO DE SERVICIO= 12.6 PROMEDIO DETIEMPO DE ESPERA= 6.2 C C C E E E E E D D D D D D B B B B B B B B A A A A A A A A A A

×