Skip to content

Kompyuter va Operatsion tizim

Operatsion tizim qanday ishlashini tushunish uchun avvalhardwareo kompyuter qanday asosiy qismlardan tashkil topganini bilib olish kerak. Chunki operatsion tizim o'z-o'zidan ishlamaydi. U aynan kompyuter qurilmalari, xotira, protsessor, disk va boshqa resurslar bilan birga ishlaydi.

Kompyuter insoniyat tarixidagi eng muhim texnologik ixtirolardan biri hisoblanadi. Bugungi kunda biz undan matn yozish, internetdan foydalanish, dastur tuzish, video ko'rish, ma'lumot saqlash va boshqa ko'plab vazifalar uchun foydalanamiz. Lekin foydalanuvchi ko'radigan qulay interfeys ortida juda ko'p murakkab jarayonlar sodir bo'ladi.

Kompyuterning asosiy tarkibiy qismlariga quyidagilar kiradi:

  • Protsessor (CPU — Central Processing Unit)
  • Tezkor xotira (RAM — Random Access Memory)
  • Ona plata (Motherboard)
  • Doimiy xotira qurilmalari (SSD yoki HDD)
  • Kiritish va chiqarish qurilmalari (Input/Output Devices)

Protsessor ya'ni CPU, kompyuterning asosiy hisoblash markazi hisoblanadi. U dasturlar tomonidan berilgan buyruqlarni bajaradi, ma'lumotlarni qayta ishlaydi va kerakli natijani chiqaradi. Barcha arifmetik va mantiqiy amallar protsessor tomonidan bajariladi.

CPU

Masalan, siz kalkulyatorda ikki sonni qo'shsangiz, brauzerda sahifa ochsangiz yoki dastur kodini ishga tushirsangiz, bu ishlarning barchasida protsessor qatnashadi. Dasturdagi buyruqlar kompyuter tushunadigan past darajadagi ko'rsatmalarga aylantiriladi va CPU shu ko'rsatmalarni bajaradi.

Zamonaviy protsessorlar odatda bir nechta yadrodan iborat bo'ladi. Yadro (Core) protsessor ichidagi mustaqil hisoblash birligi(protsessor bir nechta protsessorlardan tashkil topadi). Ilgari protsessorlar asosan bitta yadroli bo'lgan va bir vaqtning o'zida faqat bitta vazifani bajarishga moslashgan edi. Hozirgi protsessorlarda esa bir nechta yadro mavjud bo'lib, ular bir vaqtning o'zida turli vazifalarni bajarishga yordam beradi.

Masalan bir yadro brauzer bilan ishlayotgan bo'lsa, ikkinchi yadro musiqa dasturini, uchinchi yadro esa fon rejimida ishlayotgan tizim xizmatlarini bajarishi mumkin. Bu jarayon foydalanuvchiga oddiy ko'rinadi, lekin uning ortida operatsion tizimning resurslarni taqsimlash mexanizmi turadi.

CPU quyidagi amallarni bajaradi:

  • arifmetik amallar: qo'shish, ayirish, ko'paytirish, bo'lish;
  • taqqoslash amallari: katta, kichik, teng;
  • shartli amallar: if, while, for;
  • sakrash buyruqlari: dastur bajarilishini boshqa joydan davom ettirish.

Dasturlash tilida yozilgan oddiy if yoki for operatorlari ham past darajada CPU bajaradigan buyruqlarga aylanadi. Masalan, for sikli aslida ma'lum shartni tekshirish, qiymatni o'zgartirish va kerak bo'lsa dastur bajarilishini oldingi qatorga qaytarish kabi ko'rsatmalardan tashkil topadi.

RAM

Kompyuter ishlashi uchun dastur ma'lumotlari biror joyda vaqtincha saqlanishi kerak. Bu joy tezkor xotira, ya'ni RAM deb ataladi.

RAM

RAM kompyuter hozirda foydalanayotgan ma'lumotlarni saqlaydi. Dastur ishga tushirilganda uning kodi va ishlashi uchun kerakli ma'lumotlar diskdan RAM ga yuklanadi. CPU esa ushbu ma'lumotlar bilan ishlaydi.

