/ Forside / Teknologi / Operativsystemer / OS/2 / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
OS/2
#NavnPoint
netop 300
katekismus 300
Klaudi 210
miritdk 200
Stouenberg 160
BjarneD 120
EXTERMINA.. 110
thomas2610 100
o.v.n. 100
10  nuber2 100
hukommelse (oprydning)
Fra : Henrik Boel Micheels~


Dato : 23-01-01 13:38

Hej alle ...

I mit firma (Københavns Energi) har vi et par maskiner der kører med
os2/warp. Når vi kører et bestemt program x-antal gange går programmet i
baglås, noget siger mig at den evt. løber tør for hukommelse muligvis p.gra
dårlig programmering. Findes der ikke en mulighed for at tvinge programmet
til at rydde op i hukommelsen (hvis det er det der er problemet) der er tale
om et 16-bit dos program. Jeg kan huske i de gamle dos dage at man kunne
kører et program først der så på hvilke dele af hukommelsen der blev
inddraget så kunne man senere kører et andet program der ryddede op.

MVH

Henrik Boel Micheelsen
Københavns Energi
3395 2512
hboel@ipost.kk.dk



 
 
peter volsted (23-01-2001)
Kommentar
Fra : peter volsted


Dato : 23-01-01 16:33

hi

> Henrik Boel Micheelsen wrote:
>
> Hej alle ...
>
> I mit firma (Københavns Energi) har vi et par maskiner der kører med
> os2/warp. Når vi kører et bestemt program x-antal gange går programmet i
> baglås, noget siger mig at den evt. løber tør for hukommelse muligvis p.gra
> dårlig programmering. Findes der ikke en mulighed for at tvinge programmet
> til at rydde op i hukommelsen (hvis det er det der er problemet) der er tale
> om et 16-bit dos program. Jeg kan huske i de gamle dos dage at man kunne
> kører et program først der så på hvilke dele af hukommelsen der blev
> inddraget så kunne man senere kører et andet program der ryddede op.
>
Det skulle vel ikke være MEM.EXE du husker?
Det findes i os2\mdos-biblioteket og kører fortrinligt i et dos-vindue (el.
fuldskærm).
Det vil kunne vise dig, om du har ret i din fornemmelse, hvis du fra dit
program kan komme til en dosprompt.
Rydde op kan det dog ikke svjv.
En anden mulighed er at gå til:
   http://ps.software.ibm.com/pbin-usa-ps/getobj.pl?/pdocs-usa/fixnews.html
og finde link til Theseus3 (NB. ikke 4) - et memoryanalyseprogram til Warp.
Det har en commandofil til meory-leak-detection.

--
good luck

peter

Morten Fordsmand (24-01-2001)
Kommentar
Fra : Morten Fordsmand


Dato : 24-01-01 09:20

Henrik Boel Micheelsen wrote in message ...
>Når vi kører et bestemt program x-antal gange går programmet i
>baglås, noget siger mig at den evt. løber tør for hukommelse muligvis p.gra
>dårlig programmering.
Nu kan det være meget forskelligt det løber tør for, altså hukommelse,
semaforerer, filer, ......

Men hvis det er et DOS-program, der køerer i en vdm, kunne i så ikke
løse/afklare proiblemet ved at starte det i en ny vdm, evt hvis det er et
win-pgm at lade det køre i egen vdm?

Hvis det derimod er et os2 1.x -pgm så skal man bruge theseus som IBM stadig
giver væk til at inspicere sit memory.

Hvis intet af dette hjælper kan du selvfølgelig dumpe processen, der låser
og finde ud af hvad det egentlig laver med dumpformatteren. Og når det bare
er en process der låser, så behøver man altså ikke længere dumppartitioner
og den slags.
--
Morten Fordsmand
http://www.morten.fordsmand.com



Mads Orbesen Troest (24-01-2001)
Kommentar
Fra : Mads Orbesen Troest


Dato : 24-01-01 23:43

On Wed, 24 Jan 2001 08:20:04, "Morten Fordsmand" <mfo@dmdata.dk>
wrote:

> Nu kan det være meget forskelligt det løber tør for, altså hukommelse,
> semaforerer, filer, ......

Nu er det jo sådan, at OS/2 selv deallokerer alle disse ressourcer når
en process terminerer, uanset om den selv eksplicit har deallokeret
ressourcerne eller ej.

Med andre ord kan leaks i processer ikke have betydning mellem
sekventielle kørsler af samme program, de har kun betydning inden for
processen.

Den eneste ressource jeg kender, som OS/2 /ikke/ selv frigiver ved
process-terminering er clip-boardet. Prøv at skrive et program der
åbner clipboardet, og derefter afbryder (eller går ned ved en fejl
under udviklingen) - næste gang man aktiverer en clipboard relateret
funktion får man en busy-cursor der kun forsvinder ved reboot. I
praksis dog heldigvis ikke noget problem; har aldrig oplevet fejlen
andre steder end under egen udvikling.

... /\/\\ads Orbesen Troest <mads@troest.NEVERMORE.dk>

(Please remove NEVERMORE from address when replying via email...)

Morten Fordsmand (25-01-2001)
Kommentar
Fra : Morten Fordsmand


Dato : 25-01-01 12:35

> Nu kan det være meget forskelligt det løber tør for, altså hukommelse,
> semaforerer, filer, ......

Nu er det jo sådan, at OS/2 selv deallokerer alle disse ressourcer når
en process terminerer, uanset om den selv eksplicit har deallokeret
ressourcerne eller ej.

Du mener altså ikke at en VDM, hvor i det samme program kører igen og igen
ikke kan lide under dette, altså hvis programmet havde samme fejl under DOS?
Jeg er som du kan læse af resten af mit svar godt klar over at der typisk
vil blive ryddet op efter en process, der hvor det kan lade sig gøre.

Den eneste ressource jeg kender, som OS/2 /ikke/ selv frigiver ved
process-terminering er clip-boardet. Prøv at skrive et program der
åbner clipboardet, og derefter afbryder (eller går ned ved en fejl
under udviklingen) - næste gang man aktiverer en clipboard relateret
funktion får man en busy-cursor der kun forsvinder ved reboot. I
praksis dog heldigvis ikke noget problem; har aldrig oplevet fejlen
andre steder end under egen udvikling.

Det er jo fordi dette er en sharet resource (formentlig en semafor der
forbliver postet), som OS/2 netop ikke altid kan garbagecollecte.
Et andet virkeligt godt eksempel er at en process allokerer meget sharet
hukommelse. Dette vil forhindre andre programmer i at allokere privat
hukommelse, forbi grænsen mellem privat og sharet er flyttet ned.

Morten Fordsmand
http://www.morten.fordsmand.com






Mads Orbesen Troest (25-01-2001)
Kommentar
Fra : Mads Orbesen Troest


Dato : 25-01-01 20:24

On Thu, 25 Jan 2001 11:35:06, "Morten Fordsmand" <mfo@dmdata.dk>
wrote:

> Du mener altså ikke at en VDM, hvor i det samme program kører igen og igen
> ikke kan lide under dette, altså hvis programmet havde samme fejl under DOS?

Ikke hvis VDM'en afsluttes hver gang. Så skal det ikke være muligt at
/nogen/ system-ressourcer lækker.

>> Den eneste ressource jeg kender, som OS/2 /ikke/ selv frigiver ved
>> process-terminering er clip-boardet. ng.
>
> Det er jo fordi dette er en sharet resource (formentlig en semafor der
> forbliver postet), som OS/2 netop ikke altid kan garbagecollecte.

Tværtimod. Hvis PM'en bare havde /brugt/ et almindeligt system (MUTEX)
semafor til at beskytte clipboardet (hvilket den af en eller anden
absurd grund ikke gør), så ville alt være godt! OS/2 deallokerer
/også/ ufrigivet shared memory og semaforer ved process-terminering.
Det står eksplicit flere steder i (og detaljeret i Deitel/Kogan's "The
Design of OS/2"); men her er et hurtigt klip fra Control Program
referencen:
"If a process terminates with open semaphores, OS/2 automatically
closes the semaphores for that process."

... /\/\\ads Orbesen Troest <mads@troest.NEVERMORE.dk>

(Please remove NEVERMORE from address when replying via email...)

Morten Fordsmand (26-01-2001)
Kommentar
Fra : Morten Fordsmand


Dato : 26-01-01 10:15

Tværtimod. Hvis PM'en bare havde /brugt/ et almindeligt system (MUTEX)
semafor til at beskytte clipboardet (hvilket den af en eller anden
absurd grund ikke gør), så ville alt være godt! OS/2 deallokerer
/også/ ufrigivet shared memory og semaforer ved process-terminering.

Det benægter jeg ikke, men hvis man kigger i PM's strukturer (debugging
handbook) vil m an netop se, at PM har sine egne afarter af semaforer.

fsva. memmory, så kan man jo bare allokere sharet givable memory, og så gi
det til en eller anden process (f.eks den første pmshell) før man selv
terminerer. Det vil virke fint.

--
Morten Fordsmand
http://www.morten.fordsmand.com





Mads Orbesen Troest (24-01-2001)
Kommentar
Fra : Mads Orbesen Troest


Dato : 24-01-01 23:48

On Tue, 23 Jan 2001 12:37:42, "Henrik Boel Micheelsen"
<Henrik_Boel@KE.KK.DK> wrote:

> I mit firma (Københavns Energi) har vi et par maskiner der kører med
> os2/warp.

Fornuftigt.

>Når vi kører et bestemt program x-antal gange går programmet i
> baglås, noget siger mig at den evt. løber tør for hukommelse muligvis p.gra
> dårlig programmering.

Dårlig programmering kan normalt /ikke/ have indflydelse på andet end
den process programmet kører i. Når processen terminerer deallokerer
OS/2 selv alle kernel ressourcer (hukommelse, semaforer, shared
memory, ...) der ikke er blevet frigivet i programmet.

Jeg vil snarere mene at det muligvis er en (senere rettet) fejl i OS/2
VDM afviklingen når dette kan ske (det er normalt kun leaks i systemet
eller device drivere der kan skabe den situation du beskriver); hvad
version og fixpack kører maskinerne på?

... /\/\\ads Orbesen Troest <mads@troest.NEVERMORE.dk>

(Please remove NEVERMORE from address when replying via email...)

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste