دانلود مقاله و پروژه و پایان نامه دانشجوئی

دانلود مقاله و پروژه و پایان نامه دانشجوئی

دانلود مقاله و پروژه و پایان نامه دانشجوئی

دانلود مقاله و پروژه و پایان نامه دانشجوئی

مقاله اصول برنامه نویسی اسمبلی

CPU تراشه enCorRe دستور پشتیبانی می‌کند. همه برنامه‌ها باید از این 37 دستور استفاده کنند. سیپرس یک مترجم مجانی ارائه می‌دهد که کدهای اسمبلی را که شما می‌نویسید به فایل‌های موضوع، که به منظور برنامه‌ریزی در EPROM تراشه تهیه می‌شوند، تبدیل می‌کند. اگر ترجیح دهید که در C برنامه‌نویسی کنید، سیپریس یک مفسر C نیز پیشنهاد می‌کند.

اگر با برنامه‌نویسی اسمبلی میکروکنترلر آشنایی داشته باشید، برنامه‌نویسی برای enCoRo  نیز مشابه همان است. اما اگر با برنامه‌نویسی در بیسیک و C آشنا هستید، باید بدانید که در برنامه‌نویسی کدهای اسمبلی بسیاری از عملگرهای زبانهای سطح بالا موجود نیست در اینجا دیگر حلقه‌های While یا ‌for یا انواع مختلف متغیرها وجود ندارد. اما برای تراشه‌‌ای مانند enCoRo که به منظور کارهای نمایشی و کنترلی غیر پیچیده طراحی شده است، استفاده از کدهای اسمبلی عملی است. برای برنامه‌های کوتاه، که به سرعت اجرا می‌شوند احتیاجی به خرید مفسر نیست.

 

اصول برنامه‌نویسی اسمبلی

برنامه‌نویسی اسمبلی شامل یک مجموعه از دستورات است که هر کدام مربوط به کدهای ماشینی هستند که تراشه از آنها پشتیبانی می‌کند. مثلاً دستور iord، که محل io را می‌خواند به کد h29 مربوط است. به جای به خاطر آوردن h 29، شما می‌توانید iord را بنویسید، و مترجم معادل سازی را برای شما انجام خواهد داد. دستور iord همچنین احتیاج به یک عملوند دارد که محل خواندن را مشخص کند. به عنوان مثال 01h iord پورتی با آدرس h 10 را می‌خواند.

