Maison - Cuisine
Téléchargez l'encyclopédie tout sur les systèmes d'exploitation. Livres sur les systèmes d'exploitation. Présentation du matériel informatique

1Premiers pas avec les systèmes d'exploitation

1.1 Objectif et fonctions des systèmes d'exploitation

Un système d'exploitation informatique est un ensemble de programmes interdépendants qui servent d'interface entre les applications et les utilisateurs d'une part, et le matériel informatique d'autre part. Le système d'exploitation remplit deux groupes de fonctions :

Fournit à l'utilisateur ou au programmeur une machine virtuelle étendue au lieu d'un matériel informatique réel ;

Augmente l'efficacité de l'utilisation de l'ordinateur en gérant rationnellement ses ressources conformément à certains critères.

En règle générale, l'utilisateur ne s'intéresse pas aux détails du matériel informatique ; il le considère comme un ensemble d'applications pouvant être écrites dans l'un des langages de programmation. Le système d'exploitation offre au programmeur un certain nombre de fonctionnalités que les programmes peuvent utiliser via des commandes spéciales appelées appels système. Par conséquent, une application logicielle comprend de nombreux appels système nécessaires, par exemple, pour travailler avec des fichiers. Le système d'exploitation cache les détails du matériel au programmeur et fournit une interface pratique pour exécuter l'environnement d'exploitation du système.

Dans le même temps, le système d'exploitation agit comme un gestionnaire de ressources. Selon cette approche, le travail du système d'exploitation est de fournir une distribution organisée et contrôlée des processeurs, de la mémoire et des périphériques d'E/S entre les ordinateurs. divers programmes. Le système d'exploitation possède les fonctionnalités suivantes :

Les fonctions du système d'exploitation fonctionnent de la même manière que les autres logiciels - elles sont implémentées sous la forme de programmes individuels ou d'un ensemble de programmes exécutant des processus ;

Le système d'exploitation doit déléguer le contrôle à d'autres processus et attendre que le processeur lui donne à nouveau le temps d'accomplir ses tâches.

La gestion des ressources comprend la résolution des tâches générales suivantes qui ne dépendent pas du type de ressource :

Planification des ressources – c'est-à-dire déterminer à quel processus, quand et en quelle quantité (si la ressource peut être allouée en plusieurs parties) une ressource donnée doit être allouée ;

Satisfaire les demandes de ressources ;

Suivre l'état et enregistrer l'utilisation d'une ressource, c'est-à-dire maintenir informations opérationnelles si la ressource est occupée ou libre et quelle part de la ressource a déjà été allouée ;

Résoudre les conflits entre les processus.

La gestion des ressources comprend leur multiplexage (distribution) de deux manières : dans le temps et dans l'espace. Lorsqu'une ressource est allouée au fil du temps, différents utilisateurs et programmes l'utilisent à tour de rôle. L'un d'eux a d'abord accès pour utiliser la ressource, puis un autre, etc. Par exemple, plusieurs programmes souhaitent accéder au processeur central. Dans cette situation, le système d'exploitation autorise d'abord un programme à accéder au processeur, puis, après un temps d'exécution suffisant, un autre programme, puis le suivant et enfin à nouveau le premier. Déterminer combien de temps une ressource sera utilisée au fil du temps, qui sera le prochain et pendant combien de temps la ressource leur sera donnée est la tâche du système d'exploitation. Un autre type de distribution est le multiplexage spatial. Au lieu de se relayer, chaque client reçoit une partie de la ressource. En règle générale, la RAM est partagée entre plusieurs programmes en cours d'exécution afin que tous puissent résider en mémoire en même temps (par exemple, en utilisant le processeur central à tour de rôle). En supposant qu'il y ait suffisamment de mémoire pour contenir plusieurs programmes, il est plus efficace d'allouer plusieurs programmes en mémoire à la fois que d'allouer toute la mémoire à un seul programme, surtout s'il n'a besoin que d'une petite partie de la mémoire disponible. Bien entendu, cela soulève des problèmes de distribution équitable, de protection de la mémoire, etc., et le système d'exploitation existe pour résoudre ces problèmes.

1.2 Historique du développement des systèmes d'exploitation

Habituellement, l'histoire du développement des systèmes d'exploitation est associée à l'histoire du développement des ordinateurs. La première idée d’ordinateur a été proposée par le mathématicien anglais Charles Babbage au milieu du XIXe siècle. Il développa ce qu’on appelle le « moteur analytique » mécanique, qui ne fonctionna cependant jamais correctement. Voici les générations d'ordinateurs et leurs relations avec les systèmes d'exploitation.

Première génération 1945-1955

Les ordinateurs étaient constitués de tubes à vide et de panneaux de brassage. La plus haute réalisation est la production de cartes perforées. Fabriquée à partir de carton fin, une carte perforée représente une information par la présence ou l'absence de trous à certains endroits de la carte. Il n'y a pas de système d'exploitation.

Deuxième génération 1955-1965

Les ordinateurs reposent sur des transistors et des systèmes de traitement par lots. Caractérisé par des jeux de cartes perforées et des dispositifs d'enregistrement de bandes magnétiques. Principalement programmé en langages Fortran et Assembly pour les systèmes d'exploitation Fortran Monitor System (FMS) et IBSYS.

Troisième génération 1965-1980

La période est caractérisée par l'apparition des circuits intégrés, ainsi que du multitâche ou, comme on l'appelle autrement, de la multiprogrammation. IBM produit diverses séries de machines, à commencer par l'IBM/360. Le système d'exploitation OS/360 a été écrit pour eux, qui était environ 1 000 fois plus volumineux que le FMS de deuxième génération. À ce stade, une mise en œuvre industrielle du multitâche apparaît - une méthode d'organisation d'un processus informatique dans laquelle plusieurs programmes étaient simultanément stockés dans la mémoire de l'ordinateur et exécutés alternativement sur un processeur.

D'autres célèbres systèmes d'exploitation de cette période, CTSS (Compatible Time Sharing System) et MULTICS (Multiplex Information and Computing Service), conçus pour permettre l'accès à une seule machine à des centaines d'utilisateurs à la fois. Le développement ultérieur de ce système a donné naissance à UNIX.

Quatrième génération 1980-présent

Cette période est associée à l'avènement des circuits intégrés à grande échelle. En 1974, Intel a lancé le premier processeur universel 8 bits. Processeur Intel 8080. Au début des années 80, IBM a développé l'IBM PC, un ordinateur personnel. Au même moment, la première version de MS-DOS apparaît. Tous les systèmes d'exploitation développés jusqu'à présent ne prenaient en charge que le mode texte de communication avec l'utilisateur.

La première tentative de création d'une interface graphique conviviale a été implémentée sur Apple Macintosh. Influencé par ses succès, Microsoft Corporation lance un shell graphique pour MS-DOS - Windows. Et depuis 1995, Windows 95 est sorti, devenu système autonome. Par la suite, sur la base de Windows 95 et d'un autre système Windows NT, les systèmes d'exploitation actuellement existants ont été développés - Windows 2000, XP, Vista et autres.

1.3 Classification des systèmes d'exploitation

Il existe de nombreux systèmes d'exploitation et tout le monde ne les connaît pas. Ensuite, nous considérons 7 types de systèmes d'exploitation différents, du plus grand au plus petit niveau.

Systèmes d'exploitation mainframe

Mainframe - ordinateur hautes performances usage général avec une quantité importante de tâches opérationnelles et mémoire externe, conçu pour effectuer un travail de calcul intensif. Il s'agit généralement d'ordinateurs de la taille d'une pièce et situés dans grandes entreprises. Les mainframes contiennent généralement des milliers de disques et des téraoctets de RAM.

Les systèmes d'exploitation mainframe sont principalement conçus pour gérer plusieurs tâches simultanées, dont la plupart nécessitent d'énormes quantités d'E/S. Le système doit répondre à des milliers de requêtes par seconde. Un exemple est OS/390, qui a évolué à partir du système d’exploitation OS/360 de 3ème génération.

Systèmes d'exploitation de serveur

Ces systèmes d'exploitation fonctionnent sur des serveurs, qui sont un ordinateur personnel, un poste de travail ou même un ordinateur central. Les serveurs offrent la possibilité de travailler avec des périphériques d'impression, des fichiers ou Internet. Ces systèmes d'exploitation incluent Unix, Linux, Windows 2003 Server, etc.

Systèmes d'exploitation multiprocesseurs

Ces systèmes sont utilisés sur des ordinateurs dotés de plusieurs processeurs centraux. Ils nécessitent des systèmes d'exploitation spéciaux, mais sont généralement des modifications des systèmes d'exploitation des serveurs.

Systèmes d'exploitation pour ordinateurs personnels

Le critère principal de ces systèmes est une interface pratique pour un utilisateur. Les systèmes les plus connus : Windows 98, 2000, XP, séries Vista ; Macintosh, Linux.

Systèmes d'exploitation en temps réel

Le paramètre principal de ces systèmes est le temps. Dans les systèmes de contrôle processus industriel il est nécessaire de synchroniser clairement le temps de fonctionnement du convoyeur et des différents robots industriels. Il s’agit d’un système difficile en temps réel. Il existe également des systèmes flexibles en temps réel dans lesquels le non-respect des délais de réalisation d'une opération est acceptable, par exemple les systèmes multimédias. Les systèmes d'exploitation en temps réel incluent VxWorks et QNX.

Systèmes d'exploitation embarqués

Il s'agit notamment des systèmes d'exploitation PDA (Personal Digital Assistant). De plus, les systèmes embarqués fonctionnent dans les voitures, les téléviseurs, téléphones portables. Ces systèmes d'exploitation présentent généralement toutes les caractéristiques des systèmes d'exploitation temps réel avec des limitations en termes de mémoire, de puissance, etc. Des exemples de systèmes sont PalmOS, Windows CE.

Systèmes d'exploitation pour cartes à puce

Une carte à puce est un appareil de la taille d'une carte de crédit contenant une unité centrale de traitement. De tels systèmes sont soumis à de sévères limitations de puissance et de mémoire. Certains ne gèrent qu'une seule opération - paiement électronique Par exemple. Certaines cartes à puce incluent la prise en charge de la machine virtuelle Java.

1.4 Présentation du matériel informatique

Un système d'exploitation est étroitement lié au matériel de l'ordinateur sur lequel il doit fonctionner. Le matériel influence le jeu de commandes du système d'exploitation et la gestion de ses ressources. Conceptuellement, un ordinateur simple peut être représenté par le modèle présenté à la figure 1. Cette structure a été utilisée sur les premiers modèles IBM PC.

Figure 1 - Certains composants d'un ordinateur personnel


Sur la figure, le processeur central, la mémoire et les périphériques d'entrée/sortie sont connectés par un bus système à travers lequel ils échangent des informations.

Processeur

Le « cerveau » d’un ordinateur est l’unité centrale de traitement (CPU). Il sélectionne les commandes de la mémoire et les exécute. Un cycle de processeur typique ressemble à ceci : lit la première instruction de la mémoire, la décode pour déterminer son type et ses opérandes, exécute l'instruction, puis lit et décode les instructions suivantes. C'est ainsi que les programmes sont exécutés.

Chaque processeur dispose d'un ensemble d'instructions qu'il est capable d'exécuter. Étant donné que l'accès à la mémoire pour recevoir des instructions ou récupérer des données prend beaucoup plus de temps que l'exécution de ces instructions, tous les processeurs contiennent des registres internes pour stocker les variables et les résultats intermédiaires. Par conséquent, le jeu d'instructions contient généralement des instructions pour charger un mot de la mémoire dans un registre et stocker un mot d'un registre dans la mémoire. En plus des registres principaux utilisés pour stocker les variables, la plupart des processeurs disposent de plusieurs registres spéciaux utilisés pour stocker les variables, ainsi que de registres spéciaux visibles par les programmeurs.

Lorsque le processeur est multiplexé dans le temps, le système d'exploitation arrête un programme en cours d'exécution pour en démarrer un autre. Chaque fois qu'une telle interruption se produit, le système d'exploitation doit sauvegarder tous les registres du processeur afin de pouvoir les restaurer ultérieurement, lorsque le programme interrompu continue de s'exécuter.

Pour augmenter la vitesse du processeur, leurs développeurs ont abandonné le modèle simple, dans lequel une seule commande peut être lue, décodée et exécutée en un seul cycle d'horloge. Processeurs modernes avoir la possibilité d'exécuter plusieurs commandes simultanément.

La plupart des processeurs ont deux modes de fonctionnement : le mode noyau et le mode utilisateur. Si le processeur fonctionne en mode noyau, il peut exécuter toutes les instructions du jeu d'instructions et utiliser toutes les capacités du matériel. Le système d'exploitation fonctionne en mode noyau, donnant accès à tout le matériel. En revanche, les utilisateurs fonctionnent en mode utilisateur, ce qui permet d'exécuter un sous-ensemble de programmes et ne rend disponible qu'une partie du matériel.

Mémoire

Le deuxième composant principal de tout ordinateur est la mémoire. Idéalement, la mémoire devrait être aussi rapide que possible (plus rapide que le traitement d'une seule instruction, afin que le processeur ne soit pas ralenti par l'accès à une mémoire suffisamment grande et extrêmement bon marché). Aujourd’hui, aucune technologie ne répond à toutes ces exigences. Il existe donc une autre approche.

Le système mémoire est construit sous la forme d'une hiérarchie de couches, illustrées dans la figure 2. Au fur et à mesure que vous parcourez la hiérarchie de haut en bas, deux paramètres augmentent : le temps d'accès, la taille de la mémoire.

La couche supérieure est constituée des registres internes du processeur, il n'y a donc aucun délai pour y accéder. Les registres internes stockent moins de 1 Ko d’informations. Les programmes peuvent manipuler les registres sans intervention matérielle. L'accès au registre est le plus rapide - quelques nanosecondes.

La couche suivante contient la mémoire cache, principalement contrôlée par le matériel. Les zones de cache les plus fréquemment utilisées sont stockées dans la mémoire cache à haute vitesse située à l'intérieur du processeur. Lorsqu'un programme a besoin de lire un mot de la mémoire, la puce de cache détermine si la ligne souhaitée se trouve dans le cache ; si tel est le cas, un accès au cache se produit. La taille de la mémoire cache est limitée en raison de son coût élevé. DANS voitures modernes il existe deux ou trois niveaux de cache, chacun étant plus lent et plus volumineux que le précédent. La taille de la mémoire cache varie de plusieurs dizaines de kilo-octets à plusieurs mégaoctets. Le temps d'accès est légèrement plus long que pour les registres.


Figure 2 – Structure hiérarchique de la mémoire


Vient ensuite la RAM (RAM - Random Access Memory ou mémoire vive) - la principale zone de travail du périphérique de stockage de la machine. Toutes les requêtes CPU qui ne peuvent pas être satisfaites par la mémoire cache sont envoyées à la RAM pour traitement. Les volumes varient de plusieurs centaines de mégaoctets à plusieurs gigaoctets. Le temps d'accès est de plusieurs dizaines de nanosecondes.

Vient ensuite le disque magnétique. La mémoire disque est deux ordres de grandeur moins chère que la RAM par bit et deux ordres de grandeur plus grande en taille. Le disque a un problème : l'accès aléatoire aux données qu'il contient prend environ trois ordres de grandeur plus long. La raison de la lenteur des disques durs (HDD) est que le disque est une structure mécanique. Il est constitué d'une ou plusieurs plaques métalliques tournant à des vitesses spécifiques, par exemple 7200 tr/min. Les volumes de disques augmentent désormais rapidement ; des disques de plusieurs centaines de gigaoctets sont en vente pour la plupart des utilisateurs. Temps d'accès – pas moins de 10 µs.

La bande magnétique est souvent utilisée pour créer copies de sauvegarde Disque dur ou pour stocker de très grands ensembles de données. Aujourd’hui, bien sûr, il est rare que l’on puisse trouver l’utilisation de bandes magnétiques, mais elles ne sont pas encore hors d’usage. Le niveau bande magnétique comprend également des CD, DVD et mémoire flash. Le temps d’accès est mesuré en secondes.

En plus des types décrits, les ordinateurs disposent d'une petite quantité de mémoire vive permanente. Contrairement à la RAM, elle ne perd pas son contenu lors de la mise hors tension. C'est ce qu'on appelle ROM ou ROM. La ROM est programmée lors de la fabrication et son contenu ne peut plus être modifié par la suite. Cette mémoire est assez rapide et bon marché. Les programmes de démarrage de l'ordinateur, utilisés au démarrage, se trouvent dans la ROM. De plus, certaines cartes d'E/S contiennent de la ROM pour contrôler les périphériques de bas niveau. Un type de mémoire appelé CMOS est volatile. CMOS est utilisé pour stocker la date, l'heure et les paramètres de configuration actuels, tels que l'indication à partir de laquelle disque dur charger. Cette mémoire est alimentée par la batterie installée.

Périphériques d'E/S

Le système d'exploitation traite les périphériques d'E/S comme des ressources. Les périphériques d'E/S sont généralement constitués d'un contrôleur et du périphérique lui-même.

Un contrôleur est un ensemble de puces sur une carte insérées dans un connecteur, un dispositif de contrôle physique. Il accepte les commandes du système d'exploitation (par exemple, les instructions pour lire les données d'un appareil) et les exécute. Le contrôle proprement dit de l'appareil est très complexe et nécessite haut niveau détails. Par conséquent, la fonction du contrôleur est de fournir une interface simple au système d’exploitation.

La partie suivante est l'appareil lui-même. Les appareils ont des interfaces assez simples, car leurs capacités sont limitées et doivent être ramenées à une norme unique. Par exemple, un seul standard est nécessaire pour que chaque contrôleur de disque IDE (Integrated Drive Electronics) puisse gérer n'importe quel disque IDE. L'interface IDE est standard pour les lecteurs des ordinateurs équipés d'un processeur Pentium, ainsi que sur d'autres ordinateurs. Étant donné que l'interface réelle de l'appareil est masquée par le contrôleur, le système d'exploitation ne voit que l'interface du contrôleur, qui peut être très différente de l'interface de l'appareil lui-même.

Puisque chaque type de contrôleur est différent, ils nécessitent un logiciel différent. Le programme qui communique avec le contrôleur est le pilote de périphérique. Chaque fabricant de contrôleurs doit fournir des pilotes pour les systèmes d'exploitation pris en charge. Pour utiliser le pilote, il doit être installé dans le système d'exploitation afin qu'il puisse s'exécuter en mode noyau. Il existe trois manières d'installer un pilote dans le noyau :

Reconstruisez le noyau avec un nouveau pilote, puis redémarrez le système d'exploitation (c'est ainsi que fonctionnent de nombreux systèmes d'exploitation Unix) ;

Créez une entrée dans le fichier inclus dans le système d'exploitation indiquant qu'un pilote est requis, puis redémarrez le système ; lors du démarrage initial, le système d'exploitation trouve lui-même les pilotes nécessaires et les charge (c'est ainsi que fonctionne Windows) ;

Le système d'exploitation peut accepter de nouveaux pilotes sans interrompre le fonctionnement et les installer rapidement sans nécessiter de redémarrage. Cette méthode devient de plus en plus courante. Les périphériques tels que les bus USB, IEEE 1394 nécessitent toujours des pilotes chargés dynamiquement.

La saisie/sortie de données peut se faire de trois manières : de diverses manières.

La manière la plus simple: Le programme utilisateur émet une requête système, que le noyau traduit en appel de procédure correspondant au pilote, puis le pilote démarre le processus d'E/S. Pendant ce temps, il effectue une courte boucle de programme, interrogeant constamment l'appareil avec lequel il travaille. Une fois les E/S terminées, le pilote place les données là où elles sont nécessaires et revient à son état d'origine. Le système d'exploitation rend ensuite le contrôle au programme qui a effectué l'appel. Cette méthode attend d'être prête (attente active). Il présente un inconvénient : le processeur doit interroger l'appareil jusqu'à ce qu'il s'éteigne.

Le pilote démarre le périphérique et lui demande d'émettre des interruptions lorsque les E/S sont terminées ; Après cela, le pilote rend le contrôle au système d'exploitation et celui-ci commence à effectuer d'autres tâches. Lorsque le contrôleur détecte la fin du transfert de données, il génère une interruption de fin. Le processus d'E/S utilisant des interruptions comprend quatre étapes (Figure 3). Lors de la première étape, le pilote transmet une commande au contrôleur, écrivant des informations dans les registres du périphérique. Le contrôleur démarre ensuite l'appareil. Lorsque le contrôleur a fini de lire ou d'écrire le nombre d'octets qu'il doit transférer, il envoie un signal à la puce du contrôleur d'interruption à l'aide de certains fils de bus. C'est la deuxième étape. Dans la troisième étape, si le contrôleur d'interruption est prêt à gérer les interruptions, il envoie alors un signal à une certaine broche du CPU, l'informant ainsi. Dans la quatrième étape, le contrôleur d'interruption insère un numéro de périphérique sur le bus afin que le CPU puisse savoir quel périphérique a terminé son travail.

La troisième méthode d'information d'entrée-sortie consiste à utiliser contrôleur spécial accès direct à la mémoire DMA (Direct Memory Access). DMA gère le flux de bits entre la RAM et certains contrôleurs sans intervention du CPU. Le processeur accède à la puce DMA, lui indique le nombre d'octets à transférer, ainsi que l'adresse du périphérique et de la mémoire, ainsi que le sens du transfert des données. À la fin du travail, le DMA lance une interruption, qui est traitée de la manière habituelle.


Figure 3 - Actions effectuées lorsqu'un périphérique d'E/S démarre et reçoit une interruption


Pneus

En raison de l'augmentation de la vitesse du processeur et de la mémoire, des bus supplémentaires ont été ajoutés au système à la fois pour accélérer la communication des périphériques d'E/S et pour transférer les données entre le processeur et la mémoire. La figure 4 montre un schéma du système informatique des premiers Pentium.

Ce système dispose de 8 bus (bus cache, bus local, bus mémoire, PCI, SCSI, USB, IDE, ISA), chacun avec sa propre vitesse de transfert de données et ses propres fonctions. Le système d'exploitation doit disposer d'informations sur tous ces bus pour gérer l'ordinateur.

Le processeur central transmet les données via le bus local à la puce pont PCI, qui à son tour accède à la mémoire via un bus dédié. Le système Pentium I dispose d'un cache de niveau 1 (L1) intégré au processeur et d'un cache de niveau 2 (L2) beaucoup plus grand connecté au processeur sur un bus de cache séparé. Le bus IDE permet de connecter des périphériques au système (CD-ROM, disque dur).


Figure 4 – Structure du système Pentium


Le bus USB (Universal Serial Bus) est conçu pour connecter des périphériques d'entrée/sortie supplémentaires tels qu'un clavier, une souris, une imprimante, une mémoire flash, etc. à un ordinateur. Au fil du temps, de nouveaux pneus plus rapides apparaissent et sont ajoutés.

Une brève introduction aux systèmes d'exploitation. Tutoriel Peter Stachchuk

(Pas encore de notes)

Titre : Brève introduction aux systèmes d’exploitation. Tutoriel

À propos du livre Peter Stashchuk « Une brève introduction aux systèmes d'exploitation. Guide d'étude"

L'utilisation de la technologie informatique ne peut être efficace sans la connaissance des logiciels modernes, dont la base est constituée des systèmes d'exploitation et de leurs shells. En étudiant le cours théorique proposé, les étudiants doivent acquérir une compréhension des capacités des systèmes d'exploitation, de leur structure, des principes d'organisation et de fonctionnement, des règles de configuration, etc. Travailler avec le manuel permettra aux étudiants d'acquérir des connaissances sur les systèmes d'exploitation modernes au niveau d'un utilisateur qualifié et aidera à consolider les compétences pratiques dans l'utilisation de logiciels modernes pendant les études et les activités professionnelles.

Pour étudiants, étudiants diplômés, professeurs d'université.

Sur notre site Web consacré aux livres, vous pouvez télécharger le site gratuitement sans inscription ou lire en ligne le livre de Peter Stashchuk « Une brève introduction aux systèmes d'exploitation. Guide d'étude" aux formats epub, fb2, txt, rtf, pdf pour iPad, iPhone, Android et Kindle. Le livre vous procurera de nombreux moments agréables et un réel plaisir de lecture. Acheter version complète vous pouvez auprès de notre partenaire. Vous trouverez également ici les dernières nouvelles du monde littéraire, découvrez la biographie de vos auteurs préférés. Pour les écrivains débutants, il y a une section séparée avec conseils utiles et des recommandations, des articles intéressants, grâce auxquels vous pourrez vous-même vous essayer aux métiers littéraires.

Citations du livre de Peter Stashchuk « Une brève introduction aux systèmes d'exploitation. Guide d'étude"

Gérer les principales ressources informatiques (processeurs, mémoire, appareils externes), caractéristiques des méthodes de conception utilisées, types de plates-formes matérielles, domaines d'application.

Le système d'exploitation empêche l'utilisateur de travailler directement avec le matériel informatique et lui fournit une interface simple, résolvant indépendamment les problèmes de gestion matérielle de bas niveau.

Un système d'exploitation est un ensemble de programmes qui assurent la gestion des données et l'exécution des programmes utilisateur, coordonnent la distribution des ressources informatiques et prennent en charge l'interaction avec les utilisateurs.

Les premiers systèmes d'exploitation étaient des systèmes de traitement par lots (moniteurs résidents).

Un système informatique (CS) est un complexe de matériel et de logiciels conçus pour automatiser la solution des problèmes d'information des utilisateurs.

Page actuelle : 1 (le livre compte 12 pages au total) [passage de lecture disponible : 8 pages]

A. Yu. Kruchinine
Systèmes d'exploitation

1Premiers pas avec les systèmes d'exploitation

1.1 Objectif et fonctions des systèmes d'exploitation

Un système d'exploitation informatique est un ensemble de programmes interdépendants qui servent d'interface entre les applications et les utilisateurs d'une part, et le matériel informatique d'autre part. Le système d'exploitation remplit deux groupes de fonctions :

Fournit à l'utilisateur ou au programmeur une machine virtuelle étendue au lieu d'un matériel informatique réel ;

Augmente l'efficacité de l'utilisation de l'ordinateur en gérant rationnellement ses ressources conformément à certains critères.

En règle générale, l'utilisateur ne s'intéresse pas aux détails du matériel informatique ; il le considère comme un ensemble d'applications pouvant être écrites dans l'un des langages de programmation. Le système d'exploitation offre au programmeur un certain nombre de fonctionnalités que les programmes peuvent utiliser via des commandes spéciales appelées appels système. Par conséquent, une application logicielle comprend de nombreux appels système nécessaires, par exemple, pour travailler avec des fichiers. Le système d'exploitation cache les détails du matériel au programmeur et fournit une interface pratique pour exécuter l'environnement d'exploitation du système.

Dans le même temps, le système d'exploitation agit comme un gestionnaire de ressources. Selon cette approche, le travail du système d'exploitation consiste à assurer une répartition organisée et contrôlée des processeurs, de la mémoire et des périphériques d'E/S entre les différents programmes. Le système d'exploitation possède les fonctionnalités suivantes :

Les fonctions du système d'exploitation fonctionnent de la même manière que les autres logiciels - elles sont implémentées sous la forme de programmes individuels ou d'un ensemble de programmes exécutant des processus ;

Le système d'exploitation doit déléguer le contrôle à d'autres processus et attendre que le processeur lui donne à nouveau le temps d'accomplir ses tâches.

La gestion des ressources comprend la résolution des tâches générales suivantes qui ne dépendent pas du type de ressource :

Planification des ressources – c'est-à-dire déterminer à quel processus, quand et en quelle quantité (si la ressource peut être allouée en plusieurs parties) une ressource donnée doit être allouée ;

Satisfaire les demandes de ressources ;

Surveiller l'état et enregistrer l'utilisation d'une ressource - c'est-à-dire conserver des informations opérationnelles indiquant si la ressource est occupée ou libre et quelle part de la ressource a déjà été distribuée ;

Résoudre les conflits entre les processus.

La gestion des ressources comprend leur multiplexage (distribution) de deux manières : dans le temps et dans l'espace. Lorsqu'une ressource est allouée au fil du temps, différents utilisateurs et programmes l'utilisent à tour de rôle. L'un d'eux a d'abord accès pour utiliser la ressource, puis un autre, etc. Par exemple, plusieurs programmes souhaitent accéder au processeur central. Dans cette situation, le système d'exploitation autorise d'abord un programme à accéder au processeur, puis, après un temps d'exécution suffisant, un autre programme, puis le suivant et enfin à nouveau le premier. Déterminer combien de temps une ressource sera utilisée au fil du temps, qui sera le prochain et pendant combien de temps la ressource leur sera donnée est la tâche du système d'exploitation. Un autre type de distribution est le multiplexage spatial. Au lieu de se relayer, chaque client reçoit une partie de la ressource. En règle générale, la RAM est partagée entre plusieurs programmes en cours d'exécution afin que tous puissent résider en mémoire en même temps (par exemple, en utilisant le processeur central à tour de rôle). En supposant qu'il y ait suffisamment de mémoire pour contenir plusieurs programmes, il est plus efficace d'allouer plusieurs programmes en mémoire à la fois que d'allouer toute la mémoire à un seul programme, surtout s'il n'a besoin que d'une petite partie de la mémoire disponible. Bien entendu, cela soulève des problèmes de distribution équitable, de protection de la mémoire, etc., et le système d'exploitation existe pour résoudre ces problèmes.

1.2 Historique du développement des systèmes d'exploitation

Habituellement, l'histoire du développement des systèmes d'exploitation est associée à l'histoire du développement des ordinateurs. La première idée d’ordinateur a été proposée par le mathématicien anglais Charles Babbage au milieu du XIXe siècle. Il développa ce qu’on appelle le « moteur analytique » mécanique, qui ne fonctionna cependant jamais correctement. Voici les générations d'ordinateurs et leurs relations avec les systèmes d'exploitation.

Première génération 1945-1955

Les ordinateurs étaient constitués de tubes à vide et de panneaux de brassage. La plus haute réalisation est la production de cartes perforées. Fabriquée à partir de carton fin, une carte perforée représente une information par la présence ou l'absence de trous à certains endroits de la carte. Il n'y a pas de système d'exploitation.

Deuxième génération 1955-1965

Les ordinateurs reposent sur des transistors et des systèmes de traitement par lots. Caractérisé par des jeux de cartes perforées et des dispositifs d'enregistrement de bandes magnétiques. Principalement programmé en langages Fortran et Assembly pour les systèmes d'exploitation Fortran Monitor System (FMS) et IBSYS.

Troisième génération 1965-1980

La période est caractérisée par l'apparition des circuits intégrés, ainsi que du multitâche ou, comme on l'appelle autrement, de la multiprogrammation. IBM produit diverses séries de machines, à commencer par l'IBM/360. Le système d'exploitation OS/360 a été écrit pour eux, qui était environ 1 000 fois plus volumineux que le FMS de deuxième génération. À ce stade, une mise en œuvre industrielle du multitâche apparaît - une méthode d'organisation d'un processus informatique dans laquelle plusieurs programmes étaient simultanément stockés dans la mémoire de l'ordinateur et exécutés alternativement sur un processeur.

D'autres systèmes d'exploitation notables de cette période étaient CTSS (Compatible Time Sharing System) et MULTICS (Multiplex Information and Computing Service), conçus pour donner accès à une seule machine à des centaines d'utilisateurs à la fois. Le développement ultérieur de ce système a donné naissance à UNIX.

Quatrième génération 1980-présent

Cette période est associée à l'avènement des circuits intégrés à grande échelle. En 1974, Intel a lancé le premier processeur universel 8 bits, l'Intel 8080. Au début des années 80, IBM a développé l'IBM PC, un ordinateur personnel. Au même moment, la première version de MS-DOS apparaît. Tous les systèmes d'exploitation développés jusqu'à présent ne prenaient en charge que le mode texte de communication avec l'utilisateur.

La première tentative de création d'une interface graphique conviviale a été implémentée sur Apple Macintosh. Influencé par ses succès, Microsoft Corporation lance un shell graphique pour MS-DOS - Windows. Et depuis 1995, Windows 95 est sorti, qui est devenu un système autonome. Par la suite, sur la base de Windows 95 et d'un autre système Windows NT, les systèmes d'exploitation actuellement existants ont été développés - Windows 2000, XP, Vista et autres.

1.3 Classification des systèmes d'exploitation

Il existe de nombreux systèmes d'exploitation et tout le monde ne les connaît pas. Ensuite, nous considérons 7 types de systèmes d'exploitation différents, du plus grand au plus petit niveau.

Systèmes d'exploitation mainframe

Le mainframe est un ordinateur polyvalent hautes performances doté d’une quantité importante de RAM et de mémoire externe, conçu pour effectuer un travail informatique intensif. Il s'agit généralement d'ordinateurs de la taille d'une pièce et on les trouve dans les grandes entreprises. Les mainframes contiennent généralement des milliers de disques et des téraoctets de RAM.

Les systèmes d'exploitation mainframe sont principalement conçus pour gérer plusieurs tâches simultanées, dont la plupart nécessitent d'énormes quantités d'E/S. Le système doit répondre à des milliers de requêtes par seconde. Un exemple est OS/390, qui a évolué à partir du système d’exploitation OS/360 de 3ème génération.

Systèmes d'exploitation de serveur

Ces systèmes d'exploitation fonctionnent sur des serveurs, qui sont un ordinateur personnel, un poste de travail ou même un ordinateur central. Les serveurs offrent la possibilité de travailler avec des périphériques d'impression, des fichiers ou Internet. Ces systèmes d'exploitation incluent Unix, Linux, Windows 2003 Server, etc.

Systèmes d'exploitation multiprocesseurs

Ces systèmes sont utilisés sur des ordinateurs dotés de plusieurs processeurs centraux. Ils nécessitent des systèmes d'exploitation spéciaux, mais sont généralement des modifications des systèmes d'exploitation des serveurs.

Systèmes d'exploitation pour ordinateurs personnels

Le critère principal de ces systèmes est une interface pratique pour un utilisateur. Les systèmes les plus connus : Windows 98, 2000, XP, séries Vista ; Macintosh, Linux.

Systèmes d'exploitation en temps réel

Le paramètre principal de ces systèmes est le temps. Dans les systèmes de contrôle de processus industriels, il est nécessaire de synchroniser clairement le temps de fonctionnement du convoyeur et des différents robots industriels. Il s’agit d’un système difficile en temps réel. Il existe également des systèmes flexibles en temps réel dans lesquels le non-respect des délais de réalisation d'une opération est acceptable, par exemple les systèmes multimédias. Les systèmes d'exploitation en temps réel incluent VxWorks et QNX.

Systèmes d'exploitation embarqués

