Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“

Slides:



Advertisements
Ähnliche Präsentationen
Ausführen.
Advertisements

Ein- und Ausgabe von Dateien
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
Beim Start eines Prozesses in Windows NT, 2000 wird a der Programmtext aus der exe-Datei ab der dort angegebenen Adresse gespeichert.
1 Was ist ein klassischer Prozess? A eine exe-Datei B log. Adressraum, Ablaufumgebung für genau einen Thread C log. Adressraum, Ablaufumgebung für eine.
C Tutorium – Fehlerbehandlung – Knut Stolze. 2 Grundsatz Also ist auch nach jedem Funktionsaufruf auf Fehler zu prüfen!! Jeder(!) Funktionsaufruf kann.
FU Berlin SS 2003 Klaus-Peter Löhr
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
Ausnahmen HS Merseburg (FH) WS 06/07.
Threads Richard Göbel.
Indirekte Adressierung
Strukturen. In einer Struktur kann eine beliebige Anzahl von Komponenten (Daten) mit unterschiedlichen Datentypen (im Gegensatz zu Feldern) zusammengefaßt.
Dynamischer Speicher und Struktur
Objekte und Arbeitsspeicher
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
OpenMP Präsentation im Rahmen des Seminars
Vorlesung: Betriebssysteme © 2002 Prof. Dr. G. Hellberg 1 Studiengang Informatik FHDW Vorlesung Betriebssysteme 1. Quartal 2002.
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
Text-Retrieval mit Oracle Vortrag von Andreas Mück & David Diestel.
Vorlesung 5: Interrupts Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Vorlesung 5 Interrupts Peter B. Ladkin
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Arrays,Strings&Pointer in C/C++
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Distributed Multimedia Control Steuerung und Überwachung von Präsentationen in Netzwerken.
Bezirksregierung Detmold Hier könnte ein schmales Bild eingefügt werden Online-Beteiligungsverfahren zum Entwurf von Bewirtschaftungsplan und den Maßnahmenprogrammen.
RTAI-Linux Echtzeiterweiterung für Linux
Speicherverwaltung durch Swapping
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Betriebssysteme allgemein
Dateisysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Dateisysteme Was ist eine Datei?
Das Betriebssystem.
A RBEITEN MIT T HREADS. P ROZESSE UND T HREADS Prozess Eine einzelne CPU kann immer nur einen einzelnen Prozess bearbeiten. Rechenzeit wird an Prozesse.
Betriebssysteme & BIOS
VP1 VP2 VP3 PP1.1 PP2.1 PP2.2 PP1.2 PP2.3 PP1.3 MMU VP1 VP2 VP3 PP1 PP4 PP6 MMU-Konfiguration für Prozess P1 Virtual Memory von P1 Physical Memory.
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
C-Einstieg. Agenda 1Vorbereitung 2Aufbau eines Programms 2.1Header 2.2 Methoden 2.3Main 3Datentypen & Variablen 4Operatoren(+, -, *, /) 5Logik 5.1IF 5.2Switch.
Betriebssysteme Übung 2. Tutorium. Task 1 – Locks (1) Wozu Locks? Dienen dazu, exklusiven Zugriff auf eine Ressource sicherzustellen Lock = binäre Semaphore.
EINFÜHRUNG in HOT POTATOES
Saia Service an PCD's Datensicherung
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Informatik Grundlagen, WS04, Seminar 7
Systemsoftware und Betriebssysteme
Datei hochladen Um Mit der Dateiverwaltung zu beginnen klicken Sie zunächst auf den Wiki verwalten Button. Dann klicken Sie auf Dateien.
Betriebssysteme Übung 1. Tutorium. Vorstellung Tutor Stephan Weinberger Telematiker seit 1995 Betriebssysteme Übung 1999/2000 heuer 1. Mal BS-Tutor Kontakt:
Betriebssysteme Übung Tutorium „TLB & Virtual Memory“
Parallelisierung für Multiprozessor-Maschinen Teil 2.
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Alois Schütte Advanced System Programming 2 Interprozeßkommunikation  2.1 JVM Ablaufumgebung  2.2 Java Native Interface (JNI)  Verwendung von.
Installation, Konfiguration, Online stellen, Zugriff © by Lars Koschinski 2003.
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
2.3 Implementierung von Prozessen
User Mode Linux Sven Wölfel 1. Juni User Mode Inhalt  Was ist UML?  Wofür kann man UML benutzen?
Betriebssysteme Übung 2. Tutorium „System Calls & Multiprogramming“
1 Vorlesung 6 Peter B. Ladkin Single- und Multitasking Peter B. Ladkin
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Betriebssysteme: Theorie
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
Tutorium Software-Engineering SS14 Florian Manghofer.
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
C++ FÜR cOMPUTERSPIELENTWICKLER
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl.
Dr. Wolfram Amme, Automatische Speicherverwaltung, Informatik II, FSU Jena, SS Automatische Speicherverwaltung.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Exceptions in der Programmiersprache Java.
Ablauf von Daten- verarbeitungsprozessen Gliederung: ● Zeitliche Steuerung von Abläufen – Druckauftragsverarbeitung – scheinbare Gleichzeitigkeit von Prozessen.
Echtzeit-Betriebssysteme
 Präsentation transkript:

Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“

