Scheduling AmigaOS e interrupt

Hello world!

Scheduling AmigaOS e interrupt

Messaggioda clros » dom giu 13, 2021 8:42 pm

Ciao a tutti,
una domanda tecnica: nelle varie macchine Amiga classic, chi generava l'interrupt per l'abilitazione dello scheduler di Exec?
Era derivato dal clock di sistema, dalla frequenza di rete (mi sembra che i vari A2000,3000 e 4000 derivassero dalla frequenza di rete i segnali per il Sync del genlock) oppure un timer impostato sui CIA?

Inoltre, quanto durava il time quantum per l'esecuzione dei processi?

Grazie a tutti.
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Scheduling AmigaOS e interrupt

Messaggioda clros » mar giu 15, 2021 7:08 am

Mi hanno risposto su Facebook, riporto in breve le risposte anche qui, potrebbe magari interessare a qualcuno.

A generare gli interrupt è Paula e in questa pagina wiki si trova la descrizione del funzionamento degli interrupt su Amiga Classic
https://wiki.amigaos.net/wiki/Exec_Interrupts

(E' curioso notare che Paula viene qui identificato come 4703 che dovrebbe essere la sigla originale di PORTIA, sui sistemi Amiga "Lorainne" e "Velvet"! :eheh: )

Inoltre mi hanno detto che il quanto di tempo per i processi sugli amiga classici è di 80 millisecondi.

Ok, adesso possiamo abbozzare un nuovo sistema operativo :ahah: !
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Scheduling AmigaOS e interrupt

Messaggioda AMG_Novice_Usr » sab ago 07, 2021 6:05 pm

Argomento interessantissimo e molto profondo ... e infatti (purtroppo) ampliamente latitato nel forum.
Ovviamente non è "colpa" del forum in sè, ma semplicemente della mancanza di competenze "profonde" su Amiga da parte della platea media che frequenta, e non solo questo forum chiaramente ... la cosa è generalizzabile su un pò tutti i forums.
Mi permetterò (spero che chi amministra il forum non mi rimproveri :-) ) di splittare il mio intervento in 2, massimo 3 posts, dato che li ritengo abbastanza separati.

In questo post mi preme solo riportare del materiale web che ho trovato sull'argomento, da aggiungere al wiki postato dall'autore del topic:

https://sites.google.com/site/motorolar ... interrupts
https://sites.google.com/one-n.co.uk/am ... pt-signals
http://eab.abime.net/showthread.php?t=97374

trovo interessantissimi i primi due.

chi generava l'interrupt per l'abilitazione dello scheduler di Exec


Detto in modo più chiaro: sugli Amiga, come viene generata/scadenzata la base dei tempi sulla quale lo schedulatore a breve termine del kernel "Exec" degli Amiga decide quando eseguire la prelazione della CPU 68000 da un task N e di conseguenza concedere la CPU al task N+1, dove N e N+1 sono due tasks concorrenti appartenenti alla catena round-robin dei processi pronti di Amiga?

Fra parentesi, credo che lo schedulatore a breve termine sia il solo schedulatore dei kernels Exec degli Amiga classici, dal momento che lo schedulatore a lungo termine, da cui il concetto di swap-area, dovrebbe essere legato alla presenza di un hard-disk sul quale è installato l'OS, quindi è qualcosa di familiare ai PC/Windows recenti o semi-recenti, e non agli Amiga storici come A1000, A500, A2000, A600, A1200, insomma agli Amiga di classe non business, dove di default non è presente un hard-disk, e tanto meno un HDD di bootstrap.

Oppure anche in quegli OSs abbiamo un qualcosa che assomigli alla swap-area, da cui la necessità di un long-term scheduler?

Era derivato dal clock di sistema


In tutti i microcontrollori moderni o semi-moderni, di tipo Cortex A, M e R (io da qualche anno lavoro con gli M, ma credo che la cosa valga per tutti i Cortex, invece per ARM il discorso è leggermente diverso), il clock di sistema (es: un quarzo a 16MHz), tramite PLL dentro il microcontrollore stesso, o comunque tramite limitrofa circuiteria apposita interna al microcontrollore stesso, circuiteria programmabile via FW, diceva il clock di sistema viene convertito in un clock di CPU (in genere è il più alto in frequenza fra i clocks appartenenti all'albero del clock del microcontrollore), e tale clock di CPU, va a cloccare un SysClock device, ovvero un contatore che si trova proprio dentro la CPU Cortex, e a seconda del valore iniziale conferito via FW a tale contatore, questo contatore impiega un certo tempo (il "quanto") dt per arrivare a zero, facendo count-down, e quando arriva a zero, fa sia il reload del valore iniziale (per poter ripetere tale conteggio alla rovescia), sia scatena un interrupt IRQ interno alla CPU Cortex (interno, poichè questo timer non è una periferica esterna al Cortex, come ad esempio gli altri timers general-purpose, è proprio dentro la CPU Cortex), in seguito al quale viene eseguito il corrispondente vettore di interrupt, il quale esegue del codice, il quale determina (sto semplificando moltissimo) se va o non va eseguito il cambio di contesto fra tasks da parte dello short-term scheduler.
Quindi, in definitiva, tramite un timer interno alla CPU oppure un timer general-purpose, il clock di sistema viene generalmente usato per ricavare la base dei tempi per lo scheduler dei processi.

dalla frequenza di rete (mi sembra che i vari A2000,3000 e 4000 derivassero dalla frequenza di rete


Non conosco gli Amiga della classe business, ma solo quelli di fascia "home computer" come A500, A600, A1200.
In questi la frequenza di rete non entra nel case del computer, dato che il convertitore/alimentatore AC/DC è esterno, quindi nel computer arrivano direttamente le tensioni Vdc +12V, -12V, 5V, GND, pertanto in questi Amiga la frequenza di rete sicuramente non può essere fruttata per ricavare alcuna base dei tempi, quindi alcun sincronismo.
Pertanto mi sembra di capire che gli Amiga di fascia alta, come A2000, A3000 e A4000, non avevano l'alimentatore esterno, pertanto la 220Vac@50Hz arrivava direttamente sulla main-board di questi computers?

A generare gli interrupt è Paula


Leggendo i links citati in questo topic, ho scoperto che effettivamente gli interrupts IRQs che provengono dai vari chips (chips che, in seguito a certi eventi, come ad esempio il buffer Rs232 TX vuoto, oppure il buffer Rs232 RX pieno, scatenato tali IRQs) vanno tutti a confluire su Paula, e dentro Paula ci deve essere una circuiteria simile allo storico integrato TLL 74LS148, ovvero un encoder (un codificatore) a priorità, per cui se arriva IRQ6 alto (prodotto da un device collegato alla pista IRQ6), a prescindere dallo stato logico degli altri IRQn, ebbebe ... Paula codifica tale situazione come:
_IPL[2,1,0] = 1,1,0 = livello 6 = massima priorità (ad eccezione del livello 7, quindi 1,1,1 = NMI = interrupt non mascherabile)
pertanto la CPU 68000 riceve/legge questo bus:
_IPL[2,1,0] = 1,1,0
scatta l'eccezione al altissima priorità (può interrompere altri IRQs con priorità minore, quindi nel 68000 gli interrupts sembrano essere nested), quindi viene eseguito il vettore di quel IRQ.

Tuttavia il mio dubbio è:

finora abbiamo parlato di interrupts normali, scatenati da devices normali (floppy disk driver, porta seriale Rs232, ecc ...), ma ancora non ho capito/visto come viene gestito l'interrupt per scadenzare la base dei tempi dello scheduler di Exec, come questo IRQ "particolare" sarebbe gestito da Paula.
Per adesso sono d'accordo che Paula gestisce tutti gli IRQs scatenati dai devices, dalle periferiche, quindi Paula è di fatto il "NVIC" (Nested Vectored Interrupt Controller) dei microcontrollori basati su CPU Cortex, ma al momento non ho capito come Paula gestirebbe l'IRQ che produce il tick di sistema (da dove arriva questo IRQ??), il quale impone la base dei tempi (dt = 80ms) per lo switch-context dei tasks su Amiga.

N.B. Ho unito le discusioni per i motivi già citati in altre occasioni !
Avatar utente
AMG_Novice_Usr

Veterano
 
Messaggi: 271
Iscritto il: ven mag 01, 2020 10:10 am
Località: Pisa

Re: Scheduling AmigaOS e interrupt

Messaggioda clros » dom ago 08, 2021 10:54 am

AMG_Novice_Usr ha scritto:Argomento interessantissimo e molto profondo ... e infatti (purtroppo) ampliamente latitato nel forum.
Ovviamente non è "colpa" del forum in sè, ma semplicemente della mancanza di competenze "profonde" su Amiga da parte della platea media che frequenta, e non solo questo forum chiaramente ... la cosa è generalizzabile su un pò tutti i forums.

Purtroppo hai ragione, sono argomenti qui in Italia abbastanza di nicchia, da quello che vedo se ne parla solo tra universitari e tra pochissimi che lavorano nel settore dei sistemi operativi.
E' anche per questo se in Italia nn esiste la tecnologia informatica o elettronica, importiamo e ci stracciamo le vesti per annunci di marketing di prodotti belli, appariscenti e costosi, ma senza avere la più pallida idea di come funzionino.
Niente di male, ci mancherebbe, però da un pubblico amighista che si vanta(va) di avere avuto il primo sistema operativo multitasking (cosa parzialmente vera), mi aspetterei una maggiore comprensione e conoscenza degli aspetti caratteristici di AmigaOS.
Però, anche leggendo i vari interventi, a parte pochissimi, gli amighisti ricordano i loro sistemi principalmente per i giochi e non per avber messo a disposizione di tutti alcune caratteristiche che poi sono diventate standard.
Semplificando è come sentire dire "ho usato Amiga, che negli anni '80 era il migliore computer del mondo". Ma quando gli chiedi il perchè era tra i migliori al mondo ti rispondondono "per i giochi!". Stendiamo un velo...


In questo post mi preme solo riportare del materiale web che ho trovato sull'argomento, da aggiungere al wiki postato dall'autore del topic:

https://sites.google.com/site/motorolar ... interrupts
https://sites.google.com/one-n.co.uk/am ... pt-signals
http://eab.abime.net/showthread.php?t=97374


Grazie, conoscevo già la gestione degli interrupt diretta da parte del 68000 (primo link) ma non avevo mai capito come fosse integrata in Amiga. All'epoca i nternet non esisteva e i manuali erano costosi e dovevano arrivare direttamente dagli USA (i RKRM mi arrivarono dopo 40-50 giorno averli ordinati). Nn ho mai avuto l'Hardware reference manual.


Detto in modo più chiaro: sugli Amiga, come viene generata/scadenzata la base dei tempi sulla quale lo schedulatore a breve termine del kernel "Exec" degli Amiga decide quando eseguire la prelazione della CPU 68000 da un task N e di conseguenza concedere la CPU al task N+1, dove N e N+1 sono due tasks concorrenti appartenenti alla catena round-robin dei processi pronti di Amiga?


Qui mi viene un'altra domanda: AmigaOS 4.x usa ancora RoundRobin come politica di scheduling?

Fra parentesi, credo che lo schedulatore a breve termine sia il solo schedulatore dei kernels Exec degli Amiga classici, dal momento che lo schedulatore a lungo termine, da cui il concetto di swap-area, dovrebbe essere legato alla presenza di un hard-disk sul quale è installato l'OS, quindi è qualcosa di familiare ai PC/Windows recenti o semi-recenti, e non agli Amiga storici come A1000, A500, A2000, A600, A1200, insomma agli Amiga di classe non business, dove di default non è presente un hard-disk, e tanto meno un HDD di bootstrap.

Oppure anche in quegli OSs abbiamo un qualcosa che assomigli alla swap-area, da cui la necessità di un long-term scheduler?


Sinceramente non lo so, non mi sono mai posto il problema a questo livello; credo però che una swap area e la paginazione dei processi sia stata introdotta sempre con gli AmigaNG (4.x)


...
Quindi, in definitiva, tramite un timer interno alla CPU oppure un timer general-purpose, il clock di sistema viene generalmente usato per ricavare la base dei tempi per lo scheduler dei processi.


Interessante e direi anche immediata come soluzione. Chiaramente, il valore del contatore deve essere impostato in base al clock di sistema...

Pertanto mi sembra di capire che gli Amiga di fascia alta, come A2000, A3000 e A4000, non avevano l'alimentatore esterno, pertanto la 220Vac@50Hz arrivava direttamente sulla main-board di questi computers?


Gli A2000 e 4000 (ma credo anche i 3000) hanno un alimentatore tipo alimentatore PC che abbassa la tensione di rete, la filtra e la rende disponibile sulla MB tramite connettore. Sono ragionevolmente sicuro che l'alimentatore ricavasse anche un segnale dalla frequenza di rete (intercettando il passaggio per lo zero della sinusoide della V di rete) e lo rendesse disponibile alla Mainboard.

Tuttavia il mio dubbio è:

finora abbiamo parlato di interrupts normali, scatenati da devices normali (floppy disk driver, porta seriale Rs232, ecc ...), ma ancora non ho capito/visto come viene gestito l'interrupt per scadenzare la base dei tempi dello scheduler di Exec, come questo IRQ "particolare" sarebbe gestito da Paula.

E' possibile che venga sollevato un interrupt software (TRAP)?

OT
Sei molto esperto di questioni a "basso livello", hai esperienza di programmazione/progettazione FPGA? eventualmente, scrivimi in privato!
/OT
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Scheduling AmigaOS e interrupt

Messaggioda AMIGASYSTEM » dom ago 08, 2021 11:33 am

clros ha scritto:Semplificando è come sentire dire "ho usato Amiga, che negli anni '80 era il migliore computer del mondo". Ma quando gli chiedi il perchè era tra i migliori al mondo ti rispondondono "per i giochi!". Stendiamo un velo...

Questi sono gran parte degli Amighisti di oggi che per un nuovo gioco che in passato avremmo cestinato senza neanche guardarlo gli dedicano intere pagine sui forum, poi magari esce qualche bella utilità per il sistema operativo e la ignorano completamente, altro che velo, offendono il nome di Amiga e di quello che ha rappresentato.

E pensare che una volta si aspettava con ansia i vari aggiornamenti di Amiga OS per mostrarli ai nostri Amici PCisti più arretrati.

Se Amiga deve continuare a vivere bisogna tagliare con il passato e creare qualcosa di nuovo e potente come Amiga è stato, per il resto e per le vecchie cose la migliore scelta sotto tutti i punti di vista resta l'emulazone che ormai rasenta la perfezione.
Immagine - AROS One Home Site - AfA One - AROS One x86 - AROS One 68K - WinUAE OS 4.1 -

Miei AMIGA
Amiga 4000/Cyberstorm MK II/060/Picasso RAM 6MB Kick 3.1
Amiga 1200/030 Ram 16 Mega HD 500 MB
Amiga 1200/040 Ram 32 Mega HD 500 MB
Amiga 600 HD 20 MB
Amiga 600 Doppio Kickstart 2.05-1.3
Amiga 500 Plus Doppio Kickstart 204-1.3
Amiga 500
CD32/SX-32 MK1 RAM 8 MB HD 4G
CD32 Standard
Avatar utente
AMIGASYSTEM

Staff
 
Messaggi: 5511
Iscritto il: ven lug 25, 2008 8:39 pm
Località: Brindisi

Re: Scheduling AmigaOS e interrupt

Messaggioda AMG_Novice_Usr » dom ago 08, 2021 7:03 pm

il primo sistema operativo multitasking (cosa parzialmente vera)


Cosa intendi esattamente per “cosa parzialmente vera”?
Ovviamente i complessi e costosissimi frameworks Unix, grossi come stanze, che solo università ed enti di ricerca o grosse aziende avevano, quelli erano già in multitasking, è chiaro … pertanto Amiga 1000 / Lorraine non è stato il primo computer multitasking.
È forse stato il primo home-computer per le masse con multitasking?
Se no, quale è stato il primo? (scusate il parziale OT …).

A parte il fatto che “multitasking” vuol dire poco o nulla, bisognerebbe vedere come è realizzato il multitasking, la politica di scheduling, cosa si intende per “priorità” di un task ecc …

Fra parentesi, è una cosa che ancora non ho ben capito:
si vede nella MountList nei sistemi 1.3 … in ogni entry-point della MountList, abbiamo un device, il suo header (spesso questo risiede in L: ), vediamo la grandezza dell’eventuale buffer, la grandezza dello stack, poi globvec = -1, che non so cosa voglia dire, e poi il valore della priorità.

Ecco, chissà cosa si intende esattamente per “priorità” nel mondo Amiga classici.
Io ad esempio lavoro come firmwarista in un’azienda, e abbiamo sviluppato un nostro OS proprietario per le nostre schede, traendo spunto da FreeRTOS. Nel mondo degli RTOS per applicazioni industriali embedded, spesso la “priorità” non è altro che il numero N di slot temporali (1 slot = tempo che ci mette il contatore del tick di sistema ad andare dal valore massimo impostato a zero facendo count-down, quindi a scatenare il tick-sys-interrupt che scadenza la base dei tempi dello scheduler) durante i quali lo schedulatore NON può fare prelazione della CPU, ovvero durante ad esempio N=4 slots temporali (4 x 1ms, ad esempio), la CPU rimane nelle mani del processo (=nessun cambio di contesto è possibile, per nessuna ragione) che la detiene attualmente, l’OS non può sottrargliela, a meno che non sia il processo stesso, magari perché ha finito il lavoro prima del previsto, a dire, tramite un’API apposita, all’OS: “OS, ho già finito, ce l’ho fatta in 2 slots anziché 4, riprenditi pure la CPU”. Questa tecnica si chiama in gergo “cooperative”.

non per aver messo a disposizione di tutti alcune caratteristiche che poi sono diventate standard


Come ad esempio il plug’n’play, o “hot-plug”, come dir si voglia (Autoconfig, in gergo amigoso).
Mi pare addirittura a partite dall’OS 1.2, ma a causa di un bug, divenne realmente funzionante a partire dall’OS 1.3, comunque stiamo parlando (correggetemi se sbaglio) di 1987/1988.

Microsoft ha fornito il suo primo plug’n’play realmente funzionante con Windows95!!
E forse un altro motivo di primato o comunque semi-primato amigoso è il fatto che la CPU (68000, nel nostro caso) viene messa in cooperazione con chips custom per motivi di coadiuvazione grafica e sonora.

Fino a poco tempo fa pensavo che Amiga fosse il primo home computer dove la CPU venisse aiutata da chips custom come Paula oppure Denise, ma leggendo qualche riga di Atari ST520 e fac-simili, si evince (parlo da ignorante disinformato) che forse anche lì si aveva una forma di cooperazione audio-visiva in parallelo al lavoro della CPU … correggetemi/eruditemi se sbaglio.

Non ho mai avuto l'Hardware reference manual


Lo trovai tempo fa su Ebay, un venditore dall’America, ad un prezzo esorbitante, qualcosa come 150 euro per 2 o 3 libri, se non erro … Ovviamente non me lo potei permettere … davvero un lusso!

Qui mi viene un'altra domanda: AmigaOS 4.x usa ancora RoundRobin come politica di scheduling?


Non lo so … ad ogni modo il “RoundRobin”, ovvero il “furto di ciclo”, lo dice la parola stessa, vuol dire “rubare il ciclo”, ovvero togliere la CPU al task che correntemente detiene la CPU stessa per darla ad un altro task (… correggetemi se sbaglio … io sono elettronico, non informatico): bisogna vedere sotto quali condizioni e in che modo viene sottratto il ciclo al task N e secondo quali logiche viene data la CPU al task N+1 … credo che sia questo a fare la differenza fra le varie forme di “RoundRobin”.

la paginazione dei processi sia stata introdotta sempre con gli AmigaNG (4.x)


Si, so per certo che in OS4.x abbiamo la MMU, quindi il concetto di memoria virtuale: ogni processo pensa di essere da solo, di iniziare dall’address 0, come se fosse davvero l’unico processo, come nei firmware “bare metal” che si scrivono per le piccole CPU (piccoli PIC, piccoli Atmel, ecc…) senza OS sopra, inoltre ogni processo pensa di avere per se più memoria RAM di quella effettivamente messa a disposizione dal sistema, questo grazie al fatto che una parte di RAM “creduta” da ogni programma non è RAM in effetti, bensì una porzione di disco, una porzione di swap-area, e inoltre di conseguenza abbiamo l’impaginazione (le pagine dei processi non spesso utilizzate, e/o non frequentemente utilizzate, vanno sul disco, in swap-area).

Chiaramente, il valore del contatore deve essere impostato in base al clock di sistema...


Certo, e chiaramente anche in base a quanto vuoi fissare il tuo system quantum tick.
Per lavoro, noi nel nostro OS proprietario lo abbiamo fissato a 100us.

Gli A2000 e 4000 (ma credo anche i 3000) hanno un alimentatore tipo alimentatore PC
che abbassa la tensione di rete, la filtra e la rende disponibile sulla MB tramite connettore.


Alimentatore tipo PC … quindi stiamo parlando di un ponte a 4 diodi (ponte di Leo Graetz) che realizza un raddrizzatore a doppia semionda (=viene fatta passare quasi trasparentemente la semi-onda positiva della “sinusoide” di rete, a meno della caduta di tensione sui 2 diodi in conduzione, e poi viene “invertito il segno” della semi-onda negativa di rete, sempre al netto delle cadute di tensione in serie sugli altri 2 diodi in conduzione ), con in serie una squadra RC come filtro passa basso per reiettare le armoniche multiple di f0=50Hz.

Quindi alla MB arriva la tensione Vdc, quindi raddrizzata e filtrata dalle armoniche superiori Nxf0.
Gli alimentatori di PC, da notebook insomma, quelli che escono con la 19Vdc, sono tutti così.
Nei connettori quadrati Amiga, quelli a 5 poli, abbiamo solo Vdc continue (GND, 12V, -12V, 5V).

E' possibile che venga sollevato un interrupt software (TRAP)?


Può essere, non lo so.
Nei microcontrollori di oggi, l’IRQ “TRAP”, ovvero una “trappola” per il program counter PC della CPU, viene scatenato quando si fa il debugging, ed il PC passa attraverso un break-point da noi posizionato presso una nostra riga di codice, codice che appunto stiamo debuggando. Il PC si ferma presso quel break-point proprio in ragione dell’ingresso del PC stesso in un vettore di interrupt TRAP, da cui non esce, fino a quando non glielo consentiamo noi tramite IDE/toolchain di compiling/linking/debugging (così da far tornare il nostro FW “under-debugging” in condizione di free-running).
Avatar utente
AMG_Novice_Usr

Veterano
 
Messaggi: 271
Iscritto il: ven mag 01, 2020 10:10 am
Località: Pisa

Re: Scheduling AmigaOS e interrupt

Messaggioda AMG_Novice_Usr » dom ago 08, 2021 7:22 pm

Sei molto esperto di questioni a "basso livello", hai esperienza di programmazione/progettazione FPGA? eventualmente, scrivimi in privato!


Scrissi un libro, qualche anno fa, sull'argomento, quando ebbi modo di occuparmene un pò:

https://www.buecher.de/shop/mathematik- ... 922f4puf1/

(mi faccio un briciolo di pubblicità, per quel pochissimo che può valere, dopo ore e ore di notti insonni a scrivere ... se contrario al regolamento del sito, tolgo subito, altrimenti linko altri miei libri su argomenti affini ;-) )

poi ho abbandonato il settore FPGA per anni ... solo adesso, lavoro permettendo, sto cercando lentamente/faticosamente di riaffacciarmi a tale mondo.
Su questa cosa, ci risentiamo meglio in privato! ;-)
Avatar utente
AMG_Novice_Usr

Veterano
 
Messaggi: 271
Iscritto il: ven mag 01, 2020 10:10 am
Località: Pisa

Re: Scheduling AmigaOS e interrupt

Messaggioda AMG_Novice_Usr » dom ago 08, 2021 7:44 pm

offendono il nome di Amiga e di quello che ha rappresentato.


Provo il rammarico di non aver vissuto l'esaltante epopea Amiga nel suo periodo nevralgico/contemporaneo: avevo 7 anni quando Babbo Natale mi portò il mio primo A600, dopo che io ebbi modo di vedere (e di sbavare sul) A500Plus di mio cugino.
All'epoca ero solo interessato ai videogiochi, non ero interessato a cosa ci fosse dentro a quella meravigliosa macchina ... chissà, se avessi avuto qualche anno in più, forse avrei agganciato, seppur sulla coda, l'epopea Amiga, e magari anche solo annusato ciò che rappresentò per molti di voi.
Ad ogni modo, meglio tardi che mai!

Se Amiga deve continuare a vivere bisogna tagliare con il passato e creare qualcosa di nuovo e potente come Amiga è stato, per il resto e per le vecchie cose la migliore scelta sotto tutti i punti di vista resta l'emulazone che ormai rasenta la perfezione.


Amiga, a mio modestissimo avviso, è come un bel veliero o galeone del 1600 ... elegante, ne ammiriamo l'estetica, le funzionalità/prestazioni innovative per l'epoca, la superiorità nei confronti dei competitors dell'epoca, gli spunti che ha concesso alle navi/macchine che sono succedute ... ma alla fine della fiera, il galeone del 1600 rimane un bell'oggetto del passato ... adesso ci sono i sommergibili oceanici a propulsione per fissione nucleare, e anche questi stanno per diventare obsoleti, perchè fra poco avremo quelli a propulsione per fusione nucleare!

