MP: Jahrgang 4, Heft 9 [Reprint 2022 ed.] 9783112610763


241 101 25MB

German Pages 48 Year 2023

Report DMCA / Copyright

DOWNLOAD PDF FILE

Table of contents :
Technik international. Farbmodell für farbgetreue Darstellung
Inhalt
Multitasking-Betriebssysteme für den 80x86
Prozeßkommunikation in Unix-kompatiblen Betriebssystemen
Computerviren
Grundlagen des logischen Programmierens
MP-Kurs
Lisp
Wegbereiter der Informatik
Die Hardwareinterrupts beim A 7150
Fenster schaffen besseren Durchblick
Gründungsfieber
MP-Literatur
Entwicklungen und Tendenzen
MP-Computer-Club
Compilerkompatible Quelltexte in Turbo Pascal
MP-Bericht
COM'90
Hannover Messe Industrie '90
MP auf Bildungsreise
Kennengelernt
Recommend Papers

MP: Jahrgang 4, Heft 9 [Reprint 2022 ed.]
 9783112610763

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

ZEITSCHRIFT

FÜR

MIKROELEKTRONIK

COMPUTERTECHNIK

• INFORMATIK

Heft 9

1990

Mikroprozessortechni Verlag Technik Berlin ISSN 0232-2892

mit Beitragen u

n

d

C

n

m

aus n

n

t

rinvisi

| B K I I |

C: \MIN336 ABC.TXT ABLAGE.EXE CGFLIO.FON CGB8G FON COHMFLNOE.PIF C0MMAN0F.PZF I COMMANDS.PIF COURC.FON COURD.FON COURE.FON CUTPRINT.EXE

HELUC.FON HELUD.FON HELUE.FON HERCULES FON HIMEM.SVS INFO.TXT INF0E9.TXT KBLENDER.EXE KFLRTEI.EXE MEINPLON.TXT MEMSET.EXE

RECHNER.EXE "EISE.KRT REISE.WRI REUERSI.EXE ROMAN.FON SCRIPT.FON SPOOLER.EXE SVSTEHST.EXE TERHINRL.EXE TMSRC.FON TMSRO.FON

smLjuTMt^^,

.

WN200 WIN38SI WIN386 j UINS6.I WINOLDT UIN0L0|

tmiTE.fi

_

Urlaub in Florenz

Seite 1

•ondon lorenz •rner R e i s e n 'SS München

i n H

Technik

international

Farbmodell für farbgetreue

Darstellung

Wer schon einmal Druckvorlagen oder Muster für Textilien am Computer entworfen hat, kennt das Problem der farbechten Ausgabe des Entwurfs auf einem Drucker oder einem Plotter. Ein Werbeprospekt beispielsweise soll haargenau einen bestimmten Farbton treffen. So darfeine ColaBuchse nicht schlechthin rot dargestellt werden, sondern es muß das Rot einer ganz bestimmten Firma sein. Aber gerade das war bislang deshalb schwierig, weil die verwendeten Farbmodelle technologieorientiert, also der Hardware angepaßt waren: Für die Ausgabe auf Bildschirm existiert das RGB-System, das den Farben der Schlitzmaske (rot, grün, blau) angepaßt ist. Oder für Farbdrukker wird das CMYK-Farbmodell verwendet, das auf den möglichen Druckfarben cyan, magenta, gelb (yellow) und schwarz (black) beruht. Beide Systeme verwenden unterschiedliche Prinzipien: Das RGB-Modell verwendet die additive Farbmischung und das CMYK-Modell die subtraktive. Wie kann man nun aber das auf dem Monitor erzeugte Bild auch farbecht aufs Papier bekommen? Hier hilft ein benutzerorientiertes Farbmodell. Bereits im Jahre 1978 führte die Kölner Firma Tektronix ein solches Modell für ihre Farbgrafikterminals ein - das HLS-Modell. Es hat aber bei all seinen Vorteilen doch noch den Nachteil, daß es die Nichtllnearität der menschlichen Farbwahrnehmung nicht ausreichend berücksichtigt. Deshalb entwickelte Tektronix das neue Farbmodell TekColor, das die

Farbauswahl hinnehmen, wenn er Farbtreue erreichen will (siehe karierte Fläche in Bild 2). Trotzdem überwiegt sicherlich der Vorteil, daß Farben mit gleicher TekColor-Spezifikation immer übereinstimmen, unabhängig davon, womit sie erzeugt werden. TekColor-Farben lassen sich auch in andere Farbsysteme, zum Beispiel in DIN-Farbstandards, übersetzen.

' 530 Ä

