Diferencia entre revisiones de «Ejercicios otros aspectos de la planificación»

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar
(Ejercicio de clase sobre SO de tiempo real)
(Ejercicio 4)
 
(No se muestran 25 ediciones intermedias de 9 usuarios)
Línea 1: Línea 1:
== Ejercicio de clase sobre SO de tiempo real ==
+
== Ejercicio 1 ==
  
                    ____|_PA_|_PB_|_PC_|_PD_|
+
Dada la siguiente configuración de procesos:
        Datos del  _H0_|_0__|_1__|_2__|_3*n|
+
{| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
          problema  _t__|_2__|_4__|_2__|_1__|
+
! width="50" style="background:#efefef;" | Proceso
                  plazo|_3__|_5__|_7__|_10_|
+
! width="50" style="background:#efefef;" | H<sub>0
              prioridad|_-20|_0__|_10_|_15_|
+
! width="50" style="background:#efefef;" | t
              (-20 a 19)
+
|-
                UNIX 
+
| P<sub>A</sub>
                      < = indica el instante de lanzamiento del proceso
+
| 0
                      > = indica el instante de finalización del proceso
+
| 5
                      X = se ejecuta el código del planificador
+
|-
                      * = el proceso se aborta
+
| P<sub>B</sub>
 +
| 1
 +
| 3
 +
|-
 +
| P<sub>C</sub>
 +
| 2
 +
| 1
 +
|-
 +
| P<sub>D</sub>
 +
| 3
 +
| 6
 +
|-
 +
| P<sub>E</sub>
 +
| 4
 +
| 2
 +
|}
  
                  |   |   |   |  |  |  |  |  |  |  |  |  |   |  |  |  |  |  |  |  |
+
Suponiendo un sistema operativo multiprocesador sobre dos procesadores, realice la traza de la ejecución de dichos procesos para los siguientes criterios de planificación:
              PA  <___|___>   |   |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
+
 
              PB  |   <   |___|___|___*  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
+
* FIFO (no apropiativo)
              PC  |   |  <   |  |  |___|___>   |   |   |  |  |  |  |  |  |  |  |  |  |
+
* SJF (apropiativo y no apropiativo)
              PD  |   |  |  <   |  *  <  |___>   <___>   |   <___>  |   <___>  |  |  |  |
+
 
    Planificador X  |  X  |  |  X  |  X  |  X  |  |  X  |  |  X  |  |  |  |  |
+
[[sol-ejer1-otros-aspectos|Ver solución ejercicio 1]]
            -----|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---> t
+
 
                  0   1  2   3   4   5   6  7  8  9  10  11  12  13  14  15  16  17  18  19  20
+
== Ejercicio 2 ==
                                       
+
''[Este ejercicio fue parte del primer Control de Evaluación Contínua del Curso 2010/11, del 23 de marzo de 2011]''
                        _____|_P<sub>A</sub>_|_P<sub>B</sub>_|_P<sub>C</sub>_|P<sub>D1ª</sub>_|P<sub>D2ª</sub>_|_P<sub>D</sub>_|
+
 
              Cálculos  __t__|_2__|_3__|_2__|_1__|_1__|_1__|
+
Dada la siguiente configuracion de procesos:
            de tiempos  __T__|_2__|_*__|_4__|_*__|_2__|_1__|
+
 
                        _T/t_|_1__|_*__|_2__|_*__|_1.5|_1__|
+
{| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
                        |
+
! width="50" style="background:#efefef;" | Proceso
                        |_> Indice de penalización
+
! width="50" style="background:#efefef;" | H<sub>0
 +
! width="50" style="background:#efefef;" | t
 +
|-
 +
| P<sub>A</sub>
 +
| 0
 +
| 3
 +
|-
 +
| P<sub>B</sub>  
 +
| 1
 +
| 5
 +
|-
 +
| P<sub>C</sub>  
 +
| 2
 +
| 6
 +
|}
 +
 
 +
Teniendo en cuenta el siguiente comportamiento:
 +
 
 +
* El proceso A cada 1 unidad de tiempo de ejecución bloquea .
 +
* El proceso B cada 3 unidades de tiempo de ejecución bloquea.
 +
 
 +
Suponga que el tiempo de bloqueo de todos los procesos es de 2 unidades de tiempo debido al tiempo de acesso al dispositivo de E/S.
 +
 
 +
Realice la traza de ejecución de dichos procesos y los índices de penalización para los siguientes criterios de planificación:
 +
 
 +
#El siguiente, el más corto apropiativo en un sistema multiprocesador con dos procesadores, solo se ejecutaran procesos en el procesador 2 si el procesador 1 está ocupado. No olvide los tiempos de bloqueo de los procesos A y B. Considere asignación dinámica. (''[[sol-ejer2-1-otros-aspectos|Ver solución]]'')
 +
