2 kleine Fragen...

daniel2000lu

Commodore Special
Mitglied seit
17.12.2004
Beiträge
402
Renomée
0
Standort
Luxembourg
Hallo,

Ich habe 2 kurze Frage bezüglich PC-Systeme.

1. I/O :

Als I/O sind ja Datentransfers u.A. zwischen RAM und HDD bekannt. Ist die I/O abgeschlossen kommt ja die Unterbrechung, diese wird vom Kern gelesen. Doch was passiert dann? Wird dann einfach die nächste I/O in Angriff genommen?

2. Zeitunterbrechung :

In meinem Kurses wird nur sehr kurz als Schlüsselelement die Zeitunterbrechung angesrpcohen. Was hat es damit genau auf sich?

Gruss und Danke im Voraus
 
uih, schwieriges Thema, da man dort sehr weit abschweifen kann.

also mein Senf dazu :)

I/O)
Was meinst Du mit "Kern"? Es gibt auch I/Os zwischen Tastatur und PC, zum Drucker etc. Die haben oft einen eigenen kleinen Puffer und laufen parallel/nebenbei. Mir ist nicht ganz klar, was Du da als Antwort erwartest ?

Zeitunterbrechung
Auch da bin ich mir nicht ganz klar, was Du meinst? Interups?
Dort gibt es 2 Arten:
Einmal die Hardwareseitigen (IRQs) die den wirklichen Datentransfer und die Kontrollen der einzelnen Hardware-Komponenten steuern (Wer darf wann den Datenbus benutzen etc.). Deine Maus z.B. hat einen Hardware IRQ, damit sie i.d.R. immer bedienbar bleibt und nicht mangelnds Beachtung unbenutzbar bleibt.
Die IRQ Zuweisung wird AFAIK durch einen kontroler erledigt.

Die Softwareseitige Zeitunterbrechung nennt man AFAIK auch Zeitscheibe (oder so ähnlich) und ist Aufgabe eines Betriebssystems.
Auch wenn Microsoft schon seit Jahren behauptet Windows könne Programme parallel arbeiten lassen stimmt das im engeren Sinne nicht (*mehr). Letztendlich gibt es nur eine CPU die auch nur einen Prozess versorgen kann.
Welcher Prozess wieviel Zeit zugesagt bekommt, regelt das Betriebssystem
Wartet ein Prozess z.B. auf ein I/O, bedient der Prozessor solange einen anderen Prozess.
Bei windows kann man ein wenig am "Zeitmanagement" rumspielen indem man die Priorität verändert.
Wenn mehrere Prozesse auf CPU-Power warten, werden die Prozesse mit höherer Priorität bevorzugt bedient.
Auch die Dauer einer Zuteilung kann davon beeinflusst werden.
Ein Prozess auf Realtime und einer durchgehend konstanten Auslastung legt damit den gesamten Rechner lahm.

Bei Mehrkern-Rechnern sieht das natürlich wieder etwas anders aus, ich nehme mal an, dass das Betriebssystem einfach mehrere (soviele wie CPUs vorhanden) Zeitscheiben im Einsatz hat.
 
Du musst deine Frage schon etwas konkreter spezifizieren, denn so ist sie zu schwammig und nicht beantwortbar.
 
ich meinte die beiden Fragen bezüglich des Betriebssystemes. Sorry, wusste noch nicht dass dies so ein breites Thema ist:o
 
Hallo,

Ich habe 2 kurze Frage bezüglich PC-Systeme.

1. I/O :

Als I/O sind ja Datentransfers u.A. zwischen RAM und HDD bekannt. Ist die I/O abgeschlossen kommt ja die Unterbrechung, diese wird vom Kern gelesen. Doch was passiert dann? Wird dann einfach die nächste I/O in Angriff genommen?

Das kann so sein (ganz grob gesehen), muss aber nicht. Grundsätzlich sei zu den Interrupts gesagt, dass diese ein Ereignis signalisieren, welches von der Software (nennen wir sie mal Betriebssystem) bearbeitet werden muss. Wann und wie das geschieht, hängt grundsätzlich immer von der jeweiligen Situation ab, und kann pauschal nicht beantwortet werden.
Was die I/O bzgl. der Festplatte angeht, so kann der von dir beschriebene Fall so eintreten, muss aber nicht. Grundsätzlich (und mal sehr vereinfacht) wird vom Betriebssystem (Treiber) ein Request an das Gerät erzeugt und abgesetzt. Ich beschränke mich jetzt mal auf den Fall des DMAs und auch nur lesend, was das ganze einfacher macht. Dazu muss im dem Request nur festgelegt werden, welche Daten (Adressen) auf dem Gerät an welche Stelle in den RAM (auch Adressen) geschafft werden sollen. Das Gerät kann dann die jeweiligen Daten selbstständig ohne Zutun der CPU kopieren. Ist das abgeschlossen wird ein Interrupt generiert, mit dem der CPU mitgeteilt wird, dass der Transfer fertig ist. Hier kann jetzt das Betriebssystem wieder übernehmen, welches den Interrupt ja behandelt. Sind alle gewünschten Daten eingelesen worden, kann es mit der Verarbeitung dieser Daten weiter gehen. Fehlt aus irgend einem Grund für die Weiterverarbeitung der Daten noch etwas, muss halt ein weiterer Request generiert werden. Es hängt ganz von der jeweiligen Situation ab. Der abgesetzte Request, ist jedenfalls fertig.
Schreibend wäre das ganze analog, nur das die Daten halt vom RAM an eine Stelle auf das Gerät kopiert werden.
 
Zurück
Oben Unten