ADMINISTRACION
Enviado por mogsp • 11 de Junio de 2014 • 3.488 Palabras (14 Páginas) • 259 Visitas
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
//
...