سیستمهای تجاری زیادی وجود دارند که ساختار خوش تعریقی ندارند. اغلب این سیستم عاملهابه عنوان سیستم های کوچک و محدودی شروع شدهاند وسپس به تدریج ورای دید اولیه طراحان گسترش یافتهاند .
سیستم عامل DOS از این دسته میباشد.
سیستم عامل به صورت یک مجموعه از رویهها نوشته شده است که هر یک از آنها میتوانند دیگری را به هنگام نیاز فراخوانی کنند . برای مخفی کردن اطلاعات امکاناتی وجود ندارد و هر رویه برای دیگر رویهها کاملا قابل مشاهده است .
مثلاً در MS-DOS واسطهها و سطوح عملیاتی به خوبی مجزا نشدهاند و مطابق شکل زیر برنامههای کاربردی میتوانند مستقیماً به توابع ROM BIOS ویا حتی پورت دستگاههای مختلف (مثل هارد دیسک) دسترسی پیدا کنند, لذا به راحتی میتوان برنامههای مخرب زیادی تحت DOS پدید آورد.
اکثر CPU ها دارای دو مد کاری هستند مد هسته که مخصوص سیستم عامل است و در آن تمامی دستورالعملها مجاز میباشد و دیگری مد کاربر است که مخصوص برنامههای کاربران بوده ودر آن دستورات I/O و دستورالعملهای معین دیگری مجاز نمیباشند.
سیستم عامل DOS توسط سخت افزار زمان خود «پردازنده 8088) محدود بوده است چرا که این پردازنده فقط در یک مد کار میکند و تمام دستورات در آن مجاز میباشد ولی پردازنده386 دارای مدهای مختلفی است که سیستم عامل ویندوز از آن به خوبی استفاده میکند.
برنامهای کاربردی یکی از فراخوانهای سیستمی (توابع سیستم عامل) را صدا میزند . در این حال ماشین از مد کاربر (user mode)به مد هسته (kernel mode) تغییر حالت میدهد و کنترل به سیستم عامل سپرده میشود .سیستم عامل با توجه به پارامترهای تابع مذکور تعیین میکند کدام فراخوان سیستمی باید اجراء شود سپس سیستم عامل به جدولی رجوع میکند که در ردیف k ام آن جدول یک اشارهگر به رویه اجراء کننده فراخوان سیستمی وجود دارد..سپس آن روتین اجراء شده و در انتها کنترل به برنامه کاربر بر میگردد.
تعداد بازدید ها: 23713