Lernzusammenfassung Unix-API und Werkzeuge. Stefan Bethge 12. September 2011

Größe: px
Ab Seite anzeigen:

Download "Lernzusammenfassung Unix-API und Werkzeuge. Stefan Bethge 12. September 2011"

Transkript

1 Lernzusammenfassung Unix-API und Werkzeuge Stefan Bethge 12. September Prozesse UNIX-Prozesse lassen sich als eine Menge von Befehlen und Daten einschließlich der aktuellen Werte der zugehörigen Prozessorregister auffassen. Ein Prozess ist damit abstrakt ein Tupel, das einen entsprechenden CPU-Zustand vollständig charakterisiert. 1.1 UNIX-Prozessmodell Unter UNIX ist ein Prozess Code, der ausgeführt wird und so Systemressourcen wie CPU- Zeit und Arbeitsspeicher belegt. Ist dieser Code bzw. das Programm nicht geladen und wird nicht ausgeführt, so ist es kein Prozess. Diese Unterscheidung ist nötig, da ein Prozess immer eine Instanz eines ausführbaren Programms ist, so dass mehrere Instanzen gleichzeitig existieren können, welche über ihre Prozess-ID (PID) identifiziert und angesprochen werden können. Das Programm existiert (idealerweise) nur einmal auf der Festplatte. PIDs sind meist eine 16-bit-Zahl, die von einem Counter ab Systemstart hochgezählt werden. Der init- Prozess hat damit meist die PID 0. Weiterhin hat jeder Prozess (bis auf Init) noch einen Elternprozess, dessen PID in der PPID gespeichert ist. Ein Prozess befindet sich in einer Prozessgruppe (beim Erstellen automatisch in der Gruppe des Elternprozesses). Prozesse können als aktive oder passive Elemente betrachtet werden. Aktiv Prozesse... werden geboren, leben und sterben sind in ihrer Zahl variabel können Ressourcen belegen und freigeben können einander beeinflussen können zusammenarbeiten können in Konflikt geraten (sich blockieren)

2 können Ressourcen teilen können voneinander abhängig sein können parallel arbeiten, gleichberechtigt sein können hierarchisch voneinander abhängig sein Passiv Prozesse werden von aktiven Elementen Prozessor und Peripherie beeinflusst; der Prozess erscheint als Datenstruktur. Die zu einem Prozess gehörenden Datenstrukturen sind unter UNIX: Codesegment Anfangszustand im File, sonst im Speicher oder geswappt Datensegment Anfangszustand im File, sonst im Speicher oder geswappt Stacksegment im Speicher oder geswappt Eintrag in der proc-liste immer im Speicher, Headerfile: sys/proc.h user-struktur (u-struktur) im Speicher oder geswappt, Headerfile: sys/user.h Prozesse können über Signale veranlasst werden, Aktionen auszuführen, z. B. sich selbst zu beenden, Konfigurationsdateien neu einzulesen oder aktuelle Abläufe zu unterbrechen, abhängig von den Signalbehandlungsroutinen im Programm. Signale können z. B. mit kill geschickt werden. Jedem Prozess ist ein nice-wert zugeordnet, der eine Nettigkeit von 20 bis +20 angibt; je höher der Wert desto mehr Ressourcen werden für anderer Prozesse übrig gelassen. Der Standardwert ist der ausgewogene Wert 0, der den meisten Prozessen zugeordnet wird proc-struktur (sys/proc.h) p_pid pp_pid p_pgrp p_uid p_gid p_suid p_sgid Prozessnummer Elternprozessnummer Prozessgruppenidentifier Useridentifier Gruppenidentifier effektiver Useridentifier effektiver Gruppenidentifier (+ viele weitere Flags, die Zustände, Speichermanagementflags,... enthalten) Prozesse haben Zugriffsrechte, welche von dem aufrufenden Benutzer und den Flags für die Ausführbare Datei (setuid, sticky-bit) abhängig sind. Die effektive uid/guid ist dabei nicht unbedingt gleich der uid, da z.b. ein von root gestarteter Prozess Privilegien abgeben kann um sicherer gegen Fehlverhalten oder Einbrüche zu sein. Die wichtigsten Zustände: 2

3 dead ready running sleep trace wait uninterruptible sleep zombie Der Prozess wurde beendet, er belegt jedoch noch Speicherplatz. Der Prozess wartet auf Zuteilung der CPU (Zeitscheibe). Gibt es den Ready-Zustand, so befinden sich höchstens so viele Prozesse im Zustand running, wie CPUs vorhanden sind. Entweder genau der Prozess, der gerade bearbeitet wird, oder alle Prozesse, die momentan Rechenarbeit verrichten können. Der Prozess wurde auf eigenen Wunsch zurückgestellt. Er kann Signale entgegennehmen, wie z. B. Timer, oder Ergebnisse von Kindprozessen. Der Prozess wurde von außen angehalten, üblicherweise durch einen Debugger. Der Prozess wartet auf ein Ereignis, üblicherweise eine Benutzereingabe. Der Prozess wartet auf ein Ereignis, üblicherweise Hardware. Tritt dieses Ereignis ein, ohne dass der anfragende Prozess es entgegennimmt, so kann das System instabil werden. Der Prozess ist beendet, aber noch nicht aus der Prozessliste entfernt, da er noch auf einen anderen Prozess wartet (Keine Rechenzeit mehr nötig aber belegt noch Speicher) user-struktur (sys/user.h) Ausführungsstatus, Deskriptortabellen usw Inter-Process-Communication Zwischen Prozessen in einem System mit jeweils eigenem Speicherbereich (auch auf derselben Maschine) ist es unter Umständen nötig, zu kommunizieren. Dafür sind gemeinsame Ressourcen nötig, die allerdings nicht von mehreren Threads oder Prozessen gleichzeitig geschrieben werden dürfen, um nicht in undefinierte Zustände zu gelangen (konsistente Datenstrukturen). Locks Sperren aller anderen Operationen, solange aktueller Thread die Resource benutzt (binärer Semaphor). Vor allem mit atomaren Hardwarecalls( test-and-set, fetch-and-add ) umsetzbar, während dessen keine Unterbrechung passieren kann. Semaphore Datenstruktur aus mit Zähler für Anzahl gleichzeitiger Verwendungen der Ressource und Operationen Reservieren/Probieren(Zä. +1) und Freigeben (Zä. -1). Warteschlange für überschüssige Anfragen. Mutexe (Mutual Exclusive) oft identisch mit binärem Semaphor, allgemein ein Verfahren, den gegenseitigen Ausschluss sicherzustellen 3

