بازدید: 406
 

ترجمه چند برنامگی Multy-programing

ترجمه

عنوان موضوع فارسی::چند برنامگی

عنوان موضوع انگلیسی::Multy-programing
حجم فایل :: ۱٫۱۱۰ کیلو بایت
دسته بندی:: رشته کامپیوتر
فرمت صفحات فارسی : Word
فرمت صفحات انگلیسی :: pdf و Word
تعداد صفحات فارسی ::۱۷
تعداد صفحات انگلیسی ::۱۶

قیمت : ۷۹۰۰ تومان

زمان ارسال همزمان با اتمام پرداخت

بخشی از مقاله به همراه ترجمه فارسی:

In the second project you will design and implement appropriate support for multiprogramming. You will extend the system calls to handle process management and inter-process communication primitives. You will add this to the coded first project. Make sure you correct all the deficiencies in your first project before starting the second project. This solution for project1 will be covered as part of next week’s recitation. Nachos is currently a uni-programming environment. We will have to alter Nachos so that each process is maintained in its own system thread. We will have to take care of memory allocation and deallocation. We will also consider all the data and synchronization dependencies between threads. You will first design the solution before coding. Here are the details: 1. Alter your general exceptions (non-system call exceptions) to finish the thread instead of halting the system. This will be important, as a run time exception should not cause the operating system to shut down. You will most likely have to revisit this code several times before your project is complete. There are several synchronization issues you will have to handle during thread exit. 2. Implement multiprogramming. The code we have given you is restricted to running one user program at a time. You will need to make some changes to addrspace.h, and addrspace.cc in order to convert the system from uniprogramming to multiprogramming. You will need to: a. Come up with a way of allocating physical memory frames so that multiple programs can be loaded into memory at once. b. Provide a way of copying data to/from the kernel from/to the user’s virtual address space. c. Properly handling freeing address space when a user program finishes. d. It is very important to alter the user program loader algorithm such that it handles frames of information. Currently, memory space allocation assumes that a process is loaded into a contiguous section of memory. Once multiprogramming is active, memory will no longer appear contiguous in nature. If you do not correct the routine, it is most likely that loading another user program will corrupt the operating system. 3. Implement the SpaceID Exec(char *name) system call. Exec starts a new user program specified in the parameter “name”, running within a new system thread. You will need to examine the “StartProcess” function in progtest.cc in order to figure out how to set up user space inside a system thread. Exec should return –۱ on failure, else it should return the “Process SpaceID” of the user level program it just created. (Note: SpaceIDs can be kept track of in a similar manner to OpenFileIDs of your project 1, except that you will want to keep track of them outside the thread.)

مقدمه ای به سیستم های عامل
در پروژه بعدی شما پشتیبانی مناسب برای چند برنامه نویسی را طراحی و اجرا خواهید کرد. شما فرمان های سیستم را طوری توسعه خواهید داد که اصول ارتباط درون فرایندی و مدیریت فرایند را انجام دهد. شما این را به پروژه اول دارای کد می افزایید. اطمینان حاصل که قبل از شروع پروژه دوم تمام نواقص در پروژه اول را اصلاح کرده اید. این راه حل برای پروژه یک به عنوان بخشی از جلسه هفته بعد مورد بررسی قرار خواهد گرفت.
ناکوس در حال حاضر یک محیط تک برنامه نویسی است. ما مجبوریم ناکوس را تغییر  دهیم به طوری که هر فرایند در  مسیر سیستم خود حفظ شوند. ما باید تخصیص حافظه و واپس گیری آن توجه داشته باشیم. هم چنین تمام داده ها و وابستگی های همزمان سازی بین رشته ها را مد نظر قرار می دهیم. شما ابتدا قبل از کد گذاری راه حل را طراحی می‌کنید جزئیات در زیر آورد است:
۱- استثنائات کلی (استثنائات تماس غیر سیستمی) برای به اتمام رساندن رشته به جای متوقف کردن سیستم را تغییر دهید. این کار مهم خواهد بود زیرا یک استثنای زمان اجرا نباید باعث شود که سیستم عامل خاموش شود. قبل از تکمیل پروژه احتمالاً‌مجبور خواهید بود که چندین بار به این کد سر بزنید. چند موضوع مربوط به همزمان سازی وجود دارد که باید در طی خروج از رشته به آن ها بپردازید.
۲- چند برنامه نویسی را اجرا کنید. کدی که به شما داده ایم محدود به اجرای یک برنامه کاربرد در هر بار می باشد. برای تغییر سیستم از تک برنامه نویسی به چند برنامه نویسی باید چند تغییر در addrspace.h و addrspace.cc انجام دهید. باید کارهای زیر را انجام دهید: الف) به شیوه ای برای تخصیص فریم های حافظه فیزیکی برسید به طوری که چندین برنامه را بتوان به یکباره در حافظه بارگذاری کرد.
ب) شیوه ای برای کپی کردن داده ها به هسته یا از هسته و از فضای آدرس مجازی کاربر یا به آن فراهم کنید.
ج) وقتی یک برنامه کاربر پایان می‌یابد به طور مناسب‌آزادسازی فضای آدرس انجام شود.
د) تغییر الگوریتم بارگذار برنامه کاربر به طوری که فریم های اطلاعاتی را جابجا کند بسیار مهم است. در حال حاضر تخصیص فضای حافظه با این فرض است که یک فرایند در یک بخش مجاور حافظه بارگذاری شده است. وقتی چند برنامه نویسی فعال شد، حافظه دیگر ماهیتاً مجاور محسوب نمی شود اگر برنامه را اصلاح نکنید احتمال دارد که بارگذاری دیگر برنامه کاربر سیستم عامل را خراب کند.
۳- فرمان سیستم space id exec (char*name) را اجرا کنید. Exec یک برنامه کاربر جدید مشخص شده در نام پارامتر، اجرا شده در درون یک رشته سیستم جدید را شروع می کند. شما باید کارکرد start process در progtest.cc را بررسی کنید تا دریابید که چگونه فضای کاربر در درون یک رشته سیستم را ایجاد کنید. Exec باید در هنگام خطا ۱- را برگرداند در غیر این صورت باید “process space id” برنامه سطح کاربری که ایجاد کرده است را برگرداند (نکته: space id ها می تواند به شیوه ای مشابه با open file id  های پروژه ۱ شما پیگیری شود با این استثنا که ممکن است بخواهید در خارج از رشته ان ها را دنبال کنید).

(خرید با تمامی کارت های عضو شتاب : بلافاصله بعد از خرید می توانید مقاله را دانلود کنید همچنین فایل دانلود به ایمیل ارسال می شود)

برای خرید و دانلود آنلاین روی بنر زیر کلیک کنید.

7900 تومان – ok

 

مطالب مرتبط

ترجمه رشته کامپیوتر ترجمه حسابداری ترجمه ترجمه ترجمه