Questions and Answers on Operating Systems

Version 0.1


Table of Contents

Purpose of this Q and A type document
1. Operating Systems Overview
2. Linux
Security
3. File Systems
4. Memory Systems
5. Process and Synchronization
6. C Language Introduction
7. C Language Tooling
8. C Language Runtime
9. Computer Organization
Events
Performance
System Architecture
Application Design
10. Virtual Machines
Garbage Collection

Purpose of this Q and A type document

The purpose of this list is to check and enhance the understanding of operating systems from an application programming point of view.

Chapter 1. Operating Systems Overview

Table of Contents

1. You get the job to write a word processor application for a new handheld device (PDA). After agreeing you find out that there is no operating system on this device. How does this change you job? What do you have to do now? What are the advantages of an operating system in your situation?
2. Sie erhalten die Aufgabe einen Word Prozessor für einen neuen tragbaren Computer (PDA) zu entwickeln. Nachdem Sie zugestimmt haben finden Sie heraus dass es für dieses Gerät noch kein Betriebssystem gibt. Wie hat sich Ihre Aufgabe geändert? Was müssen Sie jetzt tun? Was wären die Vorteile eines Betriebssystems in Ihrer Situation?
3. There are reactive, transformative and interactive systems. To which category do operating systems usually belong? Given a mission critical applications (e.g. nuclear power plant control) - would you go for a reactive system? Why or why not?
4. Es gibt reaktive, transformative und interaktive Systeme. Zu welcher Kategorie gehören Betriebssysteme normalerweise? Würden Sie für extrem kritische Applikationen (z.B. Kontrolle von Kernkraftwerken) ein reaktives System nehmen? Warum oder warum nicht?
5. At home you are the only user of an operating system. Now you boss asks you to setup the same system at the company site, but it should support several users concurrently. Can you use the same software? The same configuration? What are the main problems multi-user operating systems have to solve?
6. Zuhause sind Sie der einzige Benutzer eines Betriebssystems. Jetzt bittet Sie Ihr Boss das selbe System in der Firma zu installieren, allerdings soll es dort mehrere Benutzer gleichzeitig unterstützen. Können Sie dieselbe Software verwenden? Dieselbe Konfiguration? Welche Hauptprobleme müssen multi-user Betriebssysteme lösen?
7. You are writing a new piece of software that allows handwritten user input to be recognized. Should this software be part of the operating system? What are the advantages and disadvantages of putting it into the OS? Draw a diagram which shows the main functions of an operating system. Do not only think about hardware. Explain why an operating system is an example of the layer architectural pattern
8. Sie schreiben eine neue Software für Handschrifterkennung. Sollte diese Software Teil des Betriebssystems sein? Was sind die Vorteile und Nachteile einer Integration? Zeichnen Sie ein Diagramm das die Funktionen eines Betriebssystems zeigt. Denken Sie nicht nur an Hardware. Erklären Sie warum ein OS ein Beispiel für das Layer Architekurpattern ist.
9. A company develops a new piece of hardware for wireless networking. Why can this company sell the hardware without shipping a new Windows or Linux etc. as well? How does the hardware integrate into existing operating systems?
10. Eine Firma entwickelt eine neue Hardware für drahtloses Networking. Wieso kann die Firma diese Hardware verkaufen ohne gleichzeitig ein neues Windows oder Linux ausliefern zu müssen? Wie integriert sich die Hardware in existierende Betriebssysteme?
11. The new handwriting recognition software you have developed should become part of the operating system. Now you have a choice to make it part of the kernal or leave it as a service outside. Discuss these options along the dimensions of development time, performance, system stability and ease of changes.
12. Die neue Software zur Handschrifterkennung die Sie entwickelt haben soll jetzt Teil des Betriebssystems werden. Jetzt können Sie wählen ob sie Teil des Kerns werden soll oder ausserhalb als Service arbeiten soll. Diskutieren Sie diese Optionen anhand der Dimensionen Entwicklungszeit, Geschwindigkeit, Systemstabilität und Aufwand für Aenderungen.
13. Your wordprocessor uses the following code to check for user input from the keyboard: while (true) { status = readKeyboardStatus(); if (status) return readKeyboardInput(); } The function readKeyboardStatus tells you if there is a character available and returns true in this case. Compare how this code works on a single-tasking OS compared to a multi-tasking OS. Will it prevent other tasks from running on the multi-tasking OS? How does the OS prevent your code from eating all available cycles if there is no user input? Explain "preemption" and "blocking I/O" using this example.
14. Ihr Wordprozessor verwendet folgenden Code um nach Eingaben des Users vom Keyboard zu fragen: while (true) { status = readKeyboardStatus(); if (status) return readKeyboardInput(); } Die Funktion readKeyboardStatus sagt Ihnen of ein Zeichen verfügbar ist und gibt in diesem Fall true zurück. Vergleiche Sie die Arbeitsweise dieses Codes auf einem Single-tasking System verglichen mit einem Multi-tasking OS. Verhindert der Code dass andere Tasks auf dem multi-tasking OS laufen können? Wie verhindert das OS dass Ihr Code alle verfügbaren Zyklen frisst wenn kein User Input vorliegt? Erklären Sie die Techniken "preemption" und "blocking I/O" an diesem Beispiel.
15. For a long time people have been dreaming about the universal operating system which runs on all kinds of machines: from the smallest PDA or sensor to the biggest mainframe clusters. Do you think this is possible? What are the advantages and disadvantages? How does this goal affect the software architecture? E.g. think about installing a new device driver or who can shutdown the system.
16. Eine lange Zeit haben Leute vom universellen Betriebssystem geträumt (Windows, WinCE etc.) das auf allen Arten von Maschinen läuft: vom kleinsten PDA oder Sensor zum grössten Mainframe Cluster. Glauben Sie dass das möglich ist? Was sind die Vorteile und Nachteile? Wie beeinflusst dieses Ziel die Software Architektur? Denken Sie z.B. an die Installation eines neuen Device Drivers oder wer das System herunterfahren darf.
17. Airbus industries asks you to design an flight position instrument for a new generation of airplanes. This device needs to check the position a hundred times per second and react on different sensor input within microseconds. To save costs you decide to use either Windows 2000 or Linux for this device. Will airbus industries be happy about your decision? What kind of response time guarantees can you give to them? What technical feature must a kernel have if it should run the device? Why is Unix generally not a good choice for this?
18. Airbus industries beauftragt Sie mit dem Design eines Instruments für die Bestimmung der Flugposition für einen neue Flugzeuggeneration. Dieses Gerät muss die Position hundert mal pro Sekunde prüfen und auf eine Reihe von Sensoren innerhalb von Mikrosekunden reagieren. Um Kosten zu sparen entscheiden Sie sich für Windows 2000 oder Linux auf diesem Gerät. Wird Airbus Industries mit Ihrer Entscheidung glücklich? Welche Garantien in Bezug auf Antwortzeiten können Sie Ihnen geben? Welche technische Eigenschaft muss der Kernel eines geeigneten OS besitzen? Warum ist Unix typischerweise dafür nicht so geeignet?
19. Your job as a system administrator is to check the file system every day with respect to types of files, age etc. The results should be filtered, sorted and mailed to all users which use to much diskspace or with very old files etc. How do you proceed on Windows? How on Linux? What utilities are available? Can you see a different approach regarding automation and composition of tasks?
20. Ihr Job als Systemadministrator ist es jeden Tag das Filesystem zu prüfen auf Filetypen, alter, Grösse etc. Die resultate sollen gefiltert, sortiert und anschliessend an alle user gemailt werden die zuviel Diskspace verbrauchen oder mit sehr alten Files etc. Wie arbeiten Sie auf Windows? Wie auf Linux? Welche Werkzeuge sind verfügbar? Erkennen Sie Unterschiede in Bezug auf Automatisierung und Komposition von Tasks?
21. Why does a Java program run on all machines and a C or C++ program only on some? Is it always true that Java programs run everywhere? Think about micro-devices with limited hardware.
22. Warum laufen Java Programme auf allen Maschinen und C oder C++ Programme nur auf einigen? Ist es immer wahr dass Java Programme überall laufen? Denken Sie an extrem kleine Devices mit eingeschränkter hardware.
1.

You get the job to write a word processor application for a new handheld device (PDA). After agreeing you find out that there is no operating system on this device. How does this change you job? What do you have to do now? What are the advantages of an operating system in your situation?

2.

Sie erhalten die Aufgabe einen Word Prozessor für einen neuen tragbaren Computer (PDA) zu entwickeln. Nachdem Sie zugestimmt haben finden Sie heraus dass es für dieses Gerät noch kein Betriebssystem gibt. Wie hat sich Ihre Aufgabe geändert? Was müssen Sie jetzt tun? Was wären die Vorteile eines Betriebssystems in Ihrer Situation?

3.

There are reactive, transformative and interactive systems. To which category do operating systems usually belong? Given a mission critical applications (e.g. nuclear power plant control) - would you go for a reactive system? Why or why not?

4.

Es gibt reaktive, transformative und interaktive Systeme. Zu welcher Kategorie gehören Betriebssysteme normalerweise? Würden Sie für extrem kritische Applikationen (z.B. Kontrolle von Kernkraftwerken) ein reaktives System nehmen? Warum oder warum nicht?

5.

At home you are the only user of an operating system. Now you boss asks you to setup the same system at the company site, but it should support several users concurrently. Can you use the same software? The same configuration? What are the main problems multi-user operating systems have to solve?

6.

Zuhause sind Sie der einzige Benutzer eines Betriebssystems. Jetzt bittet Sie Ihr Boss das selbe System in der Firma zu installieren, allerdings soll es dort mehrere Benutzer gleichzeitig unterstützen. Können Sie dieselbe Software verwenden? Dieselbe Konfiguration? Welche Hauptprobleme müssen multi-user Betriebssysteme lösen?

7.

You are writing a new piece of software that allows handwritten user input to be recognized. Should this software be part of the operating system? What are the advantages and disadvantages of putting it into the OS? Draw a diagram which shows the main functions of an operating system. Do not only think about hardware. Explain why an operating system is an example of the layer architectural pattern

8.

Sie schreiben eine neue Software für Handschrifterkennung. Sollte diese Software Teil des Betriebssystems sein? Was sind die Vorteile und Nachteile einer Integration? Zeichnen Sie ein Diagramm das die Funktionen eines Betriebssystems zeigt. Denken Sie nicht nur an Hardware. Erklären Sie warum ein OS ein Beispiel für das Layer Architekurpattern ist.

9.

A company develops a new piece of hardware for wireless networking. Why can this company sell the hardware without shipping a new Windows or Linux etc. as well? How does the hardware integrate into existing operating systems?

10.

Eine Firma entwickelt eine neue Hardware für drahtloses Networking. Wieso kann die Firma diese Hardware verkaufen ohne gleichzeitig ein neues Windows oder Linux ausliefern zu müssen? Wie integriert sich die Hardware in existierende Betriebssysteme?

11.

The new handwriting recognition software you have developed should become part of the operating system. Now you have a choice to make it part of the kernal or leave it as a service outside. Discuss these options along the dimensions of development time, performance, system stability and ease of changes.

12.

Die neue Software zur Handschrifterkennung die Sie entwickelt haben soll jetzt Teil des Betriebssystems werden. Jetzt können Sie wählen ob sie Teil des Kerns werden soll oder ausserhalb als Service arbeiten soll. Diskutieren Sie diese Optionen anhand der Dimensionen Entwicklungszeit, Geschwindigkeit, Systemstabilität und Aufwand für Aenderungen.

13.

Your wordprocessor uses the following code to check for user input from the keyboard:

while (true) {
status = readKeyboardStatus();
if (status)
   return readKeyboardInput();
}

The function readKeyboardStatus tells you if there is a character available and returns true in this case. Compare how this code works on a single-tasking OS compared to a multi-tasking OS. Will it prevent other tasks from running on the multi-tasking OS? How does the OS prevent your code from eating all available cycles if there is no user input? Explain "preemption" and "blocking I/O" using this example.

14.

Ihr Wordprozessor verwendet folgenden Code um nach Eingaben des Users vom Keyboard zu fragen:

while (true) {
status = readKeyboardStatus();
if (status)
   return readKeyboardInput();
}

Die Funktion readKeyboardStatus sagt Ihnen of ein Zeichen verfügbar ist und gibt in diesem Fall true zurück. Vergleiche Sie die Arbeitsweise dieses Codes auf einem Single-tasking System verglichen mit einem Multi-tasking OS. Verhindert der Code dass andere Tasks auf dem multi-tasking OS laufen können? Wie verhindert das OS dass Ihr Code alle verfügbaren Zyklen frisst wenn kein User Input vorliegt? Erklären Sie die Techniken "preemption" und "blocking I/O" an diesem Beispiel.

15.

For a long time people have been dreaming about the universal operating system which runs on all kinds of machines: from the smallest PDA or sensor to the biggest mainframe clusters. Do you think this is possible? What are the advantages and disadvantages? How does this goal affect the software architecture? E.g. think about installing a new device driver or who can shutdown the system.

16.

Eine lange Zeit haben Leute vom universellen Betriebssystem geträumt (Windows, WinCE etc.) das auf allen Arten von Maschinen läuft: vom kleinsten PDA oder Sensor zum grössten Mainframe Cluster. Glauben Sie dass das möglich ist? Was sind die Vorteile und Nachteile? Wie beeinflusst dieses Ziel die Software Architektur? Denken Sie z.B. an die Installation eines neuen Device Drivers oder wer das System herunterfahren darf.

17.

Airbus industries asks you to design an flight position instrument for a new generation of airplanes. This device needs to check the position a hundred times per second and react on different sensor input within microseconds. To save costs you decide to use either Windows 2000 or Linux for this device. Will airbus industries be happy about your decision? What kind of response time guarantees can you give to them? What technical feature must a kernel have if it should run the device? Why is Unix generally not a good choice for this?

18.

Airbus industries beauftragt Sie mit dem Design eines Instruments für die Bestimmung der Flugposition für einen neue Flugzeuggeneration. Dieses Gerät muss die Position hundert mal pro Sekunde prüfen und auf eine Reihe von Sensoren innerhalb von Mikrosekunden reagieren. Um Kosten zu sparen entscheiden Sie sich für Windows 2000 oder Linux auf diesem Gerät. Wird Airbus Industries mit Ihrer Entscheidung glücklich? Welche Garantien in Bezug auf Antwortzeiten können Sie Ihnen geben? Welche technische Eigenschaft muss der Kernel eines geeigneten OS besitzen? Warum ist Unix typischerweise dafür nicht so geeignet?

19.

Your job as a system administrator is to check the file system every day with respect to types of files, age etc. The results should be filtered, sorted and mailed to all users which use to much diskspace or with very old files etc. How do you proceed on Windows? How on Linux? What utilities are available? Can you see a different approach regarding automation and composition of tasks?

20.

Ihr Job als Systemadministrator ist es jeden Tag das Filesystem zu prüfen auf Filetypen, alter, Grösse etc. Die resultate sollen gefiltert, sortiert und anschliessend an alle user gemailt werden die zuviel Diskspace verbrauchen oder mit sehr alten Files etc. Wie arbeiten Sie auf Windows? Wie auf Linux? Welche Werkzeuge sind verfügbar? Erkennen Sie Unterschiede in Bezug auf Automatisierung und Komposition von Tasks?

21.

Why does a Java program run on all machines and a C or C++ program only on some? Is it always true that Java programs run everywhere? Think about micro-devices with limited hardware.

22.

Warum laufen Java Programme auf allen Maschinen und C oder C++ Programme nur auf einigen? Ist es immer wahr dass Java Programme überall laufen? Denken Sie an extrem kleine Devices mit eingeschränkter hardware.

Chapter 2. Linux

Table of Contents

Security
2.1. The lilo bootloader needs a list of disk block addresses to load the linux kernel. The grub bootloader only needs to know the name of the kernel to load. Explain the difference. What happens if a new kernel is built and lilos list was not updated? What is the role of the BIOS in the whole bootstrap process?
2.2. Der lilo bootloader braucht eine Liste von Block Adressen auf der Disk um den Linux Kernel zu laden. Der grub bootloader braucht nur den Namen des zu ladenden Kernels. Erklären Sie den Unterschied. Was passiert wenn ein neuer kernel gebaut wird aber lilos list nicht angepasst wird? Welche Rolle spielt das BIOS im ganzen bootstrap Prozess?
2.3. Draw a simple map of a Linux filesystem with the typical directories. Tell what can be found typically in which directory.
2.4. Zeichnen Sie eine kleine Karte eines Linux Filesystems mit den typischen Verzeichnissen. Was befindet sich typischerweise in welchem Verzeichnis?
2.1.

The lilo bootloader needs a list of disk block addresses to load the linux kernel. The grub bootloader only needs to know the name of the kernel to load. Explain the difference. What happens if a new kernel is built and lilos list was not updated? What is the role of the BIOS in the whole bootstrap process?

2.2.

Der lilo bootloader braucht eine Liste von Block Adressen auf der Disk um den Linux Kernel zu laden. Der grub bootloader braucht nur den Namen des zu ladenden Kernels. Erklären Sie den Unterschied. Was passiert wenn ein neuer kernel gebaut wird aber lilos list nicht angepasst wird? Welche Rolle spielt das BIOS im ganzen bootstrap Prozess?

2.3.

Draw a simple map of a Linux filesystem with the typical directories. Tell what can be found typically in which directory.

2.4.

Zeichnen Sie eine kleine Karte eines Linux Filesystems mit den typischen Verzeichnissen. Was befindet sich typischerweise in welchem Verzeichnis?

Security

1. Some people claim that Linux is less susceptible to viruses and trojans as e.g. windows versions. Is there some truth behind this statement or is it just folklore? Give social and technical reasons for or against it.
2. Einige Leute behaupten dass Linux für Viren und Trojaner weniger anfällig sei als z.B. Windows Versionen. Ist da etwas wahres dran an der Aussage oder ist das nur Folklore? Geben Sie einige soziale und technische Gründe dafür oder dagegen.
3. Some OS use file extensions and some do not. If your OS allows extensions, should the OS also enforce the proper extensions, i.e. should the OS make sure that a .txt really is a text file? Is it a good idea to hide extensions from users?
4. Einige OS benutzen Datei Extensions und einige nicht. Wenn Ihr OS solche Extensions erlaubt, sollte es auch die richtigen Extensions erzwingen? In anderen Worten: sollte das OS sicherstellen dass ein .txt File wirklich ein .txt File ist? Ist es eine gute Idee file extensions vor Usern zu verstecken?
5. There was a heated argument between Linus Thorvalds and Andrew Tanenbaum about the design of the linux kernel. Thorvalds wanted a traditional monolithic kernel while Tanenbaum, based on his Minix experiences, wanted a modern microkernel approach. Discuss the pros and cons of both architectures. Who won?
6. Es gabe einen ziemlich hitzigen Streit zwischen Linus Thorvalds und Andrew Tanenbaum über das Design des Linux Kernels. Thorvalds wollte einen traditionellen Monolithischen Kernel, Tanenbaum wollte basierend auf seinen Minix Erkenntnissen einen modernen Mikrokernel Ansatz. Diskutieren Sie die Vor- und Nachteile beider Architekturen. Wer hat gewonnen?
7. Everything is a file. Give some examples and explain this philosophy and its consequences for tools.
8. Alles ist ein File. Geben Sie einige Beispiele und erklären Sie die Philosophie und ihre Konsequenzen für Werkzeuge.
9. Does Linux allow access to a resource without knowing the identity of the accessing entity? What does "Identity" mean in this context: user or program identity? What is the role of the identity during access? Explain the term Access Control List (ACL)
10. Erlaubt Linux Zugriff auf Resources ohne dass die Identität des Zugreifenden dem System bekannt ist? Was bedeutet hier "Identität": die des Benutzers oder die des Programms. Welche Rolle spielt die Identität beim Zugriff? Erklären Sie den Begriff Access Control List (ACL).
11. Give an example of a unix pipe command and explain how it works. Can you use those pipes between machinens?
12. Geben Sie ein Beispiel für ein Unix Pipe Kommando und erklären Sie wie es funktioniert. Können Sie solche Pipes auch zwischen Maschinen verwenden?
13. Compare the unix approach to system management with configuration files with the Windows registry mechanism. Advantages and Disadvantages of both approaches.
14. Vergleichen Sie den Unix Ansatz zum System Management durch Konfigurationsfiles mit dem Windows Registry Ansatz. Vorteile und Nachteile beider Ansätze.
15. Unix handbooks warn you from doing regular work using the Unix administrator account "root". Why?
16. Unix Handbücher waren davor gewöhnlich unter der Unix Administratorkennung "root" zu arbeiten. Wieso?
17. On a multi-user machine you happen to get access to the root password for a short period of time. What can you do with it? How would you make sure that you do not lose this right? How can you compromise the system e.g. to read other peoples mail in the future as well?
18. Auf einer multi-user Maschine erhalten Sie für kurze Zeit Zugang zum root Passwort. Was können Sie damit machen? Wie stellen Sie sicher dass Sie dieses Recht nicht wieder verlieren? Wie können Sie das System kompromittieren, z.B. damit Sie auch in Zukunft noch die Mail anderer Leute lesen können?
19. Windows and XWindows are two fundamentally different paradigms for graphical user interfaces. What is the core difference with respect to the operating system?
20. Windows und XWindows sind zwei fundatmental unterschiedliche Paradigmen für graphische User Interfaces. Was ist der Kernunterschied in Bezug auf das Betriebssytem?
21. Linux command questions: You suspect that there are two executables with the same name on your system (perhaps different versions). Name the unix command that lets you find the one that is executed first when you type the command on the command line.You cannot remember a certain command or what it does. Name unix utilities which will help you to learn the syntax or understand what the tool does.Your program seems to no longer respond to your input. How can you get rid of it?
22. Linux Kommando Frage:Sie vermuten dass Sie zwei ausführbare Programme gleichen Namens auf Ihrer Maschine habe (vielleicht unterschiedlicher Version). Nennen Sie das Unix Kommando das Ihnen sagt welches Kommando als erstes ausgeführt würde wenn Sie es auf der Kommandozeile eintippen.Sie können sich nicht an ein bestimmtes Kommando bzw. was es tut erinnern. Nennen Sie Unix utilities die Ihnen bei der Syntax oder dem Zweck eines Tools helfen.Ihr Programm antwortet nicht mehr. Wie werden Sie es los?
23. Draw a diagram of how the shell works. Does it make a difference if the shell is running on a multitasking or a single-tasking OS? What does the shell do while your commands are running?
24. Zeichnen Sie ein Diagramm wie die Shell arbeitet. Macht es einen Unterschied ob die Shell auf einem multi-tasking oder einem single-tasking OS läuft? Was macht die Shell während Ihre Kommandos laufen?
25. Why is it not necessary to change the shell program if somebody has written a new command or tool? Why can new commands or tools directly accept the output of other commands?
26. Warum ist es nicht nötig die Shell anzupassen wenn jemand ein neues Kommando oder Werkzeug geschrieben hat? Warum können neue Kommandos oder Tools sofort den Output anderer Kommandos annehmen?
27. Explain how "cat foo > bar" works using the concept of stdin, stdout, stderr and redirection. Who redirects what here? Does cat know that it writes to a file named "bar"?
28. Erklären Sie wie "cat foo > bar" funktioniert indem sie das Konzept von stdin, stdout, stderr sowie redirection verwenden. Weiss cat dass es in ein file namens "bar" schreibt?
1.

Some people claim that Linux is less susceptible to viruses and trojans as e.g. windows versions. Is there some truth behind this statement or is it just folklore? Give social and technical reasons for or against it.

Tip

Think about barriers between users, the numbers of machines used etc.

2.

Einige Leute behaupten dass Linux für Viren und Trojaner weniger anfällig sei als z.B. Windows Versionen. Ist da etwas wahres dran an der Aussage oder ist das nur Folklore? Geben Sie einige soziale und technische Gründe dafür oder dagegen.

3.

Some OS use file extensions and some do not. If your OS allows extensions, should the OS also enforce the proper extensions, i.e. should the OS make sure that a .txt really is a text file? Is it a good idea to hide extensions from users?

4.

Einige OS benutzen Datei Extensions und einige nicht. Wenn Ihr OS solche Extensions erlaubt, sollte es auch die richtigen Extensions erzwingen? In anderen Worten: sollte das OS sicherstellen dass ein .txt File wirklich ein .txt File ist? Ist es eine gute Idee file extensions vor Usern zu verstecken?

5.

There was a heated argument between Linus Thorvalds and Andrew Tanenbaum about the design of the linux kernel. Thorvalds wanted a traditional monolithic kernel while Tanenbaum, based on his Minix experiences, wanted a modern microkernel approach. Discuss the pros and cons of both architectures. Who won?

6.

Es gabe einen ziemlich hitzigen Streit zwischen Linus Thorvalds und Andrew Tanenbaum über das Design des Linux Kernels. Thorvalds wollte einen traditionellen Monolithischen Kernel, Tanenbaum wollte basierend auf seinen Minix Erkenntnissen einen modernen Mikrokernel Ansatz. Diskutieren Sie die Vor- und Nachteile beider Architekturen. Wer hat gewonnen?

7.

Everything is a file. Give some examples and explain this philosophy and its consequences for tools.

8.

Alles ist ein File. Geben Sie einige Beispiele und erklären Sie die Philosophie und ihre Konsequenzen für Werkzeuge.

9.

Does Linux allow access to a resource without knowing the identity of the accessing entity? What does "Identity" mean in this context: user or program identity? What is the role of the identity during access? Explain the term Access Control List (ACL)

10.

Erlaubt Linux Zugriff auf Resources ohne dass die Identität des Zugreifenden dem System bekannt ist? Was bedeutet hier "Identität": die des Benutzers oder die des Programms. Welche Rolle spielt die Identität beim Zugriff? Erklären Sie den Begriff Access Control List (ACL).

11.

Give an example of a unix pipe command and explain how it works. Can you use those pipes between machinens?

12.

Geben Sie ein Beispiel für ein Unix Pipe Kommando und erklären Sie wie es funktioniert. Können Sie solche Pipes auch zwischen Maschinen verwenden?

13.

Compare the unix approach to system management with configuration files with the Windows registry mechanism. Advantages and Disadvantages of both approaches.

14.

Vergleichen Sie den Unix Ansatz zum System Management durch Konfigurationsfiles mit dem Windows Registry Ansatz. Vorteile und Nachteile beider Ansätze.

15.

Unix handbooks warn you from doing regular work using the Unix administrator account "root". Why?

16.

Unix Handbücher waren davor gewöhnlich unter der Unix Administratorkennung "root" zu arbeiten. Wieso?

17.

On a multi-user machine you happen to get access to the root password for a short period of time. What can you do with it? How would you make sure that you do not lose this right? How can you compromise the system e.g. to read other peoples mail in the future as well?

18.

Auf einer multi-user Maschine erhalten Sie für kurze Zeit Zugang zum root Passwort. Was können Sie damit machen? Wie stellen Sie sicher dass Sie dieses Recht nicht wieder verlieren? Wie können Sie das System kompromittieren, z.B. damit Sie auch in Zukunft noch die Mail anderer Leute lesen können?

19.

Windows and XWindows are two fundamentally different paradigms for graphical user interfaces. What is the core difference with respect to the operating system?

20.

Windows und XWindows sind zwei fundatmental unterschiedliche Paradigmen für graphische User Interfaces. Was ist der Kernunterschied in Bezug auf das Betriebssytem?

21.

Linux command questions:

  1. You suspect that there are two executables with the same name on your system (perhaps different versions). Name the unix command that lets you find the one that is executed first when you type the command on the command line.

  2. You cannot remember a certain command or what it does. Name unix utilities which will help you to learn the syntax or understand what the tool does.

  3. Your program seems to no longer respond to your input. How can you get rid of it?

22.

Linux Kommando Frage:

  1. Sie vermuten dass Sie zwei ausführbare Programme gleichen Namens auf Ihrer Maschine habe (vielleicht unterschiedlicher Version). Nennen Sie das Unix Kommando das Ihnen sagt welches Kommando als erstes ausgeführt würde wenn Sie es auf der Kommandozeile eintippen.

  2. Sie können sich nicht an ein bestimmtes Kommando bzw. was es tut erinnern. Nennen Sie Unix utilities die Ihnen bei der Syntax oder dem Zweck eines Tools helfen.

  3. Ihr Programm antwortet nicht mehr. Wie werden Sie es los?

23.

Draw a diagram of how the shell works. Does it make a difference if the shell is running on a multitasking or a single-tasking OS? What does the shell do while your commands are running?

24.

Zeichnen Sie ein Diagramm wie die Shell arbeitet. Macht es einen Unterschied ob die Shell auf einem multi-tasking oder einem single-tasking OS läuft? Was macht die Shell während Ihre Kommandos laufen?

25.

Why is it not necessary to change the shell program if somebody has written a new command or tool? Why can new commands or tools directly accept the output of other commands?

26.

Warum ist es nicht nötig die Shell anzupassen wenn jemand ein neues Kommando oder Werkzeug geschrieben hat? Warum können neue Kommandos oder Tools sofort den Output anderer Kommandos annehmen?

27.

Explain how "cat foo > bar" works using the concept of stdin, stdout, stderr and redirection. Who redirects what here? Does cat know that it writes to a file named "bar"?

28.

Erklären Sie wie "cat foo > bar" funktioniert indem sie das Konzept von stdin, stdout, stderr sowie redirection verwenden. Weiss cat dass es in ein file namens "bar" schreibt?

Chapter 3. File Systems

3.1. Name some system resource types which need to be maintained by a central authority. Why do resources need a certain protection?
3.2. Nennen Sie einige System Resource Typen die von einer zentralen Autorität verwaltet werden müssen. Warum brauchen diese Resourcen Schutz?
3.3. Describe the making of a filesystem, starting with raw bits on a harddisk and ending with a system that organizes storage into files and directories. How many different interfaces are needed? Which abstractions are created at every layer?
3.4. Beschreiben Sie wie ein Filesystem entsteht. Beginnen Sie mit den rohen Bits auf einer Harddisk und enden Sie mit einem System das Speicherplatz in Form von Dateien und Verzeichnissen organisiert anbietet. Wieviele verschiedene Interfaces sind nötig? Welche Abstraktionen werden auf jedem layer erzeugt?
3.5. What have files and memory blocks in common? What are the differences? How is content organized in files accessed compared to content in memory blocks? Compare the interfaces. Can each of them be a substitute for the other?
3.6. Was haben Dateien und Memoryblöcke gemeinsam? Was sind die Unterschiede? Wie wird auf den Inhalt von Files zugegriffen im Vergleich zum Inhalt von Memoryblöcken? Vergleichen Sie die Interfaces. Kann ein jedes ein Ersatz für das Andere sein?
3.7. File access is said to be unstructured while database access is called structured access. If you look at how the database stores its data it ends up in files. So why is this called structured storage? Explain the differences by comparing the file interface with the database interface (SQL)
3.8. Man sagt dass Filezugriffe unstrukturiert sind während Datenbankenzugriff strukturiert ist. Wenn Sie nachsehen wie Datenbanken ihren Inhalt abspeichern dann sehen Sie dass er in Form von Dateien gespeichert wird. Erklären Sie die Unterschiede indem Sie die das File Interface mit dem Datenbank Interface (SQL) vergleichen.
3.9. List the responsibilities of a file system. Consider allocation, security, naming problems and the behavior in case of concurrency..
3.10. Listen Sie die Verantwortungen eines Dateisystems. Betrachten Sie die Allokation, Sicherheit und Namensprobleme sowie das Verhalten bei Gleichläufigkeit (Concurrency)
3.11. What mechanism turns a filesystem organized as a tree into a DAG?
3.12. Durch welchen Mechanismus wird aus einem Dateibaum ein DAG?
3.13. Compare the behavior of a hard link in Linux with a link on the www. Say you want to establish the same behavior on the web as is the case locally with hard links - what do you have to do?
3.14. A file has symbolic links pointing to it.Does the file know this? Does the filesystem know? What happens if the file should be deleted?
3.15. Ein File hat symbolische Links die auf das File zeigen. Weiss das File davon? Weiss das Filesystem davon? Was passiert wenn das File gelöscht werden soll?
3.16. A user follows a symbolic link "bar" in /foo to /usr/local/foobar. Then she types "cd ../" on the command line and ends up in /usr/local and not in /foo. Why? What could the operating system do to bring her back to /foo? Is this a good idea?
3.17. Eine Userin folgt einem symbolischen Link "bar" in /foo nach /usr/local/foobar. Dann geht sie mit ../ eine Stufe zurück und endet in /usr/local und nicht in /foo. Warum? Was könnte das OS tun um sie nach /foo zurückzubringen? Ist das eine gute Idee?
3.18. In system architecture it is good style to clearly show responsibilities because they determine runtime performance and stability. A hard link is a promise. Who makes it and what is the promise exactly to somebody creating such a hard link?
3.19. Es ist guter Stil in Systemarchitekturen die Verantwortungen klar auszusprechen denn von ihnen hängen Performance und Stabilität eines Systems ab. Ein harter Link ist ein Versprechen. Wer gibt es und was genau wird jemandem versprochen der einen solchen harten Link erzeugt?
3.20. Symbolic Links are a kind of references. Describe typical resource management problems in systems with references. Think.
3.21. Symbolische Links sind eine Art von Referenz. Beschreiben Sie typische Resource Management Probleme in Systemen mit Referenzen.
3.22. Namespace operations are typically create, copy, move, delete, read, update etc. Explain the semantics of a "move" operation. Which problems can show up during a "move" operation? Could it be simulated by a copy and a delete of the original? What happens in case of concurrency? In case of a system crash?
3.23. Namespace operationen sind typischerweise create, copy, move, delete, read, update etc. Erklären Sie die Semantik der "move" Operation. Welche Probleme können während einer "move" operation auftreten? Kann sie durch eine "copy" operation mit anschliessendem "delete" des Originals simuliert werden? Was passiert im Falle von Concurrency? Was bei einem System Crash?
3.24. How are directories implemented in the Linux Filesystem? Which basic resource is used to hold the name/inode pairs?
3.25. Wie werden Verzeichnisse im Linux Filesystem implementiert? Welche Basisresource wird zum Halten der Name/Inode Paare verwendet?
3.26. Many resources can grow over time and end up consisting of a huge number of blocks. Resource maintenance of such large numbers is very expensive and takes itself quite some space and performance. But initially the resources start very small and stay so in many cases forever and allocating the full maintenance structures would be overkill. How would a resource management strategy work that allows the maintenance information to grow with the resource?
3.27. Viele Resourcen wachsen im Laufe der Zeit und bestehen am Ende aus einer riesigen Zahl von Blöcken. Die Resourcenverwaltung einer solchen grossen Zahl von Blöcken ist sehr aufwendig und braucht selbst viel Raum und Performance. Aber zu Beginn sind die meisten Resourcen eher klein und bleiben in vielen Fällen auch immer klein so dass das volle Anlegen der Verwaltungsinformationen Verschwendung wäre. Wie könnte eine Resource management Strategie funktionieren bei der die Verwaltungsinformation mit der Resource selbst wächst?
3.28. Most resources can be split into a number of free blocks and a number of busy blocks. Name two different algorithms to maintain the free block list. Discuss advantages and disadvantages.
3.29. Die meisten Resourcen lassen sich aufteilen in eine Anzahl freier Blöcke und eine Anzahl belegter Blöcke. Nennen Sie zwei verschiedene Algorithmen mit denen die Liste der freien Blöcke verwaltet werden kann. Diskutieren Sie Vorteile und Nachteile.
3.30. Many filesystems implement directories simply as files. Those files contain an entry per file or sub-directory with name, type and inode. The structure of those entries is well known und programs can read those directories directly - provided they have the proper rights - and can then navigate the filesystem. Still, most operating systems offer system calls to read directory entries. Why? If programs can read directory files, why aren't they allowed to write them as well?
3.31. Viele Filesysteme implementieren Verzeichnisse einfach als Files. Diese Files enthalten pro File oder Unterverzeichnis einen Eintrag mit Namen, Typ und Inode. Die Struktur dieser Einträge ist bekannt und Programme können diese Verzeichnisse - Rechte vorausgesetzt - auslesen und dann selber durch das Filesystem navigieren. Trotzdem bieten die meisten Betriebssysteme extra Systemcalls an zum Lesen der Verzeichnisse? Warum? Wenn Programme Verzeichnis-Files lesen dürfen, warum dürfen sie sie dann nicht schreiben?
3.32. At runtime a filesystem uses a lot of in-memory structures. What are those structures and why are they kept in memory? Can you name some problems those structures can cause in case of a power failure?
3.33. Zur Laufzeit benutzt ein Filesystem eine Menge von in-memory Strukturen. Was sind das für welche und warum werden sie im Speicher gehalten? Können Sie einige Probleme nennen die diese Strukturen im Falle eines Stromausfalls verursachen können?
3.34. Why can a power outage cause a corrupted filesystem on some operating systems? Think about the granularity of file system operations. Explain the concept of transactions using the example of creating a file in a filesystem.
3.35. Warum kann ein Stromausfall ein korruptes Filesystem auf manchen Betriebssystemen verursachen? Denken Sie an die Granularität von Filesystem Operationen. Erklären Sie das Konzept von Transaktionen am Beispiel der Erzeugung eines GFiles in einem Filesystem.
3.36. Most operations can be split into a setup phase with a rather fixed running time and a usage phase where the performance depends on the amount of data handled. If you look at the file API, which functions express setup time and which usage time? What is the role of the filedescriptor (handle) with respect to performance optimization? What price must the operating system pay to achieve the performance improvement through the use of handles or descriptors?
3.37. Die meisten Operationen können eingeteilt werden in eine setup Phase mit Laufzeit und einer Benutzungsphase bei der die Performance von der Menge der behandelten Daten abhängt. Wenn Sie sich das File API anschauen, welche Funktionen gehörenn dort zur setup time und welche zur Benutzungszeit? Welche Rolle spielt der Filedescriptor (handle) in Bezug auf Performanceoptimierung. Welchen Preis zahlt das OS um diese performanceverbesserung durch handles oder descriptoren zu erzielen?
3.38. An algorithm uses 10 percent of the overall runtime of a program. Given that you can improve the algorithm through optimization - what is the maximum speedup you can achieve? How is this law called and what do you need to learn from it for optimizing code?
3.39. Ein Algorithmus verbraucht 10 Prozent der Laufzeit eines Programms. Nehmen Sie an dass sie den Algorithmus durch Optimisierung verbessern können - was ist der grösstmögliche Verkürzung der Laufzeit die Sie erreichen können? Wie heisst das Gesetz und was bedeutet es für die Code Optimierung?
3.40. Fragmentation is a typical resource management problem. Name two ways to deal with it. One where the resources cannot be moved and the other with resource movement. Why is it important whether a recombination strategy moves resources?
3.41. Fragmentierung ist ein typisches Resource Management Problem. Nennen sie zwei Arten damit umzugehen. Eine bei der die Resourcen nicht verschoben werden können und eine weitere bei der das Verschieben möglich ist. Warum ist es wichtig ob Resourcen zur Recombination verschoben werden müssen oder nicht?
3.42. Frequently the industrie creates new types of resources, e.g. smart cards, multi-media cards etc. Sometimes new protocols for remote data handling are invented. Why is it beneficial to represent those resources as virtual filesystems on a computer? Why are sometimes even very strange resources like OS process table informations represented this way?
3.43. Oft entwickelt die Industrie neue Arten von Resourcen, z.B. smart cards, multi-media cards etc. Manchmal werden auch neue Protokolle für verteiltes Datenhandling erfunden. Warum ist es praktisch diese Resourcen über virtuelle Filesysteme auf Rechnern zu repräsentieren? Warum werden manchmal sogar recht seltsame resourcen wie Informationen aus der Prozesstabelle des OS auf diese Weise repräsentiert?
3.1.

