Upload
john-alexander-vargas
View
125
Download
1
Embed Size (px)
DESCRIPTION
Clase inicial sobre procesos en sistemas operativos
Citation preview
Conceptos
Procesos
Sistemas Operativos
John A. Vargas
Facultad de Ingeniería
Universidad Cooperativa de Colombia
February 11, 2014
John A. Vargas Procesos
Conceptos
Contenido
1 ConceptosPresentaciónEvaluación
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Outline
1 ConceptosPresentaciónEvaluación
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Procesos
De�nition
Un proceso es un programa en ejecución
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Diferencias entre un programa y un proceso
Programa Proceso
Es estático Es dinámico
No tiene contador deprograma
Tiene un contador deprograma
Existe desde que se editahasta que se borra
Existe desde que se editahasta que se borra
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Llamadas al sistema ofrecidas por el sistema operativo
Finalizar, abortar
Cargar, ejecutar.
Crear proceso, terminar proceso
Obtener atributos de proceso, establecer atributos de proceso.
Esperar un lapso de tiempo.
Esperar suceso, indicar la ocurrencia del suceso.
Asignar y liberar memoria.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Estados del proceso
Nuevo (new).
Ejecutándose (running)
En espera (waiting)
Listo para ejecutar (ready)
Terminado (terminated)
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Diagrama de estados
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Bloque de control de procesos
Cada proceso se representa en el sistema operativo con un bloquede control de proceso (PCB, process control block) tambiénllamado bloque de control de tarea.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Bloque de control de procesos
Estado del proceso: El estado puede ser: nuevo, listo, enejecución, en espera, detenido, etcétera.
Contador de programa: El contador indica la dirección de lasiguiente instrucción que se ejecutará para este proceso.
Registros de CPU: El número y el tipo de los registros varíadependiendo de la arquitectura del computador. Los registrosincluyen acumuladores, registros índice, punteros de pila yregistros de propósito general, así como cualquier informaciónde códigos de condición que haya. Junto con el contador deprogram, esta información de estado se debe guardar cuandoocurre una interrupción, para que el proceso pueda continuarcorrectamente después.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Bloque de control de procesos
Estado del proceso: El estado puede ser: nuevo, listo, enejecución, en espera, detenido, etcétera.
Contador de programa: El contador indica la dirección de lasiguiente instrucción que se ejecutará para este proceso.
Registros de CPU: El número y el tipo de los registros varíadependiendo de la arquitectura del computador. Los registrosincluyen acumuladores, registros índice, punteros de pila yregistros de propósito general, así como cualquier informaciónde códigos de condición que haya. Junto con el contador deprogram, esta información de estado se debe guardar cuandoocurre una interrupción, para que el proceso pueda continuarcorrectamente después.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Bloque de control de procesos
Estado del proceso: El estado puede ser: nuevo, listo, enejecución, en espera, detenido, etcétera.
Contador de programa: El contador indica la dirección de lasiguiente instrucción que se ejecutará para este proceso.
Registros de CPU: El número y el tipo de los registros varíadependiendo de la arquitectura del computador. Los registrosincluyen acumuladores, registros índice, punteros de pila yregistros de propósito general, así como cualquier informaciónde códigos de condición que haya. Junto con el contador deprogram, esta información de estado se debe guardar cuandoocurre una interrupción, para que el proceso pueda continuarcorrectamente después.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Bloque de control de procesos
Información de plani�cación de CPU: Esta informaciónincluye una prioridad del proceso, punteros a colas deplani�cación y cualquier otro parámetro de plani�cación quehaya.
Información de gestión de memoria: Esta informaciónpuede incluir datos tales como el valor de los registros de basey límite, las tablas de páginas o las tablas de segmentos,dependiendo del sistema de memoria empleado por el sistemaoperativo.
Información contable: Esta información incluye la cantidadde tiempo de CPU y tiempo real consumida, límites de tiempo,números de cuenta, números de trabajo o proceso, y demás.
Información de estado de E/S: La información incluye lalista de dispositivos de E/S asignadas a este proceso, una listade archivos abiertos, etcétera.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Bloque de control de procesos
Información de plani�cación de CPU: Esta informaciónincluye una prioridad del proceso, punteros a colas deplani�cación y cualquier otro parámetro de plani�cación quehaya.
Información de gestión de memoria: Esta informaciónpuede incluir datos tales como el valor de los registros de basey límite, las tablas de páginas o las tablas de segmentos,dependiendo del sistema de memoria empleado por el sistemaoperativo.
Información contable: Esta información incluye la cantidadde tiempo de CPU y tiempo real consumida, límites de tiempo,números de cuenta, números de trabajo o proceso, y demás.
Información de estado de E/S: La información incluye lalista de dispositivos de E/S asignadas a este proceso, una listade archivos abiertos, etcétera.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Bloque de control de procesos
Información de plani�cación de CPU: Esta informaciónincluye una prioridad del proceso, punteros a colas deplani�cación y cualquier otro parámetro de plani�cación quehaya.
Información de gestión de memoria: Esta informaciónpuede incluir datos tales como el valor de los registros de basey límite, las tablas de páginas o las tablas de segmentos,dependiendo del sistema de memoria empleado por el sistemaoperativo.
Información contable: Esta información incluye la cantidadde tiempo de CPU y tiempo real consumida, límites de tiempo,números de cuenta, números de trabajo o proceso, y demás.
Información de estado de E/S: La información incluye lalista de dispositivos de E/S asignadas a este proceso, una listade archivos abiertos, etcétera.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Bloque de control de procesos
Información de plani�cación de CPU: Esta informaciónincluye una prioridad del proceso, punteros a colas deplani�cación y cualquier otro parámetro de plani�cación quehaya.
Información de gestión de memoria: Esta informaciónpuede incluir datos tales como el valor de los registros de basey límite, las tablas de páginas o las tablas de segmentos,dependiendo del sistema de memoria empleado por el sistemaoperativo.
Información contable: Esta información incluye la cantidadde tiempo de CPU y tiempo real consumida, límites de tiempo,números de cuenta, números de trabajo o proceso, y demás.
Información de estado de E/S: La información incluye lalista de dispositivos de E/S asignadas a este proceso, una listade archivos abiertos, etcétera.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Jerarquía de procesos
La secuencia de creación de procesos genera un árbol deprocesos.
Para referirse a las relaciones entre los procesos de la jerarquíase emplean los términos de padre, hermano o abuelo.
Cuando el proceso A solicita al sistema operativo que cree elproceso B, se dice que A es padre de B y que B es hijo de A.
Bajo esta óptica, la jerarquía de procesos puede considerarsecomo un árbol genealógico.
Algunos sistemas operativos, como Unix, mantienen de formaexplícita esta estructura jerárquica de procesos . un procesosabe quién es su padre -, mientras que otros sistemasoperativos como el Windows NT no la mantienen.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Jerarquía de procesos
La secuencia de creación de procesos genera un árbol deprocesos.
Para referirse a las relaciones entre los procesos de la jerarquíase emplean los términos de padre, hermano o abuelo.
Cuando el proceso A solicita al sistema operativo que cree elproceso B, se dice que A es padre de B y que B es hijo de A.
Bajo esta óptica, la jerarquía de procesos puede considerarsecomo un árbol genealógico.
Algunos sistemas operativos, como Unix, mantienen de formaexplícita esta estructura jerárquica de procesos . un procesosabe quién es su padre -, mientras que otros sistemasoperativos como el Windows NT no la mantienen.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Jerarquía de procesos
La secuencia de creación de procesos genera un árbol deprocesos.
Para referirse a las relaciones entre los procesos de la jerarquíase emplean los términos de padre, hermano o abuelo.
Cuando el proceso A solicita al sistema operativo que cree elproceso B, se dice que A es padre de B y que B es hijo de A.
Bajo esta óptica, la jerarquía de procesos puede considerarsecomo un árbol genealógico.
Algunos sistemas operativos, como Unix, mantienen de formaexplícita esta estructura jerárquica de procesos . un procesosabe quién es su padre -, mientras que otros sistemasoperativos como el Windows NT no la mantienen.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Plani�cador y activador
El plani�cador (scheduler) forma parte del núcleo del sistemaoperativo.
Entra en ejecución cada vez que se activa el sistema operativoy su misión es seleccionar el proceso que se ha de ejecutar acontinuación.
El activador (dispatcher) también forma parte del sistemaoperativo y su función es poner en ejecución el procesoseleccionado por el plani�cador.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Plani�cador y activador
El plani�cador (scheduler) forma parte del núcleo del sistemaoperativo.
Entra en ejecución cada vez que se activa el sistema operativoy su misión es seleccionar el proceso que se ha de ejecutar acontinuación.
El activador (dispatcher) también forma parte del sistemaoperativo y su función es poner en ejecución el procesoseleccionado por el plani�cador.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Plani�cador y activador
El plani�cador (scheduler) forma parte del núcleo del sistemaoperativo.
Entra en ejecución cada vez que se activa el sistema operativoy su misión es seleccionar el proceso que se ha de ejecutar acontinuación.
El activador (dispatcher) también forma parte del sistemaoperativo y su función es poner en ejecución el procesoseleccionado por el plani�cador.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Cambio de contexto
La activación del sistema operativo se realiza mediante elmecanismo de las interrupciones.
Cuando se produce una interrupción se realizan las dosoperaciones siguientes:
Se salva el estado del procesador en el correspondiente PCB.
Se pasa a ejecutar la rutina de tratamiento de interrupción delsistema operativo.
Llamaremos cambio de contexto (context switch) alconjunto de estas operaciones.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Cambio de contexto
La activación del sistema operativo se realiza mediante elmecanismo de las interrupciones.
Cuando se produce una interrupción se realizan las dosoperaciones siguientes:
Se salva el estado del procesador en el correspondiente PCB.
Se pasa a ejecutar la rutina de tratamiento de interrupción delsistema operativo.
Llamaremos cambio de contexto (context switch) alconjunto de estas operaciones.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Cambio de contexto
La activación del sistema operativo se realiza mediante elmecanismo de las interrupciones.
Cuando se produce una interrupción se realizan las dosoperaciones siguientes:
Se salva el estado del procesador en el correspondiente PCB.
Se pasa a ejecutar la rutina de tratamiento de interrupción delsistema operativo.
Llamaremos cambio de contexto (context switch) alconjunto de estas operaciones.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Procesos ligeros, hilos o thread
Un proceso ligero es un programa en ejecución (�ujo deejecución) que comparte la imagen de memoria y otrasinformaciones con otros procesos ligeros.
Un proceso puede contener un solo �ujo de ejecución, comoocurre en los procesos clásicos, o más de un �ujo de ejecución(procesos ligeros).
Desde el punto de vista de la programación, un proceso ligerose de�ne como una función cuya ejecución se puede lanzar enparalelo con otras.
El hilo de ejecución primario, o proceso ligero primario,corresponde a la función main.
Todos los procesos ligeros de un mismo proceso comparten elmismo espacio de direcciones de memoria, que incluye elcódigo, los datos y las pilas de los diferentes procesos ligeros.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Procesos ligeros, hilos o thread
Un proceso ligero es un programa en ejecución (�ujo deejecución) que comparte la imagen de memoria y otrasinformaciones con otros procesos ligeros.
Un proceso puede contener un solo �ujo de ejecución, comoocurre en los procesos clásicos, o más de un �ujo de ejecución(procesos ligeros).
Desde el punto de vista de la programación, un proceso ligerose de�ne como una función cuya ejecución se puede lanzar enparalelo con otras.
El hilo de ejecución primario, o proceso ligero primario,corresponde a la función main.
Todos los procesos ligeros de un mismo proceso comparten elmismo espacio de direcciones de memoria, que incluye elcódigo, los datos y las pilas de los diferentes procesos ligeros.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Procesos ligeros, hilos o thread
Un proceso ligero es un programa en ejecución (�ujo deejecución) que comparte la imagen de memoria y otrasinformaciones con otros procesos ligeros.
Un proceso puede contener un solo �ujo de ejecución, comoocurre en los procesos clásicos, o más de un �ujo de ejecución(procesos ligeros).
Desde el punto de vista de la programación, un proceso ligerose de�ne como una función cuya ejecución se puede lanzar enparalelo con otras.
El hilo de ejecución primario, o proceso ligero primario,corresponde a la función main.
Todos los procesos ligeros de un mismo proceso comparten elmismo espacio de direcciones de memoria, que incluye elcódigo, los datos y las pilas de los diferentes procesos ligeros.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Procesos ligeros, hilos o thread
Un proceso ligero es un programa en ejecución (�ujo deejecución) que comparte la imagen de memoria y otrasinformaciones con otros procesos ligeros.
Un proceso puede contener un solo �ujo de ejecución, comoocurre en los procesos clásicos, o más de un �ujo de ejecución(procesos ligeros).
Desde el punto de vista de la programación, un proceso ligerose de�ne como una función cuya ejecución se puede lanzar enparalelo con otras.
El hilo de ejecución primario, o proceso ligero primario,corresponde a la función main.
Todos los procesos ligeros de un mismo proceso comparten elmismo espacio de direcciones de memoria, que incluye elcódigo, los datos y las pilas de los diferentes procesos ligeros.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Procesos ligeros, hilos o thread
Un proceso ligero es un programa en ejecución (�ujo deejecución) que comparte la imagen de memoria y otrasinformaciones con otros procesos ligeros.
Un proceso puede contener un solo �ujo de ejecución, comoocurre en los procesos clásicos, o más de un �ujo de ejecución(procesos ligeros).
Desde el punto de vista de la programación, un proceso ligerose de�ne como una función cuya ejecución se puede lanzar enparalelo con otras.
El hilo de ejecución primario, o proceso ligero primario,corresponde a la función main.
Todos los procesos ligeros de un mismo proceso comparten elmismo espacio de direcciones de memoria, que incluye elcódigo, los datos y las pilas de los diferentes procesos ligeros.
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Outline
1 ConceptosPresentaciónEvaluación
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Práctica
listar los procesos del sistema operativo:
unix: ps
dos: tasklist
windows: taskmgr.exe
tasklist > liste.txt para obtener la salida en un archivo texto
tasklist /M nos indica las DLL utilizadas en cada proceso.
tasklist /SVC nos permite saber a que servicio correspondecada ejecutable presente en la memoria (si es un servicio).
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Creación de un proceso
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Piense y responda
Observe, que el proceso hijo es una copia del proceso padreen el instante en que éste solicita el servicio fork(). Estosigni�ca que los datos y la pila del proceso hijo son los quetiene el padre en ese instante de ejecución.
Piense y responda: ¾El proceso hijo empieza la ejecución delcódigo en su punto de inicio, o en la sentencia que estádespués del fork() ?
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Piense y responda
Observe, que el hijo no es totalmente idéntico al padre,algunos de los valores del BCP han de ser distintos.
Piense y responda: ¾cuáles deberían ser las diferencias másimportantes?
John A. Vargas Procesos
ConceptosPresentaciónEvaluación
Ejercicio
Crear un proceso que leerá por el terminal el nombre de unprograma (orden de Unix o Windows) y seguidamente loejecutará.
El programa a ejecutar no debe necesitar ningún parámetro (p.ej., ls, date, time, cd, pwd, ...).
No se debe de ejecutar un programa hasta que el anterior nohaya acabado. El proceso terminará cuando se introduzca lacadena �salir�.
John A. Vargas Procesos