Découvrez notre Chaîne YouTube "Ingénierie et Projets"
Découvrez notre Chaîne Secondaire "Information Neuronale et l'Ingénierie du Cerveau"

Titre: Les Systèmes d’Exploitation

Auteurs: Bertrand Collin, Marc Baudoin, Manuel Bouyer, Jérôme Gueydan, Thomas Degris, Frédéric Loyer, Damien Mercier.

Ecole/Université: École nationale supérieure de techniques avancées

Résumé: Pourquoi un système d’exploitation ? Le système d’exploitation est l’élément essentiel qui relie la machine, composée d’éléments physiques comme le microprocesseur, le disque dur ou les barrettes mémoire, et l’utilisateur qui souhaite effectuer des calculs. Sans système d’exploitation, chaque utilisateur serait obligé de connaître le fonctionnement exact de la machine sur laquelle il travaille et il serait, par exemple, amené à programmer directement un contrôleur de périphérique USB pour pouvoir enregistrer ses données sur une clé USB.

Sans le contrôle du système d’exploitation, les utilisateurs pourraient aussi détruire irrémédiablement certaines données stockées sur un ordinateur, voire détruire certains périphériques – comme le disque dur – en programmant des opérations illicites. Les systèmes d’exploitation jouent donc un rôle majeur dans l’utilisation d’un ordinateur et si l’outil informatique s’est répandu dans le monde entier, c’est certes grâce à l’abaissement des prix d’achat et grâce à l’augmentation de la puissance des ordinateurs, mais c’est surtout grâce aux progrès réalisés lors des cinquante dernières années dans la programmation des systèmes d’exploitation : avec une machine de puissance équivalente, la moindre opération sur un ordinateur qui aujourd’hui nous paraît triviale était alors proprement impossible à réaliser !

Ce document présente les systèmes d’exploitation ainsi que leurs composants principaux et leurs structures. Toutes les notions essentielles à la compréhension du fonctionnement d’un ordinateur avec son système d’exploitation sont ici abordées, mais un lecteur désireux d’approfondir un sujet particulier doit se reporter à un ouvrage spécialisé, par exemple un des ouvrages cités dans la bibliographie. Les notions présentées ici ne font en général référence à aucun système d’exploitation en particulier. Néanmoins, nous avons choisi d’illustrer les fonctionnalités avancées des systèmes d’exploitation par des exemples provenant essentiellement des systèmes d’exploitation de type Unix. Nous justifierons plus loin ce choix et un lecteur critique pourra considérer que ce choix est a priori aussi valable qu’un autre. Nous abordons aussi dans ce document certains sujets qui ne relèvent pas directement des systèmes d’exploitation, comme l’architecture des ordinateurs ou la compilation de programmes, mais dont l’étude permet d’expliquer plus facilement le rôle d’un système d’exploitation et de montrer l’étendue des services qu’il rend.

Pourquoi étudier les systèmes d’exploitation ? Avant de se lancer à corps perdu dans l’étude des systèmes d’exploitation, il est raisonnable de se demander ce que cette étude peut nous apporter. Précisons tout d’abord que ce document est à l’origine le support écrit d’un cours proposé en deuxième année du cycle d’ingénieur de l’ENSTA ParisTech 2. Les raisons évoquées ci-dessous s’adressent donc à tous les étudiants non spécialisés en informatique qui exerceront rapidement des métiers d’ingénieur à responsabilité. Tous les ingénieurs issus de grandes écoles généralistes auront à utiliser l’outil informatique dans leur métier. Bien entendu, suivant le métier exercé ou suivant l’évolution de la carrière de chacun, cette utilisation sera plus ou moins fréquente et certains ne feront que tapoter de temps en temps sur leur clavier alors que d’autres passeront des heures à se battre avec (contre ?) la machine. Quel que soit le profil choisi, tous les ingénieurs de l’ENSTA ParisTech se retrouveront dans une des trois 3 catégories suivantes.

L’utilisateur : comme son nom l’indique, la seule préoccupation de l’utilisateur est d’utiliser sa machine. Son désir le plus vif est que celle-ci se mette à fonctionner normalement quand il l’allume et que ses logiciels favoris lui permettent de travailler correctement. Le décideur : il prend les décisions vitales concernant les choix stratégiques et commerciaux de l’informatique d’entreprise. C’est lui qui décidera par exemple s’il vaut mieux acheter un gros ordinateur relié à 50 terminaux ou s’il est préférable d’acheter 50 micro-ordinateurs.

Nous pourrions ajouter d’autres catégories afin de distinguer certaines professions comme par exemple le conseil en informatique connectés en réseau. Souvent le décideur se fonde sur les besoins exprimés par les utilisateurs pour prendre sa décision. Le programmeur : il cherche à tirer le meilleur parti de la machine qu’il programme tout en perdant le moins de temps possible en développements. Le programmeur cherche aussi à préserver ses programmes du temps qui passe et tente de les réutiliser de machine en machine afin de ne pas tout recommencer à chaque fois. Beaucoup d’élèves ingénieurs estiment spontanément que seule la 3e catégorie doit s’intéresser aux cours d’informatique et, notamment, aux systèmes d’exploitation. En fait, ceci est faux et c’est même une erreur grave.

Extrait du sommaire:

Glossaire 9
Introduction 11
Pourquoi un système d’exploitation ? 11
Pourquoi étudier les systèmes d’exploitation ? 12
Plan du document 16
Les sujets qui ne sont pas traités dans ce document 18
Table des matières 19
I Les systèmes d’exploitation 25
1 Rappels sur l’architecture des ordinateurs 27
1.1 Représentation symbolique et minimaliste d’un ordinateur 27
1.2 Représentation fonctionnelle d’un ordinateur 28
1.3 Mode noyau versus mode utilisateur 40
1.4 Le jeu d’instructions 41
1.5 Rôle de l’unité de gestion de mémoire 45
1.6 Performances des ordinateurs 47
1.7 Conclusion : que retenir de ce chapitre ? 53
2 Qu’est-ce qu’un système d’exploitation ? 55
2.1 Définitions et conséquences 56
2.2 Les appels système 58
2.3 Structure d’un système d’exploitation 60
2.4 Les différents types de systèmes d’exploitation 64
2.5 Les services des systèmes d’exploitation 66
2.6 Conclusion : que retenir de ce chapitre ? 67
3 Évolution des systèmes d’exploitation 69
3.1 Les origines et les mythes (16xx–1940) 70
3.2 La préhistoire (1940–1955) 70
3.3 Les ordinateurs à transistor (1955–1965) 74
3.4 Les circuits intégrés (1965–1980) 79
3.5 L’informatique moderne (1980–1995) 85
3.6 Les systèmes d’exploitation d’aujourd’hui 86
3.7 Conclusion : que faut-il retenir de ce chapitre ? 96
4 Compilation et édition de liens 97
4.1 Vocabulaire et définitions 100
4.2 Les phases de compilation 104
4.3 L’édition de liens 111
4.4 Structure des fichiers produits par compilation 115
4.5 Les problèmes d’adresses 117
4.6 Les appels système 119
5 La gestion des processus 121
5.1 Qu’est-ce qu’un processus ? 122
5.2 La hiérarchie des processus 126
5.3 Structures utilisées pour la gestion des processus 132
5.4 L’ordonnancement des processus (scheduling) 139
5.5 Conclusion 149
6 La gestion de la mémoire 151
6.1 Les adresses virtuelles et les adresses physiques 152
6.2 Les services du gestionnaire de mémoire 157
6.3 La gestion de la mémoire sans pagination 162
6.4 La pagination 165
6.5 Conclusion 168
7 Le système de fichiers 169
7.1 Les services d’un système de fichier 170
7.2 L’organisation des systèmes de fichiers 176
7.3 La gestion des volumes 182
7.4 Améliorations des systèmes de fichiers 185
8 Les architectures multi-processeurs et les threads 191
8.1 De la loi de Moore au multi-coeurs 191
8.2 Les threads 199
8.3 Conclusion 210
9 La virtualisation des systèmes d’exploitation 211
9.1 Les intérêts et les enjeux de la virtualisation 212
9.2 Les différentes solutions 216
9.3 Conclusion 228
II Programmation système en C sous Unix 229
10 Les processus sous Unix 231
10.1 Introduction 231
10.2 Les entrées / sorties en ligne 231
10.3 Les fonctions d’identification des processus 235
10.4 Exercices 236
10.5 Corrigés 238
10.6 Corrections détaillées 239
11 Les entrées / sorties sous Unix 245
11.1 Les descripteurs de fichiers 246
11.2 Les appels système associés aux descripteurs de fichier 246
11.3 La bibliothèque standard d’entrées / sorties 253
11.4 Exercices 258
11.5 Corrigés 259
11.6 Corrections détaillées 261
12 Création de processus sous Unix 267
12.1 La création de processus 267
12.2 L’appel système wait() 268
12.3 Exercices 269
12.4 Corrigés 270
12.5 Corrections détaillées 273
13 Recouvrement de processus sous Unix 289
13.1 Les appels système de recouvrement de processus 289
13.2 Exercices 291
13.3 Corrigés 293
14 Manipulation des signaux sous Unix 297
14.1 Liste et signification des différents signaux 297
14.2 Envoi d’un signal 298
14.3 Interface de programmation 299
14.4 Conclusion 302
14.5 Exercices 303
14.6 Corrigés 304
15 Les tuyaux sous Unix 307
15.1 Manipulation des tuyaux 308
15.2 Exercices 318
15.3 Corrigés 320
15.4 Corrections détaillées 329
16 Les sockets sous Unix 347
16.1 Introduction 347
16.2 Les RFC request for comments 347
16.3 Technologies de communication réseau 347
16.4 Le protocole IP 348
16.5 Interface de programmation 351
17 Les threads POSIX sous Unix 363
17.1 Présentation 363
17.2 Exercices 370
17.3 Corrigés 371
17.4 Architectures et programmation parallèle 379
18 Surveillances des entrées / sorties sous Unix 381
18.1 Introduction 381
18.2 L’appel système select() 382
18.3 Exercices 383
18.4 Corrigés 385
19 Utilisation d’un débogueur 393
19.1 Introduction 393
19.2 gdb, xxgdb, ddd et les autres 394
19.3 Utilisation de gdb 394
III Projets 407
20 Projet de carte bleue 409
20.1 Introduction 409
20.2 Cahier des charges 411
20.3 Conduite du projet 416
20.4 Évolutions complémentaires et optionnelles 420
20.5 Annexes 421
21 Le Scaphandre et le Papillon 427
21.1 Énoncé 427
21.2 Contraintes générales 427
21.3 Contraintes techniques 428
21.4 Services à mettre en oeuvre 429
21.5 Précisions 431
21.6 Déroulement du projet 431
22 Projet de Jukebox 433
22.1 Énoncé 433
22.2 Outils utilisés 433
22.3 Commandes de mpg123 434
22.4 Les ID3-tag 437
22.5 Suggestion d’un plan d’action 437
23 Administration distante 439
23.1 Position du problème 439
23.2 Le processus Machine 440
23.3 Le processus Administrateur 441
23.4 L’interface 444
23.5 Les dialogues 444
23.6 Consignes et cahier des charges 445
23.7 Améliorations possibles 447
23.8 Aide mémoire 448
24 Parcours multi-agents dans un labyrinthe 455
24.1 Position du problème 456
24.2 L’organisation générale 461
24.3 Mise en oeuvre du projet 465
24.4 Conseils en vrac 469
25 Course de voitures multi-threads 471
25.1 Présentation 471
25.2 Cahier des charges 476
25.3 Annexes 479
IV L’aide-mémoire du langage C 487
26 Aide-mémoire de langage C 489
26.1 Éléments de syntaxe 491
26.2 La compilation sous Unix 493
26.3 Types, opérateurs, expressions 500
26.4 Tests et branchements 514
26.5 Tableaux et pointeurs 518
26.6 Le préprocesseur 527
26.7 Fonctions d’entrée/sortie 531
26.8 Compléments : la bibliothèque standard et quelques fonctions annexes 534
Index – Général 553
Index – Programmation 557
Bibliographie 559

Cours divers en électronique 6
Télécharger le fichier PDF: Les Systèmes d’Exploitation

Le blog contient des publicités, elles permettent de financer l'hébergement et maintenir le blog en fonctionnement. Vous pouvez utiliser adblock pour une lecture sans publicités.
We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.
Cookies settings
Accept
Decline
Privacy & Cookie policy
Privacy & Cookies policy
Cookie name Active

Privacy Policy

What information do we collect?

We collect information from you when you register on our site or place an order. When ordering or registering on our site, as appropriate, you may be asked to enter your: name, e-mail address or mailing address.

What do we use your information for?

Any of the information we collect from you may be used in one of the following ways: To personalize your experience (your information helps us to better respond to your individual needs) To improve our website (we continually strive to improve our website offerings based on the information and feedback we receive from you) To improve customer service (your information helps us to more effectively respond to your customer service requests and support needs) To process transactions Your information, whether public or private, will not be sold, exchanged, transferred, or given to any other company for any reason whatsoever, without your consent, other than for the express purpose of delivering the purchased product or service requested. To administer a contest, promotion, survey or other site feature To send periodic emails The email address you provide for order processing, will only be used to send you information and updates pertaining to your order.

How do we protect your information?

We implement a variety of security measures to maintain the safety of your personal information when you place an order or enter, submit, or access your personal information. We offer the use of a secure server. All supplied sensitive/credit information is transmitted via Secure Socket Layer (SSL) technology and then encrypted into our Payment gateway providers database only to be accessible by those authorized with special access rights to such systems, and are required to?keep the information confidential. After a transaction, your private information (credit cards, social security numbers, financials, etc.) will not be kept on file for more than 60 days.

Do we use cookies?

Yes (Cookies are small files that a site or its service provider transfers to your computers hard drive through your Web browser (if you allow) that enables the sites or service providers systems to recognize your browser and capture and remember certain information We use cookies to help us remember and process the items in your shopping cart, understand and save your preferences for future visits, keep track of advertisements and compile aggregate data about site traffic and site interaction so that we can offer better site experiences and tools in the future. We may contract with third-party service providers to assist us in better understanding our site visitors. These service providers are not permitted to use the information collected on our behalf except to help us conduct and improve our business. If you prefer, you can choose to have your computer warn you each time a cookie is being sent, or you can choose to turn off all cookies via your browser settings. Like most websites, if you turn your cookies off, some of our services may not function properly. However, you can still place orders by contacting customer service. Google Analytics We use Google Analytics on our sites for anonymous reporting of site usage and for advertising on the site. If you would like to opt-out of Google Analytics monitoring your behaviour on our sites please use this link (https://tools.google.com/dlpage/gaoptout/)

Do we disclose any information to outside parties?

We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our website, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety. However, non-personally identifiable visitor information may be provided to other parties for marketing, advertising, or other uses.

Registration

The minimum information we need to register you is your name, email address and a password. We will ask you more questions for different services, including sales promotions. Unless we say otherwise, you have to answer all the registration questions. We may also ask some other, voluntary questions during registration for certain services (for example, professional networks) so we can gain a clearer understanding of who you are. This also allows us to personalise services for you. To assist us in our marketing, in addition to the data that you provide to us if you register, we may also obtain data from trusted third parties to help us understand what you might be interested in. This ‘profiling’ information is produced from a variety of sources, including publicly available data (such as the electoral roll) or from sources such as surveys and polls where you have given your permission for your data to be shared. You can choose not to have such data shared with the Guardian from these sources by logging into your account and changing the settings in the privacy section. After you have registered, and with your permission, we may send you emails we think may interest you. Newsletters may be personalised based on what you have been reading on theguardian.com. At any time you can decide not to receive these emails and will be able to ‘unsubscribe’. Logging in using social networking credentials If you log-in to our sites using a Facebook log-in, you are granting permission to Facebook to share your user details with us. This will include your name, email address, date of birth and location which will then be used to form a Guardian identity. You can also use your picture from Facebook as part of your profile. This will also allow us and Facebook to share your, networks, user ID and any other information you choose to share according to your Facebook account settings. If you remove the Guardian app from your Facebook settings, we will no longer have access to this information. If you log-in to our sites using a Google log-in, you grant permission to Google to share your user details with us. This will include your name, email address, date of birth, sex and location which we will then use to form a Guardian identity. You may use your picture from Google as part of your profile. This also allows us to share your networks, user ID and any other information you choose to share according to your Google account settings. If you remove the Guardian from your Google settings, we will no longer have access to this information. If you log-in to our sites using a twitter log-in, we receive your avatar (the small picture that appears next to your tweets) and twitter username.

Children’s Online Privacy Protection Act Compliance

We are in compliance with the requirements of COPPA (Childrens Online Privacy Protection Act), we do not collect any information from anyone under 13 years of age. Our website, products and services are all directed to people who are at least 13 years old or older.

Updating your personal information

We offer a ‘My details’ page (also known as Dashboard), where you can update your personal information at any time, and change your marketing preferences. You can get to this page from most pages on the site – simply click on the ‘My details’ link at the top of the screen when you are signed in.

Online Privacy Policy Only

This online privacy policy applies only to information collected through our website and not to information collected offline.

Your Consent

By using our site, you consent to our privacy policy.

Changes to our Privacy Policy

If we decide to change our privacy policy, we will post those changes on this page.
Save settings
Cookies settings

You have successfully subscribed to the newsletter

There was an error while trying to send your request. Please try again.

FPGA | Arduino | Matlab | Cours will use the information you provide on this form to be in touch with you and to provide updates and marketing.