شما وارد حساب خود نشده و یا ثبت نام نکرده اید. لطفا وارد شوید یا ثبت نام کنید تا بتوانید از تمامی امکانات انجمن استفاده کنید.
اعلانات

- توجه: بخش لینک سازی و بخش کاملا آزاد ایجاد شد تا کاربران برای لینک سازی مطالب و موضوعات مرتبط با سایت خودشون رو با بقیه و موتورهای جستجو به اشتراک بگذارند توجه کنید اگر کاربری روزانه بالای 5 مطلب و لینک ارسال نمایید اکانت کاربری مسدود خواهد شد.

- توجه: دوستان لطفا سوالات خود را از طریق شماره تماس موجود در سایت اعلام نکنید با پیامک یا تلگرام و... این شماره برای تماس های ضروری مشتریان فروشگاه قرار گرفته است.

- قابل توجه کاربران: سوالات خود را از طریق پیام خصوصی ارسال ننمایید و فقط از طریق انجمن پیگیر باشید به سوالاتی که از طریق پیام خصوصی ارسال شود به هیچ عنوان جواب داده نخواهد شد.


تبلیغات
ads
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Service Control Manager چیست ؟
#1
Service Control Manager (مدیر کنترل سرویس های ویندوزی) یا SCM یک پراسس سیستم خاص است که از زمان ویندوز NT نیز وجود داشته است.
SCM در تعامل با آغاز و یا متوقف کردن سرویس ها است.محل قرارگیری SCM در سیستم عامل ویندوز در مسیر SystemRoot%\System32\services.exe% میباشد.سرویس های ویندوز 
از طریق API ها با SCM ارتباط برقرار میکنند و همان API بطور داخلی با کنسول مدیریتی MMC snap-in در تعامل است. 

پیاده سازی :
در زمان استارت آپ سیستم عامل ویندوز برنامه services.exe توسط پراسسی به نام wininit اجرا میشود.تابع اصلی این فرآیند ()SvcCtrlMain است که تمام سرویس هایی که برای استارت شدن
 در زمان بوت سیستم عامل ویندوز پیکربندی شده اند را به حالت اجرایی در می آورد.اولین دیتابیس داخلی نصب شبکه از سرویس های نصب شده توسط دو کلید رجیستری مهم زیر آغاز سازی میشود : 
HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\List :
این کلید رجیستری شامل نام ها و ترتیب service groups یا گروه های سرویس میباشد.هر کلید رجیستری شامل یک Group Value اختیاری است که ترتیب آغاز سازی کار سرویس
 مورد نظر و یا درایور سخت افزارها را با توجه به service group های دیگر کنترل میکند. 
HKEYLOCALMACHINE\SYSTEM\CurrentControlSet\Services :
که شامل دیتابیس واقعی از سرویس ها و درایور های سخت افزار ها است که در دیتابیس داخلی SCM خوانده میشود.SCM هر Group Value ی سرویس ها را میخواند و همچنین وابستگی های
 هر سرویس را با توجه به کلید های رجیستری DependOnGroup و DependOnService بارگذاری میکند. 

در گام بعد تابع اصلی SCM یا همان ()SvcCtrlMain تابع ()ScGetBootAndSystemDriverState فراخوانی میکند تا زمانیکه در خدمات شبکه حین بوت شدن سیستم عامل درایور های سخت افزاری به درستی باگذاری شوند
 را چک کند.طبیعی است که درایور هایی که به درستی بارکذاری نشده اند در لیستی به نام ScFailedDrivers قرار میگیرند.سپس رابط \Pipe\Ntsvc\ به عنوان رابط سرویس Remote Procedure Call یا RPC که
 با سرویس های خاصی در ویندوز در تعامل است ایجاد میشود.بعد از آن تابع ()ScAutoStartServices را فراخوانی میکند.زمانیکه این تابع فراخوانی میشود تمام سرویس هایی که در زمان بوت شدن سیستم عامل ویندوز
 برای بارگذاری شدن به طور خودکار علامت گذاری شده اند با توجه بر load-order dependencies بارگذاری میشوند.به بیان واضح تر اگر یک وابستگی حلقوی در این شرایط به وجود بیاید خطایی رخ میدهد و سرویس وابسته
پ به یک سرویس دیگر که در یک گروه Load order هستند نادیده گرفته میشوند.برای سرویس های در وضعیت delayed auto-start گروه بندی سرویس ها نصب شبکه تحت تاثیر قرار نمیگیرند و آنها در یک مرحله بعد از یک startup دیگر بارگذاری میشوند. 

برای هر سرویسی که میخواهد اجرا شود ، SCM تابع ()ScStartService را فراخوانی میکند که این تابع نام فایلی که Service Process در آن است را چک میکند آن هم با اطمینان حاصل کردن از اینکه اکانت اختصاص
 یافته به آن سرویس همان اکانتی است که در Service Process در حال اجراست. 
هر سرویسی که با یک اکانت(Service Account) به فعالیت نمیپردازد توسط تابع LSASS که مخفف کلمه های Local Security Authority Subsystem Service لاگین شده به فعالیت میپردازد.برای هر کدام از
 پراسس های LSASS که شبیه به پسورد های خالی هستند بوسیله SCP و توسط API ای به نام ()LsaStorePrivateData در مسیر \HKLM\SECURITY\Policy\Secrets ذخیره میشوند،البته زمانیکه سرویسی به درستی پیکربندی شده باشد. 

سپس تابع ()ScLogonAndStartImage هر سرویسی که یک service process است و در حال اجرا نیست را فراخوانی میکند.service process ها بوسیله API ای به نام ()CreateProcessAsUser در وضعیت Suspended ایجاد میشوند.
قبل از اینکه فراِیند اجرایی service process ادامه یابد کانال ارتباطی به نام Pipe\Net\NtControlPipeX\ (که در اینجا X عددی است که با تکرار هر خدمات شبکه سرویس یکی به مقدارش افزوده میشود است) بین SCM و service process ایجاد میشود
.service process با فراخوانی تابع ()StartServiceCtrlDispatcher به کانال ارتباطی(Pipe) متصل میشود که بعد از آن SCM دستور "start" را به سرویس ارسال میکند. 

Delayed auto-start services چگونه اجرا میشوند ؟
سرویس های Delayed auto-start از زمان ویندوز ویستا اضافه شدند.هدف از ارئه این قابلیت حل مشکل طولانی بودن زمان startup ویندوز بود که در این حین سرویس های حیاتی ویندوز که نمیتوانستند با تاخیر(delay) اجرا شوند
 سرعت اجرایشان افزایش یافت.در اصل ، متد auto-start برای آغاز کار سرویس ها برای سرویس های حساس و حیاتی ویندوز طراحی شده است که آن هم بر اساس سایر اپلیکشین ها و سرویس های وابسته عمل میکند. 
SCM سرویس های Delayed را با فراخوانی تابع ()ScInitDelayStart اجرایی میکند که آن هم بعد از زمانی است نصب شبکه که تمام سرویس های auto-start را هندل کرد.تابع مذکور با تاخیری حدود 120 ثانیه(به طور پیشفرض) 
متناظر با worker-thread ها کار میکند.این به این خاطر است که دگیر بیش از آن که تابع بعد از مدت زمان تاخیر معینی شروع به کار کند تفاوتی بین سرویس های non-delayed و delayed پیدا نمیشود. 
در مرحله بعدی BIOS بر اساس تنظیماتی که در آن انجام شده است سخت افزار مورد نظر برای یافتن بوت سکتور را انتخاب کرده و ادامه فرآیند بوت سیستم را جلو میبرد.در اینجا فرض میکنیم که هارد دیسک 
را برای اولین بوت در BIOS در نظر گرفته اند.خب بریم ادامه ماجرا .. بوت سکتور MBR را که در اولین بخش از هارد دیسک که در Active Partition قرار دارد پیدا کرده و آنرا در حافظه RAM بارگزاری میکند و MBR در
 نهایت Volume Boot Code را اجرا کرده و در نهایت بوت لودر یا Boot Manager را در حافظه RAM بارگزاری میکند.محض استحضار اینکه در نسخه های جدید ویندوز از بوت لودر BOOTMGR و در سیستم عامل لینوکس از بوت لودر GRUB v2 استفاده میکنند. 
تذکر : حال لزومی ندارد که بوت سکتور حتما MBR باشد زیرا میتوان از GPT هم استفاده کرد.دقت کنید که لازمه استفاده از GPT این است که از UEFI استفاده کنیم نه BIOS. 
بعد از اینکه بوت لودر در حافظه RAM بارگذاری و اجرا شد بوت لودر فایل هسته یا کرنل سیستم عامل نصب شبکه را از محل ذخیره شده مورد نظر پیدا کرده و در حافظه رم بارگذاری و اجرا میکند بعد از اینکه 
کرنل سیستم عامل در رم اجرا شد کنترل سیستم به دست سیستم عامل سپرده میشود و سیستم عامل درایور های مورد نیاز و سرویس هایش را با توجه به ساختار اختصاصی خودش در حافظه رم بارگذاری و اجرا میکند.
چنامچه همه ی این کار ها به خوبی پیش رفت شما میتوانید صفحه لاگین به سیستم عامل را مشاهده کنید و عملیات لاگین را انجام دهید. 

Soft (Warm) Booting در مقایسه با Hard (Cold) Booting :
شما شاید در مورد hardcold booting و softwarm booting چیز هایی شنیده باشید و پیش خود فکر کنید که آنها به چه معنی هستند؟ 
Cold Boot زمانی اتفاق می افتد که کامپیوتر شما خاموش یا بعبارتی shutdown شده باشد و به بیان واضح تر هیچ جریان برقی در قطعات کامپیوتر جاری نباشد.در Hard boot هم که با Cold boot هیچ تفاوتی ندارد 
همانطور پیشتر صحبت کردیم فرآیند POST در ابتدا انجام میشود.شاید پیش خود فکر کنید که در زمان ریستارت کردن کامپیوتر هم Cold Boot انجام میشود اما پاسخ ما خیر است زیرا بعد از اینکه سیستم را ریستارت کردید 
دیگر فرآیند POST انجام نمیشود و ممکن است سایر پروسس ها و برنامه ها نیز که در با خاموش کردن کامپیوتر از بین خدمات شبکه میرفتند یا بعبارتی از حافظه رم سیستم پاک میشدند از بین نمیروند.توجه کنید که در انواع سیستم عامل ها 
این موضوع فرق میکند.در اصلاح به فرآیند بوت شدن سیستم عامل بعد از ریستارت Soft Booting نیز میگویند.پس نتیجه میگیریم که بوت معمولی سیستم عامل همان Cold Booting است و بوت بعد از ریستارت سیستم همان Soft/Warm Booting میباشد. 
در این مقاله کوتاه ما فرآیند بوت شدن سیستم را فارغ از هر سیستم عاملی بررسی کردیم.فرآیند بوت شدن سیستم عامل به خودی خود میتواند بسیار پیچیده تر و با جزئیات ریزتر ی همراه باشد
 که در حوصله این مقاله نبود تا به جزئیات وارد شویم.امیدوارم از خواندن این مقاله لذت و بهره کافی را برده باشید
  پاسخ
تبلیغات
ads


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  ایمپلنت دندان چیست؟قیمت ایمپلنت دندان،کاشت ایمپلنت دندان با لیزر،انواع ایمپلنت zahra-hamedani 0 2 2 ساعت پیش
آخرین ارسال: zahra-hamedani
  نرم افزار حسابداری چیست؟ Mina1397 0 7 ۱۳۹۷-۰۹-۲۰، ۰۱:۱۰ ب.ظ
آخرین ارسال: Mina1397
  تامین مالی جمعی چیست bakhshifatemeh 2 85 ۱۳۹۷-۰۹-۱۸، ۰۱:۵۰ ب.ظ
آخرین ارسال: bakhshifatemeh
  پرینتر سه بعدی FDM چیست؟ ava96 0 23 ۱۳۹۷-۰۸-۲۲، ۰۳:۴۰ ب.ظ
آخرین ارسال: ava96
  کاربرد های نرم افزار crm چیست؟ Mina1397 0 22 ۱۳۹۷-۰۸-۲۰، ۱۱:۳۳ ق.ظ
آخرین ارسال: Mina1397
  انواع تور عروس چیست و برای چه نوع لباسی مناسب هستند mtkzz 0 23 ۱۳۹۷-۰۸-۱۷، ۱۰:۱۳ ق.ظ
آخرین ارسال: mtkzz
  فایروال چیست و نحوه کار کردن آن چگونه است POOYAN97 0 22 ۱۳۹۷-۰۸-۰۹، ۱۲:۵۱ ب.ظ
آخرین ارسال: POOYAN97
  صورت‎های مالی چیست؟ Mina1397 0 32 ۱۳۹۷-۰۷-۲۹، ۰۵:۴۳ ب.ظ
آخرین ارسال: Mina1397
  چاپ یووی چیست؟ samdhprint 0 25 ۱۳۹۷-۰۷-۲۹، ۰۵:۴۰ ب.ظ
آخرین ارسال: samdhprint
  نرم افزار انبار مبتنی بر بارکد چیست؟ Mina1397 0 27 ۱۳۹۷-۰۷-۲۹، ۰۴:۰۸ ب.ظ
آخرین ارسال: Mina1397

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان
تبلیغات
ads