Gestión de Procesos y Administración de Sistemas Unix/Linux: Conceptos Esenciales
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 5,48 KB
Introducción a los Procesos en Sistemas Operativos Unix/Linux
Un proceso es un programa o comando en ejecución. Cada proceso consta de código, datos y pila.
Los procesos existen en una jerarquía de árbol, donde un proceso padre puede tener varios hijos. El sistema asigna un identificador de proceso (PID) único al iniciar cada proceso.
El planificador de tareas asigna un tiempo compartido para el proceso según su prioridad. Solo el usuario root puede cambiar las prioridades de los procesos.
Tipos de Procesos
- Ejecución en primer plano: Proceso iniciado por el usuario o interactivo.
- Ejecución en segundo plano: Proceso no interactivo que no necesita ser iniciado directamente por el usuario.
- Demonio (Daemon): Proceso en segundo plano siempre disponible, que da servicio a varias tareas. Debe ser propiedad del usuario root.
- Proceso zombi: Proceso parado que permanece en la tabla de procesos hasta que su padre finaliza. Este hecho se produce cuando el proceso padre no recoge el código de salida del proceso hijo.
- Proceso huérfano: Proceso en ejecución cuyo padre ha finalizado. El nuevo identificador de proceso padre (PPID) de un proceso huérfano coincide con el identificador del proceso
init
(PID 1).
Identificadores de Procesos (PID y PPID)
Process ID (PID): Al crearse un nuevo proceso, se le asigna un identificador de proceso único. Este número debe ser utilizado por el administrador para referirse a un proceso dado al ejecutar un comando.
Los PID son asignados por el sistema a cada nuevo proceso en orden creciente, comenzando desde cero.
Parent Process ID (PPID): La creación de nuevos procesos en Unix se realiza duplicando un proceso existente mediante la invocación del comando fork()
. Al proceso original se le llama "padre" y al nuevo proceso "hijo". El PPID de un proceso es el PID de su proceso padre.
Estados de un Proceso
Un proceso puede encontrarse en diferentes estados:
- Durmiendo (asleep): En general, a la espera de algún recurso compartido.
- Listo para ejecutar (runnable): A la espera de que le toque el turno en el uso de la CPU.
- Ejecutando (running): Puede estar ejecutando en modo kernel o en modo usuario.
A su vez, el proceso (o partes del espacio de memoria virtual del proceso) puede estar cargado en memoria o "swapped" a disco.
Además de estos estados básicos, un proceso puede estar detenido (stopped).
Jerarquía del Sistema de Archivos y Tipos en Unix/Linux
El Filesystem Hierarchy Standard (FHS) es una norma que define los directorios principales y sus contenidos en sistemas Linux.
Tipos de Archivos en Sistemas Unix
Los sistemas Unix definen diferentes tipos de archivos:
- Archivos físicos: Son los que se almacenan en el disco duro.
- Directorios: Estructuras jerárquicas capaces de contener archivos u otros directorios.
- Enlaces: Archivos especiales que permiten que varios nombres se asocien a un único e idéntico archivo.
Tipos de Enlaces
- Enlaces simbólicos: Representan punteros virtuales (accesos directos) a los archivos reales.
- Enlaces físicos: Representan un nombre alternativo para un archivo.
- Archivos virtuales: No existen realmente en el disco, ya que solo residen en la memoria.
- Archivos de dispositivo: Se relacionan con los dispositivos del sistema (hardware).
El Rol del Administrador (Root) en Sistemas Unix/Linux
El superusuario puede realizar cualquier operación posible sobre archivos y procesos. El administrador de una máquina Unix se conoce habitualmente como root.
Tareas de un Administrador de Sistemas Unix/Linux
Las tareas de un administrador dependen habitualmente del tipo de sistema del cual se ocupe:
- Apagar y encender el sistema: Se ha de realizar de una forma ordenada para evitar inconsistencias en el kernel o en el sistema de ficheros.
- Gestión de los usuarios: Añadir usuarios, eliminarlos, modificar sus privilegios, controlar sus actividades, e incluso aconsejarles en el manejo del sistema para que puedan trabajar de forma cómoda y eficiente.
- Gestión de software: El administrador es el encargado de actualizar o retirar programas del sistema, y por supuesto también de controlar su correcto funcionamiento (por ejemplo, mediante parches).
- Gestión de periféricos: Puesta a punto de terminales, impresoras, módems.
- Gestión de sistemas de ficheros: Montar o desmontar unidades de disco (discos duros, disquetes, unidades de CD-ROM, etc.).
- Gestión del sistema de red: Como administradores, hemos de configurar los diferentes dispositivos de red de nuestra máquina.
- Seguridad de la máquina: Sobre el root recae la mayor responsabilidad en cuanto a integridad, fiabilidad y privacidad de la máquina y la información contenida en ella.