HELP ΛΕΙΤΟΥΡΓΙΚΑ ΕΡΓΑΣΙΑ...!!!

...IDE, compilers, κλπ

Συντονιστής: konnn

HELP ΛΕΙΤΟΥΡΓΙΚΑ ΕΡΓΑΣΙΑ...!!!

Δημοσίευσηαπό marialina » 24 Μάιος 2010, 15:50

ΜΗΠΩΣ ΓΝΩΡΙΖΕΙ ΚΑΠΟΙΟΣ ΠΩΣ ΜΠΟΡΩ ΝΑ ΛΥΣΩ ΑΥΤΗ ΤΗΝ ΕΡΓΑΣΙΑ????????????????
:!: :!: :!: :!: :!: :!: :!: :crazy: :crazy: :crazy: :crazy: :crazy: :crazy:
Να κατασκευασετε ενα προγραμμα το οποιο θα εκτελει γραμμικη αναζητηση για ενα αριθμο σε ενα πινακα 50 αριθμων.Ο αριθμος που αναζητειται θα δινεται απο τη γραμμη εντολης.Το γονικο νημα θα τοποθετει τον πινακα στη μνημη διαβαζοντας τον απ ενα αρχειο.Στη συνεχεια θα δημιουργει 5 νηματα δινοντας σε καθε νημα απο μια δεκαδα του πινακα,προκειμενου το καθε νημα να εκτελει γραμμικη αναζητηση στο δικο του κομματι στο πινακα.Καθε νημα θα τυπωνει ποσα στοιχεια εχουν ελενχθει συνολικα ως εκεινη τη στιγμη ,τυπωνοντας στην οθονη την τιμη μιας αντιστοιχης καθολικης μεταβλητης.Στο τελος θα τυπωνει στην οθονη τη θεση του στοιχειου στον πινακα ή μηνυμα οτι δεν βρεθηκε το στοιχειο.Επισης θα πρεπει να δοθει προσοχη στο γεγονος οτι πριν την προσπελαση των νηματων στην καθολικη μεταβλητη να γινεται κλειδωμα ωστε να συνχρονιστουν τα νηματα και να μην υπαρξει ασυνεπεια στις τιμες.


παραδειγμα νηματων που περιλαμβανει συνχρονισμο:

Κώδικας: Επιλογή όλων
#include <pthread.h>
#include <stdio.h>
int a=0;
pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;
void *myThread(void *string)
{
int i;
int rc;
int local;
for (i=0; i<30; i++)
{
rc=pthread_mutex_lock(&mutex);
local=a;
sleep(1);
local=local+1;
a=local;
rc=pthread_mutex_unlock(&mutex);
printf("%d:%s\n",i,string);
}
}
int main()
{
char *e_str="Hello!";
char *f_str="Bonjour!";
pthread_t e_th1;
pthread_t f_th1;
pthread_t e_th2;
pthread_t f_th2;
int rc;
rc=pthread_create(&e_th1, NULL, myThread, (void *)e_str);
if (rc)
exit(-1);
rc=pthread_create(&f_th1, NULL, myThread, (void *)f_str);
if (rc)
exit(-1);
rc=pthread_create(&e_th2, NULL, myThread, (void *)e_str);
if (rc)
exit(-1);
rc=pthread_create(&f_th2, NULL, myThread, (void *)f_str);
if (rc)
exit(-1);
pthread_join(e_th1, NULL);
pthread_join(f_th1, NULL);
pthread_join(e_th2, NULL);
pthread_join(f_th2, NULL);
printf("Main finished. a=%d\n",a);
pthread_exit(NULL);
}
marialina
babeTUX
babeTUX
 
Δημοσιεύσεις: 7
Εγγραφή: 05 Μάιος 2010, 17:09
Εκτύπωση

Re: HELP ΛΕΙΤΟΥΡΓΙΚΑ ΕΡΓΑΣΙΑ...!!!

Δημοσίευσηαπό kalakouentin » 24 Μάιος 2010, 21:18

Ωραία εργασία για εισαγωγή στον παράλληλο προγραμματισμό, τί σχολή είσαι?
Εικόνα
Γνώσεις ⇛ Linux: Συμπαθητικές ┃ Προγραμματισμός: Συμπαθητικότερες ┃ Αγγλικά: Αστέρι
Λειτουργικό ⇛ Ubuntu 10.04 32bit σε HP nw9440 ┃ Ubuntu 10.04 32bit σε Toshiba Satellite U400┃ SLED 11 64bit σε Dell OptiPlex 780
kalakouentin
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 545
Εγγραφή: 05 Ιούλ 2008, 05:50
Εκτύπωση

Re: HELP ΛΕΙΤΟΥΡΓΙΚΑ ΕΡΓΑΣΙΑ...!!!

Δημοσίευσηαπό marialina » 24 Μάιος 2010, 22:52

Πληροφορικη κ δεν την παλευω με τα λειτουργικα :crazy: :crazy: :crazy: :crazy:
marialina
babeTUX
babeTUX
 
Δημοσιεύσεις: 7
Εγγραφή: 05 Μάιος 2010, 17:09
Εκτύπωση

Re: HELP ΛΕΙΤΟΥΡΓΙΚΑ ΕΡΓΑΣΙΑ...!!!

Δημοσίευσηαπό ant_0611 » 25 Μάιος 2010, 00:38

Ωραία εργασία, σύντομη και περιεκτικη τόσο όσο πρέπει.
Επειδή στο φόρουμ απαγορέυεται να λύνουμε ασκήσεις, το μόνο που έχω να σου προτείνω ειναι το διάβασμα!
Ξεκίνα απο θεωρία:
critical sections . Τί είναι, πώς τα αναγνωρίζεις και πώς εξασφαλίζεις την ατομικότητα;;;

Έπειτα διάβασε το κατάλληλο εγχειρίδιο ( RTFM - READ THE F*****G MANUAL :-p ).
Κατέβασε τα manpages για το posix απο το synaptic και δώσε στο τερματικο man <function> για να σου τυπώσει την βοήθεια για αυτην την συνάρτηση.
Τα πακέτα για τα manpages ειναι : manpages-dev , manpages-posix , manpages-posix-dev

Αν έχεις οποιαδήποτε απορία σε συμβολισμούς ή θέλεις να ξεκαθαρίσεις κάτι που δεν καταλαβαίνεις απο το βιβλίο, γράψε εδώ. Βέβαια σε τέτοιες εργασίες, το ζητούμενο ειναι να μάθεις να ψάχνεις. Προτείνω για αρχή να μάθεις τί κανει το κομμάτι κώδικα που σας έδωσε ο καθηγητής.

Καλή επιτυχία!
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός:Ναι ┃ Αγγλικά: Μέτρια
Laptop:
Spoiler: show
Ubuntu 9.10 σε Fujitsu-Siemens A1667G2
Προδιαγραφές ⇛ Επεξεργαστής : AMD Turion 64 ML-37 │ Μνήμη : 1GB│ Κάρτα Γραφικών : ATI X700 128MB │ Κάρτα Ασύρματη : Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g (rev 02) │ Κάρτα Ήχου : VIA 8237 │ 15.4" Glossy 1280x800

Desktop:
Spoiler: show
Ubuntu 10.04
Προδιαγραφές ⇛ Επεξεργαστής : AMD Αthlon 1800+ │ Μνήμη : 1GB│ Κάρτα Γραφικών : Geforce 4 mx440 64MB │ 17" Glossy 1280x1024
Άβαταρ μέλους
ant_0611
punkTUX
punkTUX
 
Δημοσιεύσεις: 294
Εγγραφή: 11 Απρ 2009, 15:16
Τοποθεσία: Χανιά
Εκτύπωση

Re: HELP ΛΕΙΤΟΥΡΓΙΚΑ ΕΡΓΑΣΙΑ...!!!

Δημοσίευσηαπό kalakouentin » 25 Μάιος 2010, 04:13

ant_0611 έγραψε:στο φόρουμ απαγορέυεται να λύνουμε ασκήσεις

