Mainframe Programmierung - Exam
Aufgabe 1)
Diskutiere die Geschichte und Entwicklung von Mainframes, wie in den nachfolgenden Notizen beschrieben:
- 1950er: Einführung der ersten Mainframes (IBM 701, UNIVAC I).
- 1960er: IBM System/360 - Standardisierte Mainframe-Architektur.
- 1970er: Zunahme der Leistungsfähigkeit und Einführung von Multiprozessor-Systemen.
- 1980er: Einführung von CMOS-Technologie und Parallel Sysplex für Hochverfügbarkeit.
- 1990er: Verbreitung von Mainframes in Großunternehmen, fortschreitende Virtualisierung.
- 2000er: Einführung des zSeries von IBM, Unterstützung von Linux.
- 2010er: Weiterentwicklung zu zEnterprise, Integration von Cloud-Technologien und Big Data.
- Heute: Hauptanwendung in großen Rechenzentren, Banken, Versicherungen und Regierungsbehörden. Fokus auf Sicherheit, Skalierbarkeit und Zuverlässigkeit.
a)
Beschreibe die wesentlichen Unterschiede in der technischen Entwicklung von Mainframes zwischen den 1950er und 1980er Jahren. Gehe dabei insbesondere auf die Einführung der CMOS-Technologie und die Einführung von Multiprozessor-Systemen ein.
Lösung:
- 1950er Jahre Die 1950er waren das Geburtsjahrzehnt der Mainframes mit der Einführung der ersten Geräte wie dem IBM 701 und UNIVAC I. Diese Systeme waren riesig in ihrer physischen Größe und nutzten hauptsächlich Vakuumröhren zur Datenverarbeitung und Speicherung.
- 1960er Jahre In den 1960er Jahren stellte IBM das System/360 vor, das die erste standardisierte Mainframe-Architektur bot. Dies war ein bedeutender Schritt, da es bedeutete, dass Programme und Hardware zwischen verschiedenen Systemen kompatibel waren, was zuvor nicht der Fall war.
- 1970er Jahre In den 1970er Jahren nahm die Leistungsfähigkeit der Mainframes erheblich zu. Ein bedeutender technischer Fortschritt war die Einführung von Multiprozessor-Systemen. Diese Systeme erlaubten es, mehrere Prozessoren in einem einzigen Mainframe zu nutzen, was die Verarbeitungsgeschwindigkeit und die Leistungsfähigkeit erheblich verbesserte.
- 1980er Jahre Die 1980er Jahre brachten zwei bedeutende technische Innovationen: Die Einführung der CMOS-Technologie (Complementary Metal-Oxide Semiconductor) und das Parallel Sysplex. Die CMOS-Technologie ermöglichte es, die Mainframes energieeffizienter und weniger wärmeempfindlich zu gestalten, was die Zuverlässigkeit und Lebensdauer der Systeme erhöhte. Parallel Sysplex ermöglichte die Verteilung von Arbeitslasten auf mehrere Systeme, was zu einer hohen Verfügbarkeit der Dienste führte.
Zusammenfassend lässt sich sagen, dass die technischen Entwicklungen der Mainframes von den 1950er bis zu den 1980er Jahren drastische Verbesserungen in Bezug auf Kompatibilität, Geschwindigkeit, Energieeffizienz und Hochverfügbarkeit brachten. Die Einführung von Multiprozessor-Systemen und der CMOS-Technologie waren dabei Schlüsselinnovationen, die die Basis für die modernen Mainframes legten.
b)
Erkläre die Bedeutung der IBM System/360-Architektur, die in den 1960er Jahren eingeführt wurde. Warum war diese Architektur so revolutionär für die Entwicklung von Mainframes?
Lösung:
Die IBM System/360-Architektur, die in den 1960er Jahren eingeführt wurde, war eine bahnbrechende Entwicklung in der Geschichte der Mainframes und hatte weitreichende Auswirkungen auf die gesamte IT-Industrie. Hier sind die Gründe, warum diese Architektur so revolutionär war:
- Standardisierung: Der größte Vorteil der System/360-Architektur lag in ihrer Standardisierung. Vor der Einführung des System/360 hatte jeder Mainframe-Hersteller eine eigene, oft inkompatible Architektur. Programme, die für einen Mainframe entwickelt wurden, konnten nicht auf einem anderen verwendet werden. Die standardisierte Architektur des System/360 ermöglichte es, Software und Hardware zu entwickeln, die systemübergreifend kompatibel war.
- Skalierbarkeit: Ein weiteres revolutionäres Merkmal war die Skalierbarkeit. Die System/360-Familie bot eine Reihe von Modellen mit unterschiedlicher Leistung und Kapazität, die alle die gleiche Befehlssatzarchitektur (ISA) nutzten. Dies ermöglichte es Unternehmen, ihre Rechenzentrumsinfrastruktur je nach Bedarf zu erweitern oder zu verkleinern, ohne dass größere Anpassungen an Software oder Hardware erforderlich waren.
- Unterstützung für eine breite Palette von Anwendungen: Die System/360-Architektur unterstützte eine Vielzahl von Anwendungen, von wissenschaftlicher Forschung über kommerzielle Datenverarbeitung bis hin zu Echtzeit-Anwendungen. Dies machte sie vielseitig und weit verbreitet.
- Hardware- und Software-Kompatibilität: Mit System/360 war es möglich, dass Hardware- und Softwarekomponenten verschiedener Anbieter in einem einheitlichen System zusammenarbeiteten. Dies förderte die Entwicklung eines breiten Ökosystems von Drittanbieter-Produkten, die mit dem System/360 kompatibel waren.
- Zukunftssicherheit: Die Einführung des System/360 setzte einen neuen Standard, der für Jahre, wenn nicht Jahrzehnte, in der Branche maßgebend bleiben würde. Die Architektur bot eine zuverlässige Grundlage für zukünftige Entwicklungen und Erweiterungen, was sie zu einer zukunftssicheren Investition machte.
Zusammenfassend lässt sich sagen, dass die IBM System/360-Architektur in den 1960er Jahren revolutionär war, weil sie Standardisierung, Skalierbarkeit, Vielseitigkeit und eine breite Kompatibilität einführte. Diese Merkmale machten Mainframes zugänglicher und nutzbarer für eine breitere Palette von Unternehmen und Anwendungen und legten das Fundament für die moderne Datenverarbeitung.
c)
Analysiere die Rolle von Mainframes in den 2000er Jahren in Verbindung mit der Einführung des zSeries von IBM und der Unterstützung für Linux. Wie hat diese Unterstützung die Nutzung und Flexibilität von Mainframes verändert?
Lösung:
Die Einführung der zSeries von IBM in den 2000er Jahren und die Unterstützung für Linux markierten einen wichtigen Wendepunkt in der Nutzung und Flexibilität von Mainframes. Hier sind einige der wichtigsten Aspekte und Veränderungen:
- Erhöhte Flexibilität durch Linux-Unterstützung: Mit der Unterstützung von Linux auf den zSeries-Mainframes öffnete IBM seine Systeme für die Open-Source-Welt. Dies bedeutete, dass Unternehmen nun die bewährte Zuverlässigkeit und Leistungsfähigkeit von Mainframes nutzen konnten, während sie gleichzeitig die Vorteile der Flexibilität und Anpassungsfähigkeit von Linux nutzten. Linux ermöglichte es, moderne Anwendungen und Open-Source-Software auf Mainframes auszuführen, was die Attraktivität dieser Systeme erheblich steigerte.
- Server-Konsolidierung: Die zSeries-Mainframes boten durch die Unterstützung von Linux eine hervorragende Möglichkeit zur Server-Konsolidierung. Unternehmen konnten mehrere Linux-basierte Anwendungen und Workloads auf einem einzigen Mainframe konsolidieren, was zu einer Reduzierung der physischen Serveranzahl und damit der Hard- und Softwarekosten, sowie der Verwaltungskomplexität führte.
- Virtualisierung: Mit den zSeries wurde die Virtualisierung weiter vorangetrieben. Die Fähigkeit, innerhalb eines einzigen Mainframes mehrere isolierte Linux-Umgebungen zu betreiben, ermöglichte eine effizientere Ressourcennutzung und bessere Auslastung der Systeme. Dies machte Mainframes nicht nur leistungsfähiger, sondern auch wirtschaftlicher.
- Zuverlässigkeit und Sicherheit: Trotz der neuen Flexibilität blieb die zSeries den traditionellen Stärken der Mainframes treu: hohe Zuverlässigkeit, Stabilität und Sicherheit. Diese Eigenschaften machten Mainframes besonders attraktiv für kritische Anwendungen in Bereichen wie Banken, Versicherungen und Regierungsbehörden, wo Ausfallsicherheit und Datenschutz von höchster Priorität sind.
- Integration von neuen Technologien: Die Unterstützung für Linux und die Einführung der zSeries ermöglichten es auch, neue Technologien einfacher in Mainframe-Umgebungen zu integrieren. Dies umfasste Webserver, Datenbanken und Middleware, was den Mainframe zu einer vielseitigen Plattform für eine Vielzahl von Anwendungen machte.
Zusammenfassend lässt sich sagen, dass die Einführung der zSeries von IBM und die Unterstützung für Linux die Nutzung und Flexibilität von Mainframes erheblich verändert haben. Sie boten Unternehmen die Möglichkeit, moderne und leistungsfähige Anwendungen auf einer stabilen und hochverfügbaren Plattform zu betreiben, was die Relevanz und Attraktivität von Mainframes in den 2000er Jahren stark erhöhte.
Aufgabe 2)
Du bist ein neuer Systemadministrator bei einem Unternehmen, das ein Mainframe-System zur Verarbeitung großer Datenmengen verwendet. Deine Aufgabe ist es, das System zu optimieren und sicherzustellen, dass alle Hardware-Komponenten effektiv zusammenarbeiten. Zur Vorbereitung prüfst Du Dein Wissen über die verschiedenen Hardware-Komponenten und deren Funktionen.
a)
Beschreibe die Hauptaufgaben des Prozessors (CPU) in einem Mainframe-System und erkläre, wie er mit dem Hauptspeicher (RAM) interagiert.
Lösung:
Die Hauptaufgaben des Prozessors (CPU) in einem Mainframe-System umfassen die folgenden:
- Rechenoperationen: Die CPU führt arithmetische und logische Operationen durch, die für die Verarbeitung von Daten notwendig sind.
- Befehlsausführung: Die CPU liest und führt die Maschinenbefehle des Programms aus. Diese Befehle beinhalten Operationen wie das Verschieben von Daten, das Durchführen von Berechnungen und das Verwalten von Programmen.
- Datenübertragung: Die CPU hat die Aufgabe, Daten zwischen verschiedenen Komponenten des Systems zu übertragen, einschließlich der Übertragung von Daten zum und vom Hauptspeicher (RAM).
- Kontrollfunktionen: Die CPU steuert und koordiniert den Betrieb anderer Hardware-Komponenten durch das Senden von Steuerbefehlen.
Die Interaktion der CPU mit dem Hauptspeicher (RAM) erfolgt folgendermaßen:
- Speicherzugriff: Die CPU greift auf den RAM zu, um Befehle und Daten zu lesen oder zu schreiben. Der RAM dient als temporärer Speicher, in dem Programme und Daten während der Ausführung gespeichert werden.
- Datenbus: Der Datenbus ermöglicht die Übertragung von Daten zwischen der CPU und dem RAM. Dieser Bus stellt sicher, dass die Daten effizient und schnell übertragen werden.
- Adressierung: Die CPU verwendet Adressbusse, um spezifische Speicheradressen im RAM anzusprechen. Diese Adressen bestimmen, wo die Daten im Speicher abgelegt oder von dort abgerufen werden.
- Speicherverwaltung: Die CPU verwaltet den Speicher durch Zuweisung und Freigabe von Speicherbereichen für Anwendungen und Betriebssystemprozesse. Dies stellt sicher, dass der Speicher effizient genutzt wird und keine Konflikte auftreten.
b)
Erkläre die Funktion von Kanaladaptern in einem Mainframe und wie sie die Leistung des Systems beeinflussen können. Nenne dabei zwei spezifische Beispiele für I/O-Operationen, die durch Kanaladapter ermöglicht werden.
Lösung:
Die Funktion von Kanaladaptern in einem Mainframe-System ist entscheidend für die Effizienz und Leistung. Hier sind die wichtigsten Punkte:
- Steuerung der Ein-/Ausgabe (I/O)-Operationen: Kanaladapter, auch als I/O-Kanäle bekannt, sind spezialisierte Hardware-Komponenten, die für die Verwaltung und Steuerung von Datenübertragungen zwischen der CPU und den Peripheriegeräten verantwortlich sind. Sie entlasten die CPU von diesen Aufgaben und ermöglichen so effizientere Datenverarbeitung.
- Datenübertragungen: Kanaladapter ermöglichen schnelle und zuverlässige Datenübertragungen zwischen dem Hauptspeicher und den angeschlossenen Peripheriegeräten wie Festplatten, Bandlaufwerken oder Netzwerkgeräten.
- Zwischenspeicherung und Pufferung: Sie verwenden Zwischenspeicher- und Pufferungsmechanismen, um die Daten vorübergehend zu speichern und so sicherzustellen, dass die Datenübertragungen gleichmäßig und ohne Verzögerungen erfolgen.
- Kanalprogrammsteuerung: Kanaladapter verwenden sogenannte Kanalprogramme, um komplexe I/O-Operationen durchzuführen. Diese Programme definieren die Reihenfolge und Art der Datenübertragungen.
Wie Kanaladapter die Leistung des Systems beeinflussen können:
- Entlastung der CPU: Durch die Übernahme der I/O-Operationen können Kanaladapter die CPU entlasten, sodass diese sich auf die Verarbeitung und die Ausführung von Programmbefehlen konzentrieren kann. Dies führt zu einer insgesamt höheren Systemleistung.
- Schnellere Datenübertragungen: Durch die speziellen Mechanismen der Kanaladapter können Daten schneller und effizienter übertragen werden, was die gesamte I/O-Leistung steigert und Engpässe reduziert.
- Zuverlässigkeit und Fehlererkennung: Kanaladapter besitzen integrierte Mechanismen zur Fehlererkennung und -korrektur, die dazu beitragen, die Datenintegrität zu gewährleisten und Ausfallzeiten zu minimieren.
Zwei spezifische Beispiele für I/O-Operationen, die durch Kanaladapter ermöglicht werden:
- Festplattenzugriff: Beim Lesen und Schreiben von Daten auf Festplatten verwaltet der Kanaladapter die gesamte Datenübertragung zwischen der Festplatte und dem Hauptspeicher. Dies beinhaltet das Einlesen von Datenblöcken in den Speicher oder das Speichern von Datenblöcken von der CPU auf die Festplatte.
- Netzwerkkommunikation: Kanaladapter können Datenübertragungen über Netzwerkverbindungen steuern, wie etwa das Senden und Empfangen von Datenpaketen über Ethernet. Dies umfasst das Verwalten der Paketübertragung, das Puffern von Daten und die Berechnung von Prüfsummen zur Fehlererkennung.
c)
Ein Unternehmen benötigt eine sehr schnelle Verarbeitung großer Datenmengen. Diskutiere die Vor- und Nachteile einer Multiprozessor-Architektur im Vergleich zu einem einzelnen Prozessor in einem Mainframe-System. Berücksichtige dabei Aspekte wie Kosten, Effizienz und Skalierbarkeit.
Lösung:
Eine Multiprozessor-Architektur kann in einem Mainframe-System zahlreiche Vorteile bieten, insbesondere wenn es um die schnelle Verarbeitung großer Datenmengen geht. Allerdings gibt es auch einige Nachteile zu berücksichtigen. Hier sind die wichtigsten Vor- und Nachteile im Vergleich zu einer Einzelprozessor-Architektur:
Vorteile einer Multiprozessor-Architektur:
- Erhöhte Rechenleistung: Mehrere Prozessoren können gleichzeitig arbeiten, wodurch die Gesamtverarbeitungsleistung des Systems erheblich gesteigert wird. Dies ist besonders vorteilhaft für datenintensive Anwendungen und rechenintensive Aufgaben.
- Parallelverarbeitung: Da mehrere Prozessoren gleichzeitig verschiedene Aufgaben bearbeiten können, wird die Effizienz des Systems verbessert. Dies ermöglicht eine schnellere Durchlaufzeit für komplexe Berechnungen und Datenverarbeitungsprozesse.
- Skalierbarkeit: Eine Multiprozessor-Architektur bietet eine bessere Skalierbarkeit. Unternehmen können zusätzliche Prozessoren hinzufügen, um der steigenden Nachfrage nach Rechenleistung gerecht zu werden, ohne das gesamte System neu zu gestalten.
- Redundanz und Zuverlässigkeit: Bei Ausfall eines Prozessors können die anderen Prozessoren die Aufgaben übernehmen, was die Ausfallsicherheit und Zuverlässigkeit des Systems verbessert.
Nachteile einer Multiprozessor-Architektur:
- Höhere Kosten: Die Anschaffung und der Betrieb eines Multiprozessorsystems sind in der Regel teurer als die eines Einzelprozessorsystems. Dies umfasst sowohl die Kosten für die Hardware als auch für den Energieverbrauch und die Kühlung.
- Komplexität der Implementierung: Die Implementierung und Verwaltung einer Multiprozessor-Architektur ist komplexer. Dies erfordert spezielles Wissen und zusätzliche Software, um die Prozessoren effektiv zu koordinieren und zu synchronisieren.
- Software-Kompatibilität: Nicht alle Anwendungen sind für die Ausführung auf einer Multiprozessor-Architektur optimiert. Es kann erforderlich sein, Software zu aktualisieren oder spezielle Software zu verwenden, um die Vorteile der Multiprozessor-Architektur vollständig auszuschöpfen.
- Kommunikations-Overhead: Mehrere Prozessoren müssen oft miteinander kommunizieren, um Aufgaben zu koordinieren. Dies kann zu einem Kommunikations-Overhead führen, der die Gesamtleistung des Systems beeinträchtigen kann, wenn es nicht richtig verwaltet wird.
Zusammenfassend lässt sich sagen, dass eine Multiprozessor-Architektur erhebliche Vorteile in Bezug auf Rechenleistung, Parallelverarbeitung und Skalierbarkeit bietet, jedoch auch höhere Kosten und Komplexität mit sich bringt. Die Entscheidung für eine Multiprozessor-Architektur sollte daher sorgfältig abgewogen und auf die spezifischen Anforderungen und Ressourcen des Unternehmens abgestimmt werden.
d)
Berechne den theoretischen maximalen Datendurchsatz eines Systemsbusses, der mit einer Taktrate von 100 MHz arbeitet und eine Datenbreite von 32 Bits hat. Zeige alle Rechenschritte und das Endergebnis.
Lösung:
Um den theoretischen maximalen Datendurchsatz eines Systemsbusses zu berechnen, der mit einer Taktrate von 100 MHz arbeitet und eine Datenbreite von 32 Bits hat, folgen wir den folgenden Schritten:
Schritt 1: Umrechnung der Taktrate
Die Taktrate beträgt 100 MHz, was gleich 100 Millionen Zyklen pro Sekunde ist:
Schritt 2: Datenbreite
Die Datenbreite des Busses beträgt 32 Bits:
- 32 Bits = 32 / 8 = 4 Bytes (da 1 Byte = 8 Bits)
Schritt 3: Berechnung des Datendurchsatzes
Der Datendurchsatz kann durch die Multiplikation der Taktrate mit der Datenbreite berechnet werden:
- Datendurchsatz (in Bytes pro Sekunde) = Taktrate (in Hz) * Datenbreite (in Bytes)
- Datendurchsatz = 100.000.000 Hz * 4 Bytes
- Datendurchsatz = 400.000.000 Bytes pro Sekunde
Endergebnis
Der theoretische maximale Datendurchsatz des Systemsbusses beträgt:
- 400.000.000 Bytes pro Sekunde oder 400 MB/s (Megabytes pro Sekunde)
Aufgabe 3)
Gegeben ist folgendes COBOL-Programm, das einige grundlegende Funktionen zur Berechnung und Verwaltung von Kundendaten implementiert. Bitte analysiere und ergänze das Programm basierend auf den Anforderungen der folgenden Teilaufgaben:
IDENTIFICATION DIVISION.PROGRAM-ID. KundenVerwaltung.ENVIRONMENT DIVISION.CONFIGURATION SECTION.DATA DIVISION.FILE SECTION.FD Kunden-Datei.01 Kunden-Datensatz. 05 Kunden-Nr. PIC 9(5). 05 Kunden-Name PIC X(20). 05 Kunden-Geburtsjahr PIC 9(4).WORKING-STORAGE SECTION.01 WS-Kunde. 05 WS-Kunden-Nr. PIC 9(5). 05 WS-Kunden-Name PIC X(20). 05 WS-Kunden-Geburtsjahr PIC 9(4).01 Ergebnis PIC 9(3).PROCEDURE DIVISION.A-BEGIN. OPEN INPUT Kunden-Datei PERFORM Lesen CLOSE Kunden-Datei STOP RUN.Lesen SECTION. READ Kunden-Datei INTO WS-Kunde END-READ.
a)
Basierend auf dem gegebenen COBOL-Programm, ergänze den Code, um das aktuelle Jahr vom System zu erhalten und das Alter des Kunden zu berechnen. Implementiere eine passende Methode in der PROCEDURE DIVISION und füge die notwendigen Datenfelder in der WORKING-STORAGE SECTION hinzu. Du kannst annehmen, dass das aktuelle Jahr 2023 ist.
Lösung:
Um die Aufgabe zu lösen, ergänzen wir das COBOL-Programm, um das aktuelle Jahr vom System zu erhalten und das Alter des Kunden zu berechnen. Zuerst fügen wir neue Datenfelder in der WORKING-STORAGE SECTION hinzu. Danach implementieren wir eine Methode zur Altersberechnung in der PROCEDURE DIVISION.
IDENTIFICATION DIVISION. PROGRAM-ID. KundenVerwaltung. ENVIRONMENT DIVISION. CONFIGURATION SECTION. DATA DIVISION. FILE SECTION. FD Kunden-Datei. 01 Kunden-Datensatz. 05 Kunden-Nr. PIC 9(5). 05 Kunden-Name PIC X(20). 05 Kunden-Geburtsjahr PIC 9(4). WORKING-STORAGE SECTION. 01 WS-Kunde. 05 WS-Kunden-Nr. PIC 9(5). 05 WS-Kunden-Name PIC X(20). 05 WS-Kunden-Geburtsjahr PIC 9(4). 01 WS-Aktuelles-Jahr PIC 9(4) VALUE 2023. 01 WS-Alter PIC 9(3). 01 Ergebnis PIC 9(3). PROCEDURE DIVISION. A-BEGIN. OPEN INPUT Kunden-Datei PERFORM Lesen PERFORM Berechne-Alter CLOSE Kunden-Datei STOP RUN. Lesen SECTION. READ Kunden-Datei INTO WS-Kunde END-READ. Berechne-Alter SECTION. COMPUTE WS-Alter = WS-Aktuelles-Jahr - WS-Kunden-Geburtsjahr. DISPLAY 'Das Alter des Kunden ist: ' WS-Alter.
In diesem Programm:
- Haben wir das Feld WS-Aktuelles-Jahr (mit dem Wert 2023) und das Feld WS-Alter in der WORKING-STORAGE SECTION hinzugefügt.
- Haben wir eine neue Methode „Berechne-Alter“ in der PROCEDURE DIVISION hinzugefügt, die das Alter des Kunden berechnet und anzeigt.
Dieses ergänzte COBOL-Programm liest die Daten eines Kunden, berechnet das Alter basierend auf dem aktuellen Jahr (2023) und gibt das Alter des Kunden aus.
b)
Erweitere die SECTION Lesen
, sodass alle Datensätze bis zum Dateiende gelesen und für jeden Datensatz das Alter des Kunden berechnet wird. Speichere das berechnete Alter eines jeden Kunden in einem Array, das du in der WORKING-STORAGE SECTION definierst. Achte darauf, die Anzahl der gelesenen Datensätze zu zählen.
Lösung:
Um die Aufgabe zu lösen, erweitern wir die SECTION Lesen
, sodass alle Datensätze bis zum Dateiende gelesen werden. Für jeden Datensatz wird das Alter des Kunden berechnet und in einem Array gespeichert. Zusätzlich zählen wir die Anzahl der gelesenen Datensätze. Hier ist das erweiterte COBOL-Programm:
IDENTIFICATION DIVISION. PROGRAM-ID. KundenVerwaltung. ENVIRONMENT DIVISION. CONFIGURATION SECTION. DATA DIVISION. FILE SECTION. FD Kunden-Datei. 01 Kunden-Datensatz. 05 Kunden-Nr. PIC 9(5). 05 Kunden-Name PIC X(20). 05 Kunden-Geburtsjahr PIC 9(4). WORKING-STORAGE SECTION. 01 WS-Kunde. 05 WS-Kunden-Nr. PIC 9(5). 05 WS-Kunden-Name PIC X(20). 05 WS-Kunden-Geburtsjahr PIC 9(4). 01 WS-Aktuelles-Jahr PIC 9(4) VALUE 2023. 01 WS-Alter-Array. 05 WS-Alter OCCURS 100 TIMES PIC 9(3). 01 WS-Zaehler PIC 9(3) VALUE 0. 01 Ergebnis PIC 9(3). PROCEDURE DIVISION. A-BEGIN. OPEN INPUT Kunden-Datei PERFORM Lesen UNTIL WS-Zaehler = 100 OR EOF-FLAG = 'Y' CLOSE Kunden-Datei STOP RUN. Lesen SECTION. READ Kunden-Datei INTO WS-Kunde AT END MOVE 'Y' TO EOF-FLAG NOT AT END PERFORM Berechne-Alter ADD 1 TO WS-Zaehler END-READ. Berechne-Alter SECTION. COMPUTE WS-Alter(WS-Zaehler) = WS-Aktuelles-Jahr - WS-Kunden-Geburtsjahr. DISPLAY 'Das Alter von Kunde' WS-Zaehler 'ist: ' WS-Alter(WS-Zaehler).
In diesem Programm:
- Haben wir das Array
WS-Alter
in der WORKING-STORAGE SECTION hinzugefügt, das Platz für bis zu 100 Alterseinträge bietet. - Haben wir die Variable
WS-Zaehler
zum Zählen der gelesenen Datensätze und die Variable EOF-FLAG
hinzugefügt, um das Dateiende zu kennzeichnen. - Wird in der SECTION
Lesen
das End-of-File-Signal überprüft. Wenn die Datei nicht am Ende ist, wird das Alter des Kunden berechnet und WS-Zaehler
um 1 erhöht. - Berechnet die SECTION
Berechne-Alter
das Alter und speichert es im Array WS-Alter
.
Dieses COBOL-Programm liest nun alle Datensätze bis zum Dateiende und berechnet das Alter für jeden Kunden, wobei die Ergebnisse in einem Array gespeichert werden.
c)
Implementiere eine Methode, die das durchschnittliche Alter aller Kunden berechnet und ausgegeben wird. Stelle sicher, dass das Ergebnis korrekt formatiert ist.
Lösung:
Um das durchschnittliche Alter aller Kunden zu berechnen und auszugeben, erweitern wir das bestehende COBOL-Programm. Zunächst fügen wir die benötigten Datenfelder in der WORKING-STORAGE SECTION hinzu. Danach implementieren wir in der PROCEDURE DIVISION die notwendigen Methoden zur Berechnung des Durchschnittsalters und zur Ausgabe.
IDENTIFICATION DIVISION. PROGRAM-ID. KundenVerwaltung. ENVIRONMENT DIVISION. CONFIGURATION SECTION. DATA DIVISION. FILE SECTION. FD Kunden-Datei. 01 Kunden-Datensatz. 05 Kunden-Nr. PIC 9(5). 05 Kunden-Name PIC X(20). 05 Kunden-Geburtsjahr PIC 9(4). WORKING-STORAGE SECTION. 01 WS-Kunde. 05 WS-Kunden-Nr. PIC 9(5). 05 WS-Kunden-Name PIC X(20). 05 WS-Kunden-Geburtsjahr PIC 9(4). 01 WS-Aktuelles-Jahr PIC 9(4) VALUE 2023. 01 WS-Alter-Array. 05 WS-Alter OCCURS 100 TIMES PIC 9(3). 01 WS-Zaehler PIC 9(3) VALUE 0. 01 WS-Summe-Alter PIC 9(5) VALUE 0. 01 WS-Durchschnitt PIC 9(3)V9(2) VALUE 0. 01 EOF-FLAG PIC X VALUE 'N'. 01 Ergebnis PIC 9(3). PROCEDURE DIVISION. A-BEGIN. OPEN INPUT Kunden-Datei PERFORM Lesen UNTIL WS-Zaehler = 100 OR EOF-FLAG = 'Y' CLOSE Kunden-Datei PERFORM Berechne-Durchschnitt PERFORM Ausgabe STOP RUN. Lesen SECTION. READ Kunden-Datei INTO WS-Kunde AT END MOVE 'Y' TO EOF-FLAG NOT AT END PERFORM Berechne-Alter ADD 1 TO WS-Zaehler END-READ. Berechne-Alter SECTION. ADD 1 TO WS-Zaehler COMPUTE WS-Alter(WS-Zaehler) = WS-Aktuelles-Jahr - WS-Kunden-Geburtsjahr ADD WS-Alter(WS-Zaehler) TO WS-Summe-Alter DISPLAY 'Das Alter von Kunde' WS-Zaehler 'ist: ' WS-Alter(WS-Zaehler). Berechne-Durchschnitt SECTION. IF WS-Zaehler > 0 COMPUTE WS-Durchschnitt = WS-Summe-Alter / WS-Zaehler ELSE MOVE 0 TO WS-Durchschnitt END-IF. Ausgabe SECTION. DISPLAY 'Das durchschnittliche Alter der Kunden ist: ' WS-Durchschnitt.
In diesem Programm:
- Haben wir die Felder
WS-Summe-Alter
und WS-Durchschnitt
zur WORKING-STORAGE SECTION hinzugefügt. - Summiert die Methode
Berechne-Alter
das Alter jedes gelesenen Kunden und addiert es zu WS-Summe-Alter
. - Berechnet die Methode
Berechne-Durchschnitt
das durchschnittliche Alter aller Kunden, indem sie die Summe der Alter durch die Anzahl der Kunden teilt. - Gibt die Methode
Ausgabe
das durchschnittliche Alter formatiert als zwei Dezimalstellen
aus.
Dieses COBOL-Programm berechnet und gibt nun das durchschnittliche Alter aller Kunden, die in der Datei gespeichert sind, korrekt formatiert aus.
d)
Füge eine Bedingung hinzu, die überprüft, ob das Alter des Kunden größer als 18 ist. Falls ja, erhöhe einen Zähler für volljährige Kunden, der am Ende des Programms ausgegeben wird. Ergänze die notwendige Variable in der WORKING-STORAGE SECTION.
Lösung:
Um die Aufgabe zu lösen, erweitern wir das COBOL-Programm mit einer Bedingung, die das Alter des Kunden überprüft. Wenn das Alter größer als 18 ist, erhöht das Programm einen Zähler für volljährige Kunden. Wir fügen die notwendige Variable in der WORKING-STORAGE SECTION hinzu und passen die PROCEDURE DIVISION an, um die Bedingung zu implementieren und den Zähler auszugeben.
IDENTIFICATION DIVISION. PROGRAM-ID. KundenVerwaltung. ENVIRONMENT DIVISION. CONFIGURATION SECTION. DATA DIVISION. FILE SECTION. FD Kunden-Datei. 01 Kunden-Datensatz. 05 Kunden-Nr. PIC 9(5). 05 Kunden-Name PIC X(20). 05 Kunden-Geburtsjahr PIC 9(4). WORKING-STORAGE SECTION. 01 WS-Kunde. 05 WS-Kunden-Nr. PIC 9(5). 05 WS-Kunden-Name PIC X(20). 05 WS-Kunden-Geburtsjahr PIC 9(4). 01 WS-Aktuelles-Jahr PIC 9(4) VALUE 2023. 01 WS-Alter-Array. 05 WS-Alter OCCURS 100 TIMES PIC 9(3). 01 WS-Zaehler PIC 9(3) VALUE 0. 01 WS-Summe-Alter PIC 9(5) VALUE 0. 01 WS-Durchschnitt PIC 9(3)V9(2) VALUE 0. 01 WS-Count-Volljaehrige PIC 9(3) VALUE 0. 01 EOF-FLAG PIC X VALUE 'N'. 01 Ergebnis PIC 9(3). PROCEDURE DIVISION. A-BEGIN. OPEN INPUT Kunden-Datei PERFORM Lesen UNTIL WS-Zaehler = 100 OR EOF-FLAG = 'Y' CLOSE Kunden-Datei PERFORM Berechne-Durchschnitt PERFORM Ausgabe STOP RUN. Lesen SECTION. READ Kunden-Datei INTO WS-Kunde AT END MOVE 'Y' TO EOF-FLAG NOT AT END PERFORM Berechne-Alter ADD 1 TO WS-Zaehler END-READ. Berechne-Alter SECTION. COMPUTE WS-Alter(WS-Zaehler) = WS-Aktuelles-Jahr - WS-Kunden-Geburtsjahr ADD WS-Alter(WS-Zaehler) TO WS-Summe-Alter IF WS-Alter(WS-Zaehler) > 18 ADD 1 TO WS-Count-Volljaehrige END-IF DISPLAY 'Das Alter von Kunde' WS-Zaehler 'ist: ' WS-Alter(WS-Zaehler). Berechne-Durchschnitt SECTION. IF WS-Zaehler > 0 COMPUTE WS-Durchschnitt = WS-Summe-Alter / WS-Zaehler ELSE MOVE 0 TO WS-Durchschnitt END-IF. Ausgabe SECTION. DISPLAY 'Das durchschnittliche Alter der Kunden ist: ' WS-Durchschnitt. DISPLAY 'Anzahl der volljährigen Kunden: ' WS-Count-Volljaehrige.
In diesem Programm:
- Haben wir die Variable
WS-Count-Volljaehrige
in der WORKING-STORAGE SECTION hinzugefügt, um die Anzahl der volljährigen Kunden zu zählen. - Überprüft die Methode
Berechne-Alter
, ob das Alter des Kunden größer als 18 ist, und erhöht WS-Count-Volljaehrige
, wenn dies der Fall ist. - Gibt die Methode
Ausgabe
die Anzahl der volljährigen Kunden neben dem durchschnittlichen Alter aus.
Dieses COBOL-Programm zählt nun die Anzahl der volljährigen Kunden und gibt diese zusammen mit dem durchschnittlichen Alter aller Kunden aus.
Aufgabe 4)
Du arbeitest in einer IT-Abteilung und bist für die Verwaltung eines Mainframe-Systems verantwortlich. In diesem Zusammenhang musst Du verschiedene Aspekte des z/OS und anderer IBM Mainframe-Betriebssysteme verstehen und anwenden können. Nutze die folgenden Informationen, um die Aufgaben zu lösen:
- z/OS ist das IBM Mainframe-Betriebssystem, das sich durch Zuverlässigkeit, Skalierbarkeit und Sicherheit auszeichnet.
- Seine Entwicklung begann in den 1960er Jahren mit der System/360-Serie.
- Es bietet verschiedene Features wie Job-Management, Daten-Handling, Sicherheit und Virtualisierung.
- Wichtige Komponenten sind JES (Job Entry Subsystems), TSO/E (Time Sharing Option/Extensions) und ISPF (Interactive System Productivity Facility).
- Andere Mainframe-Betriebssysteme umfassen z/VM (für Virtualisierung), z/VSE (für kleinere Workloads) und Linux on Z (eine Open-Source-Alternative).
a)
a) Erläutere die Rolle der einzelnen Komponenten von z/OS (JES, TSO/E, ISPF) und wie sie zusammen die Effizienz und Leistung eines Mainframe-Systems verbessern.
- JES: ...
- TSO/E: ...
- ISPF: ...
Lösung:
Die folgenden Informationen erläutern die Rolle der einzelnen Komponenten von z/OS und wie sie zusammen die Effizienz und Leistung eines Mainframe-Systems verbessern:
- JES (Job Entry Subsystem): JES ist verantwortlich für die Verwaltung von Jobs, die auf dem System ausgeführt werden. Es nimmt Jobs entgegen, plant sie zur Ausführung, überwacht ihre Ausführung und stellt sicher, dass die Ausgabe an die richtige Stelle geleitet wird. Durch die Optimierung dieser Prozesse trägt JES dazu bei, dass Ressourcen effektiv genutzt werden und die Systemleistung verbessert wird.
- TSO/E (Time Sharing Option/Extensions): TSO/E bietet eine interaktive Umgebung, in der Benutzer Befehle ausführen und Programme betreiben können, als wären sie direkt mit dem Mainframe verbunden. Es ermöglicht mehreren Benutzern gleichzeitig den Zugriff auf das System und verbessert so die Produktivität und Zusammenarbeit. Durch die Unterstützung von Batch- und interaktiven Prozessen trägt TSO/E zur Flexibilität und Effizienz der Systemverwaltung bei.
- ISPF (Interactive System Productivity Facility): ISPF bietet eine benutzerfreundliche Schnittstelle zur Verwaltung und Bearbeitung von Daten und Systemressourcen. Es stellt Tools für Dateiverwaltung, Editieren, Kompilieren und Debuggen zur Verfügung. Dank der intuitiven Menüs und Bildschirmmasken können Benutzer effizienter arbeiten, wodurch die Gesamtproduktivität des Systems gesteigert wird.
b)
b) Angenommen, Du hast eine Workload, die auf Virtualisierung angewiesen ist. Erläutere, warum z/VM gegenüber z/OS und z/VSE in diesem Fall die bessere Wahl sein könnte. Nenne spezifische Features und Vorteile von z/VM.
Lösung:
Für eine Workload, die auf Virtualisierung angewiesen ist, könnte z/VM aus den folgenden Gründen gegenüber z/OS und z/VSE die bessere Wahl sein:
- Speziell für Virtualisierung entwickelt: z/VM (Virtual Machine) ist speziell zur Unterstützung von virtuellen Maschinen konzipiert worden. Es bietet eine ausgezeichnete Plattform zur Erstellung und Verwaltung von mehreren virtuellen Maschinen auf einem einzigen physischen Mainframe-Server. Dies ermöglicht eine bessere Konsolidierung der Ressourcen und eine effizientere Nutzung der Hardware.
- Vorteile und Features von z/VM:
- Hohe Virtualisierungsdichte: z/VM ermöglicht die Erstellung von Hunderten bis Tausenden virtuellen Servern auf einem einzigen System, was zu einer erheblichen Reduzierung der Hardwarenutzungskosten führt.
- Isolierung und Sicherheit: Jede virtuelle Maschine ist vollständig isoliert, was die Sicherheit erhöht und das Risiko von Interferenzen zwischen verschiedenen Workloads minimiert.
- Flexible Ressourcenzuweisung: Ressourcen wie CPU, Speicher und I/O können dynamisch zugewiesen und nach Bedarf angepasst werden, wodurch eine flexible und effiziente Ressourcennutzung sichergestellt wird.
- Unterstützung für verschiedene Betriebssysteme: Mit z/VM können verschiedene Betriebssysteme wie z/OS, z/VSE, Linux on Z und mehr gleichzeitig auf demselben physischen System laufen, was eine hohe Flexibilität und Vielseitigkeit bietet.
- Virtual Machine Gäste: Benutzer können mehrere Virtual Machines einrichten, konfigurieren und betreiben, um verschiedene Anwendungen und Dienste zu testen, zu entwickeln und zu betreiben.
- Kosteneffizienz: Durch die Fähigkeit von z/VM, viele virtuelle Maschinen effizient zu betreiben, können Unternehmen die Anzahl der benötigten physischen Server reduzieren, was die Wartungskosten und den Platzbedarf senkt.
- Skalierbarkeit: z/VM bietet eine hohe Skalierbarkeit und kann leicht an wachsende Workloads angepasst werden, ohne die Leistung zu beeinträchtigen.
Aufgrund dieser spezifischen Features und Vorteile ist z/VM die bessere Wahl, wenn die Workload stark auf Virtualisierung angewiesen ist.
c)
c) Du möchtest eine Open-Source-Anwendung auf einem IBM Mainframe ausführen. Diskutiere die Vor- und Nachteile der Verwendung von Linux on Z im Vergleich zu z/OS und z/VSE in diesem Szenario.
Lösung:
Die Wahl des Betriebssystems für die Ausführung einer Open-Source-Anwendung auf einem IBM Mainframe hängt von verschiedenen Faktoren ab. Im Folgenden werden die Vor- und Nachteile der Verwendung von Linux on Z im Vergleich zu z/OS und z/VSE diskutiert:
- Linux on Z:
- Vorteile:
- Kompatibilität mit Open-Source-Anwendungen: Linux on Z ist ideal für Open-Source-Anwendungen, da es weitgehend kompatibel mit der Linux-Umgebung ist, die viele Open-Source-Projekte unterstützen. Es ermöglicht den direkten Einsatz von Linux-Distributionen auf dem Mainframe.
- Kosteneffizienz: Durch die Nutzung von Open-Source-Software können Lizenzkosten gespart werden. Linux on Z bietet somit eine kostengünstigere Plattform.
- Skalierbarkeit: Linux on Z bietet hohe Skalierbarkeit und kann effizient auf Mainframe-Hardware betrieben werden, was besonders für große und komplexe Workloads von Vorteil ist.
- Flexibilität: Linux on Z unterstützt eine breite Palette von Anwendungen und Tools, was den Benutzern zusätzliche Flexibilität bei der Auswahl der Software bietet.
- Nachteile:
- Erfahrungsmangel: Falls das IT-Team nicht ausreichend Erfahrung mit Linux hat, kann es eine steile Lernkurve geben.
- Integration: Integrierung von Linux on Z mit existierenden Mainframe-Systemen wie z/OS kann komplex sein und spezielle Kenntnisse erfordern.
- z/OS:
- Vorteile:
- Robustheit und Sicherheit: z/OS ist für seine Zuverlässigkeit, Sicherheit und hohe Transaktionsverarbeitungsfähigkeiten bekannt, was es ideal für geschäftskritische Anwendungen macht.
- Unterstützung für Mainframe-Features: z/OS unterstützt spezielle Mainframe-Features wie Job-Management und Arbeitslastverwaltung, die für bestimmte Anwendungen essentiell sein können.
- Nachteile:
- Kompatibilität: Da viele Open-Source-Anwendungen für Linux entwickelt wurden, kann es schwierig sein, sie auf z/OS zu betreiben.
- Kosten: z/OS kann aufgrund von Lizenz- und Verwaltungskosten teurer sein als Linux on Z.
- z/VSE:
- Vorteile:
- Einfachheit: z/VSE ist einfacher und weniger komplex als z/OS, was die Administration und Einrichtung erleichtert.
- Kosten: z/VSE kann kostengünstiger als z/OS sein und bietet trotzdem viele Funktionen eines Mainframe-Betriebssystems.
- Nachteile:
- Beschränkte Funktionsvielfalt: z/VSE bietet weniger Features und weniger Unterstützung für moderne Anwendungen und Workloads im Vergleich zu z/OS oder Linux on Z.
- Eingeschränkte Kompatibilität: Wie z/OS kann es schwierig sein, Open-Source-Anwendungen auf z/VSE zu betreiben.
Zusammenfassend bietet Linux on Z für die Ausführung von Open-Source-Anwendungen auf einem IBM Mainframe erhebliche Vorteile hinsichtlich Kompatibilität, Kosten und Flexibilität. Allerdings sollten organisatorische Kenntnisse und Integrationsmöglichkeiten mit bestehenden Systemen berücksichtigt werden.
d)
d) Angenommen, Du bist beauftragt, die Sicherheit des z/OS-Systems zu verbessern. Beschreibe drei spezifische Sicherheitsfeatures von z/OS und wie diese zur Systemintegrität beitragen. Berücksichtige dabei die Aspekte der Datenverschlüsselung, Zugriffskontrolle und Intrusion Detection.
Lösung:
Um die Sicherheit des z/OS-Systems zu verbessern, können spezifische Sicherheitsfeatures implementiert werden. Diese Features tragen wesentlich zur Systemintegrität bei, indem sie verschiedene Aspekte wie Datenverschlüsselung, Zugriffskontrolle und Intrusion Detection abdecken:
- Datenverschlüsselung: z/OS bietet starke Verschlüsselungsmechanismen, die sicherstellen, dass Daten sowohl im Ruhezustand (at rest) als auch während der Übertragung (in transit) verschlüsselt werden. Die Integrated Cryptographic Service Facility (ICSF) auf z/OS implementiert kryptografische Algorithmen und stellt APIs bereit, um die Verschlüsselung und Entschlüsselung von Daten zu verwalten. Dies schützt sensible Informationen vor unbefugtem Zugriff und Manipulation.
- Zugriffskontrolle: Ein zentrales Sicherheitsfeature von z/OS ist das Resource Access Control Facility (RACF). RACF verwaltet Benutzerrechte und steuert den Zugriff auf Systemressourcen. Es ermöglicht die Einrichtung von Sicherheitsrichtlinien, Benutzer- und Gruppenprofilen sowie die Zuweisung von Berechtigungen. Diese fein granulare Zugriffskontrolle verhindert unbefugte Zugriffe auf kritische Daten und Ressourcen, gewährleistet die Einhaltung von Sicherheitsrichtlinien und erhöht die Systemintegrität.
- Intrusion Detection: z/OS verfügt über das IBM Security zSecure™ Alert und zSecure™ Collect, die Funktionen zur Erkennung und Reaktion auf Sicherheitsvorfälle bieten. Diese Tools überwachen Systemaktivitäten in Echtzeit und erkennen ungewöhnliche oder verdächtige Aktivitäten, die auf einen Sicherheitsvorfall hinweisen könnten. Durch die schnelle Reaktion auf solche Vorfälle wird die Integrität des Systems aufrechterhalten und mögliche Schäden durch Sicherheitsverletzungen minimiert.
Zusammenfassend tragen diese drei Sicherheitsfeatures - Datenverschlüsselung, Zugriffskontrolle und Intrusion Detection - erheblich zur Sicherheit und Integrität des z/OS-Systems bei.