#Por prioridades apropiativo en tiempo real, suponiendo que C < B < A. No olvide los tiempos de bloqueo de los procesos A y B. (''[[sol-ejer2-2-otros-aspectos|Ver solución]]'')
 +
 
 +
{| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
 +
! width="50" style="background:#efefef;" | Proceso
 +
! width="50" style="background:#efefef;" | Plazo
 +
|-
 +
| P<sub>A</sub>
 +
| 6
 +
|-
 +
| P<sub>B</sub>
 +
| 15
 +
|-
 +
| P<sub>C</sub>
 +
| 15
 +
|}
 +
 
 +
== Ejercicio 3 ==
 +
''[Este ejercicio formó parte del Primer Parcial de Evaluación Contínua del curso 2011/12 del 8 de Noviembre de 2011]''
 +
 
 +
Dado el código de los siguientes procesos:
 +
 
 +
'''Código proceso A:'''
 +
<source lang="c">
 +
int fd;                                      #1
 +
fd = open("fichero.txt", O_WRONLY, 0600);    #2
 +
for(int i=0;i<2;i++) {                      #3
 +
    write(fd, "%d", sizeof(int));            #4
 +
}
 +
close(fd);                                  #5
 +
</source>
 +
 
 +
'''Código proceso B:'''
 +
<source lang="c">
 +
int fd, contador = 0;                        #1
 +
for(int i=0;i<2;i++) {                      #2
 +
    contador+=2;                            #3
 +
}
 +
printf("el contador vale: %d\n", contador);  #4
 +
</source>
 +
 
 +
De manera teórica, suponga que la ejecución de cada línea de código toma una unidad de tiempo. Considere que las llamadas '''write''' y '''printf''' son bloqueantes puesto que suponen accesos a dispositivos de E/S, siendo los tiempos de bloqueo de 3 unidades de tiempo.
 +
 
 +
Realice la traza temporal de ejecución de dichos procesos y los índices de penalización para los siguientes criterios de planificación:
 +
 
 +
#Por prioridades apropiativo en tiempo real, suponiendo que B>A. No olvide los tiempos de bloqueo de los procesos A y B. Considere que los plazos de ejecucion de proceso A es 16 y de proceso B es 18
 +
 
 +
#Suponiendo un sistema multiprocesador con dos procesadores. No olvide los tiempos de bloqueo de los procesos A y B. Considere asignación dinámica. Suponga que ambos procesos se lanzan a la vez, pero el planificador da paso en primer lugar al proceso A.
 +
 
 +
[[sol-ejer-planif-procesos-3|Ver solución del ejercicio 3]]
 +
 
 +
== Ejercicio 4 ==
 +
''[Este ejercicio fue parte del Primer Control de Evaluación Contínua en el curso 2012/13, del 9 de Noviembre de 2012]''
 +
 
 +
Dada la siguiente configuracion de procesos:
 +
 
 +
{| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
 +
! width="50" style="background:#efefef;" | Proceso
 +
! width="50" style="background:#efefef;" | H<sub>0
 +
! width="50" style="background:#efefef;" | t
 +
|-
 +
| P<sub>A</sub>  
 +
| 0
 +
| 4
 +
|-
 +
| P<sub>B</sub>  
 +
| 1
 +
| 5
 +
|-
 +
| P<sub>C</sub>  
 +
| 2
 +
| 6
 +
|}
 +
 
 +
Teniendo en cuenta el siguiente comportamiento:
 +
 
 +
El proceso A cada 1 unidad de tiempo de ejecución bloquea
 +
 
 +
El proceso B cada 3 unidad de tiempo de ejecución bloquea
 +
 
 +
Suponga que el tiempo de bloqueo de todos los procesos es de 3 unidades de tiempo debido al tiempo de acceso al dispositivo E/S
 +
 
 +
Realice la traza de ejecución de dichos procesos y los indices de penalización suponiendo que se trata de un planificador basado en multinivel con realimentación:
 +
 
 +
Existen dos colas, cada proceso de la primera cola recibe un quantum de 1 unidad de tiempo, los de la segunda reciben un quantum 2 unidades de tiempo cada uno de ellos.
 +
 
 +
- Todos los procesos van inicialmente a la segunda cola.
 +
 
 +
- Un proceso promociona a la primera cola si emplea todo su quantum de una sola vez.
 +
 
 +
- Un proceso nunca desciende de la primera cola a la segunda.
 +
 
 +
- Se da oportunidad de ejecución a los procesos de la primera cola siempre que no haya procesos listos en la segunda cola.
 +
 
 +
 
 +
[[sol-ejer-planif-procesos-3|Ver solución del ejercicio 4]]
 +
 
 +
--[[Usuario:Jescrerui|JCR]] 20:38 19 nov 2012 (UTC)
 +
 
 +
 
 +
