(به : ) یا در ، سازوکارهایی برای حفاظت از داده و عملکرد از خطا (با افزایش ) و رفتارهای بدخواهانه (با ایجاد ) است. این دیدگاه از نظر قطری، برخلاف است.
 سیستم‌عامل‌های رایانه‌ای، مراحل مختلفی از دسترسی به منابع را فراهم می‌کنند. یک حلقه حفاظتی یکی از دو یا بیشتر مرحله یا لایه سلسله‌مراتبی از (حق‌ویژه) در معماری یک است. این موضوع معمولاً به صورت سخت‌افزاری، توسط بعضی از اعمال می‌شود، این معماری‌ها مختلفی را در سخت‌افزار یا به‌صورت تهیه می‌بینند. این حلقه‌ها به صورت سلسله‌مراتبی، یعنی از مجوزدارترین (مورد اعتمادترین، که معمولاً شماره صفر دارد) تا کم مجوزترین (کم‌اعتمادترین، معمولاً با بالاترین شماره حلقه) مرتب می‌شوند. در بیشتر سیستم‌عامل‌ها، «حلقه ۰» مرحلهٔ با بیشترین مجوز (حق‌ویژه) است و به صورت مستقیم با سخت‌افزار فیزیکی مثل CPU و حافظه سروکار دارد.
 دروازه‌های خاصی بین حلقه‌ها تهیه دیده شده‌است، که به حلقه بیرونی اجازه می‌دهد تا به منابع حلقه درونی به صورت از قبل تعریف شده دسترسی یابد، و این متضاد با اجازه دادن به هر استفاده دلخواه است. دسترسی دروازه‌ای صحیح بین حلقه‌ها می‌تواند امنیت را بهبود دهد، این کار، از طریق جلوگیری برنامه‌های یک حلقه یا مرحله مجوزدهی از سوءاستفاده از منابعی که برای برنامه‌های حلقه دیگر درنظرگرفته شده‌اند، انجام می‌شود. برای مثال، که به صورت یک برنامه‌کاربری در حلقه ۳ اجرا می‌شود، باید از روشن‌کردن دوربین وب، بدون اطلاع‌دادن به کاربر، منع شود، زیرا دسترسی به سخت‌افزار باید یک تابع حلقه ۱ باشد، که این حلقه به دستگاه اختصاص داده‌شده‌است. برنامه‌هایی مثل مرورگر وب که در حلقه‌های سطح بالاتر اجرا می‌شوند، باید دسترسی به شبکه را «درخواست» بدهند، که شبکه یک منبع است که به آن شماره حلقه پایین‌تری اختصاص داده‌شده‌است.
 حلقه‌های چندگانه حفاظت در میان مفاهیم انقلابی معرفی شده توسط سیستم عامل بود، یک پیشگام بسیار امن از خانواده سیستم عامل‌های امروزی است. رایانه GE 645 دارای کنترل دسترسی سخت‌افزاری بود، اما برای پشتیبانی کامل از حلقه‌ها در سخت‌افزار کافی نبود، به همین دلیل Multics آنها را با گیر انداختن درخواست‌های انتقال حلقه‌ها در نرم‌افزار کامل کرد. جانشین آن، Honeywell 6180، آنها را در سخت‌افزار، با پشتیبانی از هشت حلقه اجرا کرد. با این حال، اکثر سیستم‌ها از دو حلقه استفاده می‌کنند، حتی اگر سخت‌افزارهایی که در آنها اجرا می‌شوند، حالت‌های CPU بیشتری را از آن ارائه می‌دهند. به عنوان مثال، ویندوز ۷ و ویندوز سرور ۲۰۰۸ (و پیشینیان آنها) تنها از دو حلقه استفاده می‌کنند، حلقه ۰ مربوط به حالت هسته و حلقه ۳ به زیرا نسخه‌های قبلی ویندوز در پردازنده‌هایی که فقط دو سطح حفاظت را پشتیبانی می‌کردند اجرا می‌شد. 
 بسیاری از معماری‌های مدرن CPU (از قبیل معماری معماری محبوب ) شامل نوعی حفاظت از نوع حلقه‌های محافظتی هستند، گرچه سیستم عامل ، مانند یونیکس، به‌طور کامل از این ویژگی استفاده نمی‌کند. تا حدودی از سه حلقه استفاده می‌کرد: حلقه ۰ برای کد کرنل و درایورها، حلقه ۲ برای کدهای با دسترسی (برنامه‌های کاربر با مجوزهای دسترسی I / O) و حلقه ۳ برای کد غیرمجاز (تقریباً تمام برنامه‌ها). در ، تمام برنامه‌ها (کرنل و درایورها و برنامه‌های سطح کاربر) در حلقه ۳ اجرا می‌شوند (با این حال، این منحصر به مواردی است که در آن درایورهای حالت محافظت شده یا افزونه‌های DOS استفاده می‌شود؛ به عنوان یک سیستم عامل که از آدرس دهی real mode استفاده می‌کرد، سیستم حفاظت نشده‌ای بود)، در حالی که ۳۸۶ مموری منیجرهایی مانند EMM386 در حلقه ۰ کار می‌کنند. علاوه بر این، EMM386 3.xx DR-DOS می‌تواند به صورت اختیاری برخی از ماژول‌ها (مانند DPMS) را روی حلقه ۱ اجرا کند.
 سیستم Multics اصلی دارای هشت حلقه بود، اما بسیاری از سیستم‌های مدرن تعداد حلقه‌های کمتری دارند. سخت‌افزار به کمک ثبات‌ها از حلقه ای که یک رشته پردازش باید در ان اجرا شود آگاه است. در بعضی از سیستم‌ها، قسمت‌هایی از به حلقه‌های مختلف اختصاص داده شده‌اند. یک مثال Data General Eclipse MV / 8000 است که در آن سه بیت بالا رجیستر به عنوان رجیستر حلقه استفاده می‌شود. به عنوان مثال، برنامه ای که رجیستر PC ان مقدار 0xE200000 را دارد، به صورت خودکار در حلقه ۷ قرار می‌گیرد و فراخوانی یک تابع در بخش‌های مختلف حافظه به‌طور خودکار باعث انتقال حلقه می‌شود.
 سخت‌افزار به شدت راه‌هایی که موجب انتقال کنترل از حلقه ای به حلقه دیگر می‌شود را محدود می‌کند و همچنین محدودیت‌هایی را برای نوع دسترسی به حافظه ای که می‌توانند در حلقه‌ها انجام شوند، ایجاد می‌کند. به عنوان مثال، در x86، یک خاصیت وجود دارد که توسط دستورالعمل call کنترل را به شیوه ای امن از حلقه ای به حلقه دیگر انتقال می‌دهد ؛ این عمل به عنوان یک سرپرست در بسیاری از سیستم عامل‌های که از حلقه‌های حفاظت استفاده می‌کنند پیاده‌سازی شده‌است. محدودیت‌های سخت‌افزاری برای محافظت در مقابل رفتارهای خطرناک مفید طراحی شده‌اند. علاوه بر این، حلقه‌های ممنوعه ممکن است دارای قابلیت‌های خاصی باشند (مانند استفاده از آدرس دهی real mode که حافظه مجازی را دور می‌زند).
 معماری V7 دارای سه سطح امتیاز: برنامه، سیستم عامل، و Hypervisor. که برخلاف معمول، سطح 0 (PL0) حداقل سطح امتیاز، در حالی که سطح 2 (PL2) بالاترین سطح امتیاز است. 
 حلقه‌های محافظت در برخی از سیستم‌ها می‌تواند با حالت‌های پردازنده (master / kernel / privileged / supervisor mode vs. slave / unprivileged / user mode) ترکیب شوند. سیستم عامل‌ها در حال اجرا بر روی سخت‌افزاری که از هر دو حالت پشتیبانی می‌کنند می‌توانند از هر دو نوع حفاظت یا تنها یک استفاده کنند.
 استفاده مؤثر از معماری حلقه‌ها نیاز به همکاری نزدیک بین سخت‌افزار و سیستم عامل دارد. سیستم عامل‌های طراحی شده برای کار بر روی چندین سخت‌افزار ممکن است استفاده محدودی از حلقه‌ها داشته باشند، اگر آنها در همه پلتفرم (سخت‌افزارها) پشتیبانی نمی‌شوند. اغلب مدل امنیتی حلقه‌ها به «هسته» و «کاربر» ساده شده‌است، حتی اگر سخت‌افزار حلقه‌های بیشتری را پشتیبانی کند.
 در زمینه کامپیوتر، یک flag سختافزاری است که می‌تواند توسط کدهایی که در سطح سیستم اجرا می‌شوند تغییر کند. برنامه‌های در حال اجرا در سطح سیستم از این flag استفاده می‌کنند، در حالی که برنامه‌های سطح کاربر (مرورگر وب) توانایی استفاده از این flag را ندارند. این پرچم تعیین می‌کند که آیا می‌توان کدهای ماشینی که کارهایی مانند اصلاح ثبات‌ها برای اصلاح descriptor tableها، یا انجام عملیات مانند قطع interruptها ممکن است یا خیر. ایده داشتن دو حالت مختلف برای اجرا برنامه‌ها از جمله " " یک برنامه که درsupervisor mode اجرا می‌شود هرگز نباید اشتباه کند، زیرا یک اشتباه می‌تواند موجب سقوط کل سیستم شود.
 حالت supervisor mode "یک حالت اجرای در برخی از پردازنده‌ها است که امکان اجرای تمام دستورالعمل‌ها، از جمله دستورالعمل‌های با دسترسی‌ها خاص را فراهم می‌کند. همچنین ممکن است اجازه دسترسی به یک address space متفاوت را بدهد. در این حالت معمولاً سیستم عامل‌ها اجرا می‌شود. " 
 در یک کرنل یکپارچه، سیستم عامل در حالت سرپرست اجرا می‌شود و برنامه‌ها در حالت کاربر اجرا می‌شوند. انواع دیگر از ، مانند سیستم عامل‌هایی که از کرنل نوع exokernel یا استفاده می‌کنند، لزوماً این رفتار را به اشتراک نمی‌گزارند.
 
 
 اکثر پردازنده‌ها حداقل دو حالت متفاوت دارند. دارای چهار حالت مختلف است. برنامه‌هایی که در حلقه ۰ اجرا می‌شوند می‌توانند با سیستم هر انجام و برنامه ای که در حلقه ۳ اجرا می‌شود باید بتواند در هر زمان بدون تأثیر بر بقیه سیستم کامپیوتر کرش کند. حلقه ۱ و حلقه ۲ به ندرت استفاده می‌شود، اما می‌توانند با سطوح مختلف دسترسی پیکربندی شود.
 در اکثر سیستم عامل‌ها جابجایی میان user space و kernel space کار سنگینی است برا مثال برای در خواست getpid این فرایند چیزی حدود ۱۰۰۰–۱۵۰۰ کلاک سایکل زمان می‌برد.
 نوشت: 
 
 
 
 
 
 
 مشارکت‌کنندگان ویکی‌پدیا. « ». در ، بازبینی‌شده در ۲ دی ۱۳۹۹.
{"title": "حلقه حفاظتی", "link": "https://fa.wikipedia.org//w/index.php?title=%D8%AD%D9%84%D9%82%D9%87_%D8%AD%D9%81%D8%A7%D8%B8%D8%AA%DB%8C&oldid=32217041", "language": "fa"}