Amiga è un oggetto stupendo in tutto, ma è del passato, e come tale deve rimanere, pertanto io sono per l'originale, per la macchina fisica, non molto espansa (se metti su una Fiat500 il motore di una Ferrari testa rossa, questa 500 che 500 è?), così da mantenere, almeno a grandi linee di massima, la connotatura originale dell'oggetto, che affascina (secondo me) proprio per questo.

Un A500 con dentro un cuore di Pentium quad-core @ 3GHz non è più un Amiga 500 ... a quel punto meglio l'emulazione, se sono le prestazioni ad essere importanti per l'utilizzatore.

Per me è importante scoprire come siamo arrivati a questo punto: siamo passati dalle schede perforate, poi alle cartucce e ai floppy disks, ecc ... usare il passato, capirlo, apprezzare meglio ed in modo più consapevole il presente, e forse capire qualcosa del domani, che alla fine sarà un affinamento delle tecniche passate, questo almeno secondo me ;-)
Avatar utente
AMG_Novice_Usr

Veterano
 
Messaggi: 271
Iscritto il: ven mag 01, 2020 10:10 am
Località: Pisa

Re: Scheduling AmigaOS e interrupt

Messaggioda AMIGASYSTEM » dom ago 08, 2021 8:04 pm

AMG_Novice_Usr ha scritto:Amiga è un oggetto stupendo in tutto, ma è del passato, e come tale deve rimanere, pertanto io sono per l'originale, per la macchina fisica, non molto espansa (se metti su una Fiat500 il motore di una Ferrari testa rossa, questa 500 che 500 è?), così da mantenere, almeno a grandi linee di massima, la connotatura originale dell'oggetto, che affascina (secondo me) proprio per questo.

Questo è vero senza alcun dubbio, io mi riferivo alle tante Schede uscite ultimamente a mio avviso inutili perchè troppo veloci per il vecchio software OS3 giochi compresi e troppo lente per nuove Applicazioni OS3, Porting o sistemi RTG di una certa complessità, Schede meno potenti di un Pentium di 30 anni fa e che dopo qualche mese diventano vecchie senza avere prima il giusto supporto per la compatibilità e la stabilità.
Un A500 con dentro un cuore di Pentium quad-core @ 3GHz non è più un Amiga 500 ... a quel punto meglio l'emulazione, se sono le prestazioni ad essere importanti per l'utilizzatore.

No non è questo che intendevo ma un Amiga "nuovo" basato su nuovissimo hardware con la potenza di un PC attuale e un OS Moderno e potente basato sulla filosofia Amiga

Visto la tua passione per Amiga ti consiglio di dare un'occhiata al sistema AROS che altro non è che un OS Amiga che gira su X86, magari con la tua esperienza potresti creare qualcosa per la comunità, AROS è ancor più smanettevole di AmigaOS oltre ad essere uguale, nessun altro sistema Amiga NG è similare in tutto è per tutto, allego link del mio portale dove potrai avere qualche informazione in più.

https://sites.google.com/view/arosone
Immagine - AROS One Home Site - AfA One - AROS One x86 - AROS One 68K - WinUAE OS 4.1 -

