\documentclass[a4paper,11pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[francais,bloc,completemulti]{automultiplechoice}
\usepackage[french]{babel}
\usepackage{amsmath, amssymb}

\title{Processus et système}
\date{Numérique et sciences informatiques}

\begin{document}

\noindent\textbf{Processus et système} \hfill \textit{Numérique et sciences informatiques}\\[0.4em]
Nom~: \dotfill\ Prénom~: \dotfill

\bigskip

\element{terminaleprocessussysteme}{
  \begin{question}{q01}
    Qu'est-ce qu'un \textbf{processus} ?
    \begin{choices}
    \correctchoice{Un programme en cours d'exécution, accompagné de sa mémoire, de ses ressources et de son contexte (registres, pile d'appels)}
    \wrongchoice{Un type particulier de mémoire}
    \wrongchoice{Un fichier exécutable stocké sur le disque}
    \wrongchoice{Une fonction définie dans un programme Python}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q02}
    Qu'est-ce qu'un \textbf{fil d'exécution}
(parfois appelé \textit{thread}) ?
    \begin{choices}
    \wrongchoice{Un protocole utilisé sur Internet}
    \correctchoice{Une unité d'exécution légère au sein d'un processus, qui partage la mémoire avec les autres fils du même processus}
    \wrongchoice{Un fichier de configuration du système}
    \wrongchoice{Un type de fichier sur le disque}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q03}
    Que désigne le \textbf{PID} d'un processus ?
    \begin{choices}
    \wrongchoice{Un pilote interne pour gérer les processus}
    \correctchoice{Un numéro unique attribué par le système d'exploitation à chaque processus pour pouvoir l'identifier}
    \wrongchoice{Un descripteur de permissions}
    \wrongchoice{Un domaine personnel sur Internet}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q04}
    Quels sont les \textbf{états principaux} par
lesquels passe un processus au cours de
sa vie ?
    \begin{choices}
    \wrongchoice{Démarré et terminé, uniquement}
    \wrongchoice{Sain et malade}
    \correctchoice{Prêt, en exécution, bloqué (en attente d'une ressource ou d'une entrée-sortie), terminé}
    \wrongchoice{Visible et caché}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q05}
    Quel composant choisit \textbf{quel processus}
reçoit le processeur à chaque instant ?
    \begin{choices}
    \wrongchoice{L'interpréteur de commandes (ou \textit{shell})}
    \wrongchoice{Le pilote}
    \correctchoice{L'ordonnanceur, qui est un composant du noyau du système d'exploitation}
    \wrongchoice{L'utilisateur, à chaque instant}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q06}
    Quelle est la différence entre
\textbf{parallélisme} et \textbf{concurrence} ?
    \begin{choices}
    \correctchoice{La concurrence désigne plusieurs tâches en cours logiquement (qui se partagent un même processeur en alternant). Le parallélisme désigne plusieurs tâches s'exécutant réellement en même temps sur des cœurs différents}
    \wrongchoice{La concurrence n'existe pas en informatique}
    \wrongchoice{Aucune différence, ce sont deux mots pour la même chose}
    \wrongchoice{Le parallélisme est toujours plus rapide}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q07}
    Pourquoi les fils d'exécution d'un même
processus \textbf{partagent-ils} leur mémoire ?
    \begin{choices}
    \correctchoice{Pour permettre une communication rapide entre fils d'exécution (lire et écrire des variables communes), au prix d'une nécessaire gestion de la synchronisation}
    \wrongchoice{Par défaut, ils ne partagent rien}
    \wrongchoice{Pour économiser des cœurs de processeur}
    \wrongchoice{Aucune raison particulière}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q08}
    Qu'est-ce qu'un \textbf{signal} sous Unix ?
    \begin{choices}
    \wrongchoice{Un message textuel envoyé sur un réseau social}
    \wrongchoice{Une instruction du processeur}
    \correctchoice{Une notification asynchrone envoyée à un processus pour lui demander une action (terminaison, suspension, reprise…)}
    \wrongchoice{Un protocole utilisé sur Internet}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q09}
    Quelle commande Unix affiche la \textbf{liste
des processus} en cours d'exécution ?
    \begin{choices}
    \correctchoice{\texttt{ps}, ou \texttt{top} pour un suivi en temps réel}
    \wrongchoice{\texttt{ls}}
    \wrongchoice{\texttt{cat}}
    \wrongchoice{\texttt{grep}}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q10}
    Qu'appelle-t-on un \textbf{démon} sur un
