Kompyuter nimalardan tashkil topgan?
Kompyuter insoniyat tarixidagi eng katta va muhim ixtirolardan biridir. Kompyuter bu – tarkibiga kiruvchi tashqi qurilmalar va turli komponentlar yordamida ishlovchi kompleks elektron qurilmadir.
Ularning asosiy tarkibi quyidagicha:
- Processor(CPU)
- Processor memory(RAM va ROM)
- Motherboard(ona plata)
- Storage device(SSD va HDD)
- Kiritish/chiqarish qurilmalari (Input/Output Devices)
Algoritmlar ishlashi davomida yuqoridagi qismlardan eng ko'p RAM va CPU dan foydalanadi. Bu ikkala qism Algoritmlar uchun muhim qismlar hisoblanadi. Algoritm aynan CPU tomonidan bajariladi.
Algoritm → kod → mashina buyruqlari → CPU bajaradi.
Processor(CPU) – kompyuter tizimining yurituvchi qismi bo'lib u barcha amallarni bajarish uchun kerakli bo'lgan ma'lumotlarni qabul qiladi, ularni boshqaradi. Protsessori barcha arifmetik va mantiqiy operatsiyalarni bajarishga ma'sul. Bu operatsiyalar, qurilmada kiritilgan buyruqlar to'plamlari(dasturlar) asosida amalga oshiriladi.

Odatda protsessor bir nechta yadro(core)lardan tashkil topgan bo'ladi. Yadro CPU ning kichik protsessori.
CPUlar rivojlanish davrida faqat bitta yadro(single-core) bilan ishlab chiqarilgan, ular ma'lum bir vaqt oralig'da faqat bitta vazifani bajara olishgan xolos. Hozirgi kunda protsessorlar ko'p yadrolardan tashkil topgan. Ularning har biri bir vaqtning o'zida turli vazifalarni bajaradi. Bitta yadro bitta vazifani bajarishi mumkin, shuning uchun protsessor qancha ko'p yadroga ega bo'lsa, uning samaradorligi shuncha yuqori bo'ladi.
CPU quyidagilarni bajaradi:
- arifmetik amallar (+, −, *, /)
- taqqoslashlar (>, <, ==)
- shartlar (if, while, for)
- sakrashlar (jump)
Protsessor qanday ishlaydi?
Protsessor dastur buyruqlarini bevosita diskdan emas, balki operativ xotira (RAM) dan oladi. Operatsion tizim dasturlarni diskdan RAM ga yuklaydi va protsessorga qaysi buyruqni qachon bajarish kerakligini rejalashtirib beradi (scheduling).
Shu sababli, bir vaqtning o'zida qancha ko'p ilova ishlayotgan bo'lsa, protsessor shuncha ko'p kontekst almashadi va uning yuklanishi ortishiga sabab bo'ladi.
RAM
Algoritmlar ishlashi uchun ma'lumotlar biror joyda saqlanishi kerak — bu joy RAM.

RAM - kompyuter hozirda foydalanayotgan yoki qayta ishlayotgan ma'lumotlarni vaqtincha saqlash uchun foydalaniladigan kompyuter xotirasi turi. RAM o'zgaruvchan xotira bo'lib, unda saqlangan ma'lumotlar kompyuter o'chirilganda yo'qoladi. RAM odatda operatsion tizim, amaliy dasturlar va kompyuter hozirda foydalanayotgan ma'lumotlarni saqlash uchun ishlatiladi.
Agar RAM yetishmasa:
- dastur sekinlashadi (swap ishlaydi ya'ni diskdan qo'shimcha joy oladi)
- yoki umuman ishlamaydi (Out of Memory).
Shu sababli algoritmlarni loyihalashda vaqt va xotira samaradorligi doimo inobatga olinishi kerak.
Operatsion tizim va Kernel
Operatsion tizim
Kompyuter yoki qo'l telefon ishlatganimizda Windows, Android, iOS, macOS va Linux kabi nomlarga tez-tez duch kelamiz. Bularning barchasi operatsion tizimlar (keyingi o'rinlarda OT) hisoblanadi.
OT — kompyuter qurilmasi (hardware) va foydalanuvchi o'rtasida vositachi bo'lib ishlaydigan dasturiy ta’minot. Oddiy qilib aytganda, foydalanuvchi kompyuterga to'g'ridan-to'g'ri buyruq bera olmaydi. Foydalanuvchi buyruqlarni OT orqali beradi, OT esa ularni kompyuter tushunadigan ko'rinishga o'girib, qurilmaga yetkazadi.
Masalan: Siz fayl ochmoqchisiz OT diskdan faylni qidiradi, uni xotiraga (RAM) yuklaydi va dastur orqali ekranga chiqaradi. Bu jarayonlarning barchasi foydalanuvchi uchun juda oddiy ko'rinadi, lekin aslida OT juda ko'p murakkab ishlarni bajaradi.
Operatsion tizim quyidagi asosiy vazifalarni bajaradi:
- Xotirani boshqarish (Memory Management) — RAM qanday ishlatilishini nazorat qiladi.
- Jarayonlarni boshqarish (Process Management) — bir vaqtning o'zida bir nechta dastur ishlashini ta’minlaydi.
- Fayl tizimini boshqarish (File System) — fayllarni saqlash va ularga murojaat qilishni boshqaradi.
- Qurilmalar bilan ishlash (Device Management) — klaviatura, disk, printer, tarmoq kabi qurilmalarni boshqaradi.
- Xavfsizlik (Security) — foydalanuvchi ruxsatlarini va tizim xavfsizligini nazorat qiladi.
Kernel
OTning eng muhim qismi Kernel deb ataladi. Kernel OTning markaziy yadrosi, ya’ni qurulma bilan to'g'ridan-to'g'ri ishlaydigan qism. Foydalanuvchi dasturlari (masalan, brauzer yoki matn muharriri) kompyuter qurilmasi bilan bevosita ishlamaydi. Ular barcha so'rovlarni kernel orqali yuboradi.
Jarayon taxminan quyidagicha ishlaydi:
- Dastur biror amalni bajarishni xohlaydi (masalan, fayl o'qish).
- Bu so'rov system call orqali kernelga yuboriladi.
- Kernel disk bilan ishlaydi va kerakli ma’lumotni oladi.
- Natijani dasturga qaytaradi.
Kernel quyidagi muhim vazifalarni bajaradi:
- CPU boshqaruvi (Scheduling)
- Xotira boshqaruvi
- Qurilmalar bilan ishlash
- Jarayonlar o'rtasida aloqa (IPC)
- System call interfeysi
Agar kernel bo'lmaganida, har bir dastur kompyuter qurilmalarini o'zi boshqarishi kerak bo'lardi.
Info
Operatsion tizim — foydalanuvchi va kompyuter o'rtasidagi vositachi.
Kernel — operatsion tizimning hardware bilan ishlaydigan eng asosiy qismi.
System call — foydalanuvchi dasturi (user program) operatsion tizim yadrosi kernelga murojaat qilish usuli. Oddiy qilib aytganda, dasturlar kompyuter qurilmalariga (disk, RAM, tarmoq, klaviatura va hokazo) to'g'ridan-to'g'ri murojaat qila olmaydi. Buning o'rniga ular kernel orqali ishlaydi. Kernel bilan aloqa qilish uchun ishlatiladigan mexanizm system call deyiladi.
Operatsion tizimlarda xavfsizlik va barqarorlik sababli dasturlar cheklangan muhitda foydalanuvchi muhitda (user space) da ishlaydi. Qurulma bilan ishlaydigan kod esa kernel muhitda (kernel space) da bajariladi.
Shuning uchun agar dastur fayl o'qish, yozish, yangi jarayon yaratish, tarmoq orqali ma’lumot yuborish, xotira ajratish kabi amallarni kerneldan system call orqali so'raydi.
Linuxdagi mashhur system call lar:
| System Call | Vazifasi |
|---|---|
open() |
fayl ochish |
read() |
fayldan o'qish |
write() |
faylga yozish |
close() |
faylni yopish |
fork() |
yangi process yaratish |
exec() |
yangi dastur ishga tushirish |
mmap() |
xotira bilan ishlash |
Barchasi tushunarli bo'lyapdi deb o'ylayman, keling yana ham churroq kirishga harakat qilamiz. Endi xotiraning pastroq darajasi bit, bayt va manzil tushunchalarini ko'rib chiqamiz.
Xotiraning eng past darajasi: Bit, bayt va manzil
Dastur yozishimiz davomida int, string, array, object kabi tushunchalar bilan ishlaymiz, ammo kompyuter bularni to'g'ridan to'g'ri tushunmaydi. Kompyuter uchun faqat signal bor yoki signal yo'q degan tushunchani biladi. Bu ikkilik qaror butun kompyuter arxitekturasining asosi hisoblanadi. Signal bor bo'lsa 1 yo'q bo'lsa 0 qabul qilingan. Bu 0 va 1 bit deb nomlanadi.
Info
Bit — axborotning bazaviy oʻlchov birligi.
Info
Bit (Binary Digit) - Ikkilik tizim. Ya'ni 0* va *1. Bu shunchaki raqam emas, bu signal bor yoki signal yo'q degani.
Nima uchun aynan 2 holat? Chunki 2 holatni ajratish oson, xato ehtimoli kam, fizik jihatdan barqaror. Agar 10 ta holat bo‘lganida kuchlanishlar bir-biriga aralashib ketardi, xatolik ko‘payardi. Ikkilik tizim — muhandislik tanlovi hisoblanadi.
Bit bilan ishlashni o'ziga yarasha noqulay tomonlari ham mavjud bular son yozib bo‘lmaydi, harf yozib bo‘lmaydi, rang, tovush, rasm bo‘lmaydi. Lekin qanday qilib? Kompyuter 0 va 1 ni tushunadi dedingiz lekin 0 va 1 bilan ko'p narsani ifodalab bo'lmaydi deyapsiz, lekin hozir komyuterimda harf, son, musiqa hammasi borku degan tabiy savol tug'iladi. Keling endi bu qanday amalga oshirilganini bilib olamiz.
0 va 1 bilan ko'p narsalarni ifodalab bo'lmaganligi sababli Bayt degan tushuncha o'ylab topilgan. Bayt bu bitlarning ketma-ket guruhi. Hozirgi paytda bitlarni guruhlash standarti sifatida 8 bit 1 bayt deb qabul qilingan. 8 bit bilan 256 kombinatsiya hosil qilish mumkin. Bu bilan harflar, raqamlar, belgilar, rang komponentlari hammasini ifodalash mumkin.

15 sonini baytlarda ifodalab ko'ramiz. 15 sonini bit larda ifodalasak natija quyidagicha bo'ladi.
Lekin bu bayt qonuniyatiga to'g'ri kelmaydi. Bayt qonuniyatiga mos kelishi uchun 8 bit bo'lishi kerak lekin bizda natija 4 bit. Buni to'g'rilash uchun to'ldiruvchi padding qo'shamiz. Natija quyidagicha bo'ladi:
Son boshiga qo'shilgan 0 lar natijani o'zgartirmaydi.
Baytning o‘zi ma’nosiz bo'ladi, baytda ifodalngan qiymat harf, son, rang yoki boshqa narsani ifodalashini dasturlash tili, CPU instruktsiyasi yoki OT belgilaydi. Bit va bayt tushunchalari xotira bilan uzviy bog'liq tuhsunchalar hisoblanadi endi quyida xotiraga ham to'xtalib o'tamiz.
Xotira manzili
Yuqorida xotira ya'ni RAM nima ekanligini aniqlab ketdik endi uni qanday tartibda ma'lumot saqlashini o'rganib chiqamiz.
Kompyuterning tezkor xotirasi (RAM) ni asalarining uyasiga o‘xshatish mumkin. Asalari uyasi ko‘plab kataklardan iborat bo‘lgani kabi, RAM ham juda ko‘p xotira kataklaridan tashkil topgan. Har bir katakning o‘z manzili mavjud bo‘lib, u yerda ma'lumot saqlanadi.
- Xotisa manzillari ro'yxati
- CPU address space