Betriebssysteme. Vorlesungsskript WS 2001/2002. Version vom 15. Oktober 2001. Fachbereich Mathematik/Informatik Universität Osnabrück



Ähnliche Dokumente
B.4. B.4 Betriebssysteme Prof. Dr. Rainer Manthey Informatik II 1

gibt es verschiedene Betriebssysteme die je nach Gerät und Nutzer installiert werden können.

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

2 DAS BETRIEBSSYSTEM. 2.1 Wozu dient das Betriebssystem. 2.2 Die Bildschirmoberfläche (Desktop) Themen in diesem Kapitel: Das Betriebssystem

Systeme 1. Kapitel 10. Virtualisierung

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

ObjectBridge Java Edition

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Virtual Desktop Infrasstructure - VDI

Technische Alternative elektronische Steuerungsgerätegesellschaft mbh. A-3872 Amaliendorf, Langestr. 124 Tel +43 (0)

4D Server v12 64-bit Version BETA VERSION

Übung: Verwendung von Java-Threads

UNIX Ein kleiner Ausschnitt

Computeria Solothurn

Duonix Service Software Bedienungsanleitung. Bitte beachten Sie folgende Hinweise vor der Inbetriebnahmen der Service Software.

A1 Desktop Security Installationshilfe. Symantec Endpoint Protection 12.1 für Windows/Mac

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Wie lizenziert man die Virtualisierung von Windows Desktop Betriebssystemen?

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Installationsanleitung für das Integrity Tool zur AusweisApp Version 1.7 (Microsoft Windows) Dokumentversion 1.0

Dialogik Cloud. Die Arbeitsumgebung in der Cloud

Tutorial Windows XP SP2 verteilen

Calogero Fontana Fachseminar WS09/10. Virtualisierung

HTBVIEWER INBETRIEBNAHME

Liesmich zum Kurs: Programmieren in der Bioinformatik mit Perl Konfigurierung der Programmierumgebung

CARD STAR /medic2 und CARD STAR /memo3 Installation des USB-Treibers (Administrator-Tätigkeit) Stand

Analyse zum Thema: Laufzeit von Support-Leistungen für ausgewählte Server OS

Installation OMNIKEY 3121 USB

SDD System Design Document

Installationsanleitung

Wifiway auf einer VMware Workstation auf einem Windows Rechner anwenden & VM Workstation installieren

Sicherheitsdienste. Schutz von Rechnern und Speichermedien vor

E-Cinema Central. VPN-Client Installation

Verteilte Systeme Prof. Dr. Stefan Fischer

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Installation der SAS Foundation Software auf Windows

DIE SCHRITTE ZUR KORREKTEN LIZENZIERUNG

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Software-Validierung im Testsystem

Workshop: Eigenes Image ohne VMware-Programme erstellen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Vorstellung - "Personal Remote Desktop" für (fast) alle Hardwareplattformen und Betriebssysteme

1 Einleitung. 1.1 Aufgaben und Grobstruktur. Was ist ein Betriebssystem?

peer-to-peer Dateisystem Synchronisation

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Verwendung des Terminalservers der MUG

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

System-Update Addendum

HISTORISCHES INFORMATIK-MUSEUM DER UNIVERSIDAD POLITECNICA DE MADRID

AMS Alarm Management System

! " # $ " % & Nicki Wruck worldwidewruck

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 14 und VMware Player

disk2vhd Wie sichere ich meine Daten von Windows XP? Vorwort 1 Sichern der Festplatte 2

DB2 Kurzeinführung (Windows)

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Einführung in. Logische Schaltungen

Client-Systemanforderungen für Brainloop Secure Dataroom ab Version 8.30

Rechnernutzung in der Physik. Betriebssysteme

ANYWHERE Zugriff von externen Arbeitsplätzen

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Computer installieren war gestern!

Windows Verbindung mit WLAN BZPflege trennen Verbindung mit WLAN EDU-BZPflege automatisch erstellen... 30

> Soft.ZIV. Maple Mathematisches Software System

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

EIDAMO Webshop-Lösung - White Paper

Installation EPLAN Electric P8 Version Bit Stand: 07/2014

Windows Explorer Das unbekannte Tool. Compi-Treff vom 19. September 2014 Thomas Sigg

Lizenzierung von SharePoint Server 2013

Buddy - Algorithmus Handbuch für Endnutzer Stand

Bezugsquellen und Dokumentationen für LINUX und LibreOffice

TeamSpeak3 Einrichten

GeoPilot (Android) die App

Kurzanleitung So geht s

Client-Systemanforderungen für Brainloop Secure Dataroom ab Version 8.30

eclips Handheld Remote Control Software Updater

Installation und Inbetriebnahme von SolidWorks

Formular»Fragenkatalog BIM-Server«

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Treuhand Cloud. Die Arbeitsumgebung in der Cloud

SECURE DOWNLOAD MANAGER

Robot Karol für Delphi

0. Einführung. C und C++ (CPP)

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

BEO-Sanktionsprüfung Eine Einführung zum Thema Sanktionsprüfung und eine Übersicht zur BEO-Lösung.

CLX.Sentinel Kurzanleitung

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 11 und VMware Player

Lizenzierung von System Center 2012

Einführung in PHP. (mit Aufgaben)

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Hochschule Darmstadt - Fachbereich Informatik - Fachschaft des Fachbereiches

SILBER SURFER. PC-Treffen der Arbeiterwohlfahrt, Ortsverein Sehnde. PC Internet / Cloud. Leitfaden zur Schulung

Informationen zur Lizenzierung von Windows Server 2008 R2

Transkript:

Betriebssysteme Vorlesungsskript WS 2001/2002 Jürgen Schönwälder Version vom 15. Oktober 2001 Fachbereich Mathematik/Informatik Universität Osnabrück

Vorwort Betriebssysteme sind notwendig, um auf einer Rechnerhardware geordnet Programme ausführen zu können. Sie stellen Applikationen eine logische Sicht auf die zur Verfügung stehenden Betriebsmittel bereit und realisieren grundlegende Abstraktionen (wie z.b. Dateien), ohne die informationsverarbeitende Systeme heute nicht mehr denkbar wären. Betriebssysteme unterscheiden sich dabei recht deutlich von anderen Programmen. Sie haben in der Regel einen ganz eigenen Kontrollfluß und müssen besonderen Anforderungen hinsichtlich Performanz, Robustheit und Sicherheit genügen. In diesem Zusammenhang sind viele grundlegende Konzepte entwickelt und über die Jahre optimiert worden. Schließlich sind Problemlösungen aus dem Bereich der Betriebssysteme (Behandlung von Nebenläufigkeit) auch oftmals zur Behandlung ähnlicher Situationen in Applikationen geeignet. Das vorliegende Dokument ist aus Vorlesungen mit dem Titel Einführung in Betriebssysteme und Netze an der TU Braunschweig entstanden, die ich im Jahr 1997 entworfen habe und seither als Wahlpflichtveranstaltung im vierten Semester angeboten wird. Im wesentlichen wurde der Anteil, der sich mit Grundlagen von Kommunikationsnetzen beschäftigt, entfernt und dafür konkrete Beispiele aus dem Linux Betriebssystem eingearbeitet. Jürgen Schönwälder ii

Inhaltsverzeichnis 1 Einführung 1 1.1 Betriebssystem-Dienste........................... 2 1.2 Soft- und Hardwareschichten eines Rechensystems............ 3 1.3 Betriebssysteme als geschichtete abstrakte Maschinen........... 4 1.4 Verarbeitungsmodelle............................ 5 1.4.1 Stapelverarbeitung (batch processing)............... 5 1.4.2 Dialogverarbeitung (time sharing)................. 6 1.4.3 Echtzeitverarbeitung (real time).................. 6 1.5 Benutzermode versus Betriebssystemmode................ 6 1.6 Trennung von Mechanismums und Strategie................ 6 1.7 Architekturen von Betriebssystemen.................... 6 1.8 Geschichte der Betriebssysteme...................... 6 1.9 Standardisierung.............................. 7 1.9.1 POSIX Standards.......................... 7 iii

