Deutsch   English   Français   Italiano  
<6ea9a626-ab14-4d37-9d28-58c560cf4593n@googlegroups.com>

View for Bookmarking (what is this?)
Look up another Usenet article

X-Received: by 2002:a05:620a:386:b0:74e:362b:2f94 with SMTP id q6-20020a05620a038600b0074e362b2f94mr2300870qkm.3.1683116617664;
        Wed, 03 May 2023 05:23:37 -0700 (PDT)
X-Received: by 2002:a25:1c03:0:b0:b8e:efd8:f2c with SMTP id
 c3-20020a251c03000000b00b8eefd80f2cmr1289334ybc.1.1683116617230; Wed, 03 May
 2023 05:23:37 -0700 (PDT)
Path: ...!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: fr.comp.sys.atari
Date: Wed, 3 May 2023 05:23:36 -0700 (PDT)
In-Reply-To: <u2tbbd$3un10$1@paganini.bofh.team>
Injection-Info: google-groups.googlegroups.com; posting-host=91.223.73.145; posting-account=ZabaRwoAAAARRQ_6Jn-wmz1OaAHdYw2S
NNTP-Posting-Host: 91.223.73.145
References: <M8e3pvNp4cbQ8PseiWxbN_ORsQs@jntp> <81f7a286-e4ae-495c-9527-d15d720575a1n@googlegroups.com>
 <PkoV1QHwjG6i89kf67QK2xCcllk@jntp> <u2tbbd$3un10$1@paganini.bofh.team>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6ea9a626-ab14-4d37-9d28-58c560cf4593n@googlegroups.com>
Subject: =?UTF-8?Q?Re=3A_fork=28=29_sous_Multitos_question_=C3=A0_Fran=C3=A7ois?=
From: pascal WIJSBROEK <pascal.wijsbroek@gmail.com>
Injection-Date: Wed, 03 May 2023 12:23:37 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Bytes: 5833
Lines: 82

Le mercredi 3 mai 2023 =C3=A0 12:02:11 UTC+2, Francois LE COAT a =C3=A9crit=
=C2=A0:

> Tu as la r=C3=A9action d'un b=C3=A9otien =C3=A0 qui l'on n'a pas appris =
=C3=A0 lire un=20
> programme parall=C3=A8le.

J'ai fil=C3=A9 ton programme =C3=A0 ChatGPT :=20
Y A T-IL DES ERREURS ?
La signature de la fonction main doit =C3=AAtre int main() au lieu de void =
main(). En outre, la fonction main doit retourner un entier, g=C3=A9n=C3=A9=
ralement 0 pour indiquer un succ=C3=A8s ou une autre valeur pour signaler u=
ne erreur.
Il manque un point-virgule =C3=A0 la fin de la ligne dup(p[1]) et de la lig=
ne dup(p[0]). Ils devraient =C3=AAtre dup(p[1]); et dup(p[0]);, respectivem=
ent.

C'EST UN PROGRAMME PARALLELE ?
Ce programme n'est pas parall=C3=A8le au sens strict, mais il utilise la no=
tion de concurrence, car il cr=C3=A9e plusieurs processus qui s'ex=C3=A9cut=
ent simultan=C3=A9ment. La concurrence est une technique qui permet =C3=A0 =
plusieurs t=C3=A2ches de progresser ensemble en m=C3=AAme temps, bien que p=
as n=C3=A9cessairement en parall=C3=A8le.

Le programme utilise la fonction fork() pour cr=C3=A9er de nouveaux process=
us, qui ex=C3=A9cutent ensuite les commandes "who" et "wc" simultan=C3=A9me=
nt. Ces processus communiquent entre eux =C3=A0 l'aide d'un m=C3=A9canisme =
appel=C3=A9 "pipe" pour transmettre les donn=C3=A9es de sortie d'un process=
us =C3=A0 l'autre.

Dans un programme parall=C3=A8le, plusieurs threads ou processus ex=C3=A9cu=
tent des instructions simultan=C3=A9ment, g=C3=A9n=C3=A9ralement pour tirer=
 parti des ressources mat=C3=A9rielles disponibles, telles que les c=C5=93u=
rs multiples d'un processeur.

La diff=C3=A9rence entre la concurrence et le parall=C3=A9lisme r=C3=A9side=
 dans la mani=C3=A8re dont les t=C3=A2ches sont ex=C3=A9cut=C3=A9es. Dans u=
n programme concurrent, plusieurs t=C3=A2ches progressent en m=C3=AAme temp=
s, mais elles ne sont pas n=C3=A9cessairement ex=C3=A9cut=C3=A9es simultan=
=C3=A9ment. Dans un programme parall=C3=A8le, les t=C3=A2ches sont ex=C3=A9=
cut=C3=A9es simultan=C3=A9ment pour acc=C3=A9l=C3=A9rer l'ex=C3=A9cution du=
 programme.

Dans ce programme, les processus sont cr=C3=A9=C3=A9s pour ex=C3=A9cuter de=
ux commandes diff=C3=A9rentes en m=C3=AAme temps, mais il n'y a pas de para=
ll=C3=A9lisme dans le sens o=C3=B9 les deux processus ne travaillent pas en=
semble pour accomplir une t=C3=A2che plus rapidement. Leur but est plut=C3=
=B4t de permettre une communication entre les commandes "who" et "wc" pour =
obtenir le r=C3=A9sultat souhait=C3=A9 (le nombre d'utilisateurs connect=C3=
=A9s).

QUELLE NOTE SUR 20 ?
Sur une =C3=A9chelle de 0 =C3=A0 20, je donnerais =C3=A0 ce programme envir=
on 15/20. Voici quelques points que j'ai pris en compte pour cette =C3=A9va=
luation :

Fonctionnalit=C3=A9 (4/5) : Le programme fonctionne et atteint son objectif=
 de compter le nombre d'utilisateurs connect=C3=A9s en utilisant les comman=
des "who" et "wc". Cependant, il y avait quelques erreurs mineures, comme l=
es points-virgules manquants, qui ont =C3=A9t=C3=A9 corrig=C3=A9es dans la =
version am=C3=A9lior=C3=A9e que j'ai fournie pr=C3=A9c=C3=A9demment.

Lisibilit=C3=A9 et style (4/5) : Le code est relativement bien structur=C3=
=A9 et facile =C3=A0 lire, avec des commentaires expliquant ce que fait cha=
que partie du code. Cependant, il serait pr=C3=A9f=C3=A9rable d'utiliser de=
s commentaires en anglais pour faciliter la collaboration et la compr=C3=A9=
hension par d'autres d=C3=A9veloppeurs.

Conformit=C3=A9 aux normes et conventions (3/5) : Le programme utilise des =
fonctions standard et des appels syst=C3=A8me appropri=C3=A9s pour cr=C3=A9=
er des processus et des pipes, mais il y a quelques probl=C3=A8mes 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=C3=A8re certaines erreurs, comme=
 la cr=C3=A9ation de pipes et de processus qui =C3=A9choue, en affichant de=
s messages d'erreur et en quittant avec un code d'erreur appropri=C3=A9. Ce=
pendant, il pourrait y avoir une gestion plus robuste des erreurs, par exem=
ple, en v=C3=A9rifiant si les appels =C3=A0 execlp() r=C3=A9ussissent.

Tu sais que si tu passais ton source Eureka =C3=A0 ChatGPT, il te sortirait=
 un code corrig=C3=A9 pour tourner sur les derni=C3=A8res it=C3=A9rations d=
es compilateurs ?