Il s'agit notamment des systèmes d'exploitation PDA (Personal Digital Assistant). De plus, les systèmes embarqués fonctionnent sur les voitures, les téléviseurs et les téléphones portables. Ces systèmes d'exploitation présentent généralement toutes les caractéristiques des systèmes d'exploitation temps réel avec des limitations en termes de mémoire, de puissance, etc. Des exemples de systèmes sont PalmOS, Windows CE.

Systèmes d'exploitation pour cartes à puce

Une carte à puce est un appareil de la taille d'une carte de crédit contenant une unité centrale de traitement. De tels systèmes sont soumis à de sévères limitations de puissance et de mémoire. Certains ne gèrent qu’une seule opération – le paiement électronique par exemple. Certaines cartes à puce incluent la prise en charge de la machine virtuelle Java.

1.4 Présentation du matériel informatique

Un système d'exploitation est étroitement lié au matériel de l'ordinateur sur lequel il doit fonctionner. Le matériel influence le jeu de commandes du système d'exploitation et la gestion de ses ressources. Conceptuellement, un ordinateur simple peut être représenté par le modèle présenté à la figure 1. Cette structure a été utilisée sur les premiers modèles IBM PC.


Figure 1 - Certains composants d'un ordinateur personnel


Sur la figure, le processeur central, la mémoire et les périphériques d'entrée/sortie sont connectés par un bus système à travers lequel ils échangent des informations.

Processeur

Le « cerveau » d’un ordinateur est l’unité centrale de traitement (CPU). Il sélectionne les commandes de la mémoire et les exécute. Un cycle de processeur typique ressemble à ceci : lit la première instruction de la mémoire, la décode pour déterminer son type et ses opérandes, exécute l'instruction, puis lit et décode les instructions suivantes. C'est ainsi que les programmes sont exécutés.

Chaque processeur dispose d'un ensemble d'instructions qu'il est capable d'exécuter. Étant donné que l'accès à la mémoire pour recevoir des instructions ou récupérer des données prend beaucoup plus de temps que l'exécution de ces instructions, tous les processeurs contiennent des registres internes pour stocker les variables et les résultats intermédiaires. Par conséquent, le jeu d'instructions contient généralement des instructions pour charger un mot de la mémoire dans un registre et stocker un mot d'un registre dans la mémoire. En plus des registres principaux utilisés pour stocker les variables, la plupart des processeurs disposent de plusieurs registres spéciaux utilisés pour stocker les variables, ainsi que de registres spéciaux visibles par les programmeurs.

Lorsque le processeur est multiplexé dans le temps, le système d'exploitation arrête un programme en cours d'exécution pour en démarrer un autre. Chaque fois qu'une telle interruption se produit, le système d'exploitation doit sauvegarder tous les registres du processeur afin de pouvoir les restaurer ultérieurement, lorsque le programme interrompu continue de s'exécuter.

Pour augmenter la vitesse du processeur, leurs développeurs ont abandonné le modèle simple, dans lequel une seule commande peut être lue, décodée et exécutée en un seul cycle d'horloge. Les processeurs modernes ont la capacité d’exécuter plusieurs commandes simultanément.

La plupart des processeurs ont deux modes de fonctionnement : le mode noyau et le mode utilisateur. Si le processeur fonctionne en mode noyau, il peut exécuter toutes les instructions du jeu d'instructions et utiliser toutes les capacités du matériel. Le système d'exploitation fonctionne en mode noyau, donnant accès à tout le matériel. En revanche, les utilisateurs fonctionnent en mode utilisateur, ce qui permet d'exécuter un sous-ensemble de programmes et ne rend disponible qu'une partie du matériel.

Mémoire

Le deuxième composant principal de tout ordinateur est la mémoire. Idéalement, la mémoire devrait être aussi rapide que possible (plus rapide que le traitement d'une seule instruction, afin que le processeur ne soit pas ralenti par l'accès à une mémoire suffisamment grande et extrêmement bon marché). Aujourd’hui, aucune technologie ne répond à toutes ces exigences. Il existe donc une autre approche.

Le système mémoire est construit sous la forme d'une hiérarchie de couches, illustrées dans la figure 2. Au fur et à mesure que vous parcourez la hiérarchie de haut en bas, deux paramètres augmentent : le temps d'accès, la taille de la mémoire.

La couche supérieure est constituée des registres internes du processeur, il n'y a donc aucun délai pour y accéder. Les registres internes stockent moins de 1 Ko d’informations. Les programmes peuvent manipuler les registres sans intervention matérielle. L'accès au registre est le plus rapide - quelques nanosecondes.

La couche suivante contient la mémoire cache, principalement contrôlée par le matériel. Les zones de cache les plus fréquemment utilisées sont stockées dans la mémoire cache à haute vitesse située à l'intérieur du processeur. Lorsqu'un programme a besoin de lire un mot de la mémoire, la puce de cache détermine si la ligne souhaitée se trouve dans le cache ; si tel est le cas, un accès au cache se produit. La taille de la mémoire cache est limitée en raison de son coût élevé. Les machines modernes ont deux ou trois niveaux de cache, chacun étant plus lent et plus volumineux que le précédent. La taille de la mémoire cache varie de plusieurs dizaines de kilo-octets à plusieurs mégaoctets. Le temps d'accès est légèrement plus long que pour les registres.


Figure 2 – Structure hiérarchique de la mémoire


Vient ensuite la RAM (RAM - Random Access Memory ou mémoire vive) - la principale zone de travail du périphérique de stockage de la machine. Toutes les requêtes CPU qui ne peuvent pas être satisfaites par la mémoire cache sont envoyées à la RAM pour traitement. Les volumes varient de plusieurs centaines de mégaoctets à plusieurs gigaoctets. Le temps d'accès est de plusieurs dizaines de nanosecondes.

Vient ensuite le disque magnétique. La mémoire disque est deux ordres de grandeur moins chère que la RAM par bit et deux ordres de grandeur plus grande en taille. Le disque a un problème : l'accès aléatoire aux données qu'il contient prend environ trois ordres de grandeur plus long. La raison de la lenteur des disques durs (HDD) est que le disque est une structure mécanique. Il est constitué d'une ou plusieurs plaques métalliques tournant à des vitesses spécifiques, par exemple 7200 tr/min. Les volumes de disques augmentent désormais rapidement ; des disques de plusieurs centaines de gigaoctets sont en vente pour la plupart des utilisateurs. Temps d'accès – pas moins de 10 µs.

La bande magnétique est souvent utilisée pour créer des sauvegardes sur disque dur ou pour stocker de très gros ensembles de données. Aujourd’hui, bien sûr, il est rare que l’on puisse trouver l’utilisation de bandes magnétiques, mais elles ne sont pas encore hors d’usage. Le niveau bande magnétique comprend également des CD, DVD et mémoire flash. Le temps d’accès est mesuré en secondes.

