Re: fork() sous Multitos question à François

Liste des GroupesRevenir à fcs atari 
Sujet : Re: fork() sous Multitos question à François
De : pascal.wijsbroek (at) *nospam* gmail.com (pascal WIJSBROEK)
Groupes : fr.comp.sys.atari
Date : 03. May 2023, 14:23:36
Autres entêtes
Message-ID : <6ea9a626-ab14-4d37-9d28-58c560cf4593n@googlegroups.com>
References : 1 2 3 4
User-Agent : G2/1.0
Le mercredi 3 mai 2023 à 12:02:11 UTC+2, Francois LE COAT a écrit :

Tu as la réaction d'un béotien à qui l'on n'a pas appris à lire un
programme parallèle.

J'ai filé ton programme à ChatGPT :
Y A T-IL DES ERREURS ?
La signature de la fonction main doit être int main() au lieu de void main(). En outre, la fonction main doit retourner un entier, généralement 0 pour indiquer un succès ou une autre valeur pour signaler une erreur.
Il manque un point-virgule à la fin de la ligne dup(p[1]) et de la ligne dup(p[0]). Ils devraient être dup(p[1]); et dup(p[0]);, respectivement.

C'EST UN PROGRAMME PARALLELE ?
Ce programme n'est pas parallèle au sens strict, mais il utilise la notion de concurrence, car il crée plusieurs processus qui s'exécutent simultanément. La concurrence est une technique qui permet à plusieurs tâches de progresser ensemble en même temps, bien que pas nécessairement en parallèle.

Le programme utilise la fonction fork() pour créer de nouveaux processus, qui exécutent ensuite les commandes "who" et "wc" simultanément. Ces processus communiquent entre eux à l'aide d'un mécanisme appelé "pipe" pour transmettre les données de sortie d'un processus à l'autre.

Dans un programme parallèle, plusieurs threads ou processus exécutent des instructions simultanément, généralement pour tirer parti des ressources matérielles disponibles, telles que les cœurs multiples d'un processeur.

La différence entre la concurrence et le parallélisme réside dans la manière dont les tâches sont exécutées. Dans un programme concurrent, plusieurs tâches progressent en même temps, mais elles ne sont pas nécessairement exécutées simultanément. Dans un programme parallèle, les tâches sont exécutées simultanément pour accélérer l'exécution du programme.

Dans ce programme, les processus sont créés pour exécuter deux commandes différentes en même temps, mais il n'y a pas de parallélisme dans le sens où les deux processus ne travaillent pas ensemble pour accomplir une tâche plus rapidement. Leur but est plutôt de permettre une communication entre les commandes "who" et "wc" pour obtenir le résultat souhaité (le nombre d'utilisateurs connectés).

QUELLE NOTE SUR 20 ?
Sur une échelle de 0 à 20, je donnerais à ce programme environ 15/20. Voici quelques points que j'ai pris en compte pour cette évaluation :

Fonctionnalité (4/5) : Le programme fonctionne et atteint son objectif de compter le nombre d'utilisateurs connectés en utilisant les commandes "who" et "wc". Cependant, il y avait quelques erreurs mineures, comme les points-virgules manquants, qui ont été corrigées dans la version améliorée que j'ai fournie précédemment.

Lisibilité et style (4/5) : Le code est relativement bien structuré et facile à lire, avec des commentaires expliquant ce que fait chaque partie du code. Cependant, il serait préférable d'utiliser des commentaires en anglais pour faciliter la collaboration et la compréhension par d'autres développeurs.

Conformité aux normes et conventions (3/5) : Le programme utilise des fonctions standard et des appels système appropriés pour créer des processus et des pipes, mais il y a quelques problèmes mineurs, comme l'utilisation de void main() au lieu de int main(), qui ne sont pas conformes aux normes de codage C.

Gestion des erreurs (4/5) : Le programme gère certaines erreurs, comme la création de pipes et de processus qui échoue, en affichant des messages d'erreur et en quittant avec un code d'erreur approprié. Cependant, il pourrait y avoir une gestion plus robuste des erreurs, par exemple, en vérifiant si les appels à execlp() réussissent.

Tu sais que si tu passais ton source Eureka à ChatGPT, il te sortirait un code corrigé pour tourner sur les dernières itérations des compilateurs ?

Date Sujet#  Auteur
1 May 23 * fork() sous Multitos question à François17OL
1 May 23 `* Re: fork() sous Multitos question à François16Francois LE COAT
2 May 23  `* Re: fork() sous Multitos question à François15OL
3 May 23   `* Re: fork() sous Multitos question à François14Francois LE COAT
3 May 23    +* Re: fork() sous Multitos question à François3pascal WIJSBROEK
3 May 23    i`* Re: fork() sous Multitos question à François2Francois LE COAT
3 May 23    i `- Re: fork() sous Multitos question à François1pascal WIJSBROEK
3 May 23    `* Re: fork() sous Multitos question à François10OL
3 May 23     `* Re: fork() sous Multitos question à François9Francois LE COAT
3 May 23      `* Re: fork() sous Multitos question à François8OL
4 May 23       `* Re: fork() sous Multitos question à François7Francois LE COAT
4 May 23        `* Re: fork() sous Multitos question à François6OL
5 May 23         `* Re: fork() sous Multitos question à François5Francois LE COAT
5 May 23          `* Re: fork() sous Multitos question à François4OL
6 May 23           `* Re: fork() sous Multitos question à François3Francois LE COAT
6 May 23            +- Re: fork() sous Multitos question à François1OL
7 May 23            `- Re: fork() sous Multitos question à François1pascal WIJSBROEK

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal