Actividad 12: Procesos II

per Victor Carceler darrera modificació 2020-03-25T16:28:56+02:00

Utilice una máquina virtual para realizar la siguiente actividad.

 

  1. Compruebe el número de CPUs instaladas en su equipo a partir de:
    1. La información proporcionada por el fichero /proc/cpuinfo
    2. La información que proporciona el comando dmesg
    3. La información que proporciona el comando top
    4. La información que proporciona el monitor del entorno gráfico
  2. Lance un proceso consumecpu y observe la atención de CPU que el proceso obtiene. ¿En qué estado se encuentra la máquina (nivel de carga, reparto de tiempos entre ejecución, espera, nice...)? ¿Lance otro proceso consumecpu, qué ocurre?
  3. Genere un shell script llamado lanzaconsumidores <n> cuya función será lanzar la ejecución de <n> procesos consumecpu, que deberán seguir ejecutándose después de que la ejecución del script finalice.
  4. ¿Qué PPID tienen los procesos que lanzó el script?
  5. ¿El sistema reparte equitativamente el tiempo de CPU entre los procesos?
  6. Si cierra el shell (con el comando exit) y abre uno nuevo, ¿aún están ejecutándose los procesos consumecpu? Acabe con ellos.
  7. Lance 5 procesos consumecpu.  Altere con renice el valor nice de uno de ellos. ¿Qué ocurre con el reparto de atención de la CPU? Haga que todos los procesos tengan el mismo valor de nice. ¿Vuelve a ser equitativo el reparto de CPU?
  8. Ahora que tiene tiene varios procesos con un valor de nice mayor que 0 (ceden el turno) intente cambiar el valor nice a -5 para esos procesos. ¿Es posible? Conviertase en administrador e inténtelo de nuevo.
  9. Utilice nice para abrir un nuevo shell Bash con nice 10. Desde ese terminal lance un consumecpu, ¿qué valor de nice tiene dicho proceso?
  10. Implemente el script bombalogica de manera que se llame a sí mismo y no termine nunca. En cada iteración, el programa deberá:
  • Esperar 5 segundos
  • Lanzar dos nuevas instancias de bombalogica
  • Lanzar un nuevo consumecpu
  • ADVERTENCIA: Este apartado hará que sea necesario reiniciar el equipo, guarde todo su trabajo antes de realizarlo y realice un snapshot de la máquina virtual. Conviene tener un terminal abierto como root con el comando 'init 0' preparado para detener la máquina. Ejecute bombalogica (sin ser root) con valor nice +10 y observe cómo aumenta la carga en el sistema. ¿Cuantos procesos aguanta la máquina antes de ser inusable (porque no reacciona de forma interactiva)?
  • Se desea evitar que un usuario pueda lanzar demasidados procesos. ¿Qué se debe hacer? Cambie la configuración del sistema para que 'usuario' no pueda crear más de 500 procesos y tenga 10 por valor nice. Ponga a prueba lo configurado.
  • Utilice /etc/security/limits.conf para hacer que el usuario sólo pueda tener 5 sesiones abiertas.
  • Lea: Introducción a los grupos de control (cgroups) de Linux.