Menω principale
 Notizie
 Grafica
 Forum
 Links
 Retro Trailer
 Recensioni
 Modelli Amiga
 Storia Amiga
 Retro-Gamers
 Lista Utenti
 Contatti
 Policy sito
Ricerca Google

Login

Nick


Password


Comandi

[b]-[/b]
Attiva/disattiva il neretto

[i]-[/i]
Attiva/disattiva l'italico

[br]
Inserisce un a capo

[p]
Inserisce un interruzzione di paragrafo

[center]-[/center]
Attiva/disattiva allineamento centrato

[justify]-[/justify]
Attiva/disattiva allineamento giustificato

[box]-[/box]
Apre/chiude una tabella

[boxcell] o [boxcell=n]-[/boxcell]
Apre/chiude una cella

[boxrow]-[/boxrow]
Apre/chiude una linea di celle

[quote]-[/quote]
Crea un box per quotare commenti.

[quote=titolo]-[/quote]
Come Quote ma con titolo.

[size=valore]-[/size]
Imposta la grandezza del carattere

[color=valore]-[/color]
Imposta il colore del testo.

[url=indirizzo]-[/url]
Attiva una porzione di testo

[img]indirizzo[/img]
Visualizza l'immagine indicata in 'indirizzo'.

[img;w=px;h=px;mini=%]indirizzo[/img]
Come sopra, w ed h sono base e altezza in pixel o mini θ la percentuale di riduzione dell'immagine. Con mini=std l'immagine avrΰ una grandezza predefinita

Rispondi ad un commento
Regolamento Commenti e Topic

Tutti gli utenti che usufruisco di questo servizio sono pregati di rispettare poche semplici regole:

- Non e' possibile inserire commenti/topic contenenti volgarita', torpiloquio e/o offese di vario genere.

- E' assolutamente vietato inserire immagini e/o link a sfondo pornografico.

- Sarebbe preferibile evitare commenti mirati alla polemica e alla provocazione.

- Si ricorda che per netiquette, scrivere maiuscolo equivale a "URLARE", non va quindi bene scrivere tutto un post in maiuscolo.

- E' necessario ricordare che non e' bene fare commenti sprezzanti riguardo argomenti quali: religione, politica e la multietnia

- Non sono molto tollerati commenti/topic con eccessive abbreviazioni stile SMS.

- Eventuali critiche all'operato dei moderatori saranno punite a discrezione degli stessi.

- E' consigliabile rileggere sempre i commenti/topic prima di postarli, onde evitare lo spopolare di commenti ricchi di errori che potrebbero anche essere fraintesi o non compresi da utenti non italiani che sono alle prime armi con la lingua.

- E' buona cosa inserire i Topic nelle corrette sezioni, nell'indice delle stesse e' presente una breve descrizione sul contenuto, in caso di errore i Topic possono essere spostati nella sezione corretta dagli admin (Mak73) I commenti/topic che non rispettano tali regole verranno eliminati.

I gestori del sito non si assumono nessuna responsabilita' sul contenuto dei commenti riportati.

Risposta

Stile Testo
Dimensione:  Colore:  Allinea: 

Altri comandi
Emoticons
Clicca per riportare il codice nell'area di testo oppure posizionati su un'immagine per vederne il relativo comando.
:) :( :D ;) :P Oo -.- :O :ok: :pugni: :sedia: :tsk: :morto: :vietato: :superman: :sbav: :guardati: :rolleyes: :ghgh: :asd: :specchio: :migira: :incazz: :svitato: :sese: :° :uhm: :eheh: :fii: :muro: :goccia: :clap: :wuatta: :boom: :angelo: :brill: :mhua: :rotfl: :huh: ^^ :nono: :rosso: :azz: :lol: :dmon: :dance: :cool: :bleah: :...: :cuori: :yeah: :alien:
Testo
formattazione
   

09 Aprile 2020 Postato da: AMG_Novice_Usr
Programmazione su Amiga mediante processi concorrenti o threads
Buongiorno a tutti,

vorrei avere da voi un parere su una questione di programmazione.