RAM juda tez ishlaydi, lekin uning muhim kamchiligi bor: u vaqtinchalik xotira hisoblanadi. Kompyuter o'chirilsa yoki elektr ta'minoti uzilsa, RAM ichidagi ma'lumotlar yo'qoladi. Shu sababli doimiy saqlanishi kerak bo'lgan fayllar SSD yoki HDD kabi disk qurilmalarida saqlanadi.

Operatsion tizim va dasturlar ishlayotgan paytda ularning katta qismi RAM da joylashadi. Masalan, brauzer, matn muharriri, terminal, video player yoki boshqa dasturlar ochilganda ular RAM dan joy egallaydi.

Agar RAM yetishmasa, quyidagi holatlar yuzaga kelishi mumkin:

  • dasturlar sekin ishlay boshlaydi;
  • operatsion tizim diskdagi swap maydonidan foydalanadi;
  • ayrim dasturlar yopilib qolishi mumkin;
  • tizimda Out of Memory xatosi yuzaga kelishi mumkin.

Swap — RAM yetishmaganda diskdan vaqtinchalik xotira sifatida foydalanish mexanizmi. Lekin disk RAM ga qaraganda ancha sekin ishlaydi. Shu sababli swap ishga tushganda kompyuter sezilarli darajada sekinlashishi mumkin.

Tip

Shu nuqtada dasturchilar uchun muhim signal bor: dastur yozishda nafaqat uning ishlashi, balki qancha xotira ishlatishi ham muhim. Yaxshi algoritm faqat tez ishlaydigan emas, balki xotiradan ham samarali foydalanadigan algoritmdir.


Operatsion tizim va Kernel

Operatsion tizim

Kompyuter yoki mobil telefon ishlatganimizda Windows, Android, iOS, macOS va Linux kabi nomlarga tez-tez duch kelamiz. Bularning barchasi operatsion tizimlar hisoblanadi. Batafsil bundan oldingi mana bu maqolada tanishib chiqsangiz bo'ladi.

Kernel

Operatsion tizimning eng muhim qismi Kernel deb ataladi.

Kernel — operatsion tizimning markaziy yadrosi. U dasturlar va kompyuter qurilmalari o'rtasida eng past darajadagi boshqaruvni amalga oshiradi.

Foydalanuvchi dasturlari, masalan, brauzer, matn muharriri yoki terminal, qurilma bilan to'g'ridan-to'g'ri ishlamaydi. Ular disk, RAM, tarmoq yoki boshqa qurilmalardan foydalanish uchun kernelga murojaat qiladi.

Jarayon taxminan quyidagicha ishlaydi:

  1. Dastur biror amalni bajarishni xohlaydi, masalan, fayl o'qimoqchi bo'ladi.
  2. Bu so'rov system call orqali kernelga yuboriladi.
  3. Kernel disk va fayl tizimi bilan ishlaydi.
  4. Kerakli ma'lumotni topadi.
  5. Natijani dasturga qaytaradi.

Kernel quyidagi muhim vazifalarni bajaradi:

  • CPU vaqtini jarayonlar o'rtasida taqsimlaydi;
  • RAM xotirani boshqaradi;
  • qurilmalar bilan ishlaydi;
  • jarayonlar o'rtasidagi aloqani nazorat qiladi;
  • system call interfeysini taqdim etadi;
  • xavfsizlik va ruxsatlarni nazorat qiladi.

Agar kernel bo'lmaganida, har bir dastur disk, xotira, tarmoq kartasi va boshqa qurilmalar bilan o'zi mustaqil ishlashi kerak bo'lardi. Bu esa nafaqat murakkab, balki xavfli ham bo'lardi. Chunki bitta noto'g'ri yozilgan dastur butun tizim xotirasini buzishi yoki boshqa dasturlarning ma'lumotlariga zarar yetkazishi mumkin edi.

Info

Operatsion tizim foydalanuvchi va kompyuter o'rtasidagi vositachi bo'lsa, kernel dasturlar va qurilma o'rtasidagi eng asosiy vositachi hisoblanadi.

System call

System call — foydalanuvchi dasturi kernelga murojaat qilish uchun ishlatadigan mexanizm.

Dasturlar xavfsizlik sababli cheklangan muhitda ishlaydi. Bu muhit user space deb ataladi. Kernel esa alohida himoyalangan muhitda ishlaydi. Bu muhit kernel space deb ataladi.

User space da ishlayotgan dastur diskdan fayl o'qish, faylga yozish, yangi jarayon yaratish, tarmoq orqali ma'lumot yuborish yoki xotira ajratish kabi amallarni bevosita bajara olmaydi. Buning o'rniga u kernelga system call orqali murojaat qiladi.

Masalan, dastur fayl o'qimoqchi bo'lsa, u kernelga "menga shu fayldan ma'lumot olib ber" degan so'rov yuboradi. Kernel fayl tizimi va disk bilan ishlaydi, ma'lumotni oladi va uni dasturga qaytaradi.

Linuxdagi mashhur system call lar:

System Call Vazifasi
open() fayl ochish
read() fayldan o'qish
write() faylga yozish
close() faylni yopish
fork() yangi jarayon yaratish
exec() yangi dastur ishga tushirish
mmap() xotira bilan ishlash

System call operatsion tizimni xavfsiz va barqaror ishlashiga yordam beradi. Chunki dasturlar qurilma bilan bevosita ishlamaydi, balki kernel nazorati ostida ishlaydi.


Endi mavzuga biroz chuqurroq kiramiz. Kompyuter xotirani qanday ko'radi? Dasturlar yozayotgan int, string, array kabi tushunchalar past darajada qanday ifodalanadi? Buni tushunish uchun bit, bayt va xotira manzili tushunchalarini ko'rib chiqamiz.

Xotiraning eng past darajasi: bit, bayt va manzil

Dastur yozishda biz int, string, array, object kabi tushunchalar bilan ishlaymiz. Lekin kompyuter bu tushunchalarni to'g'ridan-to'g'ri tushunmaydi. Kompyuterning eng past darajasida hamma narsa elektr signallariga borib taqaladi.

Kompyuter uchun eng sodda holat quyidagicha:

  • signal bor;
  • signal yo'q.

Signal bor holat odatda 1, signal yo'q holat esa 0 sifatida ifodalanadi. Mana shu 0 va 1 qiymatlar bit deb ataladi.

Info

Bit — axborotning eng kichik o'lchov birligi. Bit (Binary Digit) ikkilik raqam degani. U faqat ikki holatdan birini ifodalaydi: 0 yoki 1.

Nima uchun aynan ikki holat tanlangan? Chunki ikki holatni fizik jihatdan ajratish oson. Signal bor yoki yo'qligini aniqlash 10 ta turli kuchlanish darajasini ajratishdan ancha ishonchliroq. Agar kompyuter 10 ta holat bilan ishlaganida, kuchlanishlar orasidagi farqni aniq ajratish qiyin bo'lar edi va xatolik ehtimoli oshardi.

Info

Ikkilik tizim — bu faqat matematik tanlov emas, balki muhandislik jihatdan eng barqaror yechimlardan biridir.

Bitta bit bilan juda kam narsa ifodalash mumkin. U faqat 0 yoki 1 qiymatini saqlaydi. Lekin biz kompyuterda sonlar, harflar, rasmlar, videolar va tovushlar bilan ishlaymiz. Bularning barchasi qanday qilib 0 va 1 orqali ifodalanadi?

Bu savolga javob bayt tushunchasi bilan bog'liq.

Bayt — bitlarning ketma-ket guruhidir. Hozirgi kompyuter arxitekturasida odatda 8 bit 1 bayt deb qabul qilingan.

1 bayt = 8 bit

8 bit yordamida 256 ta turli kombinatsiya hosil qilish mumkin.

00000000 -> 0
00000001 -> 1
00000010 -> 2
...
11111111 -> 255

Demak, 1 bayt yordamida 0 dan 255 gacha bo'lgan qiymatlarni ifodalash mumkin.