système d'exploitation ?
    \begin{choices}
    \wrongchoice{Une commande Unix particulière}
    \wrongchoice{Un programme malveillant}
    \correctchoice{Un processus qui s'exécute en arrière-plan, sans interface utilisateur, généralement lancé au démarrage du système et fournissant un service comme un serveur web, une base de données ou un service de journalisation}
    \wrongchoice{Un fichier caché du système}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q11}
    Qu'appelle-t-on une \textbf{course critique}
(parfois nommée \textit{race condition}) ?
    \begin{choices}
    \wrongchoice{Une optimisation utilisée par le compilateur}
    \wrongchoice{Une compétition sportive informatisée}
    \wrongchoice{Un phénomène sans rapport avec les fils d'exécution}
    \correctchoice{Un bug qui survient lorsque l'ordre d'exécution de plusieurs fils d'exécution accédant à une même ressource partagée influence le résultat de manière imprévisible}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q12}
    À quoi sert un \textbf{verrou d'exclusion
mutuelle} ?
    \begin{choices}
    \wrongchoice{À stocker des données partagées}
    \wrongchoice{À ralentir intentionnellement le programme}
    \wrongchoice{À chiffrer les données pour les protéger}
    \correctchoice{À garantir qu'un seul fil d'exécution à la fois accède à une ressource partagée, ce qui évite les courses critiques}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q13}
    Qu'appelle-t-on un \textbf{interblocage} ?
    \begin{choices}
    \wrongchoice{Un arrêt brutal du programme}
    \wrongchoice{Un signal d'erreur émis par le système}
    \wrongchoice{Un blocage de l'écran}
    \correctchoice{Une situation dans laquelle plusieurs fils d'exécution ou processus s'attendent mutuellement sans fin, chacun détenant une ressource demandée par un autre}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q14}
    Comment deux processus \textbf{isolés}
peuvent-ils communiquer entre eux ?
    \begin{choices}
    \wrongchoice{Uniquement par le clavier}
    \wrongchoice{Uniquement via Internet}
    \correctchoice{À l'aide de tubes de communication, de connexions réseau (sockets), de fichiers partagés, d'une mémoire partagée explicite, ou de files de messages}
    \wrongchoice{Il leur est impossible de communiquer}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q15}
    Sur les systèmes Unix, l'appel système
\texttt{fork} permet de :
    \begin{choices}
    \wrongchoice{Exécuter un nouveau programme depuis le processus courant}
    \wrongchoice{Terminer immédiatement le processus appelant}
    \correctchoice{Dupliquer le processus appelant : on obtient un processus parent et un processus enfant, qui partagent au départ le même code et la même mémoire}
    \wrongchoice{Créer un nouveau fichier sur le disque}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q16}
    Qu'appelle-t-on un \textbf{processus zombie} ?
    \begin{choices}
    \correctchoice{Un processus terminé dont le code de retour n'a pas encore été récupéré par son parent. Il occupe encore une entrée dans la table des processus}
    \wrongchoice{Un processus dangereux pour le système}
    \wrongchoice{Un signal système particulier}
    \wrongchoice{Un processus pris dans une boucle infinie}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q17}
    Qu'est-ce que le \textbf{verrou global de
l'interpréteur} dans l'implémentation
principale de Python ?
    \begin{choices}
    \wrongchoice{Un module standard de la bibliothèque Python}
    \wrongchoice{Une fonction de la bibliothèque standard}
    \correctchoice{Un verrou interne à l'interpréteur qui garantit qu'un seul fil d'exécution Python à la fois exécute du bytecode, ce qui simplifie l'implémentation de l'interpréteur mais limite le parallélisme effectif sur le processeur}
    \wrongchoice{Un éditeur de texte particulier}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q18}
    Pourquoi un système d'exploitation
attribue-t-il des \textbf{priorités}
différentes aux processus ?
    \begin{choices}
    \wrongchoice{Aucune raison particulière}
    \correctchoice{Pour s'assurer que les processus importants (interactifs, système) reçoivent davantage de temps processeur que les processus moins prioritaires (calculs en arrière-plan)}
    \wrongchoice{Pour des raisons de sécurité}
    \wrongchoice{Pour faire plaisir aux développeurs}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q19}
    Comment afficher les processus actifs
sur \textbf{Windows} ?
    \begin{choices}
    \correctchoice{Avec le Gestionnaire des tâches (raccourci Ctrl + Maj + Échap), ou avec la commande PowerShell \texttt{Get-Process}}
    \wrongchoice{Avec la commande \texttt{ps}}
    \wrongchoice{Il est impossible d'observer les processus sous Windows}
    \wrongchoice{En éteignant et en rallumant Windows}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q20}
    Quelle commande Linux permet de tracer
les \textbf{appels système} effectués par un
programme ?
    \begin{choices}
    \wrongchoice{\texttt{ls}}
    \wrongchoice{\texttt{grep}}
    \wrongchoice{\texttt{top}}
    \correctchoice{\texttt{strace}}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q21}
    Quelles sont les \textbf{quatre conditions
nécessaires} pour qu'un interblocage
puisse se produire (selon Coffman,
$1971$) ?
    \begin{choices}
    \wrongchoice{La mémoire, le processeur, le disque et le réseau}
    \wrongchoice{Trois conditions seulement suffisent}
    \wrongchoice{Aucune condition particulière}
    \correctchoice{L'exclusion mutuelle, la détention et l'attente, la non-préemption et l'attente circulaire}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q22}
    Pourquoi utiliser un \textbf{réservoir de
fils d'exécution} plutôt que créer un
nouveau fil pour chaque tâche ?
    \begin{choices}
    \wrongchoice{Pour économiser sur l'achat du clavier}
    \correctchoice{La création d'un fil d'exécution a un coût (allocation de mémoire, mise en place d'un contexte). Un réservoir réutilise un nombre fixe de fils pour de nombreuses tâches, ce qui réduit ce coût et limite le degré de concurrence}
    \wrongchoice{Il n'y a aucun avantage à utiliser un réservoir}
    \wrongchoice{Pour avoir un nombre illimité de fils d'exécution}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q23}
    En quoi consiste le motif des
\textbf{producteurs et consommateurs} ?
    \begin{choices}
    \wrongchoice{Une optimisation de la mémoire}
    \correctchoice{Il s'agit d'un patron dans lequel des producteurs déposent des éléments dans une file partagée (avec verrou) et des consommateurs retirent ces éléments pour les traiter. Cela permet de découpler la production de la consommation}
    \wrongchoice{Un patron sans intérêt pratique}
    \wrongchoice{C'est un motif d'achat-vente}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q24}
    Pour du \textbf{calcul intensif} en Python,
faut-il préférer les fils d'exécution
ou les processus ?
    \begin{choices}
    \correctchoice{Les processus, par exemple avec le module \texttt{multiprocessing} ou avec \texttt{concurrent.futures.ProcessPoolExecutor}, qui contournent le verrou global en utilisant de vrais processus séparés}
    \wrongchoice{Uniquement le module asyncio}
    \wrongchoice{Aucune des deux solutions ne convient}
    \wrongchoice{Toujours les fils d'exécution}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q25}
    Parmi les affirmations suivantes sur
les processus et les fils d'exécution,
laquelle est \textbf{fausse} ?
    \begin{choices}
    \wrongchoice{Plusieurs fils d'exécution d'un même processus partagent la mémoire}
    \wrongchoice{Un interblocage requiert la conjonction des quatre conditions de Coffman}
    \correctchoice{Une course critique est résolue automatiquement par le système d'exploitation}
    \wrongchoice{Un processus dispose de sa propre mémoire isolée}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q26}
    Qu'appelle-t-on un \textbf{appel système}
(\textit{system call}) ?
    \begin{choices}
    \wrongchoice{Une fonction interne au programme
utilisateur
}
    \wrongchoice{Un appel téléphonique automatisé
}
    \wrongchoice{Un protocole de communication
réseau
}
    \correctchoice{Une demande de service adressée
par un programme au noyau du
système d'exploitation, par
exemple pour ouvrir un fichier,
allouer de la mémoire, créer un
processus ou communiquer sur le
réseau
}
    \end{choices}
  \end{question}
}

\element{terminaleprocessussysteme}{
  \begin{question}{q27}
    Pourquoi les systèmes d'exploitation
modernes utilisent-ils la \textbf{mémoire
virtuelle} pour les processus ?
    \begin{choices}
    \wrongchoice{Pour économiser de l'électricité
}
    \wrongchoice{Parce que la mémoire physique
n'existe plus dans les
ordinateurs modernes
}
    \correctchoice{Pour donner à chaque processus
l'illusion d'un espace mémoire
contigu et privé, en mappant les
adresses virtuelles utilisées par
le processus sur des adresses
physiques réelles ; cela permet
aussi l'isolation entre processus
et la possibilité de gérer plus
de mémoire que la mémoire physique
disponible (via le swap)
}
    \wrongchoice{Pour rendre les programmes plus
rapides à coder
}
    \end{choices}
  \end{question}
}


\onecopy{1}{
  \shufflegroup{terminaleprocessussysteme}
  \insertgroup{terminaleprocessussysteme}
}

\end{document}