En plus des types décrits, les ordinateurs disposent d'une petite quantité de mémoire vive permanente. Contrairement à la RAM, elle ne perd pas son contenu lors de la mise hors tension. C'est ce qu'on appelle ROM ou ROM. La ROM est programmée lors de la fabrication et son contenu ne peut plus être modifié par la suite. Cette mémoire est assez rapide et bon marché. Les programmes de démarrage de l'ordinateur, utilisés au démarrage, se trouvent dans la ROM. De plus, certaines cartes d'E/S contiennent de la ROM pour contrôler les périphériques de bas niveau. Un type de mémoire appelé CMOS est volatile. CMOS est utilisé pour stocker la date, l'heure et les paramètres de configuration actuels, tels que le disque dur à partir duquel démarrer. Cette mémoire est alimentée par la batterie installée.

Périphériques d'E/S

Le système d'exploitation traite les périphériques d'E/S comme des ressources. Les périphériques d'E/S sont généralement constitués d'un contrôleur et du périphérique lui-même.

Un contrôleur est un ensemble de puces sur une carte insérées dans un connecteur, un dispositif de contrôle physique. Il accepte les commandes du système d'exploitation (par exemple, les instructions pour lire les données d'un appareil) et les exécute. Le contrôle proprement dit de l’appareil est très complexe et nécessite un niveau de détail élevé. Par conséquent, la fonction du contrôleur est de fournir une interface simple au système d’exploitation.

La partie suivante est l'appareil lui-même. Les appareils ont des interfaces assez simples, car leurs capacités sont limitées et doivent être ramenées à une norme unique. Par exemple, un seul standard est nécessaire pour que chaque contrôleur de disque IDE (Integrated Drive Electronics) puisse gérer n'importe quel disque IDE. L'interface IDE est standard pour les lecteurs des ordinateurs équipés d'un processeur Pentium, ainsi que sur d'autres ordinateurs. Étant donné que l'interface réelle de l'appareil est masquée par le contrôleur, le système d'exploitation ne voit que l'interface du contrôleur, qui peut être très différente de l'interface de l'appareil lui-même.

Puisque chaque type de contrôleur est différent, ils nécessitent un logiciel différent. Le programme qui communique avec le contrôleur est le pilote de périphérique. Chaque fabricant de contrôleurs doit fournir des pilotes pour les systèmes d'exploitation pris en charge. Pour utiliser le pilote, il doit être installé dans le système d'exploitation afin qu'il puisse s'exécuter en mode noyau. Il existe trois manières d'installer un pilote dans le noyau :

Reconstruisez le noyau avec un nouveau pilote, puis redémarrez le système d'exploitation (c'est ainsi que fonctionnent de nombreux systèmes d'exploitation Unix) ;

Créez une entrée dans le fichier inclus dans le système d'exploitation indiquant qu'un pilote est requis, puis redémarrez le système ; lors du démarrage initial, le système d'exploitation trouve lui-même les pilotes nécessaires et les charge (c'est ainsi que fonctionne Windows) ;

Le système d'exploitation peut accepter de nouveaux pilotes sans interrompre le fonctionnement et les installer rapidement sans nécessiter de redémarrage. Cette méthode devient de plus en plus courante. Les périphériques tels que les bus USB, IEEE 1394 nécessitent toujours des pilotes chargés dynamiquement.

La saisie et la sortie des données peuvent être effectuées de trois manières différentes.

La manière la plus simple : le programme utilisateur émet une requête système, que le noyau traduit en appel de procédure correspondant au pilote, puis le pilote démarre le processus d'E/S. Pendant ce temps, il effectue une courte boucle de programme, interrogeant constamment l'appareil avec lequel il travaille. Une fois les E/S terminées, le pilote place les données là où elles sont nécessaires et revient à son état d'origine. Le système d'exploitation rend ensuite le contrôle au programme qui a effectué l'appel. Cette méthode attend d'être prête (attente active). Il présente un inconvénient : le processeur doit interroger l'appareil jusqu'à ce qu'il s'éteigne.

Le pilote démarre le périphérique et lui demande d'émettre des interruptions lorsque les E/S sont terminées ; Après cela, le pilote rend le contrôle au système d'exploitation et celui-ci commence à effectuer d'autres tâches. Lorsque le contrôleur détecte la fin du transfert de données, il génère une interruption de fin. Le processus d'E/S utilisant des interruptions comprend quatre étapes (Figure 3). Lors de la première étape, le pilote transmet une commande au contrôleur, écrivant des informations dans les registres du périphérique. Le contrôleur démarre ensuite l'appareil. Lorsque le contrôleur a fini de lire ou d'écrire le nombre d'octets qu'il doit transférer, il envoie un signal à la puce du contrôleur d'interruption à l'aide de certains fils de bus. C'est la deuxième étape. Dans la troisième étape, si le contrôleur d'interruption est prêt à gérer les interruptions, il envoie alors un signal à une certaine broche du CPU, l'informant ainsi. Dans la quatrième étape, le contrôleur d'interruption insère un numéro de périphérique sur le bus afin que le CPU puisse savoir quel périphérique a terminé son travail.

La troisième méthode d'entrée/sortie d'informations consiste à utiliser un contrôleur DMA (Direct Memory Access) spécial. DMA gère le flux de bits entre la RAM et certains contrôleurs sans intervention du CPU. Le processeur accède à la puce DMA, lui indique le nombre d'octets à transférer, ainsi que l'adresse du périphérique et de la mémoire, ainsi que le sens du transfert des données. À la fin du travail, le DMA lance une interruption, qui est traitée de la manière habituelle.


Figure 3 - Actions effectuées lorsqu'un périphérique d'E/S démarre et reçoit une interruption


Pneus

En raison de l'augmentation de la vitesse du processeur et de la mémoire, des bus supplémentaires ont été ajoutés au système à la fois pour accélérer la communication des périphériques d'E/S et pour transférer les données entre le processeur et la mémoire. La figure 4 montre un schéma du système informatique des premiers Pentium.

Ce système dispose de 8 bus (bus cache, bus local, bus mémoire, PCI, SCSI, USB, IDE, ISA), chacun avec sa propre vitesse de transfert de données et ses propres fonctions. Le système d'exploitation doit disposer d'informations sur tous ces bus pour gérer l'ordinateur.

Le processeur central transmet les données via le bus local à la puce pont PCI, qui à son tour accède à la mémoire via un bus dédié. Le système Pentium I dispose d'un cache de niveau 1 (L1) intégré au processeur et d'un cache de niveau 2 (L2) beaucoup plus grand connecté au processeur sur un bus de cache séparé. Le bus IDE permet de connecter des périphériques au système (CD-ROM, disque dur).


Figure 4 – Structure du système Pentium


Le bus USB (Universal Serial Bus) est conçu pour connecter des périphériques d'entrée/sortie supplémentaires tels qu'un clavier, une souris, une imprimante, une mémoire flash, etc. à un ordinateur. Au fil du temps, de nouveaux pneus plus rapides apparaissent et sont ajoutés.