Name some system resource types which need to be maintained by a central authority. Why do resources need a certain protection?

3.2.

Nennen Sie einige System Resource Typen die von einer zentralen Autorität verwaltet werden müssen. Warum brauchen diese Resourcen Schutz?

3.3.

Describe the making of a filesystem, starting with raw bits on a harddisk and ending with a system that organizes storage into files and directories. How many different interfaces are needed? Which abstractions are created at every layer?

3.4.

Beschreiben Sie wie ein Filesystem entsteht. Beginnen Sie mit den rohen Bits auf einer Harddisk und enden Sie mit einem System das Speicherplatz in Form von Dateien und Verzeichnissen organisiert anbietet. Wieviele verschiedene Interfaces sind nötig? Welche Abstraktionen werden auf jedem layer erzeugt?

3.5.

What have files and memory blocks in common? What are the differences? How is content organized in files accessed compared to content in memory blocks? Compare the interfaces. Can each of them be a substitute for the other?

3.6.

Was haben Dateien und Memoryblöcke gemeinsam? Was sind die Unterschiede? Wie wird auf den Inhalt von Files zugegriffen im Vergleich zum Inhalt von Memoryblöcken? Vergleichen Sie die Interfaces. Kann ein jedes ein Ersatz für das Andere sein?

3.7.

File access is said to be unstructured while database access is called structured access. If you look at how the database stores its data it ends up in files. So why is this called structured storage? Explain the differences by comparing the file interface with the database interface (SQL)

3.8.

Man sagt dass Filezugriffe unstrukturiert sind während Datenbankenzugriff strukturiert ist. Wenn Sie nachsehen wie Datenbanken ihren Inhalt abspeichern dann sehen Sie dass er in Form von Dateien gespeichert wird. Erklären Sie die Unterschiede indem Sie die das File Interface mit dem Datenbank Interface (SQL) vergleichen.

3.9.

List the responsibilities of a file system. Consider allocation, security, naming problems and the behavior in case of concurrency..

3.10.

Listen Sie die Verantwortungen eines Dateisystems. Betrachten Sie die Allokation, Sicherheit und Namensprobleme sowie das Verhalten bei Gleichläufigkeit (Concurrency)

3.11.

What mechanism turns a filesystem organized as a tree into a DAG?

3.12.

Durch welchen Mechanismus wird aus einem Dateibaum ein DAG?

3.13.

Compare the behavior of a hard link in Linux with a link on the www. Say you want to establish the same behavior on the web as is the case locally with hard links - what do you have to do?

Tip

List what happens with a hard link when it is removed. When the last link to a file is removed? Who controls the final delete of a resource?

3.14.

A file has symbolic links pointing to it.Does the file know this? Does the filesystem know? What happens if the file should be deleted?

3.15.

Ein File hat symbolische Links die auf das File zeigen. Weiss das File davon? Weiss das Filesystem davon? Was passiert wenn das File gelöscht werden soll?

3.16.

A user follows a symbolic link "bar" in /foo to /usr/local/foobar. Then she types "cd ../" on the command line and ends up in /usr/local and not in /foo. Why? What could the operating system do to bring her back to /foo? Is this a good idea?

3.17.

Eine Userin folgt einem symbolischen Link "bar" in /foo nach /usr/local/foobar. Dann geht sie mit ../ eine Stufe zurück und endet in /usr/local und nicht in /foo. Warum? Was könnte das OS tun um sie nach /foo zurückzubringen? Ist das eine gute Idee?

3.18.

In system architecture it is good style to clearly show responsibilities because they determine runtime performance and stability. A hard link is a promise. Who makes it and what is the promise exactly to somebody creating such a hard link?

3.19.

Es ist guter Stil in Systemarchitekturen die Verantwortungen klar auszusprechen denn von ihnen hängen Performance und Stabilität eines Systems ab. Ein harter Link ist ein Versprechen. Wer gibt es und was genau wird jemandem versprochen der einen solchen harten Link erzeugt?

3.20.

Symbolic Links are a kind of references. Describe typical resource management problems in systems with references. Think.

3.21.

Symbolische Links sind eine Art von Referenz. Beschreiben Sie typische Resource Management Probleme in Systemen mit Referenzen.

3.22.

Namespace operations are typically create, copy, move, delete, read, update etc. Explain the semantics of a "move" operation. Which problems can show up during a "move" operation? Could it be simulated by a copy and a delete of the original? What happens in case of concurrency? In case of a system crash?

3.23.

Namespace operationen sind typischerweise create, copy, move, delete, read, update etc. Erklären Sie die Semantik der "move" Operation. Welche Probleme können während einer "move" operation auftreten? Kann sie durch eine "copy" operation mit anschliessendem "delete" des Originals simuliert werden? Was passiert im Falle von Concurrency? Was bei einem System Crash?

3.24.

How are directories implemented in the Linux Filesystem? Which basic resource is used to hold the name/inode pairs?

3.25.

Wie werden Verzeichnisse im Linux Filesystem implementiert? Welche Basisresource wird zum Halten der Name/Inode Paare verwendet?

3.26.

Many resources can grow over time and end up consisting of a huge number of blocks. Resource maintenance of such large numbers is very expensive and takes itself quite some space and performance. But initially the resources start very small and stay so in many cases forever and allocating the full maintenance structures would be overkill. How would a resource management strategy work that allows the maintenance information to grow with the resource?

3.27.

Viele Resourcen wachsen im Laufe der Zeit und bestehen am Ende aus einer riesigen Zahl von Blöcken. Die Resourcenverwaltung einer solchen grossen Zahl von Blöcken ist sehr aufwendig und braucht selbst viel Raum und Performance. Aber zu Beginn sind die meisten Resourcen eher klein und bleiben in vielen Fällen auch immer klein so dass das volle Anlegen der Verwaltungsinformationen Verschwendung wäre. Wie könnte eine Resource management Strategie funktionieren bei der die Verwaltungsinformation mit der Resource selbst wächst?

3.28.

Most resources can be split into a number of free blocks and a number of busy blocks. Name two different algorithms to maintain the free block list. Discuss advantages and disadvantages.

3.29.

Die meisten Resourcen lassen sich aufteilen in eine Anzahl freier Blöcke und eine Anzahl belegter Blöcke. Nennen Sie zwei verschiedene Algorithmen mit denen die Liste der freien Blöcke verwaltet werden kann. Diskutieren Sie Vorteile und Nachteile.

3.30.

Many filesystems implement directories simply as files. Those files contain an entry per file or sub-directory with name, type and inode. The structure of those entries is well known und programs can read those directories directly - provided they have the proper rights - and can then navigate the filesystem. Still, most operating systems offer system calls to read directory entries. Why? If programs can read directory files, why aren't they allowed to write them as well?

3.31.

Viele Filesysteme implementieren Verzeichnisse einfach als Files. Diese Files enthalten pro File oder Unterverzeichnis einen Eintrag mit Namen, Typ und Inode. Die Struktur dieser Einträge ist bekannt und Programme können diese Verzeichnisse - Rechte vorausgesetzt - auslesen und dann selber durch das Filesystem navigieren. Trotzdem bieten die meisten Betriebssysteme extra Systemcalls an zum Lesen der Verzeichnisse? Warum? Wenn Programme Verzeichnis-Files lesen dürfen, warum dürfen sie sie dann nicht schreiben?

3.32.

At runtime a filesystem uses a lot of in-memory structures. What are those structures and why are they kept in memory? Can you name some problems those structures can cause in case of a power failure?

3.33.

Zur Laufzeit benutzt ein Filesystem eine Menge von in-memory Strukturen. Was sind das für welche und warum werden sie im Speicher gehalten? Können Sie einige Probleme nennen die diese Strukturen im Falle eines Stromausfalls verursachen können?

3.34.

Why can a power outage cause a corrupted filesystem on some operating systems? Think about the granularity of file system operations. Explain the concept of transactions using the example of creating a file in a filesystem.

3.35.

Warum kann ein Stromausfall ein korruptes Filesystem auf manchen Betriebssystemen verursachen? Denken Sie an die Granularität von Filesystem Operationen. Erklären Sie das Konzept von Transaktionen am Beispiel der Erzeugung eines GFiles in einem Filesystem.

3.36.

Most operations can be split into a setup phase with a rather fixed running time and a usage phase where the performance depends on the amount of data handled. If you look at the file API, which functions express setup time and which usage time? What is the role of the filedescriptor (handle) with respect to performance optimization? What price must the operating system pay to achieve the performance improvement through the use of handles or descriptors?

3.37.

Die meisten Operationen können eingeteilt werden in eine setup Phase mit Laufzeit und einer Benutzungsphase bei der die Performance von der Menge der behandelten Daten abhängt. Wenn Sie sich das File API anschauen, welche Funktionen gehörenn dort zur setup time und welche zur Benutzungszeit? Welche Rolle spielt der Filedescriptor (handle) in Bezug auf Performanceoptimierung. Welchen Preis zahlt das OS um diese performanceverbesserung durch handles oder descriptoren zu erzielen?

3.38.

An algorithm uses 10 percent of the overall runtime of a program. Given that you can improve the algorithm through optimization - what is the maximum speedup you can achieve? How is this law called and what do you need to learn from it for optimizing code?

3.39.

Ein Algorithmus verbraucht 10 Prozent der Laufzeit eines Programms. Nehmen Sie an dass sie den Algorithmus durch Optimisierung verbessern können - was ist der grösstmögliche Verkürzung der Laufzeit die Sie erreichen können? Wie heisst das Gesetz und was bedeutet es für die Code Optimierung?

3.40.

Fragmentation is a typical resource management problem. Name two ways to deal with it. One where the resources cannot be moved and the other with resource movement. Why is it important whether a recombination strategy moves resources?

3.41.

Fragmentierung ist ein typisches Resource Management Problem. Nennen sie zwei Arten damit umzugehen. Eine bei der die Resourcen nicht verschoben werden können und eine weitere bei der das Verschieben möglich ist. Warum ist es wichtig ob Resourcen zur Recombination verschoben werden müssen oder nicht?

3.42.

Frequently the industrie creates new types of resources, e.g. smart cards, multi-media cards etc. Sometimes new protocols for remote data handling are invented. Why is it beneficial to represent those resources as virtual filesystems on a computer? Why are sometimes even very strange resources like OS process table informations represented this way?

3.43.

Oft entwickelt die Industrie neue Arten von Resourcen, z.B. smart cards, multi-media cards etc. Manchmal werden auch neue Protokolle für verteiltes Datenhandling erfunden. Warum ist es praktisch diese Resourcen über virtuelle Filesysteme auf Rechnern zu repräsentieren? Warum werden manchmal sogar recht seltsame resourcen wie Informationen aus der Prozesstabelle des OS auf diese Weise repräsentiert?

Chapter 4. Memory Systems

