تالار گفتمان مانشت

نسخه‌ی کامل: سیستم عامل در یک سیستم تک پردازنده ای
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
بچه ها میشه کمکم کنین؟؟؟
چرا سیستم عامل در یک سیستم تک پردازنه ای یک برنامه همیشه در حال اجرا هست؟؟
آیا چند پردازنده ای همون چند هسته ای هست؟؟
سیستم عامل همیشه یه برنامه در حال اجراست ربطی به تک پردازنده ای بودن یا نبودن یک سیستم نداره.حالا چرا همیشه در حال اجراس؟ واسه اینکه یکی از وظایفش مدیریت منابع و یکی دیگه شم ارتباط کاربر با سخت افزاره به همین دلیل هم همیشه در حال اجراس.
خیر ٬ چند پردازنده ای یعنی چند پردازنده مجزا چند هسته ای یعنی یک پردازنده با چند هسته.

Sent from my cell
سلام دوست من
این سوالات خیلی مفهوم مهمی پشتشه
ببین تو سیستمای تک پردازنده سیستم عامل همیشه یک برنامه در حال اجرا نیست در واقع
میدونین واقعیتش اینه که سیستم عامل یک برنامه همیشه اماده به اجراس
میدونین چرا؟
چون پردازنده که یکی بیشتر نداریم پس وقتی پردازنده داره برنامه کاربر رو اجرا میکنه که دیگه سیستم عامل نمیتونه اجرا بشه
ینی ب واقع سیستم عامل همیشه اماده اجراس
اگه بین run و execute تفوت قائل بشیم اونوقت میشه گفت سیستم os is always run programinng
ینی ی جوری داریم میگیم execute ینی پردازنده رو گرفته و ولی run لزوما پردازنده دستش نیست
واضحه یا نه؟
ببین سیستم عامل نقش مدیریتی و نظارتی داره که یا تاثیران خودش رو گذاشته بعد پردازنده رو ول کرده و داده به برنامه کاربر و یا بعد و در حین اجرا برنامه منتظر که بیاد و تاثیرات خودشو بذاره،



سولشون منطقیه منظورشون اینه اگه تک پردازندس پس چطور همیشه در حال اجراس!
ینی چطوری پس برنامه های کاربر رو اجرا میکنه وقتی پردازنده همش داره سیستم عامل رو اجرا میکنه
(24 مهر 1393 12:39 ب.ظ)zahra6144 نوشته شده توسط: [ -> ]سلام دوست من
این سوالات خیلی مفهوم مهمی پشتشه
ببین تو سیستمای تک پردازنده سیستم عامل همیشه یک برنامه در حال اجرا نیست در واقع
میدونین واقعیتش اینه که سیستم عامل یک برنامه همیشه اماده به اجراس
میدونین چرا؟
چون پردازنده که یکی بیشتر نداریم پس وقتی پردازنده داره برنامه کاربر رو اجرا میکنه که دیگه سیستم عامل نمیتونه اجرا بشه
ینی ب واقع سیستم عامل همیشه اماده اجراس
اگه بین run و execute تفوت قائل بشیم اونوقت میشه گفت سیستم os is always run programinng
ینی ی جوری داریم میگیم execute ینی پردازنده رو گرفته و ولی run لزوما پردازنده دستش نیست
واضحه یا نه؟
ببین سیستم عامل نقش مدیریتی و نظارتی داره که یا تاثیران خودش رو گذاشته بعد پردازنده رو ول کرده و داده به برنامه کاربر و یا بعد و در حین اجرا برنامه منتظر که بیاد و تاثیرات خودشو بذاره،



سولشون منطقیه منظورشون اینه اگه تک پردازندس پس چطور همیشه در حال اجراس!
ینی چطوری پس برنامه های کاربر رو اجرا میکنه وقتی پردازنده همش داره سیستم عامل رو اجرا میکنه
یه کم متوجه شدمConfused
میشه یه کم واضح تر توضیح بدین
ممنونم
(24 مهر 1393 12:39 ب.ظ)zahra6144 نوشته شده توسط: [ -> ]سلام دوست من
این سوالات خیلی مفهوم مهمی پشتشه
ببین تو سیستمای تک پردازنده سیستم عامل همیشه یک برنامه در حال اجرا نیست در واقع
میدونین واقعیتش اینه که سیستم عامل یک برنامه همیشه اماده به اجراس
میدونین چرا؟
چون پردازنده که یکی بیشتر نداریم پس وقتی پردازنده داره برنامه کاربر رو اجرا میکنه که دیگه سیستم عامل نمیتونه اجرا بشه
ینی ب واقع سیستم عامل همیشه اماده اجراس
اگه بین run و execute تفوت قائل بشیم اونوقت میشه گفت سیستم os is always run programinng
ینی ی جوری داریم میگیم execute ینی پردازنده رو گرفته و ولی run لزوما پردازنده دستش نیست
واضحه یا نه؟
ببین سیستم عامل نقش مدیریتی و نظارتی داره که یا تاثیران خودش رو گذاشته بعد پردازنده رو ول کرده و داده به برنامه کاربر و یا بعد و در حین اجرا برنامه منتظر که بیاد و تاثیرات خودشو بذاره،



سولشون منطقیه منظورشون اینه اگه تک پردازندس پس چطور همیشه در حال اجراس!
ینی چطوری پس برنامه های کاربر رو اجرا میکنه وقتی پردازنده همش داره سیستم عامل رو اجرا میکنه

فک نکنم اون بخش از سیستم عامل که در فضای هسته بارگذاری میشه و در مد هسته اجرا میشه از حالت اجرا به حالت آماده بره.
هر فرایند برای اجرا احتیاج به منابع داره اگه بخواد سیستم عامل از حالت اجرا بیرون بیاد تکلیف مدیریت این منابع چی میشه؟

Sent from my cell
(24 مهر 1393 01:20 ب.ظ)explorer نوشته شده توسط: [ -> ]
(24 مهر 1393 12:39 ب.ظ)zahra6144 نوشته شده توسط: [ -> ]سلام دوست من
این سوالات خیلی مفهوم مهمی پشتشه
ببین تو سیستمای تک پردازنده سیستم عامل همیشه یک برنامه در حال اجرا نیست در واقع
میدونین واقعیتش اینه که سیستم عامل یک برنامه همیشه اماده به اجراس
میدونین چرا؟
چون پردازنده که یکی بیشتر نداریم پس وقتی پردازنده داره برنامه کاربر رو اجرا میکنه که دیگه سیستم عامل نمیتونه اجرا بشه
ینی ب واقع سیستم عامل همیشه اماده اجراس
اگه بین run و execute تفوت قائل بشیم اونوقت میشه گفت سیستم os is always run programinng
ینی ی جوری داریم میگیم execute ینی پردازنده رو گرفته و ولی run لزوما پردازنده دستش نیست
واضحه یا نه؟
ببین سیستم عامل نقش مدیریتی و نظارتی داره که یا تاثیران خودش رو گذاشته بعد پردازنده رو ول کرده و داده به برنامه کاربر و یا بعد و در حین اجرا برنامه منتظر که بیاد و تاثیرات خودشو بذاره،



سولشون منطقیه منظورشون اینه اگه تک پردازندس پس چطور همیشه در حال اجراس!
ینی چطوری پس برنامه های کاربر رو اجرا میکنه وقتی پردازنده همش داره سیستم عامل رو اجرا میکنه

فک نکنم اون بخش از سیستم عامل که در فضای هسته بارگذاری میشه و در مد هسته اجرا میشه از حالت اجرا به حالت آماده بره.
هر فرایند برای اجرا احتیاج به منابع داره اگه بخواد سیستم عامل از حالت اجرا بیرون بیاد تکلیف مدیریت این منابع چی میشه؟

Sent from my cell

پردازنده چه ربطی داره به بقیه منابع؟!!!!!
اکی،اما وقتی برنامه کاربر داره قسمت cpu bound از برنامه رو اجرا میکنه که فقط پردازنده میخاد پس cpu باید سیستم عامل رو بذاره کنار و برنام ه رو اجرا کنه
ینی ببین فرض کن برنامه درحال اجرا کاربر یه دفعه میخواد تقسیم به صفر کنه پس خود سخت افزار برنامه رو کات میکنه و سریع سیستم عامل میاد جمش میکنه خراب کاری برنامه رو ،ینی اونموقع اصلا سیستم عامل نیست
یه اصطلاحی است به نام demon (خدای یونان باستان) ،میگن os دیمن است ینی اون پشت پردس صداش که میزنه زود میاد کمک میکنه
(24 مهر 1393 01:39 ب.ظ)zahra6144 نوشته شده توسط: [ -> ]،ینی اونموقع اصلا سیستم عامل نیست

یه سوال؟
اون موقع که سیستم عامل نیست ، چه چیزی وظیفه مدیریت،حفاظت،تخصیص،حسابداری و ... منابع رو به عهده داره؟؟
(24 مهر 1393 01:57 ب.ظ)explorer نوشته شده توسط: [ -> ]
(24 مهر 1393 01:39 ب.ظ)zahra6144 نوشته شده توسط: [ -> ]،ینی اونموقع اصلا سیستم عامل نیست


یه سوال؟
اون موقع که سیستم عامل نیست ، چه چیزی وظیفه مدیریت،حفاظت،تخصیص،حسابداری و ... منابع رو به عهده داره؟؟

گفتم دیگه سیستم عامل یا قبلش تاثیر خودش رو گذاشته یا بعدش میاد میذاره
وظیفه مدیریت رو خود سیستم عامل اما مثلا حسابداری و ... خوب بهر حال پردازنده رجیستر داره و هر فرایند بهر حال pcb داره و ....
خوب اینا رو سیستم عامل قبل یا بعد از اجرا میاد پردازش و مدیریت میکنه.
(24 مهر 1393 02:02 ب.ظ)zahra6144 نوشته شده توسط: [ -> ]گفتم دیگه سیستم عامل یا قبلش تاثیر خودش رو گذاشته یا بعدش میاد میذاره
وظیفه مدیریت رو خود سیستم عامل اما مثلا حسابداری و ... خوب بهر حال پردازنده رجیستر داره و هر فرایند بهر حال pcb داره و ....
خوب اینا رو سیستم عامل قبل یا بعد از اجرا میاد پردازش و مدیریت میکنه.

شما در نظر بگیر اون موقع که به قول شما سیستم عامل نسیت یکی از فرایند ها بیاد و به منابع یکی دیگه از فرایندها دسترسی غیر مجاز داشته باشه یا مثلا دو تا فرایند در یک لحظه برای در اختیار گرفتن یک منع اقدام کنن.کدوم فرایند منبع رو در اختیار میگیره؟؟
اینا صبر میکنن تا سیستم عامل پیداش بشه جواب بده؟؟؟
میشه جواب سوالمو توی 2 تا خط پاسخ بدین Confused
(24 مهر 1393 02:11 ب.ظ)explorer نوشته شده توسط: [ -> ]
(24 مهر 1393 02:02 ب.ظ)zahra6144 نوشته شده توسط: [ -> ]گفتم دیگه سیستم عامل یا قبلش تاثیر خودش رو گذاشته یا بعدش میاد میذاره
وظیفه مدیریت رو خود سیستم عامل اما مثلا حسابداری و ... خوب بهر حال پردازنده رجیستر داره و هر فرایند بهر حال pcb داره و ....
خوب اینا رو سیستم عامل قبل یا بعد از اجرا میاد پردازش و مدیریت میکنه.

شما در نظر بگیر اون موقع که به قول شما سیستم عامل نسیت یکی از فرایند ها بیاد و به منابع یکی دیگه از فرایندها دسترسی غیر مجاز داشته باشه یا مثلا دو تا فرایند در یک لحظه برای در اختیار گرفتن یک منع اقدام کنن.کدوم فرایند منبع رو در اختیار میگیره؟؟
اینا صبر میکنن تا سیستم عامل پیداش بشه جواب بده؟؟؟

عزیز دلم مگر نه اینکه میگیم همه چی با interupt کار میکنه
پس سیستم عامل دستور جاری رو تموم می کنه بعد مبره isr مربوط به وقفه رو انجام میده
اره،سیستم عامل اون موقع نیست اما مگه ما ثبات های رجیستر و base نداریم که حد و مرز فرایند توش لود میشه خوب این دیگه میره تو وظایق سخت افزار که اگه دید دسترسی غیر مجازه یه وقفه میده سیستم عامل شروع میکنه به اجرا و isr مربوطشو اجرا میکنه
یا در مورد دسترسی همزمان به منابع هم همینطور
اگر کل سیستم عامل رو درک کنین این مساله براتون قابل درک میشه
مساله ای که اینجا کمتر بهش اشاره شد، این هست که درایورهایی که سیستم عامل در اختیار برنامه قرار میده رو اصلا در نظر نگرفتید. به عنوان مثال شما یک برنامه ای دارید که در یک حلقه ی 100 تایی میاد و مقدار شمارنده ی حلقه را Print می کنه. عملا نویسنده ی برنامه مشخص نکرده که این Print دقیقا قراره چی کار کنه، و این سیستم عامل هست که دستور Print رو اجرا میکنه.

در مورد منابع دیگه هم همینطور، یعنی اگه ما به شبکه، پرینتر، و یا خیلی چیزهای دیگه نیاز داریم خودمون مستقیما به اونها دسترسی نداریم و در واقع از سیستم عامل توسط درایور ها و API ها (DLLها) یی که در اختیار ما قرار میده درخواست میکنیم که فلان چیز را در اختیار برنامه قرار بده و برنامه از اون (توسط دستور CALL در سطح اسمبلی یا intN که N شماره وقفه است) استفاده کنه.

مساله ی دیگه ای که میشه در اینجا بهش اشاره کرد مساله ی زمانبندی وظایف هست. اگر زمانبندی وظایف به صورت RR باشه، سیستم عامل قسمتی از کد T1 را اجرا کرده، سپس به خودش برمیگرده، Context Switching انجام میده و میره سراغ T2 و اونو اجرا میکنه و الی آخر. اگر از الگوریتم های FIFO استفاده کنه و الگوریتم قبضه ای نباشه، عملا در پایان برنامه (توسط دستور RET در سطح اسمبلی) به سیستم عامل برمیگردیم و همونطور که در ابتدا توضیح دادم اگر به منابع نیاز داشته باشیم در طول برنامه اونها رو سیستم عامل در اختیار ما قرار میده و این کار توسط وقفه های نرم افزاری انجام میشه.

در مورد جنبه های مدیریتی هم اکثر استثنا ها (Exceptionها) به صورت سخت افزاری قابل تشخیص هستند. همچنین سطح دسترسی کد اجرایی هم به صورت سخت افزاری هست. (عدد 0 برای پایینترین(بیشترین) اولویت (Kernel) و سطح 3 بالاترین(کمترین) اولویت (User)) ویندوز تنها از این دو سطح استفاده میکنه. ولی سیستم عامل هایی هستند که از سطوح دیگر هم استفاده کنند. وقتی Exception رخ میده، به صورت سخت افزاری مدیریت برنامه در اختیار سیستم عامل قرار میگیره و در واقع سیستم عامل عمل Exception Handling رو انجام میده. اگه در برخی موارد Blue Screen دیده میشه، این صفحه رو هم خود سیستم عامل ویندوز درست کرده و نمایش میده. در این جور مواقع یه استثنای خیلی خطرناک (از نظر امنیتی نه از نظر سخت افزاری، چون نرم افزار به هیچ وجه فعلا نمیتونه به سخت افزار آسیب بزنه) رخ میده که بنا به تشخیص ویندوز بهترین کار خاتمه دادن به تمامی فرایند ها و متوقف کردن کل سیستم هست.

امیدوارم که موفق و پیروز باشید و اگر باز هم سوالی بود در خدمت هستیم.
با سلام و تشکر از توضیحات خوب دوستان مخصوصاً zahra6144 که با بیان خاص و البته حوصله زیاد به بحث پرداختن.

فقط یک نکته. مدهای کاری cpu؛ که به طور واضح بهش اشاره نشده بود.

تقریباً میشه گفت سیستم عامل هم یک (مجموعه) پروسس هست مثل بقیه، ولی در زمان لود شدن سیستم و در مد هسته شروع به کار می کنه و به دلایل مختلف ممنکه در بین اجرای فرایندهایی که تحت مدیریتشن به اجرا در بیاد (یعنی به کمک وقفه ها و به طور سخت افزاری این امکان برای OS فراهم میشه که مد کاری رو تغییر بده و یا یکی از فرایندهاشو به حالت Running ببره). معمولاً همه فرایندهای کاربر و حتی برخی از عملکردهای OS در مد کاربر کار می کنند. یعنی هسته اونها رو در مد کاربر به اجرا در میاره و اونها هم اجازه‌ی تغییر رجیستر مد کاری رو ندارند؛ در مد کاربر فقط انجام کارهایی مجاز شده که امکان به مخاطره انداختن عملکرد سیستم از فرایندهای کاربر گرفته بشه.

دید خوبی از این مسائل پیدا کردن نیاز به مطالعه متن درسی داره و ما هرچی هم اینجا بنویسیم، بر فرض هم که دقیق و درست بگیم، نمی تونیم جای داشتن یک دید کلی و یک سری سناریوی جامع از سیستم عامل رو اینجا پر کنیم؛ طوری که جای شک و شبهه نماند. من خودم دیدم رو بیشتر از کتاب Stallings بدست آوردم که لااقل این جور مسائل رو خوب شکافته.
با سلام
مشکلاتی که اغلب بچه ها تو مفهکم سیستم عامل دارن معمولا برمیگرده به کتاب مزخرف مقسمی یا پوران.سیستم عامل پارسه واقعا هیچ چیزیو باقی نذاشته.
سیستم عامل همون جور ک زهرا خانم گفتن یک دیمنه.پشت پردس و تا وقتی سخت افزار(معمولا سی پی یو) نخاد وارد کار نمیشه.سیستم عامل فقط در صورتی اجرا میشه ک وقفه ای بیاد.اگه این وقفه تایمر باشه سیستم عامل میره با استفاده از الگوریتم های زمانبندی کار بعدی رو انتخاب میکنه.یعنی بطور کلی سیستم عامل فقط تو مد هسته اجرا میشه و البته هم ک وقفه ها انواع متفاوتی دارن.این سوال شما دقیقا فصل 1 و 2 کتاب پارسه است ک خیلی خوب بهش پرداخته.
ببخشید اگه زیاد شد.موفق باشید...
لینک مرجع