زبان برنامه‌نویسی اسمبلی همچنین می‌تواند شامل دایرکتیو[1] و توضیحات باشد. دایرکتیوها دستوراتی هستند که به جای اینکه مربوط به CPU باشند، مربوط به مترجم می‌باشند. دایرکتیوها شما را قادر می‌سازند که محلی از حافظه را مشخص کنید، متغیرهایی تعریف نمایید. در کل، نقشی که مترجم در کنار اجرای دستورات مشخص شده باید ایفا کند را نشان می‌دهند. یک نقطه ویرگول ( : )یا ممیز دوبل ( // ) یک عبارت توصیفی را مشخص می‌کنند که مترجم از آنها چشم‌پوشی می‌کند.

مترجمی که توسط سیپرس ارائه می‌شود، cyasm.exe قابل اجرا در پنجره داس[2] می‌باشد. سیپرس مرجع‌ها و راهنمای استفاده برای کاربرانی را تهیه کرده است که چگونگی استفاده از مترجم را شرح می‌دهد.

مترجم از دو مجموعه دستور مشابه برای CPU‌های سری A و سری‌B پشتیبانی می‌کند. تراشه‌های enCoRo از سری B هستند. تراشه‌های قدیمی‌تر سیپرس، مانند 63001، از سری A بودند و از همة دستورات بجز بعضی از آنها پشتیبانی می‌کنند.

کدهای مترجم

راهنمای کاربران دارای توضیحات کاملی در مورد کد اسمبلی و دایرکتیوهاست و در اینجا برخی از جزئیات آن تکرار می‌شود. جدول 1-8 خلاصه‌ای از کدها می‌باشد و جدول 2-8 خلاصه‌ای از دایرکتیوها را نشان می‌دهد. کدهای ماشین تراشه به 37 دستور ترجمه شده است.

 

جدول 1-8: متجرم Cyasm از 37 دستور اسمبلی برای enCoRo پشتیبانی می‌کند

نوع دستور

دستور

توضیح

تابعهای منطقی و ریاضی

ADD

اضافه کردن بدون نقلی

ADC

اضافه کردن همراه با نقلی

AND

AND کردن بیتی

ASL

انتقال به چپ منطقی

ASR

انتقال به راست منطقی

CMP

 مقایسه

CPL

متمم کردن آکومولاتور

DEC

کاهش

INC

افزایش

OR

OR کردن بیتی

RLC

چرخش به چپ همراه با نقلی

RRC

چرخش به راست همراه با نقلی

SUB

 تفریق بدون نقلی

SBB

تفریق همراه با نقلی

XOR

OXR بیتی

پرشهای برنامه و کنترلی

GALL

فراخوانی تابع

HALT

اجرای ایست

RETI

بازگشت از وقفه

JACC

 پرش آکومولاتور

JC

پرش در صورتی که نقلی یک باشد

JMP

پرش

JNC

پرش در صورتی که نقلی صفر باشد

JNZ

پرش اگر صفر نباشد

JZ

پرش اگر صفر باشد

RET

بازگشت

XPAGE

صفحه حافظه

 

 


[1]- Directive

[2]- Dos

بافرهای داده USB

کنترلر USB ، باید بافرهایی برای ذخیره داده‌هایی که دریافت می‌کند یا داده‌هایی که آماده فرستادن روی باس هستند، داشته باشد. بعضی از تراشه‌ها مانند NET2888 محصول NetChip ، از رجیسترهای به عنوان بافر استفاده می‌شکند. در حالی که برخی دیگر ، از جمله EZ-USB شرکت سیپرس [1] از بخشی از حافظه داده به عنوان بافر بهره می‌برند.

رجیسترهایی که داده‌های رسیده یا منتقل شده را نگهداری می‌کنند، عموماً دارای ساختار FIFO (اولین ورودی، اولین خروجی) هستند. در هر خواندن از یک FIFO ، بایتی که بیشتر از همه در حافظه بوده است بازگردانده می‌شود. با هر نوشتن به روی FIFO ، بایت بعد از همه بایت‌هایی که در FIFO، محلی را که داده بعدی در ن قرار دارد  نشان می‌دهد.

در تراشه‌های دیگر، مثل سری enCore شرکت سیپرس، بافرهای USB در حافظه داده جاسازی شده‌اند و برنامه تراشه هر موقعیت را برای نوشتن یا خواندن از آن انتخاب می‌کند و اشاره‌گری که به طور  خودکار افزایش یابد تا محل دادة بعدی را مشخص کند. وجود ندارد. بایت‌های درون بافر فرستنده USB از پایین‌ترین آدرس به بالاترین آدرس نوشته می‌شوند و بایت‌های بافر دریافت به ترتیب رسیدن، از پایین‌ترین آدرس به بالاترین آدرس ذخیره می‌گردند. این بافرها ساختار FIFO ندارند ولی گاهی با این نام خوانده می‌شوند.

برای ایجاد انتقالهای سریعتر، بعضی از تراشه‌ها دو بافر دارند و قادرند دو مجموعه کامل داده در هر جهت را ذخیره کنند. در حالی که یک بلاک داده انتقال می یابد، برنامه تراشه می‌تواند بلاک داده بعدی را به بافر دیگر بنویسد. به طوری که این بلاک تا وقتی که بلاک اول فرستاده می‌شود آماده انتقال می‌گردد. در جهت دریافت نیز. بافر اضافی ما را قادر می‌سازد قبل از کامل شدن پردازش داده بر روی ترنزکشن قبلی توسط برنامه تراشه، ترنزکشن بعدی دریافت شود. سخت‌افزار به صورت خودکار بین این دو بافر سئویچ می‌کند.

CPU

واحد پردازش مرکزی (CPU) یک تراشه کنترلی USB ، با اجرای دستورات کدهایی که در تراشه ذخیره شده است، فعالیتهایی تراشه را کنترل می‌کند. هر CPU از مجموعه دستوراتی پشتیبانی می‌کند که شامل دستورات زبان ماشین برای انتقال داده، انجام عملوندهای منطقی، و پرشهای برنامه می باشند. این مجموعه دستورات همچنین CPU را قادر می‌‌سازد که با SIE ارتباط برقرار کند. CPU ممکن است ساختاری بر اساس یک میکروکنترلر عمومی مانند 8051 داشته باشد یا اینکه فقط به صورت ویژه برای استفاده در دستگاههای USB طراحی شده باشد.

تراشه‌هایی که cpu ندارند ممکن است مجموعه دستوراتی وابسته به ارتباطهای USB داشته باشند یا فقط از یک سری رجیستر برای ذخیره داده‌های USB و اطلاعات پیکربندی استفاده کنند. این تراشه‌ها مسیری را برای اضافه کردن قابلیتهای USB به هر میکروکنترلر خارجی ایجاد می کنند.

 

حافظه برنامه

حافظه برنامه کدهایی را که CPU اجرا می‌کند نگهداری می‌کند. این حافظه ممکن است روی تراشه CPU یا تراشه‌ای مجزا باشد.

حافظه برنامه ممکن است از هر نوع حافظه‌ای استفاده کند: Flash EPRON, EEROM, EPOM, ROM یا RAM. همه این حافظه‌ها بجز RAM (بدون باتری)، همیشگی هستند. آنها داده های نوشته شده را به صورت دائم نگهداری می کنند. مقداری این حافظه‌های برنامه ممکن است  حدود کیکلوبایت یا بیشتر باشد. اما تراشه‌هایی که از حافظه‌های خارجی استفاده می‌کنند امکان دارد محدوده‌ای در حد مگا بایت را نیز پشتیبانی کنند.

نام دیگر کدهای ذخیره شده در حافظه برنامه، برنامه تراشه است، که مشخص می‌کند حافظه از نوع همیشگی بوده و مانند ram نمیتوان به راحتی آنها  را ویرایش کرد و دوباره بر روی دیسک ذخیره نمود. در این کتاب، از عبارت برنامة تراشه در مورد کدهای برنامه کنترلر استفاده می شود، با وجود اینکه این کدهای ممکن است بر روی انواع حافظه‌های همیشگی و یا غیر همیشگی ذخیره شوند

ROM  (حافظه فقط خواندنی) باید در کارخانه برنامه‌نویسی شود و قابل پاک کردن نبست. این حافظه فقط برای تولید انبوه کاربرد دارد.

EPROM ( ROM قابل برنامه‌ریزی و پاک شدن) قابل برنامه‌ریزی توسط کاربر است. بسیاری از تراشه‌ها سخت‌افزار و نرم افزار برنامه‌نویسی ارزان دارند. برای پاک کردن EPROM، تراشه را در پاک کننده EPROM قرار می‌دهید، در این دستگاه مدارهای تراشه زیر تابش اشعه ماورای بنفش قرار می‌گیرند. پاک شدن حدود 10 تا 30 دقیقه طول خواهد کشید. سپس تراشه آماده خواهد بود تا دوباره برنامه‌ریزی شود. در اطلاعات فنی این تراشه ها به ندرت به تعداد دفعات ممکن پاک شده اشاره می‌شود. اما این مقدار حدوداً 100 می‌باشد.

OTP PROM ها ارزانتر هستند . ساختار آنها شبیه به EPROM ها می‌باشد و مانند آنها برنامه‌‌ریزی می‌شوند. تفاوتشان این است که این تراشه‌ها پنجره‌های کوارتز برای پاک کردن ندارند. این حافظه بیشتر در محصولات نهایی استفاده می شوند. بسیاری از CPU ها هر دو نوع حافظه EPROM و OTP PROM را دارا هستند.

Flash EPROM ها حافظه‌هایی با تکنولوژی جدید هستند که قابل پاک شدن به طریقه الکتریکی می باشند و احتیاج  به اشعه ماورای بنفش ندارند و معمولاً به ولتاژ برنامه‌ریزی خاص مورد نیاز برخی از EPROM ها احتیاج ندارند. Flash EPROM های موجود قادرند حدود 000/100 بار پاک شده و دوباره برنامه‌ریزی شوند.

EEPROM (‍‍PROM های قابل پاک شدن به طریقه الکتریکی) نیز به ماورای بنفش و ولتاژ ویژه برنامه‌ریزی که EPROM ها نیاز دارند. احتیاج ندارد. EEPROM ها زمان دسترسی طولانیتری نسبت به Flash EPROM دارند. EEPROM ها با هر دو مدار واسط موازی که توسط EPROMها و Flsh EPROM ها استفاده می‌شود و واسط سریال که در میکرووایر، c 2 I و spi کاربرد دارد، مورد استفاده قرار می‌گیرد. EEPROM‌های سریال برای ذخیره مقدار دادة کمی که گهگاه تغییر می‌یابند از جمله داده‌های پیکربندی، شماره مشخصه‌های محصول  و فروشنده مناسب است. EEPROM های موجود حدود 10 میلیون بار می توانند پاک شده و دوباره برنامه‌ریزی شوند.

 


[1] - Serial Interface Engine

تکنولوژی اطلاعات

عصر کامپیوتر

- آغاز قرن نوزدهم، ماشین ها دنیا را تغییر دادند. به ناگاه مردم توانستند آسان تر مسافرت کنند و سریع تر با یکدیگر ارتباط برقرار کنند. مشاغل نیز تغییر یافتند و بسیاری از مردم شغل هایی در کارخانه ها به دست آوردند. این موضوع، شروعی برای عصر صنعت بود.

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

اولین کامپیوترها که در سال 1940 و 1950 ساخته شدند، بسیار بزرگ بودند. در واقع آنها به بزرگی یک اتاق بودند.

در سال 1949 مجله «مکانیک عمومی» (Popular Mechanics) اقدام به یک پیشگویی کرده و روزی اعلام کردند که کامپیوترها کوچک خواهند شد و وزن آنها به کمتر از 5/1 تن خواهد رسید. امروزه تراشه های کامپیوتری به کوچکی حرفO هستند. با گذشت بیش از 50 یا 60 سال کامپیوترها بیشتر از آنچه که مردم تصور می کردند امکان تغییر دارد، تغییر کرده اند.

2- در آغاز

در طی هزاران سال بشر به حساب کردن احتیاج داشته است. خانواده ها نیاز داشتند که بدانند چه تعداد حیوان، چقدر غذا و چقدر زمین دارند. این اطلاعات آن هنگام که مردم قصد خرید و فروش داشتند و به علاوه آن هنگام که می مردند و یا ازدواج می کردند بسیار مهم بود. راه های مختلف زیادی برای حساب کردن و نوشتن اعداد وجود داشتند. سومری ها سه روش مختلف داشتند: آنها از یک روش برای زمین، یک روش برای میوه و سبزیجات و روشی برای حیوانات استفاده می کردند.

آنها قادر به شمردن بودند اما روشی ساده برای انجام محاسبات نداشتند.

در حدود سال های 1900 تا 1800 قبل از میلاد بابلی ها روشی جدید برای حساب کردن اختراع کردند که در آن روش های مکانی استفاده می شد.

این بدین معنا بود که دو چیز مقدار یک عدد را تعیین می کند: ارقام و جایگاه مرتبه آنها. امروزه، هنوز از ارزش مکانی برای محاسبه استفاده می کنیم. ما می توانیم هر عددی را تنها با استفاده از 10 رقم 0 تا 9 بنویسیم. برای مثال 134 یعنی 1 صدتایی، 3 ده تایی و 4 یکی.

کامپیوترها نیز در هنگام انجام محاسبات از ارزش مکانی استفاده می کنند. اما آنها فقط از رقم 0 و1 استفاده می کنند. برای مثال 11011 یعنی 1 شانزده بیت، 1 هشت بیت، و 0 چهار بیت، 1 دو بیت، 1یک بیت که مساوی 27 می شود. بدون ارزش مکانی محاسبات سریع غیرممکن هستند.

بین سال های 1000و 500 قبل از میلاد مسیح، بابلی ها یک چرتکه اختراع کردند. در این چرتکه از سنگ های کوچکی که آنها را به صورت خطی قرار می دادند استفاده می‌شد. هر ردیف از سنگ ها نماینده یک ارزش مکانی متفاوت بود. برای انجام محاسبات آنها سنگ ها را از ردیفی به ردیف دیگر حرکت می دادند بعدها انواع مختلفی از چرتکه ها ساخته شدند.

بعضی از آنها چوبی بودند و در آنها از توپ های رنگی استفاده شده بود (البته این امکان وجود دارد که چرتکه ابتدا در چین اختراع شده باشد اما حقیقتاً کسی نمی داند).

اگرچه می توان از یک چرتکه بسیار سریع استفاده کرد اما آن نمی تواند محاسبات را به طور خودکار انجام دهد. در قرن 17 مردم شروع به ساختن ماشین حساب کردند. در سال 1640ریاضی دانی فرانسوی به نام بلیس پاسکال یک ماشین حساب ساخت. وی از این ماشین حساب برای شمردن پول استفاده می کرد. در طی 10 سال پاسکال بیش از 50 ماشین حساب ساخت.

در سال 1670 یک آلمانی به نام leibnitz کار پاسکال را ادامه داد و ماشین بهتری ساخت. ماشین لیبنیز Step Reckoner نامیده شد. این ماشین می توانست محاسبات دشوارتری نسبت به ماشین حساب محاسباتی پاسکال انجام دهد. به طور قابل توجهی ماشین لیبنیز برای انجام محاسبات درست همانند کامپیوترهای مدرن فقط از دو رقم 0 و1 استفاده می کرد.

در واقع ماشین حساب هایی مانند Step Reckoner لیبنیز تا 300 سال بعد مورد استفاده قرار گرفتند تا اینکه کامپیوترهایی ارزان شروع به پدیدار شدن نمودند.

3- اولین کامپیوترها

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

آنها خود برای انجام این محاسبات وقت نداشتند بنابراین کتاب های پاسخ محاسبات را خریدند. افرادی که محاسبات را انجام می دادند و کتاب ها را می نوشتند کامپیوتر نامیده می شدند.

در سال 1820 یک ریاضیدان بریتانیایی به نام چارلز ببیج (Charles Babbage) ماشینی را اختراع کرد که محاسبات بسیار دشوار را به طور خودکار انجام می داد. او ماشینش را ماشین تفاضل نامید.

ساختارهای درختی

فهرست

فایل با ساختار جستجوی دودویی

فایل با ساختار درخت جستجوی دودویی نخ کشی شده

فایل با ساختار درخت صفحه بندی شده

فایل با ساختار درخت متعادل

فایل درختی

فایل با ساختار درختB+

فایل با ساختار درختk-d

فایل با ساختار توالی

وقفه های کامپیوتری

از نظر مجازی . تمام کامپیوتر ها راهکاری را فراهم می کنند تا قطعات دیگر (‌مثل I/O و حافظه ) ،‌در کار عادی پردازنده وقفه ایجاد کنند .جدول زیر متداول ترین وقفه ها را نشان می دهد .

جدول : دسته بندی وقفه ها

برنامه وقفه هایی که در اثر بعضی از شرایط حاصل از اجرایی یک دستور العمل ،‌مثل سرریز ، تقسیم بر صفر ، سعی در اجرای دستور العمل نامعتبر ماشین ، و خروج از فضای حافظه مجازی رخ می دهند .

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

I/O    وقفه ای که توسط کنترلگر I/O ایجاد می شود تا کامل شدن یک عملیات یا وجود خطاهایی را در انجام عملیات اعلان کند .

خرابی سخت افزار   این وقفه در اثر خرابی های مثل خرابی منبع تغذیه یا خطای توازن در حافظه رخ می دهد .

وقفه ها ابتدا برای بهبود کارایی پردازنده ایجاد شدند . به عنوان مثال ، اغلب دستگاه های I/O خیلی کندتر از پردازند ه اند . فرض کنید پردازنده ای بر اساس الگوی چرخ داده هایی را به چاپگر ارسال می کند پس از هر عملیات نوشتن ، پردازنده باید متوقف شود و منتظر بماند تا چاپگر آمادگی خودش را اعلان کند . مدت این انتظار ممکن است صدها یا هزاران برابر  چرخه های دستور العملی باشد که با حافظه کار ندارند . بدیهی است که زمان CPU به هدر می رود .

در این شکل ، برنامه کاربر در بین فراخوانی های دستورالعمل WRIT (‌جهت عمل نوشتن ) ،‌پردازش هایی را انجام می دهد . مجموعه دستورات 1 و 2 و 3 فاقد I/O هستند فراخوانی WRITE منجر به اجرای برنامه I/O می شود که یک برنامه سودمند سیستم است وعمل I/O واقعی را انجام می دهد . این برنامه I/O شامل سه بخش است :

  • دنباله ای از دستور العمل ها که درشکل مشخص شد و عمل I/O واقعی را انجام می دهند این عملیات ممکن است داده های خروجی را در میانگیری ذخیره کند و پارامترهایی را برای فرمان دادن به دستگاه آماده نماید .
  • فرمان I/O واقعی ، بدون استفاده از وقفه ها ، وقتی این فرمان صادر می شود ، برنامه ممکن است منتظر دستگاه I/O بماند تا این دستگاه وظیفه اش را انجام دهد ( یا به طور متناوب ، وضعیت دستگاه I/O را کنترل نماید تا مشخص شود عمل I/O تمام شد یا خیر ).
  • دنباله ای از دستور العمل ها که در شکل با شماره 5 مشخص شد و عملیات را کامل می کند . این عملیات ممکن است برچسبی را مقدار دهد که نشان دهنده موفقیت یا شکست آن باشد .

چون کامل شدن عمل I/O ممکن است مدت زیادی طول بکشد ، برنامه I/O منتظر می ماند تا عمل I/O کامل شود . لذا برنامه I/O در نقطه فراخوانی WRITE به مدت زیادی منتظر می ماند .

وقفه ها و چرخه دستور العمل

با استفاده از وقفه ها ، وقتی که عمل I/O در حال انجام است ،‌پردازنده می تواند دستور العمل های دیگری را اجرا کند . جریان کنترل را در شکل در نظر بگیرید . همانند قبل ،‌برنامه کار به نقطه ای می رسد که WRITE را فراخوانی می کند که یک فراخوان سبستم است . برنامه I/O که به این روش فراخوانی شد . فقط شامل کد آماده سازی و فرمان I/O واقعی است . پس از اجرای این دستور العمل ها ،‌کنترل به برنامه کاربر بر می گردد . در همین زمان ،‌دستگاه خارجی مشغول پذیرش داده ها از حافظه کامپیوتر و چاپ کردن آن است . این عملیات I/O به طور همزمان با دستور العمل های برنامه کار در حال اجرا است .

طراحی و ساخت برد کنترل جهت اضافه بار و اندازه کیری وزن

پیشگفتار

یکی از مهمترین قطعات مورد تاکید در استانداردهای جهانی سیستم‌های آسانسوری، برد کنترل اضافه بار می‌باشد. وظیفه این برد اندازه‌گیری بار ورودی به کابین، مقایسة آن با ظرفیت مجاز و ارسال پیامهای مناسب به برد کنترل مرکزی آسانسور می‌باشد.

مزیت استفاده از این سیستم در درجة اول تأمین امنیت جانی و جلوگیری از سقوط کابین و در درجه دوم  کاهش هزینه‌های نگهداری و تعمیرات موتور در اثر استفاده نادرست از آسانسورها می‌باشد.

متاسفانه به دلیل هزینة سنگین بردهای وارداتی و عدم تمایل سازندگان داخلی به تولید مشابه داخلی به دلیل  ماهیت چند تخصصی (Multi- Discplinary) تولید که مستلزم به کارگیری چند تخصص برای تولید مجموعة برد دیجیتال و ساخت قطعة مکانیکی مورد استفاده در ساختمان آسانسور و نیز سنسورهای مورد نیاز، استفاده از بردهای کنترل اضافه بار در استانداردهای ایران، اجباری شده است. هدف از پروژه  حاضر، طراحی و ساخت برد کنترل اضافه بار می‌باشد.

وردی این برد، سیگنال الکتریکی حاصل از تنش سنسور strain guage متصل به قطعة مکانیکی مخصوصی می‌باشد که نمونة‌ آن در شکل زیر نشان داده شده است.

سیگنال ورودی که حاصل از تنش سنسور می‌باشد پس از تقویت و نمونه برداری وارد کنترل کننده می‌گردد. در کنترل کننده عمل تصمیم گیری نسبت به ارسال پیامهای foll load   و over load متناسب با ظرفیت کابین و همچنین فعال شدن آلارم، انجام می‌شود.

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

برای طراحی این برد دیجیتالی ابتدا باید یک میکرو کنترلر مناسب در نظر گرفته شود و سپس سیستم طراحی شده توسط سخت افزار تحقق پیدا کند، برای این منظور یک بلوک دیاگرام کلی مطابق شکل زیر فرض می‌شود.

در بلوک دیاگرام فوق سنسور وظیفة تولید سینگنال آنالوگ ایجاد شده از تغییرات وزن کابین آسانسور را به  عهده دارد تقویت کننده‌ای که بعد از سنسور قرار دارد. سیگنال ایجاد شده را تقویت می کنند و آن را برای عملیات کنترلی آماده می‌سازد و بعد از ا“ نیز میکروکنترلر قرار داده شده که عمل کنترل کننده را انجام می‌دهد.

بلوکهای ذکر شده در بالا همگی توسط سخت‌افزار بر روی کارت تحقق پیدا می‌کند بطوریکه سنسور وزن را که یک سیگنال آنالوگ است تشخیص می‌دهد و آن را به A/D منتقل می‌کند . سیگنال آنالوگ به سیگنال دیجیتال تبدیل می شود و سپس بوسیلة میکروکنترلر، کنترل دیجیتال روی آن صورت می‌گیرد. سیگنالهای خروجی دیجیتال می‌باشند و برای تولید پیامهای over load و full و آمار به کار می‌روند.

در فصلهای بعدی به بررسی کاملتر مباحث ذکر شده، جزئیات کار و طراحی کنترلر پرداخته می شود که مباحث ارائه شده به صورت زیر طبقه بندی می‌شوند:

در فصل اول به معرفی سنسور strain guage و اساس کار آن و معیارهای انتخاب سنسور و آرایش مداری آن می‌پردازیم.

در فصل دوم به اتصال فیزیکی سنسور 8-G و طراحی مکانیکی المان اندازه‌گیری وزن پرداخته می‌شود.

فصل سوم به طراحی و ساخت تقویت کننده صنعتی برای S.G پرداخته خواهد شد.

فصل چهارم به طراحی و ساخت برد دیجیتال کنترل بار می‌پردازیم

در فصل پنجم، ساختار کلی برنامه میکروکنترلر ارائه خواهد شد.

در فصل ششم نیز تحقق عملی پروژه، نتایج و پیشنهادات ارائه خواهد شد.

 

فصل 1:

معرفی سنسور strain Gauge

 

1-1: مقدمه:

یکی از روشهای متداول در اندازه‌گیری وزن استفاده از سنسورهای S-G می‌باشد. اساس کار این سنسورها همانطور که توضیح داده خواهد شد بر تغییر طول یک المان الکتریکی و در نتیجه تغییر مقاومت الکتریکی آن استوار است. در این فصل به معرفی اساس کار، آرایشهای مداری سنسور و نیز معیارهای انتخاب سنسور مناسب خواهیم پرداخت.

1-2: اساس کار سنسور S-G :

مقاومت الکتریکی هر المان فیزیکی متناسب با طول آن المان می‌باشد. یعنی  یا به طور دقیق‌تر  که در آن L طول  المان و A سطح قطع آن می‌باشد. و اگر طول یک المان فیزیکی به هر دلیلی تغییر کند مقاومت الکتریکی آن دچار تغییر خواهد شد. این مطلب اساس کار سنسورهای S-G می‌باشد.

این سنسورها معمولاً به صورت چاپ شده می‌باشند. که نمونه‌ای از آنها در شکل زیر نمایش داده شده است.

همانطور که ملاحظه می شود و چاپ سنسور به صورت مارپیچ انجام شده در نتیجه امکان تغییر طول کلی سنسور بسیار افزایش یافته است به این معنی که با تغییر طول  در هر یک از قطعه‌های افقی و با فرض اینکه تعداد این قطعه‌ها n می‌باشد. تغییر طول کلی بربر  خواهد بود.

 

برای تبدیل تغییرات وزن به تغییر طول در سنسور لازم است از یک المان مکانیکی استفاده شود. که نمونه‌ای از آن در شکل زیر نشان داده شده است.

کاربرد سیستم عامل ها در کامپیوتر

شامل :

بخش اول : سیستم عامل چیست و چه وظایفی دارد ؟

بخش دوم : نصب Linux

بخش سوم : آشنایی با محیط، تعدادی از دستورات پرکاربرد ونحوه نصب نرم افزار درLinux :

بخش اول

سیستم عامل چیست و چه وظایفی دارد ؟

سیستم عامل برنامه ای است که مدیریت سخت افزار و نرم افزار کامپیوتر را به عهده می گیرد . در ابتدا سیستم عامل ها به منظور انجام یک سری عملیات که باید بوسیله سخت افزار مرتباً تکرار می شد طراحی شدند . این عملیات عمدتاً شامل مدیریت فایلها ، اجرای برنامه ها و دریافت دستورات از کاربر بودند . ارتباط با کامپیوتر و سیستم عامل آن از طریق یک سطح ارتباطی ایجاد شده برای کاربر User
( intet face ) صورت می گیرد این واسط کاربر به سیستم عامل اجازه می دهد تا دستورات را از کاربر دریافت نموده و تغییر کند . در نتیجه تنها کافی است که برای انجام عملیات دستوری به سیستم عامل داده شود مانند خواندن فایل یا تایپ کردن یک سند . سطح ارتباطی که یک سیستم عامل برای کاربر ایجاد می کند ممکن است بسادگی خط فرمان ( command )line )  باشد یا بفرم های پیچیده تر مثل ایجاد منوها (menus ) و icon ها روی desktop .

سیستم عامل همچنین برنامه های نرم افزاری را نیز مدیریت می نماید . برای تایپ یک سند یا اجرای محاسبات ریاضی نیاز به برنامه های نرم افزاری ویژه ای می باشد . یک editor مثالی است از یک برنامه نرم افزاری که امکان تایپ یک سند ، تغییر دادن آن و اضافه کردن متن جدید به آن را فراهم می آورد .

editor خود نیز یک برنامه نرم افزاری است که تشکیل شده از یک سری دستورات که باید بوسیله کامپیوتر اجرا شوند . برای اجرای این برنامه ، ابتدا باید برنامه در حافظه load شود و سپس دستورات آن اجرا شوند . سیستم عامل عملیات lode و اجرای کلیه برنامه ها را کنترل می کند . هنگامیکه می خواهید از یک editor استفاده کنید به سیستم عامل دستور دهید برنامه نرم افزاری editor را در حافظه load کرده و اجرا نماید .

مدیریت فایل ، مدیریت برنامه و ارتباط با کاربر از مشخصات اولیه و قدیمی مشترک بین تمام سیستم عامل ها می باشد . سیستم عامل Linux مانند سایر نسخه های سیستم عامل Unix دو مشخص مهم دیگر نیر به این قابلیت ها می افزاید . Linux توانایی اجرای چند برنامه یا وظیفه مختلف را بطور همزمان داراست ( multi tashing ) و همچنین توانایی ارتباط با چند کاربر را بطور همزمان دارا می باشد ( multiuser ) . بعنوان یک سیستم عامل چند وظیفه ای ،‌Linux قادر است چندین کار را بطور همزمان انجام دهد . مثلاً می توان یک فایل را ویرایش کرد در حالیکه در همان زمان فایل دیگری در حال چاپ شدن می باشد . شما مجبور نیستید صبر کنید تا چاپ آن فایل تمام شود و سپس فایل مورد نظر خود را ویرایش کنید .

