Futtatókörnyezet (Common Language Runtime, CLR)

A .NET keretrendszer felhasználásával készített programok, egy szoftveres virtuális környezetben (CLR) futnak, amely biztosítja a programfuttatáshoz szükséges feltételeket. A CLR egységes futási környezetet biztosít a .NET alapú programok számára, függetlenül attól, hogy azokat milyen programnyelven készítették. Elvégzi a memóriakezelést és biztosítja a programfutáshoz szükséges egyéb alapvető szolgáltatásokat, kezeli a programszálakat, biztonságos futási környezetet ad a programkódnak, és megakadályozza, hogy a futtatott programok bármiféle általa szabálytalannak ítélt műveletet végezzenek. A CLR fennhatósága alatt futó programokat felügyelt kódnak (managed code) nevezzük.

A CLR biztosítja a programnyelvek közötti teljes együttműködést, így lehetővé válik a különböző nyelveken megírt komponensek problémamentes együttműködése is. A CLR szigorú típusrendszerre épül, amelyhez minden CLR-kompatibilis programnyelvnek alkalmazkodnia kell. Ez azt jelenti, hogy az adott nyelv minden elemének (típusok, struktúrák, elemi adattípusok) a CLR által ismert típusokká konvertálhatónak kell lennie. További feltétel, hogy a fordítóprogramoknak a kódban lévő típusokat és hivatkozásokat leíró metaadatokat kell elhelyezniük a lefordított állományokban. A CLR ezek felhasználásával felügyeli a folyamatokat, megkeresi és betölti a megfelelő osztályokat, elhelyezi az objektum-példányokat a memóriában, stb.

A CLR minden erőforrást az adott folyamat számára létrehozott felügyelt heap-en (halom) helyez el. A felügyelt heap hasonló a hagyományos programnyelvek által használt heap-hez, de az itt létrehozott objektumokat nem a programnak kell megszüntetnie, a memória felszabadítása automatikusan történik, ha az adott objektumra már nincs többé szükség. A .NET egyik fontos szolgáltatása a szemétgyűjtő (Garbage Collector, GC), amely képes a hivatkozás nélkül maradt objektumok felkutatására, és az általuk lefoglalt memóriaterület felszabadítására.



Word To HTML Converter