4.1. A short glance on memory hierarchies shows that caches can cause huge gains in performance. So why are caches relatively small? Can a system get slower through larger memory caches?
4.2. Ein kurzer Blick auf Memory Hierarchien zeigt dass Caches enorme Performancegewinne ermöglichen. Warum sind sie dann relativ klein? Kann ein System durch grössere Caches langsamer werden?
4.3. You are supposed to design a digital steering system for a formula one race car. How would your memory subsystem look if the software needs to react within a few microseconds to external events? What is the problem with virtual memory systems and realtime requirements?
4.4. Sie sollen ein digitales Steuersystem für einen Formel 1 Rennwagen entwerfen. Wie sieht ihr Memory Subsystem aus wenn die Software in wenigen Microsekunden auf externe Ereignisse reagieren muss? Was ist das Problem von virtuellem Memorysystemen und Realtime Anforderungen?
4.5. A system gets loaded with more and more processes. Describe how the memory subsystem behaves during different load phases from almost unloaded to completely overloaded. Can you achieve that no matter how many processes run on the system the memory resources are optimally used? How much memory do you give one process if it is the only one? If it is one of thousands running on the system?
4.6. Auf einem System werden mehr und mehr Prozesse gestartet. Beschreiben Sie wie sich das memory subsystem verhält über verschiedene Lastphasen hinweg: von fast unbelastet bis zur extremen Uuml;berlastung. Können Sie erreichen dass egal wie hoch die Auslastung ist, die Memory Resourcen des Systems immer optimal ausgenutzt werden? Wieviel Speicher erhält ein Prozess wenn es der einzige ist? Wieviel wenn er einer von tausenden von Prozessen ist?
4.7. Explain the terms external and internal fragmentation using the memory subsystem. What can be done against both kinds of fragmentation?
4.8. Erklären Sie die Begriffe externe und interne Fragmentierung am Beispiel des memory subsystems. Was kann gegen beide Formen von Fragmentierung getan werden?
4.9. You have to keep metadata for a large number of resources of the same size in the smallest possible memory area. What kind of control structure do you use?
4.10. Sie sollen metadaten zu einer grossen Zahl von Resourcen gleicher Grösse auf kleinstmöglichem Raum verwalten. Welche Verwaltungsstruktur nehmen Sie?
4.11. Give some reasons for the introduction of virtual memory. Why are there still systems without virtual memory support?
4.12. Nennen Sie einige Gründe für die Einführung von virtuellem Memory. Warum gibt es noch immer System ohne solches Memory?
4.13. Your program is running on a system with virtual memory. It should exchange data with another program running on the same system. What are your options to achieve this? Discuss advantages and disadvantages with each solution.
4.14. Ihr Programm läuft auf einem System mit virtual memory. Es sollte daten mit einem anderen Programm auf dem gleichen System austauschen. Was sind Ihre optionen diesbezüglich. Diskutieren Sie Vor- und Nachteile der jeweiligen Lösung.
4.15. Draw a diagram that explains why a program cannot leave its address room if virtual memory is used. Show the mapping of virtual addressses to physical memory via MMU and page tables.
4.16. Zeichnen Sie ein Diagramm das erklärt warum ein Programm seinen Adressraum nicht verlassen kann wenn virtual memory benutzt wird. Zeigen Sie das Mapping von virtuellen Adressen auf physisches Memory via MMU und page tables.
4.17. The first and second level caches in a system: Is their content accessed through virtual or physical addresses?
4.18. Werden der first und second level cache in einem system mit virtuellen oder physischen Adressen angesteuert?
4.19. A large video-processing applications reads lots of data from disk. Show how the read system call works. How many times are the contents from the disk copied in memory until they reach the application? How could the memory subsystem be used to avoid unnecessary copies of data? Explain why without memory mapping tricks the copies between kernel and user mode are necessary.
4.20. Eine grosse Video-Application liest sehr viele Daten von der Disk. Zeigen Sie wie der Read system call funktioniert mit dem die Daten geholt werden können. Wie oft werden die Daten auf dem Weg von der harddisk zur Application kopiert? Wie könnte man das memory subsystem nutzen um unnötige Kopien zu vermeiden? Erklären Sie dass ohne memory management tricks die Kopien zwischen Kernel und user modus nötig sind.
4.21. Why is the memory management unit implemented in hardware? Could its functionality be done in software as well - even at a lower performance?
4.22. Warum wird einen Memory management unit als hardware realisiert? Könnte die gleiche Funktionalität auch in Software erreicht werden - bei weniger performance?
4.23. Big memory blocks seem to be better than smaller blocks. They need less control structure information and take more data in one go. What is the disadvantage of larger block sizes? Is there an optimal block size for all applications and systems? Which blocksize would you use for an image or video server? Which one for a mail server?
4.24. Grosse Memory Blöcke scheinen besser zu sein als kleine. Sie brauchen weniger Verwaltungsinformation und nehmen mehr Daten auf einmal auf. Was ist der Nachteil grosser Blöcke? Gibt es eine optimale Blockgrösse für alle Applikationen und Systeme? Welche Blockgrösse würden Sie für einen Bilder oder Videoserver nehmen? Welche für einen mailserver?
4.25. How many pages of 4KB are available in a system with one MB of Ram? What address size does your CPU need to address all physical memory without bank switching? Show how you split the virtual address into the page table index and offset given 4KB page size.
4.26. Wieviele pages der Grösse 4KB gibt es in einem System mit einem MB RAM? Welche Addressgrösse braucht Ihre CPU um das ganze physische Ram zu addressieren (ohne bank switching)? Zeigen Sie wie Sie die virtuellen Adressen aufspalten in einen Page table index sowie offset bei einer page size von 4KB.
4.27. Explain the concept of sparse maps to control memory resources of potentially huge size. Where else do you find the same concepts used?
4.28. Erklären Sie das Konzept der Sparse Maps um Memory Resourcen von potentiell riesiger Grösse zu verwalten. Wo finden Sie das Konzept sonst noch?
4.29. In a system using virtual memory there is usually no need to specify the stack size for a program. Why?
4.30. In einem System mit virtuellem Memory braucht man üblicherweise keine Grösse für den Programmstack angeben. Warum?
4.31. The page daemon is an integral part of most unix-like operating systems. But it runs outside the OS kernel as a service in user mode. What would happen if the page daemon process dies (and the OS would not detect this)?
4.32. Der page daemon ist ein integraler Teil der meisten Unix-artigen Betriebssysteme. Aber er läuft ausserhalb des OS Kernels als ein Service im User modus. Was würde passieren wenn der page daemon Prozess stirbt (und das OS bemerkt es nicht)?
4.33. Why are free pages created by a permanently running process? This means that some pages are freed without being needed immediately. This wastes resources because eventually they have to be read again from disk or swap space. Wouldn't it be better to look for free pages only when a free page is really needed?
4.34. Wieso werden freie Pages durch einen permanent laufenden Prozess erzeugt? Dadurch werden ja Pages auch freigegeben ohne dass sie sofort gebraucht werden, d.h. es werden Resourcen verschwendet denn die freigegebenen Pages müssen ja eventuell wieder geladen werden bzw. sogar vorher gespeichert werden. Wäre es nicht besser erst nach freien Pages zu suchen wenn wirklich eine freie Page gebraucht wird?
4.35. Why do we need a two-handed clock algorithm for large memories?
4.36. Warum braucht man einen zweihändigen Clock Algorithmus für grosse Speicher?
4.37. Somebody notices that different programs might need different memory block sizes and decides to build a memory management unit which supports different page sizes. What is your comment on this idea?
4.38. Jemand bemerkt dass verschiedene Programme verschiedene memory Block Grössen brauchen und beschliesst einen Memory Management Unit zu bauen die verschiedene Page Grössen unterstützt. Was meinen Sie dazu?
4.39. Butler Lampson in his paper "hints on computer systems design" mentions a couple of design errors. List some of them.
4.40. In seinem Paper "hints on computer system design" erwähnt Butler Lampson einige Design Fehler. Nennen Sie einige.
4.1.

A short glance on memory hierarchies shows that caches can cause huge gains in performance. So why are caches relatively small? Can a system get slower through larger memory caches?

4.2.

Ein kurzer Blick auf Memory Hierarchien zeigt dass Caches enorme Performancegewinne ermöglichen. Warum sind sie dann relativ klein? Kann ein System durch grössere Caches langsamer werden?

4.3.

You are supposed to design a digital steering system for a formula one race car. How would your memory subsystem look if the software needs to react within a few microseconds to external events? What is the problem with virtual memory systems and realtime requirements?

4.4.

Sie sollen ein digitales Steuersystem für einen Formel 1 Rennwagen entwerfen. Wie sieht ihr Memory Subsystem aus wenn die Software in wenigen Microsekunden auf externe Ereignisse reagieren muss? Was ist das Problem von virtuellem Memorysystemen und Realtime Anforderungen?

4.5.

A system gets loaded with more and more processes. Describe how the memory subsystem behaves during different load phases from almost unloaded to completely overloaded. Can you achieve that no matter how many processes run on the system the memory resources are optimally used? How much memory do you give one process if it is the only one? If it is one of thousands running on the system?

4.6.

Auf einem System werden mehr und mehr Prozesse gestartet. Beschreiben Sie wie sich das memory subsystem verhält über verschiedene Lastphasen hinweg: von fast unbelastet bis zur extremen Uuml;berlastung. Können Sie erreichen dass egal wie hoch die Auslastung ist, die Memory Resourcen des Systems immer optimal ausgenutzt werden? Wieviel Speicher erhält ein Prozess wenn es der einzige ist? Wieviel wenn er einer von tausenden von Prozessen ist?

4.7.

Explain the terms external and internal fragmentation using the memory subsystem. What can be done against both kinds of fragmentation?

4.8.

Erklären Sie die Begriffe externe und interne Fragmentierung am Beispiel des memory subsystems. Was kann gegen beide Formen von Fragmentierung getan werden?

4.9.

You have to keep metadata for a large number of resources of the same size in the smallest possible memory area. What kind of control structure do you use?

4.10.

Sie sollen metadaten zu einer grossen Zahl von Resourcen gleicher Grösse auf kleinstmöglichem Raum verwalten. Welche Verwaltungsstruktur nehmen Sie?

4.11.

Give some reasons for the introduction of virtual memory. Why are there still systems without virtual memory support?

4.12.

Nennen Sie einige Gründe für die Einführung von virtuellem Memory. Warum gibt es noch immer System ohne solches Memory?

4.13.

Your program is running on a system with virtual memory. It should exchange data with another program running on the same system. What are your options to achieve this? Discuss advantages and disadvantages with each solution.

4.14.

Ihr Programm läuft auf einem System mit virtual memory. Es sollte daten mit einem anderen Programm auf dem gleichen System austauschen. Was sind Ihre optionen diesbezüglich. Diskutieren Sie Vor- und Nachteile der jeweiligen Lösung.

4.15.

Draw a diagram that explains why a program cannot leave its address room if virtual memory is used. Show the mapping of virtual addressses to physical memory via MMU and page tables.

4.16.

Zeichnen Sie ein Diagramm das erklärt warum ein Programm seinen Adressraum nicht verlassen kann wenn virtual memory benutzt wird. Zeigen Sie das Mapping von virtuellen Adressen auf physisches Memory via MMU und page tables.

4.17.

The first and second level caches in a system: Is their content accessed through virtual or physical addresses?

4.18.

Werden der first und second level cache in einem system mit virtuellen oder physischen Adressen angesteuert?

4.19.

A large video-processing applications reads lots of data from disk. Show how the read system call works. How many times are the contents from the disk copied in memory until they reach the application? How could the memory subsystem be used to avoid unnecessary copies of data? Explain why without memory mapping tricks the copies between kernel and user mode are necessary.

4.20.

Eine grosse Video-Application liest sehr viele Daten von der Disk. Zeigen Sie wie der Read system call funktioniert mit dem die Daten geholt werden können. Wie oft werden die Daten auf dem Weg von der harddisk zur Application kopiert? Wie könnte man das memory subsystem nutzen um unnötige Kopien zu vermeiden? Erklären Sie dass ohne memory management tricks die Kopien zwischen Kernel und user modus nötig sind.

4.21.

Why is the memory management unit implemented in hardware? Could its functionality be done in software as well - even at a lower performance?

4.22.

Warum wird einen Memory management unit als hardware realisiert? Könnte die gleiche Funktionalität auch in Software erreicht werden - bei weniger performance?

4.23.

Big memory blocks seem to be better than smaller blocks. They need less control structure information and take more data in one go. What is the disadvantage of larger block sizes? Is there an optimal block size for all applications and systems? Which blocksize would you use for an image or video server? Which one for a mail server?

4.24.

Grosse Memory Blöcke scheinen besser zu sein als kleine. Sie brauchen weniger Verwaltungsinformation und nehmen mehr Daten auf einmal auf. Was ist der Nachteil grosser Blöcke? Gibt es eine optimale Blockgrösse für alle Applikationen und Systeme? Welche Blockgrösse würden Sie für einen Bilder oder Videoserver nehmen? Welche für einen mailserver?

4.25.

How many pages of 4KB are available in a system with one MB of Ram? What address size does your CPU need to address all physical memory without bank switching? Show how you split the virtual address into the page table index and offset given 4KB page size.

4.26.

Wieviele pages der Grösse 4KB gibt es in einem System mit einem MB RAM? Welche Addressgrösse braucht Ihre CPU um das ganze physische Ram zu addressieren (ohne bank switching)? Zeigen Sie wie Sie die virtuellen Adressen aufspalten in einen Page table index sowie offset bei einer page size von 4KB.

4.27.

Explain the concept of sparse maps to control memory resources of potentially huge size. Where else do you find the same concepts used?

4.28.

Erklären Sie das Konzept der Sparse Maps um Memory Resourcen von potentiell riesiger Grösse zu verwalten. Wo finden Sie das Konzept sonst noch?

4.29.

In a system using virtual memory there is usually no need to specify the stack size for a program. Why?

4.30.

In einem System mit virtuellem Memory braucht man üblicherweise keine Grösse für den Programmstack angeben. Warum?

4.31.

The page daemon is an integral part of most unix-like operating systems. But it runs outside the OS kernel as a service in user mode. What would happen if the page daemon process dies (and the OS would not detect this)?

4.32.

Der page daemon ist ein integraler Teil der meisten Unix-artigen Betriebssysteme. Aber er läuft ausserhalb des OS Kernels als ein Service im User modus. Was würde passieren wenn der page daemon Prozess stirbt (und das OS bemerkt es nicht)?

4.33.

Why are free pages created by a permanently running process? This means that some pages are freed without being needed immediately. This wastes resources because eventually they have to be read again from disk or swap space. Wouldn't it be better to look for free pages only when a free page is really needed?

4.34.

Wieso werden freie Pages durch einen permanent laufenden Prozess erzeugt? Dadurch werden ja Pages auch freigegeben ohne dass sie sofort gebraucht werden, d.h. es werden Resourcen verschwendet denn die freigegebenen Pages müssen ja eventuell wieder geladen werden bzw. sogar vorher gespeichert werden. Wäre es nicht besser erst nach freien Pages zu suchen wenn wirklich eine freie Page gebraucht wird?

4.35.

Why do we need a two-handed clock algorithm for large memories?

4.36.

Warum braucht man einen zweihändigen Clock Algorithmus für grosse Speicher?

4.37.

Somebody notices that different programs might need different memory block sizes and decides to build a memory management unit which supports different page sizes. What is your comment on this idea?

4.38.

Jemand bemerkt dass verschiedene Programme verschiedene memory Block Grössen brauchen und beschliesst einen Memory Management Unit zu bauen die verschiedene Page Grössen unterstützt. Was meinen Sie dazu?

4.39.

Butler Lampson in his paper "hints on computer systems design" mentions a couple of design errors. List some of them.

4.40.

In seinem Paper "hints on computer system design" erwähnt Butler Lampson einige Design Fehler. Nennen Sie einige.

Chapter 5. Process and Synchronization

Zwei Prozesse benutzen shared memory um Daten auszutauschen. Warum brauchen Sie in C/C++ z.B. das Keyword "volatile" für die Prozesssynchronisation?
5.1. Two processes use shared memory to exchange data. Why do you need the keyword "volatile" e.g. in C/C++ programs when you design the process synchronization?
5.2. Many modern applications consist of several processes instead of one big process. What are the advantages and disadvantages of using several processes for software architecture, maintenance, use of multiple CPUs?
5.3. Viele moderne Applikationen bestehen aus mehreren Prozessen statt einem einzigen grossen Prozess. Was sind die Vorteile und Nachteile mehrerer Prozesse in Bezug auf Software Architektur, Wartung und Benutzung mehrerer CPUs?
5.4. A process is called a heavyweight resource of the operating resource. Name some resources that belong to the process state. Do you think that the identity of the user who started the process should also be kept in the process state? Why?
5.5. Man nennt Prozesse schwergewichtige Resourcen eines Betriebsystems. Nennen Sie einige Resourcen die zum Prozess Status gehören. Gehört die Identität des Users der den Prozess gestartet hat dazu? Warum?
5.6. When memory gets scarce operating systems can swap complete processes to a storage medium to make room. Is the process table swapped out as well?
5.7. Wenn Memory knapp wird dann kann ein Operating System einen kompletten Prozess auf einem Speichermedium auslagern. Wird auch die Prozesstabelle ausgelagert?
5.8. Your program allocates several program elements. Given the list of elements, in which memory segment do they end up?
5.9. Ihr Programm allokiert verschiedene Programmelemente. In welchem Memorysegment enden die folgenden Elemente?
5.10. Why is the creation of a new process frequently split into two system calls? Is the second always used?
5.11. Warum wird die Erzeugung eines neuen Prozesses meist auf zwei Systemcalls aufgeteilt. Wird der zweite immer benutzt?
5.12. You want to speed-up your image processing application which reads a large image and converts it into a black and white version. The application starts, reads the image and then uses the fork system call. Will the child processes be able to use the image of the parent process? A copy? What happens when the results of the processing needs to be combined to form the new image?
5.13. Sie wollen Ihre image processing Applikation schneller machen. Die Applikation liest ein grosses Image ein und konvertiert es in ein Schwarz-Weiss Bild. Die Applikation started und liest das Bild ein, danach benutzt sie den fork System Call. Können die Kindprozesse das Bild des Vaterprozesses im Speicher benutzen? Eine Kopie? Was passiert wenn die Resultate des Processings kombiniert werden müssen zum neuen Bild?
5.14. Why is it not enough to just remove a process entry from the process table when the process dies (is killed)?
5.15. Warum reicht es nicht einen Prozess der getötet wurde einfach aus der Prozesstabelle zu entfernen?
5.16. Many operating systems offer interprocess communication facilites like pipes, shared memory etc. What can we conclude about the design of those systems?
5.17. Viele Operating Systems bieten Interprozesskommunikation durch verschieden Mechanismen an, z.B: pipes, shared memory etc. Was können wir daraus über das Design dieser Systeme schliessen?
5.18. What are the basic processing steps of a command interpreter (shell)?
5.19. Was sind die hauptsächlichen Verarbeitungsschritte eines Kommandointerpreters (shell)?
5.20. The length of a timeslice can be a function of the workload characteristics on many operating systems. Give a typical length for a multi-user system. Would you change it for a server system? For a highly interactive system? In which direction would you change it for such systems and why?
5.21. Die Länge eines timeslices kann auf vielen Systemen eine Funktion der Arbeitslast sein. Geben Sie eine typische Länge für ein multi-user system an. Würden Sie das ändern für ein server system? Für ein hochgradig interaktives System? In welcher Weise würden Sie es ändern und warum?
5.22. The shorter the timeslice of processes the better the interactive responses for a user. What keeps us from using ultra-short timeslices?
5.23. Je kürzer der Timeslice von Prozessen desto kürzer die Antwortzeiten für User. Was hält uns von ultrakurzen timeslices ab?
5.24. A server process with a longer timeslice can work uninterrupted for a longer time. Should a system with several server process use really long timeslices or not?
5.25. Ein server Prozess mit einer langen Timeslice kann längere Zeit ohne Unterbrechung arbeiten. Sollte ein System mit mehreren Server Prozessen eine wirklich lange timeslice benutzen?
5.26. Where are the CPU registers of a process stored during a context switch? What else needs to be stored so that a process can continue later? Will the content of the CPU cache be saved?
5.27. Wo werden die CPU Register eines Prozesses während eines context switches gespeichert? Was muss sonst noch gespeichert werden damit ein Prozess später fortgesetzt werden kann? Wird der Inhalt des CPU cache gespeichert?
5.28. The way user processes are pre-empted differ across operating systems. What kind of applications are typically run by systems with the following mechanisms:
5.29. Die Art und Weise wie Userprozesse per-empted werden unterscheidet sich je nach Operating System. Welche Art von Applikationen läuft typischerweise auf Systemen mit den folgenden Mechanismen:
5.30. If an operating system does not pre-empt user processes in user mode: does this mean that those processes can run forever? When are those processes suspended?
5.31. Wenn ein Operating System Userprozesse nicht per-empted: Heisst das dass diese Prozess für immer laufen? Unter welchen Voraussetzungen werden solche Prozesse suspendiert?
5.32. How does a process get from state "running" to state "ready"? How from "running" to "blocked/waiting"?
5.33. Wie kommt ein Prozess vom State "running" in den State "ready"? Wie vom State "running" in den State "blocked/waiting"?
5.34. The process with the highest priority in a realtime system does a read on a harddisk and the data are not ready. Should it be scheduled (put on the waiting list)?
5.35. Der Prozess mit der höchsten Priorität in einem realtime System liest von der Harddisk und die Daten sind nicht bereit. Soll er ge-scheduled (auf die Liste der wartenden Prozesse gesetzt) werden?
5.36. Processes which have used their timeslice are in most systems pre-empted. How does the kernel know when it is time to do a context switch?
5.37. Prozesse die ihre Timeslice aufgebraucht haben werden in den meisten Systemen suspendiert. Wie weiss der Kernel dass es Zeit für einen Context Switch ist?
5.38. An application process uses user level threads. Will the application process benefit from running on a system with more CPUs? Explain why or why not.
5.39. Ein Appplikationsprozess benutzt user-level Threads. Wird der Applikationsprozess von einem System mit mehreren CPUs profitieren? Erklären Sie warum oder warum nicht.
5.40. One thread in a mulit-threaded application executes a program bug which causes wild memory accesses and changes. Will the other threads be affected? A process executes the same bug - what happens to the other processes on the system?
5.41. A process or thread executes an endless loop on a system with kernel threads and pre-emption. Are the other processes affected? The other threads? Design a scheduling policy that tries to minimize the overall effects.
5.42. Ein Prozess oder Thread führt eine Enschlosschleife auf einem System mit kernel threads und Pre-emption aus. Sind die anderen Prozesse betroffen? Die anderen Threads? Entwerfen Sie eine Scheduling Strategie die versucht den Effekt zu minimieren.
5.43. You are designing a java virtual machine. Would you rather use an operating system with kernel or user threads or both? Explain why
5.44. Sie entwerfen eine Java virtual Machine. Würden Sie lieber ein Operating System mit kernel threads, user threads oder beidem verwenden? Erklären Sie warum.
5.45. Most modern applications with GUIs use multithreading internally. What is the architectural reason for this? Explain using an application that does database requests and presents the results to a user.
5.46. Die meisten modernen Applikationen mit GUIs benutzen intern multi-threading. Was ist der architektonische Grund dafür? Erklären Sie das anhand einer Applikation die Datenbankrequests macht und die Resultate einem User präsentiert.
5.47. Fairness with respect to CPU time is important in many Operating Systems, especially multi-user systems. Is the fairness based on processes or users?
5.48. Fairness in Bezug auf CPU Zuteilung ist wichtig in vielen Operating Systems, besonders mulit-user systemen.Was wird in diesen Systemen fair behandelt: Prozesse oder User?
5.49. Given a web server and a crypto module: which one is probably I/O bound and which one CPU (compute) bound? Why do those applications mix well on multi-tasking systems? Which application should have a higher priority?
5.50. Gegeben sind ein web server und ein crypto Modul. Welches ist wahrscheinlich I/O bound und welches CPU (compute) bound. Warum lassen sich solche Applikationen gut mischen auf einem multi-tasking system? Welche Applikation sollte eine höhere Priorität haben?
5.51. The java or C++ expression i++; : is it atomic or not (with i being an integer variable)? Two threads execute this expression in the same process and after 100 executions by each thread the result value is below the expected value. What happened?
5.52. Ist die java oder c++ expression i++ atomar oder nicht ( i ist eine Integer Variable)? Zwei Threads führen diese Expression im gleichen Prozess aus und nach 100 Durchläufen pro Thread ist der Wert von i unter dem erwarteten. Was ist passiert?
5.53. Member fields of an object can be tagged as "private". Does this protect those variables from being accessed by two threads at the same time?
5.54. Member Variablen eines Objekts können als "private" markiert werden. Schützt das diese Variablen davor von 2 Threads gleichzeitig manipuliert zu werden?
5.55. A method uses primitive parameters and allocates local variables. It allocates objects with new and stores those references. It writes to static variables. The method should now become part of a multithreaded program. Where do you need to make changes to make the method re-entrant (thread-safe)?
5.56. Eine Methode verwendet Parameter (primitive Typen) und allokiert lokale Variablen. Sie allokiert Objekte mit "new" und speichert die Refernzen. Sie schreibt in statische Variablen. Jetzt soll die Methode Teil eines multi-threaded Programmes werden. Wo müssen Sie Auml;nderungen machen um die Methode re-entrant (thread-safe) zu machen?
5.57. If two threads try to access a common resource only one can get the resource if you want to keep a consistent system. What should happen with the thread that did not get access? Give some alternative mechanisms and discuss their advantages and disadvantages.
5.58. Wenn zwei threads gleichzeitig auf eine gemeinsame Resource zugreifen wollen dann kann sie nur einer bekommen wenn die Systemkonsistenz bewahrt werden soll. Was soll mit dem Thread passieren der keinen Zugriff bekommen hat? Nennen Sie einige alternativen und diskutieren Sie Vor- und Nachteile.
5.59. Experienced Java programmers use notifyAll() instead of just notify(); Explain.
5.60. Erfahrene java Programmierer verwenden notifyAll() statt nur notify(). Erklären Sie warum.
5.61. Explain the concept of a guarded wait. Why must a thread that was just woken up check the wait-condition once again before accessing the resource?
5.62. Erklären Sie das Konzept eines "guarded wait". Warum muss ein Thread der gerade aufgeweckt wurde nochmals die Wartebedingung prüfen bevor er Zugriffe auf die Resource macht?
5.63. The Java gods decided to tag the thread.stop() Method (kill) as deprecated. Why did they think killing threads was a bad idea?
5.64. Die Java Götter haben sich entschieden die thread.stop() Methode (kill) für veraltet zu erklären. Warum dachten sie dass das Töten eine Threads eine schlechte Idee sei?
5.65. You have inserted only a few "synchronized" statements into your program. Suddenly it runs correctly but much slower than before. Why?
5.66. Sie haben einige wenige "synchronized" statements in ihr Programm eingefügt. Es läuft plötzlich korrekt aber viel langsamer als bevor. Was ist passiert?
5.67. The methods to stop or kill a thread have been deprecated. Why?

