Vous êtes sur la page 1sur 6

EcoleNationaledIngnieursdeTunis

EXAMEN Corrig
Matire:SystmesdExploitation Classe:2meAnneGnieElectrique Enseignante:MeriemKassarBenJemaa Documents:feuilleformatA4autorise

Session:principale Semestre:2 Date:27Mai2011 Dure:1h30

QuestionsGnrales(6points)

Question 1 : Parmi les propositions suivantes lesquelles correspondent aux fonctionnalits dun systmedexploitation? Orsoudrelesproblmesdesutilisateurs. Omasquerdeslmentsfastidieuxlisaumatriel. Ogrerlesressourcestellesquelesprocesseurs,lammoireoulesdisques. Ofaireappeldesinstructionsdedplacementdedonnesetdecalculs. Ofournirdesmcanismesdesynchronisationentrelesprogrammes. Ofournirlabasededveloppementetdexcutiondesprogrammesd'application. Question 2 : Parmi les propositions suivantes lesquelles correspondent aux tches dun noyau Unix? OLinitialisationdusystme. OLtablissementduneinterfaceentrelutilisateuretlematriel. OLagestiondesprocessus. OLagestiondesfichiers. OLagestiondesentres/sorties. Question3:Parmilespropositionssuivanteslesquellescorrespondentunlmentducontexte d'excutiond'unprocessus? Olesystmedefichiers Olecompteurordinal Ol'horloge Olefluxd'entrestandard Olefluxdesortied'erreurs Olerseau Olefluxdesortiestandard Question4:Dessinezlediagrammereprsentantlesdiffrentstatspossiblesdunprocessus(et lestransitionsentretats)depuissacrationjusqusaterminaison. Chapitre3,page11

Dessinez lautomate reprsentant les diffrents tats possibles dun processus (et les transitions entre tats) depuis sa cration jusqu sa terminaison. Votre rponse devra mettre en vidence ltat dans lequel se trouve un processus lors de sa cration. EcoleNationaledIngnieursdeTunis Solution: Transparent 98.

PRET
lection

!dblocage! (eg., fin d"entre/sortie)

ELU

BLOQUE

Fin solution Question5:Quelleestladiffrenceentrelordonnancementetlasynchronisationdesprocessus? Lasynchronisationestncessairelorsqu'onveutquecertainesinstructionsd'undesprocessus s'effectuenttoujoursaprscertainesinstructionsd'unautreprocessus.Ellepermetd'assurerun Question 2 4 points ordresurlesexcutions. Comment sappellent : Lordonnancementpermetlepartageduprocesseurentreplusieursprocessus.Aprsuntemps 1. le service systme charg de choisir le processus auquel le processeur est attribu, prdtermin (ou lorsqu'une instruction particulire est excute), l'ordonnanceur interrompt 2. le mcanisme du processus actifau systme de reprendre la main rgulirement ? du contexte du l'excution matriel permettant et en choisit un autre. Il assure la substitution premierparceluidudeuxime. Solution: 1. ordonnanceur (ou scheduler) Question 6 : Qu'estce qu'un PID ? Comment un utilisateur peutil connatre la valeur d'un PID ? 2. Interruption horloge (transparent 105). CitezdeuxcommandespouvantprendreunPIDcommeparamtre. Fin solution LePIDestl'identifiantquelesystmeattribuechaqueprocessuslorsdesacration. L'utilisateurpeutconnatrelavaleurd'unPIDenutilisantlacommandeps(oulavariable $$ 3 un script Questiondans3 points shell) et il peut l'utiliser pour identifier un processus lors de l'excution de certaines de commande permettant de lancer le script mon_script.sh se trouvant dans le rpertoire Donnez les lignescommandes. Les commandes fg, bg et kill ont pour effet la mise en arrire plan, la courantmiseaupremierplanetl'envoid'unsignalauprocesseur. : Question 7 : quoi sert la variable denvironnement PATH lors de l'excution d'une commande 1 parlesystme? OEllesertidentifierlesrpertoiresdanslesquelslacommandeexcuterserarcupre. OEllesertidentifierlechemindurpertoiredelogin OEllesertlisterlescheminsdesrpertoirescontenantdescommandesexcuter. OEllesertidentifierlechemindurpertoirecourant. OEllesertidentifierlelogindelutilisateur. Question 8 : Cocher l(ou les) affirmations correspondantes lexcution de la commande suivante:(Onrappellequels 1 (lechiffreun)afficheunfichierouunrpertoireparligne) Prompt$ ls 1 D* | grep v "^D" | grep "doc$" | wc l > fic OCettecommandecreunfichierdenomficcontenantlenombredefichiersetrpertoires,du rpertoirecourant,dontlenomnecommencepasparDetseterminepardoc. O Cette commande cre un fichier de nom fic contenant le nombre de fichiers et rpertoires, dontlenomnecommencepasparDetseterminepardoc,contenusdanslesrpertoiresdontle nomcommenceparDetsetrouvantdanslerpertoirecourant.

!blocage! (eg., entre/sortie)

EcoleNationaledIngnieursdeTunis

O Cette commande cre un fichier de nom fic contenant la somme du nombre de lignes des fichiers,durpertoirecourant,dontlenomnecommencepasparDetseterminepardoc. OCettecommandeprovoqueuneerreurl'excution. OCettecommandecretoujoursunfichiervidedenomfic.

Question 9 : Donner la commande permettant de trouver la liste des fichiers dextension .h situssouslerpertoire/usr/include. find /usr/include name *.h Donner la commande qui permet dafficher les 3 dernires lignes de la liste des fichiers dfinie prcdemment. find /usr/include name *.h | tail n 3

Question10:Donnerlacommandepermettantdafficherlachanesuivante: Examen de Systmes dexploitation Dure : 1H30 echo Examen de Systmes dexploitation \Dure : 1H30\ Question11:Donnerlacommandepermettantdecopierladatecourantelasuiteducontenu dunfichiernonvidenomminfodurpertoirecourant. date >> info

Question 12 : Donner la commande permettant dexcuter la commande cat login.txt partirdurpertoiredeconnexion(deloginoudaccueil)dunutilisateurnomm2ageetfaireen sorte que la sortie standard et la sortie erreur soient crites dans un nouveau fichier nomm Resultat. Prompt$ cd /home/2age $ cat login.txt > Resultat 2>&1

Soientlesscriptsecriture.shetlecture.shsuivants: #!/bin/bash #!/bin/bash # ecriture.sh # lecture.sh

Paralllisme&Synchronisation(4points)

if [ $# -lt 2 ] if [ $# -ne 1 ] then then echo "erreur ecriture" echo "erreur lecture" exit 1 exit 1 else else FILE=$1 FILE=$1 shift cat $FILE echo "$@" > $FILE fi fi Expliquezen2lignespourquoilafindel'excutionsuivantelefichierfic1peutnepasexister. Prompt$ ./lecture.sh fic1 & ./ecriture.sh fic1 message Leproblmeestquunprocessuslitdansunfichieretlautrecritdanscemmefichier. Il faut que le processus lecture.sh prenne la main et fait sa lecture aprs que le processus ecriture.shaitcritdanslefichierfic1.Doncilfaudrasignalerladisponibilitdeladonne.

EcoleNationaledIngnieursdeTunis

Modifiezlesscriptsdemanirecequelecture.shnepuisseexcuterl'instructioncat $FILEqu'aprsl'excutiondel'instructionecho "$@" > $FILEduscriptecriture.sh. #!/bin/bash # ecriture.sh if [ $# -lt 2 ] then echo "erreur ecriture" exit 1 else FILE=$1 SYNC=$1.sync shift echo "$@" > $FILE echo > $SYNC fi #!/bin/bash # lecture.sh if [ $# -ne 1 ] then echo "erreur lecture" exit 1 else FILE=$1 SYNC=$1.sync while [ ! -f $SYNC ] do sleep 1 done cat $FILE rm $SYNC fi

CommunicationInterprocessus(4points)

Soientles3scriptssuivants: #!/bin/bash # script1.sh export i for i in "$@" do ./script2.sh echo Script1 : $i done

#!/bin/bash # script2.sh

#!/bin/bash # script3.sh

if [ "$i" -eq 1 ] i=expr $i \* 2 then echo Script3 : $i ./script3.sh elif [ "$i" -eq 2 ] then ./script3.sh i=expr $i + 1 ./script3.sh fi echo Script2 : $i Onrappellequelacommandeexportpermetlutilisationdelavariableenparamtredansles scriptsshellultrieurs.Chaquescript,danssonenvironnementdexcution,luiseulpourralireet modifierlavariablequiauracommevaleurinitialelavaleurquelleadanslenvironnementdu preaumomentdelacrationdufils. Donnezlaffichageproduitparlacommande:./script1.sh 1 2 Expliquezcequevousobtenez(indication:Vouspouvezlexpliquerparunschma)

Lexportationdunevariableestvalablepourtoutelasousarborescence.Chaqueprocessuscr parlexcutiondelacommande./script1.sh12auradoncdanssonenvironnementdexcution unevariableiqueluiseulpourralireetmodifieret.Lesvolutionsdesdiffrentesvariablesi sontillustresparleschmasuivant.

done

./script3.sh fi echo Script2 : $i


EcoleNationaledIngnieursdeTunis

Donnez lafchage produit par la commande ./script1.sh 1 2. Expliquez ce que vous obtenez. Solution:
Script3 : 2 Script3:2 Script2 : 1 Script2:1 Script1 : 1 Script1:1 Script3 : 4 Script3:4 Script3 : 6 Script3:6 Script2 : 3 Script2:3 Script1 : 2 Script1:2
script1.sh i=1 script2.sh i=1 script3.sh i=1 i=2 echo Script3 : 2 echo Script2 : 1 echo Script1 : 1 i=2 script2.sh i=2 script3.sh i=2 i=4 echo Script3 : 4 i=3 script3.sh i=3 i=6 echo Script3 : 6 echo Script2 : 3 echo Script1 : 2

Onsouhaitecrireunscriptremplace.shquireoitenparamtredeuxnomsdefichiers(fic1 etfic2)etunelistederpertoires.Lefichierfic1doittreunfichierdurpertoirecourant. Aprsl'excutionduscript,toutfichierfic2setrouvantdansundesrpertoirespasssen paramtredoitavoirsoncontenuremplacparceluidefic1. Ecrivezlescriptremplace.shcorrespondantexactementl'algorithmesuivant.


Tester le nombre de paramtres, s'il n'est pas correct afficher un message d'erreur et terminer le script. Donner la variable fic1 la valeur du premier paramtre. Donner la variable fic2 la valeur du deuxime paramtre. Dcaler des deux premiers paramtres dans la liste des paramtres Tester que le premier paramtre est un fichier du rpertoire courant. Si ce n'est pas le cas, afficher un message d'erreur et terminer le script. Dbut boucle La boucle doit permettre, chaque nouveau tour, de rcuprer le paramtre suivant

3 Shell(6points)

EcoleNationaledIngnieursdeTunis

Si l'lment est un rpertoire Si fic2 est un fichier du rpertoire remplacer son contenu par celui de fic1 (Attention : fic2 ne doit pas changer de nom) Fin Si Sinon Afficher que l'lment n'est pas un rpertoire Fin si Fin boucle

#! /bin/sh set -x if [ $# -lt 3 ] ; then echo Il faut au moins trois parametres exit 1 fi fic1=$1 fic2=$2 shift 2 if [ ! -f "$fic1" ] ; then echo Le deuxieme parametre doit etre un fichier du repertoire courant exit 1 fi for rep in "$@" ; do if [ -d "$rep" ] ; then if [ -f "$rep/$fic2" ] ; then cat "$fic1" > "$rep/$fic2" fi else echo $rep n\'est pas un repertoire fi done