Article View: ch.comp.os.linux
Article #18631Re: programmierfrage: free-pascal
From: Nicolas Iselin
Date: Mon, 06 Mar 2000 00:00
Date: Mon, 06 Mar 2000 00:00
46 lines
2282 bytes
2282 bytes
Roger Kalt wrote: > > hallo zusamen > > wie programmiert man in free-pascal ein programm, das immer im > hintergrund l�uft, und ab und zu mal die serielle schnittstelle abfragt > , also im grunde genommen die meisste zeit nichts tut, > aber es soll nicht gerade die ganze cpu zeit brauchen ???? > wenn ich nur ein einfaches progr�mmchen ausprobiere, welches das > keyboard abfragt, also auch nichts wildes tut, so braucht es gerade 100% > cpu zeit. Meine Kenntnisse in free-pascal sind 0, und pascal ist auch schon lange her. Dein Problem ist aber nicht pascal-spezifisch. Das Problem heisst 'synchronisierung' (In den Beispielen verwende ich PSEUDO-Code, nicht mit Pascal verwechseln): Variante a) while (not keypressed) nop(); Ganz schlecht, der loop geht so schnell wie m�glich (d.h. braucht s�mtliche CPU-Zeit) immer wieder den Tastaturbuffer abfragen. Variante b) while (not keypressed) sleep(n); Etwas besser, immerhin schickt man den Prozess schlafen, wenn noch nichts da war. Aber immer noch ein busy wait. Und das Tuning ist sehr m�hsam und uU sogar maschinenabhaengig: Je groesser n, desto weniger CPU-Zeit wird verbraten, daf�r steigt auch die Reaktionszeit deines Programms. Variante c) (Kein Pseudocode) Interrupt-gesteuerte Programmierung: Man programmiert eine Interrupt Service Routine und installiert diese. Mindestens OS wenn nicht auch maschinenabhaengig. Dafuer wird nur CPU-Zeit benoetigt, wenn auch was kommt. Ist aber nichts fuer Programmier- Anfaenger... Ich wuerde versuchen, mehr ueber Variante c) herauszufinden. Nicolas
Technical Details
Message-ID:
<38C3896F.207E8E65@iselin.ch>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<38C2D1DA.CDA22BE0@gmx.net>Show Full Headers
Complete Article Headers
X-Google-Language: GERMAN,ASCII X-Google-Thread: f4b73,6ac6d88e6d5a0b6a X-Google-Attributes: gidf4b73,public From: Nicolas Iselin <nicolas@iselin.ch> Subject: Re: programmierfrage: free-pascal Date: 2000/03/06 Message-ID: <38C3896F.207E8E65@iselin.ch> X-Deja-AN: 593747376 Content-Transfer-Encoding: 8bit References: <38C2D1DA.CDA22BE0@gmx.net> Content-Type: text/plain; charset=iso-8859-1 X-Complaints-To: news@ip-plus.net X-Trace: pollux.ip-plus.net 952338787 11888 195.65.132.230 (6 Mar 2000 10:33:07 GMT) Organization: my own private family ;-) Mime-Version: 1.0 NNTP-Posting-Date: 6 Mar 2000 10:33:07 GMT Newsgroups: ch.comp.os.linux