Wie unterstützt Android mehrere Speicherverbindungen?

0

Ich bin mir nicht sicher, ob dies eher auf der Software- als auf der Hardware-Ebene geschieht, aber da ich mich mit dieser Technologie befasse, um sie in eine Hardwarelösung umzuwandeln, habe ich mich entschlossen, sie zuerst hier zu stellen.

Ein durchschnittliches Android-Gerät verfügt also über internen Speicher. Mit diesem Speicher können Sie beispielsweise Bilder, Filme und Dokumente speichern. Sie können jedoch eine USB-Verbindung herstellen, um auf den Speicher zuzugreifen, sodass zwei R / Ws für einen Speicherbus verfügbar sind. Wie ist das möglich?


quelle
3
Ich stimme dafür, diese Frage als nicht thematisch zu schließen, da es sich um die Verwendung des Betriebssystems handelt und außerdem auf einer fehlerhaften Annahme beruht - Android erlaubt keinen gleichzeitigen USB-Massenspeicher und internen Zugriff auf ein herkömmliches Speichermedium, während das spätere MTP Die Implementierung ist kein USB-Massenspeicher-Dateisystem, sondern ein USB-Dateiübertragungsschema.
Chris Stratton
@ ChrisStratton Ein Teil meiner Frage war, meine Prämisse zu ändern. :)

Antworten:

-1

Genauso behandelt jedes Betriebssystem mehrere Lese- / Schreibanforderungen von mehreren Quellen ... Scheduler.

Das zugrunde liegende Betriebssystem von Android ist Linux. Das gehört wirklich zum Superuser.

https://forum.xda-developers.com/showthread.php?t=1631894

I / O-ZEITPLANER

F. "Welchen Zwecken dient ein I / O-Scheduler?" A. Minimieren Sie die Festplatte   Latenz suchen. Priorisieren Sie E / A-Anforderungen von Prozessen. Festplatte zuweisen   Bandbreite für laufende Prozesse. Stellen Sie sicher, dass bestimmte Anforderungen erfüllt werden   vor Ablauf einer Frist zugestellt werden.

Also in der einfachsten oder einfachsten Form: Der Kernel kontrolliert den Festplattenzugriff   mit I / O Scheduler.

F. "Welche Ziele versucht jeder E / A-Scheduler auszugleichen?" A. Fairness (let   Jeder Prozess hat seinen Anteil am Zugriff auf die Festplatte   Anfragen, die sich in der Nähe der aktuellen Position des Plattenkopfes befinden, werden zuerst bedient, weil   Suche dort ist am schnellsten) Echtzeit (Garantie, dass eine Anfrage ist   in einer bestimmten Zeit gewartet)

F. "Beschreibung, Vor- und Nachteile der einzelnen E / A-Planer?" EIN.

1) Nein

Fügt alle eingehenden E / A-Anforderungen in eine First In First Out-Warteschlange ein   und implementiert das Zusammenführen von Anforderungen. Am besten mit Speichergeräten, die   ist nicht abhängig von mechanischer Bewegung, um auf Daten zuzugreifen (ja, wie unsere   Flash-Laufwerke). Vorteil hierbei ist, dass Flash-Laufwerke nicht benötigt werden   Neuordnung mehrerer E / A-Anforderungen im Gegensatz zu normalen Festplatten.

Vorteile: Bedient E / A-Anforderungen mit der geringsten Anzahl von CPU-Zyklen.   (Batteriefreundlich?) Am besten für Flash-Laufwerke, da nicht gesucht wird   Strafe. Guter Durchsatz auf Datenbanksystemen. Nachteile: Reduzierung in   Die Anzahl der verwendeten CPU-Zyklen ist proportional zum Leistungsabfall.

2) Frist

Ziel ist es, die E / A-Latenz oder das Verhungern einer Anforderung zu minimieren. Das Gleiche   Dies wird durch Round-Robin-Richtlinien erreicht, die für mehrere E / A-Vorgänge fair sind   Anfragen. Fünf Warteschlangen werden aggressiv verwendet, um eingehende Nachrichten neu anzuordnen   Anfragen.

Vorteile: Fast ein Echtzeitplaner. Hervorragend bei der Reduzierung der Latenz   von einem bestimmten einzelnen I / O. Bester Scheduler für Datenbankzugriff und   Abfragen. Bandbreitenbedarf eines Prozesses - wie viel Prozent der CPU   es braucht, ist leicht zu berechnen. Wie noop ein guter Scheduler für Solid   Zustand / Flash-Laufwerke. Nachteile: Wenn das System überlastet ist, setzen Sie von   Prozesse, die eine Frist versäumen können, sind weitgehend unvorhersehbar.

3) CFQ

Der vollständig faire Warteschlangenplaner verwaltet eine skalierbare E / A pro Prozess   Warteschlange und versucht, die verfügbare E / A-Bandbreite gleichmäßig zu verteilen   unter allen E / A-Anforderungen. Jede pro-Prozess-Warteschlange enthält synchron   Anfragen von Prozessen. Die für jede Warteschlange zugewiesene Zeitscheibe hängt davon ab   auf die Priorität des "Eltern" -Prozesses. V2 von CFQ hat einige Korrekturen   das löst Prozess 'i / o Hunger und einige kleine rückwärts sucht in   die Hoffnung auf eine Verbesserung der Reaktionsfähigkeit.

Vorteile: Wird für eine ausgewogene E / A-Leistung in Betracht gezogen. Am einfachsten   Stimmen. Hervorragend auf Multiprozessorsystemen. Bestes Datenbanksystem   Leistung nach Fristablauf. Nachteile: Einige Benutzer melden Medien   Das Scannen dauert mit CFQ am längsten. Das könnte daran liegen   die Eigenschaft, dass da die Bandbreite gleichmäßig auf alle verteilt wird   I / O-Vorgänge während des Startvorgangs, das Scannen von Datenträgern wird nicht speziell behandelt   Priorität. Jitter (Worst-Case-Delay) kann manchmal hoch sein,   wegen der Anzahl der Aufgaben, die für die Festplatte konkurrieren.

4) BFQ

Anstelle der Zuordnung von Zeitscheiben nach CFQ weist BFQ Budgets zu. Festplatte ist   einem aktiven Prozess gewährt werden, bis das Budget erreicht ist (Anzahl der Sektoren)   läuft ab. BFQ weist nicht gelesenen Aufgaben hohe Budgets zu. Budget zugewiesen   Ein Prozess ändert sich im Laufe der Zeit in Abhängigkeit von seinem Verhalten.

Vorteile: Wird als sehr gut für die USB-Datenübertragungsrate eingestuft.   Gilt als der beste Planer für HD-Videoaufnahmen und -Videos   Streaming. (wegen weniger Jitter im Vergleich zu CFQ und anderen)   Wird als genauer I / O-Scheduler angesehen. Erreicht etwa 30% mehr   Durchsatz als CFQ bei den meisten Workloads. Nachteile: Nicht das Beste   Scheduler für das Benchmarking. Höheres Budget, das einem Prozess zugewiesen werden kann   Interaktivität und erhöhte Latenz beeinflussen.

5) SIO

Der einfache I / O-Scheduler zielt darauf ab, den Overhead so gering wie möglich zu halten, um einen niedrigen Wert zu erreichen   Latenzzeit für E / A-Anforderungen. Keine Priority Queues Konzepte, sondern nur   Grundlegende Verschmelzung. Sio ist eine Mischung aus Noop & amp; Frist. Keine Nachbestellung oder   Sortieren von Anfragen.

Vorteile: Einfach und zuverlässig. Minimierter Mangel an Anfragen.   Nachteile: Langsame Zufallslesegeschwindigkeiten bei Flash-Laufwerken im Vergleich zu   andere Scheduler. Sequential-Read-Geschwindigkeiten bei Flash-Laufwerken ebenfalls nicht so   gut.

6) V (R)

Im Gegensatz zu anderen Schedulern sind dies synchrone und asynchrone Anforderungen nicht   stattdessen wird eine Frist zur Fairness gesetzt. Das   Die nächste zu bedienende Anfrage basiert auf der Entfernung zur letzten Anfrage.

Vorteile: Am besten für das Benchmarking geeignet, da es auf dem Höhepunkt ist   'form' VR schneidet am besten ab. Nachteile: Leistungsschwankungen   führt zu unterdurchschnittlichen Leistungen. Am wenigsten zuverlässig / am meisten   instabil.

Naib
quelle
Ich wusste nicht, dass es auf der Softwareseite passiert. Vielen Dank.
1
Nein, der Scheduler hat wirklich nichts spezielles damit zu tun. Die Frage basiert auf einer falschen Prämisse - die Android-Versionen, die ein Speicherschema verwenden, bei dem der gemeinsame Zugriff problematisch wäre, erlauben keinen gemeinsamen Zugriff, sondern schalten ihn explizit zwischen dem Telefon und dem USB-Host um, während die spätere Version dies zulässt Verwenden Sie ein grundlegend anderes Speicherschema.
Chris Stratton
Eigentlich ist es so. Android wird seit geraumer Zeit mit einer Reihe von IO-Schedulern ausgeliefert: BFQ, CFQ, Deadline, Noop, SIO
Naib
1
Nein, Sie graben nur ein Loch tiefer in die Irrelevanz. Das Problem hat nichts mit der E / A-Planung zu tun, und alles hat damit zu tun Konsistenz . Aber wie bereits erwähnt, gibt es hier keine Magie - das von der Frage vorgeschlagene Rätsel beruht auf Missverständnissen. Bei den Entwürfen, bei denen dies schwierig wäre, ist dies einfach überhaupt nicht zulässig.
Chris Stratton