home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 4 Drivers / 04-Drivers.zip / wcrd092.zip / LIESMICH.TXT < prev    next >
Text File  |  1996-07-26  |  13KB  |  321 lines

  1. Dipl.-Ing. Jürgen Dittmer
  2. Max-Planck-Straße, Geb. 1
  3. D-21502 Geesthacht
  4. EMail: dittmer@gkss.de
  5. Tel.: 04172 961202
  6.       04152 8714880
  7. Fax.: 04172 961203
  8.  
  9. Letzte Änderung: 26.07.1996
  10.  
  11. -------------------------------------------------------------------------------
  12.  
  13.  
  14. Anleitung zum CEWS WatchCard OS/2 Gerätetreiber
  15.  
  16. Die WatchCard ist eine kurze ISA-Einsteckkarte zur hardwareseitigen
  17. Überwachung des PC's. Sie kann überall dort eingesetzt werden, wo PC's nicht
  18. von einem Benutzer überwacht werden, z.B. im Serverbetrieb.
  19. Er kann bezogen werden bei:
  20.  
  21. Dipl.-Ing. W. Schrader
  22. - Computerengineering -
  23. Kirschengarten 22
  24. D-32052 Herford
  25. Tel.: 05221/769757
  26. Fax.: 05221/769758
  27. eMail: WoSchrader@aol.com
  28.  
  29. Der Preis beträgt DM 143,48 + MwSt. (Stand 12.07.1996).
  30.  
  31. Der in diesem Paket enthaltene Treiber ist eine zeitlich begrenzte Testversion,
  32. dennoch voll funktionsfähig.
  33. Nach Ablauf der Testzeit kann der Treiber nicht mehr geladen werden.
  34. Für die zeitlich unbegrenzte Vollversion werden DM 60,00 + MwSt. berechnet.
  35.  
  36. -------------------------------------------------------------------------------
  37.  
  38.  
  39. Liste der Dateien
  40.  
  41. Liesmich.TXT    Diese Anleitung
  42. WATCHCRD.SYS    OS/2-Gerätetreiber für die WatchCard
  43. PMWATCH.EXE     Programm zum Watchdog für den OS/2 Präsentationsmanager
  44. WATCH.EXE       Beispielprogramm zum Watchdog
  45. WATCH.C         C-Quelltext zum Beispiel
  46.  
  47. -------------------------------------------------------------------------------
  48.  
  49.  
  50. Was kann der Treiber und was nicht?
  51.  
  52. Der WATCHCRD.SYS ist ein OS/2-Device-Treiber für die CEWS WatchCard.
  53. Mit diesem Treiber können bis zu 32 Programme gleichzeitig überwacht werden.
  54. Das Beispielprogramm WATCH.C zeigt, wie der Treiber von einem selbstgeschrie-
  55. benem Programm angesteuert wird. Das Programm PMWATCH ist eine PM-Applikation,
  56. die einen hängenden Präsentations-Manager erkennen kann.
  57.  
  58. Um ein bestimmtes Programm sicher zu überwachen, müssen im Programm selbst
  59. die Watchdog-Aufrufe implementiert sein. Dies geht natürlich nur mit der
  60. Möglichkeit die Aufrufe in das Programm einzubauen.
  61. Die Lösung nur mittels PMWATCH das System zu überwachen funktioniert im
  62. allgemeinen gut; es kann jedoch passieren, daß nur das eigentlich interessante
  63. Programm hängt, der PM aber noch einwandfrei arbeitet. Dieser Fall kann nicht
  64. von PMWATCH erkannt werden!
  65.  
  66. Auf diversen Testrechnern, die z.B. als Netzwerk-Server fungieren, hat es sich
  67. als ausreichend erwiesen, PMWATCH zu verwenden.
  68.  
  69. -------------------------------------------------------------------------------
  70.  
  71.  
  72. Warum einen Device-Treiber für OS/2?
  73.  
  74. OS/2 hat eingebaute Schutzmechanismen, die verhindern, daß ein Programm auf
  75. Speicherbereiche oder I/O-Ports zugreift, die von anderen Prozessen verwendet
  76. werden.
  77. Ein Prozeß, der dies möchte, muß I/O-Privilegien haben, diese IOPL's kann man
  78. beim Linken eines Programmes vereinbaren.
  79. Für 16-bit-Programme ist dies noch einfach, bei 32-bit wird es schon etwas
  80. komplizierter.
  81. Nachteil dieser Lösung ist, daß bei einer neuen Hardware das Programm geändert
  82. werden muß und nur ein Programm zur Zeit den Watchdog benutzen kann.
  83.  
  84. Der Device-Treiber kann mehrere Zugriffe auf die Hardware serialisieren und ist
  85. sehr einfach von Programmen ansteuerbar. Bei einer Veränderung der Hardware
  86. wird nur der Treiber ausgetauscht, für die Applikationen ändert sich nichts.
  87. Der Programmierer muß sich nicht direkt mit der Hardwareprogrammierung ausein-
  88. andersetzen (was jedoch nicht bedeutet, daß er die Funktionen nicht kennen
  89. sollte).
  90.  
  91. -------------------------------------------------------------------------------
  92.  
  93.  
  94. Installation
  95.  
  96. Kopieren Sie die Dateien von der Diskette in ein Verzeichnis Ihrer Wahl,
  97. zum Beispiel: D:\WATCHDOG
  98.  
  99. Ergänzen Sie die CONFIG.SYS um die Zeile:
  100. DEVICE=D:\WATCHDOG\WATCHCRD.SYS, wobei folgende Parameter angegeben werden können:
  101. /B:xxx  xxx = Basisadresse der WatchCard, vorgegeben ist 0x20F
  102. /T:xxx  Timeoutzeit (Tr), Vorgabe sind 120 Sekunden
  103. /R:xxx  Pre-Trigger (Tp, Relais), vorgegeben sind 10 Sekunden 
  104. /V      Anzeige aller Parameter beim Systemstart
  105. /S      Beim Reload wird ein kurzer Ton ausgegeben
  106.  
  107. Beispiel: DEVICE=D:\WATCHDOG\WATCHCRD.SYS /V /S /T:60
  108.  
  109. Beim Systemstart werden alle Parameter angezeigt und bei jedem Reload des
  110. Watchdog ist ein Ton hörbar, die Basisadresse der Karte ist 20F Hex und die
  111. Timeoutzeit ist auf 60 Sekunden gesetzt.
  112. Die Änderung in der CONFIG.SYS wird nach einem Neustart des Systems wirksam.
  113.  
  114. -------------------------------------------------------------------------------
  115.  
  116.  
  117. Test der Installation
  118.  
  119. Öffnen Sie ein OS/2-Fenster und wechseln Sie in das WATCHDOG-Verzeichnis.
  120. Starten Sie das Programm PMWATCH.EXE. In diesem Programm wird der Watchdog
  121. gestartet und erhält alle 10 Sekunden das Reload-Kommando.
  122. Wenn beim Treiber der Parameter /S angegeben wurde, ist ein kurzer Ton bei
  123. jedem Reload zu hören.
  124.  
  125. Für den folgenden Timeout-Test sollte das Reset-Kabel nicht angeschlossen sein!
  126.  
  127. Starten Sie WATCH.EXE mit der Intervallzeit 300 Sekunden: WATCH 300
  128. Da die Timeoutzeit 60 Sekunden beträgt, er jedoch erst nach 300 Sekunden
  129. das Reload-Kommando erhalten würde, löst er nach 60 Sekunden den Reset aus.
  130.  
  131. -------------------------------------------------------------------------------
  132.  
  133.  
  134. Benutzung des Programms PMWATCH.EXE
  135.  
  136. PMWATCH.EXE ist ein Programm für den Präsentationsmanager (PM), das dem
  137. Watchdog zyklisch das Reload-Kommando sendet. Es kann zur Überwachung des
  138. PM eingesetzt werden. 
  139.  
  140. Aufruf mit: PMWATCH [Zeitintervall in Sekunden], z.B.: PMWATCH 5
  141.  
  142. Es empfiehlt sich eine Referenz dieses Programms in den Systemstartordner zu 
  143. stellen.
  144.  
  145. Funktion:
  146. Innerhalb des Programms wird ein PM-Timer (WinStartTimer)installiert und 
  147. dadurch ausgelöst eine PM-Nachricht (WinPostMsg) versandt.
  148. Beim Empfang der Nachricht wird eine Ereignissemaphore gesetzt (PostEventSem).
  149. Ein zweiter Thread sendet daraufhin das Reload-Kommando.
  150. Wenn der PM von einem fehlerhaften Programm blockiert wurde, können keine
  151. Nachrichten mehr verarbeitet werden. Der Benutzer merkt dies daran, daß der PM
  152. nicht mehr auf Eingaben reagiert. In diesem Fall würde PMWATCH auch hängen und
  153. den Watchdog nicht mehr triggern. Wenn dann der Timeout abgelaufen ist, startet
  154. das System neu.
  155.  
  156. ANMERKUNG: FOLGENDE FUNKTION WIRD ZUR ZEIT VON DER HARDWARE NICHT UNTERSTÜTZT!
  157. DER BALKEN BLEIBT IMMER GRÜN UND ZEIGT DIE EINGESTELLTE RETRIGGERZEIT AN.
  158. Ein grün/roter Balken zeigt den aktuellen Zählerstand des Watchdogs an. So kann
  159. man gut beobachten, wann ein Reload gesendet wird und wieviel Zeit noch bis
  160. zum Reset bleibt.
  161.  
  162. -------------------------------------------------------------------------------
  163.  
  164.  
  165. Programmierung des Watchdog
  166.  
  167. Für die Kommunikation mit dem Treiber sind nur die Befehle DosOpen, DosClose
  168. und DosDevIOCtl notwendig.
  169. Der Devicename für DosOpen ist WATCHDG$.
  170.  
  171.     rc = DosOpen("WATCHDG$", &DevHandle,
  172.               &ulAction, 0,
  173.               FILE_NORMAL,
  174.               FILE_OPEN,
  175.               OPEN_SHARE_DENYNONE | OPEN_FLAGS_FAIL_ON_ERROR | 
  176.               OPEN_ACCESS_READWRITE,
  177.               0L);
  178. DevHandle ist eine Dateinummer, die vom System eindeutig vergeben wird, d.h.,
  179. sie ist systemweit nur einmal vorhanden.
  180. Beim Öffnen des Treibers wird im Gerätetreiber die Dateinummer (DevHandle) 
  181. registriert und der Watchdog gestartet. Der Treiber kann maximal 32-mal 
  182. gleichzeitig von mehreren Programmen geöffnet werden.
  183.  
  184. Ab jetzt muß der Treiber innerhalb der Timeoutzeit angesprochen werden:
  185.  
  186.         rc = DosDevIOCtl(DevHandle, Category, Function, NULL,
  187.                         NULL, NULL, &IOData,
  188.                         sizeof (IOData), NULL);
  189.  
  190. Wobei   Category = 0x91   und
  191.         Function = 0x01   ist.
  192.  
  193. ANMERKUNG:
  194.    In der Struktur IOData wird in der aktuellen Version die eingestellte
  195.    Timeoutzeit (120s) zurückgegeben. In späteren Versionen soll der
  196.    aktuelle Zählerstand des Watchdog übergeben werden. Aus diesem Grund
  197.    zeigt PMWatch immer einen vollen grünen Balken!
  198.  
  199. Wenn mehrere Programme den Treiber geöffnet haben, prüft dieser zunächst
  200. ob alle Programme ein DosDevIOCtl gesendet haben, bevor der eigentliche
  201. Hardware-Reload durchgeführt wird.
  202. Dadurch können mehrere Programme durch den Watchdog überwacht werden.
  203. Steht nur ein Programm still, nachdem es DosOpen ausgeführt hat, so erhält 
  204. der Treiber keine regelmäßigen IOCtl's mehr von ihm und die Watchdog-
  205. Hardware löst einen Reset aus.
  206.  
  207. Ein Programm kann sich mittels DosClose beim Treiber abmelden:
  208.  
  209.     rc = DosClose (DevHandle);
  210.  
  211. Als Beispiel für die Programmierung kann WATCH.C dienen.
  212. Versuchen Sie auch einmal mehrere Instanzen von WATCH.EXE zu starten, der
  213. Treiber wird alle Prozesse überwachen.
  214.  
  215. -------------------------------------------------------------------------------
  216.  
  217.  
  218. Einstellung der Timeout-Zeit
  219.  
  220. Die Zeit für den Timeout sollte mindestens doppelt so lange wie die längste
  221. Reload-Zeit in einem Programm gewählt werden.
  222. Vorgabe des Treibers ist 120 Sekunden, die längste Reload-Zeit sollte also
  223. höchstens 59 Sekunden dauern (mindestens 1 Sekunde Toleranz).
  224.  
  225. -------------------------------------------------------------------------------
  226.  
  227.  
  228. OS/2 Dateisysteme und der Reset
  229.  
  230. Wenn Sie verzögertes Schreiben aktiviert haben, kann es beim harten Reset in
  231. einigen seltenen Fällen zu Beschädigungen von Dateien kommen.
  232. Bei einem normalem Systemabschluß oder drücken von STRG-ALT-ENTF schreibt OS/2
  233. zunächst die Plattencaches auf die Festplatten und markiert die Partitionen
  234. als korrekt abgeschlossen.
  235. Dieses ist jedoch beim Reset nicht möglich und daher sollten beim Neustart
  236. die betreffenden Partitionen vom System überprüft werden.
  237. In Ihrer CONFIG.SYS sollte die automatische Überprüfung (AUTOCHECK) nicht 
  238. abgeschlossener Partitionen eingeschaltet sein:
  239.  
  240. Beispiel mit FAT-Partition C: und HPFS-Partitionen D: E: und F: :
  241. IFS=E:\OS2\HPFS.IFS /CACHE:1024 /CRECL:64 /AUTOCHECK:DEF
  242. Überprüfung für die HPFS-Partitionen D:, E: und F:
  243.  
  244. DISKCACHE=512,LW,32,AC:C
  245. Überprüfung der FAT-Partition C:
  246.  
  247. Ausführliche Information finden Sie im OS/2 Online-Handbuch.
  248.  
  249. -------------------------------------------------------------------------------
  250.  
  251.  
  252. Nutzungsbedingung
  253.  
  254. Die folgenden Bedingungen gelten für die vorliegende Testversion.
  255.  
  256.  
  257. 1.  Nutzungs-Lizenz: 
  258.  
  259. Dieses Test-Programm darf in der vorliegenden Version unter
  260. Berücksichtigung der nachfolgenden Einschränkungen bis zum 31. Dezember 1996
  261. frei benutzt werden. 
  262.  
  263. Es darf und soll in unmodifizierter Form vervielfältigt, veröffentlicht und
  264. verbreitet werden. 
  265.  
  266. Die Benutzung dieses Programms stellt eine Einwilligung in diese Vereinbarung 
  267. als Ganzes dar und beinhaltet die Freistellung des Autors von jeglicher
  268. Verantwortung und Haftung. Der Nutzer erklärt sein Einverständnis zum 
  269. Ausschluß des Rechtsweges. 
  270.  
  271. 2.  Garantie / Gewährleistung / Haftung 
  272.  
  273. ABSOLUT KEINE FÜR DIESE TESTVERSION!!! 
  274.  
  275. DER AUTOR HAFTET NICHT FÜR SCHÄDEN JEGLICHER ART, INSBESONDERE NICHT FÜR
  276. VERMÖGENSSCHÄDEN, SACHSCHÄDEN, ENTSTANDENE VERBINDLICHKEITEN GEGENÜBER DRITTEN
  277. UND SCHÄDEN, DIE AUS FEHLFUNKTIONEN DES PROGRAMMS ODER AUFGRUND VON
  278. BEDIENUNGSFEHLERN ENTSTEHEN. DIE BENUTZUNG DES PROGRAMMS IN STAATEN, IN DENEN
  279. DIESER TOTALE GEWÄHRLEISTUNGS- UND HAFTUNGSAUSSCHLUSS NICHT ZUGELASSEN IST,
  280. IST NICHT ERLAUBT. 
  281.  
  282. -------------------------------------------------------------------------------
  283.  
  284.  
  285. Kein Programm ist nicht verbesserungsfähig!
  286.  
  287. Fehler im Programm und Verbesserungsvorschläge sowie Wünsche bitte an den
  288. Programmautor melden.
  289.  
  290. Dieses ist eine Testversion. Obwohl bisher keine Unverträglichkeiten
  291. mit Programmen oder Systemen aufgetreten sind, können sich Programmfehler
  292. eingeschlichen haben.
  293.  
  294. Falls Sie für Ihren Watchdog (oder andere Hardware) einen Device-Treiber 
  295. brauchen, wenden Sie sich bitte an den Autor.
  296. Weitere Treiber für andere Watchdogs sind vorhanden oder im Entstehen,
  297. bitte nachfragen!
  298.  
  299. -------------------------------------------------------------------------------
  300.  
  301.  
  302. Historie:
  303.  
  304. Version 0.90 - Interne Tests auf verschiedenen Systemen
  305. Version 0.91 - Erste freie Testvesion, lauffähig bis 31.12.1996
  306. Version 0.92 - Erweiterung der Anzahl der max. zu überwachenden Prozesse auf 32
  307.  
  308. -------------------------------------------------------------------------------
  309.  
  310.  
  311. Was noch gemacht werden muß:
  312.  
  313. Die Erkennung eines blockierten PM's mittels PMWATCH kann vielleicht noch
  314. verbessert werden. Tips hierzu werden gerne entgegengenommen!
  315.  
  316. Das Zurücklesen des Resettimers ist zur Zeit in der Hardware nicht
  317. vorgesehen. Sobald diese Möglichkeit besteht, wird sie in einer neuen
  318. Treiberversion implementiert. Dann wird es auch möglich sein, kurz vor
  319. dem harten Reset noch einen Dateisystemabschluß durchzuführen.
  320.  
  321.