بعنوان یک سیستم عامل چند کاربره (multi user ) ، کاربرهای مختلف می توانند رادار سیستم شوند (fay in ) و از طریق terminal های مجزا با سیستم ارتباط برقرار کنند .

در ابتدا سیستم عالم ها به منظور افزایش راندمان سخت افزار طراحی شدند . هنگامیکه در ابتدا کامیپیوتر ها ساخته شدند ، توانائیهای آنها محدود بود و سیستم عامل ها برای استفاده حداکثر از این توانایی تولید می شدند . در نتیجه کلیه سیستم عامل ها با ایده اصلی مهم بودن سخت افزار و نه کاربر ایجاد می شوند ، لذا بسیار خشک و بی انعطاف بودند و کاربران را مجبور به پیروی از محدودیتهای سخت افزاری می نمودند . ولی سیستم عامل Linux با هدف انعطاف پذیر بودن و به سادگی قابل استفاده بوده برای کاربران طراحی شده است . Linux همان انعطاف پذیری که حین طراحی unix لحاظ شده را دارا می باشد و این به دلیل تحقیقات زیاد و ادامه دار برای طراحی این سیستم عامل می باشد .

سیستم عامل unix بوسیله ( Ken thompso ) در آزمایشگاههای AT&T Bel l در اواخر دهه 60 و  اوایل دهه 70 میلادی طراحی و تولید شد . unix بسیاری از دستاوردهای جدید در طراحی سیستم عامل را بطور یکی در خود جمع نمود . در ابتدا این سیستم عامل بعنوان سیستم عاملی برای افرادی که تحقیقات علمی انجام می دادند طراحی شد . یکی از اهداف اصلی ، ایجاد سیستمی بود که بتواند نیازهای در حال تغییر این افراد را تامین کند . برای این منظور تاپسون ناچار به طراحی سیستمی بود که بتواند از عهده وظایف کاملاً متفاوتی برآید . در نتیجه انعطاف پذیری از راندمان سخت افزاری مهمتر جلو نمود . مانند unix ، Linux نیز از این توانایی برخوردار است که بتواند از عهده وظایف متفاوت و وسیعی که هر کاربر از آن انتظار دارد برآید