Mi sto dilettando, con velleità del tutto ludico-didattiche, a fare qualche programmino su Linux, per essere precisi su Raspberry PI 3,
quindi la distro è Raspbian (flavour di Debian), e la mia curiosità è la seguente: è possibile su Amiga fare le stesse cose, magari sempre
in C, oppure in Basic … non so. Al di là del linguaggio, mi interessa sapere se/come poter implementare lo stesso funzionamento.

Entriamo un po' più nel dettaglio:

date un'occhiata ai seguenti due links (nel primo ci metto il file C sorgente da compilare con GCC da riga di comando, il secondo
link è soltanto l'eseguibile.exe già compilato, lo metto solo se qualcuno volesse prima provarlo, su un Raspberry):

https://drive.google.com/file/d/12plXZBq4FHia MpMXoWE98020cTWx_P9t/view

https://drive.google.com/file/d/1d6ZRaa30-Z5F mZIsW-ui8SnKvrIs3COL/view

Come potere vedere, faccio delle cose molto semplici, ovvero chiamo una fork, dopo la quale avrò, a run-time, un processo padre
ed un processo figlio 1, e poi una seconda fork, da cui il processo padre ed un processo figlio 2, quindi abbiamo 3 processi, con 3
PID diversi, 3 processi concorrenti (stessa priorità? non so … eventualmente in Linux come si fa ad assegnare la priorità ad un
processo?).

Ciascuno di questi 3 processi incrementa un contatore "accessi", stampa a video il valore corrente del suo contatore, esegue la
stessa stampa su un file.txt.

I 3 processi devono essere sincronizzati tramite un semaforo, il quale viene creato grazie alla memoria condivisa (libreria shm.h):
un byte di shared memory viene creato e messo a disposizione di tutti e 3 i processi, quindi questi si sincronizzano fra di loro
leggendo da/scrivendo su questo semaforo fatto in casa.

La sincronizzazione è importante per consentire un accesso alternato/ordinato sia allo standard-output (il video della shell) sia
al file.txt.

Processo Padre: contatore = 1
Processo figlio1: contatore = 1
Processo figlio2: contatore = 1

Processo Padre: contatore = 2
Processo figlio1: contatore = 2
Processo figlio2: contatore = 2

Processo Padre: contatore = 3
Processo figlio1: contatore = 3
Processo figlio2: contatore = 3

ecc...

fino a 10

Non ci devono essere intrecciamenti, battimenti, casini diciamo … il sincronismo deve dare questo risultato, sia a video che sul file.txt.

In effetti tutto funziona perfettamente (provate … potete GCC-compilare il sorgente su qualunque piattaforma che abbia Linux).

La mia domanda quindi è:

vorrei fare la stessa cosa su Amiga. Come fare?

Amiga è un sistema multi-tasking, quindi mi aspetto di poter anche qui far fare una fork ad AmigaOS e gestire in modo sincronizzato
dei processi, esattamente come fatto con Linux.

Vorrei inoltre che mi suggeriate degli ambienti in cui sviluppare, possibilmente in C, queste cose.

Avevo sentito parlare di Lattice C, ovvero un compilatore (4 floppy disk) per C su Amiga.

è disponibile qualcosa del genere, magari che si possa installare su HDD di un Amiga 1200?

Ci sono alternative?

Grazie



Commenti: 20  Aggiungi  - Leggi

utente amiga quadratico medio

Post inviati: 701

Visulizza profilo Messaggio Personale
87.9.47.*** Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Commento
AMG_Novice_Usr 11 Aprile 2020    20:16:04
Citazione

A proposito, esiste anche un porting di GCC per Amiga (che è almeno C99), e una libreria che implementa l'interfaccia POSIX, rendendo quindi possibili praticamente tutte le system call tipiche di Unix.