Assignment 2 – Userprogramme Task 1 – System Calls (1) Assignment 2 – Userprogramme Userprogramme laufen innerhalb der MIPS-Simulation Mit xgcc kompilieren Beispiele im Verzeichnis test/ Beispielcode zum Starten eines einzelnen Userprogrammes in userprog/progtest.cc, wird mit nachos -x <file> ausgeführt So kann auch beim Multiprogramming der erste Prozess (z.B. eine Shell) geladen werden

Task 1 – System Calls (1) Task 1 – System Calls (1) Was ist ein Syscall? Userprogramme wollen Betriebssystemfunktionen verwenden Dazu lösen sie eine Exception (Softwareinterrupt) aus Diese wird vom Exception-Handler im Kernel abgefangen (userprog/exception.cc, userprog/syscall.h) Parameter werden in definierten CPU-Registern übergeben Nach der Bearbeitung wird die Kontrolle wieder an das Userprogramm übergeben

Task 1 – System Calls (2) zu implementieren: SC_EXEC neues Userprogramm (aus Image-Datei) starten SC_JOIN auf EXIT eines anderen Prozesses (hier nicht mehr Thread* sondern numerische PID) warten und dessen Exitstatus zurückliefern SC_EXIT Prozess beenden und Exitstatus merken SC_YIELD Thread-Wechsel SC_RENICE Prozesspriorität ändern

Task 1 – System Calls (3) weiters: Dateioperationen SC_CREATE, SC_OPEN, SC_WRITE, SC_READ, SC_CLOSE Wrapper auf das Linux-Filesystem Filedeskriptoren 0 und 1 für Konsolenein- und ausgabe reserviert und automatisch geöffnet (machine/console.cc) Beim Beenden/Killen eines Programmes sollen noch geöffnete Dateien wieder geschlossen werden Daher Verwaltung der geöffneten Filedeskriptoren und Zuordnung zu den Prozessen nötig (userprog/bitmap.cc).

Task 2 – Multiprogramming Task 2 – Multiprogramming (1) Timeslicing Timer, der regelmässig einen Interrupt auslöst Jeder Thread (Userprogramm) läuft eine bestimmte Anzahl von Ticks, dann wird (zwangsweise!) ein Context-Switch (Yield) ausgeführt eine Möglichkeit Prozessprioritäten zu implementieren (eine andere: im Scheduler mehrmals den selben Thread auswählen) Timer in machine/timer.cc bereits implementiert Interrupthandler wird bereits angelegt (thread/system.cc, machine/interrupt.cc)

Task 2 - Multiprogramming (2) Speicherverwaltung: freie/verwendete Speicherseiten müssen bekannt sein (userprog/bitmap.cc) Jeder Prozess verwendet seinen eigenen Adressraum, d.h. er adressiert intern Speicher ab der virtuellen Adresse 0! Übersetzung von virtueller auf physikalische Adresse notwendig Jeder Prozess hat eine PageTable (userprog/addrspace.cc)

Task 2 - Multiprogramming (3) Speicherverwaltung: der physikalische Speicher (/machine/machine.h) ist groß genug um alle Userprogramme aufzunehmen (VM erst in Assignment 3), es genügt beim Laden beliebige (freie) physikalische Seiten zu belegen Bei jedem Context-Switch wird die PageTable des neuen Prozesses geladen Bei Nachos belegt der Kernel keinen Speicher

Task 3 – Exec mit Parameterübergabe Userprogramme sollen beim Start Parameter (einen String) übergeben bekommen Eine Möglichkeit: Parameter auf einer zusätzlichen Speicherseite im Adressraum des Programmes ablegen int main(char* argv) Der char* steht per Definition in CPU-Register 4. Er muss natürlich auch auf eine virtuelle Adresse umgerechnet werden!