Reklama

reklama




Zasoby systemowe

PDF Drukuj Email
Ocena użytkowników: / 2
SłabyŚwietny 
Sprzęt komputerowy - Płyta główna
Wpisany przez Administrator   
niedziela, 25 lipca 2010 10:19

Do zasobów systemowych należy zaliczyć kanały komunikacyjne, adresy i innego typu sygnały generowane przez urządzenia podłączone do magistrali. Do niskopoziomowych zasobów systemowych należy zaliczyć:

  • adresy pamięci,
  • kanały IRQ (ang. interrupt request Channel),
  • kanały DMA (ang. direct memory access),
  • adresy portów I/O (wejścia-wyjścia).

Przerwania

Kanały IRQ (ang. interrupt request Channel) lub, inaczej mówiąc, przerwania sprzętowe wykorzystywane są przez wiele różnych urządzeń do poinformowania płyty głównej, że konieczne jest wykonanie żądania.

Kanałom IRQ odpowiadają ścieżki znajdujące się na płycie głównej i w gniazdach rozszerzeń. Po wywołaniu określonego przerwania specjalny mechanizm przejmuje kontrolę nad systemem, który najpierw zapisuje na stosie zawartość wszystkich rejestrów procesora, a następnie powoduje, że system sprawdza wektorową tablicę przerwań. Tabela zawiera listę adresów pamięci, które odpowiadają kanałom przerwań. Zależnie od typu wywołanego przerwania jest uruchamiany program z nim powiązany.

Wskaźniki wektorowej tabeli przerwań wskazują na adres określonego sterownika współpracującego z kartą, która wygenerowała przerwanie. Przykładowo, w przypadku karty sieciowej wektor może wskazywać na adres sterowników, które zostały załadowane do pamięci i ją obsługują. W przypadku kontrolera dysków wektor może z kolei wskazywać na kod BIOS-u, który jest z nim kompatybilny.

W momencie gdy określona funkcja sterownika zakończy przetwarzanie żądania przekazanego przez kartę, program zarządzający przerwaniami przenosi zawartość stosu do rejestrów procesora, po czym oddaje kontrolę do systemu, który ponawia wykonywanie operacji wstrzymanych w momencie wystąpienia przerwania.

Dzięki wykorzystaniu przerwań, system może odpowiadać na zewnętrzne zdarzenia w określonym czasie. Za każdym razem, gdy port szeregowy przesyła do systemu bajt w celu zagwarantowania, że zostanie on wczytany jeszcze przed przesłaniem kolejnego bajta danych, generowane jest przerwanie.

Z reguły, poza nielicznymi wyjątkami, priorytet sprzętowych przerwań jest określany za pomocą liczb, przy czym przerwania o najwyższym priorytecie otrzymują najniższe wartości. Przerwania o wyższym priorytecie mają pierwszeństwo w stosunku do tych z niższym. W efekcie w systemie może wystąpić kilka wzajemnie zagnieżdżonych przerwań jednocześnie.

Jeśli w takiej sytuacji dojdzie do przeciążenia systemu prowadzącego do wyczerpania zasobów stosu (zbyt wiele przerwań wygenerowanych w zbyt krótkim czasie), wtedy wystąpi błąd przepełnienia stosu i w efekcie system zawiesi się. Tego typu błąd zazwyczaj wyświetla w wierszu poleceń systemu DOS komunikat w postaci Internal stack overflow - system halted (Przepełnienie wewnętrznego stosu system zatrzymany).

Początkowo firma IBM opracowała metody współdzielenia przerwań przez urządzenia podłączone do magistrali ISA, ale niewiele z nich spełniało związane z tym wymagania, a zatem nie mogło z tej możliwości korzystać. Magistrala PCI została zaprojektowana tak, aby umożliwiać współdzielenie przerwań. I faktycznie, prawie wszystkie karty PCI są skonfigurowane do wykorzystania przerwania PCI INT#A, a zatem po podłączeniu do magistrali PCI współdzielą je. Rzeczywisty problem wynika stąd, że w systemie dostępne są dwa zestawy przerwań sprzętowych przerwania PCI i ISA. W przypadku kart PCI, przerwania PCI są mapowane na przerwania ISA, które następnie nie mogą być współdzielone. A zatem, w wielu sytuacjach konieczne jest przydzielenie każdej karcie osobnego przerwania, nawet kartom PCI. Konflikt związany z przydzielaniem przerwań ISA urządzeniom PCI w przypadku pierwszych płyt głównych wyposażonych w magistralę PCI spowodował wiele problemów z ich konfiguracją mających miejsce nawet już po wprowadzeniu na rynek systemu Windows 95 wykorzystującego mechanizm Plug and Play.

Problem związany ze współdzieleniem przerwań przez karty PCI został wyeliminowany po opracowaniu funkcji o nazwie PCI IRQ Steering obsługiwanej przez nowsze wersje systemów operacyjnych (począwszy od Windows 95 OSR 2.x) i BIOS. Funkcja PCI IRQ Steering umożliwia systemowi kompatybilnemu z PnP, takiemu jak Windows, wykonanie dynamicznego mapowania lub "przekierowania" kart PCI (z których prawie wszystkie wykorzystują przerwanie PCI INT#A) na standardowe przerwania komputera PC. Ponadto istnieje możliwość mapowania kilku kart PCI do tego samego przerwania.

Przerwania sprzętowe często są określane terminem przerwań maskowanych (ang. maskable interrupts). Oznacza to, że przerwania przez krótki okres czasu, gdy procesor wykonuje inne ważne operacje, mogą być zamaskowane lub wyłączone. Prawidłowym zarządzaniem przerwaniami pozwalającym uzyskać jak najlepszą wydajność systemu zajmuje się BIOS i programy narzędziowe.

Ze względu na to, że w systemie wyposażonym w magistralę ISA przerwania nie mogą być współdzielone, często dochodzi do konfliktów, które mogą nawet, po zainstalowaniu kilku kart, spowodować wyczerpanie dostępnych zasobów. Jeśli dwie karty do komunikacji z systemem wykorzystują to samo przerwanie, wtedy zaistniały konflikt może uniemożliwić ich poprawne funkcjonowanie.


Polecam książki



Zmieniony: sobota, 28 maja 2011 17:36