Skip to main content

Procesos

Características de los procesos

  • Segmentos o memoria asignada
  • Estados
  • Estructuras de control del SO
Segmentos o memoria asignada

El sistema se reservará, para cada proceso, memoria para almacenar las instrucciones del programa editor y para los datos que este editando el usuario. También es necesario que cada proceso deba tener un espacio llamado pila, en el que se resgistrará el constexto actual antes de hacer un salto o una función.

También se pueden compartir áreas de memoria o comunicación entre procesos.

Estado de los procesos

Modelo de estados Unix.

  • Proceso en modo núcleo
    • Llamadas al sistema.
    • Llamadas al hardware.
  • Proceso en modo usuario
    • Aplicaciones sin llamada al sistema.
  • Listo para ejecutar y en memoria
    • Disponible en cuánto se le asigna una CPU.
  • Dormido y en memoria
    • Esta esperando que ocurra un determinado proceso.
  • Listo para ejecutar y descargado
    • Listo para ejecutarse pero que aún tiene que cargarse en memoria.
  • Expulsado, creado y zombie
    • Estados temporales.

Planificación de tareas

El planificador de tareas es el elemento del SO que se encarga de organizar la ejecución de los procesos. Es capaz de expulsar un proceso en ejecución y decidir qué proceso se debe ejecutar a continuación y durante cuanto tiempo.

Esta función de apoya en el hardware del sistema para crear interrupciones(suspensión temporal de un proceso en ejecución.)

  1. Planificación a corto plazo. Es la que se ejecuta frecuentement, toma la desición del siguiente paso, es importante que sea rápido en tomar decisiones.
  2. Planificación a medio plazo. Ajusta el número de procesos cargados a la cantidad de recursos disponibles. Elige que procesos se cargan o se descargan.
  3. Planificación a largo plazo. Decide si es posible o no lo es aceptar más procesos.

Políticas de planificación

Objetivos

  • Tiempo de respuesta del sistema
  • Tiempo de retorno del sistemas
  • Plazos - Para industria, satelites
  • Previsibilidad
  • Productividad
  • Equiedad
  • Prioridades
  • Equilibrio de recursos

Tipos de políticas de planificación

  1. FCFS o FIFO. First In First Out. Penaliza a los procesos cortos
  2. Round Robin. Turno rotatorio. Mayor Equidad y mejor respuesta. Peor Productividad
  3. Realimentación.
    • Se ajusta la prioridad dinámicamente.
    • Es la que usa Linux en la actualidad. (PRD - NICE)
    • Intenta favorecer a los procesos más cortos.

Procesos y hebras

Al proceso se le conceden recursos, en un proceso hay varias hebras. Si el proceso acaba todas las hebras también acabarán. Las hebras son más rápidas que los procesos

Comandos relacionados con los procesos

ps ps fax - ps faxl - ps -U <usuario>
top Monitor del sistemas. Otros monitores más actuales. atop,htop,iftop.
uptime Muestra la carga media del sistema
kill - killalll Sirve para matar procesos
nice - renice Nos ayuda a ajustar la preferencia de consumo de CPU
nohup Lanza un proceso con una salida desconectada del terminal. Así si el terminal se cierra el proceso continúa funcionando


Primer y segundo plano en el shell

El shell tiene dos planos de ejecucción.

  • Primer plano (foreground), proceso que se ejecuta conectado a nuestra terminal
  • Segundo plano (background), proceso que se ejecuta sin acaparar nuestra entrada

Lanzar en segundo plano:

  • comando opciones &. sin el amparsand el comando se hubiese iniciado en primer plano.

Para pasar de primer plano a segundo y viceversa deberemos detener momentáneamente el proceso y después cambiar su estado.

fg - fg%<id trabajo> Pasa a primer plano el trabajo por defecto o el trabajo especificado
bg - bg%<id trabajo> Reanuda en segunda plano la ejecución del trabajo
jobs Muestra la lista de trabajos lanzados desde el shell
CTRL C Termina el trabajo en primer plano
CTRL Z Detiene, sin terminar el proceso en primer plano

Para limitar en número de procesos nos podemos dirigir hacia:

  • /etc/security/limits.conf