Miei AMIGA
Amiga 4000/Cyberstorm MK II/060/Picasso RAM 6MB Kick 3.1
Amiga 1200/030 Ram 16 Mega HD 500 MB
Amiga 1200/040 Ram 32 Mega HD 500 MB
Amiga 600 HD 20 MB
Amiga 600 Doppio Kickstart 2.05-1.3
Amiga 500 Plus Doppio Kickstart 204-1.3
Amiga 500
CD32/SX-32 MK1 RAM 8 MB HD 4G
CD32 Standard
Avatar utente
AMIGASYSTEM

Staff
 
Messaggi: 5511
Iscritto il: ven lug 25, 2008 8:39 pm
Località: Brindisi

Re: Scheduling AmigaOS e interrupt

Messaggioda clros » dom ago 08, 2021 10:10 pm

Cosa intendi esattamente per “cosa parzialmente vera”?
Ovviamente i complessi e costosissimi frameworks Unix, grossi come stanze, che solo università ed enti di ricerca o grosse aziende avevano, quelli erano già in multitasking, è chiaro … pertanto Amiga 1000 / Lorraine non è stato il primo computer multitasking.
È forse stato il primo home-computer per le masse con multitasking?

Esatto, esistevano già altri OS con multitasking con prelazione. Unix a parte, quando iniziai a lavorare nel settore, gli studi di commercialisti, notai e professionisti vari erano pieni di 286/386 con Xenix (di Microsoft) e Novell Netware. Molti comuni usavano minicomputer Olivetti (con Motorola 68020!) e una qualche variante di Unix
A breve uscì WindowsNT (intorno ai primi anni '90) il cui progetto era dello stesso autore di VMS per le macchine Digital VAX. Sostituì rapidamente Xenix e company. (al primo anno di Università, durante la presentazione del Pentium, ricordo benissimo le parole del tipo di Intel:"WindownNT sta rubando grosse fette di mercato a Unix")

EDIT: mi sono ricordato (e ho trovato conferma su Wikipedia) che il primo OS multitasking per computer "home" è stato il SinclairQL, circa un anno prima di Amiga.

Se no, quale è stato il primo? (scusate il parziale OT …).

Sinceramente non so, forse un qualche computer IBM degli anni '50

A parte il fatto che “multitasking” vuol dire poco o nulla, bisognerebbe vedere come è realizzato il multitasking, la politica di scheduling, cosa si intende per “priorità” di un task ecc …

Quello degli amiga classici è il più "semplice" di tutti! :ahah:

tramite un’API apposita, all’OS: “OS, ho già finito, ce l’ho fatta in 2 slots anziché 4, riprenditi pure la CPU”. Questa tecnica si chiama in gergo “cooperative”.

Ne parlavo tempo fa con qualcuno sul forum che diceva che Windows non ha multitasking con prelazione :riflette: (ma ti pare?? :ahah: :ahah: :ahah: )



E forse un altro motivo di primato o comunque semi-primato amigoso è il fatto che la CPU (68000, nel nostro caso) viene messa in cooperazione con chips custom per motivi di coadiuvazione grafica e sonora.

Sulle riviste dell'epoca qualcuno faceva notare come in realtà una CPU coadiuvata da coprocessori fosse già presente sul Commodore 64 (6510 + SID + VIC). Che poi su amiga l'architettura (cooperazione) tra i coprocessori sia differente, allora questo è un altro discorso.

Fino a poco tempo fa pensavo che Amiga fosse il primo home computer dove la CPU venisse aiutata da chips custom come Paula oppure Denise, ma leggendo qualche riga di Atari ST520 e fac-simili, si evince (parlo da ignorante disinformato) che forse anche lì si aveva una forma di cooperazione audio-visiva in parallelo al lavoro della CPU … correggetemi/eruditemi se sbaglio.


Non conosco bene l'architettura degli Atari. Di sicuro una macchina molto vicina ad Amiga (e superiore per diversi aspetti) era venduta in Giappone:
https://it.wikipedia.org/wiki/Sharp_X68000

Non ho mai avuto l'Hardware reference manual


Lo trovai tempo fa su Ebay, un venditore dall’America, ad un prezzo esorbitante, qualcosa come 150 euro per 2 o 3 libri, se non erro … Ovviamente non me lo potei permettere … davvero un lusso!


Ma non si trovano in PDF gratuitamente?


Gli alimentatori di PC, da notebook insomma, quelli che escono con la 19Vdc, sono tutti così.
Nei connettori quadrati Amiga, quelli a 5 poli, abbiamo solo Vdc continue (GND, 12V, -12V, 5V).

No, io intendo un alimentatore metallico come quello che si trova nei case desktop/tower/minitower dei normali PC.
E comunque si, gli alimentatori amiga fornivano un segnale di TICK, direttamenete prelevato dalla rete, cosa che i normali alimentatori AT/ATX per PC non fanno.
Ultima modifica di clros il lun ago 09, 2021 6:30 am, modificato 1 volta in totale.
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Scheduling AmigaOS e interrupt

Messaggioda clros » dom ago 08, 2021 10:37 pm

Questi sono gran parte degli Amighisti di oggi che per un nuovo gioco che in passato avremmo cestinato senza neanche guardarlo gli dedicano intere pagine sui forum, poi magari esce qualche bella utilità per il sistema operativo e la ignorano completamente, altro che velo, offendono il nome di Amiga e di quello che ha rappresentato.

Purtroppo eravamo solo in pochi a vedere e capire cosa fosse Amiga.
Oggettivamente però è innegabile che la maggior parte delle persone usavano Amiga solo per giocare, dell'OS e delle caratteristiche dell'HW non gliene fregava nulla.

E pensare che una volta si aspettava con ansia i vari aggiornamenti di Amiga OS per mostrarli ai nostri Amici PCisti più arretrati.

Però, dal mio punto di vista le uniche release degne di nota sono state le 2.04 e la 3.0

Se Amiga deve continuare a vivere bisogna tagliare con il passato e creare qualcosa di nuovo e potente come Amiga è stato, per il resto e per le vecchie cose la migliore scelta sotto tutti i punti di vista resta l'emulazone che ormai rasenta la perfezione.

Bisognava tagliare con il passato 25 anni fa, non ora. Ora non ha senso.
Esistono centinaia/migliaia di OS che fanno molto meglio di qualsiasi versione di AmigaOS e funzionano su hardware standard. Perchè investire ancora su OS obsoleto? Non ha senso.
Ha sicuramente senso emulare per ricordarsi di un sistema che nel passato ha avuto un qualche peso nella nostra storia personale.
Ultima modifica di clros il lun ago 09, 2021 6:28 am, modificato 1 volta in totale.
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Scheduling AmigaOS e interrupt

Messaggioda AMIGASYSTEM » dom ago 08, 2021 11:06 pm

clros ha scritto:Però, dal mio punto di vista le uniche release degne di nota sono state le 2.04 e la 3.0

Si perchè erano sistemi molto avanzati per il periodo, i successivi sono arrivati in ritardo e non erano più innovativi e competitivi rispetti ad altri OS usciti nel periodo.
Bisognava tagliare con il passato 25 anni fa, non ora. Ora non ha senso.
Esistono centinaia/migliaia di OS che fanno molto meglio di qualsiasi versione di AmigaOS e funzionano su hardware standard. Perchè investire ancora su OS obsoleto? Non ha senso.

Vero ma Android lo insegna, in pochi anni si è diffuso nonostante sia un giocattolino, un OS Amiga N°1 come lo era negli anni 80 potrebbe fare anche oggi la differenza e riprendersi il suo posto d'onore, certo occorrerebbe qualcuno che sovvenzionasse e credesse fermamente nel progetto.
Ha sicuramente senso emulare per ricordarsi di un sistema che nel passato ha avuto un qualche peso nella nostra storia personale.

Si perchè puoi emulare qualsiasi modello Amiga quasi alla perfezione senza spendere soldi su schede inappropriate allo scopo.
Immagine - AROS One Home Site - AfA One - AROS One x86 - AROS One 68K - WinUAE OS 4.1 -

Miei AMIGA
Amiga 4000/Cyberstorm MK II/060/Picasso RAM 6MB Kick 3.1
Amiga 1200/030 Ram 16 Mega HD 500 MB
Amiga 1200/040 Ram 32 Mega HD 500 MB
Amiga 600 HD 20 MB
Amiga 600 Doppio Kickstart 2.05-1.3
Amiga 500 Plus Doppio Kickstart 204-1.3
Amiga 500
CD32/SX-32 MK1 RAM 8 MB HD 4G
CD32 Standard
Avatar utente
AMIGASYSTEM

Staff
 
Messaggi: 5511
Iscritto il: ven lug 25, 2008 8:39 pm
Località: Brindisi

Re: Scheduling AmigaOS e interrupt

Messaggioda clros » lun ago 09, 2021 6:20 am

Cosa intendi esattamente per “cosa parzialmente vera”?
Ovviamente i complessi e costosissimi frameworks Unix, grossi come stanze, che solo università ed enti di ricerca o grosse aziende avevano, quelli erano già in multitasking, è chiaro … pertanto Amiga 1000 / Lorraine non è stato il primo computer multitasking.
È forse stato il primo home-computer per le masse con multitasking?

Esatto, esistevano già altri OS con multitasking con prelazione. Unix a parte, quando iniziai a lavorare nel settore, gli studi di commercialisti, notai e professionisti vari erano pieni di 286/386 con Xenix (di Microsoft) e Novell Netware. Molti comuni usavano minicomputer Olivetti (con Motorola 68020!) e una qualche variante di Unix
A breve uscì WindowsNT (intorno ai primi anni '90) il cui progetto era dello stesso autore di VMS per le macchine Digital VAX. Sostituì rapidamente Xenix e company.
(nel 1993/94, quando frequentavo il primo anno di Università, alla presentazione dell'Intel Pentium, mi colpirono le parole del tipo di Intel: "WindowsNT sta rubando grosse fette di mercato a Unix").

EDIT: mi sono ricordato (e ho trovato conferma su wikipedia) che, se si considerano i computer "home", il primo ad avere un OS multitasking è stato il SinclairQL, circa un anno prima di Amiga.

Se no, quale è stato il primo? (scusate il parziale OT …).

Sinceramente non so, forse un qualche computer IBM degli anni '50

A parte il fatto che “multitasking” vuol dire poco o nulla, bisognerebbe vedere come è realizzato il multitasking, la politica di scheduling, cosa si intende per “priorità” di un task ecc …

Quello degli amiga classici è il più "semplice" di tutti! (Round Robin priorizzato) :ahah:

tramite un’API apposita, all’OS: “OS, ho già finito, ce l’ho fatta in 2 slots anziché 4, riprenditi pure la CPU”. Questa tecnica si chiama in gergo “cooperative”.

Ne parlavo tempo fa con qualcuno sul forum che diceva che Windows non ha multitasking con prelazione :riflette: (ma ti pare?? :ahah: :ahah: :ahah: )



E forse un altro motivo di primato o comunque semi-primato amigoso è il fatto che la CPU (68000, nel nostro caso) viene messa in cooperazione con chips custom per motivi di coadiuvazione grafica e sonora.

Sulle riviste dell'epoca qualcuno faceva notare come in realtà una CPU coadiuvata da coprocessori fosse già presente sul Commodore 64 (6510 + SID + VIC). Che poi su amiga l'architettura (cooperazione) tra i coprocessori sia differente, allora questo è un altro discorso.

Fino a poco tempo fa pensavo che Amiga fosse il primo home computer dove la CPU venisse aiutata da chips custom come Paula oppure Denise, ma leggendo qualche riga di Atari ST520 e fac-simili, si evince (parlo da ignorante disinformato) che forse anche lì si aveva una forma di cooperazione audio-visiva in parallelo al lavoro della CPU … correggetemi/eruditemi se sbaglio.


Non conosco bene l'architettura degli Atari. Di sicuro una macchina molto vicina ad Amiga (e superiore per diversi aspetti) era venduta in Giappone:
https://it.wikipedia.org/wiki/Sharp_X68000

Non ho mai avuto l'Hardware reference manual


Lo trovai tempo fa su Ebay, un venditore dall’America, ad un prezzo esorbitante, qualcosa come 150 euro per 2 o 3 libri, se non erro … Ovviamente non me lo potei permettere … davvero un lusso!


Ma non si trovano in PDF gratuitamente?


Gli alimentatori di PC, da notebook insomma, quelli che escono con la 19Vdc, sono tutti così.
Nei connettori quadrati Amiga, quelli a 5 poli, abbiamo solo Vdc continue (GND, 12V, -12V, 5V).

No, io intendo un alimentatore metallico come quello che si trova nei case desktop/tower/minitower dei normali PC.
E comunque si, gli alimentatori amiga fornivano un segnale di TICK, direttamenete prelevato dalla rete, cosa che i normali alimentatori AT/ATX per PC non fanno.[/quote]
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738

Re: Scheduling AmigaOS e interrupt

Messaggioda clros » lun ago 09, 2021 6:40 am

AMIGASYSTEM ha scritto:Vero ma Android lo insegna, in pochi anni si è diffuso nonostante sia un giocattolino,

nonostante sia un giocattolino, Android è comunque un OS moderno, con caratteristiche anni luce lontani da AmigaOS. E' stato realizzato su base Linux affinandolo al contesto che più gli si addiceva, ma perchè aveva delle caratteristiche di base che lo permettevano.
un OS Amiga N°1 come lo era negli anni 80 potrebbe fare anche oggi la differenza e riprendersi il suo posto d'onore, certo occorrerebbe qualcuno che sovvenzionasse e credesse fermamente nel progetto.

Io non credo. Perchè mai qualcuno dovrebbe scegliere AmigaOS? Che caratteristiche rilevanti può avere da fare in modo che qualcuno possa minimamente interessarsene?
Perchè mai qualcuno dovrebbe investire dei soldi, sapendo che un qualsiasi Linux/BSD/ACME_OS può costituire la base per qualsiasi cosa? O che scrivendosi un OS da zero non riesca a fare molto meglio?

AmigaOS è solo (prei)storia, lo si ricorda con piacere, ma non c'è nessun motivo valido perchè si torni ad usarlo.
Only AMIGA makes it possible !!
La colpa è sempre del Kernel!!
...un bit è formato da 8 byte...

Claudio "CP" La Rosa
Avatar utente
clros

Supremo
 
Messaggi: 3473
Iscritto il: ven mag 07, 2004 2:41 pm
Località: SYS 64738


Torna a Programmazione su Amiga

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

cron