Δεν απαγορεύεται απλά έχουμε τις δικές μας και δε προλαβαίνουμε! :P
Εικόνα
Γνώσεις ⇛ Linux: Συμπαθητικές ┃ Προγραμματισμός: Συμπαθητικότερες ┃ Αγγλικά: Αστέρι
Λειτουργικό ⇛ Ubuntu 10.04 32bit σε HP nw9440 ┃ Ubuntu 10.04 32bit σε Toshiba Satellite U400┃ SLED 11 64bit σε Dell OptiPlex 780
kalakouentin
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 545
Εγγραφή: 05 Ιούλ 2008, 05:50
Εκτύπωση

Re: HELP ΛΕΙΤΟΥΡΓΙΚΑ ΕΡΓΑΣΙΑ...!!!

Δημοσίευσηαπό ant_0611 » 25 Μάιος 2010, 09:31

kalakouentin έγραψε:
ant_0611 έγραψε:στο φόρουμ απαγορέυεται να λύνουμε ασκήσεις

Δεν απαγορεύεται απλά έχουμε τις δικές μας και δε προλαβαίνουμε! :P

Off topic:
Δεν έχεις και άδικο, εδώ που τα λεμε!
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός:Ναι ┃ Αγγλικά: Μέτρια
Laptop:
Spoiler: show
Ubuntu 9.10 σε Fujitsu-Siemens A1667G2
Προδιαγραφές ⇛ Επεξεργαστής : AMD Turion 64 ML-37 │ Μνήμη : 1GB│ Κάρτα Γραφικών : ATI X700 128MB │ Κάρτα Ασύρματη : Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g (rev 02) │ Κάρτα Ήχου : VIA 8237 │ 15.4" Glossy 1280x800

Desktop:
Spoiler: show
Ubuntu 10.04
Προδιαγραφές ⇛ Επεξεργαστής : AMD Αthlon 1800+ │ Μνήμη : 1GB│ Κάρτα Γραφικών : Geforce 4 mx440 64MB │ 17" Glossy 1280x1024
Άβαταρ μέλους
ant_0611
punkTUX
punkTUX
 
Δημοσιεύσεις: 294
Εγγραφή: 11 Απρ 2009, 15:16
Τοποθεσία: Χανιά
Εκτύπωση

Re: HELP ΛΕΙΤΟΥΡΓΙΚΑ ΕΡΓΑΣΙΑ...!!!

Δημοσίευσηαπό marialina » 29 Μάιος 2010, 21:11