4 1.1.4 Statuswechsel Modellweise betrachtet, wechselt ein Prozess zwischen den Zuständen running, blocked und ready. Running bedeutet, dass der Prozess normal abläuft und vom Scheduler Zeitbereiche zugeteilt bekommt, wobei zwischen running und ready gewechselt wird (immer nur ein Prozess pro CPU auf running). Sobald auf externe Ereignisse gewartet wird (read, write, wait), übergibt der Scheduler an einen anderen Prozess und der Status ändert sich zu blocked. Dieser kann nur verlassen werden, wenn das Ereignis eintrifft, was einen Wechsel zu ready bedeutet. In der Realität ist dieser Prozess weitaus komplexer da Prozesse ausgelagert werden können, Zombies möglich sind und Interrupts auftreten. Außerdem existieren user mode und kernel mode bei dem das Killen nicht möglich ist Scheduling Problem: Wer darf in Multiprozessumgebungen wann den Prozessor wie lange benutzen? verschiedene Schedulingverfahren, u. A.: Round Robin Scheduling Prozessschlange, gleiche Zeitquanten, jeder Prozess kommt der Reihen nach ran und wird danach wieder hinten angestellt. Problem: Prozesswechseln benötigt Zeit, z.b. 2 ms, wie groß Zeitquanten wählen? so dass Overhead prozentual klein bleibt, z.b ms) Mehrfache Schlangen Neue Prozesse werden ans Ende der höchsten Queue angehangen und rutschen dort nach vorne. Wenn das Zeitquantum eines Prozesses abgelaufen ist, bevor dieser von selbst die Kontrolle abgegeben hat, wird dieser in der nächst tieferen Queue wieder eingereiht, bis herunter zum Basislevel auf welchem dann wieder Round Robin durchgeführt wird. Von dort kann ein Prozess entkommen, wenn er auf I/O wartet (blocking). Das resultiert darin, dass kurze Jobs bevorteilt werden und im Endeffekt mehr Zeit für rechenintensive Prozesse übrigbleibt. Problem: abwechselnd interaktive und CPU-intensive Prozesse werden mit der Zeit immer reaktionsärmer Shortest Job First Ermittlung der Laufzeit aller Prozesse, die kürzesten werden zuerst ausgeführt, wodurch eine minimale durchschnittliche Wartezeiten erreicht werden (langsame Prozesse müssen meist auch weniger reaktiv sein). Problem: Woher weiß man vorher, wie lange ein Prozess braucht? Möglich ist Benutzerangabe oder Messen und Schätzen. Mittlere Wartezeit: ta + (ta + TB) + (ta+tb+tc) / 3 Zeitüberwachte Steuerung (a priori scheduling) Ziel: gleichverteilte CPU-Zeit über die Zeit der Sitzung, dafür ist nötig: Login-Zeit, Anzahl der eingeloggten Nutzer, bisher verbrauchte Zeit Die Priorität berechnet sich dann über: verbrauchte Zeit Zeit seit Login Anzahl der Nutzer 4

5 Zweistufiges Scheduling Problem: nicht alle Prozesse passen gleichzeitig in den Hauptspeicher, Swapping durch den Scheduler wird nötig. Bei z. B. round-robin würden ständig ausgelagerte Prozesse in den Speicher geladen und andere ausgelagert wobei viel Zeit verschwendet werden würde (manche können länger ausgelagert bleiben als andere). Daher wird in zwei Scheduling-Stufen unterschieden, von denen die Erste für kleine Quanten eine der bisherigen Schedulerstrategien verwendet. Die Zweite verwaltet Prozesse mit großen Quanten und bestimmt, ob ein Prozess geswappt wird, abhängig von Verweildauer und verbrauchter CPU-Zeit (also Prozesse, die bereits länger laufen) Systemrufe zur Prozesssteuerung include <sys/types.h> include <unistd.h> pid_t getpid(void) pid_t getppid(void) uid_t getuid(void) uid_t geteuid(void) Ermitteln einiger Werte zur Prozessidentifikation des aktuellen Prozesses Wertebereich PID (Linux 2.6): pid: (default) bis maximal 2 22 = gid, uid: pid_t fork(void) Erzeugen eines neuen Prozesses, Kind ist vollständige Kopie des Alten, der nun der Elternprozess des Kindes wird. Der Rückkehrwert von fork im Kindprozess ist 0, der Elternprozess bekommt PID des Kindprozesses. Der Kindprozess bekommt eigenes Stack-Segment und Daten-Segment (Kopie) und Locks und prozessspezifische Zeitangaben werden zurückgesetzt. Alles Andere ist gleich - u. A. Filedeskriptoren und offene Files, Signalhandler, Nice-Werte, Shared Memory, Limits und Buffer (z.b. um in Dateien zu schreiben). Unter Unix werden alle Prozesse mit fork() erzeugt (Bzw. in neueren linux-versionen wird für alle Prozesse clone() verwendet, auch fork() benutzt den clone()-syscall) pid_t fork1(void) (Solaris >=10) wie fork, aber zusätzlich wird aktueller thread gedoppelt. pid_t vfork(void) (BSD) wie fork, aber ohne Kopie des Daten- und Stacksegmentes. Der Parentprozess wird angehalten und wartet auf den Kindprozess. Es darf nichts anderes gemacht werden, als execve oder exit aufzurufen, anderes Verhalten ist undefiniert. Da die Performancevorteile von vfork mit der Einführung von copy-on-write beim herkömmlichen fork verschwunden sind, ist es meist mehr nicht ratsam, vfork zu benutzen. 5