Kapitel 1 Einführung Begriffsdefinition: An operating system is similar to a government... Like a government, the operating system performs no useful function by itself. [5] Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten des digitalen Rechensystems bilden und die insbesondere die Abwicklung von Programmen steuern und überwachen. (DIN 44300) Ziele eines Betriebssystems: Anpassung der Benutzerwelt an die Maschinenwelt Organisation und Koordination des Betriebsablaufs Steuerung und Protokollierung des Betriebsablaufs Randbedingungen: Die vorhandenen Betriebsmittel sind so einzusetzen, daß Engpässe bzw. Überlastsituationen vermieden werden. Das Betriebssystem soll für die Durchführung seiner Aufgaben einen geringen Rechenaufwand benötigen. (Effizienz) Ein Betriebssystem hat robust gegen fehlerhafte Benutzerprogramme zu sein. (Robustheit) Daten und Programme sollten gegen unerlaubten Zugriff und gelegentliche Ausfälle der Datenträger abgesichert sein. (Informationssicherheit) Die Ziele und Randbedingungen sind nicht alle gleichzeitig erfüllbar! 1

Einige heute gebräuchliche Betriebssysteme: Unix in vielen verschiedenen Varianten. Die freien Versionen stammen in der Regel aus der Linux Linie oder aus der BSD Linie (Berkeley Software Distribution). Wichtige kommerzielle Unix Systeme sind Solaris (Sun Microsystems), HP-UX (Hewlett Packard) und AIX (IBM). Die Familie der Microsoft Betriebssysteme Windows 95, Windows 98, Windows NT, Windows 2000 und Windows XP. Klassische Großrechner-Betriebssysteme wie z.b. MVS (IBM) und BS 2000 (Siemens). Plan9 (AT&T) und Inferno (Lucent) sind zwei neuere Betriebssysteme, die in den Bell Labs (Murray Hill, NJ) von den Leuten entwickelt wurden, die ursprünglich Unix geschaffen haben. 1.1 Betriebssystem-Dienste Dienste für Anwendungsprogramme: Laden von Programmen Erzeugen von neuen Prozessen Abwicklung von Ein- und Ausgabeoperationen Operationen auf einem logischen Dateisystem (read, write, create, delete) Kommunikation zwischen Prozessen (lokal oder über Kommunikationnetze) Steuerung von Geräten (Terminals, Drucker, Plotter,...) Abwicklung von Aufträgen im Hintergrund Dienste für den Betreiber des Systems: Erfassung von Verbrauchsdaten (Accounting) Sicherheitsüberwachung (Zugangskontrolle, Zugriffsschutz, Verschlüsselung) Operationen zur Administration (z.b. Abbruch von Prozessen) Testfunktionen (z.b. Entdeckung fehlerhafter Spuren auf Festplatten) Funktionen zur Initialisierung des Systems 2

1.2 Soft- und Hardwareschichten eines Rechensystems Programmierschnittstelle (system calls) Büro, Steuerungs, Unterhaltungsprogramme Answendungs software Compiler, Editoren, Kommandointerpreter, Bibliotheken Betriebssystemkern System software Maschinensprache Mikroprogramme Hardware Bauteile (integrierte Schaltungen) Abbildung 1.1: Soft- und Hardwareschichten eines Rechensystems Abbildung 1.2 zeigt die typischen Schichten eines Rechensystems: Die Hardware auf der untersten Schicht besteht aus elektronischen Bauteilen (integrierte Schaltungen) mit elementaren Funktionen. In manchen Architekturen laufen auf dieser Hardware sogenannte Mikroprogramme, die die auf der Schnittstelle zur nächsten Schicht sichtbaren Befehle der Maschinensprache realisieren. Die Systemsoftware unterteilt sich in den eigentlichen Betriebssystem(kern) und eine Reihe von Hilfsprogrammen, wie z.b. Compiler, Editoren, Kommandointerpreter und Bibliotheken. Diese Vorlesung beschäftigt sich mit dem Betriebssystemkern und nicht mit den anderen Komponenten der Systemsoftware. Die Anwendungssoftware benutzt die Dienstleistungen der Systemsoftware (und indirekt der Hardware) um Probleme zu lösen (oder einfach nur zu unterhalten). Motivation des Schichtungsprinzips: Schichtung dient der Beherrschung der Komplexität durch Abstraktion und macht Systeme flexibler und anpassungsfähiger. Schichten werden gelegentlich auch als abstrakte oder virtuelle Maschinen bezeichnet. Schichten erzeugen allerdings oftmals Leistungsverluste (overhead), was beim Entwurf entsprechend berücksichtig werden muß. 3