Zwei Prozesse benutzen shared memory um Daten auszutauschen. Warum brauchen Sie in C/C++ z.B. das Keyword "volatile" für die Prozesssynchronisation?

5.1.

Two processes use shared memory to exchange data. Why do you need the keyword "volatile" e.g. in C/C++ programs when you design the process synchronization?

5.2.

Many modern applications consist of several processes instead of one big process. What are the advantages and disadvantages of using several processes for software architecture, maintenance, use of multiple CPUs?

5.3.

Viele moderne Applikationen bestehen aus mehreren Prozessen statt einem einzigen grossen Prozess. Was sind die Vorteile und Nachteile mehrerer Prozesse in Bezug auf Software Architektur, Wartung und Benutzung mehrerer CPUs?

5.4.

A process is called a heavyweight resource of the operating resource. Name some resources that belong to the process state. Do you think that the identity of the user who started the process should also be kept in the process state? Why?

5.5.

Man nennt Prozesse schwergewichtige Resourcen eines Betriebsystems. Nennen Sie einige Resourcen die zum Prozess Status gehören. Gehört die Identität des Users der den Prozess gestartet hat dazu? Warum?

5.6.

When memory gets scarce operating systems can swap complete processes to a storage medium to make room. Is the process table swapped out as well?

5.7.

Wenn Memory knapp wird dann kann ein Operating System einen kompletten Prozess auf einem Speichermedium auslagern. Wird auch die Prozesstabelle ausgelagert?

5.8.

Your program allocates several program elements. Given the list of elements, in which memory segment do they end up?

Object allocated using "new" (Java or C++)
A String literal "This is a string"
Variables declard constant.
A function or method call
An integer variable allocated inside a method or function call
Object inside method call (compare Java and C++)
A large array of charactes without data in C
5.9.

Ihr Programm allokiert verschiedene Programmelemente. In welchem Memorysegment enden die folgenden Elemente?

Ein Objekt mit "new" allokiert (in Java oder C++)
Ein String Literal "This is a string"
Konstanten
Ein Funktions- oder Methodenaufruf
Eine Integervariable allokiert innerhalb eines Funktions- oder Methodenaufrufs
Ein Objekt innerhalb eines Methodenaufrufs (Vergleiche Java und C++)
Ein grosser Array von Characters ohne daten in C
5.10.

Why is the creation of a new process frequently split into two system calls? Is the second always used?

5.11.

Warum wird die Erzeugung eines neuen Prozesses meist auf zwei Systemcalls aufgeteilt. Wird der zweite immer benutzt?

5.12.

You want to speed-up your image processing application which reads a large image and converts it into a black and white version. The application starts, reads the image and then uses the fork system call. Will the child processes be able to use the image of the parent process? A copy? What happens when the results of the processing needs to be combined to form the new image?

5.13.

Sie wollen Ihre image processing Applikation schneller machen. Die Applikation liest ein grosses Image ein und konvertiert es in ein Schwarz-Weiss Bild. Die Applikation started und liest das Bild ein, danach benutzt sie den fork System Call. Können die Kindprozesse das Bild des Vaterprozesses im Speicher benutzen? Eine Kopie? Was passiert wenn die Resultate des Processings kombiniert werden müssen zum neuen Bild?

5.14.

Why is it not enough to just remove a process entry from the process table when the process dies (is killed)?

5.15.

Warum reicht es nicht einen Prozess der getötet wurde einfach aus der Prozesstabelle zu entfernen?

5.16.

Many operating systems offer interprocess communication facilites like pipes, shared memory etc. What can we conclude about the design of those systems?

5.17.

Viele Operating Systems bieten Interprozesskommunikation durch verschieden Mechanismen an, z.B: pipes, shared memory etc. Was können wir daraus über das Design dieser Systeme schliessen?

5.18.

What are the basic processing steps of a command interpreter (shell)?

5.19.

Was sind die hauptsächlichen Verarbeitungsschritte eines Kommandointerpreters (shell)?

5.20.

The length of a timeslice can be a function of the workload characteristics on many operating systems. Give a typical length for a multi-user system. Would you change it for a server system? For a highly interactive system? In which direction would you change it for such systems and why?

5.21.

Die Länge eines timeslices kann auf vielen Systemen eine Funktion der Arbeitslast sein. Geben Sie eine typische Länge für ein multi-user system an. Würden Sie das ändern für ein server system? Für ein hochgradig interaktives System? In welcher Weise würden Sie es ändern und warum?

5.22.

The shorter the timeslice of processes the better the interactive responses for a user. What keeps us from using ultra-short timeslices?

5.23.

Je kürzer der Timeslice von Prozessen desto kürzer die Antwortzeiten für User. Was hält uns von ultrakurzen timeslices ab?

5.24.

A server process with a longer timeslice can work uninterrupted for a longer time. Should a system with several server process use really long timeslices or not?

5.25.

Ein server Prozess mit einer langen Timeslice kann längere Zeit ohne Unterbrechung arbeiten. Sollte ein System mit mehreren Server Prozessen eine wirklich lange timeslice benutzen?

5.26.

Where are the CPU registers of a process stored during a context switch? What else needs to be stored so that a process can continue later? Will the content of the CPU cache be saved?

5.27.

Wo werden die CPU Register eines Prozesses während eines context switches gespeichert? Was muss sonst noch gespeichert werden damit ein Prozess später fortgesetzt werden kann? Wird der Inhalt des CPU cache gespeichert?

5.28.

The way user processes are pre-empted differ across operating systems. What kind of applications are typically run by systems with the following mechanisms:

User processes are not pre-empted by the operating system
Processes running in user mode can be pre-empted by the OS
Processes running in kernel mode can be pre-empted by the OS
5.29.

Die Art und Weise wie Userprozesse per-empted werden unterscheidet sich je nach Operating System. Welche Art von Applikationen läuft typischerweise auf Systemen mit den folgenden Mechanismen:

Userprozesse werden nicht vom OS per-empted
Prozess die im User Mode laufen können vom OS pre-empted werden
Prozesse die im kernel mode laufen können vom OS pre-empted werden.
5.30.

If an operating system does not pre-empt user processes in user mode: does this mean that those processes can run forever? When are those processes suspended?

5.31.

Wenn ein Operating System Userprozesse nicht per-empted: Heisst das dass diese Prozess für immer laufen? Unter welchen Voraussetzungen werden solche Prozesse suspendiert?

5.32.

How does a process get from state "running" to state "ready"? How from "running" to "blocked/waiting"?

5.33.

Wie kommt ein Prozess vom State "running" in den State "ready"? Wie vom State "running" in den State "blocked/waiting"?

5.34.

The process with the highest priority in a realtime system does a read on a harddisk and the data are not ready. Should it be scheduled (put on the waiting list)?

5.35.

Der Prozess mit der höchsten Priorität in einem realtime System liest von der Harddisk und die Daten sind nicht bereit. Soll er ge-scheduled (auf die Liste der wartenden Prozesse gesetzt) werden?

5.36.

Processes which have used their timeslice are in most systems pre-empted. How does the kernel know when it is time to do a context switch?

5.37.

Prozesse die ihre Timeslice aufgebraucht haben werden in den meisten Systemen suspendiert. Wie weiss der Kernel dass es Zeit für einen Context Switch ist?

5.38.

An application process uses user level threads. Will the application process benefit from running on a system with more CPUs? Explain why or why not.

5.39.

Ein Appplikationsprozess benutzt user-level Threads. Wird der Applikationsprozess von einem System mit mehreren CPUs profitieren? Erklären Sie warum oder warum nicht.

5.40.

One thread in a mulit-threaded application executes a program bug which causes wild memory accesses and changes. Will the other threads be affected? A process executes the same bug - what happens to the other processes on the system?

5.41.

A process or thread executes an endless loop on a system with kernel threads and pre-emption. Are the other processes affected? The other threads? Design a scheduling policy that tries to minimize the overall effects.

5.42.

Ein Prozess oder Thread führt eine Enschlosschleife auf einem System mit kernel threads und Pre-emption aus. Sind die anderen Prozesse betroffen? Die anderen Threads? Entwerfen Sie eine Scheduling Strategie die versucht den Effekt zu minimieren.

5.43.

You are designing a java virtual machine. Would you rather use an operating system with kernel or user threads or both? Explain why

5.44.

Sie entwerfen eine Java virtual Machine. Würden Sie lieber ein Operating System mit kernel threads, user threads oder beidem verwenden? Erklären Sie warum.

5.45.

Most modern applications with GUIs use multithreading internally. What is the architectural reason for this? Explain using an application that does database requests and presents the results to a user.

5.46.

Die meisten modernen Applikationen mit GUIs benutzen intern multi-threading. Was ist der architektonische Grund dafür? Erklären Sie das anhand einer Applikation die Datenbankrequests macht und die Resultate einem User präsentiert.

5.47.

Fairness with respect to CPU time is important in many Operating Systems, especially multi-user systems. Is the fairness based on processes or users?

5.48.

Fairness in Bezug auf CPU Zuteilung ist wichtig in vielen Operating Systems, besonders mulit-user systemen.Was wird in diesen Systemen fair behandelt: Prozesse oder User?

5.49.

Given a web server and a crypto module: which one is probably I/O bound and which one CPU (compute) bound? Why do those applications mix well on multi-tasking systems? Which application should have a higher priority?

5.50.

Gegeben sind ein web server und ein crypto Modul. Welches ist wahrscheinlich I/O bound und welches CPU (compute) bound. Warum lassen sich solche Applikationen gut mischen auf einem multi-tasking system? Welche Applikation sollte eine höhere Priorität haben?

5.51.

The java or C++ expression

 i++; 

: is it atomic or not (with i being an integer variable)? Two threads execute this expression in the same process and after 100 executions by each thread the result value is below the expected value. What happened?

5.52.

Ist die java oder c++ expression

 i++ 

atomar oder nicht ( i ist eine Integer Variable)? Zwei Threads führen diese Expression im gleichen Prozess aus und nach 100 Durchläufen pro Thread ist der Wert von i unter dem erwarteten. Was ist passiert?

5.53.

Member fields of an object can be tagged as "private". Does this protect those variables from being accessed by two threads at the same time?

5.54.

Member Variablen eines Objekts können als "private" markiert werden. Schützt das diese Variablen davor von 2 Threads gleichzeitig manipuliert zu werden?

5.55.

A method uses primitive parameters and allocates local variables. It allocates objects with new and stores those references. It writes to static variables. The method should now become part of a multithreaded program. Where do you need to make changes to make the method re-entrant (thread-safe)?

5.56.

Eine Methode verwendet Parameter (primitive Typen) und allokiert lokale Variablen. Sie allokiert Objekte mit "new" und speichert die Refernzen. Sie schreibt in statische Variablen. Jetzt soll die Methode Teil eines multi-threaded Programmes werden. Wo müssen Sie Auml;nderungen machen um die Methode re-entrant (thread-safe) zu machen?

5.57.

If two threads try to access a common resource only one can get the resource if you want to keep a consistent system. What should happen with the thread that did not get access? Give some alternative mechanisms and discuss their advantages and disadvantages.

