Betriebssysteme Flashcards
Welche Aufgaben hat ein Betriebssystem /
- Eine abstraktionschicht zwischen Hardware und Software aufzubauen
- Verwaltung der Ressourcen
Was sind Caches ? Warum sind die wichtig ?
Caches sind kleine, aber schnelle Speicher in das CPU, dass Copien von die Haufig verwendeten Daten des Haupspeichers speichern, um Haupspeicheranrufe zu vermeiden
Was passiert bei Systemaufrufen ? (Trap, Parameterubergabe)
Systemaufrufen bilden eine Interface sodass Anwendungen an Funktionen des BS zugreifen koennen.
- Bei Trap Befehle oder Trap Interrupts wirds das BS ins Kernelmodus eingehen.
- Parameterubergabe erfolgt mittels (fkt. args, Tabellen oder von der Call Stack poppen)
Nenne mich 15 Unix systemaufrufe
- fork()
- exit()
-wait()
-open()
-read()
-write()
-close()
-pipe()
-shmget()
-mmap()
–ioctl()
-read()
-write()
-chmod()
-umask()
chown()
-getpid()
-alarm()
-sleep()
Was sind Shells ? Was ist ihre Funktion ins BS ?
Shells sind Kommandozeileninterpreter CLI, setzen Texteingaben in Aufrufe von BS Apis, und stellen die Ausgaben des BS dar.
Was ist der Unterschied zwischen ein Prozess und ein Program ? (4)
- Ein PR ist ein Satz von Anweisungen, bei der Ausfuerhrung wird er als Prozess bezeichnet
- PS sind aktiv, PR passiv
- PS haben begrenzte Lebensdauer
- PR sind in der FS gespeichert, erfordern keine weitere ressourcen. PS enthalten CP, Speicher, EA…
Was ist ein PCB ?
Process Control Block. Sind Datenstrukturen dass die notwendige Informationen zur Steuerung eine Prozesses enthaelt.
Was macht der Syscall execve() ?
Ersetzt das Speicherbild des aufrufenden Prozesses mit den Inhalt des Pfades “name” erstezen.
Wie kann einen Prozess auf einen Kind prozess warten ? Wie erzeugt und terminiert man prozesse ? (code)
while (TRUE) { type_prompt(); read_command (command, parameters); /* Befehl einlesen */ if ( fork() != 0 ) { // parent waitpid (-1, &status, 0); } else { // child execve (command, parameters, 0); } }
Welche Prozesszustaende gibt es ? (5)
- Neu = Prozess wird erstellt
- Beendet = Der prozess wurde beendet
- Laufend = Der Prozess wird ausgefuerht
- Ready = Der prozess wartet um ausgefuerht zu werden
- Wartend/Blocked = Der prozess wartet auf einen Ereignis
Was kann die Prozesszustaende Beeinflussen ?
- Seine Zulassung, terminierung, oder eigene Fehlern
- Interrupts von andere Prozesse
- Der Scheduler
- Das warten auf einen Ereignis
Welche arten von IPC gibt es ?
- Message Passing:
- Synchrone oder Asynchrone Nachrichtuebermittlung
- Vorteile: - Sender kann weiterhin arbeiten
- Nachteile: Sender muss ein handle schicken zum Fragen ob der Nachrit zugestellt wurde, und noch eine Zusaetzliche Nachricht ist fuer die Bestaetigung notig
- Bsp: Sockets, Remote Procedure Calls, Web services
- Shared Memory:
- Erstellung eines Segment des gem. Speichers, wo die Prozesse sich wie Saugetieren attachen.
- Schreiben lesen mittels Kopieren der Speicher
- Trennung mittels detach (shmdt(memory))
- Vorteilen: Schreibzugriffe mussen nicht sofort an die FS geschrieben werden, und nach der Terminierung alle veranderung werden an die FS geschrieben.
Was ist ein Memory Mapped Datei ?
Eine Art von IPC des Typs shared Memory wo einer Dateipfad als Segment id geteilt wird, stets der gem. Speichersegment
Wie sieht eine Implementierung von shared Memory aus ?
segment_id = shmget (IPC_PRIVATE, size, S_IRUSR | S_IWUSR); shared_memory =(char *) shmat (segment_id, NULL, 0); sprintf(shared_memory, "Writing here..."); char read_value = *shared_memory; shmdt (shared memory);
Was sind Pipes ? Wie verwendet man den unter linux ?
Pipes sind Mechanismen die erlauben die Ausgabe von einen Prozess in der Eingabe von einen anderen Prozess umzuwandeln. In linux mit | geschrieben ls -la | grep