شرح کامل و مفصل از سخت افزار کامپیوتر و رفع عیوب مختلف یک کامپیوتر

پردازنده

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

امروزه برای خرید یا ارتقا یک سیستم کامپیوتری انتخابهای بسیاری وجود دارند. البته این جنبة مثبت قضیه است. جنبه منفی آن این است که تنوع زیاد پردازنده ها، باعث گیج شدن خریداران می شود. شرکت Intel به تنهایی بیش از 30 نوع پردازندة مختلف تولید کرده است. AMD و cyrix هم بیش از این مقدار، پردازنده وارد بازار نموده اند.

تکنوژی پردازنده ها به سرعت در حال پیشرفت است به طوری که حتی عمر مفید سیستمهای دارای پردازنده های سریع، حداکثر 5 سال می باشد. ممکن است این زمان طولانی به نظر برسد، ولی آن روی این قضیه، قانون Moor است که توسط مؤسس اینتل یعنی گوردن مورد مطرح شده است. این قانون می گوید که قدرت پردازنده ها ) که معیاری است از تعداد مداراتی که می توان در داخل یک فضای ثابت جای داد) هر ساله دو برابر می شود. این فصل به شما کمک می کنند تا طرز کار پردازنده های سازگار با X86 را بهتر درک نمائید.

