Co to jest blokada oprogramowania?
Blokada oprogramowania to problem z komputerem, który może wystąpić w systemach wieloprocesorowych. Ta blokada może spowodować znaczny spadek wydajności komputera i uniemożliwić korzystanie z dodatkowych możliwości procesora. W nowoczesnych komputerach wieloprocesorowych należy użyć specjalnego oprogramowania systemu operacyjnego, aby uniknąć nieprawidłowego działania blokady oprogramowania.
Wystąpienie blokady oprogramowania zostało po raz pierwszy opisane przez naukowca IBM ™ Stuarta Madnicka w 1968 roku. Na tym wczesnym etapie historii komputerów Madnick przewidywał, że komputery osobiste staną się mniejsze i tańsze w ciągu kilku następnych dziesięcioleci, ale nadal będą ograniczone do z grubsza te same prędkości przesyłania danych. Ta prognoza okazała się w większości poprawna, a użyteczną moc komputerów często zwiększa się po prostu dodając dodatkowe procesory.
Główną przyczyną blokady oprogramowania nie jest sam błąd, ale raczej funkcja. W komputerze z kilkoma procesorami połączonymi ze sobą nie ma żadnej korzyści z posiadania wielu procesorów obsługujących tę samą informację. W rzeczywistości różne procesory próbujące zmodyfikować pojedyncze źródło danych mogą uszkodzić oryginalny rekord. Aby zapobiec otwieraniu przez te same informacje wielu urządzeń, tylko jeden procesor ma dostęp, podczas gdy pozostałe komponenty przetwarzania są „zablokowane” w pliku.
Ta metoda blokowania jest skuteczna w przypadku komputerów z małą liczbą procesorów. Podejście to staje się jednak problemem w urządzeniach z szeroką gamą połączonych jednostek przetwarzających. Blokada oprogramowania poważnie ogranicza skalowalność i skuteczność dodawania wielu procesorów do komputerów, ponieważ istnieją ograniczenia dotyczące szybkości dystrybucji danych między pamięcią masową a procesorami.
Żadna maszyna, w tym komputer, nie jest całkowicie wydajna; ta wrodzona nieefektywność pogłębia się w komputerach wieloprocesorowych. Na przykład na komputerze z szesnastoma procesorami procesor może być bezczynny przez cały czas, ponieważ danych nie można dystrybuować tak szybko, jak to konieczne. W pewnym momencie nieefektywność złożona oznacza, że nie jest już przydatne zwiększanie liczby procesorów w komputerze. Dodanie tysiąca procesorów do systemu jest bezużyteczne, ponieważ szybkość danych jest ograniczona, a większość nadmiarowych procesorów utknie w ciągłym blokowaniu oprogramowania.
Blokadę oprogramowania można zminimalizować, stosując system operacyjny zaprojektowany specjalnie dla wielu procesorów. Specjalistyczne oprogramowanie jest w stanie rozbić źródło danych na wiele różnych części i rozprowadzić te części do procesorów. Takie podejście zmniejsza potrzebę blokowania procesorów, ponieważ każda jednostka może przetwarzać niewielki składnik oryginalnych danych. Zasadniczo oprogramowanie wieloprocesorowe zapewnia, że każda jednostka przetwarzająca ma zawsze zadanie, i utrzymuje przepływ danych w sposób bardziej rozproszony i równomiernie rozproszony.