Multitasca / Multiprocés

Post on 10-Apr-2015

99 views 6 download

description

Teoria de multitasca, multiprocés i threads a més d'utilitats de Windows i Linux

Transcript of Multitasca / Multiprocés

Multitasca / Multiprocés

Xavier Sala PujolarDesenvolupament de Funcions en el Sistema InformàticIES Cendrassos

Procés

Desenvolupament de Funcions en el Sistema Informàtic

Procés● Un procés és una instància d'una aplicació que

està essent executada per una computadora– Això implica que un programa és només una

col·lecció passiva d'instruccions

Desenvolupament de Funcions en el Sistema Informàtic

Procés● En general un procés consisteix en:

– Una còpia del codi executable

– Memòria (normalment virtual)

– Descriptors de recursos del sistema operatiu que el procés està fent servir

– Atributs de seguretat: propietari, operacions permeses, etc...

– Estat del processador (es copia al executar-se)

● La majoria d'aquesta informació es guarda en unes estructures de dades anomenades PCB (Process Control Blocks)

Threads

Desenvolupament de Funcions en el Sistema Informàtic

Threads (fils d'execució)● Un fil d'execució (thread en anglès) és una

característica dels sistemes operatius que permet a un procés executar diferents tasques al mateix temps

– També es coneixen com a “processos lleugers”

– Permeten simplificar el disseny d'aplicacions concurrents i millorar-ne el rendiment

– La creació d'un fil no copia les dades del creador sinó que els fills comparteixen les dades

– Els canvis de context permeten simular una execució concurrent dels threads

Desenvolupament de Funcions en el Sistema Informàtic

Threads● La majoria dels sistemes operatius moderns

suporten threads– De fet en Windows, és més fàcil crear threads

que processos

– En Linux hi ha la llibreria libpthread

$ ps axH | grep firefox 8227 ? S 0:00 /bin/sh /home/xxx/bin/firefox/firefox 8235 ? Sl 3:10 /home/xxx/bin/firefox/firefox-bin 8235 ? Sl 0:01 /home/xxx/bin/firefox/firefox-bin 8235 ? Sl 0:05 /home/xxx/bin/firefox/firefox-bin 8235 ? Sl 0:00 /home/xxx/bin/firefox/firefox-bin 8235 ? Sl 0:00 /home/xxx/bin/firefox/firefox-bin 8235 ? Sl 0:00 /home/xxx/bin/firefox/firefox-bin 8235 ? Sl 0:05 /home/xxx/bin/firefox/firefox-bin 8235 ? Sl 0:00 /home/xxx/bin/firefox/firefox-bin 13567 pts/0 S+ 0:00 grep firefox

Concurrència

Desenvolupament de Funcions en el Sistema Informàtic

Sistemes operatius● Al principi els sistemes operatius eren

monoprocés però actualment la majoria dels sistemes són concurrents

● Concurrència: Propietat de que els sistemes que permeten que múltiples processos siguin executats alhora i que puguin interactuar entre ells

Podem obtenir concurrència en sistemes que suportin:

– Multiprocés

– Multitasca

Desenvolupament de Funcions en el Sistema Informàtic

Multitasca● Diferents processos comparteixen una sola

CPU– En un instant determinat només hi ha una

instrucció executant-se

● S'intenta aconseguir la sensació de tenir diferents tasques alhora en marxa

● La majoria dels sistemes operatius moderns ofereixen multitasca tot i que inicialment van ser monotasca

● Podem tenir multitasca a nivell de procés o a nivell de thread

Desenvolupament de Funcions en el Sistema Informàtic

Multitasca

Desenvolupament de Funcions en el Sistema Informàtic

Multitasca

Desenvolupament de Funcions en el Sistema Informàtic

Multitasca

Desenvolupament de Funcions en el Sistema Informàtic

Multitasca

Desenvolupament de Funcions en el Sistema Informàtic

Multiprocés● S'executen diversos processos alhora en

diferents processadors– En un instant determinat hi poden haver tantes

instruccions executant-se alhora com processadors tinguem

● Normalment també són alhora sistemes multitasca

● Hi ha diferents tipus de multiprocés però el més corrent actualment és el multiprocessament simètric (SMP)

Desenvolupament de Funcions en el Sistema Informàtic

Multiprocés

Desenvolupament de Funcions en el Sistema Informàtic

Canvi de context● El canvi de context es produeix quan una tasca

és suspesa i se'n comença una altra

● El canvi de context de processos és una tasca costosa:

– S'ha de substituir tot l'espai d'adreces

● En threads és menys costós

Desenvolupament de Funcions en el Sistema Informàtic

Comunicació● La multitasca o el multiprocés han de

col·laborar per oferir algun avantatge● Per això és essencial que es puguin comunicar● Bàsicament hi ha dues formes de comunicar:

– Missatges directes o a través del nucli● La comunicació es produeix enviant i rebent

paquets d'informació o fluxos de dades

– Memòria compartida● La comunicació es produeix utilitzant variables

comunes. ● És molt eficient però produeix condicions de

carrera

Problemes

Desenvolupament de Funcions en el Sistema Informàtic

Problemes● Però la programació concurrent també ens

afegeix problemes nous que no teníem en programació monoprocés

● L'execució concurrent ens pot portar a incorreccions com

– Condicions de carrera

– Deadlock

– Livelock

– Starvation (inanició)

● Un programa és correcte pot tenir problemes al executar-se concurrentment

Desenvolupament de Funcions en el Sistema Informàtic

Condicions de carrera● Quan l'execució d'un conjunt d'operacions

concurrents sobre una variable compartida la variable pren valors incorrectes

● Succeeix quan es produeix un canvi de context en el moment inoportú

● Generalment la solució ve evitant l'accés simultani a les dades crítiques (monitors, semàfors, mutex, tipus protegits, ...)

● És molt difícil de detectar

Desenvolupament de Funcions en el Sistema Informàtic

Condicions de carrera● Tenim dos programes que executats per

separat no donarien cap problema

Desenvolupament de Funcions en el Sistema Informàtic

Condicions de carrera● Primer s'executa el de l'esquerra i carrega el

valor de A de la memòria:

Desenvolupament de Funcions en el Sistema Informàtic

Condicions de carrera● Abans de poder fer res es produeix un canvi de

context i passem a executar el de la dreta...

Desenvolupament de Funcions en el Sistema Informàtic

Condicions de carrera● Després de carregar la variable la decrementa

segons la següent instrucció

Desenvolupament de Funcions en el Sistema Informàtic

Condicions de carrera● Torna a executar-se el programa de la esquerra

que incrementa el valor de A

Desenvolupament de Funcions en el Sistema Informàtic

Condicions de carrera● Torna a posar el valor de A a memòria i s'acaba

la execució

Desenvolupament de Funcions en el Sistema Informàtic

Condicions de carrera● Continua el de la dreta posant el valor que té

calculat de A a memòria...

Desenvolupament de Funcions en el Sistema Informàtic

Condicions de carrera● El resultat final és un valor invàlid de la variable

A! 5 + 1 – 1 = 4?

Desenvolupament de Funcions en el Sistema Informàtic

Deadlock (abraçada mortal)● Bloqueig permanent d'un conjunt de processos

que competeixen pels recursos del sistema o es comuniquen entre ells

Desenvolupament de Funcions en el Sistema Informàtic

Deadlock (abraçada mortal)● Bloqueig permanent d'un conjunt de processos

que competeixen pels recursos del sistema o es comuniquen entre ells

Desenvolupament de Funcions en el Sistema Informàtic

Deadlock (abraçada mortal)● Bloqueig permanent d'un conjunt de processos

que competeixen pels recursos del sistema o es comuniquen entre ells

Desenvolupament de Funcions en el Sistema Informàtic

Deadlock (abraçada mortal)● Bloqueig permanent d'un conjunt de processos

que competeixen pels recursos del sistema o es comuniquen entre ells

Desenvolupament de Funcions en el Sistema Informàtic

Livelock● Un livelock és semblant a una abraçada mortal

però on l'estat dels processos canvia constantment

● Es fàcil que es produeixi quan s'intenta evitar el deathlock

● Semblant a quan dues persones intenten deixar passar a l'altra en un passadís i van cap al mateix costat

Desenvolupament de Funcions en el Sistema Informàtic

Livelock

Desenvolupament de Funcions en el Sistema Informàtic

Livelock

Desenvolupament de Funcions en el Sistema Informàtic

Livelock

Desenvolupament de Funcions en el Sistema Informàtic

Livelock

Desenvolupament de Funcions en el Sistema Informàtic

Starvation (inanició)● Es produeix quan a un procés se li impedeix

sempre l'accés a un recurs● Els processos bloquejants no tenen perquè

estar en un punt mort● Pot provocar que els processos de més prioritat

s'executin sempre i els de baixa prioritat mai● També els processos d'alta prioritat poden

quedar amb starvation si algun espera el resultat d'un procés de baixa prioritat

Desenvolupament de Funcions en el Sistema Informàtic

Starvation

Desenvolupament de Funcions en el Sistema Informàtic

Starvation

Desenvolupament de Funcions en el Sistema Informàtic

Starvation

Multitasca en Linux

Desenvolupament de Funcions en el Sistema Informàtic

Processos Linux● Linux és un sistema que fa servir el concepte

de “temps compartit” per simular la multitasca– El temps de CPU es divideix en “slices”

● D'entre els objectius del planificador hi ha:– Temps de resposta ràpid

– Ample de banda prou bo pels processos en background

– Evitar la inanició de processos (starvation)

– Complir amb les necessitats dels processos de prioritat alta i baixa

Desenvolupament de Funcions en el Sistema Informàtic

Processos Linux● La prioritat és un dels factors que determina

quin procés ha de ser executat (32● La prioritat dels processos és dinàmica:

– Als processos que fa estona que no accedeixen a la CPU se'ls incrementa la prioritat i a l'inrevés

● Els processos de Linux són preemptius● Es guarda una estructura de directoris en el

directory /proc amb informació dels processos en execució

Desenvolupament de Funcions en el Sistema Informàtic

Estats d'un procés

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● Podem saber quins processos tenim en

execució en un sistema amb la comanda: ps– Tots els processos: ps -eF o ps ax

– Arbre de processos: ps -eH o ps axf

$ ps ax PID TTY STAT TIME COMMAND 1 ? Ss 0:00 /sbin/init 2 ? S< 0:00 [kthreadd] 3 ? S< 0:00 [migration/0] ...

$ ps axf PID TTY STAT TIME COMMAND 2 ? S< 0:00 [kthreadd] 3 ? S< 0:00 \_ [migration/0] 4 ? S< 0:00 \_ [ksoftirqd/0] 5 ? S< 0:00 \_ [watchdog/0]...

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● pidof: Ens dóna el PID d'un procés en

execució

● top i htop: Estat dels processos en temps real

$ pidof gnome-terminal12925

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● kill: permet enviar senyals (signals) als

processos. – El senyal per defecte és matar el procés

(CTRL+C)

– Però podem enviar-ne qualsevol (kill -l per veure'ls

● killall: permet enviar un signal a totes les instàncies d'un programa (killall squid)o als processos d'un usuari (killall -U pepet)

$ ps ax | grep firefox 2784 ? S 0:00 /bin/sh /home/xavier/bin/firefox/firefox$ kill 2784$ ps ax | grep firefox

$ kill -SIGKILL 2784

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● nice / renice: Canviar la prioritat d'un procés

– Zero: prioritat normal

– Valors negatius: més prioritat (min -20)

– Valors positius: menys prioritat (max 19)

– Només podem canviar la prioritat dels processos en execució amb renice.

$ ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1000 6432 6226 0 80 0 - 1661 wait pts/1 00:00:00 bash$ nice -n 5 yes$ ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1000 6432 6226 0 80 5 - 1661 write_ pts/1 00:00:00 yes$ renice -5 6432$ ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 1000 6432 6226 0 80 -5 - 1661 write_ pts/1 00:00:00 yes

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● strace: Serveix per saber què està fent un

procés en un moment determinat

● ltrace: Permet veure les crides a llibreries que fa un programa

$ ps -e | grep bash 9747 ? 00:00:04 bash$ strace -p 9747Process 9747 attached - interrupt to quitread(0, "a", 1) = 1rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0write(2, "a", 1) = 1rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0read(0,

$ ps -e | grep bash 9747 ? 00:00:04 bash$ strace -p 9747Process 9747 attached - interrupt to quitread(0, "a", 1) = 1rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0write(2, "a", 1) = 1rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0read(0,

$ ltrace ./gen-ipv6__libc_start_main(0x8048564, 1, 0xbfda9c04, 0x8048620, 0x8048610 <unfinished ...>rand(0x362304, 0x361ff4, 0x8048620, 0xbfda9b58, 0x251345) = 0x6b8b4567printf("%d", 1) = 1

$ ps -e | grep bash 9747 ? 00:00:04 bash$ strace -p 9747Process 9747 attached - interrupt to quitread(0, "a", 1) = 1rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0write(2, "a", 1) = 1rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0read(0,

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● &: Porta a la tasca a un segon pla (CTRL+Z)

● Les tasques en segon pla es veuen amb jobs

● fg: torna els processos a primer pla

Per defecte el que té el signe +

$ jobs[1]- Aturat ./programa1 &[2]+ Aturat yes >/dev/null &

$ ./programa1 &[1] 12972$ yes > /dev/null &[1] 12976

$ fg %1./programa1

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● nohup / dissow: Permeten la execució d'un

procés lliure de l'associació amb el pare– Si el pare mor la tasca no es morirà

– Perfecte per acabar tasques en sistemes remots

– Com diu la comanda guarda les sortides per pantalla al fitxer nohup.out

● Amb bash podem fer el mateix amb dissow

$ nohup firefoxnohup: es descarta l’entrada i s’afegeix l’eixida a «nohup.out»$

$ dissow -h 2345

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● fuser: saber quin procés està fent servir un

dispositiu o un socket

● Interessant per saber quan un programa està bloquejat perquè passa

● Executant-ho com a usuari pot ser que no doni cap valor

$ sudo fuser /dev/nvidia0/dev/nvidia0: 1128m 2574m 2580 2581$ ps 2580 2581 PID TTY STAT TIME COMMAND 2580 ? Ss 0:00 /bin/sh -c /usr/bin/compiz-decorator 2581 ? S 0:10 /usr/bin/gtk-window-decorator

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● Podem controlar en quin moment s'executarà

un programa amb:– at, atq, atrm: Permeten executar un programa

en una hora determinada

– batch: Permet que el programa s'executi només quan la càrrega del sistema sigui inferior a un valor determinat

– cron: Permet programar execucions periòdiques de comandes

– watch: Executa una comanda periòdicament i mostra per pantalla la sortida

Desenvolupament de Funcions en el Sistema Informàtic

at● Per exemple per executar un 'ls' a una hora

determinada: (CTRL+D == EOT)

● La configuració de crontab per un usuari

● I watch:

$ at 2009.12.01 16:08warning: commands will be executed using /bin/shat> lsat> <EOT>job 2 at Tue Dec 1 16:08:00 2009

$ crontab -eno crontab for xavier - using an empty oneProcessing '/etc/joe/joerc'...Processing '/etc/joe/ftyperc'...donedone21 * * * * ls

$ watch -n 3 tail /var/log/messages...

Desenvolupament de Funcions en el Sistema Informàtic

ipcs● Dóna informació sobre la memòria compartida,

els semàfors i les cues de missatges (-u sumari):

$ ipcs---- Segments de memòria compartida ----clau shmid propietari perms octets nattch estat 0x00000000 0 root 777 135168 2 0x00000000 557057 xavier 600 393216 2 dest 0x00000000 589826 xavier 600 393216 2 dest 0x00000000 262147 xavier 600 393216 2 dest 0x00000000 294916 xavier 600 393216 2 dest 0x00000000 327685 xavier 600 393216 2 dest 0x00000000 360454 xavier 600 393216 2 dest 0x00000000 393223 xavier 600 393216 2 dest 0x00000000 425992 xavier 600 393216 2 dest 0x00000000 458761 xavier 600 393216 2 dest 0x00000000 491530 xavier 600 393216 2 dest 0x00000000 720911 xavier 600 393216 2 dest 0x00000000 753680 xavier 600 393216 2 dest 0x00000000 851986 xavier 600 393216 2 dest

------ Matrius del semàfor ------clau semid propietari perms nsems 0x4d060001 32769 xavier 600 8

------ Cues de missatges -----clau msqid propietari perms octets emprats missatges

Multitasca en Windows

Desenvolupament de Funcions en el Sistema Informàtic

Processos Windows● Es basa en “temps compartit” (time sharing) i

és preemptiu ● Tots els processos comencen amb un thread

– La planificació es fa en base ans threads.

– Els processos no s'executen

– No hi ha relació pare/fill entre processos

● Tots els processos del sistema són “companys” independentment del procés pare que tinguin

● Windows només té un planificador de curt termini que se n'encarrega de triar els threads a executar

Desenvolupament de Funcions en el Sistema Informàtic

Processos Windows● Es divideixen els processos en threads perquè:

– Millora el temps de resposta

– Es pot aprofitar si hi ha múltiples processadors

● Cada thread té una prioritat i es tria el que tingui més prioritat per ser executat

● Hi ha grups de processos (Jobs) (ex. runas)

● La prioritat és un dels factors que determina quin procés ha de ser executat (32)

● La planificació està governada per events

Desenvolupament de Funcions en el Sistema Informàtic

Processos Windows● Cada procés i cada thread tenen un

identificador únic● Els processos en Windows es moren:

– Quan el programa decideix acabar (ExitProcess)

– Quan l'escriptori acaba la execució del programa (ExitProcess)

– Quan es força l'acabament del programa (Terminate process)

– Quan es produeix una excepció no prevista (unhandled exception)

Desenvolupament de Funcions en el Sistema Informàtic

Processos Windows

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● Administrador de tasques

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● Windows ens dóna eines per controlar les

tasques des de consola: tasklist

Per veure les DLL de cada procés:

C:> TASKLISTNombre de imagen PID Nombre de sesión Núm. de Uso de memor========================= ====== ================ ======== ============System Idle Process 0 0 16 KBSystem 4 0 212 KBsmss.exe 380 0 400 KBcsrss.exe 596 0 3.704 KBwinlogon.exe 620 0 4.440 KBservices.exe 672 0 3.308 KBlsass.exe 684 0 5.904 KBsvchost.exe 852 0 3.444 KBsvchost.exe 940 0 4.216 KB

C:> TASKLIST /Mcmd.exe 2288 ntdll.dll, kernel32.dll, msvcrt.dll, USER32.dll, GDI32.dll, ShimEng.dll, AcGenral.DLL, ADVAPI32.dll

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● Podem obtenir informació d'una altre màquina:

● I permet exportar en diferents formats /fo (table,csv, ... )

● O posar-hi filtres (tasklist /?):

C:> TASKLIST /S 192.168.1.1 /u administradorEscriba la contraseña para administrador:******Nombre de imagen PID Nombre de sesión Núm. de Uso de memor========================= ====== ================ ======== ============System Idle Process 0 0 16 KBSystem 4 0 212 KB...

C:> tasklist /FI "IMAGENAME eq cmd.exe"

Nombre de imagen PID Nombre de sesión Núm. de Uso de memor========================= ====== ================ ======== ============cmd.exe 2288 Console 0 1.128 KB

C:> TASKLIST /S 192.168.1.1 /u administradorEscriba la contraseña para administrador:******Nombre de imagen PID Nombre de sesión Núm. de Uso de memor========================= ====== ================ ======== ============System Idle Process 0 0 16 KBSystem 4 0 212 KB...

C:> TASKLIST /S 192.168.1.1 /u administradorEscriba la contraseña para administrador:******Nombre de imagen PID Nombre de sesión Núm. de Uso de memor========================= ====== ================ ======== ============System Idle Process 0 0 16 KBSystem 4 0 212 KB...

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● També podem matar processos des de la

consola: taskkill – Podem matar processos a partir del seu nom

/IM, del seu PID /PID

– Processos d'una altra màquina (sempre que tinguem credencials per fer-ho)

– O matar segons filtres

C:> TASKKILL /S sistema /F /IM notepad.exeC:> TASKKILL /PID 1230 /PID 1241 /PID 1253C:> TASKKILL /F /IM notepad.exe /IM mspaint.exeC:> TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"C:> TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exeC:> TASKKILL /S sistema /U dominio\usuario /FI "USERNAME ne NT*" /IM *C:> TASKKILL /S sistema /U nombreusuario /P contraseña /FI "IMAGENAME eq note*"

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● Wmic: es tracta d'una comanda immensa que

permet extreure dades d'una màquina Windows local o remotament

● Podem matar processos amb el seu PID

● O amb el nom

● Veure els processos

● La sortida pot ser formatejada, etc..

c:\> wmic process 1884 delete

C:\> wmic process where name='cmd.exe' delete

C:\> wmic process list brief

Desenvolupament de Funcions en el Sistema Informàtic

Control de processsos● Start: iniciar la execució d'un programa

– Generalment es fa servir dins d'algun script

● Sc: es fa servir per controlar els serveis del sistema: crear, aturar, engegar, reiniciar, etc..

– Mostrar tots els serveis

c:\> start notepad.exe

c:\> sc start messenger

c:\> sc queryc:\> sc queryex

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● Podem controlar en quin moment s'executarà

un programa amb:– at: Permet executar un programa en una hora

determinada

– Task scheduller

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● at ens permet executar comandes en una data

determinada

● però també repetir-les periòdicament.

● I en altres màquines

de les que hem de conèixer les credencials

c:\> at 16:16 dirSe ha agregado un nuevo trabajo con identificador = 1c:\> atEstado ID Día Hora Línea de comando-------------------------------------------------------------------------------------------------------------------------- 1 Hoy 16:16 dir

c:\> at 16:17 /every:1,5,6,8,10,19 backupSe ha agregado un nuevo trabajo con identificador = 2

c:\> at \\server 16:17 backup

Desenvolupament de Funcions en el Sistema Informàtic

Control de processos● Comandes externes: Tenim programes que no

estan en la instal·lació de Windows que fan coses interessants:

– Sysinternals suite: Eines de control de múltiples coses de sistemes Windows. En processos ens interessen:

● Pstools: pslist (/m /x /t )● Process Explorer● Handle● listdlls

– Windows Debugging Tools

– Windows Powershell: Incorporat a Windows 7

Desenvolupament de Funcions en el Sistema Informàtic

SysInternals suite● Es tracta d'una recopilació d'utilitats per

treballar amb Windows. – Comprades per Microsoft.

c:> pslistC:> pslist /mC:> Pslist /xC:> pslist /t

C:> handleC:> handle -p 3890C:> handle -p 3890 -a

C:> listdllsC:> listdlls cmd.exe

C:> procexp

C:> procmon

C:> procdump iexplore

Desenvolupament de Funcions en el Sistema Informàtic

Windows Debugging Tools● Serveixen per inspeccionar les estructures de

dades que gestiona el nucli internament– Hi ha dues versions del debugger:

● kd.exe● windbg.exe

– Per poder treballar calen les versions adequades dels símbols del sistema en que treballem

– Permeten detectar i eliminar errors en el programari que pugui afectar al sistema operatiu