Molto interessante … mi sto documentando sulla faccenda, ma sto trovando difficoltà (la solita barriera di potenziale iniziale … basta qualche
lumen dato da chi ha già affrontato la cosa, e l'attraversamento per effetto Tunnel è assicurato! ).
In sostanza, è l'analogo per Amiga del progetto Cygwin per Windows … quindi in AmigaOS potrei aprire una shell Korn-like e lavorare come
se fossi in un ambiente Unix-like (es: Linux).

https://drive.google.com/file/d/1ja6uqTwcIcDsppa2F 4OVuArvqQsB3Qmq/view

@SukkoPera

Sono andato sul link che hai postato, ho trovato molto materiale, ho dato una letta selettiva al readme: più che altro è interessante dove parla
delle differenze fra le systemcall/API dei veri ambienti Unix-like e quelle invece che dovrebbero girare su Amiga, in particolar modo mette in
evidenza il comportamento di fork(), diverso su Amiga rispetto a Unix vero, e dice anche il workaround da adottare.
Ho visto le cartelle dove sono definite le funzioni standard a noi note … insomma … sembra tutto molto figo e promettente.
Ma in pratica non so cosa farci ...
Online mi è sembrato di capire che questo materiale vada compilato in qualche modo.
Sempre online c'è chi parla del progetto Geek Gadgets / ADE (su Ebay vendono i CD-ROM con tutto il progetto dentro), e parrebbe dal readme
del tuo link che prima di passare al materiale del link stesso bisogna installare questo Geek Gadgets.
Puoi dire qualcosa in più su tutta questa faccenda?
L'obbiettivo è di trasformare un A1200 reale (68EC020, unica espansione è 8MB di fast-ram nella trap-door) in un terminale shell Linux-like.
A quel punto vorrei scrivere un programmino main1.c, con un qualunque editor di testo (il programma prevederà sleep, pipe, fork, wait, … il mondo
Linux reso disponibile da ixemul.library), dopodiché da riga di comando mi aspetto di poter battere:
gcc main1.c -o main1.exe
Poi:
./main1.exe
Fine della fiera … il programma gira.



A500-Plus + A501 + switch meccanico per selezione Double-kickstart 1.3 v. 34.5 / 3.1 v. 40.63 /// A600, Rev. MB. 1.5, espansione in trap-door 1MB chip-ram, Kick-Cloanto 45.66, HDD interno a tracce da 2GB modello MK2104MAV by Toshiba su porta IDE: partizione DH1 con WB2.1 (default) + partizione DH2 con WB3.1 /// A500, Kick 1.3 v. 34.5, scheda espansione in trap-door da 512KB /// A600, espansione da 4MB-fast-ram innestata con zoccolo direttamente su 68K, Kick 2.05 v. 37.300, espansione di chip-ram in trap-door da 1MB, CF da 4GB su adattatore interno CF/IDE: partizione DH0 con CWB GAAE, partizione DH1 con WB2.1, partizione DH2 con WB1.3 /// A500, Rev. MB 6A, Kick 1.3 v. 34.5, A520-TV-RF-Modulator /// A500, PWR-LED ROSSO. Kick 1.2 v. 33.180 /// A500-Plus, PWR-LED ROSSO, Kick 2.04 v. 37.175, Driver DF1 esterno Savage DMF 322, A590 alimentato da alimentatore di CD32, con dentro espansione da 2MB di fast-ram + HDD SCSI Seagate ST32151N da 2GB - DH0 con WB 2.04 e DH1 con WB 1.2 /// A1200, 68EC020, Kick 3.0 v. 39.106, HDD a tracce Hitachi 40GB interno su porta IDE con installato CWB, espansione A1208 in trap-door da 8MB-fast-ram, PLipBox su porta parallela per collegamento via Ethernet a Internet /// Commodore 64 Assy NO. 250425 + floppy drive 5’’ 1/4 modello 1541

Utenti Online
Utenti registrati: 1206 dal 1 Gennaio 2006
di cui online: 0 registrati - 
81 non registrati

Benvenuto all'ultimo utente registrato: zulu

Buon Compleanno a Mck - jockerfox - 

© Amigapage 1998 - 2007 - Sito italiano dedicato alla piattaforma Amiga ed evoluzioni varie.
Struttura del sito interamente ideata e realizzata da Marco Lovera e Alessandra Lovera - Tutto il materiale inserito all'interno del sito θ dei rispettivi autori/creatori.
E' assolutamente vietata la riproduzione o la manipolazione di tutti i contenuti o parte di essi senza l'esplicito consenso degli amministratori e degli autori/creatori.

Eseguito in 0.10002279281616 secondi