Η σελίδα μας αναβαθμίστηκε, γι' αυτό τον λόγο τα μέλη μας θα πρέπει να ζητήσουν νέο κωδικό πρόσβασης από την υπηρεσία "Αποστολή κωδικού πρόσβασης".
Εάν το email με τον νέο κωδικό δεν έρθει στο inbox κοιτάξτε και στο spam folder. Ο server είναι φρέσκος και δεν έχει το reputation που του αξίζει.

shared memory in linux

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
narbi
Δημοσιεύσεις: 1
Εγγραφή: 18 Ιουν 2008 13:21
Τοποθεσία: Αθήνα
Επικοινωνία:

shared memory in linux

Δημοσίευση από narbi » 10 Μάιος 2009 13:35

Γειά σε όλους! Προσπαθώ να φτιάξω ένα πρόγραμμα με 2 διεργασίες που χρησιμοποιούν κοινή μνημη, αλλά πραγματικά δυσκολεύομαι να κατανοήσω πως λειτουργεί.. Ας πούμε λοιπόν ότι σε ένα κομμάτι κοινής μνήμης γράφω 2 δισδιάστατους πίνακες Α και Β.Για να διαβάσω ενα συγκεκριμένο στοιχείο του πίνακα Β για παράδειγμα πως θα πρέπει να ψάξω την κοινή μνήμη?
Θα πρεπει η 2η διεργασία να ανακτήσει όλο τον πίνακα Α κ όλο τον πίνακα Β για να διαβάσει το συγκεκριμένο στοιχείο? Ευχαριστώ προκαταβολικά..

Άβαταρ μέλους
Hermeia
Honorary Member
Δημοσιεύσεις: 987
Εγγραφή: 02 Αύγ 2004 00:14
Τοποθεσία: Αθήνα
Επικοινωνία:

shared memory in linux

Δημοσίευση από Hermeia » 11 Μάιος 2009 08:30

Συγνώμη αν λέω χαζά, δεν έχω ασχοληθεί με τέτοια, αλλά νομίζω ότι

- το διαχειριζόμασε σαν να διαχειρίζεται και τους 2 πίνακες (εν δυνάμει) το ίδιο πρόγραμμα
και
- χρησιμοποιούμε από ένα δείκτη στη μνήμη για την αρχή του κάθε πίνακα

ελπίζω καποιος να πει κάτι πιο συγκεκριμένο

καλη επιτυχία
Hermeia the InfoSharer
Η Γνώση είναι Δύναμη
Εικόνα

Άβαταρ μέλους
nirvana
Δημοσιεύσεις: 241
Εγγραφή: 01 Σεπ 2005 18:28
Τοποθεσία: Αγ. Παρασκευή

shared memory in linux

Δημοσίευση από nirvana » 11 Μάιος 2009 12:17

Είναι λίγο πιο πολύπλοκο για να απαντηθεί σε 5 γραμμές. Χρειάζεσαι π.χ. σημαφόρους (κοιτα την κληση συστ. semget)

Για προσάρτηση και αφαίρεση σελιδων κοινής μνήμης στην μνήμη μιας διεργασίες χρησιμοποίησε τις κλήσεις shmat και shmdt.

Προτείνω να διαβάσεις το βιβλίο Advanced Programming in the UNIX Environment (Addison-Wesley) που αν δεν κάνω λάθος έχει συγκεκριμένο κεφάλαιο για κοινη μνήμη διεργασιών. (το βιβλίο είναι το top στο θέμα unix με C) ;)

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης