Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Einstieg in Prozessprogrammierung

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
maxip



Anmeldungsdatum: 07.02.2005
Beiträge: 1

BeitragVerfasst am: 07. Feb 2005 14:31   Titel: Einstieg in Prozessprogrammierung

ich möchte in reinem C ein Programm schreiben, dass von aussen gesteuert wird, z.B. über eine MySQL Datenbank oder über Dateien oder sonstwie (kann man einem laufendem Prozess Nachrichten schicken mit PHP ?).

Ich bräuchte einen Denkanstoss bzw. ein paar hilfreiche Links.

Ich möchte also ein Prozess haben, der die ganze zeit läuft, und wenn was zu tun ist, dann arbeitet er den Auftrag ab und ansonsten soll er im Leerlauf sein und möglichst keine oder sehr wenig ressourcen fressen.

Wie mache ich sowas ?

Ich möchte jetzt nicht unbedingt eine komplette Anleitung, sondern nur ein grobes Schema, wie man das von mir gewünschte in C und unter Linux umsetzt.

Reicht es, das Programm als Hintegrundprozess zu starten ?
Mus ich dann im Programm einfach eine Schleife machen ?




cya max
 
Benutzer-Profile anzeigen Private Nachricht senden

squeez



Anmeldungsdatum: 24.06.2004
Beiträge: 9
Wohnort: CH

BeitragVerfasst am: 07. Apr 2005 19:56   Titel:

tach

Interessante Idee.

Dazu solltest du dir ein Protokoll entwerfen, in welchem die Kommunikation mit dem Job Prozess (ich moechte ihn mal so nennen) definiert wird.
Dabei ist sehr wichtig, dass du bereits im Protokoll selbst auf Sicherheitsaspekte Wert legst. Dh nicht alles soll erlaubt sein, und es soll Einschraenkungen fuer User geben.
Die Kommunikation sollte sinnvollerweise ueber Sockets erfolgen (Unix Domain Sockets oder BSD Sockets - je nach dem ob lokal oder remote).

Fuer die "Stilllegung" kannst du den Systemcall nice() verwenden ( man 2 nice ).

Vielleicht machst du uns mal ein Beispiel was ein solcher Job Prozess denn genau machen soll / darf.

greetz by
squeez
_________________
[nothing]
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 08. Apr 2005 10:42   Titel:

Hi,

squeez hat folgendes geschrieben::

Dazu solltest du dir ein Protokoll entwerfen, in welchem die Kommunikation mit dem Job Prozess (ich moechte ihn mal so nennen) definiert wird.
Dabei ist sehr wichtig, dass du bereits im Protokoll selbst auf Sicherheitsaspekte Wert legst. Dh nicht alles soll erlaubt sein, und es soll Einschraenkungen fuer User geben.
Die Kommunikation sollte sinnvollerweise ueber Sockets erfolgen (Unix Domain Sockets oder BSD Sockets - je nach dem ob lokal oder remote).


soweit OK...

squeez hat folgendes geschrieben::

Fuer die "Stilllegung" kannst du den Systemcall nice() verwenden ( man 2 nice ).


das ist totaler Blödsinn, sorry. Ein Prozeß, der mit select oder poll auf Eingaben wartet, braucht nur dann die CPU, wenn er einen Auftrag bekommt, etwas zu tun. Man sollte einfach ein select mit unendlichem Timeout oder mit einigen ms Timeout machen und darum herum eine Schleife basteln.

Gruß,
hjb
_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

squeez



Anmeldungsdatum: 24.06.2004
Beiträge: 9
Wohnort: CH

BeitragVerfasst am: 08. Apr 2005 15:35   Titel:

tach
hjb hat folgendes geschrieben::

das ist totaler Blödsinn, sorry. Ein Prozeß, der mit select oder poll auf Eingaben wartet, braucht nur dann die CPU, wenn er einen Auftrag bekommt,...
hjb


Nun, das sind zwei voellig verschiedene Dinge.
Wenn er mit Sockets arbeitet, so wird er blockierend arbeiten. Also hat er diesen Effekt schon alleine durch die Verwendung der Sockets (read alleine genuegt dabei, allenfalls select() bei mehreren Sockets).
Soviel mal zum Bloedsinn ^^
Der zweite Punkt ist, dass die wahrscheinliche Verwendung von Threads (was bei einem solchen Job Prozess sehr viel Sinn machen wuerde) eine Reduktion der Rechenzuweisung sinnvoll macht. So. Das ist dann die Aufgabe von nice().

Leider haben wir noch immer zu wenig Angaben darueber, was das fuer Auftraege sein sollten, um von Bloedsinn oder nicht sprechen zu koennen.

schoenen Tag noch...

greetz by
squeez
_________________
[nothing]
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

skolem23
Gast





BeitragVerfasst am: 25. Nov 2005 7:51   Titel: CORBA und ICE

also ich wuerde kein eigenes Protokoll entwerfen....., socket spass wird nerven ohne enden kosten....

muss es unbedingt C sein, waere C++ nich auch OK??

Jedenfalls kling dies nach einem typischen Job fuer CORBA, der Nachteil is, dass man da erst mal das C++ mapping lernen muss, dies wiederum is eher nunja "angestaubt" (nach 1Jahr CORBA falle ich immer noch auf diverse Fallen rein...). Gute Erfahrungen habe ich mit omniORB gemacht, und haende weg von TAO solange du kein RT-CORBA brauchst


Aber es gibt da ja noch Ice, ne art modernes CORBA, da kannst du deine C++ Prozess (Server) auch mit PHP, Python sogar mit C# steuern..., das alles unterstuetzt auch ssl
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy