私はいくつかのリアルタイムOS仕様を調べていましたが、RTOSでは通常mallocの使用を好まないことを読みました。この理由は次のとおりです。パフォーマンスの問題については、mallocを介してメモリを割り当てるのに時間がかかり、割り当てられたメモリを追跡するためのオーバーヘッドが高くなるため、mallocを使用しないでください。
現在、リアルタイムシステムでは、すべてのプロセスに時間の制約があり、通常、mallocは使用しません。私は興味を持ち、RTOSで実行時にメモリが実際にどのように割り当てられるかについて少し調べ始めました。メモリプールを見つけました。現在、メモリプールは実際には固定サイズのブロック割り当てを意味すると書かれています。メモリプールの利点は、断片化の影響を受けないことです。どうしてそれは可能ですか?4バイトのプールが3つあり、アプリケーションに10バイトが必要であるとすると、この場合、メモリプールは内部フラグメンテーションの影響を受けます。
メモリプールはどのように機能し、メモリはどのように割り当てられますか?特定のアプリケーションが4バイトのプールサイズから3つのプールを取得するように、アプリケーションはコンパイル時にプールを取得しますか?プールに収まらないメモリが必要な場合はどうなりますか。そのようなシステムには、さまざまなサイズのメモリプールが多数存在しますか?説明してください。