Deklarativ dasturlash bu dasturiy ta'minot qanday amalga oshirilishini aniq belgilashdan ko'ra, dastur nimani amalga oshirishi kerakligini belgilaydigan kompyuter dasturlash paradigmasi
Deklarativ dasturlash bu dasturiy ta'minot qanday amalga oshirilishini aniq belgilashdan ko'ra, dastur nimani amalga oshirishi kerakligini belgilaydigan kompyuter dasturlash paradigmasi. Ushbu yondashuv tabiiy ravishda rasmiy mantiqiy tizimlarning dasturiy ta'rifiga mos keladi va ba'zi bir parallel ishlov berish dasturlarini dasturlashni soddalashtirish foydasiga ega.Obyektga yonaltirilgan dasturlash yoki OYD dasturlarni haqiqiy hayotiylikka asoslangan holdagi dasturlash usulidir. OYD ning protsedurali dasturlash tillari (masalan, Pascal, Basic, Fortran) dan asosiy farqi shundaki, OYD asosan obyektlarga asoslangan holda ishlasa, protsedurali dasturlash tillari asosan funksiyalarga asoslangan boladi, yani bu usuldagi dasturlashda har bitta buyruqlar qadamma-qadam bajarilib boriladi.
Class OYDning markazi hisoblanadi va u har xil kodlar, malumotlar va shu malumotlar qay tarzda ozgarishini ifodalovchi hususiyatlar saqlanadi. Boshqacharoq qilib aytadigan bolsak hayotiy obyektlarning qanday faoliyat yuritishi, nimalardan iborat ekanligi, qanday hususiyatlarga ega ekanligini tavsiflovchi kichik bir hujjat sifatida qarash ham mumkin.
Class oz ichiga ozgaruvchilar va metodlar(funksiyalar) hamda qiymati ozgarmaydigan konstantalarni oladi. Yana shuni ham takidlash kerakki, har bitta klass bitta ozgaruvchi tipi bolib ham hizmat qiladi. Xuddi Integer, String yoki boshqa tiplar kabi har bir class ham malum bir tip sifatida qaralishi mumkin.
Obyekt bu class bilan farqli tushuncha xisoblanadi. Obyekt biz yozgan klassimizdagi har xil qoidalarga boysunadigan malumot bolib, u tezkor xotirada saqlanadi, class esa qattiq diskda saqlanadi. Har bir yasalgan obyekt tezkor xotiraning malum bir yacheykalariga joylashadi.
1.Dasturlardan foydalanib, biror ish bajarish va shu orqali natija olish, unchalik qiyin jarayon emas. Bir marotaba korib olgan inson, keyingi safar ozi bajara oladi. Kopchilik adashtiradigan narsa, bu foydalanuvchi dasturchi deyilmaydi, faqatgina dastur foydalanuvchisi boladi xolos. Dasturchi, foydalanuvchilar foydalanishi uchun dastur yaratadi va bu jarayon juda murakkab hisoblanadi.
Formal gramatika va uning xossalari.
Grammatika. Programmalash tili grammatikasi programma ayrim jumlalari yoki butun bir programma yoziladigan til sintaksisi yoki shakllarining ramziy tavsifidir. Shuni qayd qilish kerakki, grammatika jumlalar semantikasini (mazmunini) aniqlamaydi. Semantika haqida malumot obyekt kodni generatsiya qiluvchi programmalarda boladi. Sintaksis va semantika ortasida farqni korish uchun misol koraylik.
I:=J+K va I:=X+4
Bunda X, 4 haqiqiy va I, J, K butun turdagi qiymat va ozgaruvchilar. Bu ikkita jumla bir xil sintaksisga ega -ikkalasi ham qiymat berish amalidir, lekin ularning semantikasi har xil. Birinchisi butun sonli arifmetikani anglatadi, ikkinchisi, suzuvchi nuqtalarda sonlarni qoshib, natijani butun son korinishiga otkazish kerakligini anglatadi. Korinib turibdiki, bu ikkita jumla uchun har xil mashina buyruqlari ketma-ketligiga kompilyatsiya qilinadi. Demak, bu jumlalar ortasidagi farq obyekt kodni generatsiya qilishda korinadi. Grammatikalarni berishning har xil shakllari bor, shular bari Bekus-Naura shakli (formasi) (BNSH).BNSH grammatikasi hosil qiluvchi qoidalar toplamidan iborat bolib, bu qoidalar qandaydir programmalash tili qurilmasining sintaksisini aniqlaydi.Paskal tilining sodda grammatikasi.
::= PROGRAM
Var BEGIN END.
::= id
::= ( ; ::= : ::= INTEGER
::= id ( , id
::= ( ; ::= ((( ::= id :қ ::= (+( - ::= (+( div ::= id(int(()
::= READ()
::= WRITE()
::= FOR DO
::= id := TO ::=(BEGIN END
Absolyut yuklagich
Absolyut yuklagichning ishi nisbatan sodda. Barcha ish bir o‘tishda amalga oshiriladi:
birinchi navbatda berilgan programma to‘g‘riligi tekshiriladi. Masalan, programmaning
operativ xotiraga sig‘ishi yoki yo‘qligi, buning uchun bosh qism yozuvi o‘qiladi. Keyin
navbat bilan programma tanasi yozuvlari o‘qilib, ko‘rsatilgan adres bo‘yicha joylashtiriladi.
Va nihoyat, tugallash yozuvi o‘qilgach programmaning boshlang‘ich adresiga boshqaruv
uzatiladi.
Bogʻlovchi tahrir.
Bog‘lovchi yuklagich algoritmlari va jadvallari. Bog‘lovchi yuklagich algoritmi
absolyut yuklagich algortmiga nisbatan murakkab. Chunki unda obyekt programmalar
o‘rtasidagi bog‘lanish tashqi nomlarga ko‘rsatgichlarni aniqlashga bog‘liqdir. Bu
ko‘rsatkichlar tashqi nomlarga adreslar aniqlangandan keyingina qiymat qabul qiladi. Shu
sababli bog‘lovchi yuklagich xuddi assemblerga o‘xshab ikkita o‘tishda amalga oshiriladi.
Birinchi o‘tishda tashqi murojaatlar uchun adreslarni aniqlaydi, ikkinchi o‘tishda yuklashni,
ko‘chirish va bog‘lashlarni bajaradi.
Bog‘lovchi yuklagich uchun tashqi nomlar jadvali- ESTAB zarurdir. Bu jadval
SYMTABga o‘xshash bo‘lib, unda nomlar va tashqi murojaatlar adreslari (barcha boshqaruv
seksiyalari uchun).
Boshqa muhim o‘zgaruvchilar - PROGADDR (programma yuklanish adresi) va
CSADDR (boshqaruv seksiyasi adresi).
Absolyut va bogʻlovchi tahrirni amalga oshirish.
Bog‘lovchi yuklagich uchun tashqi nomlar jadvali- ESTAB zarurdir. Bu jadval
SYMTABga o‘xshash bo‘lib, unda nomlar va tashqi murojaatlar adreslari (barcha boshqaruv
seksiyalari uchun).
Boshqa muhim o‘zgaruvchilar - PROGADDR (programma yuklanish adresi) va
CSADDR (boshqaruv seksiyasi adresi). PROGADDR- operativ xotiradagi bog‘lanuvchi programma yuklanishi zarur bo‘lgan
programma boshlanish adresidir. Yuklagich bu adresni operatsion tizimdan oladi.
CSADDR- ayni paytda yuklagich tomonidan qayta ishlanayotgan boshqaruv
seksiyasining boshlanish adresi. Bu adres boshqaruv seksiyadagi barcha nisbiy adreslarga
qo‘shiladi. Bog‘lovchi yuklagich birinchi o‘tishida obyekt programmaning faqat bosh qism
yozuvi va aniqlovchi yozuvni qayta ishlaydi. Birinchi boshqaruv seksiyasi uchun
PROGADDR boshlang‘ich adres bo‘ladi. Boshqaruv seksiyasi yozuvlaridan o‘qilgan nomlar
(seksiya nomi, aniq yozuvdan nomlar) ESTAB ga qiymatlari bilan kiritiladi.
Bu adreslar aniqlovchi yozuvdan qiymatlar CSADDR ga qo‘shishdan hosil bo‘ladi.
Tugallash yozuvini o‘qigandan keyin boshqaruv seksiya uzunligi (CSLTH) CSADDR
ga qo‘shiladi va bu qiymat keyingi boshqaruv seksiyasi uchun boshlang‘ich adres
hisoblanadi.
Birinchi o‘tishdan keyin ESTAB barcha tashqi nomlar va ular qiymatiga ega bo‘ladi.
Programmani yuklash, ko‘chirish va bog‘lash amalda ikkinchi o‘tishda qilinadi.
CSADDR o‘zgaruvchisi ayni paytda operativ xotiraga yuklanayotgan boshqaruv
seksiyasining boshlanish adresini bo‘ladi. Programma tanasining navbatdagi yozuvi
o‘qilganda, undan obyekt kod ko‘rsatilgan adresga yuklanadi(bu adresga CSADDR qiymati
qo‘shiladi). Modifikator yozuv uchraganda modifikatsiyada ishlatilgan nom ESTAB dan
qidiriladi va uning qiymati ko‘rsatilgan adresga qo‘shiladi yoki ayriladi.
Yuklagich o‘z ishini yuklangan programmaga boshqaruvni berish bilan tugallaydi.
Operatsion qamrov.
2.Operatsion qamrov. OS eng muxim vazifalardan biri foydalanuvchilar
masalalarning operatsion qamrovini taminlashdir. Bu taminlash bir qancha servis
programmalardan iborat bo‘lib, ular topshiriq (masalani) yechish jarayonida foydalaniladi
va foydalanuvchi talabiga muofiq mashina resurslarini ajratish va boshqarishni
taminlaydi. OS tomonidan ko‘rsatiladigan xizmat sifatida o‘qish-yozish funsiyasini
ko‘raylik. SO‘M uchun tuzilgan programmada o‘qish-yozish uchun (bir baytni)
takrorlovchi jarayonni tashkil qilish kerak edi (RD yoki WD). Xatolarni aniqlash va
bartaraf qilish foydalanuvchi (programma tizuvchi) zimmasiga yuklatilgan edi. O‘qishyozishni OS tomonidan bajarilish masalani keskin osonlashtiradi. Bunda standart
programmaga kerakli qurilma identifikatori va parametrlarini berish yetarli hisoblanadi.
Bu turdagi standart servis programmalar mashinaning kengaytmasi
sifatida qaralishi mumkin. Har bir OS ko‘p sondagi servis programmalarga ega
bo‘lib, ular kengaytirilgan mashinana tashkil qiladi va foydalanuvchi programmasi ishlash
paytida ishlatiladi. Foydalanuvchi programma tuzayotganda OS ning asosiy apparat
kengaytmasi darajasigacha bilish shart bo‘lmaydi. Ayrim hollarda kengaytirilgan mashina
virtul mashina deyiladi, biroq bu termin boshqa ma’noda ham ishlatilishi mumkin.
Multiprogramma rejimli OS da foydalanuvchi progrmmasi talabi bo‘yicha EHM
resurslarini taqsimlaydigan standart xizmatchi programmalar mavjud. Ular
foydalanadigan programma uchun operativ xotirani va markaziy protsessorni oldindan
aniqlangan strategiya bo‘yicha topshiriqlar o‘rtasida taqsimlaydi. Ayrima tizimlarda
foydalanuvchilar programmalari OS funksiyalarini bevosita chiqarishi mumkin. Bu holda
OS hujjatlarida standart servis programmalar va berilganlar sohalari real adreslarda
beriladi. Masalan, o‘qish-yozish programmalari xotiraning 238 adresida joylashganaligini
bilgan holda foydalanuvchi JSUB 238 buyrug‘i orqali bu programmalariga murojaat
qilishi mumkin. Lekin bu usulning xatoliklarga olib kelish ehtimoli katta va u OS
himoyalarini cheklab o‘tadi.
Nisbatan takomillashgan OS da OS funksiyalariga murojaat maxsus mashina
buyruqlari-supervizorni chiqarish (SVC-Super Visor Call) orqali amalga oshiriladi. Bu
buyruqni bajarilishi uzilishni chaqiradi va natijada boshqaruv standart servis
programmaga uzatiladi. SVC bilan birga beriladigan kod OS so‘rov turini (funksiyani)
aniqlaydi. Uzilish chaqirilganda markaziy protsessor foydalanuvchi rejimidan supervizor
rejimiga o‘tadi. Bu holatda OS buyruqlaridan va vositalaridan foydalaniladi. OS ko‘p
tashkil qiluvchilari shu rejimda ishlaydi.
OSning asosiy (muhim) vazifalaridan biri EHM resurslarini boshqarishdir.
Aksariyat resurslar bevosita apparat qurilmalariga, ya’ni operativ xotira, o‘qish-yozish
qurilmalari, markaziy protsessorga bog‘liqdir. Shundan kelib chiqib aytish mumkinki, OS
ko‘p funksiyalari bevosita EHM arxitekturasi bilan aniqlanadi. Misol uchun, SO‘Mda
operativ xotirani boshqarish uzilishlari, supervizorni chaqirish programmalari yo‘q va u
bitta foydalanuvchi bilan ishlashga moslashgan. SO‘M/qV da aksincha xotira katta va
unda multiprogrammali OSdan foydalanish maqsadga muvofiqdir va resurslarni
taqsimlash imkoniyatini beradi. quyida biz SO‘M/qV misolida EHM resurslarini
boshqarish muammosini ko‘ramiz, ayrim hollarda ma’lum bir xossalar shu turdagi boshqa
mashinalarga ham ko‘chirilishi mumkin.
Operatsion tizimlarning asosiy vazifalari – foydalanuvchining EXM bilan muloqatini
soddalashtirishdir. Bundan tashqari, OS ning muxim vazifasi- tizimli programma
taminotining elementlari bo‘lgan translyator, yuklagichlar va monitorlar uchun qulay interfes
yaratishdir. Tizimli programma taminoti (TPT) apparat vositalari ustiga qurilgan usqurtma
bo‘lib, u foydalanuvchini mashina bilan ishlashini o‘ng‘ay qiladi. EXM samaradorligini
oshirish uchun OS EHM ning resurslarini boshqarishdek murakkab jarayonlarni amalga
oshiradi. OSning asosiy vazifasi quyidagi sxemada keltirilgan:
OS bilan foydalanuvchi o‘rtasidan muloqat malum bir boshqaruv tilida amalga
oshiriladi (RUN P). OS ning foydalanuvchi uchun qulaylik nuqtai-nazaridan ko‘p
ishlatiladigan xizmatlar uchun standart servis programmalariga ega. Masalan, READ (F)
bunda mashina darajasida o‘qish-yozishni amalga oshirishni OS o‘z zimmasiga oladi.
Bunday xizmatchi programmalar yechimdan masalalarning operatsion qamrovining bir qismi sifatida qaralishi mumkin. Garchi OS faqat programma taminoti ko‘rinishi amalga
oshirilgan deb xisoblansa ham, amallarning malum birlari mikro-programmalar to‘plami
ko‘rinishida programma –apparat vositalari orqali amalga oshirilgan
Jarayonlarni bajarishni rejalashtirish.
Jarayon OT boshqaruvi ostida xisoblanadi. Bunday qabul qilishda xisoblash tizimlarida bajariladigan xamma narsa(faqat foydalanuvchi dasturlarigina emas, balki OTning xam ma’lum isimlari xam) jarayonlar toplami sifatida tashkil qilingandir. Bir prtsessorli kompyuter tizimida vaqtning xar bir momntida faqat bitta jarayon bajarilishi mumkin. Multidasturli xisoblash tizimlarida bir nechta jarayonni sevdaparallel qayta ishlash protsessorni bir jarayondan ikkinchisiga otkazish yordamida amalga oshiriladi. Bir jarayon bajarilguncha, qolganlari oz navbvtini kutadi. Korinib turibdiki xar bir jarayon minimum ikki xolatda bolishi mumkin: Jarayon bajarilmoqda va jarayon bajarilmayaptiBajarilayatgan xolatdagi jarayon, ma’lum vaqtdan song OT tomonidan tugallanishi, yoki toxtatilishi va yana bajarilmayatgan xolatga otkazilishi mumkin. Jarayon toxtatilishi ikkita sabab bilan roy berishi mumkin: uni ishini davo ettirishi uchun biror bir xodisa talab etilsa, (masalan, kirish –chiqish operatsiyasini tugallash) yoki OT tomonidan ish jarayon uchun ajratilgan vaqt tugaganda roy beradi. Shundan song OT belgilangan algoritm boyicha bajarilmayatgan xolatidagi jarayonlardan birini tanlaydi va
bu jarayonni bajarilayatgan xolatga otkazadi. Tizimda paydo bolayatgan yangi jarayon,
boshqa jarayon bajarilmayatgan xolatga o`tkaziladi.