Warum stockt Windows beim Einlegen einer CD?

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

pio modus oder nicht ist interessant, denn wenn ein device kein dma hat, kann es auch nicht das betriebsystem blockieren. das ist wahrscheinlich auch die erklärung, warum es bei martin unter windows stockt, unter linux aber nicht: suse benutzt (zumindest 9.1 - keine ahnung wie es bei 9.3 aussieht) defaultmäßig nur pio modus.

bei pio modus wird per cpu kopiert, im dma modus per externen chip (zb im bios).
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Zaphod hat geschrieben:pio modus oder nicht ist interessant, denn wenn ein device kein dma hat, kann es auch nicht das betriebsystem blockieren. das ist wahrscheinlich auch die erklärung, warum es bei martin unter windows stockt, unter linux aber nicht: suse benutzt (zumindest 9.1 - keine ahnung wie es bei 9.3 aussieht) defaultmäßig nur pio modus.

bei pio modus wird per cpu kopiert, im dma modus per externen chip (zb im bios).
Ich denke umgekehrt wird da ein Schuh draus. DMA, bzw. heutzutage UDMA dient dazu die CPU zu entlasten. Ohne ist fehlerfreies Brennen kaum möglich. PIO-Mode stammt ja noch aus 386-er Zeiten. Jedes Laufwerk unterstützt inzwischen PIO-Mode 4. UDMA sollte natürlich im BIOS aktiviert sein, damit Windows dies auch nutzt. Bei Linux ist das nicht so wichtig, da der Linux-Kernel die BIOS-Einstellungen teilweise sowieso ignoriert und selber feststellt, ob UDMA möglich ist. Die Aktivierung geschieht meines Wissens nach bei jeder Distribution automatisch, nur per Bootoption läßt sich diese Unterstützung ausschalten (sogen. Sicherer Modus)
Wenn ich falsch liegen sollte, dann korrigiert mich bitte.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

klar ist dma schneller und soll die cpu entlasten, aber der punkt ist, im pio modus kann die cpu nicht blockiert werden, denn die macht das kopieren selbst, folglich wird auch die threadsteuerung des betriebsystems nicht blockiert. bei dma muß der fürs kopieren zuständige chip den zugriff auf den speicher blockieren (auch vor der cpu) um dort daten reinzuschreiben. wenn er den lock auch bei anforderungen anderer devices nicht aufhebt, weil er erstmal wartet bis daten vom cd laufwerk kommen, könnte sich das so äußern, dass ersmal nichts mehr geht.

das soll natürlich nicht heißen, dass ich jemanden raten würde seine laufwerke auf pio zu schalten... dann ist es mit dem ruckelfreien schauen von dvds nämlich vorbei.

ob pio oder dma wird übrigens nicht im bios festgelegt (normalerweise nicht, eventuell kann man da ein maximum einschalten... ich habe aber noch nie von einem bios gehört, dass diese einstellung anbietet) sonder ist alleine sache des betriebsystems.
NetSlayer
Beiträge: 117
Registriert: 21.09.2004 21:18
Kontaktdaten:

Beitrag von NetSlayer »

stbi hat geschrieben:Bei Linux und Solaris habe ich dieses Luftanhalten beim CD-mounten bisher nicht beobachten können. Ich bilde mir auch ein, gehört zu haben, dass man über die /etc/fstab aussteuern kann, ob der Zugriff synchron oder asynchron erfolgen soll. Von daher mag es durchaus Distributionen geben, die hier synchron und mit Luftanhalten arbeiten.
Um genau zu sein lässt sich dies durch die Optionen sync und async verändern.
Falls sich das erste CD-ROM-Laufwerk wie bei mir unter /dev/hdc findet, und man es nach /media/cdrom0 mounten möchte, sähe der Code für einen synchronen Zugriff folgendermaßen aus:

Code: Alles auswählen

/dev/hdc        /media/cdrom0   udf,iso9660 ro,user,noauto,sync  0       0
Erfahren durch man mount | grep sync.
...MfG, NetSlayer
"No, I ain't got a problem. It's you with the problem!"
http://netslayer.scpn.net
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> ich habe aber noch nie von einem bios gehört, dass diese einstellung anbietet
Eigentlich jedes BIOS bietet dies an, wenn auch manchmal etwas versteckt bzw. sogar versteckt. Ob das Betriebssystem diese Einstellungen beachtet, ist eine ganz andere Frage. Wegen eines abgebrochenen Pins meines alten Brenners konnte ich diesen nicht mehr mit UDMA nutzen, habs deaktiviert, Windows hat dann statt UDMA ein etwas älteres DMA format benutzt und ich konnte dann manchmal erfolgreich brennen. Den Brenner hab ich inzwischen aber Recycled :D
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

naja, man lernt nie aus :D
Antworten