Documente Academic
Documente Profesional
Documente Cultură
Normalmente, los programas son escritos usando un lenguaje de alto nivel y guardados en un archivo de texto para ser posteriormente interpretados o compilados, de modo que se obtiene un cdigo de nivel intermedio (por ejemplo, bytecodes de java) o un cdigo mquina (ejecutables). Un programa compilado y guardado en un archivo ejecutable puede ser ejecutado en el entorno del Sistema Operativo para el que ha sido diseado. El mapa de memoria de un programa en ejecucin depender del Sistema Operativo para el que se ha compilado. El mapa de memoria conceptual de un programa depende del compilador y del tipo de compilacin con el que se trabaja. El mapa conceptual de un programa en C es el siguiente:
Pila Montn
Variables globales Cdigo del programa
Mantiene las direcciones de vuelta para las llamadas a funciones. Mantiene las variables locales.
Regin de memoria libre que puede usar el programa mediante las funciones de asignacin dinmica.
1. Concepto de proceso
Proceso: Programa en ejecucin. Unidad de procesamiento gestionada por el SO El SO mantiene para cada proceso una serie de estructuras de informacin que permiten identificar sus caractersticas y los recursos asignados. Una parte bsica de esta informacin se encuentra en el BCP (bloque de control de proceso). El SO mantiene una tabla con los BCPs de todos los procesos Informacin asociada a cada proceso: Contenido de los segmentos de memoria donde residen el cdigo y los datos (core image o imagen de memoria) Contenido de los registros del modelo de programacin (PC, estado, etc.) Contenido del BCP
Ya que los procesos encargados de arrancar el SO son los primeros en ejecutar, se va creando una jerarqua de procesos como la indicada a continuacin
Proc. Inic.
Inicio Shell
Inicio
Inicio
Dem. Impr.
Dem. Com..
Proceso D
Proceso C
Los procesos forman grupos, con diferentes propiedades. El conjunto de procesos creados a partir de un shell puede forman un grupo. Tambin puede ser un grupo el conjunto de procesos asociados a un usuario o a un terminal. Algunos servicios del SO pueden operar selectivamente sobre todos los procesos de un grupo.
Proceso
El sistema operativo consiste en un conjunto de programas que permiten la manipulacin de los recursos hardware del sistema, as como su gestin. Cuando un programa se ejecuta, el intrprete de comandos resuelve el nombre del programa, dicho nombre corresponde normalmente a un archivo ejecutable cuya informacin est contenida en un dispositivo de almacenamiento secundario. Dicha informacin es volcada a la memoria, las direcciones relativas son resueltas y se convierten en direcciones absolutas, los registros almacenan los valores de las direcciones de los diferentes segmentos del programa: pila, datos, cdigo, contador de programa, etc. El sistema operativo sigue ejecutndose junto con el programa: sistemas monotarea y sistemas multitarea.
Sistema operativo
Programa
Multitarea (III)
Proceso A
Proceso B
Proceso C Procesador
SO
a) Suspendido. Para disminuir el grado de multiprogramacin efectivo el SO puede retirar a un proceso sus marcos de pgina, alojndolo en la zona de intercambio (usualmente disco). El objetivo de esta operacin es dejar suficiente memoria para los procesos no suspendidos, de forma que el conjunto residente no provoque hiperpaginacin a) En espera. Los procesos entran en el sistema porque lo solicita otro proceso o al estar prevista su ejecucin batch. Es usual disponer de una lista de procesos batch en espera, para ser ejecutados en cuanto se pueda. El SO analiza dicha lista y lanza la ejecucin de los procesos a medida que dispone de los recursos necesarios.
Exit
Es pe r ap
or
E/ S
mp Tie
Listo
Recuperado del disco
Fin E/S
Bloqueado
Expulsado al disco
Entra al sistema
Expulsado al disco
Listo y suspendido
Fin E/S
Bloqueado y suspendido
Zona de intercambio
Memoria
Multitarea (IV)
Estado de los procesos. Un proceso puede encontrarse en diferentes situaciones, que cambian a medida que se modifican sus necesidades. Los estados bsicos en que pueden encontrarse un proceso son: listo, ejecucin y bloqueado
Termina
Ejecucin
Nuevo
Listo
Final E/S
Bloqueado
Procesos
Los procesos son los programas en tiempo de ejecucion Son jerarquicos todos son hijos menos init init es el padre de todos los procesos El shell hace un fork por cada proceso que es invocado Si muere el padre muere el hijo Se pueden controlar los procesos de manera absoluta
Tabla de procesos
BCP Proceso A Estado (registros) Informacin de identificacin Informacin de Control BCP Proceso B Estado (registros) Informacin de identificacin Informacin de Control BCP Proceso N Estado (registros) Informacin de identificacin Informacin de Control
Registros generales
PC SP Estado
Como consecuencia del cambio de contexto puede producirse un cambio en el estado de algunos procesos, aunque no necesariamente.
Ejemplo: Proceso A bloqueado esperando el final de una operacin de disco y llegue una interrupcin (seal de final). Si la interrupcin indica el final de la operacin esperada, el SO cambia el estado del proceso a listo o ejecucin. Es decir, hay cambio de estado.
Ejemplo: Proceso A en ejecucin y se produce una interrupcin de teclado, asociada al proceso B. Se produce el cambio de contexto, pero B sigue bloqueado y A sigue en estado de ejecucin.
Multitarea (V)
Planificador (scheduler). Forma parte del ncleo del SO. Entra en ejecucin cada vez que se activa el SO y tiene por misin seleccionar el proceso que se ejecutar a continuacin. Activador (dispatcher). Tambin forma parte del SO y se encarga de poner en ejecucin el proceso seleccionado por el planificador.
Multitarea (VIII)
Proceso A Proceso B Proceso C SO Memoria principal Cada proceso reside totalmente en M.p
100%
0%
Grado de multiprogramacin
Multitarea (IX)
En sistemas con memoria virtual la situacin es ms compleja. Los procesos slo tienen en MP su conjunto residente (pginas que estn en MP), por lo que podramos tener ms procesos cargados en MP. Si se aumenta demasiado el nmero de procesos, el conjunto residente de cada uno se hace muy pequeo. Al disminuir el conjunto residente ya no representa adecuadamente al futuro conjunto de trabajo (pginas en uso), por lo que se producirn muchos fallos de pgina. Los fallos de pgina consumen mucho tiempo del procesador, ya que el SO ha de tratar el fallo, y tiempo de E/S, ya que es necesaria una migracin de pginas. Al crecer el nmero de fallos de pgina el sistema dedica ms tiempo a resolver los fallos de pgina que a realizar las tareas de los programas (hiperpaginacin).
Multitarea (X)
Marcos de pgina por proceso
Nivel de Multiprogramacin
100 %
% Utilizacin de UCP
100 %
% Utilizacin de UCP
Sistemas multitarea
Se pueden ejecutar varias tareas simultneamente (varios procesos). Versiones de Windows a partir del 95, Unix, Minix, Linux, etc. Es necesaria la planificacin de procesos. Posibilidad de crear entornos de programacin concurrente en el espacio de usuario. Por ejemplo, planificacin en mquina virtual de JAVA.
Espacio de usuario
Kernel S.O.
Hardware
Espacio de usuario Kernel S.O. Hardware Microkernel (Organizacin por capas): MINIX Monoltico : LINUX Espacio de usuario Kernel S.O. Hardware
Sistemas multitarea
Si existen varios procesadores, y el S.O. es capaz de distribuir la carga computacional entre los mismos, hablamos de un sistema operativo multiprocesamiento. Dos tipos de sistemas multitarea: Memoria compartida Memoria distribuida
Memoria compartida
Pr1P1 Pr2P1 Pr2P2 Pr3P3
Planificador
S.O.
Programa 1
Programa 2
Memoria compartida
H1
H2
H3
H4
H5 H6
H7
Pr1P1
Pr2P1
Pr2P2
Pr3P3
Planificador
S.O.
Programa 1
Programa 2
a) Un nico segmento de tamao fijo. Suele restringirse su uso a sistemas sin memoria virtual. Este espacio no puede variar de tamao. Como consecuencia, un proceso podra ejecutar su memoria durante la etapa de ejecucin b) Un nico segmento de tamao variable. Solucin no empleada c) Nmero variable de segmentos con tamao variable. Puede haber tantos segmentos como necesite el proceso. Es la solucin ms flexible y la adoptada normalmente por los SSOO modernos.
Informacin de los procesos (IV) Cdigo o texto. Programa mquina que ha de ejecutar el proceso. Informacin fija, sobre la que slo se realizan operaciones de lectura Datos. Al permitir asignacin dinmica de memoria podra variar su tamao Pila. A travs del puntero de pila los programas usan una estructura de pila residente en MP. En ella se almacenan, por ejemplo, los bloques de activacin de los procedimientos llamados. Se trata de una estructura dinmica: crece y decrece segn avanza la ejecucin del proceso.
PROCESO
Memoria principal
Datos
Disco
Pila
a) Informacin de identificacin (usuario, grupo, proceso, proceso padre) b) Estado del procesador: valores iniciales del procesador o valores correspondientes al momento en que el proceso dej de ejecutar c) Informacin de control del proceso: Informacin de planificacin y estado: estado del proceso, evento que espera (si est bloqueado), prioridad, etc Descripcin de los segmentos de memoria asignados al proceso Recursos asignados: archivos abiertos, puertos de comunicacin, etc
Registros generales
PC SP Estado
Memoria
Informacin de los procesos (IX) Toda la informacin referente a los diferentes procesos se almacenan en tablas (procesos, memoria, E/S y ficheros) La informacin asociada a cada proceso se encuentra parcialmente dentro y fuera del BCP dependiendo de: Eficiencia: acelerar los accesos. Comparticin de informacin: si una informacin ha de ser compartida por varios procesos no debe incluirse en el BCP, ya que es de acceso restringido al proceso dueo.
Proceso
Procesos ligeros
DOS
Un Proceso, Un Hilo Un Proceso, Mltiples Hilos
UNIX
Mltiples Procesos, un Hilo por Proceso Traza de Ejecucin Mltiples Procesos Mltiples Hilos
38
Todos los procesos ligeros de un mismo padre comparten el espacio de direcciones de memoria: cdigo, datos, pilas, etc. Por tanto, no existe un mecanismo de proteccin de memoria entre procesos ligeros.
Imagen P1
Imagen P1
Imagen P2
P2 es Hijo de P1
41
Recursos
I/O asignados Archivos Puertos Lmites de Memoria
Control- BCP
PID (identificador) Estado Program Counter
PC
Pila Datos
(v. locales)
Heap
(v. globales)
Constantes
Cdigo De Programa
42
Recursos de P
BCP de P y BCH0
H1 y H2 son Hilos creados por el Proceso P. El Proceso P define el espacio de direcciones. El Proceso P es dueo de los recursos que pueden usar y compartir H1 y H2. Los Hilos H1 y H2 comparten el espacio de direcciones.
SP
1
PC
0
SP
2
Pila H2
(v. locales)
PC
1
SP
0
BCP: Bloque de Control del Proceso. Contiene el identificador del Proceso (PID), el estado de P, PC, SP, lista de Hilos activos, etc. BCH1: Bloque de Control del Hilo 1. Contiene el estado de H1, PC1, SP1, etc. El Hilo H0 es el Hilo por defecto de P, creado para la funcin main() del Programa.
Pila H0
(v. locales)
PC
2
43
Diferencia Hilo/Proceso
Permiten paralelismo dentro de un Proceso Aplicacin. Comunicacin privada entre varios Hilos del mismo proceso, sin solicitar intervencin del S.O. Mayor eficiencia en el cambio de un Hilo a otro, que de un Proceso a otro. Mayor eficiencia en la creacin de un Hilo que en la creacin de un Proceso Hijo. Un Proceso Multihilo puede recuperarse de la muerte de un Hilo, pues conoce los efectos de esta, y toma su espacio de memoria. Cuando un Proceso muere todos sus Hilos tambin, pues los recursos de Proceso son tomados por el Sistema Operativo.
44
Proceso
Procesos ligeros
H1
H2
Proceso P
46
serie
Ejecucin paralela
Procesamiento
Ncleo Puerto
S o lic it u d e s
Trabajador
Ncleo Puerto
S o l ic it u d e s
Trabajador
Ncleo Puerto
S o lic it u d e s
PROCESOS EN LINUX Cada proceso en el momento de su creacin se le asocia un nmero nico que lo identifica del resto. Adems a un proceso estn asociadas otras informaciones tales como: El usuario que lo ejecuta. La hora en que comenz. La lnea de comandos asociada. Un estado. Ejemplos: sleep, running, zombie, stopped, etc. Una prioridad que indica la facilidad del proceso para acceder a la CPU. Oscila entre -20 y 19, donde -20 es la mayor prioridad. La terminal donde fue invocado, para el caso de que este asociado a alguna terminal.
Para ver los procesos y sus caractersticas se emplea el comando ps. Una salida tpica de este comando es:
PID TTY 1035 pts/0 1831 pts/0 TIME CMD 00:00:14 bash 00:00:00 ps
Como puede apreciarse para cada proceso se muestra su ID, la terminal donde se invoc, el tiempo de CPU que se le ha asignado hasta el momento y el comando que lo desencaden.
COMANDO PS x : muestra todos los procesos del usuario actual sin distincin de terminal. Adems muestra procesos en BG. a : muestra todos los procesos de todos los usuarios. f : muestra las relaciones jerrquicas entre los procesos. e : muestra el entorno de cada proceso. l : utiliza un formato ms largo (muestra ms informacin). u : utiliza un formato orientado a usuario.
S
T W
X
Z
Procesos de usuarios del sistema: asociados a la ejecucin de sus aplicaciones, ya sea tareas interactivas en modo texto o en modo grfico.
EJERCICIO Analice la Salida de los siguientes comandos, identifique cual es el funcionamiento de cada columna y cual es la diferencias entre cada comando ps aux |more ps fea |more ps -el |grep R pstree -p top