protection mémoire
-
Ca pue.
char *a = malloc(1);
a[1] = 0;
C’est impossible, le beubeu qui écrirait ca aurait déjà détruit son ordi à la masse.
Si c’est pour faire un concours de plantage, on peut trouver des POKE en basic qui plantent tout aussi.
L’interpréteur du script connait sa propre implémentation, la pile qu’il utilise pour exécuter le script et la manière de l’étendre au moment opportun. Et s’il n’y a plus de mémoire, il arrête l’exécution ou fait échouer le truc en cours.
Dans tous les autres cas, c’est un bug quelque soit l’OS.
Je truc qui n’est pas térible sur Amiga, c’est que rien n’est libéré, sauf peu être la pile elle même.
On a alors la fenetre Sofware failure, Task held, suspend ou Reboot ? , un écran mort qui ne se fermera pas (ou fenetres), plein de mémoire gaspillée et parfois, un système ralenti.
PPPS: un algorithme récursif est un bug dans la majorité des cas
Si mes propos vous ont semblé agressifs, dirigés contre vous ou insultants envers le lecteur…
C’est pas vraiment insultant, mais de temps en temps, il est préférable de faire du code clair et compréhensible plutot qu’un code optimisé où l’on ne comprends rien.
Tout n’est pas obligé de tourner à la vitesse de la lumière, mais c’est plutot apréciable. C’est grosso modo l’impression qu’on a sur Amiga car il fait des choses impresionnante avec sa puissance relativement faible.
Mais rajouter encore des tests partout ralentit le système. Donc en mémoire protégée, on n’est plus dans cette optique de performance coute que coute. Si la mémoire est virtuelle, c’est encore pire. Donc on n’est plus à ca près, on peut faire du récursif si l’on veux et acheter des machines plus puissantes.
Modération de BatteMan : J’ai mis des balises
Quote:pour les citations, c’est un poil, mais vraiment juste un poil, plus clair.Les « ralentissements » dûs à la protection mémoire sont dans la plupart des cas totalement négligeables. Il faudrait voir de combien a été multipliée la vitesse des CPU, des BUS, et de la RAM depuis 93. Et les ordis « puissants » sont monnaie courante. Pourquoi faire sans ?
Il serait temps de se réveiller… et d’arrêter d’aller contre l’évolution en se cachant derrière des excuses du genre « ca ralentit », c’est « pour ceux qui savent pas coder »…
@+,
Léo.
Eventuellement… mais en option alors !
Personnellement je trouve que cette absence de protection mémoire est positive, ca permet de constater que l’on peut faire sans.
J’ai lu l’article sur les nouveautés de Windows Vista, et la mémoire a justement été retravaillée, puisque tout n’est pas rose dans ce genre de système à mémoire protégée. Je ne parle même pas de linux Ubuntu (le plus léger ?) qui veux bien fonctionner avec un PII300Mhz @64Mo ram, mais bien plus lentement que XP !
Pour ce qui est des performances, c’est quand même un peu génant :
Par exemple j’ai écrit un jeu de casse briques pour A1200 (enfin, il est presque terminé).
Le jeu est optimisé pour ma config, c’est à dire A1200 avec accélérateur 68030 + mémoire fast, mais le 1200 nu dervais le faire fonctionner. Tout est optimisé jusqu’a obtenir un résultat parfait dans toutes conditions, avec un rafraichissement à 50 images secondes et sans jammais ralentir : C’est un bon jeu Amiga comme un autre.
Sur PC, j’ai fait un jeu de serpent qui grandit et j’ai fait tourner mon casse brique sous émulateur, Résultat :
Come tous les jeux PC, il tourne bien, à 50 images secondes (en tout cas les déplacement ont la même fluidité) sauf que par moment, à un moment imprévisible : bang, un coup de ramme du PC et donc perte de controle du jeux, puis Gamme Over : Chose trés courrante sur PC.
Windows est formidable, il à inventé ce qui est de plus dur à faire sur ordi : l’aléatoire. Les programmes Amiga fontionnent toujours de la même façon, sur PC c’est jammais pareil !
Windows a aussi inventé l’usure ! L’amigaOS ne s’use pas, il démarre pour la 10 000 emme fois de la même façon que pour la 1ere. Mais Windows, c’est pire jours apres jour, jusqu’a arriver au fait qu’il faut réinstaller le système pour faire un peu le ménage. On a l’impression qu’il s’use !
En plus si la mémoire est protégée, alors adieu les rippers, ou cheater qui ballaye toute la mémoire dans le but de trouver l’adresse où est mis à jour le nombre de vie, l’agent, ou autre et d’y mettre ce que l’on veux (génial pour gagner à deluxe galaga)
En conclusion :
Ce qu’il y aurai a améliorer à partir de l’AmigaOs, c’est une libération correcte et complette de tout ce qui est aloué par un processus planté ou terminé, sauf volonté contraire pour le cas ou le processus A aloue de la mémoire utilisé par le processus B. A s’arette, mais B utilise toujours cette mémoire. Il ne faut donc rien libérer ou alors il faut alouer sur le compte d’on processus racine, ancètre de A et B.
On pourrait avoir une fonction d’allocation de mémoire en zone protégée pour y stoker l’os et tous les processus que l’on souhaite implantable. (les autres serait détruit lors d’un semi-reset, un peu comme si l’on fermait une session windows et que des services ou autres session reste en cours d’utilisation).
On pourrait aussi ajouter une fonction d’alocation mémoire en zone virtuelle, de façon à ce que tous les programmes n’aient pas à gérer eux même leur ficher d’échange, comme le fait PPaint.
Voila, je demande, je claque des doigts, et apres … ah il faut payer ? ? Combien l’Aone ? Ah, OS Pré-release ??? c’est pour quand la version finale ? Bon, bin je vais plutot réparer ma moto hein ? Le rendu 3D est plus fluide !
P.S : Merci pour l’encadré blanc !
Le jeu est optimisé pour ma config, c’est à dire A1200 avec accélérateur 68030 + mémoire fast, mais le 1200 nu dervais le faire fonctionner. Tout est optimisé jusqu’a obtenir un résultat parfait dans toutes conditions, avec un rafraichissement à 50 images secondes et sans jammais ralentir : C’est un bon jeu Amiga comme un autre.
Sur PC, j’ai fait un jeu de serpent qui grandit et j’ai fait tourner mon casse brique sous émulateur, Résultat :
Come tous les jeux PC, il tourne bien, à 50 images secondes (en tout cas les déplacement ont la même fluidité) sauf que par moment, à un moment imprévisible : bang, un coup de ramme du PC et donc perte de controle du jeux, puis Gamme Over : Chose trés courrante sur PC.
Ca ca intervient dans tout système multitâches. Que ce soit Windows, que ce soit OSX (Unix), ou que ce soit Linux. Sur Amiga c’était monnaie courante de couper le multitâches pour un jeu. Forcément, là t’as pas de ralentissements… Après, la qualité du scheduler, et le swap peut aussi faire jouer ca. Et selon les systèmes (et la charge,…), c’est plus ou moins bien implémenté. Mais dans tous les cas, tu as des chances d’obtenir des ralentissements. Si tu veux des softs sans ralentissement, bosse sous DOS…
@+,
Léo.
Oui, je zap le multitache, c plus simple.
De toute facon c’est dangeureux de le laisser puisque je met ma propre adresse copper dans son registre, donc, je patche l’écran. Mais si le multitache reste, le worbench (ou l’application active) recois tous les messages de clics et de clavier, comme si on les voyais encore. Donc c’est trés mauvais puisque l’on peux cliquer des menus sans le savoir ( c presque un problème de protection mémoire ca) !
Ce problème se résoud si l’on ouvre un écran intuition qui sert à capter et absorber les entrées. Par contre, sans le multitache, on ne peux pas se servir des fichiers, donc galère !
Baba,
T’as pas l’impression d’être un peu hors-sujet quand même ?
On parle d’OS multitâches et de tous les concepts qui sont importants pour de tels systèmes, pas du DOS ou des OS de consoles de jeux où n’importe quel programme prend le contrôle entier de la machine.
Windows est formidable, il à inventé ce qui est de plus dur à faire sur ordi : l’aléatoire. Les programmes Amiga fontionnent toujours de la même façon, sur PC c’est jammais pareil !
Oui! Oui!!! OUI!!! 100% d’accord!
Il y en a qui prennent ceux qui causent à leur ordinateur (« mais putain, marche, saloperie!!! ») pour des cinglés. « C’est qu’une machine, ça a pas de sens! » Maimaimais ce qui différencie l’être vivant de la machine, n’est-ce pas justement une part beaucoup plus grande de l’aléatoire, du non-déterministe chez l’animal? Or justement, un PC sous Windows se comporte souvent de façon irrationnelle, imprévisible. Conclusion : il est vivant. Et c’est pas ton copain.
Sinon pour les ralentissements des jeux, je repense à la vidéo de Crisot où il montre quelques nouveautés d’Intuition. A la fin, il déplace et redimensionne la fenêtre de WipEout 2097 et ça se passe plutôt bien…quand je repense à mon expérience de Pentium 4/Windows XP le bilan était mitigé…avec le simulateur de course sobrement nommé Racer, le déplacement se faisait à à peu près 2 « spf » (secondes par frame!), et toute la machine semblait à l’agonie! Avec Grand Prix Legends en revanche, ça roule tout seul (à part que l’image reste figée pendant tout le déplacement… )…je serais curieux d’avoir d’autres retours d’expérience…
edit: désolé de continuer sur du HS…
Moi je remarque que ca clignote, et que c’est lent. Et je me demande ce qui se passerait si on mettait derrière la fenêtre de la vidéo deux bonnes grosses fenêtres d’applications MUI avec quelques objets à rafraîchir… Une réelle condition d’utilisation en fin de compte.
Mais c’est hors sujet. A noter que le « Windows c’est pourri » que vous pouvez pas vous empêcher de sortir est, lui aussi, hors sujet… Et c’est pas lui qui fera avancer le schmiblick, au contraire même.
@+,
Léo.
Moi je remarque que ca clignote, et que c’est lent
A vrai dire, c’est ce que j’avais remarqué au début…avant de regarder ce que ça pouvait donner sur mon PC. En fin de compte OS4 ne se débrouille pas mal…
Et je me demande ce qui se passerait si on mettait derrière la fenêtre de la vidéo deux bonnes grosses fenêtres d’applications MUI avec quelques objets à rafraîchir… Une réelle condition d’utilisation en fin de compte.
Justement on peut pas trop qualifier ça de condition réelles…et c’est pour cela que je ne jette pas la pierre à Windows non plus. Ca m’arrive rarement de jouer à CS tout en tapant un rapport! (et en ce qui concerne l’exemple précédent, personnellement je joue toujours en plein écran…)
Lancer une grosse compilation en même temps pourrait être un exemple réaliste en revanche…
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Général › protection mémoire