ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

ADMINISTRACION


Enviado por   •  11 de Junio de 2014  •  3.488 Palabras (14 Páginas)  •  290 Visitas

Página 1 de 14

UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE TONALA

PROYECTO FINAL

INDICE

PSEUDOCÓDIGO DE ASIGNACION DE MEMORIA

PRIMERAJUSTE MEJOR AJUSTE PEORAJUSTE

PSEUDOCODIGO ALGORIMOS DE PLANIFICACION DE PROCESOS

FCFS

SJF SRT RR

PSEUDOCODIGO PAR IMPEDIR LOS INTERBLOQUEOS BARBERIA

BARBERIA EQUITATIVA

BARBERIA NO EQUITATIVA

INVESTIGACIONN SOBRE CONCURRENCIA

INTERBLOQUEO………………………………………………..i

Condiciones para interbloqueos…………………………………….ii Prevenciones de los interbloqueos………………………….iii Estados seguros e inseguros………………………………..iv Exclusión mutua…………………………………………………v Contención y Espera…………………………………………..vii Condición no apropiativa……………………………………..viii Espera Circular…………………………………………………ix Detección de interbloqueos………………………………..x Recuperación de interbloqueos…………………………….xii Terminación de procesos……………………………………..xiii Bibliografía…………………………………………………….xiv

Pseudocódigo de mejor ajuste Pseudocódigo de primer ajuste Pseudocódigo de peor ajuste

Pseudocódigo de fcfs

#include <stdlib.h>

#include <stdio.h>

int main ()

{

char PLANNER_RESULT,PLANNER_INPUT;

/**

* srt_algorithm

*

* Obtiene un PLANNER_RESULT resultado de aplicar

* el algoritmo SRT a un PLANNER_INPUT

*

* El algoritmo está dividido en 2 fases:

*

* 1f) iteramos sin tener en cuenta todos los procesos

* que puede haber en la estructura, solamente aquellos

* que ya han entrado en el algoritmo, pero están en cola

*

* 2f) iteramos sobre todos los procesos que quedan

* seleccionando en cada iteración aquel con menos tiempo

* de proceso

*/

PLANNER_RESULT srt_algorith (PLANNER_INPUT data)

{

int i=0, j=0;

// proceso inicial

int current_process=0;

// nos indica si estamos en la primera fase int token_second=1;

// nos indica en qué fase estamos int second_phase=0;

// límite de iteraciones para procesos en cola int limit_iteration=0;

// hacemos una copia del PLANNER_INPUT inicial

// para operar sobre él en el algoritmo

PLANNER_INPUT datacopy = data;

// reseteamos la información del PLANNER_RESULT final PLANNER_RESULT rtemp = reset_planner_data(rtemp, data.num); rtemp.num = data.num;

float av_return = 0;

float av_wait = 0;

// obtenemos la suma total de los servicios

// puesto que iteraremos sobre este número

int sum_servicio = sum_planner_data_stime(data);

for(i; i<=sum_servicio; i++)

{

token_second = 1;

// primero comprobamos si este proceso no ha terminado ya if(data.times[current_process].t_servicio != 0)

{

// ejecutamos una iteración de este proceso, y le restamos

// tiempo de servicio data.times[current_process].t_servicio--;

finalización

// si el proceso ha terminado, determinamos su tiempo de

if(data.times[current_process].t_servicio == 0)

{

i+datacopy.idle+1;

}

}

rtemp.processes[current_process].TF =

restante

procesos

// buscamos el siguiente proceso con menos tiempo de servicio

// si estamos en primera fase, sólo tenemos que buscar sobre aquellos

// procesos que hayan entrado en el planificador

//

// en la segunda fase tenemos que buscar entre todos aquellos

// restantes, el de menos tiempo de servicio restante if(second_phase == 0)

limit_iteration = i+2;

else

limit_iteration = datacopy.num;

// iteramos el resto de procesos for(j=0; j<limit_iteration; j++)

{

if(second_phase == 1)

{

// segunda fase if(data.times[j].t_servicio > 0)

{

if(token_second)

{

current_process = j;

token_second = 0;

}

expropiación: proceso sea menor comprobando no

data.times[current_process].t_servicio data.times[current_process].t_servicio)

// comprobamos las condiciones para la

// que el tiempo de servicio restante de este

// que el actual, y que el proceso que estamos

// sea el actual if(data.times[j].t_servicio <

&& data.times[j].t_servicio !=

}

}

else

{

{

// expropiamos current_process = j;

}

expropiación

> 0, si su tiempo comprobar si el tiempo de menor, y además que comprobando

// comprobamos las condiciones para la

// el proceso tiene que tener tiempo de servicio

// de servicio es diferente de 0, tiene que

// servicio restante del proceso a comprobar es

// el proceso actual no sea

...

Descargar como (para miembros actualizados) txt (28 Kb)
Leer 13 páginas más »
Disponible sólo en Clubensayos.com