Not logged in. · Lost password · Register

Page:  1  2  next 
Steppenwolf
Schläfer
Avatar
Member since Nov 2002
1535 posts
Subject: times-aufruf
hi,

vielleicht bin ich zu bloed, aber wo ist hier der fehler:

ctps = sysconf (_SC_CLK_TCK);

times (&beforetime);
waitpid (id, &status, 0);
times (&aftertime);

fprintf (stderr, "Usertime: %li, Systemtime: %li\n", ((aftertime.tms_cutime - beforetime.tms_cutime)/ctps * 1000), ((aftertime.tms_cstime - beforetime.tms_cstime) / ctps * 1000));

ich krieg immer null raus, egal was ich mache. btw: was ist denn ein einfaches, rechenintensives kommando (tar uebersteigt immer meine cip-quota)?
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
tar doch einfach nach /tmp da hast du kein quota
MeistaJo
Member since Nov 2002
42 posts
In reply to post #1
Quote by Steppenwolf:
ich krieg immer null raus, egal was ich mache. btw: was ist denn ein einfaches, rechenintensives kommando (tar uebersteigt immer meine cip-quota)?
Nimm sleep. Das ist zwar nicht rechenintensiv, braucht aber lang.
Weshalb multiplizierst du nachher noch mit 1000?
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
in den times steht aber drin wie lange das system damit beschäftigt war instruktionen für das programm abzuarbeiten getrennt in usermode und systemmode und ein sleep hat davon leider reichlich wenig
Steppenwolf
Schläfer
Avatar
Member since Nov 2002
1535 posts
thx fuer den /tmp-tip.
die 1000 hab ich fuer die millisekunden genommen, und jetzt hab ich gerade festgestellt, das dass auch der fehler war: er hat erst durch ctps geteilt, dann kamm gerundet null raus, da bringt auch das mal 1000 nix mehr. wenn man die 1000 davor schreibt, dann gehts, zumindest braucht das taren meines homes 10ms user- und 200ms systemtime.
sind das realistische werte?
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
also bei mir dauert das ein bisschen länger weiss ja nicht wie gross dein home ist ;)
machst du mit tar cvjf ? das j macht bzip2 kompression was auch nochmal schön rechnet, tar kopiert ja nur..
Steppenwolf
Schläfer
Avatar
Member since Nov 2002
1535 posts
ok,
so schlau bin ich natuerlich nicht! *gegendenkopfhau*
ergebnis mit bzip:

12811     0       8:970   0:150 tar cvvjf /tmp/bla.tar /home/cip/2002/si******

so schreibt er es bei mir in die logdatei. passt das so?

edit: YEAH, ich sehe gerade, ich habe post #666 - wenn das mal kein gutes zeichen ist  :gun: !
This post was edited on 2003-12-10, 19:22 by Steppenwolf.
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
ja schaut ganz gut aus :)
Steppenwolf
Schläfer
Avatar
Member since Nov 2002
1535 posts
ok, dann kommt jetzt post #667 (the neighbor of the beast):

1. wenn ein SIGINT kommt, dann bekommt ihn der vordergrundprozess auch
und die hintergrundprozesse ignorieren ihn, bekommen dafuer aber ein SIGQUIT
==> auf jeden fall gibt mir keiner der prozesse einen exitstatus zurueck. ist das in diesem fall normal?

2. @mikey: du hattest doch in der uebung gemeint, dass man procmask () braucht, um race conditions zu vermeiden. an welcher stelle soll man denn sowas brauchen, ich bin der festen meinung, dass MEIN programm das nicht braucht. kann das sein?
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
1.) Nein das ist nicht normal, du solltest die schon auflesen können.
Bei mir zB sieht das so aus:
mikey@lucifer:~/Uni/Hiwi/SP1/Muster/aufgabe5/bin.i386>./trsh
trsh> sleep 1000 &
trsh> sleep 2000 &
trsh> sleep 10
Exitstatus [ sleep 10 ] = 0
trsh> jobs
[8500] sleep 2000 &
[8499] sleep 1000 &

Exitstatus [ sleep 2000 & ] = 0
Exitstatus [ sleep 1000 & ] = 0
trsh>
wobei ich dir versichern kann dass ich keine 2000 sekunden gewartet habe und ich den sleep 10 durch einen Interuppt unterbrochen habe.

2. es geht primär um diese jobliste. mit dieser wird dein inthandler ja wohl arbeiten wenn er allen kindern ein sigquit schickt und dazu die liste durchläuft um deren pids zu kriegen. wenn du nun an anderer stelle im programm auf der joblist arbeitest, musst du bedenken dass genau in diesem moment ein SIGINT kommen kann der dir dann die liste zerschiesst.
deshalb musst du vor der arbeit auf der joblist das sigint blockieren und anschliessen wieder deblockieren. Wenn du mehrere signalhandler hast, ZB sigchld musst du natürlich auch das blockieren. Bei mehreren signalhandlern die auf der jobliste arbeiten ist zusätzlich zu beachten dass du alle anderen signale die solche handler haben auch zur laufzeit des signalhandlers blockierst (mit sa_mask in der struct sigaction).

(die prozesse werden bei den jobs noch angezeigt, weil ich meinen ghostbuster vor jedem prompt aufrufe und daher zum zeitpunkt der jobausgabe die jobliste noch nicht aktualisiert ist).
This post was edited on 2003-12-10, 21:17 by Mikey.
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
btw wenn du dein programm auf memory leaks testen willst solltest du das nicht mit der jobliste aus dem ~i4sp/pub machen die hat nämlich selber ein memory leak weil da ein free fehlt. In meinem wwwcip liegt eine ausgebesserte joblist.c ;)
Ford Prefect
Pangalaktischer- Donnergurgler-Trinker
(Administrator)
Avatar
Member since Oct 2002
3298 posts
wenn du den rechner ohne much hassle(tm) zum schwitzen bringen willst, mach doch einfach

bzip2 < /dev/urandom > /dev/null
Quote: <mute> mit Miranda macht irc kein spass :P <Loki|muh> dann geh doch wieder :)
<mute> ich benutze kein miranda <Loki|muh> na und? :)
Yves
Code artist
(Administrator)
Avatar
Member since Nov 2002
3282 posts
Quote by Ford Prefect:
bzip2 < /dev/urandom > /dev/null

und wann terminiert das? :-D
Physikalisch gesehen ist ein Quantensprung die kleinstmögliche Zustandsänderung, meist von einem höheren auf ein niedrigeres Niveau.

Komprenu Energiemonitoring-Software | dotforward Webhosting
Ford Prefect
Pangalaktischer- Donnergurgler-Trinker
(Administrator)
Avatar
Member since Oct 2002
3298 posts
ach ihr sucht was, das terminiert  :heart:
Quote: <mute> mit Miranda macht irc kein spass :P <Loki|muh> dann geh doch wieder :)
<mute> ich benutze kein miranda <Loki|muh> na und? :)
Mikey
SP Team
Avatar
Member since Nov 2002
641 posts
ausserdem hat sicherlich nicht jedermann in seiner trsh die stdin und stdout umleitung eingebaut ;)
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Page:  1  2  next 
Go to forum
Datenschutz | Kontakt
Powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2011 by Yves Goergen