WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

La réalisation d'une application de contrôle total des processus d'un ordinateur distant

( Télécharger le fichier original )
par Kitambala OMARI
Université pédagogique nationale (UPN) - Licence 2010
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

III.2 .2. Cahier des charges

Un cahier des charges est un document contractuel décrivant ce qui est attendu du maître d'oeuvre par le maître d'ouvrage.

il s'agit donc d'un document décrivant de la façon la plus précise possible avec un vocabulaire simple, les besoins aux quels le maître d'oeuvre doit répondre dans la mesure où seul le maître d'oeuvre est réellement compétent pour proposer une solution technique appropriée, le cahier des charges doit préférentiellement faire apparaître le besoin de manière fonctionnelle, indépendamment de toute solution technique, sauf à préciser l'environnement technique dans le quel la solution demandée doit s'insérer.

III.2.2.1. Cahier des charges fonctionnel

Le cahier des charges fonctionnel est un document par lequel une entité à l'origine de la demande ou un utilisateur exprime son besoin en termes de fonctions de services et des contraintes voilà une source qui permet de contrôler complètement les processus d'un ordinateur distant :

Nous savons qu'il existe WMI pour gérer les processus à distance, mais WMI n'est pas franchement convaincant car :

> Il nécessite d'être installé sur les deux machines ;

> Il n'est pas très rapide (en tout cas pour l'utilisation spécifique que l'on en fait en listant les processus)

> Très très limité (impossible de faire autre chose que la liste des processus/modules, tuer/créer)

Bref voici une solution qui permet de contrôler entièrement les processus d'un ordinateur distant : kill, suspend, priorité, affiné, liste des threads / handles, changement des privilèges, déchargement de module| handle, le tout à distance

1. Processus : un processus est l'instance d'un programme un cours d'exécution, une instance de programme est un espace mémoire composée d'une partie ou de la totalité de l'exécutable chargé en mémoire, de l'espace mémoire et des ressources allouées par le système à la demande du processus ainsi que de toutes les librairies chargées .Il peut exister plusieurs instances d'un même programme simultanément en cours d'exécution sur un ordinateur l'espace mémoire d'un processus est protégé, c'est-à-dire que c'est le seul espace auquel il peut accéder, les autres processus ne pourront y accéder.

a. Gestion du temps d'exécution

Les systèmes d'exploitation permettent une exécution quasi simultanée en allouant un court temps d'exécution à chaque thread de chaque processus à tour de rôle, selon leur priorité, cela donne l'impression que chaque programme s'exécute en même temps. L'exécution d'un processus dure un certain temps, avec un début et (parfois) une fin. Un processus peut être démarré par un utilisateur par l'intermédiaire d'un périphérique ou bien par un autre processus.

b. Etats d'un processus.

Initialisation Terminé

Mémoire vive

Prêt

(en attente) Zombie

Prêt
(en attente)

Exécution en
espace utilisateur

Mémoire virtuelle

Exécution en
espace noyau

Préempté

Endormi
(Bloqué)

Endormi
(Bloqué)

Diagramme d'état.

Fig.15. Etats d'un processus

Cet état existe dans la plupart des S.E :

> Initialisation : c'est le premier état d'un processus. Il y attend que l'ordonnanceur le place dans l'état prêt, ce qui prendre plus ou moins longtemps. Généralement, dans les ordinateur du bureau, cela est automatique, dans un système d'exploitation temps réel, cette admission peutêtre reportée. En effet, dans de tels systèmes, trop de processus en attente peuvent amenés à une saturation, notamment des bus, entraînant l'incapacité du système à tenir les délais.

> Prêt ou en attente : dans cet état le processus a été chargé en mémoire centrale et attente son exécution sur le processeur, il peut y avoir beaucoup de processus en attente car, sur un ordinateur équipé d'un seul processus, les processus doivent passer un par un. Les processus disponibles sont rangés dans une file ; les autres, ceux qui attendent quelques choses (données provenant du disque dur, une connexion internet, etc.) ne sont pas pris en compte. Cette file d'attente est gérée par l'ordonnanceur.

> Exécution : le processus est en cours d'exécution par le processeur.

> Endormi ou bloqué : le processus a été interrompu ou attend un événement (la fin d'une opération d'entrée| sortie, un signal,..)

> Terminé : le processus est terminé, c'est-à-dire soit le résultat est connu, soit le programme a été forcé de s'arrêter.

> Zombie : si un processus terminé ne peut pas être déchargé de la mémoire, par exemple, si un de ces fils n'est pas terminé, il passe dans un état appelé zombie.

> Préempté : l'ordonnanceur a décidé de suspendre l'activité d'un processus. Par exemple, un processus qui consomme trop de temps CPU finira par être préempté. Un ordonnanceur préemptif utiliser aussi l'indice de priorité pour décider le processus qui sera préempté.

> Exécution en espace utilisateur : l'exécution a lieu dans un espace limité : sel certaines instructions sont disponibles.

> Exécution en espace noyau : par opposition au mode utilisateur, l'exécution du processus n'est pas limitée. Par exemple, un processus dans cet état peut aller lire dans la mémoire d'un autre.

2. kill : c'est une commande de certains systèmes d'exploitation (particulièrement Unix et ses dérivés) utilisée pour demander l'arrêt d'un processus en cours d'exécution. Par défaut, le message est un signal d'arrêt, demandant la fin du processus la commande kill encapsule l'appel système kill, lequel envoie des signaux aux processus ou groupes de processus, références par leur identifiant (PID ou PGID).

Kill est toujours fournie sous la forme d'un utilitaire à part entière, mais la plupart des Shells possèdent également leur commande kill dont l'implémentation peut être légèrement différente.

3. Priorité : C'est une caractéristique d'une tâche informatique permettant de déterminer son accès à une ressource. Une tâche correspond à un traitement à réaliser. Une ressource est un moyen permettant de réaliser la tâche. Sous Windows, il existe six niveaux de priorité associé au thread du processus et au processus lui-même :

> Inactif : l'exécution ne se fait que lorsque le système est en mode inactif lorsque tous les threads dont le niveau est plus élevé que inactif ne sont pas en état d'exécution.

> En dessous de la normal : un niveau intermédiaire entre inactif et normal qui sera tendance à s'exécuter moins souvent et avoir un temps d'exécution moindre que les threads avec une priorité normal.

> Normal : un niveau spécifiant que les threads n'ont pas de besoin particulier. Ce niveau convient pour les applications utilisateurs les plus courants.

> En dessus de la normal : un niveau intermédiaire entre normal et haute priorité qui aura tendance à s'exécuter plus souvent et ou à avoir un temps d'exécution plus important que les threads avec une priorité normal.

> Haute priorité : ce niveau convient pour les threads exécutant une tâche critique qui nécessite une exécution immédiate. Il est important de ne pas attribuer ce niveau à un processus qui n'effectue pas de tâche critique afin de ne pas empêcher inutilement une exécution système importante.

> Temps réel : le niveau le plus élevé dans le système. Les threads du processus seront priorités sur tous les threads de priorité moins élevé, y compris les processus système. Ce niveau ne doit être attribué qu'à des tâches extrêmement courtes et espacées dans le temps.

4. Un thread (fil d'exécution ou tâche)

C'est une partie des instructions du processus en cours d'exécution. Certaines applications se dupliquent entièrement au cours du traitement. C'est notamment le cas pour des systèmes client-serveur, où le serveur exécute un fork, pour traiter chacun de ses clients.

Cette duplication est souvent très coûteuse. Avec des fils d'exécution, on peut arriver au même résultat sans gaspillage d'espace, en ne créant qu'un fil de contrôle pour un nouveau client, et en conservant le même espace d'adressage, de code et de données. Les fils d'exécution sont, par ailleurs, très bien adaptés au parallélisme. Ils peuvent s'exécuter simultanément sur des machines multi - processus.

5. Création des processus

Le système d'exploitation a besoin d'un moyen pour s'assurer que tous les processus nécessaires existent dans les systèmes très simples, ou dans des systèmes conçus pour faire fonctionner une seule application, il peut être possible d'avoir tous les processus qui ne sera jamais nécessaire, être présents lorsque le système est en place. Dans les systèmes à des fins générales, cependant, une certaine façon est nécessaire pour créer et mettre fin à des processus au besoin pendant le fonctionnement.

Il existe quatre principaux événements qui provoquent des processus d'être crées, ils sont :

- l'initialisation du système,

- l'exécution d'un appel système processus de création par un processus en cours,

- une demande d'utilisateur de créer un nouveau processus,

- l'initiation d'un traitement par lots. Quand un système d'exploitation est

démarré, le plus souvent plusieurs processus sont crées.

des processus d'arrière - plan, qui ne sont pas associés à des utilisateurs particuliers, mais ont une fonction spécifique.

Un processus de fond peut être conçu pour accepter les e-mails entrants, dormant la plupart de la journée, mais tout d'un coup en sautant sur la vie quand l'e-mail arrive.

Un autre processus d'arrière - plan peut être conçu pour recevoir les demandes entrantes pour les pages web hébergé sur cette machine, en se réveillant, lorsqu'une requete arrive pour traiter la demande. Processus qui restent en arrière - plan pour gérer une activité comme le courrier électronique, page web, des nouvelles, l'impression, et ainsi de suite sont appelés démons.

Systèmes à grande échelle ont généralement des dizaines d'entre eux. En Unix, le programme ps peut être utilisé pour dresser la liste des processus en cours. Dans gestionnaire des tâches Windows est utilisé.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Un démenti, si pauvre qu'il soit, rassure les sots et déroute les incrédules"   Talleyrand