Ανάπτυξη εφαρμογής σε γλώσσα C++

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

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

Απάντηση
ilario
Δημοσιεύσεις: 7
Εγγραφή: 08 Απρ 2008 16:16

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από ilario » 08 Απρ 2008 16:26

Ανάπτυξη εφαρμογής σε γλώσσα C++ για την προσομοίωση ενός συστήματος με δυναμική
κατανομή μνήμης
. Η εφαρμογή θα παράγει τυχαία διεργασίες που θα απαιτούν τυχαίες
ποσότητες μνήμης και το σύστημα θα πρέπει να ικανοποιεί την ζήτηση μνήμης κατά το
δυνατόν. Ο χρήστης θα μπορεί να ρυθμίζει τον ρυθμό παραγωγής διεργασιών. Η εφαρμογή
θα πρέπει να είναι σε θέση να κάνει συμπίεση μνήμης, με μετατόπιση των κατειλημένων
τμημάτων σε ενιαίο χώρο, ώστε να ενώνονται τα κενά τμήματα μνήμης σε ένα μεγάλο κενό τμήμα που είναι καλύτερα χρησιμοποιήσιμο. Η εφαρμογή θα εμφανίζει και στατιστικά
στοιχεία ικανοποίησης της ζήτησης μνήμης

αυτό είναι το πρόβλημα μου.. είναι ένα project για την σχολή.. όταν ρώτησα τον καθηγητή που μπορώ να ψάξω για βοήθεια είπε " δεν διαλέγεις κάτι πιο εύκολο;; " .. Ούτε αυτός ξέρει πως γίνετε.. Και επειδή μου την είπε θέλω να του μπω στο μάτι.. Λοιπόν... Δεν θέλω κάποιον να μου την λύση.. Αλλά να με παραπέμψει κάπου.. Έψαξα στο google κτλ κτλ αλλά δεν βρήκα κάτι κοντά στο θέμα μου.. Υπάρχει κάποιος που να μπορεί να βοηθήσει;; Ελπίζω πως ναι.. Ευχαριστώ anyway..

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από soteres2002 » 08 Απρ 2008 18:17

simpiesi mnimis boreis na kaneis me libgz. gia ta sinexomena blocks mnimis, se ti os prepei na ginei i ilopoiisi?

ilario
Δημοσιεύσεις: 7
Εγγραφή: 08 Απρ 2008 16:16

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από ilario » 09 Απρ 2008 02:53

σε windows..

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από soteres2002 » 09 Απρ 2008 19:56

den eimai sigouros alla se windows kai sigoura sto linux den boreis na epilegeis esi to pos katanemei to leitourgiko sistima tin mnimi stis diergasies. epomenos, an thes kaneis tin ergasia tha prepei na grapseis enan driver kai ena aplo API pou na katanemei ti mnimi opos sou zitane. otan kaneis malloc() se C/C++ den gnorizeis ek ton proteron pou vriskontai autes oi theseis. oson afora tora to na elegxeis pos dimiourgountai oi ergasies, auto einai eukolo. An oriseis mia katanomi px Gaussian kai meso autis na parageis peusdotixaia noumera pou perigrafoun tous porous me ena ano epitrepto orio stin katanalosi mnimis boreis na dimourgeis processes me CreateProcess() (des msdn) kai na elegxeis tous porous pou katanalonei i kathemia. pera dld apo auto me tin mnimi pou apaitei na kaneis low level programming ta ipoloipa einai pragmatopoiisima me auta p boreis na vreis/exeis tora.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από dva_dev » 09 Απρ 2008 23:21

Τουλάχιστον όπως το κατάλαβα εγώ το θέμα αυτό που ενδιαφέρει δεν είναι το που θα δημιουργηθούν οι διεργασίες αλλά η εξομείωση του τρόπου που δουλεύει η malloc/free, ίσως και το paging από το λειτουργικό σύστημα. Δηλαδή όταν μια διεργασία ζητάει μνήμη να μπορεί να ελέγξει η εφαρμογή από που και αν θα της δώσει. Για να γίνει κάτι τέτοιο, φυσικά δεν μπορεί να χρησιμοποιηθεί η malloc/free - γιατί τον έλεγχο σε αυτές δεν τον έχει η εφαρμογή - αλλά θα πρέπει να φτιάχτούν δύο αντίστοιχες (για να μπορούν να υπολογίζονται και τα ζητούμενα στατιστικά και ότι άλλο χρειαστεί) που να παίρνουν μνήμη από κάποιο memory block/pool που ανήκει στην εφαρμογή.

Νομίζω πάντως ότι μια ματιά σε βιβλιογραφία στα λειτουργικά για το πως παίζει το memory allocation θα σε βοηθήσει.

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από soteres2002 » 09 Απρ 2008 23:56

pantos einai aparaitito na grapsei ena driver (borei na apaitei mono liges grammes kwdika) interface kai ena API gia userspace applications. ap oso epsaksa ki ego den iparxei kapoio tetoio interface apo to kernel ton windows xp kai neotera oute kai API gia applications. auto tha borouse na itan kai thema ptixiakis ergasias anyway giati apaitei kapoies idieteres gnoseis :-)

@dva_dev: akrivos! ena kalo vivlio einai tou andy tanenbaum. episis an dei ton memory manager tou minix i tou Linux borei na parei idea gia to pos ginetai kati tetoio.

ilario
Δημοσιεύσεις: 7
Εγγραφή: 08 Απρ 2008 16:16

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από ilario » 10 Απρ 2008 02:05

αποτι καταλαβαίνω η εργασία ζητά τρελά πράγματα... οπότε διάλεξα κάτι πιο εύκολο... το δίνω παρακάτω...


Ανάπτυξη εφαρμογής σε γλώσσα C++ για την προσομοίωση του Command Prompt του
MS-DOS με δυνατότητα αναγνώρισης των βασικών εντολών (CLS, VER, DIR, CD,
DOSKEY, HELP, EXIT).

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

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από nirvana » 10 Απρ 2008 17:33

Αυτο ειναι πολυ πιο βατό θεμα.(το αλλο βεβαια ειναι παρα πολυ πιο ενδιαφερον)
Θα εχεις δηλαδη ενα προγραμμα που θα ζηταει είσοδο απο το πληκτρολόγιο και αν ειναι σωστη η εισοδος θα κανει ενα fork για να χωριστει στα 2 το process και στην μια ακρη της διχαλας κανεις exec το αντιστοιχο προγραμμα που θελει ο χρηστης και στην αλλη ακρη μενει το command prompt. Νομιζω οτι αυτη είναι η αρχικη ιδεα για ενα shell. :)

ilario
Δημοσιεύσεις: 7
Εγγραφή: 08 Απρ 2008 16:16

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από ilario » 17 Απρ 2008 10:23

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
main()
{
char com[6];
char epilogi;
int i;
printf("Kalws Orises !! Eimai i prosomoiosi tou COMMAND PROMPT se glwssa C++\n\n");
printf("oi entoles pou dexomai einai oi ekseis :\n\n 1.CLS\n 2.VER\n 3.DIR\n 4.CD\n 5.DOSKEY\n 6.HELP\n 7.EXIT\n\n");
printf("Dwse tin entoli pou theleis: ");
scanf("%s",&com);
while (strcmp("exit",com)!=0)
{
if (com=="help")
{
i=system("help");
printf("%d",i);
}
else
printf("Lathos epilogi\n\n");

printf("Dwse tin entoli pou theleis: ");
scanf("%s",&com);
}
}


skeftomai kati tetoio.. me mikres diorthwseis bebaia.. giati i switch etsi den trexei.. mporw na to aknw alla tha pairnei san eisodo mono to arxiko gramma tis entolis kai egw thelw oli tin entoli

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από soteres2002 » 17 Απρ 2008 15:06

den nomizo pos xreiazesai kati tetoio (san shell dld). btw, an theleis na to sinexiseis etsi des kai auto to shell pou ekana ego gia to panepistimio. exei perissotera pragmata kai boreis na xtiseis pano se auto. (sto zipball exo kai kapoia kommatia kwdika p einai axrista).
Συνημμένα
csh2.zip
(16.26 KiB) Μεταφορτώθηκε 476 φορές

ilario
Δημοσιεύσεις: 7
Εγγραφή: 08 Απρ 2008 16:16

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από ilario » 17 Απρ 2008 15:51

afto ti leei?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(void)
{
char com[6];
printf("Kalws Orisate stin prosomoiosi tou COMMAND PROMPT se c++\n");
printf("Mporw na ektelesw tis parakatw entoles:\n\n");
printf("\n 1.CLS\n 2.VER\n 3.DIR\n 4.CD\n 5.DOSKEY\n 6.HELP\n 7.EXIT\n\n");
scanf("%s",&com);
while (strcmp(com,"EXIT")!=0)
{
if(strcmp(com,"CLS")==0)
{
system("CLS");
printf("\n 1.CLS\n 2.VER\n 3.DIR\n 4.CD\n 5.DOSKEY\n 6.HELP\n 7.EXIT\n\n");
scanf("%s",&com);
}
else if(strcmp(com,"VER")==0)
{
system("VER");
printf("\n 1.CLS\n 2.VER\n 3.DIR\n 4.CD\n 5.DOSKEY\n 6.HELP\n 7.EXIT\n\n");
scanf("%s",&com);
}
else if(strcmp(com,"DIR")==0)
{
system("DIR");
printf("\n 1.CLS\n 2.VER\n 3.DIR\n 4.CD\n 5.DOSKEY\n 6.HELP\n 7.EXIT\n\n");
scanf("%s",&com);
}
else if(strcmp(com,"CD")==0)
{
system("CD");
printf("\n 1.CLS\n 2.VER\n 3.DIR\n 4.CD\n 5.DOSKEY\n 6.HELP\n 7.EXIT\n\n");
scanf("%s",&com);
}
else if(strcmp(com,"DOSKEY")==0)
{
system("DOSKEY");
printf("\n 1.CLS\n 2.VER\n 3.DIR\n 4.CD\n 5.DOSKEY\n 6.HELP\n 7.EXIT\n\n");
scanf("%s",&com);
}
else if(strcmp(com,"HELP")==0)
{
system("HELP");
printf("\n 1.CLS\n 2.VER\n 3.DIR\n 4.CD\n 5.DOSKEY\n 6.HELP\n 7.EXIT\n\n");
scanf("%s",&com);
}
else
{
printf("Lathos epilogi");
printf("\n\nMporw na ektelesw MONO tis parakatw entoles:\n\n");
printf("\n 1.CLS\n 2.VER\n 3.DIR\n 4.CD\n 5.DOSKEY\n 6.HELP\n 7.EXIT\n\n");
scanf("%s",&com);
}
}
}

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από soteres2002 » 17 Απρ 2008 19:22

sto ksanaleo. auto einai shell pou simainei oti oti entoles trexeis orizontai apo to xristi, ara den einai tixaia - antitheta, auto einai deterministiko ( :wink: ). esi tha borouses na exeis px mia sinartisi p na tin ekteleis se ena fork, kai na xrisimopoiei metavlito xwro mnimis. px na dimiourgei dinamika ena metavlitou mikous string meso kapoias diadikasias.

ilario
Δημοσιεύσεις: 7
Εγγραφή: 08 Απρ 2008 16:16

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από ilario » 18 Απρ 2008 22:07

γιατι να το κανω ολο αυτο αφου θελω απλα να δινει εντολες ο χρηστης (μονο αυτες τις 7 εντολες) και να βγαζει οτι θα εβγαζε στο command prompt ??

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από soteres2002 » 19 Απρ 2008 01:06

Sou paratheto tmima tis ekfonisis:
Ανάπτυξη εφαρμογής σε γλώσσα C++ για την προσομοίωση ενός συστήματος με δυναμική
κατανομή μνήμης. Η εφαρμογή θα παράγει τυχαία διεργασίες που θα απαιτούν τυχαίες
ποσότητες μνήμης και το σύστημα θα πρέπει να ικανοποιεί την ζήτηση μνήμης κατά το
δυνατόν
1 . "i efarmogi tha paragei tixaia diadikasies" -> esi kaneis ena shell opou o xristis epilegei tis diadikasies kata to dokoun. ara den einai tixaio.
2. "tha apaitoun tixaies posotites mnimis" -> kai pali den einai tixaies, kathos i mnimi pou katanalonoun kai genika i simperifora tous einai provlepsimi.
3. "tha prepei na ikanopoiei tin zitisi mnimis kata to dinaton" -> ti exeis kanei gia auto?