6.1 [[Concurrencia_de_procesos | Concurrencia de procesos]]

Revisión actual del 11:37 4 dic 2016

Ejercicio 1

Dada la siguiente configuración de procesos:

Proceso H0 t
PA 0 5
PB 1 3
PC 2 1
PD 3 6
PE 4 2

Suponiendo un sistema operativo multiprocesador sobre dos procesadores, realice la traza de la ejecución de dichos procesos para los siguientes criterios de planificación:

  • FIFO (no apropiativo)
  • SJF (apropiativo y no apropiativo)

Ver solución ejercicio 1

Ejercicio 2

[Este ejercicio fue parte del primer Control de Evaluación Contínua del Curso 2010/11, del 23 de marzo de 2011]

Dada la siguiente configuracion de procesos:

Proceso H0 t
PA 0 3
PB 1 5
PC 2 6

Teniendo en cuenta el siguiente comportamiento:

  • El proceso A cada 1 unidad de tiempo de ejecución bloquea .
  • El proceso B cada 3 unidades de tiempo de ejecución bloquea.

Suponga que el tiempo de bloqueo de todos los procesos es de 2 unidades de tiempo debido al tiempo de acesso al dispositivo de E/S.

Realice la traza de ejecución de dichos procesos y los índices de penalización para los siguientes criterios de planificación:

  1. El siguiente, el más corto apropiativo en un sistema multiprocesador con dos procesadores, solo se ejecutaran procesos en el procesador 2 si el procesador 1 está ocupado. No olvide los tiempos de bloqueo de los procesos A y B. Considere asignación dinámica. (Ver solución)
  2. Por prioridades apropiativo en tiempo real, suponiendo que C < B < A. No olvide los tiempos de bloqueo de los procesos A y B. (Ver solución)
Proceso Plazo
PA 6
PB 15
PC 15

Ejercicio 3

[Este ejercicio formó parte del Primer Parcial de Evaluación Contínua del curso 2011/12 del 8 de Noviembre de 2011]

Dado el código de los siguientes procesos:

Código proceso A:

int fd;                                      #1
fd = open("fichero.txt", O_WRONLY, 0600);    #2
for(int i=0;i<2;i++) {                       #3
    write(fd, "%d", sizeof(int));            #4
}
close(fd);                                   #5

Código proceso B:

int fd, contador = 0;                        #1
for(int i=0;i<2;i++) {                       #2
    contador+=2;                             #3
}
printf("el contador vale: %d\n", contador);  #4

De manera teórica, suponga que la ejecución de cada línea de código toma una unidad de tiempo. Considere que las llamadas write y printf son bloqueantes puesto que suponen accesos a dispositivos de E/S, siendo los tiempos de bloqueo de 3 unidades de tiempo.

Realice la traza temporal de ejecución de dichos procesos y los índices de penalización para los siguientes criterios de planificación:

  1. Por prioridades apropiativo en tiempo real, suponiendo que B>A. No olvide los tiempos de bloqueo de los procesos A y B. Considere que los plazos de ejecucion de proceso A es 16 y de proceso B es 18
  1. Suponiendo un sistema multiprocesador con dos procesadores. No olvide los tiempos de bloqueo de los procesos A y B. Considere asignación dinámica. Suponga que ambos procesos se lanzan a la vez, pero el planificador da paso en primer lugar al proceso A.

Ver solución del ejercicio 3

Ejercicio 4

[Este ejercicio fue parte del Primer Control de Evaluación Contínua en el curso 2012/13, del 9 de Noviembre de 2012]

Dada la siguiente configuracion de procesos:

Proceso H0 t
PA 0 4
PB 1 5
PC 2 6

Teniendo en cuenta el siguiente comportamiento:

El proceso A cada 1 unidad de tiempo de ejecución bloquea

El proceso B cada 3 unidad de tiempo de ejecución bloquea

Suponga que el tiempo de bloqueo de todos los procesos es de 3 unidades de tiempo debido al tiempo de acceso al dispositivo E/S

Realice la traza de ejecución de dichos procesos y los indices de penalización suponiendo que se trata de un planificador basado en multinivel con realimentación:

Existen dos colas, cada proceso de la primera cola recibe un quantum de 1 unidad de tiempo, los de la segunda reciben un quantum 2 unidades de tiempo cada uno de ellos.

- Todos los procesos van inicialmente a la segunda cola.

- Un proceso promociona a la primera cola si emplea todo su quantum de una sola vez.

- Un proceso nunca desciende de la primera cola a la segunda.

- Se da oportunidad de ejecución a los procesos de la primera cola siempre que no haya procesos listos en la segunda cola.


Ver solución del ejercicio 4

--JCR 20:38 19 nov 2012 (UTC)


6.1 Concurrencia de procesos