CLR (Common Language Runtime) — bu .NET platformasining markaziy komponentidir. U .NET dasturlarini ishga tushirish va bajarish uchun mas’ul bo‘lgan boshqariladigan (managed) ish vaqti muhitidir. CLR dastur bajarilishining ko‘p jihatlarini boshqaradi, jumladan, xotira boshqaruvi, xatoliklarni tutish, xavfsizlik, va boshqa ko‘plab operatsiyalarni.
CLR ning asosiy vazifalari:
- Kodni bajarish (Execution): • CLR dastur ishlashini ta’minlaydi. Dastur birinchi marta ishga tushirilganda, IL (Intermediate Language) kodi JIT (Just-In-Time) kompilyatori orqali mashina kodiga aylantiriladi va keyin bajariladi. • Dastur tili yoki platformadan qat’iy nazar, barcha .NET tillaridan kelgan kod CLR yordamida ishlaydi.
- Xotira boshqaruvi (Memory Management): • CLR xotira boshqaruvini amalga oshiradi, ya’ni xotirani ajratadi va qayta ishlaydi. Bu, ayniqsa, Garbage Collection (GC) mexanizmi orqali amalga oshiriladi. • Garbage Collection dasturda ishlatilmaydigan yoki ortiqcha bo‘lgan xotira manbalarini aniqlaydi va tozalaydi, bu esa xotira yuvish jarayonini soddalashtiradi.
- Xatoliklarni boshqarish (Exception Handling): • CLR xatoliklarni boshqarish va ularni tuzatishga yordam beradi. Dasturda yuzaga kelgan xatoliklar (exception) CLR tomonidan aniqlanadi va kerakli tarzda qayta ishlanadi.
- Xavfsizlik (Security): • CLR dasturning xavfsizligini ta’minlash uchun ishlatiladi. Kodni ishlashda xavfsizlikni boshqaradi va har xil xavfsizlik xususiyatlarini o‘z ichiga oladi. Bu Code Access Security (CAS) yordamida amalga oshiriladi. • CAS orqali CLR kodga qanday resurslarni ishlatishga ruxsat berishini belgilaydi.
- Kross-platform qo‘llab-quvvatlash (Cross-Platform Support): • CLR dasturining o‘ziga xosligi shundaki, u ko‘p platformali (Windows, Linux, macOS va boshqalar) muhitda ishlashni ta’minlaydi. • Mono CLR — bu .NET dasturlarini Linux, macOS va boshqa platformalarda ishlashini ta’minlash uchun yaratilgan CLR versiyasidir.
- JIT (Just-In-Time) Kompilyatsiyasi: • JIT kompilyatori IL (Intermediate Language) kodini mashina kodiga o‘zgartirishni bajaradi. Bu jarayon dastur ishlash vaqtida, ya’ni “just-in-time” (ya’ni, dastur bajarilganda) amalga oshiriladi.
- Multithreading va Parallelizm: • CLR bir nechta oqimlar (threads) bilan ishlashni qo‘llab-quvvatlaydi, bu esa ko‘p yadroli tizimlarda dasturlarni samarali ishlashini ta’minlaydi.
- Platforma va Til Mustaqilligi: • CLR turli tillar va platformalarda ishlashni ta’minlaydi. C#, VB.NET, F# va boshqa .NET tillaridan yozilgan kod CLR tomonidan bir xil tarzda ishlashga majbur qilinadi.
Top comments (0)