5.58.

Wenn zwei threads gleichzeitig auf eine gemeinsame Resource zugreifen wollen dann kann sie nur einer bekommen wenn die Systemkonsistenz bewahrt werden soll. Was soll mit dem Thread passieren der keinen Zugriff bekommen hat? Nennen Sie einige alternativen und diskutieren Sie Vor- und Nachteile.

5.59.

Experienced Java programmers use notifyAll() instead of just notify(); Explain.

5.60.

Erfahrene java Programmierer verwenden notifyAll() statt nur notify(). Erklären Sie warum.

5.61.

Explain the concept of a guarded wait. Why must a thread that was just woken up check the wait-condition once again before accessing the resource?

5.62.

Erklären Sie das Konzept eines "guarded wait". Warum muss ein Thread der gerade aufgeweckt wurde nochmals die Wartebedingung prüfen bevor er Zugriffe auf die Resource macht?

5.63.

The Java gods decided to tag the thread.stop() Method (kill) as deprecated. Why did they think killing threads was a bad idea?

5.64.

Die Java Götter haben sich entschieden die thread.stop() Methode (kill) für veraltet zu erklären. Warum dachten sie dass das Töten eine Threads eine schlechte Idee sei?

5.65.

You have inserted only a few "synchronized" statements into your program. Suddenly it runs correctly but much slower than before. Why?

5.66.

Sie haben einige wenige "synchronized" statements in ihr Programm eingefügt. Es läuft plötzlich korrekt aber viel langsamer als bevor. Was ist passiert?

5.67.

The methods to stop or kill a thread have been deprecated. Why?

Chapter 6. C Language Introduction

6.1. Name 5 of the main differences between C and Java
6.2. Nennen Sie 5 der Hauptunterschiede zwischen C und Java
6.3. According to common folklore C is much faster than Java. Can you give some reasons for this? What is the number one performance problem of many Java programs?
6.4. Der allgemeinen Folklore nach ist C viel schneller als Java. Nennen Sie dafür einige Gründe. Was ist das Nummer eins Performance Problem vieler Java Programme?
6.5. Why can you carry Java Programs to different machines and run them. Why does this not work for C executables? What needs to happen with C Source code on different operating systems or different CPUs?
6.6. Warum können Sie Java Programme auf unterschiedliche Maschinen tragen und ausführen? Warum funktioniert das nicht mit C Programmen? Was muss mit C Programmen passieren wenn sie auf verschiedenen Operating Systems oder CPUs laufen sollen?
6.7. C allows variable parameters in functions. A function with variable parameters has ... as its argument list.Could Java do this as well? Think about the OO mechanisms of overloading and overwriting. Could it theoretically be done?
6.8. C erlaubt variable Parameter in Funktionen. Eine Funktion mit variablen Parametern hat ... als Argumentliste. Könnte das Java auch? Denken Sie an die OO Mechanismen des Ügberladens und Uuml;berschreibens. Wäre es theoretisch möglich?
6.9. C knows a type to describe data structures. It is called "struct". How could you simulate a struct in java?
6.10. C kennt den Typ "struct" zur Beschreibung von Datenstrukturen. Wie können Sie diesen Typ in Java simulieren?
6.11. Lets say that C decides to introduce a uniform integer size of 32 bit. What would this mean for a 16-bit embedded control platform, a 32-bit PC and a 64 bit alpha workstation?
6.12. Nehmen wir an C entscheidet sich für die Einführung eines einheitlichen Standards für die Grösse von Integer Werten als 32 bit breit. Was bedeutet das für eine 16-bit embedded control platform? Für einen 32-bit PC und eine 64-bit Alpha Workstation?
6.13. Pointers are rareley used in OO languages. Can you give a reason why? Is the concept of a reference in Java so much better? What makes it more acceptable?
6.14. Pointer werden selten in OO Sprachen unterstützt. Können Sie einen Grund dafür nennen? Ist das Konzept von Referenzen in Java so viel besser? Was macht es akzeptabler?
6.15. Compare Strings in C and Java. How is the length of a string determined? Java does not allow string modification. What kind of optimization is possible by doing this?
6.16. Vergleichen Sie Strings in C und Java. Wie wird die Länge eines Strings bestimmt? Java erlaubt es nicht einen String zu ändern -welche Optimierung ist dadurch möglich?
6.17. C allows all variable types to be allocated either on the stack or on the heap. Compare this with Java. Which allocation goes usually faster?
6.18. C erlaubt es alle Variablentypen entweder auf dem Stack oder dem Heap zu allokieren. Vergleichen Sie das mit Java. Was geht normalerweise schneller?
6.1.

Name 5 of the main differences between C and Java

6.2.

Nennen Sie 5 der Hauptunterschiede zwischen C und Java

6.3.

According to common folklore C is much faster than Java. Can you give some reasons for this? What is the number one performance problem of many Java programs?

6.4.

Der allgemeinen Folklore nach ist C viel schneller als Java. Nennen Sie dafür einige Gründe. Was ist das Nummer eins Performance Problem vieler Java Programme?

6.5.

Why can you carry Java Programs to different machines and run them. Why does this not work for C executables? What needs to happen with C Source code on different operating systems or different CPUs?

6.6.

Warum können Sie Java Programme auf unterschiedliche Maschinen tragen und ausführen? Warum funktioniert das nicht mit C Programmen? Was muss mit C Programmen passieren wenn sie auf verschiedenen Operating Systems oder CPUs laufen sollen?

6.7.

C allows variable parameters in functions. A function with variable parameters has ... as its argument list.Could Java do this as well? Think about the OO mechanisms of overloading and overwriting. Could it theoretically be done?

6.8.

C erlaubt variable Parameter in Funktionen. Eine Funktion mit variablen Parametern hat ... als Argumentliste. Könnte das Java auch? Denken Sie an die OO Mechanismen des Ügberladens und Uuml;berschreibens. Wäre es theoretisch möglich?

6.9.

C knows a type to describe data structures. It is called "struct". How could you simulate a struct in java?

6.10.

C kennt den Typ "struct" zur Beschreibung von Datenstrukturen. Wie können Sie diesen Typ in Java simulieren?

6.11.

Lets say that C decides to introduce a uniform integer size of 32 bit. What would this mean for a 16-bit embedded control platform, a 32-bit PC and a 64 bit alpha workstation?

6.12.

Nehmen wir an C entscheidet sich für die Einführung eines einheitlichen Standards für die Grösse von Integer Werten als 32 bit breit. Was bedeutet das für eine 16-bit embedded control platform? Für einen 32-bit PC und eine 64-bit Alpha Workstation?

6.13.

Pointers are rareley used in OO languages. Can you give a reason why? Is the concept of a reference in Java so much better? What makes it more acceptable?

6.14.

Pointer werden selten in OO Sprachen unterstützt. Können Sie einen Grund dafür nennen? Ist das Konzept von Referenzen in Java so viel besser? Was macht es akzeptabler?

6.15.

Compare Strings in C and Java. How is the length of a string determined? Java does not allow string modification. What kind of optimization is possible by doing this?

6.16.

Vergleichen Sie Strings in C und Java. Wie wird die Länge eines Strings bestimmt? Java erlaubt es nicht einen String zu ändern -welche Optimierung ist dadurch möglich?

6.17.

C allows all variable types to be allocated either on the stack or on the heap. Compare this with Java. Which allocation goes usually faster?

6.18.

C erlaubt es alle Variablentypen entweder auf dem Stack oder dem Heap zu allokieren. Vergleichen Sie das mit Java. Was geht normalerweise schneller?

Chapter 7. C Language Tooling

7.1. Give an example for conditional compilation using #ifdef etc.
7.2. Geben Sie ein Beispiel für bedingtes Compilieren mit #ifdef etc.
7.3. A preprocessor is one way to adjust programs to different environments or purposes. Explain what the C preprocessor does. Would you like to have one in Java? Can this be one reason for the speed differences of C and Java programs? Think about WHEN the adjustment happens in both languages.
7.4. Ein Preprozessor ist eine Möglichkeit Programme an unterschiedliche Umgebungen oder Zwecke anzupassen. Erklären Sie was der C Preprozessor macht. Hätten Sie gerne einen in Java? Könnte das eine der Ursachen für die Unterschiede in der Geschwindigkeit von C und java Programmen sein? Denken Sie an den Zeitpunkt WANN die Anpassung in beiden Sprachen passiert.
7.5. Describe the process of compiling a C source file. Name the Subprograms which are used by the compiler to generate the executable. Which Program resolves unresolved externals?
7.6. Beschreiben Sie den Prozess der Kompilierung eines C files. Nennen Sie die Subprogramme die vom Compiler dazu benutzt werden. Welches Programm löst offene Referenzen auf?
7.1.

Give an example for conditional compilation using #ifdef etc.

7.2.

Geben Sie ein Beispiel für bedingtes Compilieren mit #ifdef etc.

7.3.

A preprocessor is one way to adjust programs to different environments or purposes. Explain what the C preprocessor does. Would you like to have one in Java? Can this be one reason for the speed differences of C and Java programs? Think about WHEN the adjustment happens in both languages.

7.4.

Ein Preprozessor ist eine Möglichkeit Programme an unterschiedliche Umgebungen oder Zwecke anzupassen. Erklären Sie was der C Preprozessor macht. Hätten Sie gerne einen in Java? Könnte das eine der Ursachen für die Unterschiede in der Geschwindigkeit von C und java Programmen sein? Denken Sie an den Zeitpunkt WANN die Anpassung in beiden Sprachen passiert.

7.5.

Describe the process of compiling a C source file. Name the Subprograms which are used by the compiler to generate the executable. Which Program resolves unresolved externals?

7.6.

Beschreiben Sie den Prozess der Kompilierung eines C files. Nennen Sie die Subprogramme die vom Compiler dazu benutzt werden. Welches Programm löst offene Referenzen auf?

Chapter 8. C Language Runtime

8.1. A function takes both a pointer to a string and an integer variable as parameters. Explain the concepts of call by reference and call by value using this function. Draw a diagram of the stack during the function call. Where are the parameters? Where are the original values?
8.2. Eine Funktion nimmt sowohl einen Stringpointer als auch eine Integer Variable als Parameter. Erklären Sie die Konzepte Call by reference und Call by value an diesem Beispiel. Zeichnen Sie ein Diagram des Stacks während des Funktionsaufrufes. Wo liegen die Parameter? Wo die originalen Werte.
8.1.

A function takes both a pointer to a string and an integer variable as parameters. Explain the concepts of call by reference and call by value using this function. Draw a diagram of the stack during the function call. Where are the parameters? Where are the original values?

8.2.

Eine Funktion nimmt sowohl einen Stringpointer als auch eine Integer Variable als Parameter. Erklären Sie die Konzepte Call by reference und Call by value an diesem Beispiel. Zeichnen Sie ein Diagram des Stacks während des Funktionsaufrufes. Wo liegen die Parameter? Wo die originalen Werte.

Chapter 9. Computer Organization

Events

1. Explain the concepts of polling vs. interrupts. Which does perform better? Under what circumstances would you decide to use interrupts?
1.

Explain the concepts of polling vs. interrupts. Which does perform better? Under what circumstances would you decide to use interrupts?

Performance

1. Compare programmed I/O with Direct Memory Access (DMA) with respect to performance.
1.

Compare programmed I/O with Direct Memory Access (DMA) with respect to performance.

System Architecture

1. Draw a diagram of a small computers architecture with memory bus, I/O controller and Graphics bus. Why are there several bus systems involved?
2. Explain the concept of bootstrapping an operating system. Use the PC BIOS to explain how it works.
3. The timer chip on your PC motherboard has died. What are the consequences?
1.

Draw a diagram of a small computers architecture with memory bus, I/O controller and Graphics bus. Why are there several bus systems involved?

2.

Explain the concept of bootstrapping an operating system. Use the PC BIOS to explain how it works.

3.

The timer chip on your PC motherboard has died. What are the consequences?

Application Design

1. You are supposed to write an application for a hand-held device. It turns out that this device does not sport a memory management unit (MMU). What are the consequences for your application?
1.

You are supposed to write an application for a hand-held device. It turns out that this device does not sport a memory management unit (MMU). What are the consequences for your application?

Chapter 10. Virtual Machines

Table of Contents

Garbage Collection

Garbage Collection

1. Memory and number of CPU's have increased considerably of the last years. Show the effects of this on garbage collection algorithms.
2. An application with a heavy request load per second and short response times has special garbage collection needs. Which collector do you chose?
3. Is it always the case that allocating short living objects is expensive and long living objects are cheap?
1.

Memory and number of CPU's have increased considerably of the last years. Show the effects of this on garbage collection algorithms.

2.

An application with a heavy request load per second and short response times has special garbage collection needs. Which collector do you chose?

3.

Is it always the case that allocating short living objects is expensive and long living objects are cheap?