Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Nächste SlideShare
Introduccion A Los Procesos
Introduccion A Los Procesos
Wird geladen in …3
×

Hier ansehen

1 von 27 Anzeige

Weitere Verwandte Inhalte

Ähnlich wie Procesos (20)

Anzeige

Aktuellste (20)

Procesos

  1. 1. REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAFR PARA LA EDUCACIÓN SUPERIOR UNIVERSIDAD PEDAGÓGICA EXPERIMENTAL LIBERTADOR UPEL MATURÍN, EDO. MONAGAS PROF.: Mireille Guevara BACHILLER: Rurik Cabeza C.I.: 13.916.525 MATURIN, ENERO 2016 PROCESOS
  2. 2. Conceptos de Procesos  Todo lo que sucede dentro de un ordenador está determinado por la ejecución de procesos, quiere esto decir que se trata del objeto básico y fundamental. Podemos definir un proceso como un programa en ejecución o en disposición de ser ejecutado cuando las circunstancias que rodean el mismo así lo determinen. • Un programa es un código objeto reposando en memoria, es decir, sin ser activado, pero un proceso es este objeto pero activado.  La activación de este código implica la carga en memoria de parte o todo él para su ejecución y la creación por parte del S.O. de un conjunto de informaciones que permitan controlar la ejecución y desarrollo del mismo (PCB).  El entorno definido por el contexto de hardware, de software y la imagen en ejecución representan un concepto dinámico que se conoce como proceso.  Un proceso es pues un programa en ejecución, incluyendo el código o instrucciones que lo componen, el contador de programa, los registros y las variables, es decir, contiene toda la información relativa al entorno en donde se ejecuta.
  3. 3. Estados de los Procesos Modelo de dos estados. El modelo de estados más simple es el de dos estados. En este modelo, un proceso puede estar ejecutándose o no. Cuando se crea un nuevo proceso, se pone en estado de No ejecución. En algún momento el proceso que se está ejecutando pasará al estado No ejecución y otro proceso se elegirá de la lista de procesos listos para ejecutar para ponerlo en estado Ejecución. De esta explicación se desprende que es necesario que el sistema operativo pueda seguirle la pista a los procesos, conociendo su estado y el lugar que ocupa en memoria. Además los procesos que no se están ejecutando deben guardarse en algún tipo de cola mientras esperan su turno para ejecutar.
  4. 4. Estados de los Procesos Modelo de cinco estados El modelo anterior de dos estados funcionaría bien con una cola FIFO y planificación por turno rotatorio para los procesos que no están en ejecución, si los procesos estuvieran siempre listos para ejecutar. En la realidad, los procesos utilizan datos para operar con ellos, y puede suceder que no se encuentren listos, o que se deba esperar algún suceso antes de continuar, como una operación de Entrada/Salida. Es por esto que se necesita un estado donde los procesos permanezcan bloqueados esperando hasta que puedan proseguir. Se divide entonces al estado No ejecución en dos estados: Listo y Bloqueado. Se agregan además un estado Nuevo y otro Terminado.
  5. 5. Bloque de control de los Procesos  Cada proceso se representa en el S.O. por un conjunto de datos, que incluye toda la información necesaria para definirlo: el estado, recursos utilizados, registros.  Este conjunto de datos se conoce como bloque de control de procesos (PCB), y es toda la información que el S.O. necesita para ejecutar el programa. Es el proceso para el S.O..  Estos datos pueden estar en la memoria principal o en el disco, pero los que son necesarios para determinar en que situación se encuentra el proceso deben estar en memoria.  Estas informaciones se almacenan en lo que se conoce como Bloque de Control de Procesos (BCP).  La Tabla de Procesos es una estructura, generalmente estática por razones de eficacia, cuyas entradas son bloques de control de procesos.  El Bloque de Control de Procesos contiene la información básica de cada proceso y que podemos definir aproximadamente: • Información de identificación *Identificador del proceso. *Identificador del proceso padre en caso de existir relaciones padre-hijo (UNIX). *Información sobre el usuario (identificador del usuario, grupo)
  6. 6. Bloque de control de los Procesos o Estado del procesador. o Información del control del proceso. Información diversa como:  Información de planificación y estado: *Estado del proceso *Evento por el que espera el proceso cuando está bloqueado. *Prioridad del proceso. *Información de planificación.  Descripción de los segmentos de memoria asignados al proceso. *Puntero al segmento de datos. *Puntero al segmento de código. *Puntero al segmento de pila.  Recursos asignados, tales como: * Archivos abiertos (tabla de descriptores o manejadores de archivo). * Puertos de comunicación asignados * Punteros para estructurar los procesos en colas o anillos. * Comunicación entre procesos. El BCP puede contener espacio para almacenar las señales y para algún mensaje enviado al proceso.
  7. 7. Operaciones sobre los Procesos  Crear: puede hacerse desde un proceso ya existente o a través del intérprete de comandos del S.O. en cualquier caso se considera hijo del proceso creador. El trabajo para el S.O. consiste en darle una entrada en el PCB y pasarlo a la cola de preparados. Hay varias formas de crear procesos: o Inicialización del sistema. Cuando se inicia el sistema se crean varios procesos, algunos interactúan con el usuario y otros no (demonios) o Ejecución de una llamada al sistema para crear procesos por parte de un proceso en ejecución. Mediante una llamada al sistema. Por ejemplo para bajar datos es conveniente crear un proceso para que los ponga en el buffer. o Solicitud de un usuario para crear un proceso. En modo interactivo es muy común por parte de los usuarios. o Inicio de un trabajo por lotes.
  8. 8. Operaciones sobre los Procesos  En cualquier caso la creación de procesos se hace mediante una llamada al sistema (fork en UNIX y execve). Los pasos de creación de procesos en UNIX es el siguiente:  Un proceso especial llamado init, está presente en la imagen de arranque. Cuando dicho proceso comienza a ejecutarse lee un archivo que indica cuantas terminales hay, y genera un proceso nuevo para cada una. Estos procesos esperan a que alguien inicie sesión. Si hay inicio de sesión login exitoso, el proceso login ejecuta un shell para aceptar comandos. Estos pueden generar más procesos, y así de forma sucesiva. Por lo tanto todos los procesos del sistema pertenecen a un árbol que tiene a init como raíz.
  9. 9. Operaciones sobre los Procesos EJEMPLO FORK() #include <stdio.h> #include <sys/types.h> #include < unistd.h> main() { int a,val=2; a=fork(); switch(a) { case -1: break; /*erro */ case 0: val--;break; /*proceso fillo */ default: val++; /*proceso pai */ } printf("n val= %dn",val); }
  10. 10. Operaciones sobre los Procesos EJEMPLO EXECVE() #include <stdio.h> #include < unistd.h> main() { int error; char *arg[3],*argp[1]; arg[0]="ls"; /* argumentos */ arg[1]="-l"; arg[2]=NULL; argp[0]=NULL; /* entorno */ execve("/bin/ls",arg,argp); printf("n error n"); }
  11. 11. Operaciones sobre los Procesos  Execve es usado por un proceso para cargar un nuevo ejecutable binario en el espacio virtual de memoria del proceso que hace la llamada  Vfork es igual que fork, pero no copia los datos ni la pila  Secuencia ‘normal’ en la creación de un proceso:
  12. 12. Operaciones sobre los Procesos Jerarquía de Procesos
  13. 13. Operaciones sobre los Procesos  Destruir: eliminar la entrada en la cola de PCB. Puede haber problemas en la gestión de las propiedades heredadas del proceso padre o, si tiene procesos hijo, tener que esperar a que finalicen estos o los finaliza forzosamente. Terminación normal. Es la forma mas normal (exit en UNIX) Terminación por error. Por ejemplo gcc uno.c y el fichero uno.c no existe. Error fatal. Acceso a una posición no permitida, división por cero … etc. Terminado por otro proceso. En UNIX es KILL.  Cambiar la prioridad del proceso.  Dormir o bloquear la ejecución de un proceso. Dormir un proceso un tiempo.  Despertar un proceso. Una forma de desbloquear un proceso de forma artificial. Se suele emplear para procesos dormidos artificialmente.  Suspender un proceso. Suele hacerse en situaciones de sobrecarga del S.O.  Reanudar un proceso. Activar un proceso suspendido.
  14. 14. Planificación de los Procesos La Planificación hace referencia a un conjunto políticas y mecanismos incorporados al sistema operativo que gobiernan el orden en que deben ser ejecutados los trabajos que deben cumplimentarse por el sistema operativo. El Objetivo de la planificación es optimizar el rendimiento del sistema. Nombraremos tres grandes grupos relacionado con la filosofía del sistema: Planificación en sistemas con un Procesador , Multiprocesador y Tiempo real; identificando en cada caso sus componentes, sus finalidades y funciones. La planificación hace referencia a un conjunto de políticas y mecanismos incorporados al “SO” que gobiernan el orden en que se ejecutan los trabajos que deben ser completados por el sistema informático. Un planificador es un módulo del sistema operativo que selecciona el siguiente trabajo y el siguiente proceso que tomara el control sobre el procesador entre las medidas de rendimiento y los criterios de optimización mas habituales que los planificadores utilizan los siguientes criterios:
  15. 15. Planificación de los Procesos  UTILIZACIÓN DEL PROCESADOR : La utilización del procesador es la fracción de tiempo durante la cual el procesador se encuentre activo ejecutando algún proceso, bien de usuario, bien del “SO”. Con esta interpretación, la utilización del procesador puede ser medida con la relativa facilidad que se ejecute cuando ningún otro proceso pueda hacerlo. Una alternativa es considerar únicamente la operación en modo usuario y por lo cual excluir el tiempo empleado para el “SO”.  PRODUCTIVIDAD: La productividad se refiere a la cantidad de trabajo completada por mitad de tiempo. Un modo de expresarla es definiéndola como el numero de trabajos de usuario ejecutados por una unidad de tiempo. Cuando mayor sea este numero, más trabajo aparentemente esta siendo ejecutado por el sistema.
  16. 16. Comunicación y Sincronización entre los Procesos La comunicación entre procesos: necesaria si se desea que varios procesos puedan colaborar para realizar una misma tarea. Sincronización === funcionamiento coordinado en la resolución de una tarea encomendada. El SO ofrece mecanismos básicos de comunicación, que permiten transferir cadenas de bytes. Deben ser los procesos que se comunican quienes interpreten el significado de las cadenas transferidas para su labor coordinada. Los mecanismos de comunicación y sincronización son dinámicos. Es decir, cuando se necesita un mecanismo de este estilo, se crea, usa y destruye, de forma que no se establezca de forma definitiva ningún mecanismo de comunicación, ya que ellos podrían producir efectos indeseados. Es decir, la comunicación es algo puntual.
  17. 17. Comunicación y Sincronización entre los Procesos  Los servicios básicos de comunicación son:  Crear: el proceso solicita la creación del mecanismo.  Enviar o escribir: el proceso emisor envía información al proceso.  Receptor recibir o leer: el proceso receptor recibe información.  Destruir: el proceso solicita la destrucción del mecanismo de comunicación.  La comunicación puede ser síncrona y asíncrona:  Síncrona: los dos procesos han de ejecutar servicios de forma simultánea. El emisor ha de ejecutar el servicio enviar mientras el receptor ejecuta recibir.  Asíncrona: el emisor hace el envío y prosigue su ejecución. El SO ofrece un almacenamiento intermedio para guardar la información enviada, hasta que el receptor la solicite.
  18. 18. Procesos Concurrentes En computación la concurrencia es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí. Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si sólo existe un procesador encargado de ejecutar los procesos concurrentes, simulando la concurrencia, ocupándose de forma alternada en uno y otro proceso a pequeñísimos intervalos de tiempo. De esta manera simula que se están ejecutando a la vez. Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros también en ejecución, el número de caminos en ejecución puede ser extremadamente grande, resultando sumamente complejo. Las dificultades asociadas a la concurrencia han sido pensadas para el desarrollo de lenguajes de programación y conceptos que permitan hacer la concurrencia más manejable.
  19. 19. Procesos Concurrentes Dos o mas procesos, se dice que son concurrentes o paralelos, cuando se ejecutan al mismo tiempo. Esta concurrencia puede darse en un sistema con un solo procesador (seudo paralelismo) o en un sistema multiprocesador (paralelismo real).Para que la concurrencia exista entre dos procesos, es necesario que estos tengan algún tipo de relación. La concurrencia puede presentarse en tres contextos:  Varias aplicaciones: La multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varios trabajos o aplicaciones activas.  Aplicaciones estructuradas: Como ampliación de los principios del diseño modular y la programación estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes.  Estructura del sistema operativo: Las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos.
  20. 20. Procesos Concurrentes  Razones para la ejecución de procesos concurrentes en un sistema: Facilita la programación de aplicaciones al permitir que éstas se estructuren como un conjunto de procesos que cooperan entre sí para alcanzar un objetivo común. Acelera los cálculos. Si se quiere que una tarea se ejecute con mayor rapidez, lo que se puede hacer es dividirla en procesos, cada uno de los cuales se ejecuta en paralelo con losdemás. Posibilita el uso interactivo a múltiples usuarios que trabajan de forma simultánea. Permite un mejor aprovechamiento de los recursos, en especial de la CPU, ya que pueden aprovechar las fases de entrada-salida de unos procesos para realizar las fases de procesamiento de otros.  Desventajas de la concurrencia de procesos: Inanición e interrupción de procesos Ocurrencia de bloqueos Que dos o mas procesos requieran el mismo recurso (No apropiativo)
  21. 21. Definición de Interrupciones
  22. 22. Definición de Interrupciones Una interrupción es un mecanismo que permite ejecutar un bloque de instrucciones interrumpiendo la ejecución de un programa, y luego restablecer la ejecución del mismo sin afectarlo directamente. De este modo un programa puede ser interrumpido temporalmente para atender alguna necesidad urgente del computador y luego continuar su ejecución como si nada hubiera pasado. Una interrupción es una operación que suspende la ejecución de un programa de modo que el sistema pueda realizar una acción especial. La rutina de interrupción ejecuta y por lo regular regresa el control al procedimiento que fue interrumpido, el cual entonces reasume su ejecución.
  23. 23. Tipos de Interrupciones  Interrupciones internas de hardware Las interrupciones internas son generadas por ciertos eventos que surgen durante la ejecución de un programa. Este tipo de interrupciones son manejadas en su totalidad por el hardware y no es posible modificarlas. Aunque no podemos manejar directamente esta interrupción (no podemos controlar por software las actualizaciones del reloj), es posible utilizar sus efectos en la computadora para nuestro beneficio, por ejemplo para crear un "reloj virtual" actualizado continuamente gracias al contador del reloj interno. Únicamente debemos escribir un programa que lea el valor actual del contador y lo traduzca a un formato entendible para el usuario.
  24. 24. Tipos de Interrupciones  Interrupciones externas de hardware Las interrupciones externas las generan los dispositivos perifericos, como pueden ser: teclado, impresoras, tarjetas de comunicaciones, etc. También son generadas por los coprocesadores. No es posible desactivar a las interrupciones externas. Estas interrupciones no son enviadas directamente a la UCP, sino que se mandan a un circuito integrado cuya función es exclusivamente manejar este tipo de interrupciones. El circuito, llamado PIC 8259A, si es controlado por la UCP utilizando para tal control una serie de vias de comunicación llamadas puertos.
  25. 25. Tipos de Interrupciones  Interrupciones externas de software Los procesadores Intel de la gama x86 y compatibles, disponen de una instrucción INT que permite generar por software cualquiera de los 256 tipos de interrupción anteriormente descritos. El proceso seguido es exactamente el mismo que si se recibe una interrupción hardware en la patilla INTR, salvo que en este caso se conoce el tipo de interrupción, y no se requiere ningún ciclo INTA. Este tipo de interrupciones son de prioridad más alta que las de hardware (enmascarables y no enmascarables), de forma que si se recibe una interrupción hardware mientras que se ejecuta una software, esta última tiene prioridad.
  26. 26. Tipos de Interrupciones  Funciones de la Bios Las funciones de la BIOS se invocan, desde los programas de usuario, ejecutando una interrupción software con un cierto valor inicial en los registros. La BIOS emplea un cierto rango de interrupciones, cada una encargada de una tarea específica: * INT 10h: Servicios de Vídeo (texto y gráficos). * INT 11h: Informe sobre la configuración del equipo. * INT 12h: Informe sobre el tamaño de la memoria convencional. * INT 13h: Servicios de disco (muy elementales: pistas, sectores, etc.). * INT 14h: Comunicaciones en serie. * INT 15h: Funciones casette (PC) y servicios especiales del sistema (AT). * INT 16h: Servicios de teclado. * INT 17h: Servicios de impresora. * INT 18h: Llamar a la ROM del BASIC (sólo máquinas IBM). * INT 19h: Reinicialización del sistema. * INT 1Ah: Servicios horarios. * INT 1Fh: Apunta a la tabla de los caracteres ASCII 128-255 (8x8 puntos).
  27. 27. Tipos de Interrupciones  Funciones del Dos El DOS emplea varias interrupciones, al igual que la BIOS; sin embargo, cuando se habla de funciones del DOS, todo el mundo sobreentiende que se trata de llamar a la INT 21h, la interrupción más importante con diferencia. * INT 20h: Terminar programa (tal vez en desuso). * INT 21h: Servicios del DOS. * INT 22h: Control de finalización de programas. * INT 23h: Tratamiento de Ctrl-C. * INT 24h: Tratamiento de errores críticos. * INT 25h: Lectura absoluta de disco (sectores lógicos). * INT 26h: Escritura absoluta en disco (sectores lógicos). * INT 27h: Terminar dejando residente el programa (en desuso). * INT 28h: Idle (ejecutada cuando el ordenador está inactivo). * INT 29h: Impresión rápida en pantalla (no tanto). * INT 2Ah: Red local MS NET. * INT 2Bh-2Dh: Uso interno del DOS. * INT 2Eh: Procesos Batch. * INT 2Fh: Interrupción Multiplex. INT 30h-31h: Compatibilidad CP/M-80. INT 32h: Reservada.

×