Sistemas Operativos

Páginas: 6 (1313 palabras) Publicado: 5 de febrero de 2013
Taller de Sistemas Operativos
Procesos 2012

Agenda
• Introducción • PCB (task_struct) • Agrupaciones de procesos • Estado de un proceso • Cambio de proceso (task switch) • Creación y destrucción de un proceso • Threads

TSO – Procesos – 2012

Introducción
• Un proceso es un programa en ejecución • Es una de las abstracciones fundamentales en un sistema Unix • Incluye un conjunto derecursos como archivos abiertos, señales pendientes, espacio de memoria y uno o más hilos de ejecución • Cada hilo de ejecución tiene su propio stack y program counter • Veremos que para Linux un thread es solo un tipo particular de proceso

TSO – Procesos – 2012

Introducción
• Identidad de los procesos:
− −

Process ID (PID) Credenciales (UID, GID) Argumentos Entorno (lista conNOMBRE=VALOR) Se guardan al principio del stack del proceso y se heredan en un fork

• Entorno de ejecución
− − −

• En el código del kernel de Linux se les llama tasks

TSO – Procesos – 2012

Introducción
• Contexto de los procesos
− − − − − −

Contexto de planificación: copia de los registros, prioridad, clase de planificación (más adelante) Recursos en uso y consumidos (accounting) Tablade archivos abiertos Contexto en el file system (working directory) Tabla de señales Contexto de memoria virtual (describe el espacio de memoria del proceso)

TSO – Procesos – 2012

PCB
• Es el struct task_struct • Es una estructura de cerca de 2 KB en una máquina de 32 bits • Se puede acceder rápidamente al task_struct del proceso actual mediante la macro current • Antes del kernel 2.6 seguardaba al final del stack del kernel de cada proceso • Ahora se crea dinámicamente por el slab allocator y en su lugar se guarda el struct thread_info al final del stack • El thread_info contiene un campo task que es un puntero al task_struct

TSO – Procesos – 2012

Current en x86

Fuente: Understanding the linux kernel, 3ra edición
TSO – Procesos – 2012

PCB

Fuente:Understanding the linux kernel, 3ra edición
TSO – Procesos – 2012

Agrupaciones de procesos
• Todas las listas son doblemente encadenadas con un encabezado (struct list_head) • Lista global de procesos • Listas de procesos listos • Jerarquía: parent, children, sibling • pid_hash: para encontrar un proceso a partir del PID • Listas de espera por eventos

TSO – Procesos – 2012

Agrupaciones deprocesos

Fuente: Understanding the linux kernel, 3ra edición
TSO – Procesos – 2012

list_head
• Es una implementación de listas doblemente encadenadas y circulares provista por el kernel • Puede contener elementos de cualquier tipo y funciona en todas las plataformas soportadas por el kernel • A diferencia de las listas comunes funciona agregando un elemento de tipo list_head a cualquier struct• Se pueden tener varios elementos de este tipo en el mismo struct para armar varias listas (como en task_struct) • El tipo es:
struct list_head { struct list_head *next; struct list_head *prev; }

TSO – Procesos – 2012

list_head
• Se proveen varias funciones para
− − −

Insertar al principio y al final Recorrer la lista Obtener y borrar elementos list_entry(elemento, struct lista,variable)

• Para obtener un elemento se usa la macro (#define)
− − −

elemento: es un puntero a un list_head struct lista: es el tipo de la lista variable: es el elemento de tipo list_head dentro del struct

• Se obtiene el puntero al struct a partir del puntero al list_head restando al puntero elemento el offset de variable dentro del struct

TSO – Procesos – 2012

Estado de unproceso
• El estado de un proceso está dado por el flag state del PCB • TASK_RUNNING


El proceso está corriendo o en una lista de espera por la CPU El proceso está bloqueado esperando por alguna condición. El proceso puede pasar a running si recibe una señal Igual que el anterior solo que no se despierta si recibe una señal. En general se usa menos que el otro.

• TASK_INTERRUPTIBLE


•...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Sistema Operativo Y Tipos De Sistemas Operativos
  • Atomicidad de operaciones
  • operaciones basicas del sistema operativo
  • Sistemas Operativos
  • Sistema operativo
  • Sistema operativo
  • Sistemas operativos
  • Sistema Operativo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS