Skip to content

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. Protsessor barcha arifmetik va mantiqiy operatsiyalarni bajarishga ma'sul. Bu operatsiyalar, qurilmada kiritilgan buyruqlar to'plamlari(dasturlar) asosida amalga oshiriladi.

CPU

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)

RAM


Kompyuter ishlashi uchun dastur ma'lumotlari biror joyda saqlanishi kerak va bu joy RAM deb nomlanadi.

RAM

RAM kompyuter hozirda foydalanayotgan yoki qayta ishlayotgan ma'lumotlarni vaqtincha saqlash uchun kompyuter xotirasi turi. RAM vaqtincha xotira bo'lib, unda saqlangan ma'lumotlar kompyuter o'chirilganda yo'qoladi. RAM odatda operatsion tizim va dasturlar ma'lumotlarini 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:

  1. Dastur biror amalni bajarishni xohlaydi masalan: fayl o'qish.
  2. Bu so'rov system call orqali kernelga yuboriladi.
  3. Kernel disk bilan ishlaydi va kerakli ma'lumotni oladi.
  4. 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 tizim va hardware o'rtasidagi vositachi.

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

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 faqat signal bor yoki signal yo'q degan tushunchani biladi. Bu 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. 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.

Info

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, rasmlarni ifodalab 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.

https://codeguppy.com/blog/why-are-there-8-bits-in-a-byte/img/bit_byte.png

15 sonini baytlarda ifodalab ko'ramiz. 15 sonini bit larda ifodalasak natija quyidagicha bo'ladi.

15₁₀ = 1111₂

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:

15₁₀ = 00001111₂

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 ko'rib chiqdik. Endi esa u ma'lumotlarni qanday tartibda saqlashi va ularga qanday murojaat qilinishini tushunib olamiz.

Kompyuterning tezkor xotirasi (RAM) ni asalari uyasiga o'xshatish mumkin. Asalari uyasi ko'plab kataklardan iborat bo'lgani kabi, RAM ham juda ko'p xotira kataklaridan tashkil topgan. Har bir katakda ma'lumot saqlanadi va har bir katakning o'ziga xos manzili (address) mavjud.

Zamonaviy kompyuterlarda har bir xotira manzili odatda 1 bayt (8 bit) ma'lumotni bildiradi. Ya'ni, har bir manzil orqali aynan 1 bayt hajmdagi ma'lumotga murojaat qilinadi.

Ma'lumot hajmini quyidagicha tasavvur qilish mumkin:

  • 1 bit → 0 yoki 1
  • 8 bit → 1 bayt
  • 1024 bayt → 1 KB
  • 1024 KB → 1 MB
  • va hokazo...

Tip

Bit fizik signal. Bayt ma'lumot birligi. Manzil joylashuv.

Xotira manzillari aslida oddiy sonlar bo'lib, ular odatda hexadecimal (16 lik sanoq tizimi)da 0x00000000, 0x00000001, 0x00000002 ko'rinishida yoziladi. Hexadecimal tizim tanlanishining asosiy sababi u ikkilik (binary) ko'rinishni qisqa va qulay shaklda ifodalaydi. Bu esa past darajadagi dasturlash va tizim bilan ishlashda juda muhim. Masalan:

  • 16 (decimal) -> 0x10 (hex)
  • 255 (decimal) -> 0xFF (hex)

Xotira manzillari soni cheksiz emas, u asosan protsessor (CPU) arxitekturasining address bus kengligiga bog'liq.

Bundan tashqari, operatsion tizim (OT) ham xotira manzillaridan foydalanishda muhim rol o'ynaydi. Keling, nima uchun CPU va OT xotira manzillaridan foydalanishda cheklovlarga ega ekanini ko'rib chiqamiz.

Odatda CPU va OT tanlashda "32-bitmi yoki 64-bitmi?" degan savol beriladi. Bu savolning sababi shundaki, 32-bit tizim maksimal 2³² ta manzilni manzillay(address) oladi (≈ 4 GB), 64-bit tizim esa nazariy jihatdan 2⁶⁴ ta manzilni manzillay(address) oladi. Demak, tizim qanchalik katta bitli bo'lsa, u shunchalik ko'p xotirani manzillay(address) oladi.

Shu sababli, 32-bit tizimlarda odatda 4 GB dan ortiq RAMdan to'liq foydalanish imkoni yo'q. Amaliyotda esa operatsion tizim va boshqa texnik sabablar tufayli bu cheklov biroz kamroq (taxminan 3–3.5 GB) bo'lishi mumkin.

RAM haqida umumiy tushunchaga ega bo'ldik endi RAM o'zida saqlagan ma'lumot bilan CPU qanday ishlashini ko'rib chiqsak bo'ladi.

Protsessor (CPU) qanday ishlaydi?

Kompyuter yoqilganda CPU bilan qanday jarayon sodir bo'lishini bosqichma-bosqich ko'rib chiqamiz.

Kompyuter yoqish tugmasi bosilganda CPU darhol mustaqil ravishda dasturlarni "qidirib topib" ishlashni boshlamaydi. CPU ishlab chiqarilganda uning ichki registrlariga oldindan qiymatlar o'rnatilgan bo'ladi.

Shulardan eng muhimi Program Counter (PC) yoki Instruction Pointer (IP) registridir. Bu registr CPU bajaradigan keyingi buyruqning xotira manzilini saqlaydi.

Kompyuter yoqilganda (reset holatda) PC/IP registrga oldindan maxsus manzil o'rnatiladi. CPU har doim ishni aynan shu manzildan boshlaydi. Bu holat reset deb ataladi. Reset manzili CPU arxitekturasiga bog'liq bo'lib, turlicha bo'lishi mumkin. Masalan:

  • x86 arxitekturasida: 0xFFFFFFF0
  • ARM arxitekturasida: 0x00000000 yoki 0xFFFF0000

Bu manzil hardware darajada belgilangan bo'lib, uni o'zgartirib bo'lmaydi.

Endi savol tug'iladi: kompyuter yangi yoqilganda RAM bo'sh, operatsion tizim (OT) ham, dasturlar ham hali yuklanmagan bo'ladi. Unda CPU bu manzildan nimani o'qiydi? Bu yerda ROM (Read-Only Memory) ishlatiladi. CPU dastlabki buyruqlarni aynan ROMdan o'qiydi. ROM ichida BIOS yoki UEFI firmware saqlanadi. Bu hardware bilan ishlaydigan kichik dastur.

BIOS/UEFI ning asosiy vazifalari:

  • CPU, RAM va boshqa qurilmalarni tekshirish.
  • disklarni aniqlash.
  • qayerda operatsion tizim joylashganini topish.
  • OT yuklovchini (bootloader) RAM ga yuklash.

Operatsion tizimni yuklash jarayonida BIOS diskdan birinchi sektorni (boot sektorni) o'qiydi va uni RAM ga joylaydi. Shundan so'ng CPU bajarishni shu joydan davom ettirishi uchun Program Counter (PC/IP) registrini shu manzilga o'rnatadi.

Natijada boshqaruv bootloaderga o'tadi va operatsion tizim yuklanishi boshlanadi. Shu bosqichdan keyin BIOS o'z rolini yakunlaydi va qolgan jarayonlarni operatsion tizim davom ettiradi.

Machine code va instruction

CPU buyruqni qanday bajaradi

Stack va function call

Alignment va xotira layout

Cache va performance

Virtual xotira