/ V90 \ V 9300°K / 48(X

V

4?o\ B

/

-

Damit das HVC-Modell auf dem PC eingesetzt werden kann, bietet Tektronix natürlich auch Werkzeuge an. Ein solches Werkzeug ist das interaktive Farbmenü, das im Bild 3 eingeblendet ist. Hier kann der gewünschte Farbwert (am linken Balken) ausgewählt werden. Helligkeit und Sättigung werden mit dem Value-/ Chroma-Diagramm (Mitte) festgelegt. Die dadurch erzeugte Farbe wird im Feld rechts oben angezeigt und kann in das zu erzeugende Bild übernommen werden. Die Einstellungen sind natürlich auch numerisch möglich.

/

/

,440 n r S / ,

/

,

,

,

u' 1 Das CIErDiagramm zeigt die Farbwahrnehmung durch den Menschen; u-Koordinate: Rot-/ Grün-Anteil, v-Koordinate: Gelb-I Blau-Anteil

2 Die Farbspektren eines Drukkers und eines Bildschirms im Vergleich zum CIE-Diagramm

Eigenschaften der menschlichen Farbwahrnehmung, insbesondere die spektrale Empfindlichkeit des Auges, berücksichtigt. Beispielsweise erscheint dem Auge bei gleicher Intensität die gelbe Farbe heller als die blaue. Das TekColor-Modell, das auf der diesjährigen Leipziger Frühjahrsmesse vorgestellt wurde, basiert auf dem international anerkannten Farbdiagramm der CIE (Commision Internationale de I' Eclairage) von 1976. Das im Bild 1 dargestellte CIE-Diagramm stellt den Farbraum des menschlichen Auges dar. Die u-Koordinate beschreibt den Rot-/Grün-Anteil, die v-Koordinate den Gelb-/BlauAnteil und die Vertikale die Helligkeit.

Die drei Komponenten des TekColorModells sind Farbe bzw. Schattierung (hue), Helligkeit (value) und Sättigung (chroma), weswegen auch die Bezeichnung HVC-Modell üblich ist. Mit diesem Modell wird es nun möglich, unabhängig von den technologischen Bedingungen auf unterschiedlichen Systemen dieselben Farben zu erzeugen. Allerdings muß dabei berücksichtigt werden, daß die verschiedenen Systeme ein kleineres Farbspektrum als das menschliche Auge aufweisen (siehe Bild 2). Aber auch das Spektrum des Druckers (hardcopy) stimmt nicht völlig mit dem des Bildschirms (video) überein. Deshalb muß der Anwender des HVCModells Einschränkungen bei der

Als erste Anwendung ist das HVCModell mit der entsprechenden Farbdruckeranpassung für den Apple Macintosh II verfügbar (siehe Bild 4). Hier können auch verschiedene Bildschirmtypen angeschlossen werden, die bei der Konfiguration des Rechners anzugeben sind. Schwierigkeiten bereitet noch der Anschluß von Druckern, die neben seriellen und parallelen Schnittstellen auch die RGB-Schnittstelle verwenden. Für die RGB-Schnittstelle werden zwar keine speziellen Schnittstellentreiber benötigt, aber sie ist technologieorientiert. Die Nutzung dieser Schnittstelle wie auch der Standard-PCTechnik sollte eine Aufgabe für künftige Entwicklungen sein. MP-Hk

Zeitschrift für Mikroelektronik • C o m p u t e r t e c h n i k • Informatik 4. J a h r g a n g • I S S N

0232-2892

Mikroprozessortechnik, Heft 9 • 90 Herausgeber Kammer der Technik, Fachverband Elektrotechnik

Inhalt

Verlag Verlag Technik GmbH, Oranienburger Str. 13/14, DDR -1020 Berlin; Telegrammadresse: Technikverlag Berlin; Telefon: 28700, Telex: 011 2228 techn dd, Telefax: 2 87 02 59

Technik international

2. U S

F a r b m o d e l l für f a r b g e t r e u e D a r s t e l l u n g

Geschäftsführer Klaus Hieronimus Uwe

Schulze

Redaktion Hans Weiß, Chefredakteur (Tel. 2870371 ); Redakteure: Herbert Hemke (Tel. 2 87 02 03), Hans-Joachim Hill (Tel. 2870209); Sekretariat: Hannelore Kulik (Tel. 2870381)

80x86

Gestaltung Christina Bauer

Uwe

Multitasking-Betriebssysteme für d e n

tiblen Betriebssystemen

Beirat Prof. Dr. sc. Thomas Horn, Prof. Dr. Bernd Junghans, Dr. Dietmar Keller, Prof. Dr. sc. Bernd-Georg Münzer, Prof. Dr. sc. Peter Neubert, Prof. Dr. sc. Dr. Michael Roth (Vorsitzender), Dr. Gerhard Schulze, Prof. Dr. sc. Manfred Seifart, Dr. Dieter Simon, Prof. Dr. sc. Dr. Jürgen Zaremba

Gesamtherstellung Druckerei Märkische Volksstimme Potsdam Anzeigenannahme Verlag Technik GmbH, Anzeigenabteilung, Oranienburger Straße 13/14, Berlin, 1020; Tel. 2870291,2870309, Telefax: 2 87 02 54 Anzeigenpreise Preisliste 1 vom I.Juli 1990 Erfüllungsort und Gerichtsstand Berlin-Mitte. Der Verlag behält sich alle Rechte an den von ihm veröffentlichten Aufsätzen und Abbildungen, auch das der Übersetzung in fremde Sprachen, vor. Auszüge, Referate und Besprechungen sind nur mit voller Quellenangabe zulässig. Redaktionsschluß 13. Juli 1990 AN (EDV) 49837 Erscheinungsweise monatlich 1 Heft Heftpreis 5,-DM, Abonnementspreis vierteljährlich 15,- DM; Auslandspreise sind den Zeitschriftenkatalogen des Außenhandelsbetriebes BUCHEXPORT zu entnehmen. Bezugsmöglichkeiten Verlag Technik, Abteilung Absatz, PSF 201, Berlin, 1020 oder: DDR: sämtliche Postämter; SVR Albanien: Direktorije Quendrore e Perhapjes dhe Propaganditit te Librit Rruga Konference e Pezes, Tirana; VR Bulgarien: Direkzia R.E.P., 11a, Rue Paris, Sofia; VR China: China National Publications Import and Export Corporation, West Europe Department, P.O. Box 88, Beijing; ÖSFR: PNS - UstFedni Expedid a a Dovoz Tlsku Praha, Slezská 11,120 00 Praha 2, PNS, Ústredna Expedicia a Dovoz Tlaöe, Poèta 022,885 47 Bratislava; SFR Jugoslawien: Jugoslovenska Knjiga, Terazija 27, Beograd; Izdavaöko Knjifarsko Produzeóe M LADOST, llica 30, Zagreb; Koreanische DVR: CHULPANMUL Korea Publicatlons Export & Import Corporation, Pyongyang; Republik Kuba: Empresa de Comercio Exterior de Publicaciones, O'Reilly No. 407, Ciudad Habana; Republik Polen: C.K.P.i.W. Ruch, Towarowa 28,00-958 Warszawa; Rumänien: D.E.P. Bucurefti, Piaja Scinteii, Bucure§ti; UdSSR: Sämtliche Abteilungen von SojuzpeCat' oder Postämter und Postkontore; Republik Ungarn: P.K.H.I., Külföldi Elofizetési Osztály, P.O. Box 16,1426 Budapest; SR Vietnam: XUNHASABA, 32, Hai Ba Trung, Hà Nói; BRD und Berlin (West): ESKABE Kommissions-Grossobuchhandlung, Postfach 36,8222 Ruhpolding/Obb.; Helios-Literatur-VertriebsGmbH, Eichborndamm 141-167, Berlin (West) 52; Kunst und Wissen Erich Bieber OHG, Postfach 46,7000 Stuttgart 1 ; Gebrüder Petermann, BUCH + ZEITUNG INTERNATIONAL, Kurfürstenstraße 111, Berlin (West) 30; Österreich: Helios-Literatur-Vertriebs-GmbH & Co. KG, Industriestraße B13,2345 Brunn am Gebirge; Schweiz: Verlagsauslieferung Wissenschaft der Freihofer AG, Weinbergstr. 109, 8033 Zürich; Alle anderen Linder: örtlicher Buchhandel oder Verlag Technik GmbH

Mikroprozessortechnik, Berlin 4 (1990) 9

Hübner

P r o z e ß k o m m u n i k a t i o n in U N I X - k o m p a -

Titel Holger Benicke, Margitta Beyer

Lizenz-Nr. 1710 des Presse- und Informationsdienstes der Regierung der DDR

2

Bernd

5

Näther

Computerviren Das Standardbetriebssystem für PCs, MS-DOS, ist sowohl bis zur neuesten, verfügbaren Version 4.01 als auch in den angekündigten Versionen 5.0 bzw. 3.5 nur als Einzelplatzsystem konzipiert. A u c h nutzt es die Möglichkeiten neuer Prozessoren zu paralleler Abarbeitung mehrerer Programme (Multitasking) nicht. Verschiedene Softwarefirmen bieten nun komplette Betriebssystemerweiterungen an, die das Multitasking, die Arbeit an mehreren Arbeitsplätzen oder sogar beides gestatten. Einige dieser Systeme stellen wir Ihnen in unserem Beitrag auf der Seite 2 etwas ausführlicher vor.

11

Schultz

Konrad

Grundlagen des logischen Programmierens

15

MP-Kurs Ulrich Kriegel

19

Lisp (Teil 2) Wegbereiter der Informatik Norbert Wiener

Störungen der Rechentechnik durch Computerviren sind seit mehreren Jahren auch bei uns aufgetreten und häufen sich in der letzten Zeit, insbesondere auch infolge des z u n e h m e n d unkontrollierten Datenaustausches. Welche Gefahren von Viren und Störprogrammen ausgehen und welche Schutzmöglichkeiten es ihnen gegenüber gibt, erfahren Sie in unserem Beitrag auf der Seite 11.

Dirk Blavius,

Andreas

25 Senst

Die Hardwareinterrupts beim A 7150 Peter

26

Wollschlaeger

Fenster schaffen besseren Durchblick Dieter

28

Butscher

G r ü n d u n g s f i e b e r (Teil 1)

31

MP-Literatur

35

Entwicklungen und Tendenzen

36

MP-Computer-Club

38

G r ü r i d u n g s f i e b e r

Kay

Hradilak

C o m p i l e r k o m p a t i b l e Q u e l l t e x t e in Turbo Pascal MP-Bericht

40

C O M '90 H a n n o v e r M e s s e Industrie ' 9 0 M P auf Bildungsreise

Januar

(et-ur

Mat7

Afri

kennengelernt

3. U S

Atari A B C 2 8 6 - 3 0 Wollen Sie sich auch selbständig machen und beispielsweise als Ein-Mann-GmbH & Co. KG den Computer- oder Softwaremarkt bereichern? Dann sollten Sie unbedingt unseren Beitrag „Gründungsfieber" auf der Seite 31 lesen, um aus berufener Feder viele wertvolle Hinweise für Ihre Geschäftstätigkeit unter marktwirtschaftlichen Bedingungen z u erhalten.

Vorschau Für das Heft 10/1990 bereiten wir für Sie unter anderem folgende Beiträge vor: • Lokale Netze • Standardisierte Betriebssysteminterfaces • Screen-Safer • Datenbanken im Vergleich 1

Alternativen zu MS-DOS

Multitasking-Betriebssysteme

für den 80x86 Uwe Schulze,

Berlin

MS-DOS ist zwar das mit Abstand meistverkaufte Betriebssystem für PCs - nicht aber das einzige. Insbesondere die Möglichkeiten neuerer Prozessoren werden von anderen Systemen weit besser genutzt. Als Alternativen zu MS-DOS fallen Ihnen sicher zuerst Unix oder OS/2 ein; OS/2 setzt sich aber entgegen dem Willen von IBM nur zögernd durch. Dafür gibt es vor allem drei Gründe: © Die Auslieferung erfolgte erst ein Jahr nach der Ankündigung und wichtige Komponenten (Presentation Manager, LAN-Manager) waren noch später oder nur in einer (fehlerhaften) Vorabversion erhältlich. © Echte OS/2-Software ist rar. Die meisten übernommenen Programme bieten kaum Vorteile gegenüber den DOS-Versionen. In den Fenstern des Presentation Managers liefen lange Zeit nur die Tabellenkalkulation Excel (Microsoft) und WordPerfect 5.0 /1/. Gleiches Bild auch bei den netzwerkfähigen Anwendungen: Hier hat sich Novell einen großen Marktanteil gesichert. ® OS/2 läßt sich nur auf Geräten der oberen Leistungsklasse effektiv einsetzen. Obwohl auf dem 80286 lauffähig, bringt nur ein 386er die Vorteile wirklich zum Tragen. Schon für die Basisvariante sind 2 MByte Hauptspeicher nötig; die Extended Edition mit Presentation Manager fordert 5,5 MByte! In den Zeiten teurer Speicherbausteine war das keine Werbung für ein Betriebssystem. In diese Marktlücke sind eine Reihe anderer zum Teil recht leistungsfähiger Betriebssysteme gestoßen. Sie bieten Multitasking- und zum Teil auch Multiuserfähigkeiten (siehe Kasten auf Seite 3) und nutzen einen größeren Adreßraum als 1 MByte. MS-DOS kann die Möglichkeiten der Hardware (Protected Mode des Prozessors, Hauptspeicher oberhalb der 1-MByteGrenze nur mit XMS-Treiber oder über Extender) nicht effektiv ausnutzen. Grund dafür ist der Versuch, kompatibel zu bleiben und möglichst alle vorhandene Software lauffähig zu halten. Die meisten der neuen Multitasking-Systeme bieten hier Erstaunliches: Mehrere DOS-Programme sind gleichzeitig im Hintergrund oder parallel in mehreren Fenstern lauffähig. So können entweder zeitaufwendige Anwendungen (Berechnungen, Drucken) in den Hintergrund verlegt werden oder aber es werden Anwendungen im Hintergrund einfach stehengelassen, beispielsweise ein Ausschnitt einer Textverarbeitung, auf den von Zeit zu Zeit ein Blick geworfen werden soll, während im Vordergrund an etwas anderem gearbeitet wird. Einige Betriebssysteme bieten deshalb auch eine Nutzeroberfläche, die es Hintergrundprozessen erlaubt, in einem Fenster präsent zu sein. Microsoft Windows Microsoft-Windows will eigentlich gar nicht so recht zur Überschrift passen, die da „Alternativen zu MS-DOS" heißt - handelt es sich doch um kein neues Betriebssystem, son-

2

dern um eine grafische Nutzeroberfläche, die nachträglich auf DOS aufgesetzt wurde, um die Bedienung zu vereinfachen (siehe auch unser Titelbild). Allerdings ist in beschränktem Umfang Multitasking möglich, mehrere Anwendungen können gleichzeitig in verschiedenen Fenstern beobachtet werden, und es existiert eine Programmierschnittstelle zu C/2/. Um die Vorzüge der 32-Bit-Prozessoren von Intel ausnutzen zu können, wird eine angepaßte Version Windows 386 angeboten, die im Virtual Mode mehrere MS-DOS-Tasks laufen läßt. Windows ordnet sich in IBMs SAA-Konzept (Systems Application Architecture) ein, das einer einheitlichen Darstellung und Bedienung zum Durchbruch verhelfen soll. Auch die Übernahme von WindowsSource-Kode für den Presentation Manager soll möglich sein. Für den Nutzer zeigt sich SAA in der Mausbedienung (für Windows ein Muß), dem einheitlichen Menüaufbau, den Leuchtbalken und den Sinnbildern (Icons). Microsoft liefert eine Die 8088

Intel-Prozessorfamilie Der Prozessor des ersten IBM PC. Es handelt sich um einen Prozessor mit interner 16-Bit-Architektur und einem externen 8-Bit-Datenbus. Das hatte vor allem den Vorteil, daß eine Reihe von 8-Bit-Peripherieschaltkreisen weiterhin verwendet werden konnten. Der 8088 verwaltet 1 MByte Speicher in Segmenten von 64 KByte.

8086

Dieser Prozessor ist voll befehlskompatibel zum 8088, besitzt aber einen externen 16-Bit-Bus. der die Übertragung beschleunigt. Verbesserter 16-Bit-Prozessor, der aber kaum Verwendung in PCs fand; man findet ihn auf einigen Netzwerkkarten. Der Prozessor des IBM PC/AT. Er kennt einen neuen Betriebsmodus (Protected Mode) und kann 16 MByte Hauptspeicher direkt (bzw. 1 Gigabyte virtuell) adressieren. Ein echter 32-Bit-Prozessor, der einen weiteren Betriebsmodus kennt (Virtual Mode), in dem mehrere 8086Prozessoren emuliert werden können. Der Prozessor adressiert 4 Gigabyte Hauptspeicher direkt (virtuell 64 Terabyte) und verfügt über eine MMU (Memory Management Unit, deutsch: Speicherverwaltungseinheit). Die Segmentgröße ist auf 4 Gigabyte erweitert.

80186

80286

80386

80386SX Dieser Prozessor ist voll befehlskompatibel zum 80386, besitzt aber nur einen externen 16-Bit-Datenbus. Er wird besonders attraktiv durch seinen Preis, der nur wenig über dem des 80286 liegt. 80486 Der neuste 32-Bit-Prozessor, der besonders schnell ist, weil ein Teil des Mikrokodes durch Schaltungen ersetzt wurde. Er besitzt bereits einen Arithmetikkoprozessor, eine MMU und einen Cache-Speicher auf dem Chip. In MP 9/89, S. 278 finden Sie eine ausführliche Vorstellung des 80486.

Reihe von Utilities mit (Uhr, Taschenrechner, Notizblock), die die Nachbildung der (unaufgeräumten) Schreibtischoberfläche (englisch: Desktop) auf dem Bildschirm demonstrieren sollen. Sie zeigen zumindest, wie man sich die gleichzeitige Abarbeitung von Programmen unter Windows vorzustellen hat. Die gleichzeitige Ausführung mehrerer Programme erfordert die Teilung aller Ressourcen. Neben der Tastatur und dem Bildschirm müssen auch der Hauptspeicher, der Prozessor und die Schnittstellen vom Betriebssystem verwaltet werden und sind von der exklusiven Nutzung durch ein Programm ausgeschlossen. Windows kennt kein prioritätsgesteuertes Multitasking; alle Anwendungen werden gleichberechtigt behandelt. Programme, die eigens für Windows geschrieben wurden (Microsoft nennt in seinem Applikationsverzeichnis 94 professionelle Anwendungen), also das Windows Application Program Interface (API) nutzen, sind quasi gleichzeitig in verschiedenen Fenstern lauffähig. Der Start auf Betriebssystemebene (d. h. außerhalb von Windows) ist nur mit einem Run-time-Modul möglich. Für alle anderen (DOS)-Anwendungen benötigt Windows eine sogenannte PIF-Datei (Program Information File), in der der Ressourcenbedarf festgelegt Ist. Das betrifft den notwendigen und den erwünschten Hauptspeicherbedarf sowie den exklusiven Zugriff auf Bildschirm, Tastatur und Schnittstellen. Belegt ein Programm keine Systemressourcen exklusiv (das heißt, es hält sich an die BDOS-Schnittstelle), so ist es auch vollständig unter Windows lauffähig und behindert keine anderen gleichzeitig ablaufenden Programme. Beispielsweise kann für Debug.com eine PIF-Datei angelegt werden (Windows stellt dafür das Programm Pifedit zur Verfügung), die es erlaubt, in einem Fenster zu debuggen, während in einem anderen Fenster gerechnet wird oder die Uhr läuft. Desgleichen kann Command.com problemlos in einem Fenster laufen. Anwendungen, die direkt auf den Bildschirm zugreifen (und dazu gehört jede grafische Ausgabe) können zwar von Windows gestartet werden, laufen aber nur im Vollbildmodus. Der gesamte Bildschirm wird zur Verfügung gestellt und es Ist kein Multitasking möglich (bei Windows 386 geht sogar das) - die bereits laufenden Anwendungen werden eingefroren. Benötigt eine Anwendung mehr Hauptspeicher als noch frei ist, so lagert Windows sich selbst sowie einen Teil der Windows-Programme bis auf einen kleinen residenten Kern aus. Dieses sogenannte Swapping stellt eine einfache Form virtueller Speicherverwaltung dar. So können mehrere Anwendungen abgearbeitet werden, deren Gesamtgröße die Hauptspeichergröße weit überschreitet. Es gibt zwei Wege, Windows zum Auslagern von Programmteilen zu veranlassen: Entweder wird als erwünschter Speicherplatz in der PIF-Datei minus Eins angegeben, oder die Anwendung läuft explizit im Vollbildmodus (direkten Bildschirmzugriff eintragen). Statt des Anlegens einer PIF-Datei können Standardwerte auch in der Datei Win.ini festgelegt werden. Diese ähnelt der Datei Config.sys und enthält Angaben zur Konfiguration von Windows. Der Eintrag command.com = 32 Mikroprozessortechnik, Berlin 4 (1990) 9

Begriffe Multitasking: Unter Multitasking wird die scheinbar gleichzeitige Abarbeitung mehrerer Programme (englisch: tasks) verstanden. Echtes Multitasking ist nur auf einem Mehrprozessorsystem möglich, wo jedes Programm von einem eigenen Prozessor bedient wird. Das Betriebssystem übernimmt die Zuteilung von Rechenzeit, Speicherplatz und Zugriffsrechten auf die Peripherie. Auf einem PC (der nur über einen Prozessor verfügt) erfolgt die Zuteilung von Rechenzeit nach dem sogenannten Zeitscheibenverfahren (englisch: time-sharing), bei dem jedes Programm nach einem festen Zeitintervall (wenige Millisekunden) vom Betriebssystem unterbrochen wird und das nächste Programm zu seinem Recht kommt. Für den Anwender entsteht damit der Eindruck der gleichzeitigen Abarbeitung. MS-DOS ist im Gegensatz dazu ein Singletasking-System. Residente Programme (auch TSR-Programme - Terminate and Stay Resident - genannt) laufen unter MS-DOS nicht im Multitasking-Betrieb, da zu einem Zeitpunkt nur jeweils ein Programm aktiv ist; die anderen Programme werden im Hintergrund eingefroren. Dieses Verfahren wird auch context switching genannt. Multiusersystem: In einem Multiusersystem arbeiten mehrere Nutzer (englisch: user) mit eigenen Bediengeräten (Terminals) an einem Computer. Voraussetzung dafür sind Multitasking-Fähigkeiten des Betriebssystems. Je nachdem, ob die Terminals über einen eigenen Prozessor verfügen oder nicht, werden intelligente und nichtintelligente Terminals unterschieden. Multiusersysteme schaffen gute Voraussetzungen für eine Programmentwicklung im Team, da gemeinsam auf alle Ressorcen zugegriffen werden kann. Andererseits ist aber eine leistungsfähige Hardware vonnöten, da sie unter allen Nutzern aufgeteilt wird. Protected Mode: Die Intei-Prozessoren der 80x86er Serie beherrschen verschiedene Betriebsmodi. Im Real Mode-den alle Prozessoren kennen und der aus Kompatibiiitätsgründen beibehalten wird - kann nur 1 MByte Hauptspeicher adressiert werden, was die oft zitierte Grenze für MS-DOS bildet. Im Protected Mode (deutsch: schützender Modus), der ab dem 80286 zur Verfügung steht, können 16 MByte (80286) bzw. 4 Gigabyte (80386, 80486) adressiert werden, und es bestehen Zugriffsbeschränkungen auf Speicherbereiche der einzelnen Programme. Damit wird ein gegenseitiges Oberschreiben verhindert, die Programme also voreinander geschützt (daher der Name). Der Protected Mode ist Voraussetzung für effektives Multitasking, im Virtual Mode den nur 80386 und 80486 kennen - werden mehrere 8086-Prozessoren emuliert. Er erlaubt damit die gleichzeitige Abarbeitung auch von solchen Programmen, die direkt auf Ressourcen zugreifen, da jedes Programm einen eigenen Interruptvektor und einen eigenen Bildschirmspeicher erhält. Die Prozessoren starten stets im Real Mode und können softwaremäßig (durch Setzen eines Bits im Steuerregister) umgeschattet werden. Im Glauben, damit eine höhere Sicherheit zu erreichen, wurde allerdings beim 80286 das softwaremäßige Rückschaiten in den Real Mode unterbunden, so dgß Programme, die darauf angewiesen sind (z. B. DOS-Extender) zu zeitaufwendigen Tricks greifen müssen. Mit dem 80386 ist diese Beschränkung aufgehoben. Virtuelle Speicherverwaltung: Bei der virtuellen Speicherverwaltung wird ein größerer Hauptspeicher simuliert, als tatsächlich vorhanden ist, indem das Betriebssystem bei Bedarf Programmteile, die gerade nicht benötigt werden, auf die Festplatte auslagert (Swapping). Diese Technik wird von modernen Prozessoren direkt unterstützt. So kann der 80286 bis zu 1 Gigabyte externen (virtuellen) Speicher auf bis zu 16 Megabyte Hauptspeicher abbilden.

Mikroprozessortechnik. Berlin 4 (1990) 9

legt einen Speicherbedarf von 32 KByte für den Kommandointerpreter fest und bewirkt, daß dieser auch o h n e PIF-Datei gestartet w e r d e n kann. A n s o n s t e n verweigert Wind o w s die Ausführung von S t a n d a r d a n w e n dungen. Z u m Schreiben v o n Windows-Applikationen liefert Microsoft d a s Windows Software Development Kit /3/. Es besteht aus Bibliotheken für den Microsoft-C-Compiler, die alle I/ O - O p e r a t i o n e n und Funktionen zur dynamischen Speicherverwaltung ersetzen. Auf diese W e i s e braucht die g e s a m t e B e d i e n u n g der Fensteroberfläche (Vergrößern, Verkleinern und Verschieben v o n Fenstern, Ausw a h l v o n Menüpunkten, etc.) nicht stets neu programmiert zu w e r d e n . Multitasking kann entweder durch explizite Übergabe der Steuerung erreicht w e r d e n oder über sogenannte Message Loops. Es handelt sich dabei u m eine spezielle Programmschleife, die auf eine Tastatureingabe wartet, w ä h r e n d es W i n d o w s gestattet ist, weiter über die Steuerung zu verfügen. Darüber hinaus w e r d e n Editoren für die Icons, die Fonts und die Dialogboxen geliefert, die es erlauben, die Bildschirmgestaltung v o n P r o g r a m m e n interaktiv zu entwikkeln. Der Ressource-Compiler macht daraus d a n n linkbare Dateien. Ein spezieller Linker wird mitgeliefert - m a n benötigt aber noch den Optimierungscompiler von Microsoft für die Übersetzung der eigentlichen Prog r a m m e . Die Version 3.0 v o n M S - W i n d o w s (Freigabe Mai 1990) w u r d e sowohl im Aussehen, als auch in der inneren Struktur stark an den Presentation M a n a g e r von O S / 2 angeglichen. Dazu gehört die Aufteilung in den Prog r a m m - und den Dateimanager sowie die integrierte Hilfefunktion. Vorteil an W i n d o w s bleibt aber weiterhin, daß schon mit 640 KByte bzw. 1 MByte Hauptspeicher gearbeitet w e r d e n kann. N a c h schleppender Marktakzeptanz erlebt M S - W i n d o w s inzwischen einen solchen Verkaufsboom, daß auf Drängen von IBM beschlossen w o r d e n sein soll, die Entwicklung mit der Version 3.0 abzuschließen, u m den Vertrieb v o n O S / 2 nicht zu behindern IM. D e m widerspricht allerdings die Ankündigung von W i n d o w s 4.0 bis Ende 1990 unter Berufung auf Microsoft n a h e s t e h e n d e Quellen /5/.

PC-MOS/386 P C - M O S der Firma „ T h e Software Link Inc." ist keine D O S - E r w e i t e r u n g (wie Windows), sondern ein vollständig neues Betriebssystem. Allerdings ähnelt es M S - D O S im Aufbau stark: Es besteht aus entsprechenden Systemdateien, einem vergleichbaren Kommandointerpreter, kennt die Dateien Config.sys und Autoexec.bat. Beim flüchtigen Hinsehen wird m a n k a u m bemerken, nicht mit M S - D O S zu arbeiten. Fast sämtliche internen und externen D O S - K o m m a n d o s stehen zur Verfügung - zuzüglich eigener Erweiterungen. PC-MOS-Befehle unterscheiden sich von ihrem D O S - P e n d a n t durch einen vorangestellten Punkt /6/. Das S y s t e m wird multitasking- u n d multiuserfähig, indem an jede Task über eine serielle Schnittstelle (bis 115 200 Baud) ein Terminal angehängt wird. Das mitgelieferte Prog r a m m Emulink versetzt a u c h Standard-PCs in die Lage, als Terminals zu fungieren. M a n kann P C - M O S als 1-, 5- oder 25-Platz-Version erwerben. Aber auch die Single-UserVersion ist von Nutzen, d a m a n die Multitas-

kingfähigkeiten ausnutzen kann. Das spätere Einfügen weiterer T a s k s einschließlich des z u g e o r d n e t e n Speicherplatzes, der Portn u m m e r (für den Anschluß von Terminals), der Übertragungsgeschwindigkeit, d e r T a s k n u m m e r u n d des Startup-Files kann jederzeit mit d e m Befehl .Addtask erfolgen. Auf eine grafische Nutzeroberfläche und die Mausunterstützung w u r d e verzichtet; alles läuft wie bei D O S im K o m m a n d o z e i l e n m o dus. Die B e d i e n u n g ist aber (trotzdem oder gerade deshalb?) recht leicht, und beliebte Hilfen wie der Norton C o m m a n d e r können problemlos genutzt werden. Da alle A n w e n d u n g e n den g e s a m t e n Bildschirmspeicher beanspruchen, ist immer nur ein P r o g r a m m sichtbar - w a s aber die anderen nicht hindert, fleißig im Hintergrund zu arbeiten. Z u m Umschalten des Bildschirms auf ein anderes Programm muß m a n < A l t > und die N u m m e r der Task auf d e m rechten Ziffernblock drükken. Die Systemtask trägt dabei die N u m m e r 0. Ein Umschalten zu M S - D O S ist leider nicht möglich. Da es sich bei P C - M O S u m ein vollständiges Betriebssystem handelt, hilft nur neu booten v o n einer anderen Partition oder v o n der Diskette. W i r d die Festplatte für PCM O S eingerichtet, so kann das erste logische Plattenlaufwerk bis 32 MByte auch v o n MSD O S a n g e s p r o c h e n w e r d e n ; für P C - M O S gibt es keine Beschränkungen auf 32 MByte. O b w o h l im N a m e n enthalten, beschränkt sich die Nutzung von P C - M O S nicht auf 386er Rechner. Allerdings sichert nur er über den Virtual M o d e ein Z u s a m m e n s p i e l auch v o n P r o g r a m m e n , die direkt auf Systemressourcen (z. B. Bildschirmspeicher) zugreifen. Ein zweites Problem ist der Speicherplatz, der reichlich v o r h a n d e n sein sollte. So reserviert sich P C - M O S beim Start mit 4 Hinterg r u n d p r o z e s s e n großzügig etwa 3,5 MByte. Auf e i n e m 286er benötigt P C - M O S spezielle M M U - K a r t e n ( M e m o r y M a n a g e m e n t Unit) u m den Extended M e m o r y über 1 MByte adressieren zu können (auch E M S ist möglich) 1 . Für eine Reihe von Standardkarten w e r d e n Treiber mitgeliefert. P C - M O S gestattet eine sequentielle, gepufferte Kommunikation der Prozesse über Pipes. Eine andere Möglichkeit ist der exzellente NetBIOS-Emulator. A b Version 3.0 können Rechner unter P C - M O S in Novell-Netze e i n g e b u n d e n werden. Beim gleichzeitigen Lauf von P r o g r a m m e n in verschiedenen T a s k s gibt es bei den bekannten S t a n d a r d a n w e n d u n g e n keine Behinderungen. Wenngleich A n w e n d u n g e n unter P C - M O S sogar schneller laufen sollen als unter D O S /7/, so habe ich festgestellt, daß s o w o h l B e r e c h n u n g e n als auch einige Interaktionen (Blättern im Editor v o n Turbo-Pascal) deutlich langsamer waren. Einziger S c h w a c h p u n k t scheint die Sicherheit bei der Terminalarbeit zu sein. Nicht nur die fehlende A b s c h i r m u n g beim Dateizugriff ist bedenklich; v o n der S y s t e m k o n s o l e kann a u c h in die P r o g r a m m e auf d e n angeschlossenen Terminals eingegriffen werden. Die neue Version 4.0 soll aber eine entscheid e n d e V e r b e s s e r u n g der Terminalarbeit bringen.

Concurrent DOS Die Firma Digital Research konnte ihr 16-Bit-

1 Über die verschiedenen A r t e n von Speichererweiterungen wird in M P 3/89, S. 8 9 ausführlich informiert.

3

Multitasking im MS-DOS-Hintergrund Auch unter dem Single-Tasking-Betriebssystem MS-DOS 3.xx können beliebige Funktionen in Multitasking-Eigenschaften versetzt werden. Im Bereich Entwicklung wissenschaftlich-technischer Ausrüstungen des Kombinates Carl Zeiss JENA wurde hierzu das Programm DOSFRAME entwikkelt. Es ermöglicht für eine Nutzerfunktion eine komplette Taskumschaltung. Im installierten Interrupttendier von DOSFRAME ist eine Schnittstelle zum Multiplexinterrupt eingebunden, die eine Kommunikation mit dem Prozeß erlaubt, nachdem er resident installiert wurde. Über diese Schnittstelle können Funktionsanforderungen und Daten an DOSFRAME oder an die eingebundene Nutzerfunktion übermittelt werden. Der Nutzer wird durch DOSFRAME von aller Systemarbeit bei der Entwicklung von unter Multitasking-Eigenschaften laufenden residenten Programmen entbunden. Bei Verwendung eines 8086-Rechners (5-MHz-Takt) hat DOSFRAME eine Taskumschaltzeit von weniger als sechs Millisekunden. Da für eine Zeitbilanz nur die synchronen Aufrufe von Bedeutung sind, läßt sich auf eine maximale Prozessorbelastung von etwa 10 % schließen. Hier ist die Laufzeit der Nutzerfunktion nicht berücksichtigt. Es werden bei maximaler Generierung 4 KByte Hauptspeicherkapazität benötigt. Durch die Generierung kann unter anderem eine Wahl der taskumschaltenden Ereignisse erfolgen, die Generierung eines Hotkey zum Starten und Stoppen der Nutzerfunktion veranlaßt oder die beim Start der Nutzerfunktion gültigen Werte für die Aufrufdauer oder die Aufrufhäufigkeit festgelegt werden. Bei der Erprobung von DOSFRAME wurden unterschiedlichste Nutzerfunktionen realisiert (Wecker, RAM-Diagnose, Directory-Überwachung). Dabei erwies sich DOSFRAME als sehr nutzerfreundlich und flexibel. Da eine Vielzahl von Programmen unter der Inkompatibilität von MS-DOS 4.xx leiden, bietet DOSFRAME den Nutzern von MS-DOS 3.xx die Chance, den ProzeShintergrund zu erschließen. MP

Betriebssystem CP/M-86 (und erst recht Concurrent CP/M) nie gegen MS-DOS durchsetzen, erkannte aber schon recht früh die Mängel der bestehenden Systeme und entwickelte Concurrent DOS (im folgenden kurz CDOS genannt). Heute werden Concurrent DOS XM für 8086- und 80286-Prozessoren und Concurrent DOS 386 für 80386er angeboten. Es handelt sich um ein Multitaskingund Multiusersystem, das zu DOS 3.3 kompatibel ist. Als Terminals (an einer seriellen Multiportkarte) fungieren PCs, von denen in der Grundversion 3 und in der erweiterten Version 6 (CDOS XM) bzw. 10 (CDOS 386) mit einer Übertragungsrate bis zu 38400 Baud angeschlossen werden können. Wahlweise kann menügeführt (mit Dateimanager FM.CMD) oder auf Kommandoebene gearbeitet werden. Dazu stehen sämtliche von MS-DOS bekannten Befehle (zumeist verbessert oder durch menügeführte Versionen ersetzt), einige CP/M-Utilities (hier kann CDOS seine Herkunft nicht leugnen) sowie 26 zusätzliche Funktionen zur Verfügung. Damit soll etwas mehr Komfort geboten werden, als man es von MS-DOS gewohnt ist. Beispielsweise wird die einfache Belegung der Funktionstasten (auch mit < A l t > , < C t r l > und < S h i f t > ) durch das Programm Function. cmd unterstützt. Ferner ist ein Paßwortschutz für Dateien und Verzeichnissen integriert. Zur Programmentwicklung für die Betriebssystem-Schnittstelle liefert Digital Research den C/CMX-Compiler. Wird vom Multitasking Gebrauch gemacht, so kann der Window-Manager installiert werden, der es erlaubt, bis zu 4 Anwendungen in verschiedenen Fenstern zu beobachten. Wie in den PIF-Dateien von MS-Windows müssen dazu einige Informationen über den Ressourcenbedarf der Programme (hier Programmcharakteristik genannt) zur Verfügung gestellt werden. Jedes Fenster kann auch auf den ganzen Bildschirm ausgedehnt (gezoomt) oder anderweitig in Größe und Position geändert werden. Die Umschaltung zwi4

Mux H:34S1

Bild 1 Concurrent DOS XM ist multitasking- und multiuserfähig. Maximal 4 Fenster können in ihrer Größe und auch farblich frei gestaltet werden.

schen den Tasks erfolgt mit < C t r l > und < 1 > bis < 4 > auf dem rechten Ziffernblock. Es ist möglich, beliebige Tasks per Kommando abzubrechen und aus dem Speicher zu entfernen, was auch bei residenten Programmen korrekt läuft. CDOS ist - da auch hier viel Hauptspeicher vonnöten ist - besonders auf Expanded Memory ausgerichtet. Die XM-Version enthält bereits entsprechende Treiber. Zwar ist CDOS auch auf 640 KByte lauffähig, doch stößt man dann sehr schnell an die Speichergrenzen, zumal die Vergabe an die einzelnen Programme nicht dynamisch erfolgt. Sie können CDOS und MS-DOS (ab 3.3) gemeinsam auf einer Festplatte installieren, beim Booten wird abgefragt, ob CDOS geladen werden soll. Es ist aber auch später noch möglich, CDOS aus MS-DOS heraus (wie ein Programm) mit Loadsys.com zu starten. Ebenso wie PC-MOS (eine tabellarische Gegenüberstellung finden Sie in/8/) stellt CDOS eine Alternative zu Unix- oder LAN-Lösungen dar. Die Einbindung in Novell-Netze ist möglich - allerdings vorzugsweise zum Filetransfer, da dafür nur die Vordergrundtask genutzt werden kann. Prioritäten kennt CDOS nicht; es wird mit einem festen Zeitscheibenverfahren (1/60 Sekunde) gearbeitet. Aus dem Hause Digital Research gibt es auch noch ein anderes (vollständig MS-DOSkompatibles) Betriebssystem: DR-DOS. Es wird im Gegensatz zum Vorbild nicht nur an OEM-Kunden verkauft, sondern kann einzeln (auch ohne Hardware) erworben werden. Aufgrund des günstigen Preises (etwa 150 DM) bieten aber auch immer mehr Hardwarehersteller ihre Produkte mit DR- statt mit MS-DOS an. Mit der Version 5.0 sollen bisher bemängelte Unzulänglichkeiten ausgeräumt sein - und sie besitzt sogar einen nicht unbeträchtlichen Vorteil gegenüber MS-DOS. Fast das gesamte Betriebssystem kann zwischen den Bildschirmspeicher und das ROMBIOS oder in den Extended Memory ausgelagert werden, so daß der Nutzer den

gesamten Speicher bis zum Bildschirmadapter zur freien Verfügung hat. DESQview DESQview der Firma Quarterdeck Office Systems ähnelt in vielem MS-Windows. Es handelt sich ebenfalls um einen Zusatz für MSDOS, der multitasking-, nicht aber multiuserfähig ist. Die 386er Version im Virtual Mode arbeitet mit mehreren DOS-Kopien. Es kann Extended und Expanded Memory Verwendung finden, so daß der einzelnen DOS-Anwendung mehr Hauptspeicher zur Verfügung steht als unter einem originalen MS-DOS. Jede Anwendung kann bis zu 15 MByte Hauptspeicher nutzen; mindestens sollte 1,5 MByte vorhanden sein, da sonst das Swapping die Arbeit stark verlangsamt. Durch die Vergabe von Prioritäten kann die Leistung der einzelnen Anwendung beeinflußt werden. Der mitgelieferte Expanded Memory Manager (QEMM) ist aber auch für MS-DOS hilfreich. DESQview arbeitet mit einer Fensteroberfläche; nichts erinnert mehr an die Zeiten von Kommandozeilen. In den Fenstern kann grafisch gearbeitet werden, und auch mit residenten Programmen gibt es keine Probleme. Unterstützt werden ferner Programme, die mit DOS-Extendern für den Protected Mode geschrieben wurden. DESQview ist in alle wichtigen lokalen Netze voll integrierbar, darunter Novell Netware und OS/2-LAN-Manager. Hier ist nicht nur einfacher Filetransfer möglich; die Netzanwendungen vertragen sich auch mit dem Multitasking-Betrieb (z. B. Netzarbeit im Hintergrund). Allerdings ist dabei ein recht ungünstiges Zeitverhalten in Kauf zu nehmen. Zur Programmentwicklung wird - ähnlich wie bei Windows - ein Application Program Interface (API) angeboten. Es nutzt den Interrupt 15H und ist vor allem für die Verwaltung sämtlicher Ein- und Ausgaben in Warteschlangen zuständig. Neben den C-Bibliotheken gibt es auch noch Schnittstellen für Pascal, Basic, dBase und Clipper. Unterstützt wird die Programmentwicklung ebenfalls durch einen Menügenerator (hier Panel Designer genannt). VM 386 VM 386 ist ein Betriebssystem von ganz beMikroprozessortechnik, Berlin 4 (1990) 9

sonderer Qualität. Wie schon der Name (VM = Virtual Machine) sagt, werden im Virtual Mode des Prozessors (ein 80386 ist erforderlich) mehrere virtuelle DOS-Rechner nachgebildet. Sie können einzeln konfiguriert werden (einschließlich der Zuordnung von Peripherie und der Festlegung von Prioritäten) und sind vollständig voneinander abgeschirmt. Diese Abschirmung geht so weit, daß in jeder Task eine andere DOS-Version gefahren werden kann. Konsequenterweise gilt auch ein Warmstart (--) nur für die jeweils aktuelle Task. Der Start von VM 386 erfolgt aus einem eigenen Verzeichnis heraus im Kommandomodus von DOS. VM 386 ist auch multiuserfähig, der Anschluß von Terminals erfolgt aber nicht über die serielle Schnittstelle, sondern mit einem sogenannten Host-Controller. Er ist als Zusatzhardware notwendig - die Terminalarbeit verbessert sich aber entscheidend. So kann auf den als Terminal eingesetzten PCs im Grafikmodus gearbeitet werden. Weiterhin sind auch die Terminals (Nodes genannt) multitaskingfähig. VM 386 benötigt mindestens 2 MByte RAM und unterstützt alle gängigen Grafikstandards. Für die Arbeit im Netzwerk wird das VM 386 NetPak angeboten. . . . und O S / 2 Trotz der anfangs erwähnten Schwierigkeiten hat OS/2 Chancen, die Nachfolge von MS-DOS anzutreten, da IBM und Microsoft die Marktführer sind. OS/2 ist multitaskingfähig, beliebig viele OS/ 2-Anwendungen können gleichzeitig ablaufen, zusätzlich noch ein MS-DOS-Programm in der sogenannten Kompatibilitätsbox. Hier wird ein DOS-Rechner vollständig nachgebildet - einschließlich des Kommandoprozessors Command.com. OS/2 nutzt einen eigenen Kommandointerpreter (Cmd.exe) oder die grafische Nutzeroberfläche, den Presentation Manager. Für das Umschalten zwischen den Programmen ist der Session Manager ( ) zuständig. Auf Mehrbenutzerarbeit hat man für ein Einprozessorsystem bewußt verzichtet, statt dessen setzt man voll auf Vernetzung: Der OS/2-LAN-Manager soll Novell Netware Konkurrenz machen. Zur Beschleunigung der Plattenarbeit bietet OS/2 ab Version 1.2 das neue Dateisystem HPFS (High Performance File System). Es kann alternativ zum alten FAT-Dateisystem (File Allocation Table) installiert werden. Deshalb nennt Microsoft es Installable File System (IFS) und läßt damit den Weg offen, später noch weitere Dateiverwaltungen zu unterstützen und wie Treiber einzubinden. Das HPFS wirkt der starken Fragmentierung entgegen und ist besonders bei großen Dateien bis zu 4mal schneller als das alte FAT-System. Dateinamen sind nicht mehr auf 8 Zeichen beschränkt; später soll auch zwischen Groß- und Kleinschreibung unterschieden werden. Ein Plus von OS/2 gegenüber den anderen vorgestellten Systemen ist, daß bereits Compiler für alle wichtigen Programmiersprachen zur Verfügung stehen. Sie unterstützen das OS/2 Application Program Interface (API), denn der alte Sammelinterrupt 21H ist im Protected Mode natürlich tabu. Um aber weiterhin die Entwicklung von MS-DOS-Anwendungen zu ermöglichen, wird zusätzlich eine DOS-konforme Schnittstelle angeboten, die Family Application Program Interface (FAPI) heißt. Und während die anderen Systeme zumeist Mikroprozessortechnik, Berlin 4 (1990) 9

„nur" ein Multitasking von Programmen bieten, die noch den DOS-Beschränkungen (640 KByte Hauptspeicher) unterliegen, sind bei OS/2 diese Schranken wirklich aufgehoben. Informationen zu Preisen und Vertriebsbedingungen aller gängigen DOS-ähnlichen Multitasking-Betriebssysteme finden Sie in 19/. Literatur /1/ Borchers, D.: Gefräßiger Geselle: IBMs Pesentation Manager und OS/2 Extended Edition. ¡X Multiuser- Multitasking-Magazin, Hannover (1989) 2, S. 25

121 Microsoft Corporation: Microsoft Windows, Benutzerhandbuch. 1987 /3/ Microsoft Corporation: Microsoft Windows, Software Development Kit, Programmer's Learning Guide. 1987 /4/ IBM und Microsoft geraten sich über OS/2-Zukunft in die Haare. Computerwoche, München 16 (1989) 49 151 Windows 4.0 Ende 1990? PC-Woche, München 5 (1990)22, S.3 /6/ The Software Link, Incorporated: PC-MOS, Modular Operating System, User Guide. 1988 m db: PC-MOS/386 - echtes Multitasking unter MS-DOS. DOS International. München (1988) 8, S. 70 /8/ Zietlow, M: Multitasking-Betriebssysteme im Vergleich. in DOS International, München (1989) 8, S. 39 /9/ Parker, T.: Multitasking operating system enhancement for the 386. Computer Language (1989) 11

Auto-Anwendertreffen Am 27. Juni 1990 führte die CeTEC in OstBerlin ein erstes Treffen für AutoCAD-Anwender aus Ost (und West) durch. CeTEC ist eine Arbeitsgemeinschaft von Ost- und West-Berliner Firmen und Ingenieuren, die seit längerer Zeit auf AutoCAD spezialisiert sind. Leistungen im gesamten Umfeld dieses Programmes werden auf dem in der DDR entstehenden Markt angeboten, eine gemeinsame Firma ist im Entstehen. Das Interesse an der Veranstaltung war rege. Unter den Teilnehmern waren Vertreter von etwa 65 Firmen und Institutionen der gesamten DDR. Besucher aus West-Berlin und dem Bundesgebiet waren neben dem Leiter der Niederlassung der Firma Autodesk (dem Hersteller von AutoCAD) in Frankfurt am Main und dem Herausgeber einer CADFachzeitschrift überwiegend an Kontakten interessierte Anwender aus mehreren Bereichen. Da dieses Treffen hauptsächlich generelle Informationen vermitteln sollte, wurden Händler bereits vorher gebeten, die an sich

erwünschten Selbstdarstellungen auf einen späteren Zeltpunkt zu verschieben. Fachleute aus allen Bezirken der DDR berichteten über ihre Erfahrungen mit AutoCAD und stellten eigene Entwicklungen auf verschiedenen Anwendungsgebieten vor. Gemeinsam mit profilierten Anwendergruppen der DDR und mit Autodesk soll für eine im Oktober 1990 geplante nächste Veranstaltung versucht werden, eine vorläufige Liste von in der DDR entwickelten Branchenlösungen und Hilfsmitteln (z. B. ADI-Treiberfür DDR-Technologie) zusammenzustellen und die Gründung einer AutoCAD-Anwendergruppe anzuregen, die als allgemeine Basis für den Austausch von Informationen dienen soll.

El KONTAKT ® PCAII, D. Kittner, Rosenbecker Straße 19, Berlin, 1143; Tel. 3 3 1 69 74

Prozeßkommunikation in UniX'kompatibien Betriebssystemen Prof. Dr. U w e Hübner,

Chemnitz

Anspruchsvolle Rechneranwendungen sind oft dadurch gekennzeichnet, daß zur Erfüllung einer Aufgabe mehrere Prozesse quasiparallel ablaufen und kooperieren müssen. Beispiele dafür sind unter anderem Datenbanksysteme mit gleichzeitigem Zugriff durch mehrere Benutzer, Transaktionssysteme (Platzbuchung, ...), Prozeßsteuerungs- und Überwachungssysteme. Die kooperierenden Prozesse können in unterschiedlichen Prozessoren ablaufen oder aber in einem Prozessor, auf dem durch eine Betriebssystemschale ein Mehrprozeßbetrieb organisiert wird. In beiden Fällen sind Mechanismen erforderlich, die Wechselwirkungen verschiedener Prozesse realisieren; dabei muß einerseits ein Zeitbezug bzw. eine definierte Reihenfolge von Aktivitäten verschiedener Prozesse hergestellt werden (Synchronisation) und andererseits müssen Daten aus einem Prozeß in einem anderen Prozeß verfügbar gemacht werden (Informationsübermittlung).

Die Mechanismen für die Lösung dieser Aufgabe in Unix-kompatiblen Betriebssystemen möchte ich Ihnen im folgenden Beitrag vorstellen (nach IM, 121). Die Mechanismen lassen sich in verschiedene Klassen einteilen (gemeinsame Speicherbereiche, ereignisorientierte Konzepte, Botschaften). Für die in den folgenden Abschnitten dargestellten Programmbeispiele wird ein gemeinsamer Modul (Err.c) für Fehlermeldungen und Instrumentierung vorausgesetzt (Bild 1). Gemeinsame Speicherbereiche Der Prozessor kann ablaufenden Prozessen zu relativ willkürlichen Zeitpunkten entzogen werden, was unzusammenhängende, inkosistente Daten in den gemeinsamen Speicherbereichen zur Folge haben kann. Um dies zu vermeiden, dürfen mehrere Prozesse nicht gleichzeitig in Programmabschnitte eintreten, in denen auf solche gemeinsamen Speicherbereiche zugegriffen wird (beispielsweise mit den im nächsten Abschnitt beschriebenen Semaphoren). Den gleichen Ef-

5

¿'include ^include ì/include

i'include extern char * shmadr; extern int msgsemid, acksemid; main() { char c; ipcinitQ ; regtime( ).; V(acksemid); do { ?(msgs emi d); '.'• .:*ten auf Mac bricht vom Sender */ c = " sfrnadr; /* Nachricht aus v/er ten (hier nur 1 . By te) */ V(acksemid); /* Entnahme der Nachricht signalisieren */ } while (c == 0); prtime("reader"); ipcend(); ipcrem(); exit(0) ;

extern int errno, sys_nerr; extern char * sys e r r l i s t [ ] ; extern long timesT) ; struct tms tb1, tb2; /* Beginn und Ende */ long atimel , ati-ne2; /* detaillierte Fehlermeldung ausgeben */ void error(msg) char * msg; { fprintr( ctder:-, "error : %s ( , ,isg , ormo) ; i f (errno > 0 && errno < sys_nerr) fprintf (stderr, " : 7»s)\n", sys_errli st[ errno ]) ; eise fprintf(stderr, ")\n"); }

Bild 3 Empfangsprozeß

/* detaillierte Fehlermeldung ausgeben und Abbruch */ void fatal(:nsg) char * msg; }

error(-isg) : exit(1 ) ;

/* falsche Argumente beim Programmaufruf */ usage(s) char * s; { fprintf (stderr, "usage : f»s\n" , s) ; exit(1 ) ;

/* Ende eine.- Zeitmessung, Zeit (user + system) ausgeben */ void prtime(s) char * s; { i f ((atime2 = ti-nes(3:tb2)) == -1) f atal (" times" ) ; print f("%s: % 1d\n", s , ^ tb2 .tms_utine-tb1 . tms_utime+tb2 . tms_stime-tb1 . tu s_u t in e } ; und

Programm-Instrumentierung

{

i f (arge != 2) { fprintf(stderr, "usage: htestl msganzahlXn"); exit(1); } ent = atoi(argv[1]); i-)ci -iit() ; ,-hile (ent— > 0){ P(ackse-nid) ; / • '.'arten auf "ntnahme der lezten Nachricht '•'/ i f (ent == 0) *r>h-v • - 1: /'•• letzts Nachricht */ eise *shmadr = 0; V(msgscnid) ; /* Hi^nalisieren der I'achricht an En^f •" } nrtimeC'writer" ); i-occndO ; cxit(0);

}

Routinen für Speicherbereiche

Die Umrechnung des Zugriffsschlüssels in ein Speichersegment liefert den Segmentidentifikator oder - 1 bei Fehlern, int shmget (key, nbytes, flags) long key; zwischen den Benutzern vereinbarter Schlüssel int nbytes; Segmentgröße int flags; Berechtigungen bei neuen Segmenten usw.

mit Sema•

struct s embuf sb ; sb.s em_op = -1; sb . sera_f lg = 0; sb .sem_num = 0; i f (semonisid, &sb, 1) == -1) ratal("semop");

/* Semaphoroperation "V" - freigeben '*/ void V(sid) int sid; { struct sembuf sb; sb . sem_op = 1 ; sb . s em_f lg = 0; sb . sem_nu;n = 0; i f (semop(sid, ¿sb, 1) == -1) fatal("semop");

Speicher

fekt erreichen Sie, wenn auch mit etwas drastischeren Mitteln, indem Sie während der betreffenden Programmteile die Prozeßumschaltung überhaupt sperren. Dies ist in Anwenderprogrammen aber nur auf Prozessoren ohne System/User-Modusunterscheidung möglich (¡8086). Gemeinsame Bereiche (shared memory) sind erst in System V realisiert; ihre Handhabung erfolgt durch einen Satz spezieller Systemrufe:

6

}

SsmanhorODeration "P" - pruefen \ind (evtl.) v/arten */ void ?(lid) int sid;

•Tain(arge , argv ) int arge; char * argv[]; { int ent;

Bild 4 Gemeinsame phor-Koordination

/* gemeinsamen Speicher und Semaphoren initialisieren */ iocinit() c i f ((staid=shmget(3HMXEY,SHMLEN,IPC_CREATI0666)) == -1) fatal("shnget"); shmadr = shmatC stmid, 0 , 0) ; /* Sebent zuweisen */ i f C(int) shjiadr « -1) f atal ( " shmat" ); i f ((:iisgseiiiid=seriiget(SE!I1KEY,1 ,IPC_CREATI0666)) == -1) fatalC'semget"); i f ((acksemi d=3emget(SEM2KEY,1, IPC_CHEAT I 0666) ) == -1) fatalO'semget"); /* Zuordnung des gemeinsamen Speichers wieder aufheben */ it>cend( ) r i f (shmdt(sknadr) == -1) fatal("slmdt"):