6 Prozessbeendigung geschieht über exit() bzw. ein return() in der main()-routine des Hauptprogramms oder abnormal über abort() oder Signalbehandlung. pid_t wait(int *statloc) pid_t waitpid(pid_t pid, int *statloc) Elternprozesse müssen auf die Beendigung eines Kindes warten, Rückgabecode ist PID des Kindprozesses. Prozesse die beendet sind aber auf die (noch) nicht gewartet wurde heißen Zombies. exec() (Kind-)prozesse können neues Programm inerhalb eines Prozesses starten. Dabei wird das aktuelle Code- und Datensegment überlagert, das Stacksegment wird zurückgesetzt. Verschiedene Prozess-IDs sind änderbar: UID, SUID, GID, EUID, EGID, PGID, SID setuid(uid_t uid), setsuid(...), setgid(...),... 2 Threads Threads sind leichtgewichtige Prozesse bzw. ein Thread ist einer von mehreren Ausführungssträngen eines Prozesses. Es kann mehrere Threads in einem Prozess geben; Threads existieren immer in einem Prozess. Neben Kernelthreads existieren auch User Threads, die dann ausschließlich der Obhut des Prozesses selbst unterliegen. Ein Thread teilt sich mit den anderen Threads im Prozess das Codesegment, das Datensegment und die verwendeten Dateideskriptoren. Da damit nur das Stacksegment und Register verschieden sind, kann es Konflikte beim Zugriff auf die gleichen Daten geben, die durch Synchronisationsmechanismen behandelt werden müssen (Semaphores, Mutexe,...). Unter linux werden Threads mit clone() erzeugt, das intern auch von fork() verwendet wird und somit die Threads 1:1 auf Prozesse abbildet. Threads sind damit von Prozessen nur im Detail verschieden, bauen aber auf eine besondere Behandlung im Kernel auf, so dass sie z. B. nicht als Prozesse in /proc erscheinen und threads eine TID bekommen. Normale Prozesse besitzen einen Thread mit gleich PID. Welche Ressourcen mit dem Erstellenden Prozess geteilt werden kann aber durch Optionen auch angepasst werden. Plattformübergreifende Threadbehandlung kann mit POSIX-Threads (<pthread.h>) realisiert werden, da z. B. Solaris nicht mit clone() und der CLONE_THREAD-Option klarkommen würde. Dieses API ist auf verschiedenen Systemen spezifisch implementiert. Probleme die bei der Arbeit mit Threads auftreten können: Programmkomplexität: Threads erzeugen einen Overhead. Wenn Threads nicht unbedingt nötig sind, sollte man darauf verzichten. Synchronisationsprobleme Deadlocks: Gegenseitiges Warten (evtl. über Dritte Konstrukte) führen zu Stillstand. 6

7 Eintrittsinvariante (Biliotheks-)Routinen und Threadcode selbst sind notwendig um die Threadunterbrechung an jedem Punkt zu erlauben. wichtige Operationen der libpthread: pthread_create Starten eines neuen Threads pthread_exit Beenden eines Threads (nach getaner Arbeit) pthread_cancel Abbrechen eines Threads von Außen pthread_join Warten auf das Ende eines Threads (vgl. wait()) pthread_detach Freigeben eines Threads, Ressourcen werden bei Beendigung des Threads sofort Freigegeben ohne das join nötig ist. 3 Versionskontrollsysteme Ziele: Kontrollierter Zugriff Zugriff auf vorherige Versionen Dokumentation der Änderungen Parallelen Zugriff organisieren Entwicklung der wichtigsten Systeme: SCCS RCS CVS SVN... Grundlegend exisitiert ein Repository, das alle Quellen und Diffs enthält. Benutzer arbeiten mit einer lokalen Kopie ( = Sandbox) welche über das System mit dem Repository synchronisiert wird. Dabei bestehen unterschiede je nachdem ob es sich um ein zentrales oder verteiltes System handelt. Allgemein sind verschiedene Operationen nötig, wie init, import, checkout, commit, update Diese sind je nach System etwas anders benannt oder mit anderer Semantik belegt. 3.1 CVS CVS (etwa seit 1989) ist im Gegensatz zu seinen Vorgängern direkt netzwerkfähig (CVS- Server oder ssh) und benutzt ein zentrales Repository in dem alle Änderungen gespeichert werden. Aktionen wie commit oder log benötigen daher (Netzwerk-)Zugriff auf das Repository. CVS führt standardmäßig kein locking beim checkout durch, so dass Konflikte manuell behoben werden müssen, sofern CVS das nicht automatisch schafft. 7

8 cvs watch/edit/unedit erlauben aber (schwache) locks die den Benutzer benachrichtigen, wenn eine Datei zum editieren geöffnet wurde. CVS besitzt branches die mit cvs tag erzeugt werden. 3.2 Subversion 2.Tools: svn und svnadmin svnadmin Zum Erstellen(create) und Verwalten(dump,load) eines Repositories (nur lokal) svn Zum Erstellen(checkout) und Verwalten(update,commit,...) einer lokalen Sandbox, die mit dem Repository, auch remote, abgeglichen wird. Weitere Kommandos sind: add status copy import log merge revert switch update SVN kann remote über svnserve, apache2(http, webdav) oder ssh zur Verfügung stehen. 3.3 Git Git besitzt kein Repository im eigentlichen Sinne, alle Kopien sind gleichwertig und enthalten die gesamte Geschichte, lediglich durch die Organisation sind ßentrale"Repositories festgelegt, zu denen von Benutzern synchronisiert wird. Jeder Commit ist kryptografisch von den vorherigen abhängig (commit ID), wodurch nachträgliche Änderungen der Historie unmöglich sind. Gute Unterstützung für nicht lineare Entwicklung, schnelles branching und merging. 4 Make Make ist ein Werkzeug, das vor Allem das Erstellen von Projekten (mit einem Compiler) erleichtert. Dabei werden die Abhängigkeitsregeln der meist vielzahligen Objekte in einem Makefile formal festgehalten, um diese korrekt zu erstellen und zusammenzufassen. 8

9 Zudem wird durch die Beachtung von Zeitstempeln keine unnötige Arbeit mehrfach verrichtet. Der Aufruf erfolgt über make <target>, wobei ein Target im Makefile über Regeln definiert wird, die wie folgt aussehen: <Targetname>: { <Quellobjekt> } [; <Kommando>] Wobei Quellobjekte Dateinamen (vor allem *.c) sein können oder Namen anderer Targets. Quellobjekte sind die Abhängigkeiten einer Regel und müssen zuvor erfüllt, also in der Regel zuvor kompiliert sein. Weitere Kommandozeilen sind möglich und müssen zwingend mit einem Tabulator eingerückt werden. Variablen heißen Makros, MAKRO = <String>. Der Zugriff erfolgt mit $(<Makroname>). Umgebungsvariablen der Shell werden ebenfalls wie Makros behandelt und es existieren einige vordefinierte Interne Makros: - Name des Objektes das erzeugt werden soll (Name der aktuellen Regel/Target) $< - Name der ersten Abhängigkeit/transformierbaren Objektes $? - Namen aller Abhängigkeiten, die neuer als das Target sind $ - Namen aller Abhängigkeiten 9

Dämon-Prozesse ( deamon )

Dämon-Prozesse ( deamon ) Prozesse unter UNIX - Prozessarten Interaktive Prozesse Shell-Prozesse arbeiten mit stdin ( Tastatur ) und stdout ( Bildschirm ) Dämon-Prozesse ( deamon ) arbeiten im Hintergrund ohne stdin und stdout

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 20.11.2013 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Wdhlg.: Attributinformationen in