Eigenschaften der Systemsoftware: Der Betriebssystemkern (kernel) ist ein Programm, das die ganze Zeit aktiv ist und Anwendungs- und Systemprozesse unterstützt. Ein Betriebssystemkern ist oftmals ein sehr großes und komplexes Softwaresystem, das in der Regel aus Komponenten und Subsystemen besteht. Betriebssystemkerne sind überwiegend in C geschrieben mit kleinen Teilen in Assembler. Systemprogramme wie z.b. Linker und Kommandointerpreter werden bei Bedarf geladen. Ständig existierende Hilfsprozesse werden als Dämone (daemons) bezeichnet. Sie realisieren meist Server-Funktionen wie z.b. das Ausführen von Programmen zu vorher festgelegten Zeitpunkten oder die Verwaltung/Abarbeitung von Warteschlangen (Drucker). Dämone werden entweder durch Ereignisse aufgeweckt ( Datei zum Drucken eingetroffen ) oder sie schauen selbst von Zeit zu Zeit nach, ob Arbeit anliegt. 1.3 Betriebssysteme als geschichtete abstrakte Maschinen Ein Betriebssystem stellt eine virtuelle Ablaufumgebung (abstrakte Maschine) bereit, die durch geeignete Abstraktionen die Anwendungsprogramme von der Komplexität der vorhandenen Hardware abschirmt. Beispiele: Ein Betriebssystem bietet Funktionen zur Manipulation eines logischen Dateisystems, die die Applikation von den Details der Hardware (Adressen, Zylinder, Sektoren, Datenblockgrößen) abschirmen. Ein Betriebssystem stellt Applikationen einen lineraren Adreßraum zur Verfügung und verbirgt die interne Organisation des physikalisch vorhandenen Hauptspeichers. Ein Betriebssystem stellt Applikationen verläßliche Kommunikationsendpunkte zum Datenaustausch bereit, ohne die erforderlichen Sicherungsmechanismen sichtbar zu machen. Schichtungsarten: Funktionelle Ersetzung: Der Funktionssatz F i einer abstrakten Maschine M x wird komplett durch den Funktionssatz F j der abstrakten Maschine M x+1 ersetzt. 4

Funktionelle Erweiterung: Aus einer abstrakten Maschine M x mit dem Funktionssatz F i wird eine abstrakte Maschine M x+1 konstruiert, die den Funktionssatz F i F j bereitstellt. Virtualisierung: Die Funktionalität einer abstrakten Maschine M x bleibt in M x+1 unverändert erhalten. Funktional nicht erfaßbare Eigenschaften werden verbessert bzw. verallgemeinert. Durch die konsequente Anwendung des Schichtungsprinzips lassen sich virtuelle Maschinen konstruieren, die eine beliebige virtuelle Ablaufumgebung bereitstellen. Einige bekannte virtuelle Maschinen sind: VMware virtualisiert die klassische PC Hardware und ermöglicht dadurch den gleichzeitigen Betrieb von verschiedenen Betriebssystemen. VM/SP ist eine virtuelle Maschine für IBM Mainframes (370/390/ESA), die Anfang der 80er Jahre auf diesen Geräten weit verbreitet war. VM/SP ermöglichte den gleichzeitigen Betrieb verschiedener Betriebssysteme (und der darauf laufenden Anwendungen) auf einer IBM Hardware. Java s virtuelle Maschine ist nicht an konkreter Hardware orientiert, sondern stellt vielmehr einen Interpreter für eine abstrakte Ablaufumgebung bereit. Hochsprachen werden mit Hilfe von Übersetzern (Compiler) in die Zwischensprache der Java virtuellen Maschine übersetzt, die schließlich von einem Interpreter ausgeführt wird. 1.4 Verarbeitungsmodelle 1.4.1 Stapelverarbeitung (batch processing) E1 E2 P3 P2 P1 Programm ausf"uhrung E3 Abbildung 1.2: Stapelverarbeitung (batch processing) Funktionsprinzip: 5

