DOMANDA Kernel monoprogrammati e multiprogrammati

Gianmarco_2001

Nuovo Utente
3
1
Salve, parto col dire che sono molto ignorante in materia, e avrei bisogno di aiuto. La nostra prof di informatica ci ha assegnato una ricerca sulle "caratteristiche dei kernel monoprogrammati e multiprogrammati" da svolgere in almeno 20 pagine su word. Non so dove andare a parare, su internet non trovo nulla, ho solo trovato informazioni sui "sistemi monoprogrammati e multiprogrammati", ma la prof in questione ha detto che sono una cosa diversa, e non dobbiamo parlare dei sistemi che ho citato sopra. Cortesemente, sapreste darmi qualche informazione o link in merito? O almeno qualche indicazione su dove cercare, e se è possibile trovare materiale sufficiente per riempire 20 pagine. Grazie in anticipo.
 

BAT

Moderatore
Staff Forum
Utente Èlite
22,668
11,452
CPU
1-Neurone
Dissipatore
Ventaglio
RAM
Scarsa
Net
Segnali di fumo
OS
Windows 10000 BUG
Non sei tu che non trovi link o documentazione su internet, nemmeno sul libro di Tanenmbaum sui sistemi operativi si fa cenno a "kernel mono/multi programmati", ed è un libro che si usa all'università (Informatica/Ingegneria dell'Informazione, Ingegneria Informatica).
Ci sono kernel che permettono di caricare in memoria un unico processo (come il vecchio DOS) per cui non necessitano di memoria virtuale (paginazione/swapping), oppure i kernel moderni che permettono l'esecuzione "contemporanea" di più processi. Ma il termine corretto rimane comunque sistema (operativo) monoprogrammato o multiprogrammato.

A MENO CHE la prof. si riferisca al fatto che esistono kernel monolitici (servizi kernel e servizi utente condividono lo stesso spazio di indirizzi) e microkernel (dove gli spazi di indirizzi vengono mantenuti separati); se è così la ricerca deve avere come parole chiave quelle che ti ho evidenziato in neretto. A fianco di questi esistono anche kernel ibridi, che cercano di prendere il meglio dei 2 tipi di kernel precedenti.
 
Ultima modifica:
  • Mi piace
Reazioni: fabio93 e Mursey

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,208
1,845
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Arrivo un po' in ritardo dopo al lavoro ed alla cena...

Mi accodo a BAT, concordo sul suo primo paragrafo.

Potrei quindi supporre che faccia riferimento alle peculiarità di questi OS, e quindi di cosa il kernel debba gestire. Quindi memory management, gestione I/O, e scheduling. Di quest'ultimo magari vuole avere informazioni sulle tipologie (quella o quelle poche alle quali avrà fatto accenno).
Riguardo alla gestione della memoria non so cosa avete visto e considerando la complessità (e che sono da cellulare) evito di dilungarmi ora (attendendo magari tue, prima di farlo).
Probabilmente vorrà sapere anche degli interrupt (in riferimento anche allo scheduling).

Inviato da ONEPLUS A5000 tramite App ufficiale di Tom\'s Hardware Italia Forum
 
U

Utente 16812

Ospite
Arrivo un po' in ritardo dopo al lavoro ed alla cena...

Mi accodo a BAT, concordo sul suo primo paragrafo.

Potrei quindi supporre che faccia riferimento alle peculiarità di questi OS, e quindi di cosa il kernel debba gestire. Quindi memory management, gestione I/O, e scheduling. Di quest'ultimo magari vuole avere informazioni sulle tipologie (quella o quelle poche alle quali avrà fatto accenno).
Riguardo alla gestione della memoria non so cosa avete visto e considerando la complessità (e che sono da cellulare) evito di dilungarmi ora (attendendo magari tue, prima di farlo).
Probabilmente vorrà sapere anche degli interrupt (in riferimento anche allo scheduling).

Inviato da ONEPLUS A5000 tramite App ufficiale di Tom\'s Hardware Italia Forum

Be', il cuore di un sistema operativo è lo scheduler, non credo si possa fare a meno di parlarne, quindi a mio avviso si dovrebbe partire con la gestione multi-tasking, o meglio pseudo-multitasking, poi discutere delle "politiche" di scheduling, preemptive e non-preemptive (cooperative) e infine (per modo di dire, vero) illustrare i concetti relativi allo scheduling di processi multi-tasking gestiti col metodo preemptive (soprattutto sulla base dei thread) :shock:
Altro che 20 pagine (e non ho neanche parlato del single-tasking) !!!!! :nunu:
 

Andretti60

Utente Èlite
6,440
5,091
Beh, tenendo conto che la gestione dei processi è compito del kernel, direi che in questo contesto "kernel" e "sistema operativo", in genere cose diverse in quanto il kernel è una parte del sistema operativo, siano la stessa cosa.
In un kernel mono programmato gira un solo programma alla volta, punto. Tutti gli altri devono aspettare. Il che va bene per esempio nei sistemi embedded, dove c’è solo una cosa da fare.
Un kernel multi programmato è uno dei modi per implementare un primitivo modo di multi tasking, ossia fare girare più programmi allo stesso tempo. Di fatto fu il primo a essere implementato, in quanto è semplice. Un programma ha un sacco di "tempi morti" per esempio quando aspetta la risposta di una periferica. A quel punto il programma "cede" la precedenza al programma successivo, il quale fa la stessa cosa, ossia "tiene" il sistema tutto per sé finché non raggiunge anche lui un "tempo morto". Se non trova nessuna interruzione, continua a girare anche per tre mesi :) Si può capire che non sia molto efficiente, infatti non credo esista nessun sistema operativo multi tasking che lo implementi ai giorni nostri.
Vedo se trovo un link.
 
  • Mi piace
Reazioni: Mursey

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Salve, parto col dire che sono molto ignorante in materia, e avrei bisogno di aiuto. La nostra prof di informatica ci ha assegnato una ricerca sulle "caratteristiche dei kernel monoprogrammati e multiprogrammati" da svolgere in almeno 20 pagine su word. Non so dove andare a parare, su internet non trovo nulla, ho solo trovato informazioni sui "sistemi monoprogrammati e multiprogrammati", ma la prof in questione ha detto che sono una cosa diversa, e non dobbiamo parlare dei sistemi che ho citato sopra. Cortesemente, sapreste darmi qualche informazione o link in merito? O almeno qualche indicazione su dove cercare, e se è possibile trovare materiale sufficiente per riempire 20 pagine. Grazie in anticipo.
Mi sembra una cosa assurda, ma che professori avete? Ti chiede 20 pagine su un argomento "oscuro" che non ha spiegato e tiri ad indovinare? Non può essere!

Inviato dal mio Nexus 5 utilizzando Tapatalk
 

rctimelines

Utente Èlite
5,144
2,023
CPU
Ryzen 7 2700X | i7-6700k@4.5 | i5-4460... altri
Dissipatore
wraith MAX | Scythe Katana2|Arctic Freezer 11LP
Scheda Madre
Asrock B450 Fatal1ty 4K | Asus Prime Z270P | Acer Veriton
HDD
Samsung 970evo m.2 | vari | Samsung 860 evo
RAM
16GB G.Skill TridentZ 3000 | 16GB CORSAIR 2133 | 8GB DDR3 1600
GPU
RadeonPro WX3100 4G | ZOTAC GTX 1070 8G | Quadro k620 2G
Monitor
DELL 2419P 2K + Benq 17" | LG Ultrawide 27''
Net
fibra 1000
OS
Windows10-pro64/OpenSUSE-QL15.1/Debian 10.3
Si, sembra che la distinzione a cui si riferisce la professoressa, che non sembra proprio una suddivisione ufficialmente riconosciuta, e pertanto difficile da ritrovare in rete, riguardi gli aspetti anche citati da @Andretti60

Essendo io anche appassionato di retrocomputing, diciamo che l'argomento mi appassiona.. e ce l'ho abbastanza chiaro, forse attualmente riguarda appunto i sistemi embedded, ma non necessariamente.. insomma i kernel monoprogrammati quasi non dovrebbero esserci.

