11.05.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!