برنامه نویسی سیستمی

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


 


 خصوصیات برنامه های سیستمی  

1-   حجم این نوع برنامه ها بسیار کم می باشد .

2-  عموماً این برنامه ها با وقفه و با بافرها کار می کنند .

3-  نویسنده این نوع برنامه ها می باسیت آشنایی کامل به سخت افزار و Bios , OS  داشته باشد .

 4-  زبان این نوع برنامه نویسی ASM  و یا C مناسب تر می باشد .

 5-  در صورت استفاده از وقفه در برنامه سیستمی باید تمام پارامترهای آن در نظر گرفته شود .

 

مروری بر مقاهیم و اصطلاحات بکار رفته در سیستمها

 

ANSI.SYS : این فایل استانداردی برای صفحه کلید و صفحه نمایش می باشد که در فایل config.sys  نوشته شده و هنگام بوت شدن DOS بار ( LOAD ) می شود .

Batch Files: گاهی برای انجام یک کاری نیاز است که مجموعه ای از دستورات خط فرمان هم زمان اجرا شوند. این دستورات را میتوان در داخل یک فایل ( با پسوند BAT) که بصورت متنی است قرار داد و با اجرای این فایل دستورات داخل آن اجرا میشوند.

Baud Rate: نرخ انتقال اطلاعات ( ارسال و دریافت ) بین مبدا و مقصد میباشد.

BIOS : ورودی و خروجی اولیه . یک سری برنامه ها و توابعی هستند که از طریق شرکت سازنده Main  Board طراحی و نوشته می شود. این برنامه ها در یک IC که روی M/B است میباشند.

آدرس IC شروع :F000:E000  تا آدرس F000:FFFF

حجم IC : 1FFF می باشد .

ASSIGN : اختصاص دادن .

CRC : کد تشخیص خطا ( به صورت چرخشی یک چک علامت بر بررسی خطا می گذارد ) می باشد که هنگام ذخیره سازی اطلاعات در هارد دیسک و غیره کنار اطلاعات ذخیره میشود سپس هنگام خواندن مجدداً توسط این کدها صحت بازیابی آنها تضمین می شود .

Com File : فایلهای اجرای هستند که حجم آنها کوچکتر از  k64 و به اندازه یک سگمنت می باشند .

Command Com : دستورات داخلی سیستم عامل DOS  را در خود دارد. هر یک از این دستورات مشابه یک تابع می باشند که با وارد کردن دستور در خط فرمان در صورت وجود آن تابع اجرا شده در غیر اینصورت به مسیر مراجعه می شود . اگرفایل اجرای ( دستور خارجی ) با عبارت وارد شده در خط فرمان وجود داشته باشد اجرا می شود، در غیر اینصورت پیغام خطا داده می شود .

CRT : عبارت است از Cathode Ray Tub به صفحه نمایش هایی می گویند که بصورت تیوپ هستند و اشعه کاتدی از ته آن به صفحه مقابل تابیده می شود ، مثل مانیتورهای لامپ تصویر دار .

Scan-Code : یک کد 2 بایتی که مستقیماً از صفحه کلید وارد کامپیوتر می شود. این کد استانداردبین صفحه کلید و کامپیوتر است.  در این کد بازای هر کلیدی که زده میشود  دو عدد دوبایتی یکی هنگام فشار دادن کلید و دیگری هنکام برداشتن کلید از صفحه کلید وارد کامپیوتر میشود . 

Ascii -Code : (اسکى ،American Standard Code for Interchange Information ) کداسکی جزءاستاندارهای امریکایی به صورت 8 بیتی( 1بایتی )برای مبادله اطلاعات است. در این کد علائم و کاراکترها و اعداد انگلیسی از 0 تا 127 میباشد. حروف و کاراکترهای فارسی از 128 به بعد کد گذاری شده است. شکل و نوع کاراکترها از کد 128به بعدبرای کشورها آزاد است که شکل یا font خودشان را بسازند. استفاده از این کد جهت انتقال متن از یک کشوربه کشور دیگربه همین دلیل دارای اشکال است زیرا نمی توان در یک متن چند زبان (مختلف ) را قرار داد. با این کد در اینترنت هر صفحه ای که دریافت میشود فونت آن نیاز است . شکل کاراکترها از کد  128 به بعد در هر کشور برای شکل آن کشور است. بنابراین کاراکترهای زبانهای مختلف نمی تواند در کد یک بایتی قرار بگیرد .

Unicode : یک نوع کاراکتر استاندارد معرفی شده از طرف سازمان بین المللی استاندارد iso می باشد. در این کد هر کاراکتر 16 بیت می باشد تمام سیستم عامل ها از قبیل Unix وwindows و...  این کد را می شناسد. برای رفع مشکل کد اسکی این استاندارد معرفی شده که در آن از 0 تا 127 مربوط به حروف انگلیسی وسمبل ها میباشد. Unicode در دو بایت کد کاراکترهای تمام کشورها را دارد وبرای هرکشوری بازه خاصی تعریف شده است . بطور مثال کد کاراکترهای فارسی (کشور ایران) از0600H شروع می شود. چون این کد استاندارد هست  صفحه WEB هایی که با Unicode طراحی شوند دیگر نیاز به نصب فونت برای آن صفحه نمیباشد .

مزایای این نوع کد عبارتند از:

الف)برنامه نویسان با کاراکترهای Unicode می توانند 65536 نوع کاراکتر متفاوت تعریف کنند درصورتی  که کاراکتر های  Ascii حداکثر 256 نوع میباشند.

ب) Unicode نسبت به سایر کدها آسان و سریع می باشد.

ج)سرعت عملکرد ویندوز در کاراکترهای نوع Ascii پایین تر است به دلیل اینکه باید رشته ها را ابتدا به Unicode تبدیل کند و سپس به Ascii تا نمایش دهد و همچنین در هنگام خواندن بر عکس مرحله فوق صورت میگیرد.

EMM : ( Expanded Memory Manager ) به برنامه ای که حافظه توسعه یافته سیستم (Extended Memory System) EMS را انجام می دهد گویند .

Memmaker : یک برنامه تحت Dos   است که همه کارهای بهینه سازی حافظه را انجام میدهد .

FAT : اطلاعات مربوط به فایلها و زیر شاخه ها در این قسمت ذخیره می شود در صورتی که این قسمت آسیب ببیند امکان دسترسی به فایلها از بین خواهد رفت .

Parity : روشی برای تشخیص خطاء در ارسال و دریافت اطلاعات است. در این روش معمولا یک بیت بصورت Odd Parity یا Even Parity استفاده میشود.

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

 Real Mode در این مود دسترسی به بیشتر بخشهای حافظه و پورت ها امکانپذیر می باشد .

Resident Programs  : برنامه هایی هستند که با اجرا کردن آن در خط فرمان حافظه مقیم می شود و کنترل CPU مجدداً در اختیار سیستم عامل قرار می گیرد و زمانی که شرایط برای فراخوانی برنامه مقیم شده فراهم شود اجرا خواهد شد .

Virtual memory  : به علت اینکه در چند سال گذشته سخت افزار RAM قیمتهای بالایی داشت از این تکنیک برای توسعه حافظه بصورت مجازیVM  به منظور اجرای برنامه های حجم بالا استفاده شده است. در واقع VM بخشی از هارد است که به عنوان حافظه RAM  در نظر گرفته می شود. در حال حاضر این تکنیک کمتر استفاده می شود .

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