0
با افزایش، سیستم های خنک کننده آموزش کامپیوتر برودتی ممکن است ضروری شوند. از آنجایی که فناوریهای باتری ذخیرهسازی با مصرف انرژی در دستگاههای قابل حمل همگام نبوده است، علاقه مجدد به تراشههای آرسنید گالیوم (GaAs) افزایش یافته است. تراشههای GaAs میتوانند با سرعتهای بالاتر کار کنند و نسبت به تراشههای سیلیکونی انرژی کمتری مصرف کنند. (تراشههای GaAs همچنین در برابر تشعشعات، که عاملی در کاربردهای نظامی و فضایی است، مقاومتر هستند.) اگرچه تراشههای GaAs به دلیل سرعت خود در ابررایانهها استفاده شدهاند، آموزش کامپیوتر شکنندگی GaAs آن را برای بیشتر کاربردهای معمولی بسیار پرهزینه کرده است. یک ایده امیدوارکننده این است که یک لایه GaAs را به یک بستر سیلیکونی بچسبانید تا کار راحتتر انجام شود. با این وجود، GaAs هنوز به جز در برخی از سیستمهای ارتباطی با فرکانس بالا مورد استفاده متداول نیست.
طراحی های آینده CPU
از اوایل دهه 1990، محققان دو رویکرد جدید حدس و گمان اما جذاب برای محاسبات را مورد بحث قرار دادند - محاسبات کوانتومی و محاسبات مولکولی (DNA). هر کدام چشم انداز محاسبات بسیار موازی و راهی را برای دور زدن محدودیت های فیزیکی نزدیک به قانون مور ارائه می دهند.
محاسبات کوانتومی
درباره کامپیوترهای کوانتومی بیاموزید. همه ویدیوهای این مقاله را ببینید
طبق مکانیک کوانتومی، یک الکترون دارای آموزش کامپیوترخاصیت دوتایی (دو ارزشی) است که به نام «اسپین» شناخته میشود. این روش دیگری را برای نمایش کمی اطلاعات نشان می دهد. در حالی که ذخیره سازی اطلاعات تک ذره جذاب است، دستکاری آن دشوار است. با این حال، ایده بنیادی محاسبات کوانتومی به یکی دیگر از ویژگیهای مکانیک کوانتومی بستگی دارد: این که ذرات در مقیاس اتمی در یک «ابرپوزیشن» از تمام حالتهای ممکن خود قرار دارند تا زمانی که یک مشاهده، یا اندازهگیری، حالتهای مختلف ممکن آنها را در یک حالت واقعی «فروپا» کند. حالت. این بدان معناست که اگر سیستمی از ذرات - که به بیتهای کوانتومی یا کیوبیتها معروف هستند - با هم «درهم» شوند، میتوان از تمام ترکیبهای ممکن حالتهای آنها به طور همزمان برای انجام یک محاسبات، حداقل در تئوری، استفاده کرد.
در واقع، در حالی که چند الگوریتم برای آموزش کامپیوتر محاسبات کوانتومی ابداع شده است، ساخت کامپیوترهای کوانتومی مفید دشوارتر بوده است. این به این دلیل است که کیوبیت ها باید انسجام (درهم تنیدگی کوانتومی) خود را با یکدیگر حفظ کنند و در عین حال از ناهمدوسی (تعامل با محیط خارجی) جلوگیری کنند. تا سال 2000، بزرگترین سیستم درهم تنیده ساخته شده تنها دارای هفت کیوبیت بود.
محاسبات مولکولی
در سال 1994، لئونارد آدلمن، ریاضیدان دانشگاه کالیفرنیای جنوبی، اولین کامپیوتر DNA را با حل یک مثال ساده از آنچه به عنوان مسئله فروشنده دوره گرد شناخته می شود، نشان داد. یک مشکل فروشنده دوره گرد - یا به طور کلی، انواع خاصی از مشکلات شبکه در نظریه گراف - یک مسیر (یا کوتاه ترین مسیر) را می خواهد که از یک شهر خاص یا "گره" شروع می شود و دقیقاً به هر یک از گره های دیگر می رود. یک بار. رایانههای دیجیتال و انسانهای به اندازه کافی پایدار، میتوانند با فهرست کردن همه مسیرهای ممکن و مقایسه آنها، شبکههای کوچک را حل کنند، آموزش کامپیوتر اما با افزایش تعداد گرهها، تعداد مسیرهای ممکن به طور تصاعدی افزایش مییابد و به زودی (بیش از حدود 50 گره) سریعترین گرهها را تحت تأثیر قرار میدهد. ابر رایانه. در حالی که کامپیوترهای دیجیتال معمولاً محدود به انجام محاسبات به صورت سریال هستند، آدلمن متوجه شد که می تواند از مولکول های DNA برای انجام یک محاسبات "بسیار موازی" استفاده کند. او با انتخاب توالی های مختلف نوکلئوتیدی برای نشان دادن هر شهر و هر مسیر مستقیم بین دو شهر شروع کرد. او سپس تریلیون ها نسخه از هر یک از این رشته های نوکلئوتیدی ساخت و آنها را در یک لوله آزمایش مخلوط کرد. در کمتر از یک ثانیه او پاسخ را دریافت کرد، البته همراه با صدها تریلیون پاسخ جعلی. آدلمن با استفاده از تکنیکهای اولیه آزمایشگاهی DNA نوترکیب، یک هفته زمان برد تا پاسخ را جدا کند - ابتدا مولکولهایی را که با شهرهای مناسب شروع و پایان نمییابند (توالیهای نوکلئوتیدی)، سپس مولکولهایی که دارای تعداد مناسب شهر نیستند و در نهایت آنها را از بین برد. که دقیقاً یک بار شامل هر شهر نمی شد.
اگرچه شبکه ادلمن تنها شامل هفت گره بود - یک مشکل بسیار پیش پا افتاده برای کامپیوترهای دیجیتال - این اولین نمایشی از امکان سنجی محاسبات DNA بود. از آن زمان به بعد، اریک وینفری، دانشمند کامپیوتر در مؤسسه فناوری کالیفرنیا، نشان داده است که انواع غیرزیستی DNA (مانند DNA شاخه دار) می توانند برای ذخیره و پردازش اطلاعات سازگار شوند. DNA و محاسبات کوانتومی آموزش کامپیوتر همچنان احتمالات جالبی هستند که حتی اگر غیرعملی باشند، ممکن است به پیشرفتهای بیشتر در سختافزار رایانههای آینده منجر شوند.
سیستم های عامل
نقش سیستم عامل ها
سیستمهای عامل منابع کامپیوتر - حافظه، دستگاههای جانبی و حتی دسترسی به CPU را مدیریت میکنند و مجموعهای از خدمات را به برنامههای کاربر ارائه میکنند. یونیکس که ابتدا برای کامپیوترهای کوچک توسعه یافت و اکنون به طور گسترده در رایانههای شخصی و رایانههای بزرگ استفاده میشود، یک مثال است. لینوکس (نسخه ای از یونیکس)، ویندوز XP شرکت مایکروسافت و OS X رایانه اپل دیگر هستند
ممکن است یک سیستم عامل را آموزش برنامه نویسی کودکان مجموعه ای از پوسته های متحدالمرکز تصور کنیم. در مرکز، پردازنده خالی قرار دارد که توسط لایههایی از روتینهای سیستم عامل احاطه شده است تا ورودی/خروجی (I/O)، دسترسی به حافظه، چندین فرآیند و ارتباط بین فرآیندها را مدیریت کند. آموزش کامپیوتر برنامه های کاربری در بیرونی ترین لایه ها قرار دارند. هر لایه لایه داخلی خود را از دسترسی مستقیم عایق می کند و در عین حال به لایه بیرونی خود خدمات ارائه می دهد. این معماری لایههای بیرونی را از دانستن تمام جزئیات عملیات سطح پایینتر رها میکند، در حالی که لایههای داخلی و خدمات ضروری آنها را از تداخل محافظت میکند.
کامپیوترهای اولیه هیچ سیستم عاملی نداشتند. یک کاربر یک برنامه را از نوار کاغذی با استفاده از کلیدهایی برای مشخص کردن آدرس حافظه آن، شروع بارگذاری و اجرای برنامه بارگیری کرد. وقتی برنامه تمام شد، کامپیوتر متوقف شد. برنامه نویس باید از تمام جزئیات کامپیوتر، مانند میزان حافظه و ویژگی های دستگاه های ورودی/خروجی مورد استفاده توسط برنامه، آگاهی داشته باشد.
به سرعت متوجه شد که این یک استفاده ناکارآمد از منابع است، به ویژه به دلیل اینکه CPU تا حد زیادی بیکار بود در حالی که منتظر دستگاه های I/O نسبتاً کند بود تا کارهایی مانند خواندن و نوشتن داده ها را به پایان برسانند. اگر بجای آن بتوان چندین برنامه را به طور همزمان بارگذاری کرد و هماهنگ کرد تا مراحل محاسبات و ورودی/خروجی آنها را به هم بریزند، کار بیشتری میتوان انجام داد. اولین سیستمعاملها برنامههای سرپرست کوچکی بودند که دقیقاً این کار را انجام میدادند: آنها چندین برنامه را هماهنگ میکردند، دستورات اپراتور را میپذیرفتند و به همه آنها عملیات ورودی/خروجی اولیه را ارائه میدادند. اینها به عنوان سیستم های چندبرنامه ای شناخته می شدند.
یک سیستم چندبرنامهای باید برنامههای خود را بر اساس برخی قوانین اولویتبندی، مانند «اول کوتاهترین کارها» زمانبندی کند. باید آنها را از تداخل متقابل محافظت کند تا از خراب کردن داده ها یا کد برنامه دیگر، خطای آدرس دهی در یک برنامه جلوگیری کند. باید از عدم تداخل در طول I/O اطمینان حاصل کند تا خروجی از چندین برنامه با هم مخلوط نشود یا ورودی اشتباه هدایت نشود. همچنین ممکن است مجبور باشد زمان CPU هر کار را برای مقاصد صورتحساب ثبت کند.
انواع مدرن سیستم عامل
سیستم های چندگانه
توسعه سیستمهای چندبرنامهنویسی در دهه 1960 توسعه یافت که بهصورت مختلف بهعنوان سیستمهای چندکاربره یا اشتراکگذاری زمانی شناخته میشوند. (برای تاریخچه این توسعه، به بخش اشتراکگذاری زمانی از پروژه MAC به یونیکس مراجعه کنید.) اشتراکگذاری زمانی به افراد زیادی اجازه میدهد تا با یک کامپیوتر به طور همزمان تعامل داشته باشند و هر کدام بخش کوچکی از زمان CPU را دریافت کنند. اگر CPU به اندازه کافی سریع باشد، به نظر می رسد که به هر کاربر اختصاص داده شده است، به خصوص که یک کامپیوتر می تواند عملکردهای زیادی را در حالی که منتظر است هر کاربر تایپ آخرین دستورات را تمام کند، انجام دهد.
سیستمهای عامل چندکاربره از تکنیکی استفاده میکنند که به عنوان چند پردازش یا چندوظیفه (مانند اکثر سیستمهای تک کاربره امروزی) شناخته میشود، که در آن حتی یک برنامه واحد ممکن است شامل بسیاری از فعالیتهای محاسباتی مجزا به نام فرآیندها باشد. سیستم باید فرآیندهای فعال و در صف را پیگیری کند، زمانی که هر فرآیند باید به حافظه ثانویه برای بازیابی و ذخیره کد و داده های خود و تخصیص منابع دیگر مانند دستگاه های جانبی دسترسی داشته باشد.
از آنجایی که حافظه اصلی بسیار محدود بود، سیستم عامل های اولیه باید تا حد امکان کوچک باشند تا جایی برای برنامه های دیگر باقی بماند. برای غلبه بر برخی از این محدودیت ها، سیستم عامل ها از حافظه مجازی استفاده می کنند، یکی از تکنیک های محاسباتی بسیاری که در اواخر دهه 1950 به سرپرستی تام کیلبرن در دانشگاه منچستر انگلستان توسعه یافت. حافظه مجازی به هر فرآیند یک فضای آدرس بزرگ (حافظه ای که ممکن است استفاده کند) می دهد که اغلب بسیار بزرگتر از آموزش کامپیوتر حافظه اصلی واقعی است. این فضای آدرس در حافظه ثانویه (مانند نوار یا دیسک) قرار دارد، که در صورت نیاز، بخشهایی از آن در حافظه اصلی کپی میشوند، در صورت لزوم بهروزرسانی میشوند و زمانی که فرآیندی دیگر فعال نیست، برگردانده میشود. با این حال، حتی با حافظه مجازی، برخی از "هسته" سیستم عامل باید در حافظه اصلی باقی بماند. هسته های اولیه یونیکس ده ها کیلوبایت را اشغال می کردند. امروزه آنها بیش از یک مگابایت را اشغال می کنند و سیستم عامل های رایانه شخصی قابل مقایسه هستند، عمدتاً به دلیل کاهش هزینه حافظه اصلی.
سیستمهای عامل باید جداول حافظه مجازی را حفظ کنند تا مکان آدرس هر فرآیند را ردیابی کنند و CPUهای مدرن برای کارآمدتر کردن این رجیسترها، رجیسترهای خاصی را ارائه میدهند. در واقع، بیشتر یک سیستم عامل از جداول تشکیل شده است: جداول فرآیندها، فایل ها و مکان آنها (دایرکتوری ها)، منابع استفاده شده توسط هر فرآیند و غیره. همچنین جداولی از حسابهای کاربری و رمزهای عبور وجود دارد که به کنترل دسترسی به فایلهای کاربر و محافظت از آنها در computer education برابر تداخل تصادفی یا مخرب کمک میکند.
0
با افزایش، سیستم های خنک کننده آموزش کامپیوتر برودتی ممکن است ضروری شوند. از آنجایی که فناوریهای باتری ذخیرهسازی با مصرف انرژی در دستگاههای قابل حمل همگام نبوده است، علاقه مجدد به تراشههای آرسنید گالیوم (GaAs) افزایش یافته است. تراشههای GaAs میتوانند با سرعتهای بالاتر کار کنند و نسبت به تراشههای سیلیکونی انرژی کمتری مصرف کنند. (تراشههای GaAs همچنین در برابر تشعشعات، که عاملی در کاربردهای نظامی و فضایی است، مقاومتر هستند.) اگرچه تراشههای GaAs به دلیل سرعت خود در ابررایانهها استفاده شدهاند، آموزش کامپیوتر شکنندگی GaAs آن را برای بیشتر کاربردهای معمولی بسیار پرهزینه کرده است. یک ایده امیدوارکننده این است که یک لایه GaAs را به یک بستر سیلیکونی بچسبانید تا کار راحتتر انجام شود. با این وجود، GaAs هنوز به جز در برخی از سیستمهای ارتباطی با فرکانس بالا مورد استفاده متداول نیست.
طراحی های آینده CPU
از اوایل دهه 1990، محققان دو رویکرد جدید حدس و گمان اما جذاب برای محاسبات را مورد بحث قرار دادند - محاسبات کوانتومی و محاسبات مولکولی (DNA). هر کدام چشم انداز محاسبات بسیار موازی و راهی را برای دور زدن محدودیت های فیزیکی نزدیک به قانون مور ارائه می دهند.
محاسبات کوانتومی
درباره کامپیوترهای کوانتومی بیاموزید. همه ویدیوهای این مقاله را ببینید
طبق مکانیک کوانتومی، یک الکترون دارای آموزش کامپیوترخاصیت دوتایی (دو ارزشی) است که به نام «اسپین» شناخته میشود. این روش دیگری را برای نمایش کمی اطلاعات نشان می دهد. در حالی که ذخیره سازی اطلاعات تک ذره جذاب است، دستکاری آن دشوار است. با این حال، ایده بنیادی محاسبات کوانتومی به یکی دیگر از ویژگیهای مکانیک کوانتومی بستگی دارد: این که ذرات در مقیاس اتمی در یک «ابرپوزیشن» از تمام حالتهای ممکن خود قرار دارند تا زمانی که یک مشاهده، یا اندازهگیری، حالتهای مختلف ممکن آنها را در یک حالت واقعی «فروپا» کند. حالت. این بدان معناست که اگر سیستمی از ذرات - که به بیتهای کوانتومی یا کیوبیتها معروف هستند - با هم «درهم» شوند، میتوان از تمام ترکیبهای ممکن حالتهای آنها به طور همزمان برای انجام یک محاسبات، حداقل در تئوری، استفاده کرد.
در واقع، در حالی که چند الگوریتم برای آموزش کامپیوتر محاسبات کوانتومی ابداع شده است، ساخت کامپیوترهای کوانتومی مفید دشوارتر بوده است. این به این دلیل است که کیوبیت ها باید انسجام (درهم تنیدگی کوانتومی) خود را با یکدیگر حفظ کنند و در عین حال از ناهمدوسی (تعامل با محیط خارجی) جلوگیری کنند. تا سال 2000، بزرگترین سیستم درهم تنیده ساخته شده تنها دارای هفت کیوبیت بود.
محاسبات مولکولی
در سال 1994، لئونارد آدلمن، ریاضیدان دانشگاه کالیفرنیای جنوبی، اولین کامپیوتر DNA را با حل یک مثال ساده از آنچه به عنوان مسئله فروشنده دوره گرد شناخته می شود، نشان داد. یک مشکل فروشنده دوره گرد - یا به طور کلی، انواع خاصی از مشکلات شبکه در نظریه گراف - یک مسیر (یا کوتاه ترین مسیر) را می خواهد که از یک شهر خاص یا "گره" شروع می شود و دقیقاً به هر یک از گره های دیگر می رود. یک بار. رایانههای دیجیتال و انسانهای به اندازه کافی پایدار، میتوانند با فهرست کردن همه مسیرهای ممکن و مقایسه آنها، شبکههای کوچک را حل کنند، آموزش کامپیوتر اما با افزایش تعداد گرهها، تعداد مسیرهای ممکن به طور تصاعدی افزایش مییابد و به زودی (بیش از حدود 50 گره) سریعترین گرهها را تحت تأثیر قرار میدهد. ابر رایانه. در حالی که کامپیوترهای دیجیتال معمولاً محدود به انجام محاسبات به صورت سریال هستند، آدلمن متوجه شد که می تواند از مولکول های DNA برای انجام یک محاسبات "بسیار موازی" استفاده کند. او با انتخاب توالی های مختلف نوکلئوتیدی برای نشان دادن هر شهر و هر مسیر مستقیم بین دو شهر شروع کرد. او سپس تریلیون ها نسخه از هر یک از این رشته های نوکلئوتیدی ساخت و آنها را در یک لوله آزمایش مخلوط کرد. در کمتر از یک ثانیه او پاسخ را دریافت کرد، البته همراه با صدها تریلیون پاسخ جعلی. آدلمن با استفاده از تکنیکهای اولیه آزمایشگاهی DNA نوترکیب، یک هفته زمان برد تا پاسخ را جدا کند - ابتدا مولکولهایی را که با شهرهای مناسب شروع و پایان نمییابند (توالیهای نوکلئوتیدی)، سپس مولکولهایی که دارای تعداد مناسب شهر نیستند و در نهایت آنها را از بین برد. که دقیقاً یک بار شامل هر شهر نمی شد.
اگرچه شبکه ادلمن تنها شامل هفت گره بود - یک مشکل بسیار پیش پا افتاده برای کامپیوترهای دیجیتال - این اولین نمایشی از امکان سنجی محاسبات DNA بود. از آن زمان به بعد، اریک وینفری، دانشمند کامپیوتر در مؤسسه فناوری کالیفرنیا، نشان داده است که انواع غیرزیستی DNA (مانند DNA شاخه دار) می توانند برای ذخیره و پردازش اطلاعات سازگار شوند. DNA و محاسبات کوانتومی آموزش کامپیوتر همچنان احتمالات جالبی هستند که حتی اگر غیرعملی باشند، ممکن است به پیشرفتهای بیشتر در سختافزار رایانههای آینده منجر شوند.
سیستم های عامل
نقش سیستم عامل ها
سیستمهای عامل منابع کامپیوتر - حافظه، دستگاههای جانبی و حتی دسترسی به CPU را مدیریت میکنند و مجموعهای از خدمات را به برنامههای کاربر ارائه میکنند. یونیکس که ابتدا برای کامپیوترهای کوچک توسعه یافت و اکنون به طور گسترده در رایانههای شخصی و رایانههای بزرگ استفاده میشود، یک مثال است. لینوکس (نسخه ای از یونیکس)، ویندوز XP شرکت مایکروسافت و OS X رایانه اپل دیگر هستند
ممکن است یک سیستم عامل را آموزش برنامه نویسی کودکان مجموعه ای از پوسته های متحدالمرکز تصور کنیم. در مرکز، پردازنده خالی قرار دارد که توسط لایههایی از روتینهای سیستم عامل احاطه شده است تا ورودی/خروجی (I/O)، دسترسی به حافظه، چندین فرآیند و ارتباط بین فرآیندها را مدیریت کند. آموزش کامپیوتر برنامه های کاربری در بیرونی ترین لایه ها قرار دارند. هر لایه لایه داخلی خود را از دسترسی مستقیم عایق می کند و در عین حال به لایه بیرونی خود خدمات ارائه می دهد. این معماری لایههای بیرونی را از دانستن تمام جزئیات عملیات سطح پایینتر رها میکند، در حالی که لایههای داخلی و خدمات ضروری آنها را از تداخل محافظت میکند.
کامپیوترهای اولیه هیچ سیستم عاملی نداشتند. یک کاربر یک برنامه را از نوار کاغذی با استفاده از کلیدهایی برای مشخص کردن آدرس حافظه آن، شروع بارگذاری و اجرای برنامه بارگیری کرد. وقتی برنامه تمام شد، کامپیوتر متوقف شد. برنامه نویس باید از تمام جزئیات کامپیوتر، مانند میزان حافظه و ویژگی های دستگاه های ورودی/خروجی مورد استفاده توسط برنامه، آگاهی داشته باشد.
به سرعت متوجه شد که این یک استفاده ناکارآمد از منابع است، به ویژه به دلیل اینکه CPU تا حد زیادی بیکار بود در حالی که منتظر دستگاه های I/O نسبتاً کند بود تا کارهایی مانند خواندن و نوشتن داده ها را به پایان برسانند. اگر بجای آن بتوان چندین برنامه را به طور همزمان بارگذاری کرد و هماهنگ کرد تا مراحل محاسبات و ورودی/خروجی آنها را به هم بریزند، کار بیشتری میتوان انجام داد. اولین سیستمعاملها برنامههای سرپرست کوچکی بودند که دقیقاً این کار را انجام میدادند: آنها چندین برنامه را هماهنگ میکردند، دستورات اپراتور را میپذیرفتند و به همه آنها عملیات ورودی/خروجی اولیه را ارائه میدادند. اینها به عنوان سیستم های چندبرنامه ای شناخته می شدند.
یک سیستم چندبرنامهای باید برنامههای خود را بر اساس برخی قوانین اولویتبندی، مانند «اول کوتاهترین کارها» زمانبندی کند. باید آنها را از تداخل متقابل محافظت کند تا از خراب کردن داده ها یا کد برنامه دیگر، خطای آدرس دهی در یک برنامه جلوگیری کند. باید از عدم تداخل در طول I/O اطمینان حاصل کند تا خروجی از چندین برنامه با هم مخلوط نشود یا ورودی اشتباه هدایت نشود. همچنین ممکن است مجبور باشد زمان CPU هر کار را برای مقاصد صورتحساب ثبت کند.
انواع مدرن سیستم عامل
سیستم های چندگانه
توسعه سیستمهای چندبرنامهنویسی در دهه 1960 توسعه یافت که بهصورت مختلف بهعنوان سیستمهای چندکاربره یا اشتراکگذاری زمانی شناخته میشوند. (برای تاریخچه این توسعه، به بخش اشتراکگذاری زمانی از پروژه MAC به یونیکس مراجعه کنید.) اشتراکگذاری زمانی به افراد زیادی اجازه میدهد تا با یک کامپیوتر به طور همزمان تعامل داشته باشند و هر کدام بخش کوچکی از زمان CPU را دریافت کنند. اگر CPU به اندازه کافی سریع باشد، به نظر می رسد که به هر کاربر اختصاص داده شده است، به خصوص که یک کامپیوتر می تواند عملکردهای زیادی را در حالی که منتظر است هر کاربر تایپ آخرین دستورات را تمام کند، انجام دهد.
سیستمهای عامل چندکاربره از تکنیکی استفاده میکنند که به عنوان چند پردازش یا چندوظیفه (مانند اکثر سیستمهای تک کاربره امروزی) شناخته میشود، که در آن حتی یک برنامه واحد ممکن است شامل بسیاری از فعالیتهای محاسباتی مجزا به نام فرآیندها باشد. سیستم باید فرآیندهای فعال و در صف را پیگیری کند، زمانی که هر فرآیند باید به حافظه ثانویه برای بازیابی و ذخیره کد و داده های خود و تخصیص منابع دیگر مانند دستگاه های جانبی دسترسی داشته باشد.
از آنجایی که حافظه اصلی بسیار محدود بود، سیستم عامل های اولیه باید تا حد امکان کوچک باشند تا جایی برای برنامه های دیگر باقی بماند. برای غلبه بر برخی از این محدودیت ها، سیستم عامل ها از حافظه مجازی استفاده می کنند، یکی از تکنیک های محاسباتی بسیاری که در اواخر دهه 1950 به سرپرستی تام کیلبرن در دانشگاه منچستر انگلستان توسعه یافت. حافظه مجازی به هر فرآیند یک فضای آدرس بزرگ (حافظه ای که ممکن است استفاده کند) می دهد که اغلب بسیار بزرگتر از آموزش کامپیوتر حافظه اصلی واقعی است. این فضای آدرس در حافظه ثانویه (مانند نوار یا دیسک) قرار دارد، که در صورت نیاز، بخشهایی از آن در حافظه اصلی کپی میشوند، در صورت لزوم بهروزرسانی میشوند و زمانی که فرآیندی دیگر فعال نیست، برگردانده میشود. با این حال، حتی با حافظه مجازی، برخی از "هسته" سیستم عامل باید در حافظه اصلی باقی بماند. هسته های اولیه یونیکس ده ها کیلوبایت را اشغال می کردند. امروزه آنها بیش از یک مگابایت را اشغال می کنند و سیستم عامل های رایانه شخصی قابل مقایسه هستند، عمدتاً به دلیل کاهش هزینه حافظه اصلی.
سیستمهای عامل باید جداول حافظه مجازی را حفظ کنند تا مکان آدرس هر فرآیند را ردیابی کنند و CPUهای مدرن برای کارآمدتر کردن این رجیسترها، رجیسترهای خاصی را ارائه میدهند. در واقع، بیشتر یک سیستم عامل از جداول تشکیل شده است: جداول فرآیندها، فایل ها و مکان آنها (دایرکتوری ها)، منابع استفاده شده توسط هر فرآیند و غیره. همچنین جداولی از حسابهای کاربری و رمزهای عبور وجود دارد که به کنترل دسترسی به فایلهای کاربر و محافظت از آنها در computer education برابر تداخل تصادفی یا مخرب کمک میکند.