Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 11-09-2004, 17.12.24   #1
Alhazred
Made in Japan
Top Poster
 
L'avatar di Alhazred
 
Registrato: 04-07-2001
Messaggi: 4.461
Alhazred promette bene
Cambio di modo e di contesto

Qual'è la differenza tra le due cose?
Il fatto che la prima cambia l'esecuzione da modo utente a kernel mentre la seconda da un processo passa ad un altro?
Qual'è una system call che può avere come conseguenza entrambi i cambiamenti?
WaitForSingleObject può provocare entrambe le cose?

Ultima modifica di Alhazred : 11-09-2004 alle ore 17.19.26
Alhazred non è collegato   Rispondi citando
Vecchio 13-09-2004, 20.01.48   #2
Nanri
Hero Member
 
L'avatar di Nanri
 
Registrato: 01-07-2002
Messaggi: 555
Nanri promette bene
^_^" ho fatto un casino a quella domanda.. mi aspettavo i semafori.. che nervoso..
___________________________________

Amilo M7425 - Intel Centrino M 725 (1.60 GHz, 2 MB L2, 400 MHz FSB), HD 160 GB, RAM 512 MB, PHILIPS DVD±R/RW Double Layer SDVD8431, ATI Mobility Radeon 9700, SO: Microsoft Windows XP SP2 && Ubuntu Feisty
Nanri non è collegato   Rispondi citando
Vecchio 14-09-2004, 09.32.58   #3
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Tu vuoi sapere in pratica la differenza tra "mode switch" e "context switch"...

Proverò ad illustrare la cosa a grandi linee.. tuttavia non vi è un metro di paragone applicabile per mettere in luce differenze, dato che il context switch è quasi una "conseguenza" del "mode switch"...

In un sistema operativo ogni componente eseguibile ha determinati "privilegi" dipendenti dalla "posizione" in cui si trova ad essere eseguito e dipendenti anche dalla natura stessa del componente...
Per "componente" intendo un thread, cioè un processo o parte di un processo istanziato da un driver o da un'applicazione...
Tale thread può essere progettato e chiamato per essere eseguito in due modalità diverse:

- Modo kernel
- Modo utente

Kernel e user impersonificano rispettivamente "sistema" e "utente"...
Quando un componente viene eseguito in modo kernel, esso ha accesso diretto alle risorse in quanto "estende" specifici "punti di immissione" presenti nel kernel stesso .. la visione che ne dò è piuttosto semplificata, ma è come se il kernel avesse dei "punti di attacco" in cui un componente kernel mode può aggiungersi e da lì estendere il kernel stesso per "programmare" l'hardware a cui tale componente è destinato.
Un thread kernel mode può chiamare direttamente l'hardware attraverso istruzioni a basso livello presenti nel kernel, nei sistemi Windows può instanziare direttamente "ntdll" e quindi avere il controllo (sempre attraverso il kernel) dell'hardware o delle funzioni base del sistema...
Di solito questi componenti sono parti di driver o gli stessi servizi di base del sistema che vengono caricati indipendentemente dal fatto che l'utente sia connesso al sistema e/o abbia i privilegi per eseguirli...
Tecnicamente questi componenti utilizzano convenzioni di chiamate asincrone (ARC).

La modalità "user" o "utente" è la condizione nella quale la maggior parte dei processi viene eseguita nel caso di applicazioni comuni.. essa prevede il passaggio attraverso una specifica interfaccia utente del sistema che implica la restrizione o l'adeguamento del processo stesso ai privilegi dell'utente connesso... inoltre tale processo funziona in una logica "scalare", non può cioè interagire a basso livello (almeno direttamente) come un'entità kernel-mode .. è costretto infatti ad appoggiarsi alle Application Interface (API) di componenti eseguibili a livelli inferiori...
Un componente user-mode non è solo questo, in realtà "user-mode" è una definizione piuttosto generica, ciò che ho descritto è uno scenario "standard" e molto a grandi linee...
I componenti user-mode possono effettuare chiamate sincrone, asincrone e remote (RPC).

Il context-switch o passaggio di contesto esiste quando non vi è una distinzione netta nel componente chiamante che può interagire con thread user mode e kernel mode... Pensiamo ad un gestore di servizi ad esempio un server. Questo server effettua il context-switch per poter implementare servizi a basso livello ed utilizzare una modalità kernel per poi passare "al volo" alla modalità user ad esempio per "validare" alcune azioni secondo i privilegi dell'utente connesso alla macchina oppure per eseguire transazioni con altri thread user mode o kernel mode presenti nel sistema.

Praticamente il context-switch è il "cambio dinamico di contesto" di un componente progettato ad hoc .. funge da "collante" certe volte per implementare servizi a livello avanzato ...
Tuttavia tecnicamente si cerca di evitarlo perché è abbastanza costoso in termini di risorse e di memoria .. poiché occorre preservare duplici stack e convenzioni di chiamate.

E' una visione a grandi linee, ma spero di essere stato chiaro.

Bye

P.S.:
Per "utente connesso alla macchina" intendo: utente che effettua il login al slstema.
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 14-09-2004, 09.33.47   #4
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Nel caso specifico menzionato:
WaitForSingleObject non è una chiamata "kernel mode" pura, poiché si limita a porre il thread del processo chiamante in stato "wait" per poi sbloccarlo a seconda di un evento..
Nell'implementazione dell'api tuttavia è possibile che internamente ci sia un context-switch o una routine kernel-mode per "sbloccare il thread" a seconda di particolari eventi kernel o del sistema stesso.

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 14-09-2004, 10.02.02   #5
Alhazred
Made in Japan
Top Poster
 
L'avatar di Alhazred
 
Registrato: 04-07-2001
Messaggi: 4.461
Alhazred promette bene
Grazie per la risposta
Alhazred non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
[WinXpPro Sp2] salvaschermo e cambio rapido utente nayma79 Windows 7/Vista/XP/ 2003 2 12-01-2007 17.45.25
Cambio olio macchina nuova exion Auto Moto HiFi 7 27-09-2005 09.15.02
[LINUX] Cambio cambio cambio!!! Eteria Linux e altri Sistemi Operativi 19 28-07-2005 17.13.35
Cambio scheda madre e... XP scorpio33 Windows 7/Vista/XP/ 2003 4 25-05-2005 20.31.56
salvare password in modo non doverla ridigitare bonoluca Windows 7/Vista/XP/ 2003 1 19-11-2003 21.27.13

Orario GMT +2. Ora sono le: 16.49.28.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.