Mehr

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis... 1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................

Mehr

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung Versionsverwaltung für die KU Betriebssysteme Eine Einführung 1 1 Versionsverwaltung? Wozu? Nachvollziehbarkeit Wer hat was wann geändert Wiederherstellbarkeit kaputteditiert Wartbarkeit Verschiedene Versionen

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Andreas Teuchert 27./28. Juni 2012 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID)

Mehr

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG Prozesse und Logs Linux-Kurs der Unix-AG Benjamin Eberle 22. Januar 2015 Prozesse unter Linux gestartete Programme laufen unter Linux als Prozesse jeder Prozess hat eine eindeutige Prozess-ID (PID) jeder

Mehr

Technische Informatik II

Technische Informatik II Institut für Technische Informatik und Kommunikationsnetze Technische Informatik II Übung 1: Prozesse und Threads Aufgabe 1: Prozesse und Threads a) Wie verhält sich eine Applikation die aus mehreren Prozessen

Mehr

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git Einführung in Verteilte Versionskontrollsysteme am Beispiel von Git Diplominformatiker (BA), Git Benutzer seit 2009 Daniel Böhmer Leibniz Institut für Troposphärenforschung 8. März 2012 Verteilte Versionskontrollsysteme/Git

Mehr

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN)

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN) Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN) Prof. Dr. Rolf Dornberger Software-Engineering: 7.3 Versionsmanagement-Systeme

Mehr

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Architektur Verteilter Systeme Teil 2: Prozesse und Threads Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =

Mehr

git & git-flow Jens Sandmann 14.12.2013 Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31

git & git-flow Jens Sandmann 14.12.2013 Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31 git & git-flow Jens Sandmann Warpzone Münster e.v. 14.12.2013 Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31 Überblick 1 git Versionskontrolle Allgemein VCS mit git 2 git flow 3 git nutzen 4 Anhang

Mehr

Einführung in UNIX 1. Das Betriebssystem UNIX ist fähig, mehrere Aufgaben scheinbar gleichzeitig zu erledigen. Dies wird mit Multitasking bezeichnet.

Einführung in UNIX 1. Das Betriebssystem UNIX ist fähig, mehrere Aufgaben scheinbar gleichzeitig zu erledigen. Dies wird mit Multitasking bezeichnet. Einführung in UNIX 1 7 Prozesse Das Betriebssystem UNIX ist fähig, mehrere Aufgaben scheinbar gleichzeitig zu erledigen. Dies wird mit Multitasking bezeichnet. Auf einem UNIX-Rechner können hundert oder

Mehr

FS 2013. cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

FS 2013. cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer cs108 Programmierpraktikum Subversion Lukas Beck Cedric Geissmann Alexander Stiemer Probleme in der SW-Entwicklung Teamarbeit Gemeinsamer (und gleichzeitiger) Zugriff auf Ressourcen Dateiserver Datenverlust

Mehr

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads Prozesse und Prozessmanagement des BS 1 Unterschied Prozess, Threads 1.1 Prozess Bei jedem Programm muss gespeichert werden, welche Betriebsmittel (Speicherplatz, CPU- Zeit, CPU-Inhalt,...) es benötigt.

Mehr

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend

Besprechung Aufgabe 5 (crawl) POSIX-Threads. Problem: UNIX-Prozesskonzept ist für viele heutige Anwendungen unzureichend U7 6. Übung U7 6. Übung U7-1 Motivation von Threads U7-1 Motivation von Threads Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte pthread-ai Koordinierung UNIX-rozesskonzept: eine Ausführungsumgebung

Mehr

Round-Robin Scheduling (RR)

Round-Robin Scheduling (RR) RR - Scheduling Reigen-Modell: einfachster, ältester, fairster, am weitesten verbreiteter Algorithmus Entworfen für interaktive Systeme (preemptives Scheduling) Idee: Den Prozessen in der Bereitschaftsschlange

Mehr

SVN-Einführung für das SEP DS und CM. Julian Timpner, Stefan Brenner, Stephan Rottmann

SVN-Einführung für das SEP DS und CM. Julian Timpner, Stefan Brenner, Stephan Rottmann SVN-Einführung für das SEP DS und CM Julian Timpner, Stefan Brenner, Stephan Rottmann 23. April 2014 Subversion (SVN) - Allgemeines Versionsverwaltung für Dokumente Primär für reine Textdateien (*.txt,

Mehr

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014 Versionsverwaltung von Softwareartefakten 21. Oktober 2014 Überblick Wie verwaltet man Softwareartefakte? Versionskontrolle für verschiedene Softwareartefakte: Anforderungsdokumente, Modelle, Code, Testdateien,

Mehr

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen Albrecht Achilles 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Betriebssysteme Eine kompakte Einführung mit Linux

Mehr

Allgemeines zu Unix (Solaris, Linux, MAC OS X, FreeBSD,Open BSD usw.)

Allgemeines zu Unix (Solaris, Linux, MAC OS X, FreeBSD,Open BSD usw.) Allgemeines zu Unix (Solaris, Linux, MAC OS X, FreeBSD,Open BSD usw.) Multiuser- Multitasking Betrieb offenes System - unabhängig von den verschiedensten Hardwarekomponenten - Benutzeroberflächen folgen

Mehr

CVS. The open standard for version control. (Concurrent Versions System) Maik Zemann CVS

CVS. The open standard for version control. (Concurrent Versions System) Maik Zemann CVS CVS Maik Zemann CVS (Concurrent Versions System) The open standard for version control 1 Gliederung Gliederung Was ist CVS? Motivation? Konzept von CVS Die wichtigsten Befehle Merging Logging im Quelltext

Mehr

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches

U6-1 Organisatories. U6-2 Motivation von Threads. U6-3 Vergleich von Thread-Konzepten. Organisatorisches U6 6. Übung U6 6. Übung U6-1 Organisatories U6-1 Organisatories Organisatorisches Zusätzliche Tafelübung zur S1-Klaurvorbereitung Besprechung Aufgabe 5 (crawl) OSIX-Threads Motivation Thread-Konzepte am

Mehr

CVS-Einführung. Sebastian Mancke, mancke@mancke-software.de

CVS-Einführung. Sebastian Mancke, mancke@mancke-software.de CVS-Einführung Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation und Anforderung Sobald ein Softwaresystem anwächst, ergeben sich Probleme im Umgang mit dem Quell Code. CVS (Concurrent

Mehr

Inhaltsverzeichnis. 1 Einleitung. Literatur. 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]

Inhaltsverzeichnis. 1 Einleitung. Literatur. 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05] Inhaltsverzeichnis 1 Einleitung 3 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]....... 4 1.2 Eclipse als Java Entwicklungsumgebung................. 21 1 Einleitung Versionierung mit CVS Eclipse

Mehr

Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Wirtschaftsinformatiker

Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Wirtschaftsinformatiker Systemprogrammierung I - Aufgaben zur Erlangung der Klausurzulassung für Informatiker und Nachfolgend finden Sie die drei Aufgaben, die Sie als Zulassungsvoraussetzung für die Scheinklausur am 18.7.2001

Mehr

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn michael.kuhn@informatik.uni-hamburg.de

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn michael.kuhn@informatik.uni-hamburg.de Git Fast Version Control System Michael Kuhn michael.kuhn@informatik.uni-hamburg.de Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg 2011-09-28 1 / 16 1 Einführung Überblick

Mehr

Subversion. Einstieg in die. Versionskontrolle

Subversion. Einstieg in die. Versionskontrolle Versionskontrolle mit Subversion Einstieg in die Versionskontrolle Dipl.Ing.(FH) K. H. Marbaise Agenda Wozu Versionskontrolle? Was leistet Versionskontrolle? Historie zu Subversion Projekt Handling Installation

Mehr

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum

Moderne Betriebssysteme. Kapitel 8. Kapitel 8. Folie: 1. Multiprozessorsysteme. Autor: Andrew S. Tanenbaum Moderne Betriebssysteme Kapitel 8 Multiprozessorsysteme Kapitel 8 Folie: 1 Multiprozessorsysteme Autor: Andrew S. Tanenbaum Pearson Studium 2009 2 3 4 5 6 7 Betriebssystemarten für Multiprozessoren Jede

Mehr

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory

Mehr

Rechnernutzung in der Physik. Betriebssysteme

Rechnernutzung in der Physik. Betriebssysteme Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:

Mehr

VORSTELLUNG DER DIPLOMARBEIT

VORSTELLUNG DER DIPLOMARBEIT 1 VORSTELLUNG DER DIPLOMARBEIT Thomas Werner Inhaltsverzeichnis 2 Thema Aufgabenstellung Anwendungsdebugging Threads Remote Debugging Implementierung Ausblick Quellen 3 Thema Untersuchung von Funktionsabläufen

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Meitner, Spisländer FAU Erlangen-Nürnberg Versionskontrolle 1 / 30 Versionskontrolle Matthias Meitner Marc Spisländer Lehrstuhl für Software Engineering

Mehr

Betriebssysteme Kap A: Grundlagen

Betriebssysteme Kap A: Grundlagen Betriebssysteme Kap A: Grundlagen 1 Betriebssystem Definition DIN 44300 Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten

Mehr

Praktikum Ingenieurinformatik (PI)

Praktikum Ingenieurinformatik (PI) Praktikum Ingenieurinformatik (PI) Verteilte Versionskontrolle mit Git und Github Björn Meyer Fachgebiet Technische Informatik 1 Agenda Einleitung Motivation Versionskontrolle Ansätze Git Funktionen Arbeiten

Mehr

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel

Welche der folgenden Aussagen gelten? a) Im allgemeinen gilt: ein Deadlock tritt auf gdw. der Resource-Allocation Graph einen Zykel Aufgabe 1 (5 Punkte) (Multiple Choice) Beantworten Sie folgende Fragen durch Ankreuzen der richtigen Antwort. Für jede falsche Antwort wird ein Punkt abgezogen (es werden minimal 0 Punkte vergeben). Welche

Mehr

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper 1. Der Prozess beginnt im Zustand Erzeugt, nachdem sein Vaterprozess den Systemaufruf fork() (s.u.) abgesetzt hat. In diesem Zustand wird der Prozess-Kontext initialisiert. 2. Ist diese Aufbauphase abgeschlossen,

Mehr

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL 1 Transaktionen in SQL Um Daten in einer SQL-Datenbank konsistent zu halten, gibt es einerseits die Möglichkeit der Normalisierung, andererseits sog. Transaktionen. 2 Was ist eine Transaktion Eine Transaktion

Mehr

Verteilte Versionskontrolle mit GIT. 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Verteilte Versionskontrolle mit GIT. 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln Verteilte Versionskontrolle mit GIT 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln 1 über mich 32 Jahre alt Softwareentwickler bei der Firma GreenPocket in Köln Java EE Entwickler und Rails

Mehr

Versionsverwaltung mit git. Christoph Knabe FB VI 17.04.2014

Versionsverwaltung mit git. Christoph Knabe FB VI 17.04.2014 Versionsverwaltung mit git Christoph Knabe FB VI 17.04.2014 Inhalt Probleme bei Software-Entwicklung Begriffe in git Geschichte von git Installation Was ist verteilt an git? Mischen verteilter Änderungen

Mehr

Der Scheduler von Windows Konzepte und Strategien

Der Scheduler von Windows Konzepte und Strategien Gliederung Der Scheduler von Windows Konzepte und Strategien Daniel Lohmann 1 Grundbegriffe 2 Eigenschaften des Schedulers Grundlegende Eigenschaften Prioritätenmodell Dynamische Prioritätenanpassungen

Mehr

Das Concurrent Versions System (CVS)

Das Concurrent Versions System (CVS) Versionenkontrolle Das Concurrent Versions System (CVS) Vortrag im Proseminar Unix Tools 1 Markus Sander sander@in.tum.de 07.06.2005 Versionenkontrolle Gliederung 1 Versionenkontrolle 2 Versionenkontrolle

Mehr

Systeme 1. Kapitel 5. Scheduling

Systeme 1. Kapitel 5. Scheduling Systeme 1 Kapitel 5 Scheduling Scheduling Verteilung und Zuweisung von begrenzten Ressourcen an konkurrierende Prozesse Beispiel: -> Zeitablaufsteuerung Zwei Prozesse zur gleichen Zeit rechenbereit auf

Mehr

Einfu hrung in Subversion mit TortoiseSVN

Einfu hrung in Subversion mit TortoiseSVN Einfu hrung in Subversion mit TortoiseSVN Inhalt Konzept... 1 Begriffe... 1 Werkzeuge... 2 Arbeiten mit TortoiseSVN... 2 Vorbereitung... 2 Erster Checkout... 2 Hinzufügen eines neuen Verzeichnisses...

Mehr

31.01.2013. Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

31.01.2013. Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle Vorlesung Programmieren Versionskontrolle Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Versionskontrollsysteme Wie organisiert man die

Mehr

