Ejercicio S.O. multiusuario y multitarea Un sistema operativo ...
Ejercicio S.O. multiusuario y multitarea Un sistema operativo ...
Ejercicio S.O. multiusuario y multitarea Un sistema operativo ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
*<br />
* Escribe los usuarios que estén ocupando mucha<br />
* memoria (por encima de “m_umbral”) o el tiempo medio<br />
* de sus procesos superen los ¾ del t medio de CPU total.<br />
* No se tiene en cuenta el usuario “<strong>sistema</strong>” (uid=0).<br />
*/<br />
ALGORITMO UsuariosGolosos(<br />
E TProcesos procs; // Tabla información procesos<br />
E TUsuarios uss; // Tabla información usuarios<br />
E N m_umbral) // Más se considera mucha memoria<br />
VAR<br />
N u, m; R t, t_umbral; B error_t, error_m<br />
INICIO<br />
t_umbral = TEjecMedio(procs)*3.0/4.0<br />
PARA u=1 HASTA MaxUsuarios HACER<br />
SI uss[u].uid !=0 ENTONCES<br />
t = R(TEjecTotUsuario(uss[u].uid,uss,procs,error_t))/<br />
R(NumProcsUsuario(uss[u].uid, uss))<br />
m = Memoriasuario(uss[u].uid, uss, procs, error_m)<br />
SI (NO error_t Y t>t_umbral) O<br />
(NO error_m Y m>m_umbral) ENTONCES<br />
Escribir(uss[u].nombre)<br />
FINSI<br />
FINSI<br />
FINPARA<br />
FIN UsuariosGolosos<br />
Modularización:<br />
TEjecMedio<br />
TEjecProceso<br />
UsuariosGolosos<br />
TEjecTotUsuario<br />
BuscarProceso<br />
BuscarUsuario<br />
MemUsuario<br />
MemProceso