''inclüde extern char * shmadr; extern int msgsemid, acksemid;

Bild 2 Sendeprozeß für gemeinsamen

Speicher

int shmid; /* Identifikator des gemeinsamen Spei ch ersehn ent s */ char * sn ' m adr; /* Adresse des gemeinsamen Segments */ int msgsemid, acksemid; /* Semaphor-Identifikatoren */ extern char * shmatO ;

/* beginn einer Zeitmessung, Zeiten registrieren */ voi { d regtim e() i f ((atime1=times(&tb1 )) == -1) fatal("tim es");

Bild 1 Fehlermeldungen

für gemeinsamen

//include include /'include include "Include #define SIMKEY 2234567 »"define SBM1 KEY 2234566 ^/define SEM2KEY 2234565 '-define SHMLEN 0x3000



/* Entfernen al1er erzeugten IPC-Objekte */ void iocrem() t i f (semctlCmsgsenid, IPC_E)IIID, 0) . . -1) fatal("r : . " ) ; i f (sene11(acksemi d, IPC_!i'IID, 0) -1 ) f atal ( " se-nc 11 " ) ; i f (stectl(shnid,IPC_R:-;iD,0) ». -1) f atal (11 stac 11 " ) ;

Das Segment zuordnen (in den eigenen Adreßbereich abbilden); liefert die Segmentadresse oder - 1 bei Fehlern, char * shmat (segit, addr, flags) intsegid; Segmentidentifikator char * addr; gewünschte Adresse, 0 - beliebige Adresse int flags; Die Segmentzuordnung aufheben; liefert 0 bei Erfolg mit - 1 bei Fehlern, int shmdt (addr) char * addr; Segmentadresse Steuerfunktionen; liefern 0 bei Erfolg oder - 1 bei Fehlern. int shmctl (segid, emd, sbuf) intsegid; Segmentidentifikator int emd; Kommando, z. B. IPC-RMID - Bereich entfernen struet shmid_ds * sbuf; Zeiger auf Statuspuffer

Ereignisorientierte K o n z e p t e In diese Kategorie wurden Konzepte eingeordnet, die nur Synchronisationsaufgaben erfüllen, aber keine Daten übermitteln; dazu gehören Signale und Semaphore. Signale Signale sind in allen Versionen vorhanden, es gibt aber Abweichungen der Signaltypen und deren Semantik. Das Senden eines Signals erfolgt mit dem Systemruf Kill: int kill (pid, sig) liefert 0 bei Erfolg, - 1 bei Fehlern int pid; Prozeßnummer des Empfängers; 0 - an jeden Prozeß der Prozeßgruppe senden int sig; Signalnummer, Symbole aus Signal.h verwenden Mikroprozessortechnik, Berlin 4 (1990) 9

Bild 5 Botschaftenkommunikation über eine Datei

#include #lnclude char buf[0x8000]; / * Schreibprozess * / writer(wfd, len, cnt) i n t wfd, l e n , c n t :

• ' i - 'uO.o < n t r l i o . h > c h a r hui"" 0 x 3 0 0 0 ] ; / * Schreiborozess * / writer('.vfd, len, cnt) i n t wfd, l e n , cnt;

{

{

ragtime(); while (cnt— > 0){ i f ( c n t == 0 ) / * l e t z t e N a c h r i c h t » / b u f [ 0 ] - 1 : ^ i f ( w r i t e ( w f d , b u f , l e n ) « a-i) f a t a l ( " w r i t e " ) ;

}

}

nrtineC'writer") ;

prtime("writer"); / * Le s e p r o z e s s * / r e.id e r ( r f d , l e n ) i nt r f d , l e n ;

/ * Leseprozess * / reader(rfd, len) int rfd, len; ( i n t 1;

{

regtimeO; while ( ( l = r e a d ( r f d , buf, l e n ) ) !=-"!){ i f ( l = - 0 ) S l e e p d ) ; / » BOP b e i D a t e i » / i f Cbuf [ 0 ] l= 0 ) { p r t i m e C r e a d e r " ) ; r e t u r n ; }

}

}

fatalCread");

( a r g e != 3 ) u s a g e ( " d t e s t m s g l e n g t h m s g c o u n t " ) ; ( ( w f d = o p e n ( " P r o t o k o l l " , 0_VRONLYlO_CRBAT, 0 6 0 0 ) ) = = - 1 ) fatal("open"); switch ( f o r k ( ) ) { oase - 1 : fatal("forkM); case 0 : / * c h i l d w i r d Bmpfaenger * / i f ( ( r f d = o p e n ( M p r o t o k o l l " , 0_RD0NLY))== - 1 ) f a t a l C ' o p e n " ) ; reader(rfd, atoi(argv[1])); break; d e f a u l t : / * p a r e n t w i r d Sender * / ^ writer(wfd, atoi(argv[1]), atoi(argv[2])); wait((char *) 0); unlink("protokoll"); exit(0);

Signale eignen sich aber so, wie sie konkret implementiert sind, nicht gut als planmäßige Kommunikationsmechanismen; ihre Domäne ist die Behandlung von Ausnahmesituationen. Semaphore Semaphore sind ein bekannter Elementarbaustein für die Prozeßkooperation, sie sind in System V verfügbar: Die Umrechnung des Zugriffsschlüssels in einen Identifikator liefert den Semaphor-Identifikatoroder - 1 bei Fehlern, int semget (key, nsems, flags) long key; zwischen den Benutzern vereinbarter Schlüssel int nsems; Semaphoranzahl intflags; Berechtigungen usw. Die Semaphoroperation liefert den Semaphorenwert vor der Operation oder - 1 bei Fehlern. int semop (sid, ops, nops) Mikroprozessortechnik, Berlin 4 (1990) 9

r e t u r n ;}

•TiainC a r g e , a r g v ) i n t arge ; * argv[]; { int pfd[2J; i f ( a r g e != 3 ) u s a g e C ' p t e s t m s g l e n g t h n s g e o u n t " ) ; i f CDipeCpfd) — - 1 ) f a t a l ( " p i p e " ) ; switch ( f o r k ( ) ) ( cas e - 1 : fatalC"fork"); case 0 ; / * c h i l d w i r d Empfaenger * / / * nicht benoetigten Deskriptor wieder freigeben i f CcloseCpfd[1]) -= - 1 ) f a t a l O ' c l o s e " ) ; readerCpfd[0], atoi(argv[1])); break; d e f a u l t : / * p a r e n t w i r d Sender * / i f C c l o s e C p f d [ 0 ] ) == - 1 ) f a t a l C ' c l o s e " ) ; writerCpfd[1], atoi(argv[1]), atoi(argv[2]));

if if

Als Einschränkung ist zu betrachten, daß die Prozeßnummer des Empfängers bekannt sein und der Sender über die entsprechende Berechtigung gegenüber dem Empfänger verfügen muß (gleicher effektiver Nutzer oder Superuser). Signale werden nicht gepuffert, das heißt dicht aufeinanderfolgende Signale können verlorengehen oder schlimmer: unerwünschte Wirkungen beim Empfänger haben. Nur in den 4BSD-Versionen werden Signale gepuffert. Die gezielte Reaktion eines Empfängers auf ein bestimmtes Signal wird erreicht, indem dieser mit dem Systemruf Signal ein Behandlungsprogramm für das eintreffende Signal vorplant: Der folgende Systemruf liefert die alte Behandlung oder - 1 bei Fehlern, int (* signal(sig,fcn))() intsig; Signalnummer, Symbole aus Signal.h verwenden int (*fcn)(); neue Signalbehandlung