Subversion als Werkzeug in der Software-Entwicklung Eine Einführung. Tobias G. Pfeiffer Freie Universität Berlin

Subversion als Werkzeug in der Software-Entwicklung Eine Einführung. Tobias G. Pfeiffer Freie Universität Berlin Subversion als Werkzeug in der Software-Entwicklung Eine Einführung Tobias G. Pfeiffer Freie Universität Berlin Seminar DG-Verfahren, 9. Juni 2009 Voraussetzungen/Ziele des Vortrags Situation Der Zuhörer

Mehr

Systemprogrammierung.: unter Linux :.

Systemprogrammierung.: unter Linux :. Systemprogrammierung.: unter Linux :. Einführung in Linux 1. Das Filesystem 2. Prozesse 3. Unix Tools 4. Die Shell 1. Das Filesystem 1.1 Dateien 1.2 Ordner 1.3 Links 1.1 Dateien Alles im Filesystem sind

Mehr

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert fuddl@gmx.de. 20. Juni 2007

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert fuddl@gmx.de. 20. Juni 2007 User Mode Linux (UML) Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren Friedrich-Alexander-Universität Erlangen-Nürnberg Bruno Kleinert fuddl@gmx.de 20. Juni 2007 Überblick

Mehr

Medieninformatik Praktikum. Jens Rademacher 14.07.2013

Medieninformatik Praktikum. Jens Rademacher 14.07.2013 mit mit Medieninformatik Praktikum 14.07.2013 1 / 13 mit 2 / 13 Nutzen von und an en mit Verwaltung unterschiedlicher Versionen einer Datei Protokollierung von Änderungen (Änderung, Zeitpunkt, Person)

Mehr

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Betriebssysteme Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Umfaßt z.b. auch Compiler, Interpreter und Dienstprogramme

Mehr

Einführung in die Systemprogrammierung unter Linux

Einführung in die Systemprogrammierung unter Linux Einführung in die Systemprogrammierung unter Linux Systemsoftware Praktikum Inhalt Übersicht über benötigte Systemfunktionen Programmieren unter Linux Grundlegendes Message-Queue Shared Memory Semaphore

Mehr

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN: Inhaltsverzeichnis Carsten Vogt Nebenläufige Programmierung Ein Arbeitsbuch mit UNIX/Linux und Java ISBN: 978-3-446-42755-6 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42755-6

Mehr

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Einführung in git Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Ben Oswald 27. April 2014 Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist git?..................................... 1 1.2 Warum sollten

Mehr

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Buildsysteme Grundkurs C++ Buildsysteme Buildsysteme Beispielhaftes Übersetzungsszenario: Verzeichnis tutorial7/ main.cpp, lcdrange.cpp, lcdrange.h *.cpp Kompilieren *.o *.h Grundkurs C++ 2 Headerdateien //blackbox.h

Mehr

3. Unix Prozesse. Betriebssysteme Harald Kosch Seite 57

3. Unix Prozesse. Betriebssysteme Harald Kosch Seite 57 3. Unix Prozesse Ein Prozeß ist die Umgebung eines laufenden Programms. Ein bißchen Analogie. Wer kocht gerne? Papa möchte mit Hilfe eines Rezeptes eine Torte für seine Tochter backen. Das Rezept ist das

Mehr

Operating System Kernels

Operating System Kernels Operating System Kernels von Patrick Bitterling 1 Themenübersicht -Eine Einleitung über Kernel -Begriffserklärung, Architekturen -Kernel Subsysteme -Prozess-Scheduling, Speichermanagement,... -Der Networking

Mehr

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden.

Datentechnik. => Das Rechenergebnis ist nur dann sinnvoll, wenn es rechtzeitig vorliegt. Die Zeit muß daher beim Programmdesign berücksichtigt werden. 5. Steuerung technischer Prozesse 5.1 Echtzeit (real time) Im Gegensatz zu Aufgabenstellungen aus der Büroumgebung, wo der Anwender mehr oder weniger geduldig wartet, bis der Computer ein Ergebnis liefert

Mehr

Musterlösung Prüfung SS 2002

Musterlösung Prüfung SS 2002 Musterlösung Prüfung SS 2002 Fach: I4neu (SEE, KOS, GRS, BTS) Teilprüfung: Betriebssystem Tag: 2.7.2002 8:15 12:15 Raum 1006 Bearbeitungszeit: 72 Minuten Name:... Matr.Nr.:... Punkte:... Note:... Hilfsmittel:

Mehr

Embedded-Linux-Seminare. Linux als Betriebssystem

Embedded-Linux-Seminare. Linux als Betriebssystem Embedded-Linux-Seminare Linux als Betriebssystem http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de

Mehr

Versionskontrollsysteme. Uwe Berger & Markus Dahms

Versionskontrollsysteme. Uwe Berger & Markus Dahms <bralug@bralug.de> 1 Gliederung 1. Der Begriff 2. Aufgaben & Einsatzmöglichkeiten 3. Zentrale Konzepte 4. Bekannte Vertreter 5. Grafische Oberflächen 6. Quellen und Links 2 Der Begriff engl. Version Control

Mehr

Monitore. Klicken bearbeiten

Monitore. Klicken bearbeiten Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition

Mehr

Benutzer und Rechte Teil 1

Benutzer und Rechte Teil 1 Benutzer und Rechte Teil 1 Linux-Kurs der Unix-AG Zinching Dang 19. November 2012 Wozu verschiedene Benutzer? (1) Datenschutz mehrere Benutzer pro Rechner, insbesondere auf Server-Systemen unterschiedliche

Mehr

Git - Fast Version Control System

Git - Fast Version Control System Git - Fast Version Control System Sebastian Harl Astronomisches Institut der Universität Erlangen-Nürnberg 17. Oktober 2008 Was ist Git? VCS (Version Control

Mehr

Subversion - Versionsverwaltungssystem

Subversion - Versionsverwaltungssystem Subversion - Versionsverwaltungssystem Was kommt nach CVS? Daniel Jahre daja@rocklinux.org - p. 1/36 Zitat If C gives you enough rope to hang yourself, think of Subversion as a sort of rope storage facility.

Mehr

Systemprogrammierung: Erste Schritte (P) Das Manpage-System (P) Versionsverwaltung mit Subversion (P)

Systemprogrammierung: Erste Schritte (P) Das Manpage-System (P) Versionsverwaltung mit Subversion (P) Systempraktikum im Wintersemester 2009/2010 (LMU): Zum Selbststudium Foliensatz 0 Systemprogrammierung: Erste Schritte (P) Das Manpage-System (P) Versionsverwaltung mit Subversion (P) Dr. Thomas Schaaf,

Mehr

CPU-Scheduling - Grundkonzepte

CPU-Scheduling - Grundkonzepte CPU-Scheduling - Grundkonzepte Sommersemester 2015 Seite 1 Gesamtüberblick 1. Einführung in Computersysteme 2. Entwicklung von Betriebssystemen 3. Architekturansätze 4. Interruptverarbeitung in Betriebssystemen

Mehr

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur Hochschule Mannheim Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun Übungsklausur Aufgabe 1: Definieren Sie den Begriff der Systemsoftware. Nennen Sie die Aufgaben und Komponenten

Mehr

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse)

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse) 5 CPU-Scheduling Im folgenden wird von Threads gesprochen. Bei Systemen, die keine Threads unterstützen, ist der einzige "Thread" eines Prozesses gemeint. Früher wurde dieser Thread synonym mit dem Begriff

Mehr

Kapitel III. Prozessverwaltung. VO Betriebssysteme

Kapitel III. Prozessverwaltung. VO Betriebssysteme Kapitel III Prozessverwaltung V 1 Was ist ein Prozess? Prozesse ein exekutierendes Programm (aktive Einheit) ein Prozess benötigt Ressourcen: CPU-Zeiten, Speicher, Files, I/O Systeme Betriebssystem ist

Mehr

Kernel Programmierung unter Linux. Programmierung von Kernelmodulen. Referent Klaus Ruhwinkel

Kernel Programmierung unter Linux. Programmierung von Kernelmodulen. Referent Klaus Ruhwinkel Kernel Programmierung unter Linux Programmierung von Kernelmodulen Referent Klaus Ruhwinkel Das Betriebssystem Aufbau des Betriebssystem: Es besteht aus den Betriebssystemkern und den sonstigen Betriebssystemkomponenten

Mehr

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Name: Matrikel-Nr: Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008 Bitte schreiben Sie leserlich und antworten Sie kurz und präzise. 1. Zeichnen Sie das Schichten-Modell eines Computersystems und markieren

Mehr

Sourcecodeverwaltung

Sourcecodeverwaltung Subversion SEP 20 Sourcecodeverwaltung zentrale Verwaltung des Sourcecodes unablässig bei Gruppenarbeit offensichtlich schlecht: Code per Email herumschicken: Aktualität, Vollständigkeit Code in Verzeichnis

Mehr

13. Übung mit Musterlösung

13. Übung mit Musterlösung 13. Übung mit Musterlösung 1 Lösung 1 Teil 1.Multiple Choice) Bewertung: Ein Punkt für richtige Antwort, für jede falsche Antwort ein Punktabzug. a) Für die Exponentialverteilung ist die Zeit bis zum nächsten

Mehr

Subversion und Trac. Michael Trunner. 23. Januar 2008. Fachschaft Informatik und Softwaretechnik Universität Stuttgart

Subversion und Trac. Michael Trunner. 23. Januar 2008. Fachschaft Informatik und Softwaretechnik Universität Stuttgart Subversion und Trac Michael Trunner Fachschaft Informatik und Softwaretechnik Universität Stuttgart 23. Januar 2008 Michael Trunner SVN & Trac (1/ 30) 1 Vorwort 2 Subversion alias SVN 3 Trac Michael Trunner

Mehr

2 Funktionen für die Verwaltung von Kontexten

2 Funktionen für die Verwaltung von Kontexten Übungen zur Vorlesung Betriebssysteme Projekt 2 Nicht-präemptive User-Level-Thread-Bibliothek (Version 1.10) 1 Einführung In diesem Projekt sollen Sie eine einfache, nicht-präemptive User-Level-Thread-Bibliothek

Mehr

an Hand eines Beispiels Konsole

an Hand eines Beispiels Konsole Versionskontrolle an Hand eines Beispiels Konsole 1 / 14 PAUL SCHEREMET Inhaltsverzeichnis Einleitung 3 Das Repository anlegen (init) 4 Das erste Modul importieren (import) 5 Module auschecken (checkout

Mehr

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation Inhaltsverzeichnis Systemprogrammierung - Kapitel 2 Prozessverwaltung 1/21 2.1 Was ist ein Prozess? Definition Prozesszustände Prozesskontrollblöcke 2.4 Thread-Systeme Sinn und Zweck Thread-Arten Thread-Management

Mehr

Einführung in Subversion

Einführung in Subversion Einführung in Subversion Benjamin Seppke AB KOGS Dept. Informatik Universität Hamburg Was ist Subversion? Ein Server-basiertes Versions-Verwaltungs- System Ermöglicht mehreren Benutzern die gemeinsame

Mehr

Übung zu Grundlagen der Betriebssysteme. 7. Übung 27.11.2012

Übung zu Grundlagen der Betriebssysteme. 7. Übung 27.11.2012 Übung zu Grundlagen der Betriebssysteme 7. Übung 27.11.2012 Threads Thread (Faden des (Kontrollflusses)): ist ein sequentieller Abarbeitungsablauf (Kontrollfluss) innerhalb eines Prozesses. Umfasst ein

Mehr

KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation

KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation SS 2003 KV Betriebssysteme (Peter René Dietmüller, Michael Sonntag) Synchronisation 1 Sequentielle Prozesse Zu jedem Zeitpunkt t wird genau eine einzige Instruktion ausgeführt Hängt ab vom Abstraktionsgrad

Mehr

Von SVN zu Git. Daniel Willmann 2011-10-18 cbna

Von SVN zu Git. Daniel Willmann <daniel@totalueberwachung.de> 2011-10-18 cbna Von SVN zu Git Daniel Willmann 2011-10-18 cbna Inhalt Einführung Git für SVN Benutzer Weitergehende Konzepte Zusammenfassung Daniel Willmann Von SVN zu Git 2 Über den Vortragenden

Mehr

RTEMS- Echtzeitbetriebssystem

RTEMS- Echtzeitbetriebssystem RTEMS- Echtzeitbetriebssystem Name: Hussein Hammoud Matrikel- Nr.: 230768 Studiengang: Technische Informatik Fach: Projekt Eingebettete Kommunikation Technische Universität Berlin Sommersemester 2006 RTEMS-

Mehr

Linux Cafe 2013 11 11. Referent: Bernd Strößenreuther

Linux Cafe 2013 11 11. Referent: Bernd Strößenreuther Versionsverwaltung mit Git Linux Cafe 2013 11 11 Referent: Bernd Strößenreuther mailto:linux cafe@stroessenreuther.net Lizenz Sie dürfen dieses Dokument verwenden unter den Bedingungen der Creative Commons

Mehr

Seminar: Mobile Geräte QNX Einführung

Seminar: Mobile Geräte QNX Einführung Seminar: Mobile Geräte QNX Einführung Vortragender: Alex Maurer 2010/2011 Philipps Universität Marburg Echtzeitbetriebssystem QNX QNX ist ein RTOS (Real Time OS) vorhersagbares Zeitverhalten niedrige Latenz

Mehr

Crashkurs Subversion / Trac / Provisioning. Jan Zieschang, 04.01.2008, Berlin

Crashkurs Subversion / Trac / Provisioning. Jan Zieschang, 04.01.2008, Berlin Crashkurs Subversion / Trac / Provisioning Jan Zieschang, 04.01.2008, Berlin Agenda 2 Subversion Das SCM TortoiseSvn Der Client Trac Das Tracking-Tool Provisioning Das Provisioning Tool Arbeiten mit Subversion/TortoiseSvn

Mehr

Softwarelösungen: Versuch 4

Softwarelösungen: Versuch 4 Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]

