ADMINISTRACIÓN DE PROCESOS. Son los componentes de software que integran a los sistemas operativos, estos son:
•Administrador de procesos.
•Administrador de memoria.
•Administrador de dispositivos de E/S.
•Administrador de información o de archivos.
• Conjunto de fases sucesivas de un fenómeno o hecho complejo.
• Conjunto de operaciones a que se
somete una cosa para elaborarla o transformarla. La actividad más importante del núcleo del sistema operativo es implementar los procesos. Cada proceso es un procesador virtual en donde se ejecuta una aplicación o una herramienta del sistema operativo. Dentro del administrador de procesos tenemos diferentes políticas:
•Elegir cual proceso entra primero en base a
estructuras de datos básicas: colas, pilas.
•Cual es el proceso más rápido, con base a
pronósticos de tiempos estimados. •Todo se realiza en base a algoritmos que permiten administrar cual entra primero; por ejemplo el algoritmo: RR, Round Robin, cola circular.
•Optimizar el tiempo de ejecución.
•Optimizar el uso de la memoria, controlar el
uso de los dispositivos de E/S para interectuar con el CPU.
•Permite controlar las diferentes rutinas.
(Señalización e Interrupciones). • En la mayoría de los sistemas computacionales existe un solo procesador real. Por lo tanto el núcleo debe asignar el procesador por turnos a los numerosos procesos que pueden estar activos.
Hay distintas estrategias para asignar estos
turnos, dependiendo del objetivo que se persiga. La asignación estratégica del procesador a los procesos es lo que se denomina scheduling de procesos.
La componente del núcleo que se encarga de
esta labor se denomina scheduler del procesador. • CREACION. El núcleo esta obteniendo los recursos que necesita el proceso para poder correr, como por ejemplo memoria o disco.
• CORRIENDO (RUN. El proceso está en posesión
del procesador, el que ejecuta sus instrucciones. • ESPERANDO (WAIT). El proceso espera que se lea un sector del disco, que llegue un mensaje de otro proceso, que transcurra un intervalo de tiempo, que termine otro proceso, etc.
• LISTO (READY). El proceso esta activo pero
no está en posesión del procesador. • TERMINADO (FINISH). El proceso terminó su ejecución, pero sigue existiendo para que otros procesos puedan determinar que termino. Un proceso pasa de un estado a otro constantemente y varias veces por segundo.
El número exacto de estados depende del
sistema. Por ejemplo cuando un proceso está corriendo el scheduler puede quitarle el procesador para entregárselo a otro proceso.
En este caso el primer proceso queda listo para ejecutarse.
Es decir en cualquier momento, el scheduler puede entregarle nuevamente el procesador y quedar corriendo.
En este estado el proceso puede leer del terminal y por lo
tanto quedar en espera de que el usuario ingrese algún texto. Si lanzas Microsoft Word y VFP, entonces tienes dos procesos separados que están corriendo al mismo tiempo aunque sólo tengas una CPU. El sistema operativo asigna tiempo a cada uno de los procesos y pasa de uno a otro según le interesa. Es una ejecución concreta de un programa, con un camino determinado y un valor de sus variables determinados. La unidad mínima de expedición y de asignación de recursos es el proceso. • Propiedad de Recursos • Memoria asignada. • Canales y/o Dispositivos de I/O asignados. • Archivos asignados. • Entidad de Ejecución • Bloque de Control del Proceso (BCP). • Estado del Proceso. • Traza de ejecución (Programa en ejecución y su control). • Condiciones de trabajo en Multiprogramación • Varios Procesos deben poder compartir recursos. • Varios Procesos deben poder trabajar juntos en paralelo. • Un Proceso debe poder "crear" otro Proceso. En inglés IPC (Interprocess Communication) es una función básica de los Sistemas operativos. Los procesos pueden comunicarse entre sí a través de compartir espacios de memoria, ya sean variables compartidas o buffers, o a través de las herramientas provistas por las rutinas de IPC. La IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre sí. Ejemplos de comunicación de procesos:
Los protocolos desarrollados para internet son
los mayormente usados: IP (capa de red), protocolo de control de transmisión (capa de transporte) y protocolo de transferencia de archivos , protocolo de transferencia de hipertexto (capa de aplicación). Un hilo de ejecución, en sistemas operativos, es una característica que permite a una aplicación realizar varias tareas concurrentemente. Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Los hilos de ejecución que comparten los mismos recursos, sumados a estos recursos, son en conjunto conocidos como un proceso. • Estado.
• Contexto del procesador. Punto en el que
estamos ejecutando, la instrucción concretamente en la que nos hallamos. Es útil a la hora de reanudar un hilo que fue interrumpido con anterioridad, puesto que al guardar el contexto, guardamos la ultima instrucción que ejecutamos, y así podemos conocer por donde tenemos que continuar la ejecución del hilo. • Pila de ejecución donde se irá metiendo y sacando instrucciones. (Lugar donde almacenaremos las instrucciones que van a ser ejecutadas).
• Espacio de almacenamiento estático donde
almacenará las variables.
• Acceso a los recursos de la tarea, que son
compartidos por todos los hilos de la tarea. • Se tarda menos tiempo en crear un hilo de una tarea existente que en crear un nuevo proceso.
• Se tarda menos tiempo en terminar un hilo que
en terminar un proceso.
• Se tarda menos tiempo en cambiar entre dos
hilos de una misma tarea que en cambiar entre dos procesos (porque los recursos no cambian, por ejemplo). • Es mas sencillo la comunicación (paso de mensajes por ejemplo) entre hilos de una misma tarea que entre diferentes procesos.
• Cuando se cambia de un proceso a
otro, tiene que intervenir el núcleo del sistema operativo para que haya protección.