Wejście wyjście - Input/output

W obliczeniowej , wejścia / wyjścia ( I / O lub nieformalnie IO lub IO ) stanowi połączenie pomiędzy systemem przetwarzania informacji, takich jak komputer , a środowiskiem zewnętrznym, ewentualnie człowieka lub innego urządzenia do przetwarzania danych. Wejścia to sygnały lub dane odbierane przez system, a wyjścia to sygnały lub dane z niego wysyłane. Termin może być również używany jako część działania; wykonanie operacji wejścia/wyjścia oznacza wykonanie operacji wejścia lub wyjścia .

Urządzenia we/wy tosprzętużywany przez człowieka (lub inny system) do komunikacji z komputerem. Na przykładklawiaturalubmysz komputerowatourządzenie wejściowekomputera, amonitoryidrukarkitourządzenia wyjściowe. Urządzenia do komunikacji między komputerami, takie jakmodemyikarty sieciowe, zazwyczaj wykonują zarówno operacje wejścia, jak i wyjścia.

Oznaczenie urządzenia jako wejścia lub wyjścia zależy od perspektywy. Myszy i klawiatury wykonują fizyczne ruchy, które wyprowadza użytkownik i przekształcają w sygnały wejściowe, które komputer może zrozumieć; dane wyjściowe z tych urządzeń to dane wejściowe komputera. Podobnie drukarki i monitory odbierają sygnały wysyłane przez komputery jako dane wejściowe i przekształcają te sygnały w reprezentację zrozumiałą dla użytkowników. Z ludzkiego użytkownika punktu widzenia dydaktycznego, proces odczytu lub widząc te reprezentacje odbiera wyjście; ten rodzaj interakcji między komputerami a ludźmi jest badany w dziedzinie interakcji człowiek-komputer . Kolejną komplikacją jest to, że urządzenie tradycyjnie uważane za urządzenie wejściowe, np. czytnik kart, klawiatura, może akceptować polecenia sterujące, np. wybierając układarkę, wyświetlając oświetlenie klawiatury, podczas gdy urządzenie tradycyjnie uważane za urządzenie wyjściowe może dostarczać dane o stanie, np. , niski poziom tonera, brak papieru, zacięcie papieru.

W architekturze komputera połączenie procesora i pamięci głównej , do których procesor może bezpośrednio odczytywać lub zapisywać za pomocą indywidualnych instrukcji , jest uważane za mózg komputera. Każdy transfer informacji do lub z jednostki CPU/pamięć, na przykład poprzez odczyt danych z dysku , jest uważany za I/O. Procesor i jego pomocnicze obwody mogą zapewniać odwzorowane w pamięci wejścia/wyjścia, które są wykorzystywane w programowaniu komputerowym niskiego poziomu , na przykład przy implementacji sterowników urządzeń , lub mogą zapewniać dostęp do kanałów we/wy . I / O algorytm jest zaprojektowany w celu wykorzystania lokalizację i efektywnie wykonywać podczas wymiany danych z wtórnym urządzenia pamięci masowej, takich jak dysk twardy.

Berło

Interfejs I/O jest wymagany zawsze, gdy urządzenie I/O jest sterowane przez procesor. Zazwyczaj procesor komunikuje się z urządzeniami za pośrednictwem magistrali . Interfejs musi mieć niezbędną logikę do interpretacji adresu urządzenia generowanego przez procesor. Uzgadnianie powinno być realizowane przez interfejs za pomocą odpowiednich poleceń (takich jak BUSY, READY i WAIT), a procesor może komunikować się z urządzeniem I/O za pośrednictwem interfejsu. Jeśli wymieniane są różne formaty danych, interfejs musi umożliwiać konwersję danych szeregowych do postaci równoległej i odwrotnie. Ponieważ bezczynność procesora podczas oczekiwania na dane z urządzenia wejściowego byłaby marnotrawstwem, należy zapewnić generowanie przerwań i odpowiednich numerów typów do dalszego przetwarzania przez procesor, jeśli jest to wymagane.

Komputer używający we/wy mapowanych w pamięci uzyskuje dostęp do sprzętu poprzez odczytywanie i zapisywanie w określonych lokalizacjach pamięci przy użyciu tych samych instrukcji języka asemblera, których normalnie używałby komputer do uzyskiwania dostępu do pamięci. Alternatywną metodą jest użycie we/wy opartych na instrukcjach, które wymagają, aby procesor posiadał specjalne instrukcje dla we/wy. Zarówno urządzenia wejściowe, jak i wyjściowe mają szybkość przetwarzania danych, która może się znacznie różnić. W przypadku niektórych urządzeń umożliwiających wymianę danych z bardzo dużą szybkością wymagany jest bezpośredni dostęp do pamięci (DMA) bez ciągłej pomocy procesora.

Wdrożenie wyższego poziomu

System operacyjny wyższego poziomu i narzędzia programistyczne wykorzystują oddzielne, bardziej abstrakcyjne koncepcje I/O i elementy podstawowe . Na przykład większość systemów operacyjnych udostępnia aplikacjom pojęcie plików . C i C ++ języki programowania, systemy operacyjne oraz w Unix rodziny tradycyjnie abstrakcyjne plików i urządzeń jak strumienie , które mogą być odczytywane lub zapisywane, a czasem jedno i drugie. Średnia biblioteka C zapewnia funkcje manipulowania strumieni na wejściu i wyjściu.

W kontekście języka programowania ALGOL 68 , funkcje wejścia i wyjścia są łącznie określane jako transput . ALGOL 68 transput Biblioteka rozpoznaje następujące standardowe pliki / urządzeń: stand in, stand out, stand errorsi stand back.

Alternatywą dla specjalnych prymitywnych funkcji jest monada I/O , która pozwala programom po prostu opisywać I/O, a akcje są wykonywane poza programem. Jest to godne uwagi, ponieważ funkcje we/wy wprowadziłyby efekty uboczne do dowolnego języka programowania, ale pozwala to na praktyczne zastosowanie programowania czysto funkcjonalnego .

Kanał we/wy

Kanał we/wy wymaga użycia instrukcji, które są specjalnie zaprojektowane do wykonywania operacji we/wy. Instrukcje we/wy adresują kanał lub kanał i urządzenie; kanał asynchronicznie uzyskuje dostęp do wszystkich innych wymaganych informacji dotyczących adresowania i sterowania. Jest to podobne do DMA, ale bardziej elastyczne.

We/wy mapowane na porty

We/wy mapowane na porty wymagają również użycia specjalnych instrukcji we/wy. Zazwyczaj do urządzenia przypisywany jest jeden lub więcej portów, z których każdy ma specjalne przeznaczenie. Numery portów znajdują się w oddzielnej przestrzeni adresowej niż ta używana przez normalne instrukcje.

Bezpośredni dostęp do pamięci

Bezpośredni dostęp do pamięci (DMA) umożliwia urządzeniom przesyłanie dużych porcji danych do iz pamięci niezależnie od procesora.

Zobacz też

Bibliografia

Zewnętrzne linki