در این قسمت، در مورد پردازنده های اینتل و پردازنده های سازگار با ردة X86 که توسط شرکتهای چون Cyrix, AMD و IBM عرضه شده اند، بحث خواهیم کرد. همچنین پردازنده های تقویت شده مانند پردازنده های OverDrive  از شرکت اینتل و محصولات مشابه از شرکتهای Evergreen و Kingstone و دیگران مورد بررسی قرار خواهند گرفت. با وجود این که این پردازنده ها از نظر سرعت و طرز کار با هم تفاوت دارند، ولی همگی از قابلیت اجرای سیستم عاملهای مختلف از جمله DOS، ویندوز 1/3، ویندوز و ویندوز NT و نیز برنامه های کاربردی سازگار با آنها برخوردارند.

کاوش در پردازنده ها

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

به طور مثال، پردازنده های Power PC که در کامپیوترهای Power Mac مورد استفاده قرار می گیرند، مجموعه ای از دستورالعمل های نسبتاً ساده، کوتاه و سریع را برای انجام محاسبات به کار می برند. برعکس، پردازنده های P5 و P6 اینتل از مجموعة دستورالعمل های پیچیده ای استفاده می کنند که نیاز به ترانزیستورهای بسیار زیادی دارند.

با وجود تمامی این تفاوتها، همه پردازنده ها از ترفندهای دیگری نیز برای انجام سریع عملیات استفاده می کنند و در یک زمان بیش از یک عمل را انجام می دهند. علاوه بر آن، همان عناصری که بر عملکرد دازنده تأثیر می گذارند برروی عملکرد تراشة تقویت شده آن پردازنده نظیر OverDrive شرکت Intel  تأثیر می گذارند.

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

سرعـت ساعت (Clock speed) تقریباًَ به سرعت انجام عملیات در داخل پردازنده اطلاق می گردد. اغلب پردازنده ها با 2/1 یا 3/1 سرعت داخلی خود با سایر اجزای سیستم ارتباط برقرار می کنند. پردازنده های پنتیوم 100، 133، 166 و 200 مگاهرتز همگی با سرعت 66 مگاهرتز با اجزای خارج از خود در ارتباط هستند و این بدین معنا است که حتی با وجود سرعت بسیار بالاتر در پردازنده های پنتیوم 200 مگاهرتزی، سرعت دستیابی به حافظه و حافظه ثانویه، تغییری نکرده است. مسئله مهمتر این است که بعضی از پردازنده ها می توانند در هر پالس ساعت، کارهای بیشتری را نسبت به سایر پردازنده ها انجام دهند. به همین دلیل است که یک پردازنده Cyrix 6X86 با سرعت 150 مگاهرتز می تواند از لحاظ کارآیی با یک پردازنده پنتیوم 200 مگاهرتز برابری نماید. عجیب تر اینکه کارآیی یک پنتیوم پرو 220 مگاهرتزی از کارآیی یک پنتیوم 200 مگاهرتزی MMX بیشتر است، اما تحت سیستم عامل ویندوز این موضوع برعکس می شود. (پنتیوم پرو یک پردازنده 32 بیتی است که کارآیی آن تحت ویندوز NT بیشتر است. به عبارت دیگر ارتباط عمیقی بین سرعت کامپیوتر و آنچه که کامپیوتر انجام می دهد وجود دارد).

باتوجه به این مسئله، رقبای اینتل، پردازنده های خود را با معیاری به نام Performance Rating P-rating که به اختصار گفته می شود با بازار معرفی می کنند. در این معیار، تولید- کنندگان پردازنده، با استفاده از روشهای متعارف، پردازنده های رده پنتیوم را با پردازنده خود مقایسه می کنند تا خریدار بتواند به سرعت، پردازنده های اینتل را با پردازنده های غیراینتل X86 مقایسه کند.

به طور مثال، شرکت Cyrix،پردازنده 150 مگاهرتزی 6X86 خود را 6X86P200+ نامگذاری کرده است آن هم به این دلیل که P-rating، کارآیی آن را تقریباً مساوی یا بیشتر از کارآیی پنتیوم 200 نشان می دهد. به همین ترتیب، پردازنده K5-PR166 از شرکت AMO با سرعت 117 مگاهرتز کار می کند، ولی آزمایش نشان داده که کارآیی آن نزدیک به کارآیی پنتیوم 166 مگاهرتزی اینتل می باشد.

وظیفة معیارهای Prating تعیین کارآیی پردازنده ها می باشد ولی ممکن است سرعت ساعت واقعی کامپیوتر را نشان بدهید. این موضوع زمانی مصداق می یابد که بخواهید کارآیی پردازنده های مجهز به تکنولوژی MMX[1] را مورد مقایسه قرار می دهد.

چون اینکه در حال حاضر محکی برای ارزیابی کارآیی پردازنده های MMX وجود ندارد، بنابراین در حال حاضر نمی توان گفت که سرعت داخلی ضعیف پردازنده های 6x86 شرکت Cyrix باعث می شود که این پردازنده ها، عملیات MMX را بسیار کندتر از پنتیوم اینتل انجام دهند.

ساختار کلی یک پردازنده

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

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

روی این جدار سرامیکی ممکن است یک لایة SILK Screen مشاهده کنید که برای مشخص نمودن مدل پردازنده و کارخانة سازنده آن مورد استفاده قرار می گیرد. شرکت اینتل اخیـراً بـرای جلوگیـری از تقلیـد برخی از شرکتها، شماره سریال پردازنده را روی آن حک می کند.

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

  • گذرگاه داده ها (Data bus)
  • گذرگاه آدرس (Address bus)
  • حافظه اصلی
  • مجاری ارتباطی دستورالعملها (Instruction pipelines)
  • واحد محاسبات اعشاری (Floating point Linit)
  • دستورالعمل های (MMX Instructions) MMX

