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ć drastyczny spadek wydajności komputera i uniemożliwić korzystanie z dodatkowych możliwości procesora. W nowoczesnych komputerach wieloprocesorowych należy używać specjalnego oprogramowania systemu operacyjnego, aby uniknąć nieprawidłowego działania blokady oprogramowania.

Występowanie blokady oprogramowania po raz pierwszy opisał naukowiec IBM™ Stuart Madnick w 1968 roku. Na tym wczesnym etapie historii komputerów Madnick przewidywał, że komputery osobiste staną się mniejsze i tańsze w ciągu następnych kilku dekad, ale nadal będą ograniczone do mniej więcej te same prędkości przesyłania danych. Ta prognoza okazała się w większości słuszna, a użyteczną moc komputerów często zwiększa się po prostu przez dodanie dodatkowych procesorów.

Główną przyczyną blokady oprogramowania nie jest sam błąd, ale raczej funkcja. W komputerze z kilkoma połączonymi procesorami nie ma żadnej korzyści z posiadania wielu procesorów, z których każdy obsługuje tę samą informację. W rzeczywistości różne procesory, z których każdy próbuje zmodyfikować pojedyncze źródło danych, mogą uszkodzić oryginalny rekord. Aby uniemożliwić wielu jednostkom otwieranie tych samych informacji, tylko jeden procesor ma dostęp, podczas gdy pozostałe elementy 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 przetwarzania. Blokada oprogramowania poważnie ogranicza skalowalność i efektywność 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 nieodłączna nieefektywność komplikuje się w komputerach wieloprocesorowych. Na przykład komputer z szesnastoma procesorami może mieć jeden z procesorów przez cały czas w stanie bezczynności, ponieważ dane nie mogą być dystrybuowane tak szybko, jak to konieczne. W pewnym momencie złożona nieefektywność oznacza, że ​​rozszerzanie liczby procesorów w komputerze nie jest już przydatne. Dodanie tysiąca procesorów do systemu jest bezużyteczne, ponieważ szybkość danych jest ograniczona, a większość nadmiarowych procesorów utknęłaby w ciągłej blokadzie oprogramowania.

Blokadę oprogramowania można zminimalizować, korzystając z systemu operacyjnego zaprojektowanego specjalnie dla wielu procesorów. Specjalistyczne oprogramowanie jest w stanie rozbić źródło danych na wiele różnych części i rozesłać je do procesorów. Takie podejście zmniejsza potrzebę blokowania procesorów, ponieważ każda jednostka może przetwarzać mały składnik oryginalnych danych. Zasadniczo oprogramowanie wieloprocesorowe zapewnia, że ​​każda jednostka przetwarzająca zawsze ma swoje zadanie i utrzymuje przepływ danych w bardziej rozproszony i równomiernie rozproszony sposób.