وبلاگ میثم پاسداری هریس

۱ مطلب با کلمه‌ی کلیدی «Performance in Computer» ثبت شده است

  • ۲
  • ۰

معمولا قبل از ورود به هر بحث تخصصی، بهتر است واژگان و اصطلاحات آن بحث را هم تعریف کرد و بعضا یک پیش درآمدی بر پیدایش و گزینش این اصطلاح داشت که این کار را Terminology (درلغتنامه: واژگان، اصطلاحات فنی و..)  می نامند. در این بخش قصد دارم چندتا تعریف از چندین اصطلاح رایج در مهندسی کامپیوتر را بیاورم و سعی ام بر اینست که دانسته های خودم رو با توجه به مستندات و منابع موجود بیاورم. همچنین تلاش خواهم کرد که تعاریف را تا جایی که ممکن است به صورت مختصر و مفید و با جملات سیستمی بنویسم، اصطلاحات نیز بر مبنای رایج بودن آن ها آورده شده اند که در زیر لیست شده اند:

Performance (کارایی)

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

کارایی سیستم

نعریف بالا یک تعریف مختصر سیستمی بود اما در اصل Performance مجموعه تعاریف زیر در یک کلمه است : 

  • زمان پاسخ (Response Time): فاصله زمانی بین ورود process به سیستم تا زمان خروج آن از سیستم.
  • توان عملیاتی (Throughput) : میزان کار انجام شده توسط سیستم در واحدی از زمان.
  • دسترسی پذیری (Availability) : میزان در دسترس بودن سیستم و پاسخگویی به درخواست ها.
  • استفاده از منابع (Resource Utilization) : میزان استفاده سیستم از منابع در اختیارش.
  • پهنای باند (Bandwidth) : میزان داده انتقالی از خط انتقال در واحدی از زمان.
  • و...

به عنوان مثال: Performance سیستم عامل در حالتی که با الگوریتم Round Robin، زمانبندی می شود بیشتر از حالتی است که از الگوریتم FCFS استفاده می شود.


Benchmark (محک)

استاندارد ایست بر پایه یک معیار مشخص (بهترین نمونه از یک محصول)، که به واسطه آن می توان یک نمونه از محصول را از لحاظ کیفیت محک زد. 

به عنوان مثال: EBD، عنوان Benchmark ایست که شرکت مایکروسافت برای سنجش Performance پایگاه داده های رابطه ای گسترش یافته و شی گرا معرفی کرده است.(لینک +)


Trade-off (توازن)

سبک، سنگین کردن بین دو یا چندین رهیافت (Approach) به منظور بدست آوردن یک سری منفعت ها و در مقابل، از دست دادن آن ها.

در واقع Trade-off برقراری یک توازن در برخورد با فرصت ها (opportunities) و تهدید ها(threats) است.

تعاریف فوق را می توان در حالت کلی برای Trade-off در نظر گرفت اما می توان گفت که مهندسی خود نوعی Trade-off یا همان عبارت (gain - overhead) است، یعنی دو دو تا چارتا کردن برای رسیدن به یک نقطه ایده آل  است.

Tradeoff in computer engineering

به عنوان مثال : موارد زیر مثال هایی برای رسیدن به یک نقطه Trade-off می باشند

  • انتخاب میزان کوانتوم زمانی (Time Quantum) در الگوریتم RR برای زمانبندی Process ها
حالت 1 : پایین بودن کوانتوم زمانی موجب افزایش تعداد Context Switch ها می شود، اما در عوض Response Time را کاهش دهد.

حالت 2 : بالا بودن کوانتوم زمانی گرچه تعداد Context Switch ها را کم می کند و به طبع آن سربار را نیز کاهش می دهد اما Response Time را نیز افزایش می دهد و اگر کوانتوم به سمت بی نهایت میل کند، الگوریتم کلا تبدیل به FCFS می شود.

نکته 1 : Context Switch (تعویض متن) خود سربار (Overhead) ای برای سیستم عامل می باشد چون طی آن CPU هیچ عمل مفیدی را انجام نمی دهد.

نکته 2 : پیاده سازی الگویتم RR در عمل، خود می تواند به عنوان یک حالت دیگر بررسی شود.

  • استفاده/عدم استفاده از کلید خارجی(FK) در پایگاه داده 
حالت 1 : ذخیره سازی داده های تکراری یک رابطه در رابطه دیگر و عدم نیاز به کلید خارجی و در نتیجه عدم نیاز به join کردن رابطه ها و در مقابل آن هزینه کردن فضا.

حالت 2 : استفاده از کلید خارجی و کاهش دادن میزان افزونگی در جدول های پایگاه داده و هزینه کردن از Performance در مقابل افزونگی داده ها.

  • این مقاله ( + ) را ببینید.


Overhead (سربار)

تخصیص منابع اضافی به سیستم اعم از حافظه، پهنای باند، زیر ساخت های سخت افزاری و نرم افزاری و... برای تبدیل ورودی به خروجی.

overhead

به عنوان مثال: 

  • پیاده سازی یک ضرب کننده نسبت به پیاده سازی یک جمع کننده، بر روی یک بورد الکترونیکی overhead بالایی دارد.
  • Decode کردن Metadata های یک Packet در طول شبکه و تشخیص آن نوعی overhead است.
  • و...
نکته مهمی که در مورد overhead می توان گفت اینست که overhead را در یک Benchmark یا یک نقطه مشخصی بررسی می کنند و با توجه به معیارها و شرایط موجود آن Benchmark سربار را می سنجند.


Bottleneck (تگنا)

این اصطلاح از دو واژه Bottle(بطری) و neck(گردن) تشکیل شده است. فلسفه این نام گذاری این است که آبی که قرار است از بطری بیرون ریخته شود نهایتا از این neck باید عبور کند که در نتیجه این کار موجودی داخل بطری توسط بخشی از خود بطری (یعنی neck) محدود می شود.

می توان تعریف را اینطوری نیز گفت که "Bottleneck محدود شدن ظرفیت یا کارایی کل سیستم توسط یکی از اجزای سیستم است".

Bottleneck

به عنوان مثال: 

  • در مدل Client-Server از شبکه ها Server ها به عنوان Bottleneck مطرح هستند.
  • Device های I/O یکی از Bottleneck های یک سیستم کامپیوتری هستند چرا که سرعت CPU هر چقدر هم بالا باشد توسط آنها محدود شده و از سیستم خارج می گردد.
  • Data Hazard ها در معماری کامپیوتر یک Bottleneck برای Performance سیستم می باشد.

Starvation (قحطی زدگی)

این مورد یک مبحث سیستم عاملی می باشد که در حالت Multitasking اتفاق می افتد و در آن "Process در حالت Block است و هیچ تضمینی هم از بدست آوردن منابع در آینده وجود ندارد".

به عنوان مثال:

  • در الگوریتم زمانبندی SJF با ورود داعم Process هایی با زمان اجرای کوتاه، Process های با زمان اجرای بلند در صف انتظار قرار می گیرند(Block می شوند) و هیچگاه اجرا نمی شوند.
امیدوارم مطلب مفید باشد و استفاده برده باشید.
با سپاس از توجهتان به این نوشته
  • میثم پاسداری