• Yadro tuzilishi
  • Linux tizimida jarayonlar
  • Linuxda jarayonlarni boshqarish tizim chaqiruvi
  • Linux da jarayonlarni boshqarish
  • Operatsion · � � tizimlar o‘zbekiston respublikasi axborot texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti u




    Download 4,88 Mb.
    bet108/129
    Sana18.11.2023
    Hajmi4,88 Mb.
    #100808
    1   ...   104   105   106   107   108   109   110   111   ...   129
    Bog'liq
    a12b69867f018f785135aa04d3624799 Operatsion tizimlar грифли 100 шт

    Buyruq

    Funksiya

    cat

    standart fayla bir nechta fayllarni ulash

    chmod

    faylni himoya qilish rejimini o‘zgartirish

    cp

    faylni nusxalash

    cut

    fayldan matn ustunlarini kesish

    grep

    ma’lum bir shablonni fayldan qidirish

    head

    fayldan birinchi qatorni ajratib olish

    ls

    katalog ro‘yhati

    make

    ikkilik faylni yaratish uchun fayllarni
    kompilatsiya qilish

    mkdir

    katalog yaratish

    paste

    matnlarni faylga joylashtirish

    pr

    chop etish uchun faylni formatlash

    rm

    faylni o‘chirish

    rmdir

    katalogni o‘chirish

    sort

    fayl satrlarini alifbo bo‘yicha tartiblash

    tail

    fayldan ohirgi satrlarni chiqarish

    tr

    Belgilarni bir to‘plamdan boshqasiga o‘zgartirish

    POSIX 1003.1-2008 standarti ushbu dasturlarning taxminan 150 tasining sintaksisi va semantikasini aniqlaydi, asosan birinchi uchta toifaga kiradi. Ushbu dasturlarni standartlashtirish g‘oyasining maqsadi barcha Linux tizimlarida ishlaydigan qobiq skriptlarini yozish imkoniyatiga ega bo‘lishdir. Ushbu standart yordamchi dasturlarga qo‘shimcha ravishda veb-brauzerlar, multimedia fayllarini ishga tushuruvchilar, rasmlarni ochish dasturlari, ofis to‘plamlari va boshqa shu kabi ko‘plab dasturlar mavjud. Fayllar va kataloglarni boshqarish buyruqlari 9.1- jadvalda keltirilgan. Masalan, quyidagi buyruqni ko‘rib chiqamiz:
    cp a b
    Ushbu buyruq asl faylni o‘zgartirmasdan, a faylni b fayliga ko‘chirib o‘tkazadi.

    Yadro tuzilishi


    9.1- rasmda Linux operatsion tizimining umumiy tuzilishi ko‘rsatilgan. Endi tizimning yadrosini batafsil ko‘rib chiqaylik (jarayonlarni va fayl tizimini rejalashtirishni o‘rganishni boshlashdan oldin). Yadro to‘g‘ridan-to‘g‘ri qurilma ta’minoti bilan ishlaydi va K/Ch qurilmalari va xotira boshqaruv bloki bilan o‘zaro aloqani ta’minlaydi, shuningdek, protsessorning ularga kirishini nazorat qiladi. Yadroning pastki darajasi (9.2- rasm) past darajadagi uzilishlarni ishlov beruvchi va dispetcherlash mexanizmidan iborat. Dispetcherlash uzilish sodir bo‘lganda amalga oshiriladi. Shu bilan birga, past darajadagi kod jarayonning bajarilishini to‘xtatadi, holatini yadro jarayonlari tarkibida saqlaydi va tegishli drayverni ishga tushiradi. Jarayonni dispetcherlash yadro ma’lum bir operatsiyani tugatgandan so‘ng amalga oshiriladi va foydalanuvchi jarayonini yana ishga tushurish vaqti keladi.
    Keyin turli xil yadro quyi tizimlarini uchta asosiy komponentlarga ajratilgan. 9.2- rasmdagi kiritish/chiqarish komponentlari yadroning barcha qismlarini, quril-malar bilan o‘zaro ishlashni, shuningdek, tarmoq operatsiyalari va tashqi qurilmalarga kiritish/chiqarish operatsiyalarini bajarishni o‘z ichiga oladi. Eng yuqori darajada, barcha kiritish/chiqarish operatsiyalari Virtual fayl tizimi (VFS- Virtual File System) darajasida birlashtirilgan. Eng yuqori darajada faylni o‘qish jarayoni (u xotirada yoki diskda bo‘ladimi) - bu terminal kirishidan belgilar o‘qish operatsiyasini
    bajarish bilan bir xil. Eng past darajada, barcha kiritish/chiqarish operatsiyalari biron bir qurilma drayveridan o‘tadi. Linux ning barcha drayverlari belgili qurilma drayverlari yoki blokli qurilma drayverlari deb tasniflanadi, asosiy farqi shundaki qidirish va tasodifiy kirishga faqat blokli qurilmalar uchun ruxsat beriladi. Texnik nuqtai nazardan, tarmoq qurilmalari belgili qurilmalar, ammo ular bilan ishlash biroz farq qiladi, shuning uchun ularni ajratib ko‘rsatish yaxshiroq (9.2- rasmda ham ajratib ko‘rsatilgan).

    K/Ch komponentlari

    Xotirani boshqarish komponentlari


    Jarayonlarni boshqarish komponentlari




    9.2- rasm. Linux operatsion tizimi yadrosi tuzilishi


    Linux tizimida jarayonlar


    Linux tizimidagi asosiy faol obyektlar - bu jarayonlar. Har bir jarayon bitta dasturni bajaradi va dastlab bitta boshqaruv oqimini oladi. Boshqacha qilib aytganda, jarayonda keyingi bajariladigan ko‘rsatmalarni kuzatib boradigan bitta ko‘rsatma hisoblagichi mavjud. Linux qo‘shimcha jarayonlarni yaratishga imkon beradi (bajarishni boshlaganidan keyin). Linux - ko‘p vazifali tizim va bir vaqtning

    o‘zida bir nechta mustaqil jarayonlar ishlashi mumkin. Bundan tashqari, har bir foydalanuvchi bir vaqtning o‘zida bir nechta faol jarayonlarga ega bo‘lishi mumkin, shuning uchun bir vaqtning o‘zida yuzlab va hatto minglab jarayonlar katta tizimda ishlashi mumkin. Aslida, bitta foydalanuvchi ishchi stansiyalarida o‘nlab fon jarayonlari mavjud, ular demonlar (daemons) deb nomlanadi. Ular tizim qobig‘idan ishga tushganda boshlanadi. Oddiy demon - bu cron. Ushbu demon sizga Linux tizimingizni bir necha daqiqa, soat, kun va hatto oylar davomida rejalashtirishga imkon beradi. Masalan, foydalanuvchi keyingi seshanba kuni soat 3 da tish shifokoriga borishi rejalashtirilgan deb tasavvur qilamiz. Belgilangan kun va vaqt kelganda, cron demon o‘z ishini ko‘radi va o‘z vaqtida ovozli signal dasturini (yangi jarayon shaklida) boshlaydi. Cron demon shuningdek, vaqti-vaqti bilan vazifalarni bajarish uchun ishlatiladi, masalan, har kuni soat 4.00 da diskdan nusxa olish. Demonlar Linux tizimida juda sodda tarzda amalga oshiriladi, chunki ularning har biri boshqa jarayonlarga qaramasdan alohida jarayon hisoblanadi. Linux operatsion tizimida jarayonlar yaratish juda oddiydir. Fork tizim chaqiruvi asl jarayon nusxasini yaratadi, ona jarayoni (parent process) deb ataladi. Yangi jarayon farzand jarayoni (child process) deb ataladi. Ona va farzand jarayonlari o‘zlarining shaxsiy xotira maydoniga ega. Agar ona jarayoni keyinchalik biron bir o‘zgaruvchini o‘zgartirsa, unda bu o‘zgarishlar farzand jarayoniga ko‘rinmaydi (va aksincha). Ochiq fayllar ona va farzand jarayonlari o‘rtasida almashiladi. Bu shuni anglatadiki, agar biron-bir fayl fork tizim chaqirig‘idan oldin ona jarayonida ochilgan bo‘lsa, kelajakda ikkala jarayonda ham ochiq qoladi. Ushbu faylga biron bir jarayon tomonidan kiritilgan o‘zgartirishlar boshqasiga ko‘rinadigan bo‘ladi. Bu xatti-harakatlar yagona oqilona usuldir, chunki bu o‘zgarishlar ushbu faylni ochadigan har qanday boshqa jarayon uchun ham ko‘rinadi.
    Linux operatsion tizimida jarayonni yaratish
    pid = fork( ); /* agar fork muvaffaqiyatli tugatilsa, pid > 0 ona jarayonida */
    if (pid < 0) {
    handle_error(); /* fork muvaffaqiyatsiz tugadi (masalan, xotira yoki qandaydir jadval to‘lib qolsa) */
    } else if (pid > 0) { /* bu yerda ona kodi joylashgan */
    } else { /* bu yerda farzand kodi joylashgan */
    }
    Jarayonlar o‘zlarining PID-lariga ega bo‘ladilar (PID-jarayon identifikatori). Yuqorida aytib o‘tilganidek, jarayon yaratilganda, uning PID-si yangi jarayonning onasiga beriladi. Jarayon identifikatorlari turli xil usullarda qo‘llaniladi. Masalan, farzand jarayoni tugaganda, uning onasi yangi tugatilgan farzand jarayonining PID-ni oladi. Bu juda muhim bo‘lishi mumkin, chunki ona jarayonida ko‘plab farzand jarayonlari bo‘lishi mumkin. Farzand jarayonning ham farzand jarayonlari bo‘lishi mumkin. Linux tizimida jarayonlar bir-birlari bilan xabarlarning biron bir shaklidan foydalangan holda aloqa o‘rnatishi mumkin. Siz ikkita jarayon o‘rtasida kanal yaratishingiz mumkin, bunda bitta jarayon baytlar oqimini yozishi mumkin, boshqa jarayon esa o‘qishi mumkin. Ushbu kanallar ba’zan kanallar (pipes) deb ataladi. Jarayonni sinxronizatsiya qilish bo‘sh kanaldan ma’lumotlarni o‘qiyotganda jarayonni blokirovka qilish orqali amalga oshiriladi. Kanalda ma’lumotlar paydo bo‘lganda, jarayon blokdan chiqariladi. Jarayonlar boshqa usulda - dasturiy uzilishlardan foydalangan holda aloqa o‘rnatishi mumkin. Jarayonlar tizimga kiruvchi signal kelganida qanday harakatlar qilish kerakligini aytishi mumkin.

    Linuxda jarayonlarni boshqarish tizim chaqiruvi


    Qobiqdan foydalanganda, farzand jarayoni foydalanuvchi tomonidan kiritilgan buyruqni bajarishi kerak. U buni exec tizim chaqiruvi bilan amalga oshiradi, bu butun xotira nusxasini birinchi parametrda ko‘rsatilgan fayl tarkibiga almashtiradi.
    Umumiy holatda, exec tizim chaqiruvi uchta parametrga ega: bajariladigan fayl nomi, massiv argumentlari ko‘rsatgichi va massiv qatorlari ko‘rsatgichi. Execl, execv, execle va execle kabi turli xil kutubxona protseduralari sizga ba’zi parametrlarni o‘tkazib yuborish yoki ularni boshqa yo‘llar bilan belgilashga imkon beradi. Ushbu protseduralarning barchasi bir xil tizim chaqirig‘iga murojaat qiladi.

    Linux da jarayonlarni boshqarish


    UNIX ning klassik tizimda jarayonlarni boshqarish vositalari jarayonni yaratish va yangi dasturni ishga tushurishni ikki turdagi amallarga ajratadi:

    • fork tizim chaqiruvi yangi jarayonni yaratadi;

    • yangi dastur exec tizim chaqiruvi yordamida ishga tushuriladi.

    UNIX da jarayon har bir alohida dastur konsepsiyasini amalga oshirishni qo‘llab-quvvatlash uchun zarur bo‘lgan barcha axborot bor. Linux tizimida jarayonning xususiyatlari uch guruhga bo‘linadi: jarayonni, uni o‘rab turgan muhit va kontekstni identifikatsiyalash. Jarayon identifikatori (PID) – bu jarayonning yagona identifikatori (son); ilova boshqa jarayon uchun signal, modify yoki wait tizim chaqiruvi bajarilayotganida operatsion tizimida jarayonlarga buyruqlar berish uchun foydalaniladi.

    Download 4,88 Mb.
    1   ...   104   105   106   107   108   109   110   111   ...   129




    Download 4,88 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Operatsion · � � tizimlar o‘zbekiston respublikasi axborot texnologiyalari va kommunikatsiyalarini rivojlantirish vazirligi muhammad al-xorazmiy nomidagi toshkent axborot texnologiyalari universiteti u

    Download 4,88 Mb.