¿Qué es una Aplicación, un Ejecutable y un Proceso?
- Una aplicación es un tipo de programa informático, diseñado como una herramienta para resolver de manera automática un problema específico del usuario.
- Un ejecutable es un fichero que contiene el código binario o interpretado que se ejecutará en un ordenador.
- Un proceso es un programa en ejecución.
Tipos de Ejecutables: Binarios e Interpretados
Binarios: Formados por un conjunto de instrucciones que son ejecutadas directamente por el procesador del ordenador. Este código se obtiene al compilar el código fuente de un programa y se guarda en un fichero ejecutable. Este código solo se ejecutará correctamente en equipos cuya plataforma sea compatible con aquella para la que ha sido compilado (es decir, no es multiplataforma).
Interpretados: Código que suele tratarse como un ejecutable, pero no es código binario, sino otro tipo de código, que en Java, por ejemplo, se llama bytecode. Está formado por códigos de operación que el intérprete procesará (en el caso de Java, el intérprete es la Máquina Virtual Java o JRE). Ese intérprete será el encargado de traducirlos al lenguaje máquina que el procesador ejecutará. El código interpretado es más susceptible de ser multiplataforma o independiente de la máquina física en la que se haya compilado.
¿Qué son las Librerías?
Las librerías son un conjunto de funciones que permiten dar modularidad y reusabilidad a nuestros programas. Las hemos incluido en esta clasificación porque su contenido es código ejecutable, aunque este código sea ejecutado por todos los programas que invoquen las funciones que contienen. El conjunto de funciones que incorpora una librería suele ser altamente reutilizable y útil para los programadores, evitando que tengan que reescribir una y otra vez el código que realiza la misma tarea.
Tipos de Ficheros: Por Lotes, Interactivos y en Tiempo Real
Por Lotes: Están formados por una serie de tareas de las que el usuario solo está interesado en el resultado final. El usuario solo introduce las tareas y los datos iniciales, deja que se realice todo el proceso y luego recoge los resultados.
Interactivos: Aquellas tareas en las que el proceso interactúa continuamente con el usuario y actúa de acuerdo con las acciones que este realiza o a los datos que suministra.
Tiempo Real: Tareas en las que el tiempo de respuesta del sistema es crítico.
Funciones de una Herramienta Gráfica de Gestión de Procesos
- Listado de todos los procesos activos en el sistema, mostrando su PID (ID de Proceso), usuario y ubicación de su fichero ejecutable.
- Posibilidad de finalizar procesos.
- Información sobre el uso de CPU, memoria principal y virtual, y red.
- Posibilidad de cambiar la prioridad de ejecución de los procesos.
Estados de un Proceso en un Sistema Operativo
- Nuevo: Proceso recién creado.
- Listo: Proceso que está esperando la CPU para ejecutar sus instrucciones.
- En Ejecución: Proceso que actualmente está en turno de ejecución en la CPU.
- Bloqueado: Proceso que está a la espera de que finalice una operación de E/S (Entrada/Salida).
- Suspendido: Proceso que se ha llevado a la memoria virtual para liberar un poco la RAM del sistema.
- Terminado: Proceso que ha finalizado y ya no necesitará más la CPU.
Tipos de Algoritmos de Planificación de Procesos
- Round-Robin
- Por prioridad
- Múltiples colas
¿Qué son el Contador de Programa y el Puntero a Pila?
El Contador de Programa, en cada instante, almacena la dirección de la siguiente instrucción a ejecutar. Recordemos que cada instrucción a ejecutar, junto con los datos que necesite, es llevada desde la memoria principal a un registro de la CPU para que sea procesada; y el resultado de la ejecución, dependiendo del caso, se vuelve a llevar a memoria (a la dirección que ocupe la correspondiente variable). Así, el Contador de Programa apunta a la dirección de la siguiente instrucción que habrá que traer de la memoria cuando se termine de procesar la instrucción en curso. Este Contador de Programa nos permitirá continuar en cada proceso desde la instrucción donde lo hubiéramos dejado.
El Puntero a Pila, en cada instante, apunta a la parte superior de la pila del proceso en ejecución. En la pila de cada proceso es donde se almacenará el contexto de la CPU y de donde se recuperará cuando ese proceso vuelva a ejecutarse.
¿Qué es un Hilo y qué es un Servicio?
- Un servicio es un proceso que queda a la espera de que otros le pidan que realice una tarea.
- Un hilo sirve para crear diferentes flujos de ejecución dentro de un mismo programa y permite gestionar su concurrencia o pausar su ejecución.