Bit va bayt

Masalan, 15 sonini ikkilik sanoq tizimida yozsak:

15₁₀ = 1111₂

Lekin 1 bayt 8 bitdan iborat bo'lishi kerak. Bizda esa faqat 4 bit bor. Shu sababli chap tomonga qo'shimcha nollar qo'shiladi:

15₁₀ = 00001111₂

Chap tomondagi nollar qiymatni o'zgartirmaydi. Ular faqat qiymatni 8 bitli ko'rinishga keltirish uchun qo'shiladi.

Baytning o'zi mustaqil holda ma'no anglatmaydi. Masalan, 01000001 qiymati ba'zi holatda 65 sonini, boshqa holatda esa ASCII jadvalida A harfini bildirishi mumkin. Bu qiymat qanday talqin qilinishi dastur, CPU instruktsiyasi, fayl formati yoki operatsion tizimga bog'liq.

Masalan:

01000001 -> 65
01000001 -> 'A'

Demak, kompyuterning past darajasida hamma narsa bit va baytlardan iborat. Yuqori darajadagi ma'lumotlar esa shu bit va baytlarning ma'lum qoidalar asosida talqin qilinishidir.

Xotira manzili

Yuqorida RAM nima ekanligini ko'rdik. Endi RAM ma'lumotlarni qanday tartibda saqlashi va CPU ularga qanday murojaat qilishini tushunamiz.

RAM ni ko'p tokchali javonga o'xshatish mumkin. Har bir tokchada ma'lumot saqlanadi va har bir tokchning o'z raqami bo'ladi. Ana shu raqam xotira manzili deb ataladi.

Zamonaviy kompyuterlarda har bir xotira manzili odatda 1 bayt ma'lumotni bildiradi. Ya'ni har bir manzil orqali 1 bayt hajmdagi ma'lumotga murojaat qilinadi.

Masalan:

0x00000000 -> 01000001
0x00000001 -> 00001111
0x00000002 -> 11111111

Bu yerda chap tomonda xotira manzili, o'ng tomonda esa shu manzilda saqlanayotgan qiymat ko'rsatilgan.

Ma'lumot hajmini quyidagicha tasavvur qilish mumkin:

  • 1 bit -> 0 yoki 1
  • 8 bit -> 1 bayt
  • 1024 bayt -> 1 KB
  • 1024 KB -> 1 MB
  • 1024 MB -> 1 GB

Tip

Bit — fizik signalga asoslangan qiymat. Bayt — ma'lumot birligi. Manzil — xotiradagi joylashuv.

Xotira manzillari aslida oddiy sonlardir. Ular ko'pincha hexadecimal, ya'ni 16 lik sanoq tizimida yoziladi:

0x00000000
0x00000001
0x00000002

Hexadecimal ko'rinish ikkilik sanoq tizimini ixcham va o'qishga qulay shaklda ifodalash uchun ishlatiladi.

Masalan:

16  -> 0x10
255 -> 0xFF

Xotira manzillari soni cheksiz emas. U asosan CPU arxitekturasi va operatsion tizim imkoniyatlariga bog'liq.

Shu yerda 32-bit va 64-bit tushunchalari paydo bo'ladi.

32-bit tizim nazariy jihatdan 2³² ta manzilni ifodalashi mumkin. Bu taxminan 4 GB xotira degani.

2³² = 4 294 967 296 bayt ≈ 4 GB

64-bit tizim esa nazariy jihatdan 2⁶⁴ ta manzilni ifodalashi mumkin. Bu juda katta xotira maydoni hisoblanadi.

Shu sababli 32-bit tizimlarda odatda 4 GB dan ortiq RAM dan to'liq foydalanish qiyin. Amaliyotda esa operatsion tizim va boshqa texnik sabablar tufayli foydalanish mumkin bo'lgan xotira bundan ham kamroq, taxminan 3–3.5 GB bo'lishi mumkin.

64-bit tizimlar esa ancha katta xotira bilan ishlash imkonini beradi. Bugungi kunda aksariyat zamonaviy kompyuterlar va operatsion tizimlar 64-bit arxitekturaga asoslangan.

Endi RAM va xotira manzillari haqida umumiy tasavvurga ega bo'ldik. Keyingi qadam CPU ushbu ma'lumotlar bilan qanday ishlashini tushunish.

Protsessor (CPU) qanday ishlaydi?

Kompyuter yoqilganda CPU darhol operatsion tizimni "qidirib topib" ishga tushirib yubormaydi. CPU juda aniq qoidalar asosida ishlaydi. U faqat bajarilishi kerak bo'lgan keyingi buyruqning manzilini biladi va shu manzildagi buyruqni bajaradi.

CPU ichida registrlar deb ataladigan juda tezkor kichik xotira maydonlari mavjud. Registrlar CPU ishlashi uchun zarur bo'lgan qiymatlarni vaqtincha saqlaydi.

Eng muhim registrlardan biri Program Counter (PC) yoki Instruction Pointer (IP) deb ataladi. Bu registr CPU bajarishi kerak bo'lgan keyingi buyruqning xotira manzilini saqlaydi.

CPU ning asosiy ish jarayonini soddalashtirib quyidagicha tasavvur qilish mumkin:

  1. PC/IP registrida keyingi buyruq manzili turadi.
  2. CPU shu manzildagi buyruqni o'qiydi.
  3. Buyruqni tushunadi.
  4. Uni bajaradi.
  5. PC/IP keyingi buyruq manziliga o'tadi.

Bu jarayon juda katta tezlikda takrorlanadi.

Kompyuter yoqilganda CPU reset holatiga tushadi. Reset holatida PC/IP registriga oldindan belgilangan maxsus manzil o'rnatiladi. CPU ishni aynan shu manzildan boshlaydi.

Bu manzil CPU arxitekturasiga bog'liq bo'ladi. Masalan:

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

Bu qiymatlar qurilmani fizik darajasida belgilangan bo'ladi.

Endi muhim savol tug'iladi: kompyuter yangi yoqilganda RAM hali bo'sh bo'ladi. Operatsion tizim ham, dasturlar ham hali yuklanmagan. Unda CPU birinchi buyruqni qayerdan o'qiydi?

Bu yerda ROM ishlatiladi.

ROM — Read-Only Memory, ya'ni faqat o'qish uchun mo'ljallangan xotira. ROM ichida BIOS yoki UEFI firmware saqlanadi.

Firmware - qurilma bilan ishlash uchun yozilgan past darajadagi dastur.

BIOS/UEFI ning asosiy vazifalari quyidagilardan iborat:

  • CPU, RAM va boshqa qurilmalarni tekshirish;
  • disklarni aniqlash;
  • operatsion tizim qayerda joylashganini topish;
  • bootloaderni RAM ga yuklash;
  • boshqaruvni bootloaderga topshirish.

Kompyuter yoqilganda CPU avval BIOS yoki UEFI kodini bajaradi. BIOS/UEFI qurilmalarni tekshiradi, diskni topadi va operatsion tizimni yuklash uchun kerakli bootloaderni RAM ga joylaydi.

Shundan so'ng CPU bajarishni bootloader joylashgan manzildan davom ettiradi. Bootloader esa operatsion tizim kernelini yuklaydi va boshqaruvni kernelga topshiradi.

Natijada operatsion tizim ishga tushadi.

Bu jarayon foydalanuvchi uchun oddiy ko'rinadi: tugmani bosamiz, kompyuter yoqiladi, ekran paydo bo'ladi. Lekin ichkarida CPU, firmware, bootloader, kernel va operatsion tizim bir-biri bilan bir qancha jarayonlarni amalga oshiradi.


Bu qismda operatsion tizim qanday ishlashini tushunish uchun kerak bo'ladigan asosiy tushunchalarni ko'rib chiqdik.

Keyingi maqolada dastur va jarayon o'rtasidagi farq, jarayon xotirada qanday ko'rinishda saqlanishi hamda operatsion tizim jarayonlarni qanday boshqarishi haqida o'rganamiz yoki Linuxni o'rganishni boshlaymiz.