Procesos y Threads en Windows (Xp y Server 2003)



Documentos relacionados
Mecanismos básicos en en Windows (XP, 7) 7)

Mecanismos básicos en Windows (XP, Server 2003)

Sistemas Operativos. Curso 2016 Procesos

Sistemas Operativos. Curso 2014 Planificación

Sistemas Operativos. Curso 2015 Planificación

Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1

2. Sistema Operativo Windows

Gestión de procesos DEFINICIONES DE PROCESOS

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

Introducción a los Sistemas Operativos

Roberto Gómez Cárdenas ITESM-CEM

Taller de sistemas operativos PLANIFICADOR

Requerimientos Principales de un Sistema Operativo. Descripción y Control de Procesos. Proceso

PLANIFICACIÓN DE PROCESOS

PROGRAMACION CONCURRENTE. I.2 Recursos para la concurrencia.

Windows (XP) Boot Process

Sistemas Operativos Tema 6. Planificación de procesos José Miguel Santos Alexis Quesada Francisco Santana

Fundamentos de Sistemas Operativos

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Concurrencia. Primitivas IPC con bloqueo

Implementando NAT64 / DNS64

Unidad 2: Gestión de Procesos

Bienvenido a CitiDirect BE GUÍA PARA EL ADMINISTRADOR DEL SISTEMA

Requerimientos principales de un sistema operativo

Capítulo 1 Introducción a la Computación

RSLOGIX 500 (MANEJO BASICO)

Procesos. Bibliografía. Threads y procesos. Definiciones

Usando HADES Parte 1. Contenido Introducción Instalación Ejecución Menú contextual El primer circuito 5

Procesos. Planificación del Procesador.

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución

CDI Exclusión mutua a nivel alto. conceptos

Comisión Nacional de Bancos y Seguros

2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación.

Unidad 1: Conceptos generales de Sistemas Operativos.

INSTALACIÓN DE MySQL Índice de contenido

SEPARAR Y ADJUNTAR UNA BASE DE DATOS. Separar una base de datos

Procesos 1 / 31. Para entender el concepto de hebra, necesitamos compreender el concepto de proceso

MANUAL DE E-IBS IMAGENES Y FORMULARIOS

Tema 1. Conceptos fundamentales de los Sistemas Operativos

Guía rápida para la configuración del Usuario Único

Acronis License Server. Guía del usuario

Conociendo el ambiente de programación de Java. M. en C. Erika Vilches

1. Sistema Operativo Unix

Lista de verificación de Antes de registrarse en Quantum View Outbound

El presente manual le servirá para la participación de las subastas Lotes Parciales Limitados

Tema 2: Implementación del núcleo de un Sistema Operativo

Capacitación VMS Herramientas. Seguridad Integral, Detección, Limpieza y Reparación Total

OCFS (Oracle Cluster File System)

Introducción a los Sistemas Operativos

ZILOG DEVELOPER STUDIO

CAPÍTULO HTML Y DHCP DE H0/H2-ECOM100 CONFIGURACIÓN. En este capítulo...

Microsoft Virtual Server

Estructura del Sistema Operativo. Módulo 2. Estructuras de Sistemas Operativos

Q-flow 3.1: Instalación Express

INSTALACIÓN DE GOLDMINE PREMIUM PASO A PASO CREACIÓN DE UNA NUEVA BASE DE DATOS EN GOLDMINE PREMIUM PASO A PASO

CAPITULO IV CONCLUSIONES Y RECOMENDACIONES

Scheduling. Ricardo Corin

Xerox 700 Digital Color Press con Integrated Fiery Color Server. Impresión de datos variables

MICROSOFT SQL SERVER 2008 Instalación de Microsoft SQL Server 2008 R2

"Módulo OOWS para StarUML" INTRODUCCIÓN

Manual de Instalación

Capítulo 6 Introducción a los Sistemas Operativos de Redes (NOS)

Copia de Seguridad en windows

Tema 6. Gestión de la memoria

Tema 11. Soporte del Sistema Operativo REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS MULTIPROGRAMACIÓN.

CAPÍTULO 3 VISUAL BASIC

Redes II Universidad Nacional de Jujuy Facultad de Ingeniería Carrera: APU 2008

PROYECTO FINAL Manual de Configuración Organización: Juan Lomo

INCIDENCIAS ENTRE LOS SISTEMAS HIS, GSIR Y PACS.

UNIVERSIDAD TÉCNICA DEL NORTE

MONITORING WINDOWS WITH NETCRUNCH 7 P A G E 1

Servicio de Notificaciones Electrónicas y Dirección Electrónica Habilitada

Guía de instalación de COMPRESS

Manual ServiGuard. 5. Configuración de Cámaras. 5.1 Cámaras Axis 2100 y 2110

GUÍA DE INSTALACIÓN DEL PROVEEDOR DE DISPOSITIVOS

En principio, comenzaremos a esbozar el menú principal que nos muestra el DVR, tal como se muestra a continuación:

Terminal de Información al Cliente

Guía rápida UDM. UDM (Unified Device Manager) 04/04/2011. ipecs-udm. Guía básica de usuario. Departamento Técnico Datalux Spain S.A.

TUTORIAL PARA CREAR UN SERVIDOR FTP

SERVICIO NACIONAL DE APRENDIZAJE- SENA PROCESO RELACIONAMIENTO EMPRESARIAL Y GESTION DEL CLIENTE

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

SEGURIDAD Y PROTECCION DE FICHEROS

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas:

MANUAL DE INSTALACIÓN. Versión para Windows

LOS SERVIDORES VIRTU ALES

II. Relación con Terceros

Windows NT. Desdoble del sistema operativo Windows: Sucesor de Windows NT 3.51 Hereda el interfaz de usuario (GUI) de Win95 Versiones:

Sistemas Operativos. Tema 1. Arquitectura Básica de los Computadores

Los requerimientos del sistema para GFI EndPointSecurity, son los siguientes:


Transcripción:

Lic. Ing. Osvaldo Clúa 2008 Facultad de Ingeniería Universidad de Buenos Aires Procesos y Threads en Windows (Xp y Server 2003)

EPROCESS Executive Process (bloque de control) Es la representación de un proceso para Windows. Son varias estructuras relacionadas. Threads EPROCESS, System Space KPROCESS W32PROCESS PEB Process Environment Block User Space Th1 Th2 2

Detalle del EPROCESS y del PEB Kernel Process Block (or PCB) Process ID Parent Process ID Exit Status Create and Exit Time Next Process Block Quota Block Memory Management Information Exception Port Debugger Port Process Environment Block Image File Name Image Base Address Process Priority Class EPROCESS Primary Access Token Handle Table Win32 Process Block Image base address Module list Thread-local storage data Code page data Critical section time-out Number of heaps Heap size info GDI shared handle table OS version no info Image version info Image process affinity mask Process heap 3

Flujo de CreateProcess Abrir el archivo imagen (.exe). Crear el proceso. Crear el thread inicial. Notificar al Windows Susbsystem. Termina la inicialización del thread (Carga de DLLs, etc). Comenzar la ejecución del programa. 4

Abrir el archivo imagen Definir la prioridad con la que se va a crear el proceso. Asociar el proceso a un Desktop. Verificar las políticas de seguridad (si el usuario tiene permitido correr esa imagen) Asociar el proceso con un subsistema (Win16, Win32, WoW, DOS) Invocar la imagen correspondiente si no es la nativa. Si hay un intérprete predefinido en el Registry (un debugger o un Just in Time Compiler), invocarlo. 5

Crear el Proceso Preparar el bloque EPROCESS. Preparar el espacio inicial de direcciones. Crear el bloque KPROCESS Mapea los recursos del executive al espacio de direcciones (Ntdll.dll, Nat. Language, etc). Prepara el PEB. Encadena el EPROCESS (aunque todavía no puede ejecutar). 6

Crear el Thread Inicial Incrementa la thread count del proceso. Prepara un Executive Thread Block (ETHREAD) y le asigna un id. Prepara un Thread Environment Block (TEB) Mapea la dirección de comienzo. Inicializa prioridades y características que dependen del sistema (afinidad, seguridad) 7

Notificar al Subsistema (Windows en este ejemplo) Crea las estructuras para que CRSS lo maneje. Prepara el bloque W32PROCESS. Muestra el cursor de starting por 7 segundos. Si el proceso no crea una ventana, vuelve al cursor original. 8

Pasos finales Inicializa el Heap y demás estructuras de runtime. Carga las DLLs necesarias... y las inicializa llamando a su entry-point DLL_PROCESS_ATTACH. si es.net interpreta los XML asociados a las DLL (o assemblies). Prepara un Asynchronous Process Call (APC) para comenzar la ejecución. 9

ETHTREAD ETHREAD KTHREAD KTHREAD Create & Exit times Process ID Start Address Impersonation LPC Timer Eprocess Access Token I/O Pending Dispatcher Time User Time Kernel Time Thread Schduling Info Pending APC Stack Local Storage Thread Environment Block System Mode User Mode 10

CreateThread Función Win32 en Kernel32.dll. Crea el stack e inicializa el contexto. Inicializa ETHREAD. Deja al thread en ready. Al resumir la ejecución Ejecuta los Pasos Finales de la creación de un proceso. 11

Usando el Process Explorer para ver la actividad de un Thread (Totalcmd.exe) 12

Estados de un Thread Init (0) preempt Standby (3) preemption, quantum end Ready (1) Running (2) Transition (6) voluntary switch Waiting (5) wait resolved after kernel stack made pageable Ready = thread eligible to be scheduled to run Standby = thread is selected to run on CPU Terminate (4) 13

Algunos estados del diagrama Standby esperando por un determinado procesador Solo un thread por procesador puede estar en standby. Waiting a la espera de algún evento. Transition Ready pero sus estructuras no están en memoria. 14

El Scheduler Está repartido por el Kernel. Colectivamente se lo conoce como Dispatcher. Utiliza Prioridades. Los threads corren por un quantum de tiempo. Es apropiativo (preemptive). Trabaja a nivel de threads sin tener en cuenta al proceso 15

El Quantum Su valor es 3* ticks de reloj con cada tick se decrementa en 3 si el thread esta running y en 1 si esta waiting. 6 para el Workstation, 36 para el Server. Se puede ajustar entre ciertos límites. Interactúa con la prioridad. 16

Eligiendo un Quantum 17

Idle Thread Tambien conocido como Idle Process, System Process o Idle. Se lo activa cuando no hay threads listos para ejecutarse Verifica y termina los DPC (Defered Procedure Call) que hubiera. Habilita interrupciones Depués de un tiempo llama a las rutinas de ahorro de energía. 18

Multiprocesadores Cualquier thread corre en cualquier CPU (a menos que se especifique affinity) Se trata de mantenerlos en la misma CPU (soft affinity). No hay un Master Processor. A partir de 2003 hay una cola ready por CPU y se tiene en cuenta NUMA. 19