حلقه حفاظتی
پیاده‌سازی

حلقه‌های چندگانه حفاظت در میان مفاهیم انقلابی معرفی شده توسط سیستم عامل Multics بود، یک پیشگام بسیار امن از خانواده سیستم عامل‌های یونیکس امروزی است. رایانه GE 645 دارای کنترل دسترسی سخت‌افزاری بود، اما برای پشتیبانی کامل از حلقه‌ها در سخت‌افزار کافی نبود، به همین دلیل Multics آنها را با گیر انداختن درخواست‌های انتقال حلقه‌ها در نرم‌افزار کامل کرد. جانشین آن، Honeywell 6180، آنها را در سخت‌افزار، با پشتیبانی از هشت حلقه اجرا کرد. با این حال، اکثر سیستم‌ها از دو حلقه استفاده می‌کنند، حتی اگر سخت‌افزارهایی که در آنها اجرا می‌شوند، حالت‌های CPU بیشتری را از آن ارائه می‌دهند. به عنوان مثال، ویندوز ۷ و ویندوز سرور ۲۰۰۸ (و پیشینیان آنها) تنها از دو حلقه استفاده می‌کنند، حلقه ۰ مربوط به حالت هسته و حلقه ۳ به حالت کاربر زیرا نسخه‌های قبلی ویندوز در پردازنده‌هایی که فقط دو سطح حفاظت را پشتیبانی می‌کردند اجرا می‌شد.
بسیاری از معماری‌های مدرن CPU (از قبیل معماری معماری محبوب اینتل x86) شامل نوعی حفاظت از نوع حلقه‌های محافظتی هستند، گرچه سیستم عامل ویندوز NT، مانند یونیکس، به‌طور کامل از این ویژگی استفاده نمی‌کند. OS / 2 تا حدودی از سه حلقه استفاده می‌کرد: حلقه ۰ برای کد کرنل و درایورها، حلقه ۲ برای کدهای با دسترسی (برنامه‌های کاربر با مجوزهای دسترسی I / O) و حلقه ۳ برای کد غیرمجاز (تقریباً تمام برنامه‌ها). در DOS، تمام برنامه‌ها (کرنل و درایورها و برنامه‌های سطح کاربر) در حلقه ۳ اجرا می‌شوند (با این حال، این منحصر به مواردی است که در آن درایورهای حالت محافظت شده یا افزونه‌های DOS استفاده می‌شود؛ به عنوان یک سیستم عامل که از آدرس دهی real mode استفاده می‌کرد، سیستم حفاظت نشده‌ای بود)، در حالی که ۳۸۶ مموری منیجرهایی مانند EMM386 در حلقه ۰ کار می‌کنند. علاوه بر این، EMM386 3.xx DR-DOS می‌تواند به صورت اختیاری برخی از ماژول‌ها (مانند DPMS) را روی حلقه ۱ اجرا کند.
سیستم Multics اصلی دارای هشت حلقه بود، اما بسیاری از سیستم‌های مدرن تعداد حلقه‌های کمتری دارند. سخت‌افزار به کمک ثبات‌ها از حلقه ای که یک رشته پردازش باید در ان اجرا شود آگاه است. در بعضی از سیستم‌ها، قسمت‌هایی از حافظه مجازی به حلقه‌های مختلف اختصاص داده شده‌اند. یک مثال Data General Eclipse MV / 8000 است که در آن سه بیت بالا رجیستر شمارنده برنامه (PC) به عنوان رجیستر حلقه استفاده می‌شود. به عنوان مثال، برنامه ای که رجیستر PC ان مقدار 0xE200000 را دارد، به صورت خودکار در حلقه ۷ قرار می‌گیرد و فراخوانی یک تابع در بخش‌های مختلف حافظه به‌طور خودکار باعث انتقال حلقه می‌شود.
سخت‌افزار به شدت راه‌هایی که موجب انتقال کنترل از حلقه ای به حلقه دیگر می‌شود را محدود می‌کند و همچنین محدودیت‌هایی را برای نوع دسترسی به حافظه ای که می‌توانند در حلقه‌ها انجام شوند، ایجاد می‌کند. به عنوان مثال، در x86، یک خاصیت وجود دارد [نیازمند شفاف‌سازی] که توسط دستورالعمل call کنترل را به شیوه ای امن از حلقه ای به حلقه دیگر انتقال می‌دهد [نیازمند شفاف‌سازی]؛ این عمل به عنوان یک سرپرست در بسیاری از سیستم عامل‌های که از حلقه‌های حفاظت استفاده می‌کنند پیاده‌سازی شده‌است. محدودیت‌های سخت‌افزاری برای محافظت در مقابل رفتارهای خطرناک مفید طراحی شده‌اند. علاوه بر این، حلقه‌های ممنوعه ممکن است دارای قابلیت‌های خاصی باشند (مانند استفاده از آدرس دهی real mode که حافظه مجازی را دور می‌زند).
ARM معماری V7 دارای سه سطح امتیاز: برنامه، سیستم عامل، و Hypervisor. که برخلاف معمول، سطح 0 (PL0) حداقل سطح امتیاز، در حالی که سطح 2 (PL2) بالاترین سطح امتیاز است.
حلقه‌های محافظت در برخی از سیستم‌ها می‌تواند با حالت‌های پردازنده (master / kernel / privileged / supervisor mode vs. slave / unprivileged / user mode) ترکیب شوند. سیستم عامل‌ها در حال اجرا بر روی سخت‌افزاری که از هر دو حالت پشتیبانی می‌کنند می‌توانند از هر دو نوع حفاظت یا تنها یک استفاده کنند.
استفاده مؤثر از معماری حلقه‌ها نیاز به همکاری نزدیک بین سخت‌افزار و سیستم عامل دارد. سیستم عامل‌های طراحی شده برای کار بر روی چندین سخت‌افزار ممکن است استفاده محدودی از حلقه‌ها داشته باشند، اگر آنها در همه پلتفرم (سخت‌افزارها) پشتیبانی نمی‌شوند. اغلب مدل امنیتی حلقه‌ها به «هسته» و «کاربر» ساده شده‌است، حتی اگر سخت‌افزار حلقه‌های بیشتری را پشتیبانی کند.