Episis
Ο χρήστης θα μπορεί να ρυθμίζει τον ρυθμό παραγωγής διεργασιών. Η εφαρμογή
θα πρέπει να είναι σε θέση να κάνει συμπίεση μνήμης, με μετατόπιση των κατειλημένων
τμημάτων σε ενιαίο χώρο, ώστε να ενώνονται τα κενά τμήματα μνήμης σε ένα μεγάλο κενό τμήμα που είναι καλύτερα χρησιμοποιήσιμο.
1. "na rithmizei to rithmo paragogis" -> edo den iparxei kapoios mihanismos p na paragei diadikasies. o xristis opote thelei dinei mia entoli, apla. Den iparxei rithmos paragogis!
2. "na kanei simpiesi mnimis" -> auto eite prepei na einai se userspace i kernelspace.
3. "με μετατόπιση των κατειλημένων
τμημάτων σε ενιαίο χώρο, ώστε να ενώνονται τα κενά τμήματα μνήμης σε ένα μεγάλο κενό τμήμα που είναι καλύτερα χρησιμοποιήσιμο" -> no comment.

auto pou ksekinas na ftiakseis san idea apla den einai auto pou afora to zitima. theleis me kapoion tropo na exeis 2 paralliles diergasies oi opoies trexoun parallila: 1 pou na paragei me kapoio tropo ta processes kai mia deuteri pou na epivlepei to rithmo paragogis ti mnimi kai ta alla. Auto borei na ginei me nimata. afou ksodepseis ores grafontas ton kwdika, wres me to na breis ena sosto tropo gia to pos tha parageis pseudotixaia tis diergasies, na sxediaseis sosta ton tropo pou tha ftiakseis ta nimata (fisika borei na vreis kai alli lisi), wres me to na aposfalmatoseis ton multithreaded kwdika apo tixon sfalmata (fisika to GDB tutorial mou tha sou miwsei to xrono auto :kaloe:) --> tha exeis xasei 100ades wres! Meta tha prepei na grapseis kai kati se kernel space. Ki ekei tha prepei na meletiseis pragmata pou isos den gnorizeis kan. Vale ki edo wses ores fantasteis, kai vale alles toses na to ilopoiiseis. Sinolo: 100wres + wres + alles toses wres. Dld tha spataliseis toso xrono kai energeia kai isos xriastei na paratiseis alla pragmata gia na asxolitheis me auto? Episis, akoma ki an iparxei kapoios pou na se kateuthinei sto pos na ftiakseis kati tetoio, tha teliosei kai to eksamino filos (gia na min pw tha eisai kai sto ptixeio). Mono kai mono giati...? Gia na beis sto mati tou kathigiti! Kai ante kai to teliwneis kanonika, ti tha tou apodikseis me auto? Akoma pio praktikta: an tin analabeis, exeis katoxirwsei oti tha tin telioseis kanonika? Mercy r c!! :hammer:

ilario
Δημοσιεύσεις: 7
Εγγραφή: 08 Απρ 2008 16:16

Ανάπτυξη εφαρμογής σε γλώσσα C++

Δημοσίευση από ilario » 19 Απρ 2008 12:26

έχασες κατι μου φαινεται..

ilario
ΜήνυμαΣτις: 10 Απρ 2008 01:05 Θέμα:
αποτι καταλαβαίνω η εργασία ζητά τρελά πράγματα... οπότε διάλεξα κάτι πιο εύκολο... το δίνω παρακάτω...


Ανάπτυξη εφαρμογής σε γλώσσα C++ για την προσομοίωση του Command Prompt του
MS-DOS με δυνατότητα αναγνώρισης των βασικών εντολών (CLS, VER, DIR, CD,
DOSKEY, HELP, EXIT).

Απάντηση

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

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

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