-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.P
OSTED!not-for-mail
From: Sebastian Biały <h...@p...onet.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: CP/M i 64kB
Date: Mon, 4 Mar 2019 19:41:12 +0100
Organization: ATMAN - ATM S.A.
Lines: 106
Message-ID: <q5jrg8$8sq$1@node2.news.atman.pl>
References: <q4ufna$jiq$1@node2.news.atman.pl> <q51hnt$kgc$1@node1.news.atman.pl>
<q51irv$lji$1@node1.news.atman.pl>
<5c751d95$0$484$65785112@news.neostrada.pl>
<q53sh9$sta$1@node1.news.atman.pl>
<7409391785$20190226184734@squadack.com>
<q53v5o$vi6$1@node1.news.atman.pl>
<7088299527$20190226200906@squadack.com>
<q5450n$5hv$1@node1.news.atman.pl>
<5c759e46$0$514$65785112@news.neostrada.pl>
<q56jt7$7e8$1@node2.news.atman.pl>
<5c76f1b2$0$516$65785112@news.neostrada.pl>
<q5703b$up6$1@node1.news.atman.pl>
<a...@g...com>
<q59ets$eat$1@node1.news.atman.pl>
<1mjw2gp3k67mt$.y7hkvuqgt9xz.dlg@40tude.net>
<q5c0h6$uho$1@node1.news.atman.pl>
<l4zk3vwy61pa.l5x71g8limow$.dlg@40tude.net>
<q5dhtc$ghq$1@node2.news.atman.pl>
<1...@4...net>
<q5h2oe$s5c$1@node1.news.atman.pl>
<6grlaur8yg0l$.1mucio4ufvadf$.dlg@40tude.net>
NNTP-Posting-Host: 176.115.86.81
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: node2.news.atman.pl 1551724872 9114 176.115.86.81 (4 Mar 2019 18:41:12 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Mon, 4 Mar 2019 18:41:12 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101
Thunderbird/60.5.2
In-Reply-To: <6grlaur8yg0l$.1mucio4ufvadf$.dlg@40tude.net>
Content-Language: en-US
Xref: news-archive.icm.edu.pl pl.misc.elektronika:741438
[ ukryj nagłówki ]On 03/03/2019 22:34, J.F. wrote:
> A jak mamy 1MB RAM, to znow znacznie latwiej sie to obrabia na 8086 w
> malych kawalkach, niz na 6502 z dodatkowym stronnicowaniem.
I tu i tu musisz przestawiać segmenty. W przypadku 8086 masz tylko tą
zaletę że robisz to w cpu.
> O co innego chodzi. Masz np obrazek 24b/pixel.
> Obliczasz adres trzech bajtow pixela w pamieci seg:offset,
> i masz w trzech kolejnych bajtach dane. I nie zastanawiasz sie czy
> przypadkiem drugi lub trzeci bajt nie leza na innej stronie, i trzeba
> ja zmienic.
Zależy jaki duży masz ten obrazek. A jak nie wiesz jaki masz duży to i
tak musisz sprawdzać za każdym razem. Znowu dupa z tyłu.
> Albo np szukasz slowa w tekscie, i sie nie zastanawiasz czy
> przypadkiem "owo" nie jest na nastepnej stronie.
Bo teksty z definicji nie przekraczają 64kB ...
> Oczywiscie, przy rozsadnym zalozeniu ze normalizujesz wskaznik np co
> linie, a linia nie ma ponad 64KB.
Oczywiście przy założeniu że nie będzie padać a i wiać też nie będzie to
jakoś ta prowizorka wytrzyma ...
>> Kompaktacja pamięci pojawił się dopiero w językach w których nie ma
>> pointerów (z popularnych Java C# i inne). Wiedza o tym że ktoś
>> przemieszcza mi pointery w programie musi istnieć, program musi być na
>> to gotowy.
> Ale jak wychodzimy z CP/M i zaczynamy robic wielozadaniowy system
> operacyjny, to problem wraca.
Jesli procesor ma MMU to nie wraca. Każdy proces ma własną przestrzeń
wirtualną i nic nie wie o innych allokacjach.
Jak nie ma MMU to problem co najwyżej nie jest procesu tylko procesów.
Tak jak w Amidze.
> Zadania przychodza, koncza sie ...
I pamięc się fragmentuje. Podobnie w ramach procesu allokacje
przychodza, odchodzą a pamiec w kawałkach. Sorry, taki mamy podstawowy
model programowania do dzisiaj.
>> A jak? Żeby program nie wiedział i żebyś nie pomylił segmentacji z
>> translacją wirtualna->fizyczna MMU.
> Bo program ma uzywac dla tej pamieci segmentu nr 3 np.
Para segment:offest to jest dokłądnie to samo co pointer. dokładnością
do kłopotów w relacjach. Nie ma tam nic "leszego" albo rozwiązującego
problemy lepiej niż liniowy adres. Nic. Dorabianie filozofii do tego
konceptu jest naprawdę bolesne dla logiki.
>> Bo to problem segmentacji pamięci i jest obecy w każdej współczesnej
>> sytuacji kiedy nie ma kompaktacji pamięci. Segmenty nic nie zmieniają
>> ani nie ułatwiają.
>>> Z segmentami (ale nie takimi jak w 86) by sie dalo.
Nie dało. Program musi wiedzieć że mu pamięc kompaktujesz i wskaźnik
jest iwalidowany. To się da zrobić i robią to niektóre maszyny wirtualne
specjalizowane do poganiania Javi i C# w embedded. Ale tam jezyki nie
mają pointerów.
> No wlasnie uzyc segmentow ... tylko w stylu 2/386.
> Prosisz o duzo, to dostajesz dodatkowy nr segmentu,
> a procesor ma gdzies tam zapisane gdzie sie segment zaczyna.
Mylisz segmentacje z wirtualizacją pamięci.
> Nawiasem mowiac - chcieli lepiej
> https://en.wikipedia.org/wiki/Intel_iAPX_432
Nie było zgodne z CP/M i w dodatku potem okazało się że było na tyle
kiepsko zaprojektowane że nie było też wydajne.
>> żąłosną architekturą było nawet to 386 z kilkoma specjalizowanymi
>> rejestrami, praktycznie zerową ortogonalnością itd itp.
> Ta ortogonalnosc nie jest tak znow niezbedna.
Powiedz to kompilatorom. Obecnie tworzy się kod na procesor wirtualny z
masą rejestrów a nastepnie kolejna warstwa stara się to translować na
żałosną przestrzeń rejestrów x86. No, ale Turing-complete, więc o co chodzi.
>> Nie musi tego wiedzieć, skoro podałeś adres to pod nim spodziewadz się
>> danych. Mówisz o offsecie. Ale nawet wtedy nie o to chodzi. Kod
>> relokowalny ma TAKIE SAME pointery jak nierelokowalny. Róznica jest
>> tylko w tym że KOD może być dowolnie umieszczony w RAM.
> A tu jest kod i dane.
> Np procedura rysowania znakow na ekranie, i dane z fontami.
> Font moze byc dowolny, ale jest kilka predefiniowanych w bibliotece.
Ich dane są gdzieś załadowane fizycznie w pamięć. Kod obsługujący albo
ma na stałe offset i w gotowości relokator jak by trzeba było przenosić
albo jest całkowicie relokowalny.
kod x86 ma na tyle duży narzut na całkowitą relokowalność że szbciej
jest kod przerelokować automatycznie niż dodawać masę instrukcji
wydłubujących z żywego kodu PC.
> I całosc dynamicznie linkowana i nie wiadomo pod jakim adresem sie
> znajdzie po załadowaniu.
I dlatego Windows 32 bit zazwyczaj DLLki relokuje po każdym załadowaniu.
Na Win 64 dllki mogą być już za darmo pisane względnie.
Następne wpisy z tego wątku
- 04.03.19 21:56 b...@g...com
- 05.03.19 11:21 J.F.
- 05.03.19 20:48 Sebastian Biały
- 05.03.19 21:58 J.F.
- 19.03.19 21:00 ń
Najnowsze wątki z tej grupy
- Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- Pendrive zdycha, czy coś jeszcze innego? Problem z plikami.
- Odkurzacz Smapp Dynamic - dawny Zelmer
- Nagra IV i zewnętrzny pilot
- Fejk muzyczny czy nie fejk
- Raspberry Pi 3 Model B+
- Kuchenka elektryczna
- test
- Cewka elektrozaworu
- zapytanie o chip r5f21275nfp
- nie naprawiam więcej telewizorów
- Zrobił TV OLED z TV LCD
- Zasilacz USB na ścianę.
- Gniazdo + wtyk
- Aliexpress zaczął oszukiwać na bezczelnego.
Najnowsze wątki
- 2025-03-19 Brak ograniczeń dla chińskiego kapitału - wam nie do rządu, tylko na zmywak do chińskiej knajpy!!!
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 szal-Unia == federacja policyjna
- 2025-03-19 Polsza == państwo policyjne
- 2025-03-19 Grzegorz Płaczek o programie szczepień dzieci. ,,Stworzono eldorado dla firm farmaceutycznych"
- 2025-03-19 Wietnam wykłada 500M$ i chce zbudować fabrykę za 50G$
- 2025-03-19 Gemini
- 2025-03-19 Mokry sen Zenka :)
- 2025-03-19 Re: Dlaczego tak odstają od Tesli?
- 2025-03-19 Czy grupa p.s.prawo przetrwa najbliższe wybory (prezydenta)?
- 2025-03-19 Warszawa => Frontend Developer (obszar Angular13+) <=
- 2025-03-19 Czy "niedopuszczony pełnomocnik" jest w prawie się na to skarżyć jak "świadek" zmarła bez zostawienia mu takiej instrukcji?
- 2025-03-19 Kraków => Business Development Manager - Network and Network Security
- 2025-03-19 Ostrów Świętokrzy => Node.js / Fullstack Developer <=
- 2025-03-19 Kraków => IT Expert (Network Systems area) <=