re paidia please xreiazomai boitheia den tin paleuw... :( ekei pou zitaei "Στη συνεχεια θα δημιουργει 5 νηματα δινοντας σε καθε νημα απο μια δεκαδα του πινακα,προκειμενου το καθε νημα να εκτελει γραμμικη αναζητηση στο δικο του κομματι στο πινακα." pws mporw na dwsw se kathe nhma mia dekada????
marialina
babeTUX
babeTUX
 
Δημοσιεύσεις: 7
Εγγραφή: 05 Μάιος 2010, 17:09
Εκτύπωση

Re: HELP ΛΕΙΤΟΥΡΓΙΚΑ ΕΡΓΑΣΙΑ...!!!

Δημοσίευσηαπό the_eye » 29 Μάιος 2010, 21:20

Σεβάσου τους κανόνες μας πρώτα και γράφε ελληνικά και μετά ζήτα βοήθεια.
Όσο λιγότερο κλειστό λογισμικό έχεις, τόσα λιγότερα προβλήματα.
1 Γνώσεις ⇛ Linux: Καλό ┃ Προγραμματισμός: Ναι PHP, MySQL ┃ Αγγλικά: Καλά
2 Ubuntu 24.04.1
3 Intel Core i3-6100 CPU @ 3.70GHz ‖ RAM 7836 MiB ‖ Gigabyte B150M-HD3 DDR3-CF - Gigabyte B150M-HD3 DDR3
4 Intel HD Graphics 530 [8086:1912] {i915}
5 enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
[url=http://forum.ubuntu-gr.org/viewtopic.php?f=9&t=859]Οδηγοί Ubuntu[/url] [url=http://www.youtube.com/kalaitsa]Βίντεο Οδηγοί[/url]
Άβαταρ μέλους
the_eye
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 11714
Εγγραφή: 16 Μαρ 2010, 17:19
Launchpad: ntoulasd
IRC: the_eye_
Εκτύπωση

Re: HELP ΛΕΙΤΟΥΡΓΙΚΑ ΕΡΓΑΣΙΑ...!!!

Δημοσίευσηαπό marialina » 29 Μάιος 2010, 21:37

ελληνικα..........τωρα μπορει κανεισ να βοηθησει???
marialina
babeTUX
babeTUX
 
Δημοσιεύσεις: 7
Εγγραφή: 05 Μάιος 2010, 17:09
Εκτύπωση

Re: HELP ΛΕΙΤΟΥΡΓΙΚΑ ΕΡΓΑΣΙΑ...!!!

Δημοσίευσηαπό ant_0611 » 29 Μάιος 2010, 23:24

Θα σε βοηθήσουμε με την προυπόθεση του οτι θα μάθεις... Ετοιμες απαντήσεις δεν δίνουμε!
Και αν κρίνω απο την ερώτηση σου, την προηγούμενη μου απάντηση την πέρασες σχεδόν στο ντουκου.

Κατάλαβες τι κάνει το κομμάτι κώδικα που σας έχουν δώσει;;;
Έδωσες καθόλου στο τερματικό την εντολή
Κώδικας: Επιλογή όλων
man pthread_create
για να μπορέσεις να διαβάσεις τον κώδικα που σας έχουν δώσει;;;

Μια σύντομη αναφορά για τα thread(=νήμα) θα βρείς στο wikipedia . http://en.wikipedia.org/wiki/Thread_%28 ... science%29
Ειμαι σίγουρος οτι αναφορά για τα thread θα έβρισκες σίγουρα και στο βιβλίο του μαθήματος... και αν εισαι σε Ελληνικό πανεπιστήμιο, αυτο θα είναι στα Ελληνικά.

Δώσε προσοχή, στις διαφορές της διεργασίας απο το νήμα και στο τι κοινό έχουν τα νήματα μεταξύ τους.

Αν διαβάσεις τα παραπάνω, θα σου έρθει κατευθείαν ο τρόπος που θα πρεπει να γράψεις τον κώδικα σου.

Οτιδήποτε παραπάνω αναφέρω, ειναι σαν να σου δίνω έτοιμη την εργασία.

Χρόνος που χρειάζεσαι περίπου, εφοσόν ξέρεις λίγα αγγλικά : 30 λεπτα για κατανοήση των threads απο το wikipedia link. + 60 λεπτα για κατανόηση του τι κανει το κομμάτι προγραμματος που σας έχουν δώσει. + (χρόνος να γράψεις την δικια σου υλοποιήση, για αρχάριο άτομο υπολογίζω 2 ώρες το πολύ)

Αν θες μετα ρώτα συγκεκριμένα πράγματα, παραθέτωντας το τι εχεις καταλάβει. Αυτο θα σε βοηθήσει περισσότερο.

καλη ανάγνωση!
Γνώσεις ⇛ Linux: Μέτριο ┃ Προγραμματισμός:Ναι ┃ Αγγλικά: Μέτρια
Laptop:
Spoiler: show
Ubuntu 9.10 σε Fujitsu-Siemens A1667G2
Προδιαγραφές ⇛ Επεξεργαστής : AMD Turion 64 ML-37 │ Μνήμη : 1GB│ Κάρτα Γραφικών : ATI X700 128MB │ Κάρτα Ασύρματη : Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g (rev 02) │ Κάρτα Ήχου : VIA 8237 │ 15.4" Glossy 1280x800

Desktop:
Spoiler: show
Ubuntu 10.04
Προδιαγραφές ⇛ Επεξεργαστής : AMD Αthlon 1800+ │ Μνήμη : 1GB│ Κάρτα Γραφικών : Geforce 4 mx440 64MB │ 17" Glossy 1280x1024
Άβαταρ μέλους
ant_0611
punkTUX
punkTUX
 
Δημοσιεύσεις: 294
Εγγραφή: 11 Απρ 2009, 15:16
Τοποθεσία: Χανιά
Εκτύπωση

Επόμενο

Επιστροφή στο Εφαρμογές για Ανάπτυξη Λογισμικού