W poprzednim dziale rozmawialiśmy o systemie komputerowym i trochę o przerwaniach, teraz napiszę o przerwaniach związanymi z operacjami wejścia i wyjścia (z angielskiego In & Out).
O co chodzi, rozpoczynając taką operację procesor ustawia w pewien sposób zawartość rejestrów w sterowniku urządzenia. ( po to aby sterownik urządzenia wiedział co ma zrobić).
Po zakończeniu pracy urządzenia wysyłane jest przerwanie które informuje procesor,że nastąpiło zakończenie zadania.
Wyróżniamy asynchroniczne i synchroniczne operacje Wejścia i wyjścia.
synchroniczne to w wielkim skrócie przesyłanie danych następnie zakończenie przesyłu i powrót do procesu użytkownika, takie podejście wyklucza na pewno jednoczesną pracę kilku urządzeń.
asynchroniczne – ten sposób nie czeka na zakończenie operacji wejścia i wyjścia czyli mogą być kontynuowane inne działania systemu jednocześnie.
Mamy w systemie operacyjnym taką rzecz jak tablica stanów urządzeń, to ona zawiera informację o poszczególnych urządzeniach. np. czy urządzenie jest wolne. Teraz ważna rzecz różne procesy/programy mogą składać żądanie na jedno urządzenie w tym samym czasie.
Wtedy nie ma „wyjścia”, trzeba czekać w kolejce.
podsumujmy:
Z punktu widzenia systemu operacyjnego Po wygenerowaniu przerwania, przez urządzenie, trzeba sprawdzić, przez jakie urządzenie zostało wygenerowane, gdy to wiemy, pobieramy z tablicy stanów urządzeń informację o stanie urządzenia, i updateujemy że wystąpiło przerwanie. Jeżeli coś czeka na dane urządzenie które w tej chwili jest wolne to system operacyjny przekazuję mu sterowanie, w innym wypadku wracamy do wykonywania programu usera lub do pętli czekania w razie gdyby system operacyjny nie miał nic do roboty.