eXec.plMAGAZYN UŻYTKOWNIKÓW KOMPUTERÓW AMIGA
MAGAZYN UŻYTKOWNIKÓW KOMPUTERÓW AMIGA

piątek, 22. września, 2017, 21:00

Dodano: 2003-09-10 00:00, Autor: kb, Kategoria: AmigaOS, Liczba wyświetleń: 917

A A A

ExecSG - obsługa pamięci

Miesiąc temu Hans-Joerg Frieden opisywał biblioteki z AmigaOS 4, a w tym miesiącu jego brat Tomasz Frieden prezentuje w jaki sposób kernel ExecSG podchodzi do obsługi pamięci. Dla członków "Amiga Club" dostępny jest ponadto wrześniowy numer magazynu CAM.


Dodaj komentarz

Ankieta: Jaka jest najlepsza strategia wojenna na Amigę? «»
Tym razem pytamy Was o ulubioną strategię wojenną na Amigę, wytypowaliśmy 20-cia tego typu pozycji. W polu "Inne" istnieje możliwość wpisania także swojej propozycji.
Ankieta aktywna do: 2017-09-23
Marcin Juszkiewicz
Czytelnik

komentarz #1 wysłany: brak daty

Na początku ładny opis starego execa, potem opisał, że teraz będzie lepiej ale jak co do czego to i tak nie napisał co jest zrobione

Ciekawe czy pozbędą się w końcu MEMF_CHIP - w końcu na A1 tego nie będzie a i teraz obsługę custom chipów wymagających CHIPu można (IMHO) zrzucić na odpowiednie device (np. paula_audio.device , które jako uprzywilejowane z faktu bycia częścią systemu miałyby do niego dostęp.

Majaczę?

Odpowiedz

Grzegorz Kraszewski
Czytelnik

komentarz #2 wysłany: brak daty

Dużo ciekawostek, zero konkretów, nie licząc pamięci wirtualnej, ale to mieliśmy już w OS 3.x poprzez łatki (GigaMem, VMM). Zobaczymy jak sobie poradzą z separacją przestrzeni adresowych aplikacji bez łamania kompatybilności.

Odpowiedz

Jacek Rzeuski
Czytelnik

komentarz #3 wysłany: brak daty w odpowiedzi na komentarz #2

Jak to jak? Każą poprawić i przekompilować programy

Odpowiedz

Kornel Lesinski
Czytelnik

komentarz #4 wysłany: brak daty w odpowiedzi na komentarz #3

w os-x sie dalo

opis ladny, plan ambitny.

co do kompatybilnosci zgaduje, ze shared mem bedzie nieswapowalna, niemapowalna etc, w realnej przestrzeni, a tylko appsy dla os4 beda mogly dostac pamiec w wirtualnej przestrzeni.

a wracajac do realiow to na MDC zaczela sie pojawiac zgrabna dokumentacja. streamowo-filtrowo-codecowy system datatypow zapowiada sie na godny os4 :]
jak narazie to mplayer rzadzi. ciekawe kiedy bedzie mozna pornole streamowac przez datatypes? )

Odpowiedz

Jacek Rzeuski
Czytelnik

komentarz #5 wysłany: brak daty w odpowiedzi na komentarz #4

Tak, tylko spróbuj nauczyć system, żeby umiał zgadnąć, że program, który żąda MEMF_ANY w rzeczywistości chciałby MEMF_PUBLIC.

Odpowiedz

Marcin Juszkiewicz
Czytelnik

komentarz #6 wysłany: brak daty w odpowiedzi na komentarz #5

/* exec memory types redefinions for AmigaOS4 */ #define MEMF_ANY MEMF_PUBLIC i jedziemy - stara MEMF_ANY dostaje wartość MEMF_PUBLIC a na potrzeby nowego softu wprowadzamy więcej flag. Przez to program z AmigaOS <4 żadając MEMF_ANY dostaje MEMF_PUBLIC - kwestia przemapowania typów pamięci w exec.library/memory_functions.

Odpowiedz

Jacek Rzeuski
Czytelnik

komentarz #7 wysłany: brak daty w odpowiedzi na komentarz #6

Taaa... i świetnie to zadziała na już skompilowane programy...

Odpowiedz

Marcin Juszkiewicz
Czytelnik

komentarz #8 wysłany: brak daty w odpowiedzi na komentarz #7

Jeśli program binarny chce dostać MEMF_ANY to ustawia to przy wywołaniu funkcji alokującej pamięć.
W AmigaOS3 mamy coś w tym stylu (nie pamiętam i nie mam includów pod ręką):
#define MEMF_PUBLIC 4
#define MEMF_FAST 2
#define MEMF_CHIP 1
#define MEMF_ANY 0

Funkcja AllocMem sprawdza jaki typ pamięci dostała jako parametr i odpowiednio na to reaguje. Jeśli w AmigaOS4 jej odpowiednik będzie wiedzieć, że wartość 0 (czyli stare MEMF_ANY) ma oznaczać to samo co 4 (czyli stare MEMF_PUBLIC) to programy już skompilowane będą działały poprawnie. Na potrzeby programów z AmigaOS4 i tak przecież kilka nowych flag dojdzie więc nowe programy będą używać np. MEMF_ANY_MEM a wartość MEMF_ANY będzie mieć tą samą wartość co MEMF_PUBLIC:

#define MEMF_SHARED 16
#define MEMF_ANY_MEM 8

/*
for compatibility with AmigaOS <4 software - do not use in new code
*/
#define MEMF_PUBLIC 4
#define MEMF_FAST 2
#define MEMF_CHIP 1
#define MEMF_ANY 4

Odpowiedz

Jacek Rzeuski
Czytelnik

komentarz #9 wysłany: brak daty w odpowiedzi na komentarz #8

No tak, jeżeli nie będą próbować używać obecnie istniejących flag w nowym kodzie, a stare zmapować na nowe flagi na tyle ile się da, to ma to szanse powodzenia. Tylko, że to już powinno dać się łatwo sprawdzić, na obecnym AmigaOS4.0 68k. Jeżeli tego w nim nie ma, to znaczy, że już zaczęli pisać AmigaOS4 niekompatybilny z istniejącym AmigaOS4

Odpowiedz

AmigaOS.pl

Polecamy
Najpopularniejsze
eXec blog

Świat poza Amigą: