Dans un processeur multicœur, qu'advient-il du contenu du cache d'un coeur (disons L1) lorsqu'un changement de contexte se produit sur ce cache? Le comportement dépend-il de l'architecture ou s'agit-il d'un comportement général suivi par tous les fabricants de puces?
Après avoir lu plusieurs sources, je suis encore confus au sujet des threads au niveau utilisateur et noyau. En particulier: Les threads peuvent exister au niveau utilisateur et au niveau du noyau Quelle est la différence entre le niveau utilisateur et le niveau noyau?
J'étudie les CPU et je sais comment il lit un programme de la mémoire et exécute ses instructions. Je comprends également qu'un système d'exploitation sépare les programmes dans les processus, puis alterne entre chacun si rapidement que vous pensez qu'ils s'exécutent en même temps, mais en fait, chaque programme s'exécute …
J'ai un ensemble de paires. Chaque paire est de la forme (x, y) telle que x, y appartiennent à des entiers de la plage [0,n). Donc, si le n est 4, alors j'ai les paires suivantes: (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) J'ai déjà les paires. Maintenant, je dois construire …
Dans le célèbre essai de Richard Gabriel, The Rise of Worse is Better , il met en contraste les versions caricaturales des philosophies de conception du MIT / Stanford (Lisp) et du New Jersey (C / Unix) selon les axes de la simplicité, de l'exactitude, de la cohérence et de …
Eh bien, c'est une question générale. Et si quelqu'un veut rendre l'implémentation spécifique, je préférerai les choses liées à Unix. Mais il faut d'abord connaître les problèmes suivants en général: Je lis qu'un seul processus peut avoir plusieurs threads. Plusieurs threads du même processus partagent des choses entre eux. Je …
Sous Linux, les fichiers /dev/randomet les/dev/urandom fichiers sont les sources bloquantes et non bloquantes (respectivement) d'octets pseudo-aléatoires. Ils peuvent être lus comme des fichiers normaux: $ hexdump /dev/random 0000000 28eb d9e7 44bb 1ac9 d06f b943 f904 8ffa 0000010 5652 1f08 ccb8 9ee2 d85c 7c6b ddb2 bcbe 0000020 f841 bd90 9e7c …
De nombreuses références de systèmes d'exploitation disent qu'avec le multitâche coopératif (par opposition au multitâche préemptif), un processus maintient le CPU jusqu'à ce qu'il se suspende explicitement volontairement. Si un processus en cours exécute une demande d'E / S qui ne peut pas être immédiatement satisfaite (par exemple, demande un …
Considérons un segment de mémoire (dont la taille peut augmenter ou diminuer, comme un fichier, si nécessaire) sur lequel vous pouvez effectuer deux opérations d'allocation de mémoire de base impliquant des blocs de taille fixe: attribution d'un bloc libérer un bloc précédemment alloué qui n'est plus utilisé. De plus, le …
De mes lectures sur les systèmes d'exploitation (lecture du matériel de base sur Wikipedia, les sites technologiques, etc.), j'ai appris que le système d'exploitation est un programme qui permet aux programmes et aux applications d'interagir avec le matériel de manière efficace et sûre. Cependant, je suis confus quant à la …
Je pense que je sais ce qu'est un système d'exploitation en temps réel "dur". Il s'agit d'un système d'exploitation avec un planificateur qui fournit un contrat avec le programmeur d'application. Une application fournit un délai à chaque demande d'allocation de ressources. Si les demandes de délai sont réalisables , le …
Un micro-noyau implémente tous les pilotes en tant que programmes d'espace utilisateur et implémente des fonctionnalités de base comme IPC dans le noyau lui-même. Un noyau monolithique, cependant, implémente les pilotes en tant que partie du noyau (par exemple, s'exécute en mode noyau). J'ai lu certaines affirmations selon lesquelles les …
Supposons que l'on nous donne deux nombres et et que nous voulons trouver pour l \ le i, \, j \ le r .lllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r L'algorithme naïf vérifie simplement toutes les paires possibles; par exemple en rubis, nous aurions: def max_xor(l, r) max = 0 (l..r).each do |i| …
Supposons que je veuille construire un système d'exploitation basé sur un très petit noyau inférieur natif qui agit comme un interpréteur / runtime de code managé et un noyau supérieur plus grand compilé dans un langage machine non natif (bytecode Java, CIL, etc.). Des exemples de systèmes d'exploitation similaires seraient …
Certains hyperviseurs optimisent l'utilisation de la mémoire à l'aide d'une méthode appelée bulle (du moins c'est ce que KVM l'appelle), cette méthode déduplique la mémoire entre les machines virtuelles et définit les pages communes en lecture seule avec copie en écriture. C'est en quelque sorte l'opposé d'un appel fork. Est-il …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.