گذرگاه داده ها (Data Bus)

گذرگاه داده ها مجموعه ای از سیم ها و مدارات است که وظیفة انتقال اطلاعات به داخل و یا خارج از پردازنده را به عهده دارند. همانند یک بزرگراه، هر چه این گذرگاه عریض تر باشد، عبور داده ها روانتر شده و انتقال بیشتری صورت می گیرد. امروزه پردازنده های پنتیوم و پنتیوم پرو دارای گذرگاه های خارجی 64 بیتی برای داده ها هستند که می توانند در یک زمان 8 بایت داده را منتقل کنند، در صورتی که پردازنده های قدیمی تر 486، از گذرگاه باریکتر 32 بیتی استفاده می کردند. با افزایش سرعت ساعت، پهنای گذرگاه به مسئله ای بسیار حساس تبدیل می شود به طوری که پردازنده ها در حالات خوب، قادر خواهند بود در یک زمان چندین کار مختلف را انجام دهند. در مادربردهایی که با سرعت 60 تا 66 مگاهرتز کار می کنند هر چه گذرگاه داده ها عریض تر باشد. مقدار بیشتری از داده ها می توانند از حافظه به پردازنده منتقل شوند. بنابراین پردازنده باتوجه به سرعت ساعت داخلی بسیار بالای خود بهتر می تواند با داده ها و فرامین کار کند. علاوه بر آن، پردازنده های پنتیوم پرو برای نقل و انتقال داده ها از روشی به نام bursting استفاده می کند تا در یک پالس، حجم زیادی از اطلاعات را وارد حافظة پنهان نماید. به طور کلی عرض گذرگاه داده ها، در خارج و داخل پردازنده یکسان است. با این حال، بعضی از پردازنده های قدیمی نظیر Intel 386SX و Cyrix 486 SLX برای کاهش هزینه از گذرگاه خارجی با عرض کمتری استفاده می کردند، به طوری که عرض گذرگاه داخلی آنها 32 و عرض گذرگاه خارجی آنها 16 بیت بود. نتیجة این کار، مانند این است که در یک بزرگراه بعضی از خطوط حرکت را مسدود نماییم که این کار باعث کندی ترافیک خواهد شد. برعکس، در پردازندة پنتیوم از یک جفت گذرگاه داخلی 32 بیتی استفاده می شود که می تواند زوج خوبی برای گذرگاه خارجی 64 بیتی باشد، چون گذرگاه 64 بیتی می تواند در یک عمل، هر دو مجرا را پر کند.

اگر گذرگاههای داده اینقدر اهمیت دارند چرا آنها را به صورت 128 بیتی یا حتی 256 بیتی نمی سازند؟ جواب این سؤال هزینه است. در طراحی پردازنده، لازم است که تعدادی از پین- های آن را به گذرگاه داده ها اختصاص دهند که این عمل باعث افزایش حجم مدار پردازنده و سوکت آن و همچنین افزایش خطوط ارتباطی روی مادربرد می شود. به عنوان مثال، پردازندة 386DX دارای132 پین وپردازنده 386SX با گذرگاه خارجی 16 بیتی دارای 100 پین می باشد. پردازندة پنتیوم 64 بیتی، از 296 پین برای اتصال به مادربرد استفاده می کند. البته تمامی این پین ها برای داده ها به کار نمی رود ولی عریض شدن گذرگاه به معنای بالارفتن کارآیی آن است.

 


[1] - در پردازنده های MMX، دستورالعمل هایی به پردازنده اضافه شده است که باعث می شوند کارآرایی مربوط به انجام وظایف چند رسانه ای افزایش یابد. Multi Media extensions

سیستم عامل

با یک تارخچه مختصر بررسی سیستم عامل را شروع می کنیم.خود این تاریخچه جالب لست و بعلاوه دیدی کلی از مفاهیم سیستم عامل را ارائه می کند.

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

اهداف و وظایف سیستم عامل

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

× سهولت: سیستم عامل استفاده از کامپیوتر را ساده تر و راحت تر می کند.

× کار آمدی: سیستم عامل موجب استفاده کار آمد از منابع سیستم کامپیوتری می شود.

× قابلیت رشد: سیستم عامل باید به نحوی ساخته شده باشد که به طور مؤثر توسعه ء آزمایش و معرفی قابلیتهای جدید سیستمی را بدون ایجاد مزاحمت در خدمات جاری ء میسر سازد.

سیتم عامل به عنوان رابط کاربر و کامپیوتر

می توان به سخت افزار و نرم افزاری که کاربردها را برای کاربر ارائه می کند به صورت لایه ای یا سلسله مراتبی نگاه کرد. برای استفاده کننده آن کاربردها(کاربر نهایی)ءمعمولاً معماری کامپیوتر اهمیتی ندارد.بنابراینءکاربر نهاییء سیستم کامپیوتری را در قالب کاربردش نگاه می کند.این کاربرد به یک برنامه ساز کاربردی و با استفاده از یک زبان برنامه سازی ایجاد شده است. اگر قرار بود برنامه کاربردی به وسیله مجموعه ای از دستورالعملهای ماشین و با مسئولیت کامل سخت افزارایجاد و کنترل شودءکار بسیار پیچیده و طاقت فرسایی بود.برای تسهیل کارءمجموعه ای از برنامه های سیستمی تهیه شده است. به بعضی از اینها برنامه سودمند می گویند. برنامه های سودمند توابعی هستند که به دفعات مورد استفاده قرار گرفته و به ایجاد برنامه ، مدیریت پرونده ها و کنترل دستگاههای ورودی / خروجی کمک می کنند. برنامه ساز از این امکانات برای ایجاد برنامه کاربردی استفاده می کند و این کاربردها در هنگام اجرا، این برنامه های سودمند را برای انجام بعضی وظایف فعال می کنند. مهمترین برنامه سیستمی ،سیستم عامل است. سیستم عامل جزئیات سخت افزار را از دید برنماه ساز پنهان کرده و رابط مناسبی رابرای استفاده او از سیستم فراهم می کند. لذاسیستم عامل به صورت یک میانجی برای تسهیل دسترسی برنامه ساز و برنامه های کاربردی از امکانات و خدمات عمل می کند.

به طور خلاصه، سیستم عامل معمولاً در زمینه های زیر خدمات خود را ارائه می کند:

- ایجاد برنامه : سیستم عامل امکانات وخدمات متنوعی مثل ویرایشگر و اشکال زداها را برای حمایت از ایجاد برنامهارائه می کند. معمولاص این خدمات به شکل برنامه های سودمندی هستند که واقعاً جزء سیستم عامل نیستند، اما از طریق آن قابل دسترس هستند.