re; ; t i m e ( ) ; Vf h:. I g ( ( r e a d ( r f d , b u f , l e n ) ) != - 1 ) { Lf ( b u f [ 0 ] != 0 ) { ? r t i m e ( " r e a d e r " ) ; f atalO'read") ;

main(arge, argv) i n t arge; char * a r g v [ ] ; { i n t r f d , wfd;

t

regtimeO ; w h i l e ( c n t — > f/include #include Mefine MOY 1234567 ohar buf[0x5000];

Eine Message empfangen; liefert Byteanzahl oder - 1 bei Fehlern. int msgrcv (qid, buf, nbytes, mtype, flags) int qid; Warteschlangenidentifikator struet msgbuf * buf; Zeiger auf Message int nbytes; Länge der Message long mtype; Message-Type, OL - Typ beliebig int flags;





i f ((wfd=socket(PF_UNIX, S0CK_DGRAM, 0)) == -1) fatal("soc' -t"); regtimeC); while (ent— > 0) { i f (ent == 0) buf[0] = 1; while (sendto(wfd, buf, len, 0, äsockad, S0CSIZ)) == -1) { i f (errno != EN0ENT) fatal("sendto"); sleep(1): /* reader noch nicht aktiv */ }

prtimeO'writer") ;

/* Leseprozess */ reader(rfd,len) Int rfd,len; { int 1;

}

Eine Message senden; liefert 0 bei Erfolg oder - 1 bei Fehlern, int msgsnd (qid, buf, nbytes, flags) int qid; Warteschlangenidentifikator struet msgbuf * buf; Zeiger auf Message int nbytes; Länge der Message int flags;

writer(len, ent) int 1en, ent; { int wfd;

regtime(); while Cent— > 0){ i f (ent == 0) /* letzte Nachricht V ouf'O] - 1; i f (msgsnd('.'" , buf , len, 0) == -1) fatal("nsgsnd"); }

}

int msgget (key, flags) long key; zwischen den Benutzern vereinbarter Schlüssel int flags; Berechtigungen

define S0CSIZ sizeof(struet sockaddr) struet sockaddr sockad; char buf[0x4000]; char * socknn.Tie = "tsock";

/* Schreibprozess */ writer(wfd,len,cnt) int wfd,1en,ent; {

0_NDELAY bei Open verwendet wird. Ein späteres Read erfolgt dann aber auch nichtblockierend, das heißt ein Empfänger müßte wie beim Datei-Konzept den Fifo zyklisch abfragen. Eine vorteilhafte Alternative dazu folgt weiter unten.

}

regtim e( ) ; while ((l=msgrcv(rfd,buf,1en,OL,0)) != -1) { i f (buf[0] ! = 0) { prt iti e( "reader" ) ; return;} } fatal("msgrcv");

}

-nain(argc , argv) int arge; char * argv[]; { int wfd,rfd; i f (arge != 3) usage("mtest msglength nsgeount"); switch (fork()){ case —1: fatal("fork"); case 0: /* child wird Empfaenger */ i f ( (rf d=Tisgget(IIKEY , 0666 | IPC_C^3A'n) ) = = -1) f atal ( "-nsg^ct" ) ; reader(rfd,atoi(argv[1 ])); break; default: /* oarent wird Sender */ i f ( (wfd=msgget(MKEY, 0666 | IPC_CRJ3A?) ) = = -1) f atal (%3.^-r.»';, writer(wfd,atoi(argv[1]),atoi(argv[2])); }

wait( (chrv* *) 0) ; exit(O); Bild 8 Botschaftenkommunikation

über Messages

prtime("writer"); close(wfd);

readerC1en) int len; { int rfd; i f ( (rfd= socket(PF_UNIX , S0CK__DGRAM, 0) ) == -1) fatal ("socket") ; i f (bindCrfd, iso n:.-.;'., S0CSIZ) — -1) f atal ("bind") ; regtimeC); for ( ; ; ) { i f (readCrfd, buf, len) =• -1) fatal("read"); i f (buf[0] »= 1) break; )

)

prtime("reader"); clos e(rfd) ; unlink(socknanie);

raain (arge, argv) int arge; char *argv[]; { i f (arge != 3) usage(M3test msglength msgeount"); sockad.sa_family = AF_UNIX; 3trcpy(sockad.sa data, sockname); switch (forkQ) T case (-1): fatal("fork") ; case 0: /* child wird Empfaenger "/ reader(atoi(argv[ 1 ])) ; break; default: /* parent wird Sender */ writer(atoi(argv[1]), atoi(argv[2])); }

Bild 9 Botschaftenkommunikation

8

über Sockets

wr,it (); exit(0); Mikroprozessortechnik, Berlin 4 (1990) 9

Die Steuerfunktionen liefern 0 bei Erfolg oder - 1 bei Fehlern, int m s g c t l (qid, c m d , s b u f ) int q i d ; Warteschlangenidentifikator int c m d ; Kommando, z. B. I P C - R M I D -Bereich entfernen s t r u c t m s q i d - d s * s b u f ; Zeiger auf Statuspuffer Die Angabe Mtype kann vom Empfänger zur Auswahl aus mehreren eingegangenen Messages verwendet werden. Beim Senden muß ein Wert ungleich 0 im Mtype-Feld von buf übergeben werden. Eine Prozeßkommunikation mit gleicher Funktionalität wie in den vorangegangenen Abschnitten ist in Bild 8 dargestellt. Sockets Einen anderen Weg ist man in den 4BSDVersionen gegangen; das Kommunikationsobjekt wird hier als Socket (Steckdose) bezeichnet. Es kann mit speziellen Systemrufen (socket, send, recv, . . . ) aber auch mit Read/Write manipuliert werden 131. Die neue Qualität besteht darin, daß nicht nur Prozesse in einem Rechner miteinander kommunizieren können, sondern auch solche in verschiedenen Rechnern, die auch über nahezu beliebige Datenkommunikationssysteme (LAN, WAN) miteinander verbunden sein können. Ein Problem ist dabei allerdings die Adressierung des Empfängerprozesses. Wenn sich der Empfängerprozeß auf dem gleichen Rechner befindet, kann bereits ein Dateiname im lokalen Dateisystem zur Identifizierung der Verbindung dienen; bei lokalen oder landesweiten Netzen muß eine Rechnerund eine Prozeßnummer verwendet werden. Den unterschiedlichen Aufwand beim Adressieren berücksichtigt man durch Adreßfamilien (Domänen): AF-UNIX Dateinamen im lokalen Dateisystem AF_INET ARPA-Netz (TCP/IP-Protokolle) Den unterschiedlichen Forderungen an die Zuverlässigkeit der Informationsübertragung wird durch eine Typenangabe Rechnung getragen: SOCK_DGRAM Datagramme ohne Sicherung gegen Verlust SOCK_STREAM verbindungsorientierte, gesicherte Übertragung SOCK_SEQPACKET wie STREAM, aber Erhaltung der Paketgrenzen S0CK_RDM gesicherte Datagrammübertragung S0CK_RAW für Protokolltest usw. Das Beispiel der letzten Abschnitte läßt sich auch mit Sockets programmieren (Bild 9). Bei dem hier verwendeten Datagramm-Mechanismus können Fehler auftreten, wenn der Sender die Daten so schnell liefert, daß sie vom System nicht mehr gepuffert werden können; in praktischen Anwendungen sind solche Fälle zu berücksichtigen (oder es sind Stream-Sockets zu verwenden). Der D a t e n d u r c h s a t z Um Vorstellungen über die Rechnerbelastung und den möglichen Umfang des Informationsflusses mit den verschiedenen vorgestellten Methoden zu erhalten, wurde mit den angegebenen Programmen die von Sende- und Empfangsprozeß in Anspruch genommene Rechenzeit (Summe aus User time und System time) für eine bestimmte übermittelte Nachrichtenmenge bestimmt Mikroprozessortechnik, Berlin 4 (1990) 9

und in einen Durchsatzwert umgerechnet. Dieser Wert gilt unter der Annahme, daß keine weiteren Prozesse laufen. Die Untersuchungen erfolgten für eine Nachrichtenmenge von 256 KByte und verschiedene Botschaftenlängen mit dem System P8000/WEGA: Botschattenlänge

Durchsatz in KByte/s

in Byte

Datei

Pipe

Fifo

32 128 512 2048

2,5 16 36 44

3,5 23 74 100

3,5 23 75 100

Erwartungsgemäß ist der Transport kleiner Botschaften mit großem System-Overhead verbunden, die Mechanismen Pipe und Fifo weisen keine nennenswerten Unterschiede auf. Messages und Sockets waren in der benutzten WEGA-Version nicht verfügbar. Anwendungsbeispiel Eine V.24-Schnittstelle des Rechners wird als Kopplung zu einem externen Prozeß genutzt. Das können beispielsweise Meßsysteme, zu testende Rechnerstrukturen oder ähnliches sein. Diese Schnittstelle soll nun von verschiedenen Benutzern quasi gleichzeitig verwendet werden. Die Prozeßkoppelschnittstelle und der externe Prozeß können immer nur eine Anforderung entgegennehmen und geben darauf sofort eine Antwort. Derartige Probleme werden oft unter Benutzung einer Datei als Semaphor für die Zugriffserlaubnis gelöst; ein Beispiel dafür ist die Belegung einer Rechner-Rechner-Leitung durch Uucp/cu. Dies ist mit einer sehr hohen Rechnerbelastung verbunden, wenn die Benutzer häufig wechseln (d.h. Dauer der Belegung durch einen Nutzer < 1s). In prozeßorientierten Systemen kann man das dargestellte Problem so lösen, daß man einen Koordinationsprozeß einführt, der allein berechtigt ist, die ihm unterstehende Ressource (hier die Schnittstelle zum externen Prozeß) zu benutzen. Andere Prozesse müssen sich als Kunde (client) an den Bediener (Server) wenden, um ihre Wünsche ausgeführt zu bekommen. Das Client-Server-Modell ist über den hier dargestellten Anwendungsfall hinaus in vielen Fällen nützlich (Multiuser-Datenbanken, Namensvergabe...). Die Client-Prozesse müssen mit dem ServerProzeß kommunizieren. Bei der Basis P8000/WEGA ist dafür ein auf dem Fifo-Mechanismus aufbauendes Botschaftenkonzept vorteilhaft einsetzbar. Die einzelnen Client-Prozesse übergeben ihre Anforderungen an den Server-Prozeß in einem Fifo mit dem Namen Reqfifo. Da der Systemruf Write auf einem Fifo unteilbar ist (d. h. in ihm keine Prozeßumschaltung stattfindet), werden die Anforderungen unterschiedlicher Client-Prozesse korrekt in der Reihenfolge ihres Eintreffens registriert. Der Server-Prozeß entnimmt Immer eine Botschaft aus Reqfifo und führt die in ihr geforderte Aktivität aus. Meist wird eine Antwort bzw. Bestätigung an den jeweiligen Kunden zu übertragen sein. Hier ist das die Information vom externen Prozeß. Für diese Richtung kommt man nicht mit einem einzigen Fifo aus, sondern man braucht für jeden Client-Prozeß einen separaten Fifo. Dieser erhält den Namen Fito-XXXXXX, wo-

bei für XXXXXX die Prozeßnummer des Client-Prozesses eingetragen wird. Damit der Server-Prozeß seine Kunden auseinanderhalten kann, vergibt er Kundennummern. Ein neuer Kunde muß sich also erst unter Angabe des Namens seines individuellen Empfangs-Fifos anmelden und erhält als Antwort eine Kundennummer, unter der er sich zukünftig meldet. Im Server-Prozeß sind die Filedeskriptoren eine knappe Ressource, da ein Prozeß nur eine begrenzte Zahl von Dateien oder Fifos (meist 20) gleichzeitig geöffnet haben kann. Kunden, die die Dienstleistung nicht mehr benötigen, müssen sich daher abmelden. Der Empfangs-Fifo wird vom Server-Prozeß geschlossen, der entsprechende Filedeskriptor ist wieder frei. Die beschriebenen Zusammenhänge bei Anmeldung, normaler Diensterbringung und Abmeldung sind in Bild 10 dargestellt. Im Programm Client.c (Bild 11) und Server.c (Bild 12) wird auf die Implementierung des Botschaftenkonzepts in Msg.c (Bild 13) zurückgegriffen; notwendige Deklarationen zu den Botschaften enthält msg.h (Bild 14).

Ser ,er reqfifo einrichten zum Lesen öffnen

dient . reQfifo zum Schreiben öffnen

reqfifo

und

lesen

send „ neuer Hunde " f i f o _ XX XXX einrichten und zum Lesen öffnen

freie Kundennummer ja

?

\nein

fifo-XXXXX zum I Kundennummer Schreiben öffnen \ ist (-1) (Ablehnung) send „ Kundennummer Abbruch bei „Ablehnung

" "

Benutzerwunsch send „ Benutzerwunsch

" externer

Prozeß

Ausführung send „ Antwort

"exferner

Antwort" an

Prozeß

Benutzer

Benutzerabmeldung send „ Abmeldung

"

fifO-XXXXX werden

entfernt

i dient

Bild

10

kann

Streichen aus Kundenliste, fifo-XXXXX schließen

endet

Client-Server-Protokoll

In der Prozedur Openfifo wird ein nichtblokkierendes Open ausgeführt, anschließend aber (für nachfolgende Read-Rufe) wieder der danach sinnvollere, blockierende Modus eingestellt. Bei der Prozedur Receive muß trotzdem mit dem Rückgabewert 0 von Read gerechnet werden, nämlich dann, wenn keine Kunden vorhanden sind. Nur in diesem Fall wird zyklisch abgefragt. Zur Übersetzung dieses etwas umfangreicheren Beispiels soll hier noch der Inhalt des verwendeten Makefiles angegeben werden: client: client.o msg.o err.o msg.h cc client.o msg.o err.o -o client Server: server.o msg.o err.o msg.h cc server.o msg.o err.o -o Server Zum Erproben dieses Anwendungsbeispiels ist zuerst der Server im Hintergrund zu starten: %server/dev/ttyO & Anschließend können Client-Prozesse aufgerufen werden. Als Anforderung und Ant9

^Include //include //include y/include



"msg.h"

^include < s t d i o . h > #include < f c n t l . h > #include "msg.h"

//define CLMAX 3 /* maximale K l i e n t e n z a h l

extern char * char * char * 3truct

*/

extei'n i n t e r r n o ; char * progname; char * fifoname = " r e q f i f o " ; s t r u c t ratype mbuf; i n t fdtabtCLMAX];

/* ¡Client beenden, r x f i f o e n t f e r n e n * / clexit(wfd)

{

/* S e r v e r beenden, " r e q f i f o " e n t f e r n e n */ terrainateO { unlink(fifoname); exit(O):

}

errno = 0; switoh ( s i s ) c a s e SIGHUP: c a s e SIGIUT: c a s e SIGPIPE: default:

mbuf.mlen = 0; /* Abmeldung * / i ? (••3ftnd(wfd, c n b u f ) == - 1 ) e r r o - C ' - o n d " ) ; s l e e ? ( 5 ) ; /* Unterbrechung des S e r v e r s v e n e i d e n unlink(rxna«ne); exit(0)j

}

sighdl(sig) int sig;

{

{

e r r o r ( " s i g h u p " ) ; break; e r r o r ( " s i g i n t " ) ; break; e r r o r ( " s i g p i p e " ) ; break; error("badsig");

progname = a r g v [ 0 ] ; i f (arge != 1) { f p r i n t f ( s t d e r r , exit(1);

( ( w f d = o p e n f i f o ( f i f o n a m e , OJr/RONLY) ) == - 1 ) fatalC'open r e q f i f o " ) ; rxname = mktemp("fifo_XXXXXX"); strcpy(rabuf.mdata, rxname); mbuf.mlen • s t r l e n ( r x n a m e ) + 1 ; mbuf.index = ( - 1 ) ; i f (send(wfd, &nbuf) == - 1 ) e r r o r ( " s e n d r e q u e s t " ) ; i f ( ( r f d * o p e n f i f o ( r x n a m e , 0_RD0NLY)) == - 1 ) f a t a l C ' o p e n " ) ; i f ( r e c e i v e ( r f d , &nbuf) -1) errorC'receive"); idx = mbuf.index; i f ( i d x == - 1 ) { f p r i n t f ( s t d e r r , " t o o many u s e r s \ n " ) ; e x i t ( 1 ) ; } e i s e p r i n t f ( " i n d e x : %d\n",idx);

}

*/

0_WR0NLY)) »= - 1 ) {

f o r ( i d x = 0 ; i d x < CLIIAX; idx++) i f ( f d t a b [ i d x ] == - 1 ) { f d t a b [ i d x ] = wfd; mbuf.index = i d x ;

}

Bild 12 Client-Prozeß •

}

#include #include //include ^include #include i/include

/* A u f t r a g s a u s f ü h r u n g f u e r einen bekannten K l i e n t e n */ oldclient(wfd, fdtty) i n t wfd, t i f v ; { int le; (mbuf.mlen -= 0) { /* Abmeldung »/ i f ( c l o s e ( w f d ) == - 1 ) e r r o r ( " c l o s e " ) ; fdtabTmbuf.index] = - 1 ;

/* H e r s t e l l e n (wenn notwendig) und o e f f n e n e i n e s PIPOs * / i n t openfifo(fna.m-,:.• :: .-\r';vr ] ; { it wfd, r f d ; int fdtty; i n t idx; nrognane = a r £ v [ 0 ] ; i f ( a r g e != 2 ) { f p r i n t f ( s t d e r r , progname) ; e x i t (1 ) ;

} "usage:

Tis devname\n",

}

/* 0 NDELAY wieder a u s s c h a l t e n */ i f ( T c n t K f d , P_SETFL, f l a g s ) == - 1 ) return(fd);

return(-l);

send(wfd, wbuf) i n t wfd; s t r u c t mtype

wbuf;

1 } : * e t u r n ( w r i t e ( , wVaf, IISGLEU));

/* a l l e f d ' s a l s u n b e l e g t markieren */ f o r ( i d x = 0 ; idx < CLMAX; idx++) f d t a b [ i d x ] = ( - 1 ) ; ( ( r f d = o p e n f i ? o ( f i f o n a m e , 0_RD0NLY)) == - 1 ) fatalC'open r e q f i f o " ) ; i f ( ( f d t t y = o p e n ( a r g v [ l ] , 0_RDWR)) == - 1 ) f a t a l C ' o p e n catchsig();



"msg.h"

^ d e f i n e MAXTRIES 5 # d e f i n e UTIME 3 extern int errno;

eise { i f ( w r i t e ( f d t t y , mbuf .mdata, mbuf.mlen) == - 1 ) error("write tty"); i f ( ( l e = r e a d ( f d t t y , mbuf.mdata, DATALEN)) == - 1 ) errorC'read t t y " ) ; mbu? ..Tilan = l e ; i f (send(wfd, &nbuf) == - 1 ) e r r o r ( " s e n d " ) ;

}

for ( ; ; ) { /* Warten auf e i n e Eingabe, " s l e e p " bei EOF */ while ( ( l e = r e a d ( 0 , mbuf.mdata, DATALEN)) == 0 ) s l e e p ( 2 ) ; mbuf.mlen » l e ; mbuf.index = i d x : i f (mbuf .mdata[0] == ' q ' ) c l e x i t ( w f d ) ; i f (send(wfd, Smbuf) == - 1 ) e r r o r ( " s e n d " ) ; i f ( r e c e i v e ( r f d , Smbuf) == - 1 ) e r r o r ( " r e c e i v e " ) ; w r i t e ( 1 , mbuf.mdata, mbuf.mlen);

break;

mbuf.mlen = 0; /* k e i n N a c h r i c h t e n f e l d */ i f (send(wfd, &nbuf) « - 1 ) e r r o r ( " s e n d " ) ; i f ( i d x == CLMAX) /* k e i n f r e i e r wfd */ i f ( c l o s e ( w f c t ) == - 1 ) e r r o r ( ' : o l o s e " ) ;

}

progname);

if

/* Aufnahme e i n e s neuen K l i e n t e n i n die f d - T a b e l l e newclientO { i n t idx; i n t wfd;.

if

" u s a g e : ?.s\n",

}

catchsigO { sianal(SIGHUP, s i s h d l ) ; sienal(SIRIN?, sishdl): Signal(SIGPIPE, s i s h d l ) ; sisnal(SIG"]3^II t t e r m i n a t e ) ;

C(wfd=openfifo(mbuf.maeta, errorC'openfifo"); return;

*/

m a i n ( a r g c , argv) i n t arge; char * argv[.]; { i n t wfd, r f d ; int fdtty; int le; int idx;

catchsigC);

if

char * mktempO; progname; fifonevoe = "„• •if i f o " ; rxnaue; ntype mbuf;

if

tty");

for ( ; ; ) { i f ( r e c e i v e ( r f d , Änbuf) — - 1 ) { e r r o r ( " r e e e i v e " ) ; contirr'.-»;

receive(rfd, rbuf) int rfd; s t r u c t mtype * r b u f ; { i n t 1; f

}

Ì

Bild '. •"sx >= CLHA^ I : (v.'fc' = fdtab[mbuf . i n d e x ] ) «« - 1 ) f p r i n t f ( s t d e r r , "un^no-•-. S.- ix: v'-oAn", * b u f . i n d e x ) ; olse oldclient(wfd, f d t t y ) ;

° i f ' ( ( l - r e a d ( r f d , r b u f , ÌISGLEN)) == - 1 ) r e t u r n ( - 1 ) ; i f ( 1 > 0 ) r e t u r n ( l ) ; e i s e sleep(l/'i'l:'E) ;

13

Botschaften-Modul

Í d e f i n e DATALEN 128 s t r u c t mtype ( i n t a l e n , i n d e x ; /* HEAD »/ ohar mdata[DATALEN];

};

¿ d e f i n e MSQLEN s l z e o f ( s t r u o t

}

mtype)

Bild 14 Deklaratlonsdatel

Bild 11 Server-Prozeß wort dient jeweils eine Textzeile; eine mit q beginnende Textzeile beendet den ClientProzeß. An der vom Server bedienten Leitung (hier: / d e v / t t y O ) dürfen keine weiteren Prozesse lesen. Das wird erreicht, indem sie als Mo-

10

dem-Leitung konfiguriert wird. Für Experimente kann man auch ein gewöhnliches Login-Terminal benutzen, auf dem ein Deaktivierungsprogramm gestartet wurde:

Die Funktionsweise des hier dargestellten Beispiels wird im Testsystem AGRUS /4/ genutzt, das Erweiterungen bei der Fehlerbehandlung, dem Leitungsprotokoll usw. enthält.

main() {close(O); pause();} Mikroprozessortechnik, Berlin 4 (1990) 9

Computerviren Dr. Bernd

Näther,

Dresden

Seit 1989 gibt es unter Betreibern und Nutzern der 16-Bit-Rechentechnik unseres Landes zunehmend Verunsicherung im Zusammenhang mit dem Auftreten sogenannter Computerviren. Diese Verunsicherung resultiert nicht nur aus den damit verbundenen Erscheinungen, sondern auch daraus, daß viele Medien der DDR dieses Thema mehr oder weniger unqualifiziert und nur andeutungsweise behandeln (77/, 121) und in der Fachpresse der DDR bisher darüber nur wenig veröffentlicht wurde 131. Durch Computervirenbefall entstehen erhebliche Risiken für die Nutzung von Rechentechnik, und auch in unserem Land sind erste Schäden durch Viren aufgetreten. Viren sind eine ganz spezielle Klasse von Störprogrammen, und insofern ist es nicht exakt, immer dann, wenn durchaus verschiedene Störprogramme gemeint sind, den Begriff Virus zu benutzen. So wird fälschlicherweise in /4/ von einem Virus ausgegangen, obwohl es sich um eine sogenannte verschlüsselnde Schadensroutine handelt (in /5/ ausführlich analysiert). Da derfolgende Beitrag der Virenproblematik gewidmet ist, sollen die weiteren Störprogramme lediglich übersichtshalber vorgestellt werden (siehe Bild 1). Die in der Abbildung enthaltenen Fragezeichen mögen andeuten, daß mit weiteren Typen von Störprogrammen durchaus gerechnet werden kann. Der Computerwurm ist ein selbständiges Programm, das sich in einem Rechnernetz ausbreitet, ohne dafür autorisiert zu sein, indem es für das Eindringen in vernetzte Rechner vorhandene Betriebssystemschwachstellen ausnutzt oder sich durch die Analyse und Aneignung der Paßworte anderer Nutzer deren Rechte aneignet. Ein Kettenbrief ist ein ebenfalls in Rechnernetzen auftretendes Störprogramm, das auf dem befallenen Rechner vorhandene Nutzeranschriften ermittelt und sich selbst einschließlich der Weiterverbreitungsfunktion an diese Anschriften übermittelt.

Fortsetzung

von S. 10

Literatur IM Rochkind, M. A.: Advanced UNIX Programming. Prentice Hall, Englewood Cliffs 1985 121 Bach, M. J.: The Design of the UNIX Operating System. Prentice Hall, Englewood Cliffs 1986 131 Gauweiler, T.: UNIX als Basis für verteilte Systeme, it 19 (1987)6,386-390 /AI Voigt, W.: A R G U S - flexibles Testsystem für verteilte Steuerungen. Tagung „Computer- und Mikroprozessort e c h n i k 8 8 " Berlin 1988

El KONTAKT ® Technische Universität Chemnitz, Sektion Informatik, PSF 964, Chemnitz, 9010; Tel. 6 6 8 4 6 4

Mikroprozessortechnik, Berlin 4 (1990) 9

Das als Trojanisches Pferd bezeichnete Störprogramm besitzt zwei wesentliche Bestandteile: Es enthält einerseits für einen Nutzer durchaus nützliche Funktionen, so daß er das von einem fremden Programmierer entwickelte Programm bereitwillig übernimmt, und andererseits eine verdeckte Störroutine. Diese Routine kann - ohne daß dies für den Nutzer sichtbar wird - Störfunktionen am Rechner ausführen (z. B. das Ermitteln von Paßwörtern). Logische Bomben sind Störprogramme, die erst bei Eintritt eines durch den Programmierer vorgesehenen Ereignisses Störungen verursachen können (z. B. das Löschen aller aktuellen Datenbestände). Derartige Programme sollen als Rache wegen Entlassung durch Programmierer in der Praxis tatsächlich eingesetzt worden sein, um so beispielsweise die Lohnauszahlung der Firma unmöglich zu machen. Ende 1989 mußte ein weiterer Typ von Störprogrammen - in dem Bild 1 mit verschlüsselnde Schadensroutine umschrieben konstatiert werden. Dieses Programm - unter Vorspiegelung falscher Tatsachen zur Nachnutzung an Forschungseinrichtungen, die sich mit der Bekämpfung des AIDS-Virus beschäftigen, auf Diskette versandt, verschlüsselt in Wirklichkeit die Namen aller in den Verzeichnissen stehenden Dateien, so daß eine Weiterarbeit mit dem Rechner fast unmöglich wird. (Eine etwas ausführlichere Vorstellung dieses speziellen Programms und der Möglichkeiten zur Behebung der entstandenen Schäden finden sie in einem der nächsten Hefte. MP) Um welche Schadensdimensionen es sich beim Auftreten von Störprogrammen handeln kann, soll zumindest am Beispiel eines in den USA im Rechnernetz INTERNET aufgetretenen Computerwurmes verdeutlicht werden: Innerhalb einiger Stunden sollen durch den Computerwurmbefall etwa 6000 Rechner davon betroffen worden sein. Viele Nutzer trennten sich daraufhin teilweise bis zu einer Woche frustriert vom Netz; die Beseitigung des Wurmes soll mehrere Mannjahre hochqualifizierter Sicherheitsexperten und Systemspezialisten gekostet haben. Was sind nun Computerviren und welche Gefahren gehen von ihnen aus? Vorerst soll diese Frage nur in sehr allgemeiner Form beantwortet werden: Ein Computervirus ist ein Störprogramm und somit eindeutig ein Softwareprodukt, in der Regel mit der Eigenschaft, durch beabsichtigte (manchmal einschließlich nichtbeabsichtigter) Störeffekte die Nutzung der Rechentechnik zu beeinträchtigen. Diese Störeffekte können gegebenenfalls zu nichtkorrigierbaren Schädigungen an Programmen und Daten, zur zeitweiligen Nichtverfügbarkeit der Rechentechnik und im Falle von Rechentechnik, die zur Prozeßautomatisierung eingesetzt wird, zu erheblichen Beeinträchtigungen - einschließlich Havarien - führen. So ist beispielsweise ein

Computerrrn

Trojanisches ' Pferd ¡

Computer- verschlüsselnde virus Schadensroutine

erster in der DDR aufgetretener Computervirenbefall in einer Prozeßautomatisierungsanlage dank glücklicher Umstände noch glimpflich ausgegangen, eine schwere Havarie wäre aber nicht auszuschließen gewesen. Die Schäden, die durch Computerviren verursacht werden können, sind somit keinesfalls zu vernachlässigen. Die Idee der Computerviren als sogenannte sich selbst reproduzierende Software wurde von F. Cohen /6/ auf einer Konferenz zu Fragen der Computersicherheit 1984 vorgestellt, nachdem er 1983 erste Experimente mit derartiger Software auf unterschiedlichen Rechnern mit verschiedenartigen Betriebssystemen vorgenommen hatte. Auf Grund der den biologischen Viren ähnelnden Eigenschaft dieser Software, sich selbst zu reproduzieren, prägte Cohen den Begriff Computervirus. Auf welche Weise und von wem dann erstmals in der Praxis Computerviren eingesetzt wurden, läßt sich heute nicht mehr feststellen. Sicher ist jedoch, daß im Gefolge der ab 1984 zunehmenden Publikationen das Interesse für Experimente mit derartiger Software geweckt wurde und wahrscheinlich eine ganze Anzahl heute existierender Viren ihrem Entwickler trotz guter Absicht regelrecht entglitten sind. Beim Softwareaustausch über Ländergrenzen hinweg sind viele Viren in verschiedene Länder (darunter auch in die DDR) regelrecht eingeschleppt worden, wobei ihre „Importeure" davon kaum Kenntnis gehabt haben dürften. Es muß aber auch deutlich gesagt werden, ohne die Motive solcher Leute erhellen zu wollen, daß es Softwarespezialisten gibt und geben wird, die ein wie auch immer geartetes Interesse an der Entwicklung oder Modifikation bzw. Verbreitung solcher Viren haben. Mit diesem Bedrohungspotential werden wir leben müssen - jährlich mehrere hundertausende infizierte Rechner (so wird gegenwärtig eingeschätzt) sind das Ergebnis. Eigenschaften und Wirkungsweise von Computerviren Es gibt im Ausgangszustand immer ein VirusTrägerprogramm (auch Urvirus-Programm genannt), das vom Virusprogrammierer entwickelt und damit Träger und Weiterverbreiter nachfolgender Infektionen anderer Programme wird (Bild 2). Das Virus ist also kein selbständiges Programm, es benötigt in allen Phasen seiner Existenz stets ein Trägerbzw. Wirtsprogramm. Ein Störprogramm wird als Computervirus bezeichnet, wenn es folgende Eigenschaften besitzt: • Das Störprogramm erkennt durch das am Anfang des Virus stehende Kennzeichenbyte eine bereits erfolgte Infizierung eines Fremdprogramms. • Es infiziert durch den Viruskern weitere Fremdprogramme, indem der Viruskode in ein noch nicht infiziertes, ausführbares Programm in spezifischer Art und Weise eingebaut wird, wobei alle Eigenschaften des Virus erhalten bleiben. • Es führt die in der Manipulationsroutine speziellen Manipulationsaufgaben aus.

logische Bombe

Kenn- Ivirus-ÌManipLìoricns¿P!Cheriy.ern \roí.t (FIBONACCI 4) I-> (FIBONACCI 3) I K > (FIBONACCI Z) III-> (FIBONACCI 1) U K - (FIBONACCI 1) III-> (FIBONACCI 0) III (FIBONACCI 2) II-> (FIBONACCI 1) II (FIBONACCI 0) I K - (FIBONACCI 1) K - (FIBONACCI 2) 1 ist, sonst gilt f(n) = 1. Bild 3 zeigt die Funktion Fibonacci, Bild 4 das Trace-Protokoll des Aufrufs von (Fibonacci 4). Der Aufrufbaum ist nicht mehr linear wie im vorhergehenden Beispiel, da auf jeder Rekursionsebene zwei Kopien der Funktion Fibonacci aufgerufen werden. Nach der Lösung dieses relativ einfachen numerischen Problems wollen wir uns nun wieder der Symbolverarbeitung zuwenden. Ein weiteres Beispiel für die rekursive Synthese von S-Ausdrücken ist eine Funktion, die Listen auf dem obersten Niveau kopiert. Da die in Common Lisp definierte Funktion CopyList etwas allgemeiner anwendbar ist als die folgende Definition, wollen wir sie MP-copylisp nennen (Bild 5). Allgemein wird in diesem Kurs immer dann ein Funktionsname mit dem Präfix MP versehen, wenn eine Funktion gleichen Namens im Common-Lisp-Standard existiert, aber die hier vorgestellte Funktion im Vergleich zum Standard nur eingeschränkt verwendbar ist. Die Auswertung von (MP-copy-list '(A B C)) liefert das in Bild 6 dargestellte Aufrufprotokoll.

Mul

-> MUL (4 2) I-> MOL (4 1) II-> MOL (4 0) II COPY-LAST-AUX ( ( C D ) ) I I I - > COPY-LAST-AUX ( ( D ) ) I U I > COPY-LAST-AUX ( N I L ) I H K - COPY-LAST-AUX ( H I L ) I I I < - COPY-LAST-AUX ( ( D ) ) I I < - COPY-LAST-AUX ( ( C D ) ) I < - COPY-LAST-ADX ( ( C D ) ) < - COPY-LAST-AUX((C D))

N N N N H N N N N N

= = = = = = = = =

2 2 2 2 2 2 2 1 0 0

LI LI LI LI LI LI LI LI LI LI

Bild 11 Definition der Funktion Copy-Iast

?

NIL (D) (C D) (C D)

Bild 12 Trace-Protokoll des Aufrufs (copy-last-aux) •(A B C D))

Mikroprozessortechnik, Berlin 4 (1990) 9

Einstieg in die soziale Marktwirtschaft undfinanz WIRTS'

bCbseLO"!?«"auïKteitetkurs Renditen1 ; tvt S^!'"*^' SSSS O ' tK*' O W ««fSSKS ?«£

\ ïsSHK

«der»* tour»

Pflichtblatt für Unternehmer und Führungskräfte Der Èrfoîg des politischen und ökonomischen Reformprozesses in der DDR hängt in hohem Maße von fundierten Wirtschafts- und Finanzinformationen ab, wie sie das Handelsblatt bietet. Das Handelsblatt spiegelt wie kein anderes Medium die Praxis der sozialen Marktwirtschaft, vermittelt die dringend notwendigen Kenntnisse über Auslandsmärkte, Außenhandelspartner, Export- und Importfinanzierung, modernes Management und grenzüberschreitende Kooperation. Keine andere Tageszeitung berichtet so umfassend, so komprimiert und nutzbringend über Wirtschaftspolitik, Unternehmen, Branchen, Märkte, Innovationen, Weltwirtschaft, Geld, Finanzen und Rohstoffmärkte. Damit ist das Handelsblatt die unentbehrliche Informationsquelle und Pflichtblatt für alle, die in der Wirtschaft mitarbeiten und Verantwortung tragen. Kompetent seit über 40 Jahren.

Deutschlands Wirtschafts- und Finanzzeitung.

It was discovered during the scan process that this page was missing in tne original print source. We are working on sourcing another print copy including this page.

Während des Scanvorgangs wurde leider festgestellt, dass diese Seite in der originalen Print-Vorlage fehlte. Wir bemühen uns diese Seite nachträglich verfügbar zu machen.

It was discovered during the scan process that this page was missing in tne original print source. We are working on sourcing another print copy including this page.

Während des Scanvorgangs wurde leider festgestellt, dass diese Seite in der originalen Print-Vorlage fehlte. Wir bemühen uns diese Seite nachträglich verfügbar zu machen.

Unser Dankeschön für ein Jahresabonnement Wenn Sie sich jetzt für ein Jahresabonnement entscheiden, erhalten Sie kostenlos dieses wertvolle Taschenbuch. Dieser Band vermittelt grundlegendes Wissen, um den Wirtschaftsteil der Zeitung zu verstehen. So wird der Zusammenhang zwischen Arbeitslosigkeit und Inflation erläutert, und es wird beschrieben, welche Rolle die Deutsche Bundesbank und das Europäische Währungssystem spielen, wie es zu den riesigen Agrarsubventionen k o m m e n konnte und in welch aussichtslose Situation die armen Länder der Dritten Welt durch die Politik der reichen Industriestaaten geraten sind. Ein eigener Abschnitt untersucht die Berichterstattung über die Unternehmen. Er beschäftigt sich mit der zunehmenden Konzentration der Wirtschaft in der Bundesrepublik, mit der Macht der großen Konzerne, mit der Organisation und der Bedeutung der Aktiengesellschaften, aber auch mit kaufmännischtechnischen Problemen. Die Börsen werden in einem ausführlichen Kapitel erläutert. Diese wichtigen und interessanten Märkte für Aktien, festverzinsliche Wertpapiere, Devisen, Edelmetalle und Rohstoffe sind ein empfindliches Wirtschaftsbarometer. Im lexikalischen Anhang sind die wichtigsten Fachbegriffe der Wirtschaft zusammengefaßt. Unser spezielles Angebot für Leser in der DDR 1. Wir liefern Ihnen das Handelsblatt - Deutschlands Wirtschafts- und Finanzzeitung - einen Monat (20 Ausgaben) zum Vorzugspreis von D M 22,(statt D M 51,-), Erscheinungsweise Montag bis Freitag, oder 2. im Abonnement zum monatlichen Bezugspreis von DM 51,-. Die Lieferung in den ersten 14 Tagen ist kostenlos. In diesem Fall erhalten Sie als Dankeschön das Taschenbuch ,Wirtschaftsnachrichten - erklärt und entschlüsselt." Widerrufsrecht: Der Verlag garantiert, daß die Bestellung innerhalb von einer Woche widerrufen werden kann. Rechtzeitige Absendung genügt an: Handelsblatt G m b H , Vertrieb, Postfach 1102, 4000 Düsseldorf 1. "1

M "G

o

P

"o CM (N ON

X) £ C/3 (A B) (setf (cadr Ii) ' x ) = = > X Ii = = > (A X). Da die einzelnen Slots einer Struktur S verallgemeinerte Variablen sind, können deren Inhalte mit (Setf ( s) ) geändert werden. An dieser Stelle muß unbedingt darauf hingewiesen werden, daß Defstruct ein viel mächtigeres Werkzeug ist, als durch diesen Kurs gezeigt werden kann. So ist es möglich,

21

Kurs ;;; Definition einer Zeitstruktur aus ;;; Stunde (h) und Minute (m) (defstruet time (h 0) (ni 0)) ;;; Definition einer Datumsstruktur aus ;;; Hochentag (wd) Tag (day) und Munat (mon) (defstruet date (wd 'mo) (day 1) (mon 'Jan)) ;;; Definition eines Termins aus Beginn ;;; (Start), Knde (stop) und Inhalt (content) (defstruet ap Start stop content) ;,; Definition eines Tageseintrags aus ;;; Datum (date) und Terminliste (apl) (defstruet day date apl)

Bild 15 Definition minplaner

der Strukturen

für den

Ter-

(defun next-day (date) (let ((nwd (get (date wd date) 'next-day)) (mon (date-mon date)) (day (date-day date))) (Cond ; ? letzter Tag des Monats -> ; neuer Monat ((- day (get mon 'day-nr)) (make-date :wd nwd :day 1 :mon (get mon 'next-mon))) (t (make-date :wd nwd :day (+ day 1) :mon mon)))))

Bild 16 Definition

der Funktion

Next-day

durch Angabe bestimmter Schlüsselwörter den Namen der Konstruktor- und Selektorfunktionen festzulegen, Slots von anderen Strukturen zu erben oder in gewissen Grenzen die physische Repräsentation der Struktur zu bestimmen. Für eine weitergehende Beschreibung sei auf die Sprachdefinition von Common Lisp verwiesen. In Bild 15 ist nun dargestellt, wie die Strukturen für den Terminplaner definiert werden können. Als nächstes soll die Funktion Next-day definiert werden, die zu einem gegebenen Datum den Nachfolger berechnet. Dazu müssen die Nachfolger der einzelnen Wochentage, der Monate und die Zahl der Tage im Monat bekannt sein. Um dieses Wissen abzuspeichern, wird eine weitere Eigenschaft der Symbole ausgenutzt. Neben Werten und einer funktionalen Bedeutung kann man ihnen auch beliebige andere Eigenschaften zuordnen. Um diese Eigenschaften aufnehmen zu können, besitzt jedes Symbol eine sogenannte Eigenschaftsliste property list oder P-Liste, in der die Eigenschaften als Paare von Indikator und Wert abgespeichert werden können. Als Indikatoren dürfen nur Symbole verwendet werden; als Werte jedoch können beliebige Lisp-Objekte dienen. Der Zugriff zu einer bestimmten Eigenschaft erfolgt über die Funktion Get mit der folgenden Syntax: (Get ) Mit (setf (get ) < w e r t > ) kann dem Symbol eine Eigenschaft zugeordnet werden. Unter den Indikator Next-day wollen wir dem Symbol Sonntag das Symbol Montag zuordnen: (setf (get 'sonntag 'next-day) 'montag) Für die anderen Wochentage sollen analoge Zuweisungen gelten. Übung 5: Legen Sie in den P-Listen der Monatsnamen unter den Indikatoren Next-mon und Day-nr die Namen der Folgemonate

22

(defun make-calendar (person wd start day start month-start day stop month-stop) (setf (get person 'calendar) (make-calcndar-aux day-stop month-stop (make-date :wd wd-start :day day start :mon month-start) nil))) (defun make-calendar aux (day-stop month-stop date acc) (cond ; Kalender fertig ?-> Umdrehen ; des Akkumulatorinhalts ((and (eq (date-mon date) month-sLop) ( - (date-day date) day-stop)) (reverse (cons (make-day :date date) acc))) ficstrckursion (t (make calendar aux day stop munLh-stop (next-day date) (cons (make day :date date) ace)))))

Bild 17 Definition

der Funktion

Make-calendar

(defun free-time (start stop apl) (cond ;apl leer, dann Termin frei ((null apl) (list (make-ap :start start :stop stop))) ;falsche Parameter ((t>- start stop) nil) ¿Start liegt hinter erstem Termin ;aus apl ((t>- start (ap-start (car apl))) (free-time (if (t>= start (ap-stop (ear apl))) start (ap-stop (car apl))) stop (edr apl))) ;Start liegt vor erstem Termin in apl ((t>= (ap start (oar apl)) stop) (list (make-ap :start start :stop stop))) ; Hek'ip-si on (t (cons (make-ap :start :start :stop (ap-start (car apl))) (free-time (ap-stop (car apl)) stop (edr apl))))))

Bild 18 Definition

der Funktion

bzw. die Anzahl der Tage des den Monats ab.

(defun common-free (apl1 apl2) (cond ((null apll) nil) ((null aplZ) n i l ) ¡Termin in apll liegt vor Termin ;in apl2 ((t< (ap-start (car apl2)) (ap-start (car apll))) (common-free apl2 apll)) ;Stop apll vor Start apl2 -> ;reduziere apll ((t< (ap stop (oar apl2)) (ap-start (car apll))) (common-free (edr apll) apl2)) ;Stop von apl2 vor Stop apll -> ;(car apl2) ist frei ((t< (ap-stop (car apl2)) (ap-stop (ear apll))) (cons (car apl2) (common-free apll (edr apl2)))) ; Uber 1 appung (t (cons (make-ap :start (ap-start (ear apl2)) :stop (ap-stop (car apll))) (common-free (edr apll) apl2)))))

Bild 19 Definition

Mit den in den P-Listen abgelegten Informationen kann nun die Funktion Next-day definiert werden (Bild 16). Die Funktion Make-calendar (Bild 17) legt einen leeren Terminplan für einen gegebenen Zeitraum unter dem Indikator Calendar in der P-Liste des Eigentümers ab. Da die meisten Lisp-Systeme auf 16-Bit-Rechnern nicht über Funktionen zur Berechnung des Datums verfügen, muß neben Anfangs- und Endtag und dem Monat auch noch der Wochentag des Anfangsdatums angegeben werden. Aufgabe 7: Definieren Sie die Funktion Findday-entry. Die Funktion soll 3 Parameter, den Tag, den Monat und die Kalenderstruktur haben und den entsprechenden Tageseintrag oder NIL liefern. Zum Finden eines gemeinsamen Termins muß in den Terminplänen aller beteiligten Personen gesucht werden. Zunächst erzeugen wir eine Liste von freien Terminen pro Person, und dann wird der gemeinsame Termin aus dem Durchschnitt der entsprechenden Listen ermittelt. Die Liste der freien Termine wird durch die Funktion Free-Time (Bild 18) gebildet. Die Definition bedarf keiner besonderen Erklärung, nach dem Test von Grenzfällen wird die Liste rekursiv analysiert.

Common-free

(defun

conuD-tiae (pi p 2 d a y m o n t h d u r b e g i n e n d ) ( coraon-time~aux ( common-free ( f r e e - t i n e b e g i n end (day-apl (find-day-entry day month (get p i ' c a l e n d a r ) ) ) ) ( f r e e - t i n e b e g i n end (day-apl (find-day-entry d a y •onth (get p 2 ' c a l e n d a r ) ) ) ) ) dur nil))

(defun ^cond

Free-time

entsprechen-

der Funktion

Bild 20

comnon-tine-aux (apl d u r a c c ) ((null a p l ) ( r e v e r s e a c c ) ) ((>= (duration (car a p l ) ) d u r ) (common-t ime-aux (cdr a p l ) d u r (cons (oar a p l ) a c c ) ) ) (t (coanaon-time-aux (cdr a p l ) d u r a c c ) ) ) )

Definition

der Funktion

Common-time

Aufgabe 8: Definieren Sie die Prädikate T>= und T Auflage oder Beechränkung I I Einer ÜbenritHungder m der Gewerbeanzeige enthaltenen Angrten über Namen (Felderl, 3 u. 4). betriebliche Anschrift (Feuert 2 u13) indangemgldals 1 der Wsrbuig MafV jo^u^juK: m uaw.) zun Zwecke —' "' J oder Mstnrgsforecfuig " ' Stimmelch l—| etlmmelch |—itzunSMdMKi Bitte die Hinwelse auf der Rückseite beachten. UiJ_l nlrht yn I IBi^faünnl Diese Anmeldung wird gemäß § 15 Abs. 1 GewO beacheinigt.

Tfittf^erter{^efcj 15!anDrtle J n

VarwiltunotgsbOlH DM

(B»h4n

Empfanaabaachelnlaung für den Änzetgepfllchtigen

••bühranllat«

Nachdruck mit freundlicher Genehmigung des Deutschen Gemeindeverlages, Hannover.

Den Schreibstift fest aufdrücken! Neun Durchschriftblätter für interessierte Behörden und Institutionen verbergen sich hinter dem Deckblatt der Gewerbeanmeldung.

32

Während der landläufige Sprachgebrauch darunter den Obsthändler an der Ecke oder den Fischverkäufer versteht, sieht der Jurist den Begriff aus einer anderen Sicht. Kaufmann ist derjenige, der eines der im Handelsgesetzbuch (Paragraph 1 HGB) aufgezählten Handelsgewerbe betreibt. Hierzu zählen unter anderem folgende Geschäfte: - Anschaffung und Veräußerung von Waren - Be- oder Verarbeitung von Waren für andere - Verlagsgeschäfte und Druckerelen. Der Verkauf von Hardware stellt ein Handelsgewerbe dar, wie die Reparatur von PCs oder die Eröffnung eines Fachverlages für DV-Literatur. Von der Einordnung eines Gewerbes als kaufmännisch hängen rechtlich bedeutsame Konsequenzen ab. Den Kaufmann treffen Buchführungs- und Aufbewahrungspflichten, dazu gesteigerte Sorgfaltspflichten im Rechtsverkehr. Er hat eine Firma zu führen. Verschiedene Verbraucherschutzgesetze, darunter das Abzahlungsgesetz oder das Gesetz über Allgemeine Geschäftsbedingungen gelten für den Kaufmann nicht oder nur in eingeschränkter Form. Er kann eine Bürgschaftserklärung bereits in mündlicher Form abgeben. Die kaufmännischen Män' gelrügefristen beim Erwerb fehlerhafter Waren sind bedeutend kürzer als für Nichtfachleute. Kurz gesagt: Der Kaufmann muß im Gegensatz zum einfachen Gewerbetreibenden mehr Rechtspflichten beachten. Kaufleute verstricken sich dadurch leichter in den Maschen des Gesetzes. Wer ein Handelsgewerbe betreibt, indem er zum Beispiel Computer verkauft und sein Geschäft nur einen geringen Umfang besitzt, ist nach dem Handelsgesetzbuch (HGB) lediglich ein sogenannter Minderkaufmann. Die Pflicht zur Buchführung und zur Führung einer Firma, sowie andere Verpflichtungen nach dem HGB, treffen den Minderkaufmann nicht. Umgekehrt ist derjenige, welcher zwar kein Handelsgewerbe betreibt (etwa ein gewerblicher DV-Systemberater), dessen Geschäft jedoch einen erheblichen Umfang angenommen hat und der mehrere Mitarbeiter beschäftigt, als Kaufmann mit allen Rechten und Pflichten anzusehen („Sollkaufmann"). Er muß sich in das Handelsregister eintragen lassen. Wer dort aufgeführt ist, muß sich im Rechtsverkehr auf jeden Fall auch als Kaufmann behandeln lassen: Hat er eine mündliche Bürgschaft oder ein Schuldanerkenntnis abgegeben, die nur bei Kaufleuten ohne Schriftform wirksam sind, kann er sich später nicht damit herausreden, daß er gar kein Handelsgewerbe betreibt und seine Erklärungen nicht wirksam gewesen sind. Eine der wichtigsten Vorschriften für den Kaufmann ist die Pflicht zur Führung einer Firma. Im Handelsrecht Ist unter einer Firma nicht das Geschäft, sondern der Name des Geschäftes zu verstehen. Die Firma stellt eine Geschäftsbezeichnung dar, unter welcher der Kaufmann im Handelsverkehr auftritt. Der Phantasie bei der Namenswahl sind deutliche Grenzen gesetzt. Die Firma muß zunächst den sogenannten Firmenkern und die Firmenzusätze enthalten. Bei einem Einzelunternehmen besteht der Firmenkem aus dem Familiennamen mit mindestens einem ausgeschriebenen Vornamen. Dem Kern kann ein Zusatz angehängt werden, der auf die Art des ausgeübten GeMikroprozessortechnik, Berlin 4 (1990) 9

schäfts hinweist. Möglich wäre also: Fritz Müller Software Vertrieb oder Fritz Müller DV Beratung. Nicht zulässig wäre hingegen: Müller Software oder Fritz Müller Software Vertriebsgesellschaft. Im ersten Beispiel wird der Vorname unterschlagen, im zweiten das Vorliegen einer Gesellschaft vorgetäuscht. Dies ist dem Einzelunternehmer versagt. Verboten sind ferner Zusätze, die geeignet sind, eine Täuschung oder Irreführung über Art und Umfang des Geschäftes hervorzurufen. Wer seinen im hinterbayrischen Einödshof ansässigen Handel international DV Systems nennen will, darf mit Schwierigkeiten bei der Eintragung im Handelsregister rechnen, vorausgesetzt, er betreibt nicht tatsächlich einen weltumspannenden Handel mit Computern. Ein Computershop, der seinen Geschäftskreis lediglich auf Wuppertal beschränkt, darf sich nicht Computer-Versand Deutschland nennen. Besteht am selben Ort schon ein Geschäft einer gleich oder ähnlich lautenden Firma, wird das Vorliegen einer Verwechslungsgefahr angenommen. Über die Zulässigkeit von Firmenzusätzen entspinnen sich in der Praxis regelmäßig heftige Schriftwechsel mit den Registergerichten, welche für die Eintragung der Firmen zuständig sind. Das Registergericht - eine Abteilung des örtlichen Amtsgerichts - muß von Amts wegen die Zulässigkeit der Firma prüfen. Oft wird dabei vorschnell und aus übertriebener Sorge für das „Wohl der Allgemeinheit" eine Täuschungs- oder Verwechslungsgefahr unterstellt. Will man dies vermeiden, besteht die Möglichkeit, vorab eine Anfrage an die Industrieund Handelskammer zu richten. Diese teilt dann mit, ob gegen die Firmenwahl Bedenken bestehen könnten oder nicht. Sind bereits mehrere Geschäfte derselben Branche ortsansässig, hilft ein einfacher Blick in das aktuelle Branchenbuch. Die Wahl der richtigen und zulässigen Firmenbezeichnungen stellt nicht nur Kaufleute vor Probleme. Wer ein Gewerbe betreibt, ohne Kaufmann zu sein, oder freiberuflich tätig ist, darf im Geschäftsverkehr zwar keine Firmenbezeichnung benutzen, er kann sich aber eine Geschäftsbezeichnung geben. Beispiel: Direkt Unternehmensberatung. Auch bei der Wahl von Geschäftsbezeichnungen ist Vorsicht am Platz. Geschäftsbezeichnungen unterliegen dem Schutz des Namensrechts! Wer eine Geschäftsbezeichnung an bereits vorhandene Bezeichnungen von Konkurrenten anlehnt und damit von deren gutem Ruf profitieren möchte, ruft Täuschungs- oder Verwechslungsgefahr hervor. Der Konkurrent kann gegen die Bezeichnung Maßnahmen ergreifen.

der DV zeigt nicht nur, daß die Goldgräberzeit längst vorbei ist. Die Erfahrung lehrt, daß die meisten Schiffbrüche sich in den ersten beiden Jahren ereignen. Überstürzte Gründungen durch unüberlegte Marktstrategien, mangelhafte Finanzierungskonzepte, Überschätzung der Absatzmöglichkeiten, Unterschätzung der realen Kostenfaktoren, unausgefeilte rechtliche und steuerliche Konzepte können hierbei das Schiff bereits vor dem Auslaufen aus dem Hafen zum Sinken bringen. Ideale Lösungen und Patentrezepte zur Wahl der passenden Rechtsform gibt es nicht. Das Zivilrecht stellt eine Vielzahl möglicher Formen zur Verfügung. Welche ausgewählt wird, bestimmen eigene Entscheidungskriterien und die verfolgte wirtschaftliche Zielsetzung. Spielen Finanzierungsfragen keine Rolle und wollen Sie Ihr Projekt auf eigene Faust beginnen, macht die Gründung einer Aktiengesellschaft wenig Sinn. In diesem Fall sollten Sie besser als eigenständiger Freiberufler, Einzelkaufmann, Einmann-GmbH oder gar Einmann-GmbH & Co KG verkleidet auftreten. Sind Sie im Besitz eines vermarktbaren Know-hows oder brauchbarer Programmierkenntnisse, fehlt es Ihnen aber an dem nötigen Kleingeld zum Aufbau eines Unternehmens, kann die Einbindung eines finanzstarken Geldgebers, der an den Entscheidungen des Unternehmens nicht beteiligt ist, in Form einer Kommanditgesellschaft (KG) oder als stiller Gesellschafter sinnvoll sein. Einzelkämpfer Wollen Sie die Entscheidungen und das wirtschaftliche Risiko nicht allein tragen und kennen Sie einen oder mehrere vertrauenswürdige und gleichberechtigte Partner, dann ist die Gründung einer Gesellschaft bürgerlichen Rechts (GbR), einer offenen Handelsgesellschaft (OHG) oder einer Gesellschaft mit beschränkter Haftung (GmbH) zu erwägen. Stellt das Geschäft ein hohes Risiko dar? Müssen Sie alles auf eine Karte setzen, um durchzukommen? Dann könnte die Gründung einer GmbH wenigstens davor bewahren, im Falle einer Pleite mit dem gesamten Privatvermögen zu haften. Anhand dieser Kriterien kann bereits eine Vorauswahl getroffen werden. Die Wahl der Rechtsform allein befreit noch nicht von der Notwendigkeit, einen Gesellschaftsvertrag mit dem Partner durchzusprechen und zu formulieren. Ein Blick ins GmbH-Gesetz oder in das Handelsgesetzbuch steht dann am Anfang der Aktivitäten.

Für alle gängigen Gesellschaftsformen gibt es sogenannte Mußpunkte, die ein Gesellschaftsvertrag regelt. So fordert das GmbHGesetz einen oder mehrere Geschäftsführer und regelmäßige Gesellschafterversammlungen. In einem Vertrag zur Gründung einer Gesellschaft bürgerlichen Rechts ist zu regeln, wer die Gesellschaft nach außen hin vertreten darf. Im einzelnen bleibt immer noch ein weiter Raum für individuelle vertragliche Gestaltungsmöglichkeiten, denn es gilt der Grundsatz der Vertragsfreiheit. In diesem und im nächsten Teil sollen im Überblick die wichtigsten Rechtsformen für Unternehmen dargestellt werden. Der Blick richtet sich schwerpunktmäßig auf folgende Gesichtspunkte: - Welches Kapital ist für die Gründung der Gesellschaft erforderlich? - Wer haftet persönlich? - Wer hat die Entscheidungsgewalt? - Welche Gründungsformalitäten sind erforderlich? - Welche steuerlichen Auswirkungen hat die Gesellschaftsform? Lonely hearts Wer partout keinen Partner findet oder als eingefleischter Einzelkämpfer lieber ein Unternehmen auf eigene Faust gründet, dem bleibt der Weg des Freiberuflers oder die Rechtsform des Einzelkaufmanns. Ob ein Einzelunternehmen als freiberuflicher oder kaufmännischer Betrieb gilt, hängt davon ab, ob es sich um ein Gewerbe handelt. Den Unterschied und die oft schwierige Abgrenzung habe ich bereits dargestellt, so daß ich mich hier auf das kaufmännische Einzelunternehmen beschränken kann. Der Vorteil des Einzelkämpfers liegt auf der Hand: Er kann seine Entscheidungen alleine treffen und muß sich nicht mit anderen Menschen und Meinungen herumplagen. Weiterer Vorteil: Ein bestimmtes Stammkapital ist für die Führung eines Einzelunternehmens nicht erforderlich, ebensowenig der Abschluß eines Gesellschaftsvertrages. Mit wem sollte dieser auch abgeschlossen werden? Beginnt der Einzelunternehmer sein Geschäft im bescheidenen Umfang, hält sich der bürokratische Hürdenlauf in Grenzen: Die Anmeldung im Handelsregister und die Pflicht zum Führen von Handelsbüchern entfällt. Über seine Firma muß sich der Einzelkaufmann noch keine Gedanken machen. Erforderlich ist nur die Anmeldung beim Gewerbeamt und die Anzeige beim Finanzamt. Laufen die Geschäfte gut und wächst das Unternehmen, besteht die Verpflichtung, die

Mit acht Grundfragen sollten sich Existenzgründer von Anfang an auseinandersetzen.

Konzepte

• Wie soll das Unternehmen finanziert werden?

Wer sich selbständig machen möchte, diesen Schritt jedoch nicht allein gehen will, kommt nicht umhin, sich über die Wahl der passenden Rechtsform und der Firmenbezeichnung den Kopf zu zerbrechen. Dabei spielen auf der Suche nach dem passenden „Rechtskleid" verschiedene Gesichtspunkte eine Rolle. Haftungsprobleme sind neben der vertraglichen Absicherung gegenüber dem Partner genauso zu berücksichtigen wie steuerliche Überlegungen. Die hohe Rate von Konkursen und finanziellen Pleiten von Jungunternehmen im Bereich

• Welche Rechtsform genießt bei Banken, Kreditgebern und öffentlichen Förderungsinstitutionen Ansehen?

Mikroprozessortechnik. Berlin 4 (1990) 9

• Wie sieht es mit der Haftung für Schulden und Kredite aus? • Wer leitet das Unternehmen? • Welche Steuerlasten kommen auf mich zu? • Mit welchem Aufwand und welchen Formalitäten ist die Gründung des Unternehmens verbunden? • Wer bringt das Kapital ein? • Sollen Angestellte beschäftigt werden?

33

Eintragung in das örtliche Handelsregister vorzunehmen und dem Unternehmen einen Namen zu geben. Wann der Minderkaufmann sich zum Vollkaufmann und sein Geschäft sich damit zu einem in kaufmännischer Weise eingerichteten Gewerbebetrieb wandelt, bestimmt hauptsächlich der erzielte Jahresumsatz. Die Grenze zum Vollkaufmann liegt bei einem Jahresumsatz von etwa 150 000 DM bis zu 250 000 DM. Dabei ist der Umsatz nicht das einzige, maßgebliche Kriterium. Selbst ein Kleinbetrieb darf höhere Umsätze erzielen, während das Amt umgekehrt bei geringeren Umsätzen schon annehmen kann, daß ein vollkaufmännisches Gewerbe besteht: etwa, wenn das Unternehmen einen umfangreichen Warenbestand aufweist, der eine Lagerbuchhaltung erforderlich macht.

auf der Einnahmenseite liegen und darauf, daß der Rubel erst einmal rollt. Später kann man Wege suchen, dem Fiskus ein Schnippchen zu schlagen. Der Gang zum Steuerberater lohnt sich auf jeden Fall. Das Fahrzeug sollte frühzeitig in das Betriebsvermögen des Unternehmens eingebracht werden. Quittungen und Belege für alle betrieblichen Ausgaben sollten nicht im Papierkorb verschwinden, sondern in einem Ordner abgeheftet werden. Wer es allerdings zu toll mit den Betriebsausgaben treibt, darf sich auf die erste Betriebsprüfung freuen. Stellt der Prüfer bei seinem gestrengen Blick auf die Gaststättenrechnungen fest, daß gar kein Geschäftsfreund, sondern die Ehefrau bewirtet worden ist, stehen Steuernachzahlungen und unter Umständen ein Strafverfahren wegen Steuerhinterziehung ins Haus.

Nachfragen

12 X 1 5 0 0 = 3 0 0 0 0 ?

Jedenfalls sollte sich der Jungunternehmer nicht nur über seine in die Höhe schießenden Umsatzzahlen freuen, sondern sich rechtzeitig bei der Industrie- und Handelskammer erkundigen, ob sein Betrieb als vollkaufmännisch zu betrachten und er damit zu einer Eintragung in das Handelsregister verpflichtet ist. Gleichgültig, ob das Unternehmen als Kleinbetrieb oder vollkaufmännischer Betrieb auftritt, trifft den Inhaber immer die volle persönliche Haftung für alle geschlossenen Verbindlichkeiten. Wer mit seinem Betrieb Schiffbruch erlitten hat, den Laden schließt und den Stapel der unbezahlten Rechnungen in sein Erinnerungsalbum einsortiert, wird die Gläubiger nicht zufriedenstellen. Es gilt der Grundsatz, daß der Unternehmer mit seinem gesamten Privatvermögen für alle in dem Betrieb begründeten Schulden haftet! Der Einzelkaufmann kann sich nicht hinter dem Rechtskleid des Unternehmens verstekken und bei einer Pleite seine Gläubiger damit vertrösten, daß das Unternehmen seine Pforten geschlossen habe und es ihm schließlich auch nicht gut gehe. Gelingt es ihm nicht rechtzeitig, sich in ein ferngelegenes Land abzusetzen, werden ihm die Nachwehen des gescheiterten Unternehmens noch lange zu schaffen machen. Trotz dieser Nachteile und wirtschaftlichen Risiken eignet sich das einzelkaufmännische Unternehmen für alle, die nicht gleich im großen Stil loslegen möchten. Läuft der Laden gut, bietet sich immer noch die Gründung einer Gesellschaft an - etwa einer GmbH unter Einbeziehung weiterer Partner oder als Einmann-GmbH. Die steuerliche Seite sieht nicht so rosig aus. „Wenn ich erst selbständig bin, kann ich ja meinen Wagen und die Gaststättenrechnungen vom Finanzamt bezahlen lassen." Solche Sprüche gehören eher an den Stammtisch unzufriedener Angestellter, denen sich über den letzten Steuerbescheid des Finanzamtes die Haare sträuben, als in den Gründungskoffer eines Unternehmers.

Stimmt die Einnahmenseite, ist der Wagen auf den Betrieb umgeschrieben, führt der Jungunternehmer emsig Buch über seine Einnahmen und Ausgaben, gibt er seine Belege und Quittungen regelmäßig bei seinem Steuerberater ab, erlebt er am Ende des ersten Geschäftsjahres dennoch unvermeidliche Überraschungen. Der vom Steuerberater erstellte Jahresabschluß weist einen Gewinn von 30000 DM aus, obwohl der junge Unternehmer recht spartanisch gelebt und monatlich nur 1500 DM aus der Kasse entnommen hat. 12 x 1500 rechnet sich nach Adam Ries aber zu 18000 DM und nicht zu 30 000 DM aus. Ein Blick auf die letzten Kontoauszüge offenbart nur ein deprimierendes Minussaldo und bringt nicht des Rätsels Lösung. Wo sind die fehlenden 12000 DM geblieben? „Das Zauberwort heißt Abschreibung für Abnutzung (AfA)", klärt der Steuerberater auf. Der Unternehmer hat sich bereits im ersten Geschäftsjahr eine Mehrplatz-DV-Anlage mit Software zum stolzen Preis von 48000 DM angeschafft. Den Kauf ermöglichte ein Bankdarlehen. .Wenn ich für eine DV-Anlage 48 000 DM ausgebe, muß dies auf der Ausgabenseite doch voll zu Buche schlagen', mutmaßte der Unternehmer und scheute daher die Anschaffung der von der Bank finanzierten teuren DV-Anlage nicht.

Belege Zwar kann der Unternehmer Betriebsausgaben geltend machen und hierbei einen Firmenwagen oder Aufwendungen für die Bewirtung von Kunden ansetzen. Diese werden nur von den Einnahmen abgezogen. Wer keine Einnahmen hat, kann auch nichts abziehen. Anstatt sich auf die vielfältigen Möglichkeiten steuerlicher Tricksereien zu verlegen, sollte am Anfang eher das Augenmerk 34

Unternehmenssimulation

per

So denkt der Fiskus leider nicht. Bei Anschaffung von Wirtschaftsgütern mit einem Wert von mehr als 800 DM wird der Anschaffungspreis über mehrere Jahre verteilt als Betriebsausgabe angesetzt. Das heißt: Obwohl der Anschaffungspreis bereits im ersten Jahr voll bezahlt wurde, sind nur 25 Prozent hiervon im ersten Jahr und jeweils weitere 25 Prozent in den nächsten drei Jahren als Betriebsausgabe abzusetzen. Vom betriebswirtschaftlichen Standpunkt ist dies leicht nachvollziehbar: Würde eine größere Anschaffung bereits im Anschaffungsjahr in vollem Umfang angesetzt, hätte der Unternehmer damit im ersten Jahr hohe Betriebsausgaben und eher hohe Verluste, in den folgenden Jahren aber geringere Ausgaben und eher Gewinne. Eine gleichmäßige Verteilung über die voraussichtliche Nutzungsdauer (lineare Abschreibung) vermeidet diese Unausgewogenheit. Der so im Jahresabschluß ermittelte Gewinn ist von dem Einzelkaufmann als Einkommen aus selbständiger Tätigkeit oder dem Gewerbebetrieb zu versteuern. Hierzu muß er eine Einkommenssteuererklärung abgeben. Geschieht dies nicht freiwillig, hilft das Finanzamt auf die Sprünge. Konnte er als Arbeitnehmer früher noch pauschale Freibeträge in seiner Steuererklärung ansetzen, entfällt diese Möglichkeit bei Einkünften aus selbständiger Tätigkeit. Hier gibt es lediglich einen Freibetrag in Höhe von 5 Prozent des zu versteuernden Gewinns, maximal 1200 DM. Neben der Einkommenssteuer muß der gewerbetreibende Einzelunternehmer (nicht der Freiberufler) Gewerbesteuer entrichten. Von dem im ersten Geschäftsjahr erzielten vorzeigbaren Gewinn verbleibt nach Abzug der Einkommens- und Gewerbesteuer oft nur ein lächerlicher Betrag übrig. Mancher hat deshalb schon seiner früheren Angestelltentätigkeit nachgetrauert. Daher sollte man bereits frühzeitig mit dem Steuerberater die steuerlichen Belastungen durchsprechen wird fortgesetzt und einkalkulieren. Der Autor ist Rechtsan walt in Wuppertal. Nachdruck aus c't-Magazin für Computertechnik, Hefte S und 6/1990

Software

Ein großes Problem sowohl für Unternehmensgründer als auch für Manager ist das betriebswirtschaftliche Begreifen und Führen ihrer Firma. Auch die beste Geschäftsidee ist wertlos, wenn sie nicht konsequent und betriebswirtschaftlich fundiert umgesetzt wird. Da nur wenige in der Lage sind, alles nach Gefühl richtig zu machen, bietet die Firma FILAN-Software aus Köln mit dem Paket Busy ein Arbeitsmittel an, mit dem analytisches Managen auch ohne umfangreiche Betriebswirtschaftskenntnisse möglich sein soll. Angefangen mit der Firmengründung oder einem anderen definierten Ausgangspunkt können die folgenden 4 Geschäftsjahre geplant und an Hand der entsprechenden Soll/ Ist-Vergleiche die Lebensfähigkeit des Unternehmens überprüft werden. Dabei helfen die Gewinn/Verlust-Rechnung nach Produktgruppen sowie die Betrachtung einer Reihe betriebswirtschaftlicher Kennziffern. Durch Änderung bestimmter Daten innerhalb einer festgelegten Periode ist es auch möglich, die Firma betriebswirtschaftlich zu optimieren. Eine selbsterklärende Bedienerführung soll auch dem ungeübten Anwender eine schnelle Einarbeitung ermöglichen. Das Programmpaket Busy läuft auf IBMkompatiblen PCs mit einem Hauptspeicher ab 640 KByte und 2 MByte freiem Speicherplatz auf der Festplatte unter MS-DOS ab der Version 2.11. Der Preis liegt zwischen 4500 und 8000 DM. MP

Mikroprozessortechnik, Berlin 4 (1990) 9

Literatur Programmieren FORTRAN 77

mit

v o n G . Bärwolff u. R. Kosciolowicz, Reihe T e c h n i s c h e Informatik, V e r l a g T e c h n i k , Berlin 1990, 2 4 0 S., 6 Bilder, 17 Tafeln, Broschur, Bestell-Nr. 5 5 4 45 89 N o c h i m m e r ist die P r o g r a m m i e r s p r a c h e F o r t r a n aktuell, w e n n g l e i c h sie bereits in d e n fünfziger J a h r e n ents t a n d e n ist. D a s Buch b e s c h r e i b t Fort r a n 7 7 u n d d a m i t d e n derzeit festges c h r i e b e n e n S t a n d a r d der S p r a c h e . Auf die W e l t e r e n t w i c k l u n g z u Fortran 8 X wird h i n g e w i e s e n . In d e r üblichen R e i h e n f o l g e w e r d e n die S p r a c h e l e m e n t e abgehandelt. D a t e n t y p e n , Variablen, K o n s t a n t e n , Ausdrücke und Wertzuweisungen, P r o g r a m m v e r z w e i g u n g e n u n d Zyklen bilden j e w e i l s d e n G e g e n s t a n d einzelner Kapitel. Die w e i t e r e n Teile s i n d d e n Z e i c h e n k e t t e n , der Unterp r o g r a m m t e c h n i k s o w i e d e r Ein-/ Ausgabeprogrammierung gewidmet. Ein Kapitel verdeutlicht U n t e r s c h i e d e zu Fortran IV und z u Pascal. Im letzt e n Kapitel w e r d e n a u c h s o f t w a r e technologische Aspekte angesproc h e n . E s w i r d ein g r ö ß e r e s Prog r a m m b e i s p i e l zur m e h r d i m e n s i o n a len A u s g l e i c h s r e c h n u n g schrittweise e n t w o r f e n u n d d a n n In allen Details a u s p r o g r a m m i e r t . Die T e i l e w e r d e n e i n z e l n übersetzt u n d mittels Programmverbinderlauf zusammengefügt. D a m i t k a n n zugleich die Instrumentierung eines Fortran-Programm i e r s y s t e m s v o r g e f ü h r t w e r d e n . Die Autoren sprechen von Metakommandos. A l l e n Kapiteln s i n d Ü b u n g s a u f g a b e n zugeordnet. Lösungen ausgewählter A u f g a b e n w e r d e n im A n h a n g mitgeteilt. Die A u t o r e n w e i s e n darauf hin, daß alle B e i s p i e l p r o g r a m m e unmittelbar a u s einer T e s t u m g e b u n g in d a s B u c h m a n u s k r i p t kopiert w u r d e n . Damit ist ein h o h e r G r a d a n Sicherheit g e g e n Fehler erreicht w o r d e n . E b e n falls In der F o r m v o n A n h ä n g e n w i r d e i n e S y n t a x ü b e r s i c h t u n d e i n e Kurzb e s c h r e i b u n g d e r Fortran 7 7 - S t a n dardfunktionen mitgeliefert. Auch eine Seite mit d e m A S C I l - Z e i c h e n satz fehlt nicht. Die A u t o r e n f ü h r e n d e n Leser in ein e m gefälligen Stil a n die P r o g r a m m i e r u n g in F o r t r a n 7 7 heran. Die Programmbeispiele sind ansprechend o h n e künstliche S c h n ö r k e l a u s g e wählt, aber jeweils doch gut geeignet, die g e r a d e erörterten S p r a c h k o n strukte z u b e l e u c h t e n . C. Polze

Turbo-Pascal v o n G . Paulin, 2., stark b e a r b e i t e t e A u f l a g e , V e r l a g T e c h n i k , Berlin 1990, 2 4 0 S „ 2 8 Bilder, 2 9 , 8 0 D M T u r b o - P a s c a l ist im P C - B e r e i c h eine der b e l i e b t e s t e n P r o g r a m m l e r s p r a c h e n . D i e s e s B u c h a u s d e r Reihe „ T e c h n i s c h e Informatik" ist In d e r 2. A u f l a g e s e h r stark überarbeitet w o r den, u m die n e u e r e n E n t w i c k l u n g e n v o n T u r b o - P a s c a l z u berücksichtigen. Die L e i s t u n g s f ä h i g k e i t d e r S p r a che wurde wesentlich verbessert, u n d die A n f o r d e r u n g e n a n die PCT e c h n i k s i n d g e s t i e g e n . W a r die Pasc a l - V e r s i o n 3 a u c h n o c h auf 8-Bit-

Mikroprozessortechnik, Berlin 4 (1990) 9

P C s unter C P / M v e r w e n d b a r , so setz e n die n e u e r e n V e r s i o n e n e i n e n 16B i t - P C mit M S - D O S v o r a u s . Der A u tor b e h a n d e l t die V e r s i o n 3 als S p r a c h k e r n , u m die w e s e n t l i c h e n E l e m e n t e d e r S p r a c h e z u beschreib e n . D i e s e s Kapitel m a c h t mit 150 S e i t e n d e n u m f a n g r e i c h s t e n Teil a u s u n d entspricht im w e s e n t l i c h e n der 1. Auflage. Zu den eingestreuten Ü b u n g s a u f g a b e n s i n d Im Kapitel 5 L ö s u n g s p r o g r a m m e z u finden. Im 2. Kapitel sind die B e s o n d e r h e l t e n der B e n u t z u n g v o n T u r b o - P a s c a l 3 unter C P / M z u s a m m e n g e f a ß t . Es w e r d e n alle M e n ü p u n k t e , die P r o g r a m m e n t w i c k l u n g und die m a s c h i n e n n a h e Programmierung durch Einbindung v o n A s s e m b l e r r o u t i n e n erläutert. D a s 3. Kapitel ist n e u in der 2. A u f l a g e und behandelt Erweiterungen von TurboPascal In d e r V e r s i o n 4 (teilweise a u c h V e r s i o n 5) unter M S - D O S . E s ist b e s o n d e r s für U m s t e i g e r Interessant, die v o r h e r mit der V e r s i o n 3 g e a r b e i tet h a b e n . Auf die M ö g l i c h k e i t e n d e s in der V e r s i o n 5 Integrierten Quellt e x t - D e b u g g e r s w i r d nicht e i n g e g a n g e n . Kapitel 4 enthält einige Informat i o n e n zur Bildschirmprogrammierung mit V e r s i o n 3. Hier fehlt eine kurze Z u s a m m e n f a s s u n g der leis t u n g s f ä h i g e n Unit G R A P H der Version 4, die d a s B G I ( B o r l a n d G r a p h i c Interface) realisiert. Im A n h a n g sind eine ASCII-Tabelle, eine Pascal-Syntax in B a c k u s - N a u r - F o r m , S t a n d a r d f u n k t i o n e n u n d -Prozeduren, Fehlerm e l d u n g e n d e s C o m p i l e r s und d e s Laufzeitsystems, eine kurze Gegenüberstellung von Standard-Pascal und Turbo-Pascal, eine Aufzählung d e r w e s e n t l i c h e n U n t e r s c h i e d e zwischen den Versionen von Turbo-Pascal u n d die E d i t o r k o m m a n d o s zus a m m e n g e f a ß t . Literaturverzeichnis u n d ein übersichtliches S a c h w ö r t e r v e r z e i c h n i s s i n d a m Schluß d e s Buc h e s z u finden. Besonders der Anfänger wird von den ausführlichen Beispielen und Übungsaufgaben profitieren. Als N a c h s c h l a g e w e r k für d e n v e r s i e r t e n P r o g r a m m i e r e r Ist die Darstellung w e n i g e r g e e i g n e t , d a d a n n i m m e r die g e r a d e aktuelle V e r s i o n interessant ist. S o ist z. B. die V e r s i o n 5.5 mit n e u e n E l e m e n t e n s c h o n w i e d e r für e i n e N a c h a u f l a g e z u berücksichtiHübener

gen.

MS

Makroassembler

Einführung

und

Leitfaden

v o n P. M o n a d j e m l , A d d i s o n - W e s l e y ( D e u t s c h l a n d ) G m b H , B o n n 1989, 4 2 7 S., I S B N 3 - 8 9 3 1 9 - 1 3 5 - 6 G a r keine F r a g e : Z u m Erlernen d e r A s s e m b l e r p r o g r a m m i e r u n g benötigt m a n e i n e g u t e E i n f ü h r u n g , mit d e n H a n d b ü c h e r n ist e s nicht getan. Zumal, w e n n e s sich u m e i n e n Intel-Proz e s s o r handelt, d e r mit seiner kompliz i e r t e n A d r e ß r e c h n u n g Im S e g m e n t : O f f s e t - F o r m a t a u c h e r f a h r e n e n Prog r a m m i e r e r n Rätsel aufgibt - u n d , w e n n e s sich u m d e n Microsoft-Ass e m b l e r mit seiner s t e l l e n w e i s e nicht e i n d e u t i g e n Notation handelt, die Peter M o n a d j e m l z w a r in s e i n e m B u c h z u m Turbo-Assembler behandelt, an d i e s e r Stelle aber v e r s c h w e i g t , w o h l , u m d e m Leser nicht d e n M u t zu nehm e n . Der S c h w i e r i g k e i t e n ist er sich

aber bewußt, d e n n s o w o h l der A d r e ß r e c h n u n g als a u c h der S e g m e n t i e rung ist a u s r e i c h e n d Platz e i n g e räumt. D a s B u c h soll In erster Linie mit d e n gehobenen Möglichkeiten eines mod e r n e n M a k r o a s s e m b l e r s u n d der z u g e h ö r i g e n P r o g r a m m e vertraut m a c h e n u n d nicht die M a s c h i n e n b e f e h l e d e s 8 0 8 6 b e h a n d e l n , w e s h a l b auf die B e s c h r e i b u n g der P r o z e s s o r a r c h i t e k tur und e i n e B e f e h l s r e f e r e n z verzichtet w u r d e , die m a n In H a n d b ü c h e r n findet. Statt d e s s e n s t e h e n die Leis t u n g e n v o n M A S M , LINK u n d C o d e V i e w im V o r d e r g r u n d . D a b e i s i n d nicht nur Einsteiger a n g e s p r o c h e n . Auch erfahrene Assembler-Programmierer v e r w e n d e n viele Direktiven nur „auf V e r d a c h t " oder o r i e n t i e r e n sich a n V o r b i l d p r o g r a m m e n . F r a g e n Sie d o c h e i n m a l , w a n n die D i s t a n z a n g a b e n S H O R T , N E A R u n d F A R bei S p r ü n g e n wirklich n o t w e n d i g sind. O d e r lesen S i e lieber gleich n a c h (S. 104). W e n n d e r A u t o r hier Im V o r w o r t e i n e L ü c k e in d e n H a n d b ü c h e r n nennt, so m u ß ihm Recht g e g e b e n w e r d e n . Dort w i r d z u m Beispiel die E n t s t e h u n g v o n P h a s e n f e h l e r n in ein e m N e b e n s a t z a b g e h a n d e l t u n d die Möglichkeit d e r N u t z u n g v o n vereinfachten Segmentanweisungen für C O M - D a t e i e n g a n z g e l e u g n e t . Insof e r n z e i c h n e t sich d a s B u c h nicht nur d u r c h v e r s t ä n d l i c h e Darstellung, sondern auch durch Sachkenntnis aus, die nicht auf d a s H a n d b u c h bes c h r ä n k t bleibt. Es w i r d nichts a u s g e spart, w a s a u s I h n e n e i n e n g u t e n A s s e m b l e r - P r o g r a m m i e r e r m a c h t : Proz e d u r e n und D a t e n s t r u k t u r e n , M a cros, b e d i n g t e A s s e m b l i e r u n g u n d m o d u l a r e s Design. B e s o n d e r s herv o r z u h e b e n ist d a s Kapitel z u r H o c h s p r a c h e n e i n b i n d u n g . Die z a h l r e i c h e n Beispiele s i n d b e w u ß t kurz g e h a l t e n , u m d e n Blick auf d a s W e s e n t l i c h e z u richten ( w a s a u c h s p ä t e r e s N a c h s c h l a g e n unterstützt). A b e r a u c h die Kleinigkeiten s t i m m e n : S o hat sich der A u t o r G e d a n k e n über die V e r w e n d u n g v o n A n g l i s m e n g e m a c h t (die er a u c h d e m Leser nicht vorenthält). S e i n V o r s a t z , d e u t s c h e Bezeichnungen zu verwenden, wo i m m e r e s m ö g l i c h ist, a b e r bei d e n e n g l i s c h e n T e r m i n i zu bleiben, w o die d e u t s c h e S p r a c h e v e r g e w a l t i g t wird, sollte N a c h a h m u n g finden. Der v e r b r e i t e t e n M e i n u n g R e c h n u n g tragend, Assemblerprogrammierer seien konservativ und Komfort geg e n ü b e r nicht a u f g e s c h l o s s e n , w i r d neben dem neuesten Stand von M A S M 5.1 a u c h auf die - e i n e n g e w i s s e n S t a n d a r d d a r s t e l l e n d e n - Vers i o n e n 4.0 und 5.0 B e z u g g e n o m men. Den Vereinfachungen im D s c h u n g e l der Segmentdirektiven (ab 5.0) u n d der n e u e n H o c h s p r a c h e n u n t e r s t ü t z u n g (ab 5.1) w i r d m a n sich a b e r auf die D a u e r nicht entziehen k ö n n e n . E b e n s o nicht d e n h o c h s p r a c h e n ä h n l i c h e n F e a t u r e s : Es gibt einfache String-Operatlonen, Textm a k r o s sind ä h n l i c h d e s C - P r ä p r o z e s s o r s e i n s e t z b a r , mit Hilfe v o n Pointervarlablen k a n n d e r A s s e m b l e r s o g a r die V e r w e n d u n g v o n Z e i g e r n ü b e r w a c h e n . Der Einsatz derart leis t u n g s f ä h i g e r W e r k z e u g e will natürlich gelernt sein, u n d dafür ist d a s B u c h nur z u e m p f e h l e n . U. Schulze

Turbo

Pascal

Kennenlernen

und

5.5 Beherrschen

v o n C h r i s t o p h Kasimir, A d d i s o n W e s ley, B o n n 1990, 4 1 7 S., 1 Diskette, D M 5 8 , - , ISBN 3-89319-264-6 I m m e r k o m p l e x e r w e r d e n d e Softwarewerkzeuge sind heute mehr d e n n je d a z u a n g e t a n , d e m Einstelger d u r c h eine s c h e i n b a r u n ü b e r s c h a u b a r e Fülle a n M ö g l i c h k e l t e n gleich a m A n f a n g j e d e n E n t h u s i a s m u s z u n e h m e n . Es mutet als e i n e u n l ö s b a r e A u f g a b e an, d e n A n f ä n g e r hier in didaktisch kluger W e i s e In die Problematik einzuführen und dabei die K o m p l e x i t ä t e i n e s S o f t w a r e p a k e t e s v o m S c h l a g e e i n e s T u r b o Pascal 5.5 e b e n s o w e n i g a u s d e n A u g e n z u verlleren w i e die z u m V e r s t ä n d n i s n o t w e n d i g e Einfachheit u n d Geradlinigkeit in der Darstellung. Daß d i e s e A u f g a b e lösbar Ist, zeigt C h r i s t o p h Kasimir mit s e i n e m B u c h , v o n d e m m a n sofort a n g e t a n ist. D e n n e s überz e u g t mit einer Sachlichkeit, die die b e s o n d e r e E i n f ü h r u n g s g a b e d e s Autors g e g e n ü b e r d e m Leser deutlich w e r d e n läßt. M a n w i r d nicht mit d e n s o n s t in Einsteigerliteratur ü b l i c h e n g e m e i n p l a t z a r t i g e n Floskeln strapaziert. D a s B u c h reiht s i c h n a h t l o s in die T r a d i t i o n guter a m e r i k a n i s c h e r F a c h b ü c h e r ein, d e n e n sich d e r A d d l s l o n W e s l e y V e r l a g In b e s o n d e r e r W e i s e verpflichtet fühlt. W e n n die wirklich g u t e n H a n d b ü c h e r z u T u r b o P a s c a l 5.5 die Information bringen, so e r g ä n z t d i e s e s B u c h in d i d a k t i s c h e r Hinsicht, w o b e i e s die g e s a m t e Palette d e r T u r b o - P a s c a l - P r o g r a m m i e rung aufzeigt u n d d e n A n f ä n g e r auf g e s c h i c k t e W e i s e a n n a h e z u alle Prob l e m e heranführt. Die e r s t e n Kapitel s i n d betont e i n f a c h g e h a l t e n . Die Bedienung der Entwicklungsumgebung u n d die E r l ä u t e r u n g d e r PascalS p r a c h e l e m e n t e s i n d Im Z u s a m m e n h a n g dargestellt, so d a ß alle Beispiele sofort n a c h v o l l z i e h b a r bleiben. B e s o n d e r s h e r v o r z u h e b e n Ist ein 4 5 S e l t e n u m f a s s e n d e r A b s c h n i t t zur o b jektorientierten P r o g r a m m i e r u n g . Mit z w e i w e i t e r e n speziellen Kapiteln, die die G r a f i k p r o g r a m m i e r u n g e b e n s o a n s c h n e i d e n wie die Erstellung v o n U N I T s , w i r d e i n e Vollständigkeit erreicht, die d e n b e s o n d e r e n Reiz dieses Buches ausmacht. Alle P r o g r a m m e sind auf einer begleit e n d e n Diskette e n t h a l t e n , w o b e i einige R o u t i n e n in U N I T s z u s a m m e n gefaßt w u r d e n . Nicht alle d e r Im B u c h mitgeteilten P r o g r a m m k o n s t r u k t e bef i n d e n sich a u c h so auf d e m Datenträger. Einige Ä n d e r u n g e n w u r d e n hier d o c h v o r g e n o m m e n . Daß e s d a b e i nicht g a n z fehlerfrei z u g i n g , beweist die T a t s a c h e , daß b e i s p i e l s w e i s e im P r o g r a m m C R T T E S T . P A S die Funktion StringOF a u f g e r u f e n wird, die in U N I T S Y S H L P e n t h a l t e n s e i n soll, dort a b e r leider nicht z u f i n d e n Ist. D i e s dürfe der S a c h e selbst a b e r kein e n A b b r u c h tun, d e n n w e r bis z u dies e m P r o g r a m m die A u s f ü h r u n g e n d e s A u t o r s verfolgte, w i r d k a u m S c h w i e r i g k e l t e n h a b e n , d i e s e Routine selbst z u e r g ä n z e n . W a s i h m sic h e r ein n o c h g r ö ß e r e s Erfolgserlebnis b e s c h e r t u n d die Richtigkeit der K a u f e n t s c h e i d u n g für d i e s e s B u c h bestätigt.

Ch.

Hanisch

35

Entwicklungen und Tendenzen Cache-Speicherkonzept für den i 4 8 6 Der 3 2 - B i t - M i k r o p r o z e s s o r 80486 v o n Intel - a u c h als ¡486 b e z e i c h n e t u n t e r s c h e i d e t sich v o n s e i n e m Vorg ä n g e r , d e m 8 0 3 8 6 , in d e r H a u p t s a c h e d a d u r c h , daß er auf e i n e m C h i p den Prozessor 80386, den mathematischen Koprozessor 80387, einen 8 K B y t e g r o ß e n C a c h e - S p e i c h e r und den dazugehörigen Cache-Controller vereinigt (vgl. M P 9/89, S. 2 7 8 u n d M P 4/90). T r o t z d e m gibt e s Bestreb u n g e n , z u s ä t z l i c h s o w o h l e i n e n Kop r o z e s s o r als a u c h e i n e n e x t e r n e n C a c h e a n z u b i e t e n , o b w o h l d i e Onc h i p - B a u g r u p p e n d e n Vorteil der kürz e r e n L e i t u n g s w e g e haben. S o hat die Firma Weltek den Koprozessor Abac u s 4 1 6 7 entwickelt, der bei r e c h e n i n t e n s l v e n w i s s e n s c h a f t l i c h e n und technischen Anwendungsprogrammen e i n e z w e i - bis d r e i f a c h e G e s c h w i n d i g k e i t s e r h ö h u n g b r i n g e n soll. Eine C a c h e - E r w e i t e r u n g für d e n i486 liegt jetzt mit d e m S t e c k m o d u l T u r b o c a c h e 4 8 6 v o n Intel vor, d e r eine weitere L e i s t u n g s s t e i g e r u n g v o n bis zu 1 5 % liefert. Dieser Second-LevelModul e r g ä n z t d e n 8 - K B y t e - O n - c h l p C a c h e d e s ¡486. Er enthält d e n C a c h e - C o n t r o l l e r 8 2 4 8 5 , d e r auf d e m M o d u l j e n a c h V e r s i o n 64 o d e r 1 2 8 KByte SRAM-Cache-Speicher verwaltet (der C a c h e - C o n t r o l l e r 8 2 3 8 5 für d e n 8 0 3 8 6 k a n n d a g e g e n nur 3 2 K B y t e v e r w a l t e n ) . In e i n e m S y s t e m lassen sich bis zu vier T u r b o c a c h e 4 8 6 zu i n s g e s a m t 5 1 2 K B y t e k a s k a d i e r e n - und d a s o h n e Ä n d e r u n g e n der S o f t w a r e . Der T u r b o c a c h e 4 8 6 paßt auf e i n e n S t a n d a r d s t e c k s o c k e l und erleichtert e s d e m C o m p u t e r h e r s t e l l e r , künftige L e i s t u n g s s t e i g e r u n g e n bereits b e i m Systementwurf zu berücksichtigen. Anbieter und Anwender können aber auch entsprechend den Leistungsanforderungen der unterschiedlichen A n w e n d u n g e n e n t s c h e i d e n , o b sie d e n C a c h e - M o d u l e i n s e t z e n wollen. Der T u r b o c a c h e 4 8 6 w i r d mit d e n T a k t f r e q u e n z e n d e s ¡486 - 25 u n d 33 MHz - angeboten. Sein Cache-Controller enthält 5 0 0 0 0 0 T r a n s i s t o r e n , d i e In d e r s e l b e n 1 - / ( m - C M O S - T e c h nologle w i e die d e r P r o z e s s o r e n 8 0 3 8 6 u n d 8 0 4 8 6 hergestellt w e r d e n . Die b e i d e n T u r b o c a c h e 4 8 6 - V e r s i o nen sollen 3 0 0 b z w . 4 0 0 Dollar k o s t e n (für T a u s e n d e r s t ü c k z a h l e n ) . MP

Leiterplattendesign mit 32-Bit-Übertragung P A D S - 2 0 0 0 der C A D S o f t w a r e , U S A , für D e u t s c h l a n d im Mai in M ü n c h e n vorgestellt, Ist ein l e i s t u n g s f ä h i g e s P C - g e s t ü t z t e s C A D - S y s t e m mit voller 3 2 - B l t - U n t e r s t ü t z u n g für k o m p l e xes L e i t e r p l a t t e n d e s i g n u n d die Generierung der E n t w i c k l u n g s - und Hers t e l l u n g s d o k u m e n t a t i o n . Es ist auf 3 8 6 e r u n d 4 8 6 e r P C s lauffähig (mindestens 2 MByte RAM und VGA-Auflösung) und k a n n die S p e i c h e r g r e n zen des MS-DOS-Betriebssystems d u r c h s e i n e n virtuellen S p e i c h e r u m g e h e n . Die D e s i g n - G e n a u i g k e i t liegt mit 0,001 m m w e s e n t l i c h höher als bei h e r k ö m m l i c h e n 1 6 - B l t - S y s t e m e n . Es k ö n n e n Leiterplatten mit über 2 0 0 0 ICs bearbeitet w e r d e n .

36

E r s t m a l s ist mit d e m P A D S - 2 0 0 0 - S y s t e m die Integration e i n e s auto-interaktlven R o u t e r s realisiert, d e r n a c h d e m P u s h ' n - S h o v e - P r i n z i p arbeitet. Bisher w a r d a s erst bei einer Rechn e r b a s l s ab V A X u n d leistungsstärker möglich. P A D S - 2 0 0 0 Ist k o m p a t i b e l mit der neuen PADS-Logic CAE-Software u n d mit P A D S - P C B , d a s mit über 9 0 0 0 Installationen d a s w e l t w e i t erfolgreichste L e i t e r p l a t t e n - D e s i g n - S y s t e m sein soll. MP

Symbolics

FrameThrower

S y m b o l i c s , einer d e r f ü h r e n d e n Hersteller v o n W o r k s t a t i o n s für d i e C o m putergrafik, forciert mit d e m n e u e n F r a m e T h r o w e r die A n w e n d u n g und V e r b r e i t u n g der H i g h Definition Televislon ( H D T V ) . F r a m e T h r o w e r und die S y m b o l i c s W o r k s t a t i o n X L 4 0 0 / X L 1 2 0 0 bieten n a c h M e i n u n g v o n S y m b o l i c s erstmalig d i e Möglichkeit, Computergrafik und HDTV-Videotechnologie miteinander zu verknüpfen. D a m i t erfährt d e r B e r e i c h d e r C o m p u t e r - A n i m a t i o n e i n e n Qualitätssprung. Der F r a m e T h r o w e r besitzt drei Vorteile: Er bietet u n e i n g e s c h r ä n k t e A n w e n d u n g s m ö g l i c h k e i t e n im B e r e i c h der C o m p u t e r s i m u l a t i o n u n d - a n i m a tion; er k a n n u n e i n g e s c h r ä n k t die Vis u a l i s i e r u n g v o n P r o z e ß a b l ä u f e n in Echtzeit a u s g e b e n ; u n d er basiert auf d e m V M E b u s , k a n n also a n alle V M E bus-Workstations gekoppelt werden. Der F r a m e T h r o w e r ist e i n e g a n z e Produktfamilie In H D T V - Q u a l i t ä t , die v o n S y m b o l i c s s t ä n d i g erweitert w e r d e n wird. D a s erste, jetzt v e r f ü g b a r e , P r o d u k t ist der F T 100. MP

Kompakt-Laser für blaues Licht Eine leistungsfähige u n d k o m p a k t e Quelle für b l a u e s Laserlicht h a b e n Wissenschaftler am Almaden-Fors c h u n g s z e n t r u m v o n I B M in S a n J o s e , Kalifornien, entwickelt. Die optis c h e n E i g e n s c h a f t e n s o w i e die A u s g a n g s l e i s t u n g e n d e s n e u e n Lasers l a s s e n Ihn für ein breites A n w e n d u n g s s p e k t r u m attraktiv e r s c h e i n e n . S o k ö n n t e er b e i s p i e l s w e i s e zu optis c h e n S p e i c h e r n mit d e r v i e r f a c h e n S p e i c h e r d i c h t e h e u t e b e k a n n t e r Systeme führen.

möglicht d a m i t d i e v i e r f a c h e Speic h e r d i c h t e im V e r g l e i c h zu h e u t i g e n optischen Speichern. Bis h e u t e ist e s noch nicht g e l u n g e n , e i n e n k o m p a k t e n und leistungsfähig e n Laser, d e r direkt b l a u e s Licht erz e u g t , herzustellen. Die I B M - W i s s e n schaftler nutzen d e s h a l b die M e t h o d e der Frequenzverdopplung, u m Infrarotlicht in b l a u e s Licht u m z u w a n d e l n . D a s infrarote Licht e i n e s D i o d e n l a sers w i r d d a z u d u r c h e i n e n w i n z i g e n , r u n d s e c h s Millimeter l a n g e n Kristall a u s K a l i u m n l o b a t geschickt. Der n e u e K o m p a k t l a s e r für b l a u e s Licht w u r d e anläßlich d e r C o n f e r e n c e o n L a s e r s a n d E l e c t r o - O p t i c s in A n a h e i m , Kalifornien, vorgestellt. A u f der gleichen Veranstaltung berichteten Wissenschaftler v o m Almaden-Fors c h u n g s z e n t r u m über die A r b e i t e n a n e i n e m n e u a r t i g e n Laser, der d u r c h Infrarot-Pumpen und Upcomersion b l a u e s Laserlicht direkt - also nicht mit der M e t h o d e der F r e q u e n z v e r dopplung-erzeugt. Der Upconversion-Laser verwendet e i n e n Kristall a u s Yttrium-Lithiumfluorid, d e m ein P r o z e n t E r b i u m - I o n e n (ein E l e m e n t a u s der G r u p p e der selt e n e n Erden) als D o t i e r u n g h i n z u g e fügt w u r d e . Er erfordert e i n e sehr niedrige U m g e b u n g s t e m p e r a t u r (unter 20 Kelvin). Die künftige F o r s c h u n g zielt j e d o c h auf die E n t w i c k l u n g v o n ä h n l i c h e n L a s e r n bei h ö h e r e n , leichter z u b e h e r r s c h e n d e n T e m p e r a t u ren. Die I B M - W i s s e n s c h a t t l e r halten e s derzeit n o c h für verfrüht, s p e z i e l l e A n w e n d u n g e n für d e n U p c o n v e r s i o n Laser zu n e n n e n . D e n n o c h zeigt er M ö g l i c h k e i t e n für n e u e Laser auf,

Harddisk mit neuartiger Systemkonzeption E r s t m a l s zur C e B I T '90 präsentierte K y o c e r a d a s im Bild d a r g e s t e l l t e F e s t p l a t t e n l a u f w e r k K C - 4 0 G A mit einer S p e i c h e r k a p a z i t ä t v o n 4 0 M B y t e , d a s sich d u r c h e i n e neuartige Sys t e m k o n z e p t i o n a u s z e i c h n e t . In dies e m L a u f w e r k greift j e w e i l s ein S c h r e i b - / L e s e k o p f auf eine Seite d e s L a u f w e r k s zu, d a s i n s g e s a m t nur eine M a g n e t p l a t t e enthält. Ein C a c h e S p e i c h e r in d e r G r ö ß e v o n 3 2 K B y t e e r m ö g l i c h t e i n e n s c h n e l l e r e n Zugriff auf die e i n z e l n e n Daten; die mittlere

die d a s s c h w e r in d e n Griff z u b e k o m m e n d e , h o c h f r e q u e n t e blaue und ultraviolette Licht e r z e u g e n . MP

Dreidimensionale DRAM-Zelle Die E n t w i c k l u n g einer d r e i d i m e n s i o nalen S p e i c h e r z e l l e g a b d i e F i r m a T o s h i b a b e k a n n t . Dabei w u r d e n A n steuertransistor und S p e i c h e r k o n d e n s a t o r ü b e r e i n a n d e r g e s t a p e l t . Der Prototyp w u r d e mit einer k o n v e n t i o nellen 0 , 8 - / i m - S t r u k t u r entworfen. Die F i r m a arbeitet nun d a r a n , d i e Strukturbreite auf 0 , 2 5 ^ m z u s e n k e n , d a sich d i e s e Z e l l e n k o n s t r u k t i o n , nach Ansicht des Unternehmens, sehr g u t für 1 - G B i t - D R A M s e i g n e n würde. Fa

Supraleiterstrom von 1 Mio Ampere An der S t a n f o r d - U n i v e r s i t ä t in Kalifornien ist e s g e l u n g e n , e i n e n s o g e n a n n t e n kritischen S t r o m v o n 1 Mio A m p e r e in H o c h t e m p e r a t u r - S u p r a l e l tern z u e r r e i c h e n . Unter d e m kritis c h e n S t r o m w i r d die S t r o m s t ä r k e v e r s t a n d e n , bei der d e r s u p r a l e i t e n d e W e r k s t o f f g e r a d e n o c h in s e i n e m wid e r s t a n d s l o s e n Z u s t a n d verbleibt. Dabei w u r d e festgestellt, daß bei 78 Kelvin in d e n vier M i k r o m e t e r d ü n n e n Yttrium-Barium-Kupferoxiden ein A u s w a n d e r n d e r s u p r a l e i t e n d e n Ström e b e g a n n . D u r c h eine V e r r i n g e r u n g der T e m p e r a t u r mit f l ü s s i g e m Stickstoff auf 77 Kelvin w u r d e w i e d e r ein ungestörter Stromfluß erreicht. Fa

Zugriffszeit beträgt 2 8 ms. D a s Modell In der k o m p a k t e n B a u f o r m im 3,5Z o l l - F o r m a t u n d der A u s f ü h r u n g In halber B a u h ö h e verfügt über e i n e sic h e r e a u t o m a t i s c h e P a r k f u n k t i o n für die b e i d e n S c h r e i b - / L e s e k ö p f e . Das n e u e L a u f w e r k K C - 4 0 G A verfügt über ein P C / A T - I n t e r f a c e (IDE e m b e d d e d Controller) und e i n e n Interl e a v e - F a k t o r v o n 1:1 für d e n E i n b a u in e n t s p r e c h e n d e P C - S y s t e m e und e r g ä n z t d a m i t d i e Familie d e r z u v e r lässigen u n d l e i s t u n g s s t a r k e n (20und 3 0 - M B y t e - ) F e s t p l a t t e n l a u f w e r k e von Kyocera.

Zu den wesentlichen Eigenschaften d e s n e u e n , ausschließlich a u s f e s t e n Materialien hergestellten L a s e r s z ä h len ein W i r k u n g s g r a d v o n z e h n Prozent - f ü n f m a l m e h r als bei f r ü h e r e n A n o r d n u n g e n - s o w i e e i n e stabile, n a h e z u rauschfreie A u s g a n g s s t r a h lung, d i e zu scharf b e g r e n z t e n P u n k t e n f o k u s s l e r t w e r d e n kann. Die letztg e n a n n t e E i g e n s c h a f t ist beispielsw e i s e für o p t i s c h e Plattenspeicher wichtig. Sie s p e i c h e r n die Information als ein kodiertes Muster v o n Markierungen. H e u t i g e E i n h e i t e n arbeiten mit I n f r a r o t - D i o d e n l a s e r n u n d schreiben d a m i t M a r k i e r u n g s p u n k t e mit ein e m D u r c h m e s s e r v o n 0,8 M i k r o m e tern. W e g e n seiner k ü r z e r e n W e l l e n länge k a n n b l a u e s Licht z u kleineren P u n k t e n mit 0,4 M i k r o m e t e r n D u r c h m e s s e r fokussiert w e r d e n und er-

Mikroprozessortechnik, Berlin 4 (1990) 9

16-MB/t-DRAMs

vor d e r

Serienreife

Das Jahr 1989 war das Jahr der Produktionseinführung des 4-MBitDRAMs. In diesem Jahr wurden von den führenden japanischen und USamerikanischen Chip-Schmieden Prototypen des 16-MBit-DRAMs fertiggestellt. Im Rennen ist auch noch die Siemens AG, die kürzlich die Pilotfertigung des HYB 511610 aufnahm. Aber Siemens wird sicher nicht der einzige europäische Produzent von 16-MBit-DRAMs sein. Neben IBM, die bereits den 4-MBit-DRAM in der Bundesrepublik fertigt, baut Texas Instruments eine DRAM-Fabrik in Avezzano (Italien) auf, wo 1991 die Produktion der 16-MBit-Speicher anlaufen soll. Die Chipfläche des 16-MBit-DRAMs von Siemens ist mit 142 mm 2 wesentlich größer als die seiner Vorgänger (1 MBit: 54 mm 2 , 4 MBit: 91 mm 2 ). Er enthält aber auch die stolze Zahl von

über 33 Mio Bauelementen (siehe Foto). Hergestellt wird er in einer 0,6^m-CMOS-Technologie und ermöglicht Zugriffszeiten von 60 bzw. 80 ns; seine Verlustleistung beträgt 350 mW im Betrieb und 5 mW in Ruhe. Grundlage dieses nach zweijähriger Entwicklungszeit erreichten Erfolges ist die mit dem MEGA-Projekt in München-Perlach geschaffene Technologiebasis. Aber Hitachi setzte kürzlich noch eins drauf: Erste Prototypen ihres 64MBit-DRAMs sollen fertiggestellt worden sein. Seine 140 Millionen Bauelemente sind auf einer Fläche von knapp 198 mm 2 untergebracht. Die Herstellungstechnologie ist besonders bemerkenswert: Mit einem Elektronenstrahl wird eine Strukturbreite von nur 0,3 um erzeugt. Bei der bisher üblichen Fotolithografie, die Licht verwendet, existiert eine Untergrenze von 0,5«m. Deshalb wird beispielsweise von IBM an der Röntgenstrahllithografie gearbeitet. MP

nisch-japanische Handelsabkommen von 1986 aus, bei dem ein Mindestpreis für japanische DRAMs in den USA festgesetzt wurde und gleichzeitig amerikanischen Firmen eine 20prozentige Beteiligung an japanischen Firmen bis 1991 als Ziel vorgegeben wurde. Seiner Ansicht nach sollte die Beteiligung der amerikanischen Firmen bei 5 0 % liegen, um einem Untergang der amerikanischen Halbleiterindustrie vorzubeugen. Fa

Analoger

Neuro-Prozessor

Die japanische Firma Matsushita Electronics entwickelte einen NeuroProzessor mit 64 Knoten pro Chip. Diese 64 Knoten sind in drei Ebenen angeordnet und in einer Matrix-Konfiguration verdrahtet. Der Neuro-Prozessor in BICMOS-Technologle führt 100 Mio Multiplikationen pro Sekunde aus und ist damit 500- bis 1000mal schneller als konventionelle Signalprozessoren. Die Firma will in den nächsten zwei bis drei Jahren die Integrationsdichte bei den Neuroprozessoren auf 256 Knoten pro Chip erhöhen. Außerdem soll ein System für den Einsatz in Zeichenerkennungsapplikationen entwickelt werden, das aus drei Chips besteht. Fa

Ultranet mit 1 GBit/s

Schnelles Wachstum bei OCR und Scannern Einer Studie des Marktforschungsunternehmens Frost & Sullivan zufolge kann der westeuropäische Markt für Scanner und Klarschriftleser (OCR) mit einem hohen Umsatzwachstum rechnen. Der Absatz, so die Prognose, könnte von 18 000 Scannern und rund 10000 Klarschriftlesern im Jahre 1988 auf etwa 230000 Scanner und 150000 Klarschriftleser im Jahre 1993 anwachsen. Im gleichen Zeitraum soll das Marktvolumen in Westeuropa von 33 auf über 340 Mio US-Dollar bei Scannern sowie von 6 auf 97 Mio US-Dollar bei Klarschriftlesern ansteigen. Dieses Wachstum könnte nach Ansicht von Frost & Sullivan nur erreicht werden, wenn die Hersteller die Erkennungsgenauigkeit ihrer Produkte verbessern. Die gegenwärtig erreichte Erkennungsgenauigkeit von 97 und teilweise 98 % bietet kein perfektes und zuverlässiges Leseinstrument. Bei OCRSystemen wird eine Lesegenauigkeit von einem Fehler je 10000 Zeichen erwartet. Das Marktforschungsunternehmen geht davon aus. daß der OCR-Markt in der Entwicklung am weitesten fortgeschritten ist. Dabei gehören zu den aussichtsreichsten Verfahren, die zur Erhöhung der Lesegenauigkeit beiMikroprozessortechnik, Berlin 4 (1990) 9

tragen könnten, die Verwendung von Neuronal-Netzwerk- und von Parallel-Computern mit problemspezifischen Strukturen. Damit werde es auch möglich sein, Handschriften zu erkennen. Fa

Südkorea drängt auf den USA-Markt Nach Ansicht des Vorsitzenden der amerikanischen Firma Micron Technology will Südkorea den USA-Markt mit billigen DRAMs überfluten. Diese Vermutung begründet er damit, daß Südkorea Wafer-Produktionen aufbaut. die zehnmal größer sind als es für den eigenen Markt notwendig ist. Die koreanischen Halbleiterfirmen wollen seiner Meinung nach mit Dumping-Methoden die amerikanischen Hersteller vom Markt verdrängen. Die US-Regierung wird aufgefordert, Maßnahmen dagegen zu ergreifen und vor allem von weiteren Investitionen in größere koreanische Unternehmen abzusehen. Er tritt für eine Isolation der amerikanischen Elektronikindustrie gegenüber asiatischen Ländern ein. Taiwan würde beispielsweise in etwa fünf Jahren die gleichen Ziele verfolgen wie gegenwärtig Südkorea. Der Vorsitzende von Micron Technology sprach sich gegen das amerika-

Eine neue Netz-Architektur, mit der es möglich sein soll, Übertragungsgeschwindigkeiten von 1 GBit pro Sekunde zu erreichen, wurde von der kalifornischen Firma Ultra Network Technologies Inc. entwickelt. Dieses Rechnernetz - mit der Bezeichnung Ultranet - wurde mit RISC-Rechnern der Firma MIPS aufgebaut. Es soll vorwiegend bei RISC-Prozessoren mit höheren Netzgeschwindigkeiten eingesetzt werden. Die Firma MIPS will demnächst RISC-Rechner auf den Markt bringen, die mit 20 MIPS arbeiten, und im Anschluß daran werden RISC-Rechner mit 55 MIPS entwickelt. Die Netzsoftware von Ultranet soll zu einem Preis von 8500 US-Dollar erhältlich sein. Fa

Dies optimiert die Prozessorleistung, so daß der Prozessor länger für die Aufgaben von Anwendungsprogrammen zur Verfügung steht. Zur weiteren Verbesserung der Netzwerk-Performance können Anwender bis zu fünf dieser Token-RingController im Systempro oder im Deskpro 486/25 installieren und so die Leistung des Systems exakt an ihre Anforderungen anpassen. So bringt beispielsweise ein zweiter Controller im Compaq Systempro eine Erhöhung des Datendurchsatzes um 9 9 % . Der 32-Bit-DualSpeed-Token-RingController verfügt über optimierte Treiber für eine Reihe von weltverbreiteten Netzwerk-Betriebssystemen wie Novell NetWare 386, Novell NetWare 2.1 x oder den LAN Manager. MP

Toshiba mit

4-MBit-SRAM

Der größte Speicherchip-Hersteller die japanische Toshiba Corporation konnte kürzlich die Entwicklung eines 23 Nanosekunden schnellen statischen 4-MBit-RAMs in einer 0,5-nmCMOS-Technologie melden. Statische RAMs (SRAMs) haben gegenüber den DRAMs den Vorteil, daß ihr Inhalt nicht zyklisch aufgefrischt werden braucht und deshalb bei ausgeschaltetem Gerät mit Akkus gepuffert werden kann. Wegen des größeren Flächenbedarfs erreichen sie aber nicht die Integrationsdichte der DRAMs. Die für Toshibas neuen SRAM entwickelten Dünnfilmtransistoren erreichen gegenüber ihren Vorgängern eine geringere Leistungsaufnahme und eine höhere Zuverlässigkeit. Der Ruhestromverbrauch des Chips im Pufferbetrieb beträgt 1 / Turbo 4.0!). Man kann sagen: WENN eine Programmiersprache auf einer unterschiedlichen Hardware UND/ODER mit unterschiedlichen Betriebssystemen UND/ODER in unterschiedlichen Compilern UND/ODER in unterschiedlichen Versionen implementiert ist, DANN besteht die Frage der Sicherung der syntaktischen und semantischen Übereinstimmung von Quelltexten, kurz ihrer Compilerkompatibilität bzw. Portabilität. Eine befriedigende Antwort kann die Anwendung zweier Prinzipien geben, die ich als Low Level Moduling und Obermengenorientierung bezeichnen möchte. Low Level Moduling ist die Realisierung bestimmter maschinen- und sy-

Anwendungsprogramme müssen häufig auf verschiedenen Rechnern und unter verschiedenen Betriebssystemen lauffähig sein. Damit entsteht das Problem - wenn man nicht dasselbe Programm mehrfach entwickeln will - , Quelltexte so zu schreiben, daß sie von verschiedenen Compilern verarbeitet werden können und als Programme in ihrer inhaltlichen Wirkung identisch sind. Dies soll zumindest für die Versionen eines Compilers (z. B. Turbo-Pascal) gelten, prinzipiell aber auch für verschiedene Compiler einer Sprache möglich sein. Compiler arbeiten auf bestimmten Rechnern unter bestimmten Betriebssystemen. Das Problem erwächst also zuerst aus der Existenz unterschiedlicher Hardware, deren besondere Möglichkeiten programmsprachlich zu berücksichtigen sind. Für die gleiche Hardware sind in der Regel mehrere Betriebssysteme verfügbar (z. B. MS-DOS, XENIX, OS/ 2).

3:

«

4'

»

7:

* * «

8:

**

9:

11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21 : 22: 23: 24 : 25:

-k.hradilak PROGRAM MODULE

* ** ****

+*+

PROSRAM KEYIÎFHO ; u s e s e r t ; < MOB TURBO >» 4 . 0

{

»

»

KEYDEMO

* * *

He************** !!)

"}

D i e a u f g e f ü h r t e n K o n s t a n t e n s t e l l e n n u r e i n e Auswahl d a r . So f e h l e n zum B e i s p i e l s ä m t l i c h e ALT - u n d CTRL - K o r n b i n a t i o n . Je nach B e d a r f - V e r w e n d e t e r C o m p i l e r ! - s o l l t e n s i e im Q u e l l t e x t v e r b l e i b e n . } { Bewegungstasten : } UF=872;DOKN=«SO,LEFT=875;RIGHT=«77:H0ME=871; EEND=879;PGUP=873;PGDN=«81; INS=S82;DEL-A83;ESC=827:CR=813; { Funktioristasteri :} F1=859;F2=«60;F3=861;F4=862:F5=863; F6 - Ö 6 4 : F 7 - K 6 5 ; F 8 = # 6 6 ; F 9 = H 6 7 ; F 10=068 ; { Zeichenmengenkonstanten : } d i g s : S E T OF c t i a r = [ ' 0 ' . . ' 9 ' ] ; l e t s : SET OF o h » r = ( ' a ° . . ' s ' , ' A ' . . ' Z ' ] ; a s c i i : S E T OF c h a r = r ' '..'«'); JN :SET OF c h a r = [ ' j ' , ' J ' , ' n ' , ' N ' ] ; n o s e t : SET OF c h a r = [ ] ; { Umwandlung K l e i n - i n G r o ß b u c h s t a b e n ? } upcaseon=true; upcaseoff=false;

TYPE d e f s i g n _ s =SET OF c h a r ; usedkey = A R R A Y [ 1 . . 2 ] OF c h a r : CONST STANDSIGN = 1: SPECSIGN = 2; {•• Z E I C H E N I D E N T I F I K A T I O N S R O U T I N E

FUR TURBO PASCAL 4 0 / 5

PROCEDURE g e t k e y ( V A R k e y : u s e d k e y ! BEGIN! p r o c g e t k e y f ) } key[SPECSIGN]:=80; key[STANDSIGN]:=readkey; I F k e y [ S T A N D S I G N ] = 8 0 THEN BEGIN key[SPECSIGN]:=readkey; END;{ i f key(STANDSIGN]=»0 END ; { p r o c g e t k e y ( ) )

61:

{"

PROCEDURE g e t k e y ( V A R k e y : u s e d k e y ) VAR ch: char ;

ZEICHEN I D E N T I F I K A T I O N S R O U T I N E

BEGIN! proc ge>tkey( * >

0 " 1

;

}

63: 64: 65:

66'

19/10/89

CONST

51: 52: 53: 54: 55: 56: 57: 68 : 59:

62:

'89

{'• ALLGEMEINE KONSTANTEN UND TYPEN ZUR TASTATURBEHANDLUNG

26:

27 : 28: 29: 30: 31 : 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49:

(C)

FilR TURBO PASCAL 3 . 0 ;

-

MS-DOS

stemspezifischer Operationen (Begriffsinhalt) in Unterprogrammen mit allgemeiner für alle Compiler geltender Nutzeroberfläche (Begriffsbezeichnung), die in Modulen zusammengefaßt sind. Es wird in Quelltexten, die durch die Bezeichner auf diese Operationen verweisen, solch eine syntaktische Übereinstimmung ermöglicht, daß sie entsprechend des unterschiedlichen Kontextes (Hardware, Betriebssystem, Compiler) eine gleiche Bedeutung (semantische Übereinstimmung) haben. Dies muß auch für allgemeine Typen, Konstanten und Variable gelten. Low Level Moduling wird bereits durch die Standardbibliothek der jeweiligen Compiler verwirklicht: So hat die Venwendung des Bezeichners CLRSCR in allen Turbo-PascalVersionen ungeachtet zugrundeliegender Hardware und Betriebssysteme die gleiche Wirkung - das Löschen des Bildschirmes. Obermengenorientierung heißt, maschinen- und systemspezifische

67: 66: 69: 70: 71: 72: 73: 74: 75: 76: 77: 70: 79:

60:

81: 62: 83: 64: 85: 86 : 67: 68: 89: 90: 91: 92: 93: 94: 95 : 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121 : 122: 123: 124:

132:

38

Compilerkompatible Tastaturbehandlung Die Tastaturbehandlung unterschei-

key[SPECSIGN]:=80 ; read{kbd,key[STANDSIGN]); I F k e y [ S T A N D S I G N ] = E S C THEN I F k e y p r e s s e d THEN BEGIN key [STANDSIGN]:=80; read(kbd,key[SPECSIGN]); END;{ i f k e y p r e s s e d } •END ; [ p r o c g e t k e y ( ) }

ZEICHENIDENTIFIKATIONSROUTINE { G e n u t z t a u f dem PC 1 7 1 5 )

FÜR TURBO PASCAL 3 . 0

PROCEDURE g e t k e y ( V A R k e y : u s e d k e y ) BEGIN{ p r o c g e t k e y ( ) ] k e y [SPECSIGN] : =80 ; readi kbd,key[STANDSIGN]); IF key[STANDSIGN1 IN [ "E, "X, BEGIN I F k e y [ S T A N D S I G N ] = " « THEN BEGIN read(kbd,key[SPECSIGN]Ï; CASE k e y [ S P E C S I G N ] OF ~R: k e y [ S P E C S I G N ] : = H O M E ; " C : k e y [ S F E C S I G N ] : =EEND; ELSE k e y [ S P E C S I G N ] : = 8 0 END; ( c a s e k e y [ S P E C S I G N ] } END ELSE CASE k e y [ S T A N D S I G N ] OF ~E: k e y [ S P E C S I G N ] : =UP; "X:key[SPECSIGN]:=D0WN: "H:key[SPECSIGN]:=LEFT; "D:key[SPECSIGN]:=RIGHT; ~ R : k e y [ S P E C S I G N ] : =PGUP; -C:key[SPECSIGN]:=PGDN; ELSE k e y [ S P E C S I G N ] : = 8 0 ; END;{ case key[STANDSIGN] } ; key[STANDSIGN]:=80; END;(if key[STANDSIGN] i n [ ] END;{ p r o c g e t k e y t ) }

-

CPM 2

2"]

;

" D , " Q , " R , "CJ

THEN

)

{•• ALLGEMEINE COMPILERKOMPATIBLE ROUTINE ZUR ABFRAGE E I N E R ENTSCHEIDUNG " } PROCEDURE g e t d e c t y l . x l : b y t e ;VAR d e c i s : u s e d k e y ; k l , k 2 : d e f s i g n _ s ; upcaseon : boolean ) ; BEGIN{ p r o c g e t d e c ( ) } REPEAT{ - - > ( d e c i s [ S T A N D S I G N ] i n k l ) o r ( d e c i s : S P E C S I G N ] } gotoxy(yl,xl); getkey(decis); I F u p c a s e o n THEN decisCSTANDSIGN]:=upcase(decis[STANDSIGN]); U N T I L ( d e c i s [ S T A N D S I G N ] I N k l ) OR ( d e c i s [ S P E C S I G N ] I N k 2 ) ; END ; { p r o c g e t d e c ( ) }

125:

126: 127: • 123 : 129: 130: 131:

Operationen sowie allgemeine Typen, Konstanten und Variablen, die in Low-Ievel-Modulen zusammengefaßt sind, bezüglich der gültigen Nutzeroberfläche an den Erfordernissen der Obermenge des Leistungsangebotes zu orientieren. Bei Maschinen und Betriebssystemen mit geringerem Leistungsangebot (Tastatur, Dateiarbeit, optische Darstellung, Fehlerbehandlung u. a.) sind diese Operationen als Teilmenge des höchst verfügbaren Maßstabes zu betrachten und zu programmieren. Compiler verwirklichen dieses Prinzip nicht ausdrücklich. Die Anwendung dieser Prinzipien wird an der Behandlung der Tastatur beim PC 1715 mit CP/M-kompatiblen Betriebssystemen und bei PCs unter MS-DOS demonstriert. Die Prozeduren für die einzelnen Compiler können dem Listing entnommen werden.

{" CONST firsty firstx inaxohoioe

= = =

ANWENDUNG I N EINER MENU -

SITUATION

"}

30; 12; 4;

Mikroprozessortechnik, Berlin 4 ( 1 9 9 0 ) 9

133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145 : 146 : 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176:

VAR deckey :usedkey; oldineripos, menpos, actx : byte; BEGIN{ prog KEYDEMO } { } clrscr; gotoxy(firsty,firstx); write('+gotoxy(firsty,firstx+1);write('; ERFASSUNG gotoxy(firsty,firstx+2);write('I LESEN gotoxy(f i r s t y , f i r s t x + 3 ) ; w r i t e ( * I VERÄNDERN g o t o x y ( f i r s t y , f irstx+4) ; w r i t e ( I DRUCKEN gotoxy(firaty,firstx+5),write( ' H menpos : =1; oldmerjpos : =1; REPEAT{ -->deckey[STANDSIGN] in [CR.ESC] } gotoxy ( sued f i r s t y ) + 1, f i rstx+meripos);write('-->1 getdeci succt f i r s t y ) , f i r s tx+rnenpos, deckey, [CR, ES [UP,DOWN,PGUP,PGDN], upcaseoff); IF deckey[SPECSIGN]#0 THEN BEGIN CASE deckeytSPECSIGN] OF UP : IF menpos>l THEN dec(menpos* ELSE menpos:=maxchoice; DOWN:IF menpos< maxchoice THEN inc(menpos) ELSE menpos:=l; PGUP :menpos:=1; PGDN : menpos : =maxchoice; ELSE BEGIN END END;{ case deokeytSPECSIGN] ) END;{ i f deckey[SPECSIGN]«0 } g o t o x y ( s u c c ( f i r s t y ) + l , firstx+olcimenpos) ; w r i t e ( '' gotoxy(suce{firsty)+l,firstx+menpos); writeC oldnienpos :-menpos ; UNTIL deckey[STANDSIGN] IN [CR.ESC]; IF deckey[STANDSIGN] - ESC THEN meripos:=0; ( ... } END.{ prog KEYDEMO }

det sich bei der verglichenen Hardware und dem jeweiligen Betriebssystem erheblich, es gibt aber auch Unterschiede bei den MS-DOS-Versionen von Turbo-Pascal. In den meisten Anwendungsprogrammen ist die Tastatur das Hauptinstrument der Nutzersteuerung. Eine sichere, eindeutige Nutzersteuerung setzt als erstes voraus, daß in Entscheidungs- oder Erfassungssituationen vom Programm gewartet wird, bis eine Taste bzw. Tastenkombination betätigt wurde. Diese muß vom System identifiziert und an eine Variable des Anwendungsprogrammes übergeben werden. Dafür stehen in den Versionen bis 3.0 die Prozedur read(kbd,var ch :char) und ab 4.0 die Funktion readkey :char zur Verfügung. Weiterhin dürfen in jeder Entscheidungs- oder Erfassungssituation nur die Zeichen zulässig sein, die Programmaktionen auslösen sollen (z. B. '0'..'9' zur Funktionsauswahl, Ja/ Nein - Abfragen oder Buchstaben zur Texterfassung). Jede allgemeine Tastaturabfrageroutine kann also folgende Bedeutung bzw. Inhalt haben: WIEDERHOLE SOLANGE - Warte bis Taste oder Tastenkombination betätigt. - Identifiziere Zeichen und übergebe es an eine Programmvariable BIS ÜBERGEBENES ZEICHEN IN ZULASSIGER MENGE Eine solche Routine muß als atomare Operation eine Zeichenidentifikationsroutine erhalten. Diese Prozedur soll getkey() heißen. Sie kann zum Beispiel in einer Routine zur Abfrage einer Entscheidung - procedura getdec() - genutzt werden. Die Syntax bzw. die Nutzeroberfläche beider Routinen enthält folgende Parameter: © Prozedur getkeyO - eine Variable zur Übernahme des jeweiligen Zeichenkodes © Prozedur getdec() - eine Variable zur Übernahme des jeweiligen an getkeyO z u übergebenden Zeichenkodes Mikroprozessortechnik, Berlin 4 (1990) 9

- die zulässige Zeichenmenge und als zusätzliche Funktion: - die Ermittlung der Bildschirmposition bei der Tastaturabfrage - die (boolesche) Festlegung, ob eine automatische Umwandlung von Klein- in Großbuchstaben erfolgen soll. Beide allgemeinen Routinen sind nun inhaltlich und formell bestimmt. Damit ist ein Low-Ievel-Moduling im wesentlichen möglich. Der höchste verfügbare Maßstab der betrachteten Versionen wird durch die MS-DOS-Compiler bereitgestellt: Der Zeichencode wird vom System als 2-Byte-Ausdruck gespeichert. Die beiden Bytes sind dabei meist wechselseitig auf Null gesetzt. Es gilt: Wenn das niederwertige Byte < > 0 ist, dann handelt es sich um eine Standardtaste bzw. ein Zeichen des erweiterten ASCII-Kodes, ansonsten wurde eine Sondertaste betätigt (z. B. F1). Es kann auch der Umschaltstatus (Shift) festgestellt werden, sowie welche der doppelt vorhandenen Tasten gedrückt wurde. Uns soll vor allem der 2-Byte-Ausdruck interessieren. Um die benutzte Taste bzw. Tastenkombination eindeutig zu bestimmen, kann ein Zeichenfeld mit 2 Elementen definiert werden: TYPE usedkey = array [1 ..2] of char; Vereinbart wird, daß das 1. Element Zeichen des Standard- bzw. des erweiterten ASCII-Kodes und das 2. Element Zeichen des Sonderzeichensatzes speichert: CONST STANDSIGN = 1; SPECSIGN = 2; Wenn also eine Sondertaste bzw. Tastenkombination gedrückt wurde, ist das 1. Element gleich # 0 , im anderen Falle erhält das 2. Element den Wert # 0 zugewiesen. Die beiden Routinen können nun programmsprachlich formuliert werden. Zur Nutzung der Sonderzeichen sind allgemeine Konstanten vereinbart.

Sie sind auch eine Obermenge der möglichen Sonderzeichen. Entsprechend der gleichen Hardware und des gleichen Betriebssystems erfolgt die Zeichenidentifikation in der MS-DOS-Verslon von Turbo 3.0 analog zu den Versionen 4.0 und 5.0. Es gilt jedoch, die syntaktischen und semantischen Unterschiede der Standardunterprogramme read (kbd,var ch:char) und readkey:char in getkey() zu berücksichtigen. Beim PC 1715 mit seinen CP/M-kompatiblen Betriebssystemen steht allgemein der einfache ASCII-Kode mit seinen 127 Zeichen zur Verfügung. Ein einfaches Zeichenfeld würde also als Übergabeparameter in getkey() und getdec() genügen; doch im Sinne der Compilerkompatibilität wollen wir eine allgemeine Nutzeroberfläche und eine Orientierung an der Obermenge des Leistungsangebotes wahren. Das setzt aber voraus, daß nach den Erfordernissen des jeweiligen Anwendungsprogrammes die Bedeutung bestimmter Tastendrücke um-

Effektive

Verwaltung

von

gelenkt wird (Semantikverschiebung). Die allgemeinen Zeichenkonstanten der MS-DOS-Versionen werden - soweit sie genutzt werden sollen - übernommen. In dem Beispiel wird der Kode der Kursortasten entsprechend ihrer 16Bit-Darstellung in das 2. Element umgelenkt. "R und "C werden als Betätigen der PgUp bzw. der PgDu-Taste betrachtet. Die Tastenfolgen A Q A R und "Q ' C sollen die Bedeutung der Tasten Home bzw. End haben. Eine vorgeschlagene Nutzung der Funktionstasten /6/ erwies sich als problematisch und insbesondere zwischen CP/A und SCP als nicht kompatibel. Die atomare Operation getkeyO garantiert, daß die Tastaturnutzung beim PC 1715 in einem gewünschten und möglichen Umfang an dem höchsten verfügbaren Maßstab orientiert ist. Es können nun Anwendungsprogramme geschrieben werden, deren Quelltexte in bezug auf die Tastaturbehandlung compilerkompatibel sind.

Datenelementen

In Datenbankprojekten sind in der Regel mehrere Dateien zu verwalten, die teilweise gleiche Datenelemente enthalten. Ein einfaches Verfahren zur Verwaltung der Datenelemente mehrerer Dateien sowie des Dateiaufbaus für einen differezierten Informationsbedarf und zur Dokumentation wird an einem Beispiel beschrieben. Die Verwaltungsdatei ELEMENTE hat den Aufbau nach Tafel 1. Jeder Satz dieser Datei beschreibt ein Datenelement. Über die logischen

... zu verfahren. Der entsprechende Zyklus ist unter Nutzung des DATUM-Datenelementes als Endekriterium leicht programmierbar. Vor dem dritten Schritt kann der Name der Feldelemente in der Datei HILF_1 gegebenenfalls dateispezifisch modifiziert werden (das Datenelement ELN wird so zum Beispiel in DATEI-1 zu A-ELN und in DATEI_2 zu B-ELN usw.). Damit ist die Verwendung von Alias-Vorsätzen überflüssig.

Variablen DATE LI DATEI_... wird markiert, in welcher der zum Projekt gehörigen Dateien dieses Datenelement benutzt wird. Das Feld DATUM wird zur Registratur der letzten Satzänderung genutzt. BEDEUTUNG dient der verbalen Beschreibung des Datenelementes. Nach der Veränderung der Sätze in ELEMENTE kann das gesamte Dateiensystem leicht durchgängig neu gestaltet werden: 1. Daten der DATEL1 auf HILF_1 (erste Hilfsdatei) kopieren (falls notwendig). 2. use ELEMENTE störe " D A T E I - 1 " to M_HILF copy lo HILF_2 field F E L D - N A M E , ; FELD_TYP, F E L D - L A E N , F E L D - D E Z ; for &M HILF .and. .not. PARAMETER 3. create & M - H I L F - 2 4. Daten aus Hilfsdatei an neue DATEI_1 anhängen. Analog ist mit DATEI-2 bis DATEI-

In die Datei ELEMENTE wurde auch das Datenelement PARAMETER aufgenommen. Durch die Möglichkeit der Kommentierung und die Nutzung der Feldelemente FELDJTYP, ... kann dies vorteilhafter als die Verwendung einer Merk-Datei sein. Damit wird eine durch externe Parameter oder Variablen gesteuerte Programmierung und eine einfache Programmanpassung möglich: - Ablauf- oder Variantensteuerung durch Übernahme von PARAMETER - datenelementabhängige Operationen (z. B. Textkettenverarbeitung und Bildschirmgestaltung) durch Übernahme der Beschreibungselemente FELD-TYP, FELD-LAEN und FELD-DEZ Die Datei ELEMENTE wird darüber hinaus für weitere Zwecke (z.B. Kennzeichnung einer Indexierung nach dem Dateiaufbau genutzt. Dr. Jochen Kayser

Tafel 1 Verwaltungsdatel ELEMENTE FELD_NAME

FELD-TYP

FELD...LAEN

FELD_DEZ

FELD_NAME FELD_TYPE FELD-LEN FELD-DEC BEDEUTUNG PARAMETER DATEI-1 DATEI-2 DATEI-3 DATEI DATUM

C C N N C L L L L L D

10 1 3 3 20 1 1 1 1 1 8

0 0 0 0 0 0 0 0 0 0 0

39

Bericht dern auch an vielen anderen Ständen zeigten die Aussteller - beispielsweise WANG und Prime - vor allem die Anwendung von CAD. Generell kam hier also hauptsächlich der Interessent auf seine Kosten, der auf der Suche nach Lösungen - Hardware plus Software - war. Eine weitere, allerdings kleinere Präsentation verschiedener Hersteller gab es auf einem Gemeinschaftsstand, wo die Anwendung des Profibus gezeigt wurde. Als nationale Feldbusnorm sollen seine Teile 1 (OSl-Schichten 1 und 2) und 2 (OSl-Schicht 7) nun veröffentlicht werden. Da der Profibus als offener Feldbus Geräte verschiedener Hersteller vernetzt, kommt auch ihm beim CIM eine gewisse Bedeutung zu.

COM'90

bis zu RAIR und Volkswriter. Daneben boten etliche Beratungsunternehmen ihre Leistungen an. Das ausgewählte Messegelände, die iga in Erfurt, und der Termin Ende Mai mit herrlichem Wetter boten die besten Voraussetzungen zum Gelingen der Veranstaltung. Dennoch hatten wir den Eindruck, daß die von den Veranstaltern prognostizierte Zahl von 50 000 Besuchern bei weitem nicht erreicht wurde - zumal sich die Messebesucher noch mit den Urlaubern und Schulklassen vermischten, die sich als Besucher der iga an den herrlichen Blumen ergötzten. Die noch fehlende Professionalität, die sich in einigen organisatorischen Anlaufschwierigkeiten zeigte, dürfte kaum der Grund gewesen sein.

Als Messe mit einem eigenen Charakter hatten die Veranstalter der ersten deutsch-deutschen Computermesse ihr Projekt konzipiert. Ausgangspunkt war der künftige große Bedarf für den Computereinsatz, der auf dem Gebiet der DDR erwartet wird. Ziel sollte erklärtermaßen nicht das Bestreben möglichst hoher Verkaufsabschlüsse sein, sondern die Kontaktaufnahme mit potentiellen Partnern sowie die Beratung. Diesem Anliegen entsprach auch der begleitende Fachkongreß. Als Veranstalter der vom 30. Mai bis zum 1. Juni laufenden Messe fungierten die Kammer der Technik Erfurt und die Firma Dr. Anton & Partner aus der Bundesrepublik. Zwar waren kaum „ganz große" Hard- oder Softwareanbieter vertreten (Ausnahmen: Apple und Tektronix), aber unter den etwa 150 Ausstellern gab es doch viele bekannte Namen, angefangen von Acer, Adcomp und Altos über Goupil und Peacock

Trotzdem läßt sich aber vielleicht beispielsweise die Aufmerksamkeit gegenüber der Fachpresse bei einer nächsten COM noch steigern. Zu wünschen ist der Veranstaltung künftig jedenfalls ein größerer Zuspruch. MP-We

Hannover Messe Industrie '90 Also lag es doch nicht nur an den milden Frühlingslüften des Maimonats, daß mir der Besuch der Hannover Messe Industrie nach der wenige Wochen zuvor stattgefundenen CeBIT so viel geruhsamer, beschaulicher und damit nervenschonender vorkam: Der Abschlußbericht der Messe AG bestätigt es - gegenüber 560 000 Besuchern der CeBIT '90 drängte es „nur" 390000 zu den Neuheiten der HMI (HMI = Hannover Messe Industrie. Was wären wir ohne Abkürzungen!), das sind auch weniger als im Vergleichsjahr 1988 mit 445000 Besuchern. Dabei kamen immerhin über 30000 Fachbesucher aus der DDR. Die HMI ist derzeit in 14 Fachmessen untergliedert, die von einem umfangreichen Rahmenprogramm begleitet werden. Für Mikroelektronik- und Computerinteressenten sind vor allem die Hallen 13 und 18 von Interesse. In letzterer wurden von etwa 200 Ausstellern auf etwa 7000 m 2 die C-Techniken für die Fertigung präsentiert; besonders im Hinblick auf das Zusammenwirken der einzelnen

40

C-Komponenten wie CAD, CAM, CAQ usw. Zentraler Blickpunkt der Halle war auch diesmal ein sogenanntes CIM-Leitzentrum, wo eine funktionsfähige Modellfabrik mit kundenspezifischer Fertigung aufgebaut war. An diesem Projekt, bei dem der für CIM notwendige durchgängige Informationsfluß an zwei Beispielen veranschaulicht wurde, beteiligten sich 25 Firmen. Auch wenn von offizieller Seite diese Art Präsentation als Erfolg bewertet wurde und zweifellos das Anliegen lobenswert ist, das Zusammenspiel so vieler Elemente verschiedener Hersteller beim CIM zu zeigen - es drängte sich doch die Frage nach dem Verhältnis von Aufwand zu Nutzen auf; und das Besucherinteresse hielt sich ja auch in Grenzen. (Übrigens: Ohne im geringsten etwas unterstellen zu wollen, mich erinnerte der Stand doch sehr an die Halle 15 der Leipziger Messe, in der man unseren ehemaligen politischen Größen regelmäßig die scheinbare Leistungsfähigkeit von irgend etwas „demonstrierte".) Aber nicht nur im CIM-Zentrum, son-

In der genannten Halle 13 zeigten etwa 260 Unternehmen auf der Fachmesse MICROTRONIC - Bausteine der Elektronik Bauelemente und Baugruppen der Elektronik, Komponenten der Optoelektronik und Sensortechnik, Mikrocomputersysteme und Softwareprodukte. Die allgemeine Leitlinie wurde von dem Einfluß bestimmt, den die Mikroelektronik heute auf praktisch alle Industriebereiche nimmt und die Chancen, die sie durch die Einbeziehung mikroelektronischer Komponenten und Systemlösungen der Industrie bietet. Auf einer speziellen VMEbus-Straße ließ sich

MP auf

an den vielen Ständen wiederum die Bedeutung dieses Bussystems im industriellen Bereich erkennen. Im Microtronic Transputer-Center zeigten etwa zehn Firmen - darunter Inmos, Hema und parsytec/paracom - nicht nur ihre neuesten Produkte, sondern informierten und berieten auch über die Einsatzmöglichkeiten und Leistungsfähigkeit von Transputersystemen. Von Atari war hier übrigens mit der Atari Transputer Workstation ATW eines der wenigen explizit ausgestellten Mikrocomputersysteme zu sehen. Eine größere Exposition solcher Systeme gab es nur am Stand von Kontron, wo „der erste und kleinste tragbare Industrierechner mit EISABus", der IPLIte, präsentiert wurde. Wahlweise kann in den 386/486-Portable sogar noch der 64-Blt-RISCProzessor Intel 860 eingesetzt werden, ebenso wie in den gezeigten PSC 860, einen AT386 als „Personal Super Computer". Wenn es um Automatisierung, CKomponenten und Mikroelektronik geht, spielt die weltgrößte Messe trotz CeBIT-Konkurrenz - immer noch eine bedeutende Rolle. Die nächste Hannover Messe Industrie findet übrigens vom 10. bis 17. April 1991 statt: Allerdings finden Sie die MICROTRONIC dann nicht mehr in der Halle 13, da diese das Domizil der C-Techniken sein wird. MP-We

Bildungsreise

Ende Juni hatte MP gemeinsam mit etwa zehn Vertretern der DDRPresse - Redakteuren und Mitgliedern der ehrenamtlichen Redaktionsbeiräte - Gelegenheit zu einer mehrtägigen Technologiereise. Auf dem Programm der Informationstour, zu der die Digital Equipment GmbH eingeladen hatte, standen Besuche und Besichtigungen bei verschiedenen Hard- und Softwareherstellern im südlichen Raum der BRD. Bei DEC weltweit zweitgrößter Computerhersteller - beispielsweise im neuen Werk in Kaufbeuren, das Technologiezentrum und Fertigungsstätte für Speichertechnik ist. Hier werden gegenwärtig unter Reinraumbedingungen u. a. die Winchesterspeicher RA 92 mit 1,2 GByte Kapazität produziert. Besichtigungen des Rechenzentrums der europäischen Zentrale von EASYNET, einem der größten privaten Netze der Welt, in dem die Firma rund um den Globus etwa 50000 Rechner verknüpft hat, zeigten die Bedeutung der Informationstechnikfür moderne Unternehmen. Bei NCR in Augsburg konnte eine nach modernsten Gesichtspunkten ausgestattete Leiterplattenfertigung und die PC-Produktion besichtigt werden. Während der PC 486/25 MC gerade in der Fertigung war, wurde die Produktion des 33-MHz-486 bereits vorbereitet. Eigenartig berührten uns in den Werkshallen sowohl bei DEC als auch bei NCR Schautafeln mit den Kennziffern der vorgegebenen und der erreichten Produktion, anspornende Losungen sowie bei NCR die Straße der „Besten des Monats"

(die Fotos in Rot gerahmt). Uns kam das nur zu vertraut vor, aber es war an diesen Orten kaum zu erwarten. Neben den Erfahrungen durch Augenschein war jedoch auch vieles zu der sogenannten Firmenphilosophie, das heißt dem Selbstverständnis der Unternehmen und der daraus abgeleiteten Marktstrategie, zu erfahren. Interessant waren hier vor allem die Schilderungen eines Mitbegründers der Firma Softlab, die 1971 trotz großer Skepsis von außen eine Softwareproduktion nach amerikanischem Vorbild begann und damals schon auf Computeranwendung zur Softwareproduktion setzte. Heute ist die Münchener Firma unter anderem durch ihr Programmpaket Maestro und die langjährigen CASEErfahrungen eines der führenden Softwarehäuser der BRD. Bei Siemens wurde ein Einblick in die Produktion von Telefonzentralen und ein Ausblick in die durch ISDN geprägte Zukunft gegeben. Schließlich gab es noch einen Besuch im Siemens-Museum in München, der auch unseren Lesern zu empfehlen ist (Eintritt frei), da hier ein Spektrum von den Anfängen der Elektrizität bis zum Megabitspeicher geboten wird. Sowohl die insgesamt gewonnenen (auch Hintergrund-)lnformationen über die besuchten Firmen als auch die Kontakte zu Kollegen der BRDFachpresse freundlicherweise ebenfalls von DEC organisiert - dürften für unsere weitere Arbeit, und damit auch für Sie, liebe Leser, von nicht geringem Wert sein. MP-We

Mikroprozessortechnik, Berlin 4 (1990) 9

kennengelernt

Während Atari bereits jahrelang erfolgreich bei der Entwicklung und Herstellung von Computern auf der Basis von Motorola-Prozessoren war, wurde 1986 mit dem Atari PC eine zweite Richtung eingeschlagen, die Entwicklung MS-DOS-kompatibler Technik mit Intei-Prozessoren. Der erste Atari PC verfügte über 512 KByte RAM und wurde bereits mit 8 MHz getaktet. Diese PC-Reihe wurde über den PC 2 bis hin zum PC 5 - Ataris erstem 32-Bit-PC - fortgesetzt. Etwas verwundern mag deshalb, daß mit dem ABC 286-30 die Numerierung der PC-Generationen verlassen wurde. Der ABC - in diesem Jahr auf der Leipziger Frühjahrsmesse ausgestellt - ist wie der PC 4 ein Rechner der AT-Klasse. Seine Bestückung verrät, daß er mit einer Minimalausstattung sowohl platzsparend als auch kostengünstig konzipiert wurde (die Stellfläche seines Grundgerätes ist kaum größer als die des Monitors). Der ABC bietet all das, was zur Zeit international zum Standard gehört: einen 80286-Prozessor, 640 KByte RAM, eine 30-MByteFestplatte, eine batteriegepufferte Uhr sowie eine parallele und zwei serielle Schnittstellen. Der Hauptspeicher kann auf der Grundplatine (ohne daß ein Erweiterungssteckplatz benötigt wird) mit Single-inline-MemoryModulen (SIMMs) auf 2,5 bzw. 4 MByte ausgebaut werden - abhängig vom SIMM-Typ. Von den 3 Erweiterungssteckplätzen ist einer durch die Controllerkarte für die Laufwerke belegt. Ein Sockel für den Koprozessor 80287 vervollständigt das Ganze, Als einziger Nachteil erscheint die Taktfrequenz von nur 10 MHz, die sicher den kostengünstigen Prozessor- und RAMSchaltkreisen geschuldet ist. Eine Beschleunigung wird dagegen wiederum durch den verwendeten NEAT-Chipsatz er-

1111

11 ,1

It was discovered during the scan process that this page was missing in tne original print source. We are working on sourcing another print copy including this page.

Während des Scanvorgangs wurde leider festgestellt, dass diese Seite in der originalen Print-Vorlage fehlte. Wir bemühen uns diese Seite nachträglich verfügbar zu machen.