Alle Aufträge werden in eine Warteschlange eingereiht. Aufträge werden ausgeführt, sobald sie den Kopf der Warteschlange erreichen und ein Prozessor verfügbar ist. Ergebnisse werden in Dateien protokolliert und ggf. ausgedruckt. Keine Interaktion zwischen dem Benutzer und dem Programm während der Ausführung. 1.4.2 Dialogverarbeitung (time sharing) Funktionsprinzip: Mehrere Programme werden quasi-parallel ausgeführt (multi-programming, multitasking). Mehrere Benutzer können Programme gleichzeitig starten und benutzen (multi-user). Benutzer können ihre Programme während der Ausführung interaktiv beeinflussen. Die Ausführungszeiten werden in kleine Portionen, den sogenannten Zeitscheiben, zugeteilt. Jedes in Ausführung befindliche Programm bekommt also nur einen Teil der Hardware-Leistung zugeteilt. Durch eine geschickte Verzahnung lassen sich auftretende Wartezeiten (Warten auf den Abschluß eine E/A-Operation) geschickt für die Berechnungen anderer Programme nutzen. 1.4.3 Echtzeitverarbeitung (real time) 1.5 Benutzermode versus Betriebssystemmode 1.6 Trennung von Mechanismums und Strategie 1.7 Architekturen von Betriebssystemen 1.8 Geschichte der Betriebssysteme 1. Generation (1945-1955) [Röhren] Manuelle Bedienung, keine Betriebssysteme 2. Generation (1955-1965) [Transistoren] 6

Batchsysteme zur automatischen Abarbeitung von Aufträgen (jobs) 3. Generation (1965-1980) [Integrierte Schaltungen] Spooling (Simultaneous Peripheral Operation On Line) MultiprogrammAing Time-Sharing OS/360 (IBM), Multics (MIT, Bell Labs, General Electric) 4. Generation (1980-1990) [VLSI & Personal Computer] Personal Computer and Workstation Betriebssysteme (CP/M, MS-DOS, Windows, OS/2, MacOS, UNIX) Netzwerk Betriebssysteme (UNIX, Windows NT) Verteilte Betriebssysteme (Amoeba, Mach, V) 1.9 Standardisierung Offene Betriebssysteme benötigen Standards, die den Funktionsumfang und die Schnittstelle des Betriebssystems definieren. Proprietäre Systeme bedürfen normalerweise keiner Standardisierung, da der Funktionsumfang vom Hersteller bestimmt wird und durch die Versionsnummer identifiziert werden kann. Einige relevante Standards: AT&T System V Interface Definition (SVID) 1985 OSF Distributed Computing Environment (DCE) 1.1 1995 OSF Motif 2.0 Graphical User Interface Toolkit 1994 X/OPEN Portability Guide (XPG-1,..., XPG-4) 1984 IEEE Portable Operating System Interface (POSIX) 1989 OpenGroup Single Unix Specification Version 2 1997 OpenGroup Common Desktop Environment (CDE) 1.0 1996 ANSI/ISO Programmiersprache C (ISO/IEC 9899:1999) 1999 ANSI/ISO Programmiersprache C++ (ISO/IEC 14882:1998) 1998 Die Open Software Foundation (OSF) ist später in der OpenGroup aufgegangen. 1.9.1 POSIX Standards Literaturhinweise Klassische Lehrbücher zum Thema Betriebssysteme sind [6, 7, 5, 2, 1, 3]. Die meisten Bücher orientieren sich stark am Unix Betriebssystem. Das Buch von Stallings [6] enthält auch einiges an Informationen über Windows Betriebssysteme. Eine gute Übersicht über die ersten 25 Jahre Unix-Entwicklung findet man in [4]. 7

Literaturverzeichnis [1] G. Coulouris, J. Dollimore, and T. Kindberg. Distributed Systems: Concepts and Design. Addison Wesley, 1994. [2] M. K. McKusick, K. Bostic, M. J. Karels, and J. S. Quarterman. The Design and Implementation of the 4.4 BSD Operating System. Addison Wesley, 1996. [3] J. Nehmer and P. Sturm. Systemsoftware. dpunkt, 1999. [4] P. H. Salus. A Quarter Century of UNIX. Addison Wesley, 1994. [5] A. Silberschatz and P. Galvin. Operating System Concepts. Addison Wesley, 5 edition, 1998. [6] W. Stallings. Operating Systems. Prentice Hall, 4 edition, 2001. [7] A. S. Tanenbaum. Modern Operating Systems. Prentice Hall, 1992. 8