Mehr

Prozesse und Scheduling

Prozesse und Scheduling Betriebssysteme für Wirtschaftsinformatiker SS04 KLAUSUR Vorbereitung mit Lösungen / Blatt 1 Prozesse und Scheduling Aufgabe 1 : Scheduling Gegeben seien die folgenden Prozesse und die Längen des jeweiligen

Mehr

Benutzerdokumentation Hosted Backup Services Client

Benutzerdokumentation Hosted Backup Services Client Benutzerdokumentation Hosted Backup Services Client Geschäftshaus Pilatushof Grabenhofstrasse 4 6010 Kriens Version 1.1 28.04.2014 Inhaltsverzeichnis 1 Einleitung 4 2 Voraussetzungen 4 3 Installation 5

Mehr

Git II. Dezentrale Versionsverwaltung im Team

Git II. Dezentrale Versionsverwaltung im Team Git II Dezentrale Versionsverwaltung im Team Themenbereiche Arbeit mit Remote Repositories Austausch zwischen Repositories Änderungen rückgängig machen Zusammenarbeit über Workflows Git hat mehr als nur

Mehr

Betriebssysteme Vorstellung

Betriebssysteme Vorstellung Am Anfang war die Betriebssysteme Vorstellung CPU Ringvorlesung SE/W WS 08/09 1 2 Monitor CPU Komponenten eines einfachen PCs Bus Holt Instruktion aus Speicher und führt ihn aus Befehlssatz Einfache Operationen

Mehr

4 Threads. FH Regensburg BT/SS04 Betriebssysteme Wirtschaftsinformatik. 4.1 Allgemein

4 Threads. FH Regensburg BT/SS04 Betriebssysteme Wirtschaftsinformatik. 4.1 Allgemein 4 Threads 4.1 Allgemein Prozessmodell: Zwei unabhängige Eigenschaften eines Prozesses: Er hat Resourcen: Adressen, Daten, geöffnete Dateien und ist ausführbar Thread: hat keine eigenen Resourcen (ausser

Mehr

Betriebssysteme (BTS)

Betriebssysteme (BTS) 5.Vorlesung Betriebssysteme (BTS) Christian Baun cray@unix-ag.uni-kl.de Hochschule Mannheim Fakultät für Informatik Institut für Betriebssysteme 30.3.2007 Wiederholung vom letzten Mal Redundant Array of

Mehr

fork () Hans-Georg Eßer, Hochschule München Betriebssysteme I, SS 2008 2. Prozesse (2/2) Folie 4

fork () Hans-Georg Eßer, Hochschule München Betriebssysteme I, SS 2008 2. Prozesse (2/2) Folie 4 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: SAS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Subversion. Quellcodeverwaltung a la Opensource. Matthias Fischer. Technical Expert.NET Tieto, JOSI / Microsoft Matthias.Fischer@tieto.

Subversion. Quellcodeverwaltung a la Opensource. Matthias Fischer. Technical Expert.NET Tieto, JOSI / Microsoft Matthias.Fischer@tieto. Subversion Quellcodeverwaltung a la Opensource Matthias Fischer Technical Expert.NET Tieto, JOSI / Microsoft Matthias.Fischer@tieto.com Agenda Grundlagen Installation Administration / Konfiguration Verwendung

Mehr

Die Projek*ools. Files, Git, Tickets & Time

Die Projek*ools. Files, Git, Tickets & Time Die Projek*ools Files, Git, Tickets & Time Agenda Die Abgabe von Dokumenten: Files Das Pflegen von Software: Versionskontrolle mit Git Management von Anforderungen: Tickets Management von Zeit: Time Files

Mehr

Versionsmanagement mit Subversion

Versionsmanagement mit Subversion Versionsmanagement mit Subversion Einführung + Demo Lehrstuhl Softwaretechnik Softwarepraktikum 2005 Nicolas Gümbel Motivation Mitglieder einer Software Entwicklungsgruppe müssen: gemeinsamen Zugriff auf

Mehr

Postgresql. Michael Dienert. 10. Dezember 2007. 1.1 Installationsort der Programme... 1

Postgresql. Michael Dienert. 10. Dezember 2007. 1.1 Installationsort der Programme... 1 Postgresql Michael Dienert 10. Dezember 2007 Inhaltsverzeichnis 1 Übersetzen und Installieren 1 1.1 Installationsort der Programme..................... 1 2 Einrichten einer Testdatenbank 1 2.1 Das Datenbank-Cluster.........................

Mehr

Linux Paging, Caching und Swapping

Linux Paging, Caching und Swapping Linux Paging, Caching und Swapping Inhalte Paging Das Virtuelle Speichermodell Die Page Table im Detail Page Allocation und Page Deallocation Memory Mapping & Demand Paging Caching Die verschiedenen Caches

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige

Mehr

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht

Betriebssystem? Übersicht. Ziele. Grundlagen. Das ist nur die Oberfläche... Wissen, was man unter einem Betriebssystem versteht Betriebssysteme Grundlagen Quellen: InSy Folien zum Thema Unix/Linux Wikipedia Das ist nur die Oberfläche... 1 Ziele 2 Übersicht Wissen, was man unter einem Betriebssystem versteht Was Was ist istein einbetriebssystem?

Mehr

Software Engineering I

Software Engineering I Software I Übungsblatt 1 + 2 Claas Pinkernell Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/ Seite 2 Welche Werkzeuge? Programmiersprache Java Integrierte Entwicklungsumgebung Eclipse

Mehr