- اجرای برنامه : برای اجرای یک برنامه ، کارهای مهمی لازم است انجام شود. برنامه ها و داده ها باید در حافظه اصلی بار شوند، دستگاههای ورودی / خروجی و پرونده ها باید مقدارگذاری اولیه بشوند و سایر منابع تهیه گردد. سیستم عامل همه این کارها را برای کاربر انجام می دهد.

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

- کنترل دسترسی به پرونده ها : در مورد پرونده ها ، علاوه بر ماهیت دستگاه (دیسک، نوار) ، قالب پرونده ها در روی رسانه ذخیره سازی نیز بایدمد نظر باشد. سیستم عامل نه تنها به این جزئیات می پردازد. بلکه در سیستمهایی که همزمان کاربران متعددی دارند راهکارهای حفاظتی لازم برای کنترل دسترسی به پرونده ها را هم فراهم می کند.

- دسترسی به سیستم عامل : در مورد یک سیستم عمومی یا اشتراکی ، سیستم عامل دسترسی به کل سیستم و منابع مختلف را کنترل می کند. او باید از دسترسی کاربران غیر مجاز به منابع و داده ها جلوگیری کرده و مشکلات ناشی از درگیری برای منابع را رفع کند.

- کشف و پاسخ به خطاها: هنگامی که سیستم کامپیوتری در حال اجراست. خطاهای متنوعی می تواند بروز کند؛ خطاهای سخت افزاری مثل خطای حافظه یا کار نکردن یا بد کار کردن دستگاه ، خطاهای نرم افزاری مثل سرریز شدن در محاسبات ، تلاش برای دسترسی به یکمحل دستگاه ، خطاهای نرم افزاری مثل سرریز شدن در محاسبات ، تلاش برای دسترسی به یک محل غیر مجاز از حاظهو ناتوانی سیستم عامل برای پاسخگویی به درخواست یک کاربرد. در هر صورتسیستم عامل باید با کمترین تأثیر روی کاربردهای در حال اجرا عکس العمل لازم برای برطرف کردن شرایط خطا را نشان می دهد. این عکس العمل می تواند پایان دادن به برنامه عامل خطا ، تکرار عمل و یا تنها گزارش کردن خطا به کاربرد مربوط باشد.

امنیت در پایگاه داده‌های کامپیوتری

مقدمه

در طی سه دهة اخیر تعداد پایگاه داده‌های کامپیوتری افزایش بسیاری داشته است. حضور اینترنت به همراه توانائیهای شبکه، دسترسی به داده و اطلاعات را آسانتر کرده است. به عنوان مثال، کاربران امروزه می‌توانند به حجم بالایی از اطلاعات در فاصلة زمانی بسیار کوتاهی دسترسی پیدا کنند. به همین نسبتی که ابزارها و تکنولوژی دسترسی و استفاده از اطلاعات توسعه می‌یابند، نیاز به حفاظت اطلاعات هم بوجود می‌آید. بسیاری دولتها و سازمانها صنعتی داده‌های مهم و طبقه بندی شده‌ای دارند که باید حفاظت شوند. سازمانهای بسیار دیگری هم مثل مؤسسات دانشگاهی نیز اطلاعات مهمی در مورد دانشجویان و کارمندانشان دارند. در نتیجه  تکنیکهایی برای حفاظت داده های ذخیره شده در سیستمهای مدیریت پایگاه داده،[1] اولویت بالایی پیدا کرده‌اند.

در طول سه دهة اخیر، پیشرفتهای بسیاری در مورد امنیت پایگاه داده‌ها حاصل شده است. بسیاری از کارهای اولیه، روی امنیت پایگاه داده‌های آماری انجام شد. در دهة 70، همزمان با شروع تحقیقات روی پایگاه داده‌های رابطه‌ای، توجه مستقیماً به مسئله کنترل دسترسی[2] بود و بیشتر از همه، کار روی مدلهای کنترل دسترسی احتیاطی[3] شروع شد. در حالی که، در سالهای پایانی دهة 70، کار بروی امنیت الزامی[4] ولی در واقع تا مطالعات نیروی هوایی در 1982، که تلاش وسیعی برای DBMSهای امن چند سطحی[5] بود، کار مهمی انجام نشد.

در هزارة جدید با حضور تکنولوژیهایی مثل کتابخانه‌های دیجیتال، شبکه گستره جهانی و سیستمهای محاسباتی اشتراکی، علاقه بسیاری به امنیت نه تنها در بین سازمانهای دولتی، بلکه بین سازمانهای اقتصادی هم وجود دارد. این مقاله مروری به پیشرفتها و محصولات در سیستمهای پایگاه داده‌ای امن در دو زمینة اجباری و احتیاطی دارد.

2  کنترل دسترسی (مفاهیم و سیاستها)

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

 

2ـ1  مفاهیم اساسی

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

قانون اعطای مجوز، در حالت کلی بیان می‌کند که فرد[6] S اجازه دارد که امتیاز P[7]  را بروی شیئی [8] O بکار ببرد.

اشیاء مجاز[9] : ترکیبات غیرفعال سیستم هستند که باید در مقابل دسترسی‌های غیرمجاز محافظت شوند. اشیایی که باید به آنها متوجه شدند به مدل داده‌ای مورد استفاده بستگی دارند. به عنوان مثال، در یک سیستم عامل فایلها و دایرکتوریها اشیاء هستند. در حالیکه، در یک DBMS منابعی که باید محافظت شوند رابطه ها، دیدها و صفات هستند.

اشخاص مجاز[10] : موجودیتهایی در سیستم هستند که اجازة دسترسی به آنها داده می‌شود. اشخاص به دسته‌های زیر تقسیم بندی می‌شدند :

  •  کاربران : که شخصیتهای مجزا و مشخصی هستند که با سیستم در ارتباطند.
  •  گروهها  مجموعه ای از کاربران.
  •  نقشها[11] : مجموعه‌ای نامدار از امتیازها که احتیاج دارند، فعالیت خاصی را در رابطه با سیستم انجام دهند.
  •  سلسله عملیات[12] : که برنامه‌هایی را برای کاربر اجراء می‌کند. به طور کلی، سلسله عملیات به آدرسهای حافظه، استفاده از CPU ، فراخوانی برنامه‌های دیگر و عملیات بروی داده اشاره می‌کند.

امتیازهای مجاز[13] : انواع عملیاتی را که یک فرد می‌تواند روی یک شیئی در سیستم اجراء کند، بیان می‌کند. مجموعة این امتیازها به منابعی که باید محافظت شوند، بستگی دارد. به عنوان مثال، در یک سیستم عامل خواندن، نوشتن و اجراء از امتیازها هستند. ولی، دریک DBMS رابطه‌ای، انتخاب، درج، تغییر و حذف از جمله امتیازها به شمار می‌روند.

 


[1] - DBMS

[2] - Access Control

[3] - Discretionary

[4] - Mandatory

[5] - Multilevel

[6] - Subject

[7] -Privilege

[8] - Object

[9] - Authorization Object

[10] - Authorization Subject

[11] - Role

[12] - process

[13] - Authorization privilege