Integracja programów z procesorami

Jak zwiększyć niezawodność pracy standardowych aplikacji i wydajność, którą oferują oprogramowania?

Jak zwiększyć niezawodność pracy standardowych aplikacji i wydajność, którą oferują oprogramowania?

Niezbędnym warunkiem zwiększenia wydajności i niezawodności oprogramowania jest ściślejsze integrowanie architektur nowo projektowanych procesorów z językami programowania i narzędziami do budowania aplikacji - powiedział Bill Joy, specjalista ds. sprzętu i oprogramowania Sun Microsystems Inc. podczas konferencji Hot Chips VIII, która odbyła się w Stanford.

Logiczna stuktura

Stosowane obecnie języki programowania bazują na sprawdzonych i przetestowanych rozwiązaniach. Pozwalają budować aplikacje, które pracują wydajnie i niezawodnie. Gorzej jest z różnego rodzaju oprogramowaniem użytkowym i narzędziami wspierającymi programistów. Pakiety takie nie pracują solidnie, a tworzone z ich pomocą aplikacje lub elementy dużych projektów informatycznych, sprawują się słabiej niż programy budowane przy użyciu standardowych języków programowania. Aby zwiększyć niezawodność aplikacji, języki powinny mieć logiczną strukturę i bazować na przejrzystych rozwiązaniach - jest to związane z prawidłowym zdefiniowaniem semantyki. Jeśli język programowania jest poprawny i logiczny, to programista zawsze może sprawdzić zachowanie się określonego fragmentu kodu, który jest modułem większego programu. Bill Joy stwierdził, że użytkownicy budują obecnie większość aplikacji na bazie elementów udostępnianych przez biblioteki. Niezawodność pracy takich programów zależy w dużej mierze od jakości budulca, jakim są elementy umieszczane w różnych bibliotekach. Dynamiczny tryb projektowania zakłada, że wszelkie poprawki optymalizujące pracę aplikacji mogą być wprowadzane z chwilą jej finalnego uruchomienia. Nie można bowiem optymalizować czegoś, czego jeszcze nie ma. Nie wystarczy przy tym dysponowanie językiem, którego pracę można przetestować statycznie i dynamicznie - oprogramowanie narzędziowe powinno zawierać rozwiązania, które pozwalają kontrolować pracę wielu współbieżnych, wykonywanych równolegle procesów, pojawiających się w eksploatowanych obecnie aplikacjach. Produktem, który spełnia te wymagania, wydaje się być język Java.

Zalety Javy

Wirtualny komputer bazujący na języku Java ma tę zaletę, że można na nim uruchamiać aplikacje niezależnie od zastanego systemu operacyjnego, zestawu instrukcji używanych przez procesor czy architektury układów przetwarzających dane. Procesory następnej generacji pracujące na podstawie języka Java lub innego produktu podobnej klasy, nie muszą dysponować pojedynczym zestawem instrukcji maszynowych. Będą musiały zawierać mechanizmy do dynamicznego optymalizowania kodu aplikacji, tak aby większość zadań związanych z kompleksową jej obsługą wykonywało oprogramowanie, a nie warstwa sprzętowa komputera.

Oprogramowanie powinno zawierać moduły, które potrafią kontrolować procesy wykonywane w trybie współbieżnym i wspierające mikrowątkowość. Są to technologie, które towarzyszą aplikacjom zarządzającym bazami danych i współpracującym z nimi.

Mikroprocesory następnej generacji będą w większym stopniu wspierać dane generowane przez aplikacje multimedialne. Należy wspomnieć o takich rozwiązaniach kontrolerów świadczących usługi aplikacjom multimedialnym, jak VIS (Sun), MMX (Intel) lub Talisman (Microsoft), które oferują funkcje wykorzystujące najczęściej stosowane formaty plików multimedialnych. Warto wspomnieć o jednej niezmiernie ważnej funkcji, którą bezwarunkowo muszą mieć przyszłe procesory - system kompresji i dekompresji danych. Dzięki niemu aplikacje będą zajmować mniej miejsca w pamięci komputera i mniej absorbować układy obsługujące transmisję danych na linii procesor/pamięć.

Warunkiem zwiększenia wydajności i niezawodności oprogramowania jest ściślejsze zintegrowanie architektury procesorów z językami programowania i narzędziami do tworzenia aplikacji.


TOP 200