Il concetto, giustamente, non si riferisce ai "sistemi operativi", cioè al software di gestione del computer (infatti i computer monoprogrammati sono precedenti all'invenzione dei sistemi operativi), ma eventualmente a "sistema" nel senso più generale di macchina hardware/software.
In effetti applicare questo concetto al kernel è corretto, infatti il kernel è lo strato più vicino tra l'hardware e il software di un computer ed il primo passo verso il concetto di sistema operativo.

Oltre ai mainframe fino agli anni 60, precedenti al time-sharing, penso anche ai primi microcomputer (che direi di conoscere davvero molto molto bene) che sono buoni esempi di "sistemi" monoprogramma.

Alcuni, come il mitico commodore64 e forse anche il predecessore vic20, possedevano anche una sorta di kernel (nello specifico lo chiamavano Karnal, come acronimo di qualcosa) che era praticamente una piccolissima libreria di microcodice in ROM con cui gestire chiamate al sistema.. non ha avuto seguito, ma l'intenzione era di unificare il software.
Attenzione però a non generalizzare in questa valutazione dei microcomputer perché vale solo per alcuni home e non per tutti i vecchi microcomputer.. i primi PC con z80 e CP/M, i8088 e MSDOS, i primi Macintosh (praticamente tutto il macOS) erano computers con sistemi operativi "monotask" ma non c'entra nulla con il monoprogrammato! Il commodore Amiga, addirittura, era multitasking nel 1986! Il CP/M era un sistema operativo multiutente...
Mi riferisco a computer che non disponevano di sistemi operativi e potevano eseguire un solo programma per volta, seppure i microprocessori, fin quasi dalla loro origine (1970) già prevedevano a livello hardware gli "interrupt", cioè la possibilità di "congelare" lo stato di esecuzione di un programma per eseguire altre operazioni (in genere di sistema, cioè previste dall'hardware stesso: come l'aggiornamento di un timer interno o refresh del video) piuttosto che del codice previsto dal programmatore.. e in tal caso, però, parte dello stesso programma in esecuzione (si tratta di interrupt di altro genere), che poi è il modo con cui altri software quali i "sistemi operativi", cioè gli ambienti (lo strato) in cui vengono eseguiti i programmi, utilizzano per dare forma al multitasking.

Ovviamente macchine come i sistemi batch o primissimi computer, magari precedenti anche al concetto di macchina di Von Neumann, erano sicuramente monoprogramma. Ma anche tutti i SUPERcomputer, compresi quelli contemporanei, sono praticamente monoprogramma, a volte vengono progettati appositamente per eseguire quello specifico programma!

A questo punto solo la tua professoressa può dire qual'è la distinzione che intende, mentre noi possiamo solo puntare a caso.. ciò perché tale distinzione non sembra riconosciuta ufficialmente dalla letteratura sull'argomento (ma potrei sbagliarmi)

per la tua ricerca avrei trovato questi:

https://users.dimi.uniud.it/~ivan.s...FjAHegQIAhAB&usg=AOvVaw3AT2VI-oZVC_AGRgWok1m5

E forse potrebbero tornare utili anche queste Elide con timelime:

https://cs.unibg.it/gherardi/so2013...FjAEegQIAhAB&usg=AOvVaw0JTkhloqeAPRuL_D6G4OHj

https://www.issgreppi.gov.it/corsi/...FjAFegQIBRAB&usg=AOvVaw1lAkAZn7h9zfJPeJPBIrqS





Inviato dal mio Nexus 5 utilizzando Tapatalk
 
Ultima modifica:

Gianmarco_2001

Nuovo Utente
3
1
Grazie mille comunque, ma purtroppo la ricerca la ho già dovuta consegnare un paio di giorni fa... Ho provato alla fine a descrivere i sistemi monoprogrammati e quelli multiprogrammati provando a spiegare i compiti del kernel nei due tipi di sistemi... speriamo bene
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili