‟overcq”

Notatki o OUX/C+

Wirtualizacja bez przyszłości a uniwersalizacja

W obecnie popularnym oprogramowaniu (nawet już na poziomie sprzętu komputerowego) stosuje się wirtualizację zarówno pamięci jak i przepływu wykonania. Wirtualizacja ta polega na zapewnianiu teoretycznie nieskończonej ilości czegoś, czego jest skończona ilość, zależna od sprzętu komputerowego.

Wirtualizacja pamięci to zapewnienie ciągłej, liniowej przestrzeni adresowej dla algorytmów, co kończy się w praktyce nieustannym wymiataniem stron pamięci na dysk do pliku wymiany, jeśli jest dostępny w odpowiednim rozmiarze, lub brakiem pamięciTeraz brak pamięci jest również związany z losowym przerywaniem programów przez system operacyjny.. Wirtualizacja przepływu wykonania to zapewnienie dowolnej liczby asynchronicznych procedur, nazywanych na przykład ‘korutynami’, co kończy się w praktyce wykonywaniem synchronicznym lub niewykonywaniem tych procedur, gdy brak dostępnych wątków rzeczywistych na procesorze.

Odradzam opieranie się na tak pojętej wirtualizacji. Ale to nie znaczy, że algorytmy należy dostosowywać do ograniczeń konkretnego sprzętu komputerowego; pomijając sterowniki urządzeń, które się dostosowują. Natomiast należy stosować inne koncepty, takie które pozwalają na uniwersalizację, a nie wirtualizację.

W przypadku pamięci należy używać menedżera pamięci OUX/C+ i obsługiwać cebulkowo brak pamięci czyli wychodzić przy braku pamięci z głębszych bloków wykonania, pozostawiając nadrzędne funkcjonalności programu, co umożliwi jego rekonfigurację i wtedy wykonanie nowej funkcjonalności. W przypadku przepływu wykonania należy używać ‹zadań› synchronicznych OUX/C+, które umożliwiają rejestrację wymagań sygnałowych i czasowych danego ‹zadania›, by było wznowione w odpowiednim czasie, a wystarczy do tego jeden wątek rzeczywisty procesora.