Andrew Tanenbaum présente une nouvelle édition de son best-seller mondial, indispensable pour comprendre le fonctionnement des systèmes d'exploitation modernes. Il diffère sensiblement du précédent et comprend des informations sur les dernières avancées dans le domaine. informatique. Par exemple, le chapitre sur Windows Vista a désormais été remplacé par un aperçu détaillé de Windows 8.1, version la plus récente au moment de la rédaction. Une grande section dédiée au système d'exploitation Android est apparue. Le matériel concernant Unix et Linux, ainsi que les systèmes RAID, a été mis à jour. Une attention beaucoup plus grande a été accordée aux systèmes multicœurs et multicœurs, qui ont gagné en importance au cours des dernières années. Il y a un tout nouveau chapitre sur la virtualisation et le cloud computing. Une grande quantité de nouveaux éléments ont été ajoutés sur l'utilisation des erreurs de code, sur malware et des mesures de protection appropriées. Le livre fournit de nombreux détails importants d'une manière claire et engageante que l'on ne trouve dans aucun autre livre.

Le système d'exploitation est comme une machine étendue.
L'architecture de la plupart des ordinateurs (système de commande, organisation de la mémoire, entrées/sorties de données et structure du bus) au niveau du langage machine est trop primitive et peu pratique pour être utilisée dans des programmes, en particulier pour les systèmes d'entrée/sortie. Pour orienter la conversation dans une direction spécifique, examinons les disques durs SATA (Serial ATA) modernes utilisés sur la plupart des ordinateurs. Le livre, publié par Anderson en 2007 et contenant une description de l'interface disque que les programmeurs devaient apprendre pour utiliser le disque, contenait plus de 450 pages. Par la suite, l’interface a été révisée à plusieurs reprises et est devenue encore plus complexe qu’elle ne l’était en 2007. Il est clair qu'aucun programmeur sensé ne voudrait s'occuper d'un tel disque au niveau matériel. Au lieu de cela, cette partie concerne l'équipement logiciel, qui s'appelle un pilote de disque et fournit, sans entrer dans les détails, une interface pour lire et écrire des blocs de disque. Les systèmes d'exploitation contiennent de nombreux pilotes pour contrôler les périphériques d'E/S.

Mais pour la plupart des applications, même ce niveau est trop bas. Par conséquent, tous les systèmes d'exploitation offrent un autre niveau d'abstraction pour l'utilisation du disque : les fichiers. Grâce à cette abstraction, les programmes peuvent créer, écrire et lire des fichiers sans avoir à entrer dans les détails vrai travailéquipement.

Contenu
Préface
Chapitre 1. Introduction
Chapitre 2 : Processus et threads
Chapitre 3 : Gestion de la mémoire
Chapitre 4. Systèmes de fichiers
Chapitre 5. Entrée et sortie d'informations
Chapitre 6. Impasse
Chapitre 7. Virtualisation et cloud
Chapitre 8. Systèmes multiprocesseurs
Chapitre 9. Sécurité
Chapitre 10. Étude exemples spécifiques: Unix, Linux et Android
Chapitre 11 : Études de cas : Windows 8
Chapitre 12. Développement de systèmes d'exploitation
Chapitre 13. Bibliographie.

Téléchargement gratuit livre électronique dans un format pratique, regardez et lisez :
Téléchargez le livre Systèmes d'exploitation modernes, Tanenbaum E., Bos X., 2015 - fileskachat.com, téléchargement rapide et gratuit.

Télécharger le pdf
Vous pouvez acheter ce livre ci-dessous meilleur prixà prix réduit avec livraison dans toute la Russie.

Téléchargements : 8365

Le plus célèbre de tous les systèmes d'exploitation est sans aucun doute la famille Windows de Microsoft Corporation. Cependant, malgré sa popularité, Windows n’est pas le premier ni le seul système d’exploitation au monde.


28.04.2014
Nathan Wallace, Anthony Sequeira - Registre Windows® 2000

Téléchargements : 596

Nous tenons avant tout à remercier Charlotte Carpentier, rédactrice en chef des acquisitions chez Coriolis. Nous remercions également tout particulièrement Greg Balas, qui a servi de rédacteur en chef du projet, et Peggy Cantrell, qui a servi de coordonnatrice de production pour le livre.


27.04.2014
A. Chekmarev - Guide de l'administrateur Windows 7

Téléchargements : 12818

Le Guide du système d'exploitation Microsoft Windows 7 s'adresse aux utilisateurs avancés et aux administrateurs réseau. Les nombreuses capacités de toutes les éditions de Windows 7 sont révélées, tous les aspects de l'utilisation du système sont abordés en détail : de l'installation aux méthodes de récupération.


27.04.2014
M. Russinovich - Structure interne de Microsoft Windows

Téléchargements : 9066

La sixième édition de ce livre légendaire est dédiée à structure interne et algorithmes pour le fonctionnement des principaux composants de la salle d'opération Systèmes Microsoft Windows 7, ainsi que Windows Server 2008 R2.


17.04.2014
Richard Simon - API Microsoft Windows. Manuel du programmeur système

Téléchargements : 8967

Les systèmes d'exploitation de la famille Windows ont porté la méthodologie de développement d'applications qui s'exécutent sous le contrôle de ces systèmes d'exploitation à un tout nouveau niveau qualitatif. Malgré l'abondance d'outils de création de logiciels puissants, la connaissance de l'interface de programmation d'applications (API) - les bases de tout cela - est la clé pour écrire des programmes capables d'atteindre une position digne sur le marché.


17.04.2014
Arnold Robbins, Elbert Hannah et Linda Lamb-Apprentissage des éditeurs vi et Vim. 7e éd.

Téléchargements : 799

Il n'y a rien pour lequel les utilisateurs purs et durs d'Unix et de Linux sont plus fanatiques que leur éditeur de texte. Les éditeurs sont l'objet d'adoration et de culte, ou de mépris et de ridicule, selon que le sujet de discussion est votre éditeur ou quelqu'un d'autre. s. vi est l'éditeur standard depuis près de 30 ans. Populaire sur Unix et Linux, il est également de plus en plus suivi sur les systèmes Windows. Les administrateurs système les plus expérimentés citent Vi comme outil de choix. Et depuis 1986, ce livre est le guide de vi.




 


Lire:



Comptabilisation des règlements avec le budget

Comptabilisation des règlements avec le budget

Le compte 68 en comptabilité sert à collecter des informations sur les paiements obligatoires au budget, déduits à la fois aux frais de l'entreprise et...

Cheesecakes au fromage cottage dans une poêle - recettes classiques de cheesecakes moelleux Gâteaux au fromage à partir de 500 g de fromage cottage

Cheesecakes au fromage cottage dans une poêle - recettes classiques de cheesecakes moelleux Gâteaux au fromage à partir de 500 g de fromage cottage

Ingrédients : (4 portions) 500 gr. de fromage cottage 1/2 tasse de farine 1 œuf 3 c. l. sucre 50 gr. raisins secs (facultatif) pincée de sel bicarbonate de soude...

Salade de perles noires aux pruneaux Salade de perles noires aux pruneaux

Salade

Bonne journée à tous ceux qui recherchent de la variété dans leur alimentation quotidienne. Si vous en avez marre des plats monotones et que vous souhaitez faire plaisir...

Recettes de lecho à la pâte de tomate

Recettes de lecho à la pâte de tomate

Lecho très savoureux à la pâte de tomate, comme le lecho bulgare, préparé pour l'hiver. C'est ainsi que nous transformons (et mangeons !) 1 sac de poivrons dans notre famille. Et qui devrais-je...

image de flux RSS