Dlaczego procesor nie jest potrzebny do obsługi żądań wejścia/Wyjścia?

Uczę się o systemach operacyjnych, ale jest mała koncepcja, której nie mogę pojąć. Powiedzmy, że proces 1 jest uruchomiony na CPU, a następnie wysyła żądanie We/Wy do odczytu z dysku. W celu zwiększenia wydajności procesor rozpoczyna wykonywanie procesu 2 w trakcie obsługi tego żądania. To wszystko ma sens, ale czy I / O nie musi używać procesora?

Tutaj wpisz opis obrazka

Moje pytanie: Dlaczego procesor nie jest potrzebny do obsługi żądania procesu 1?

Author: Pat Murray, 2012-11-28

2 answers

Pomogłoby zrozumieć rolę 3 ważnych aspektów We/Wy w architekturze komputera: przerwań, DMA i kontrolerów sprzętowych.

Gdy procesor wysyła żądanie wejścia / wyjścia do dysku twardego, dysk twardy ma swój własny wyspecjalizowany układ zwany kontrolerem urządzenia (lub sprzętu) przeznaczonym wyłącznie do przetwarzania poleceń procesora, takich jak odczyt z dysku. Pierwotnie były to proste układy, które wykonywały określone operacje dla procesora, ale nowoczesne Kontrolery sprzętowe to zasadniczo własne mikroprocesory z firmware i wszystkim, więc są w stanie wykonywać bardzo złożone operacje bez pomocy głównego procesora. Podczas gdy kontroler dysku twardego jest zajęty wykonywaniem żądania, główny procesor może robić, co chce, na przykład wykonaj proces 2. Sterownik jest w stanie odczytywać i zapisywać Bezpośrednio do i z pamięci RAM systemu za pomocą tak zwanego kontrolera Direct Memory Access (DMA), specjalnej jednostki, która przesyła dane ze sterownika sprzętowego do głównej pamięci RAM bez konieczności wykonywania przez procesor czegokolwiek.

Gdy dysk twardy jest wykonywany z żądaniem i odpowiednie dane zostały załadowane do pamięci RAM przez DMA, wysyła żądanie przerwania, które informuje CPU, że dane zostały załadowane do pamięci RAM. W tym momencie procesor może przenieść kontrolę z powrotem do procesu 1. Tak więc procesor nie musi mikromanażować wszystkich zadań związanych z I / O. kiedyś tak było, ale te triki (przerwania, DMA, specjalne Kontrolery) były opracowany w celu poprawy wydajności procesora i zwiększenia wydajności.

 35
Author: Dougvj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-27 17:36:50

Cpu jest używany do inicjowania każdego żądania io, a następnie akceptowania go, gdy jest gotowy ...nie jest tak, że cpu nie bierze udziału w operacjach io.

Np. skopiuj plik 2gb z dysku c na dysk d i otwórz Menedżera zadań ..w zakładce wydajność u zobaczysz zarówno wykorzystanie dysku, jak i użycie procesora.

Udowadnianie mojejpunkt.

Ahsan

 -5
Author: AHSAN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-01 07:26:15