Operatsion tizimlar qanday ishlaydi: Siz ishlab chiquvchi sifatida bilishingiz kerak bo'lgan 10 ta tushuncha

Ikkilik gapirasizmi? Mashina kodini tushuna olasizmi? Agar sizga 1s va 0 larga to'la varaqni bergan bo'lsam, bu nimani anglatishini ayta olasizmi? Agar siz ilgari hech qachon eshitmagan tilda gaplashadigan davlatga borgan bo'lsangiz yoki u haqda eshitgan bo'lsangiz ham, lekin u umuman gapirmasa ham, u erda bo'lganingizda sizga muloqot qilish uchun nima kerak edi mahalliy odamlar bilan?

Sizga tarjimon kerak bo'ladi. Sizning operatsion tizimingiz kompyuteringizda tarjimon sifatida ishlaydi. U 1 va 0s, ha / yo'q va yoqish / o'chirish qiymatlarini siz tushunadigan tilga o'zgartiradi. Bularning barchasini optimallashtirilgan grafik interfeys yoki GUI-da amalga oshirib, sichqoncha bilan harakat qilishingiz, narsalarni bosishingiz, ularni siljitishingiz va ularning ko'z o'ngingizda sodir bo'layotganini ko'rishingiz mumkin.

Garchi bilimlarning darajasi va chuqurligiga shubha tug'dirsa-da, asoslardan ko'proq narsani bilish sizning dasturingiz qanchalik yaxshi ishlashi va hatto uning tuzilishi va oqimi uchun muhim bo'lishi mumkin.

Nima uchun? Agar siz dastur yozsangiz va u juda sekin ishlayotgan bo'lsa, lekin kodingizda hech qanday noto'g'ri narsani ko'rmaysiz, boshqa echimni qaerdan qidirasiz? Agar operatsion tizim qanday ishlashini bilmasangiz, muammoni qanday hal qila olasiz? Siz juda ko'p fayllarga kirmoqdamisiz? Xotiradan va almashtirishdan foydalanish juda foydalimi? Ammo siz almashtirish nima ekanligini ham bilmaysiz! Yoki men kirish / blokirovka qilyapmanmi?

Va siz boshqa mashina bilan aloqa qilishni xohlaysiz. Qanday qilib buni mahalliy yoki Internet orqali qilasiz? Va farq nima? Nega ba'zi dasturchilar bitta OSni boshqasidan ustun qo'yadilar?

Men jiddiy dasturchi bo'lishga intilib, yaqinda Georgia Techning "Operatsion tizimlarga kirish" kursini o'tdim. Unda asosiy OS abstraksiyalari, mexanizmlari va ularning qo'llanilishi o'rgatiladi. Kursning yadrosi bir vaqtning o'zida dasturlash (mavzular va sinxronizatsiya), protsesslararo aloqa va tarqatilgan OTlarga kirishni o'z ichiga oladi.

Men ushbu xabarni kursdan olgan narsalarim bilan bo'lishish uchun ishlatmoqchiman, ya'ni dasturiy ta'minotni ishlab chiqishda yaxshi bo'lishni istasangiz, o'rganishingiz kerak bo'lgan 10 muhim operatsion tizim tushunchalari.

Operatsion tizim nima?

Avvalo, operatsion tizim nima ekanligini aniqlaylik. Operatsion tizim (OT) - bu kompyuter texnikasini boshqaruvchi va dasturlarga xizmat ko'rsatadigan dasturlar to'plami. Xususan, u apparatning murakkabligini yashiradi, hisoblash manbalarini boshqaradi va izolyatsiya va himoyani ta'minlaydi. Eng muhimi, u to'g'ridan-to'g'ri asosiy qurilmaga imtiyozga ega.

OTning asosiy tarkibiy qismlari fayl tizimi, rejalashtiruvchi va qurilma drayveridir. Siz oldin ham ish stolida (Windows, Mac, Linux) va o'rnatilgan (Android, iOS) operatsion tizimlaridan foydalangansiz.

Operatsion tizimning uchta asosiy elementi mavjud, bular: (1) mavhumliklar (jarayon, ip, fayl, soket, xotira), (2) mexanizmlar (yaratish, jadval, ochish, yozish, ajratish) va (3) qoidalar. (LRU, EDF).

Operatsion tizimni loyihalashning ikkita printsipi mavjud: (1) siyosatni qo'llab-quvvatlashning moslashuvchan mexanizmlarini qo'llash orqali mexanizm va siyosatni ajratish va (2) umumiy holat uchun optimallashtirish: OT qayerda ishlatiladi? Foydalanuvchi ushbu mashinada nimani bajarishni xohlaydi? Ish yukining talablari qanday?

Hozirgi kunda keng tarqalgan uch xil operatsion tizim mavjud. Birinchisi, monolitik OS, unda butun OS yadro bo'shlig'ida ishlaydi va yolg'iz nazorat rejimida ishlaydi. Ikkinchisi - Modulli OT, unda tizim yadrosining bir qismi ish vaqtida tizimga qo'shilishi mumkin bo'lgan modul deb nomlangan mustaqil fayllarda joylashadi. Uchinchisi - Micro OS, unda yadro serverlar deb nomlanuvchi alohida jarayonlarga bo'linadi. Ba'zi bir serverlar yadro bo'shliqlarida, ba'zilari esa foydalanuvchi maydonida ishlaydi.

Endi batafsilroq tushunishingiz kerak bo'lgan asosiy tushunchalarni ko'rib chiqaylik.

1: Jarayonlar va jarayonlarni boshqarish

Jarayon asosan bajariladigan dasturdir. Jarayonning bajarilishi ketma-ketlikda rivojlanishi kerak. Sodda qilib aytganda, biz kompyuter dasturlarimizni matnli faylga yozamiz va ushbu dasturni amalga oshirganimizda dasturda ko'rsatilgan barcha vazifalarni bajaradigan jarayonga aylanadi.

Dastur xotiraga yuklansa va u jarayonga aylansa, uni to'rt qismga bo'lish mumkin: stek, to'plash, matn va ma'lumotlar. Quyidagi rasm asosiy xotira ichidagi jarayonning soddalashtirilgan tartibini ko'rsatadi

  • Stack: Process Stack tarkibida vaqt / ma'lumot, masalan, usul / funktsiya parametrlari, qaytish manzili va mahalliy parametrlar mavjud.
  • Yigʻilish: Bu ish jarayonida xotira sifatida dinamik ravishda ajratilgan xotira.
  • Matn: Bu dastur hisoblagichi va protsessor registrlari tarkibidagi joriy faoliyatni o'z ichiga oladi.
  • Ma'lumotlar: Ushbu bo'limda global va statik o'zgaruvchilar mavjud.

Jarayon amalga oshirilganda, u turli holatlardan o'tadi. Ushbu bosqichlar turli xil operatsion tizimlarda farq qilishi mumkin va bu holatlarning nomlari ham standartlashtirilmagan. Umuman olganda, jarayon bir vaqtning o'zida quyidagi besh holatdan biriga ega bo'lishi mumkin:

  • Boshlash: Jarayon boshlanganda / yaratilganda dastlabki holat.
  • Tayyor: Jarayon protsessorga tayinlanishini kutmoqda. Tayyor jarayonlar ishlashi uchun protsessorni ularga operatsion tizim tomonidan ajratilishini kutmoqda. Jarayon ushbu holatga Boshlash holatidan keyin yoki uni ishga tushirish paytida, lekin boshqa biron bir jarayonga protsessorni tayinlash uchun rejalashtiruvchi tomonidan xalaqit berishi mumkin.
  • Ishlayotgan: Jarayon protsessorga OT rejalashtiruvchisi tomonidan tayinlanganidan so'ng, jarayon holati ishga tushiriladi va protsessor o'z ko'rsatmalarini bajaradi.
  • Kutish: agar foydalanuvchi kirishni kutish yoki fayl mavjud bo'lishini kutish kabi resursni kutishi kerak bo'lsa, jarayon kutish holatiga o'tadi.
  • To'xtatilgan yoki Chiqish: Jarayon bajarilishini tugatgandan so'ng yoki operatsion tizim tomonidan to'xtatilsa, u asosiy xotiradan o'chirilishini kutib, to'xtatilgan holatga o'tkaziladi.

Jarayonlarni boshqarish bloki - bu har bir jarayon uchun Operatsion tizim tomonidan saqlanadigan ma'lumotlarning tuzilishi. PCB butun sonli ID raqami (PID) bilan aniqlanadi. PCB jarayonni kuzatib borish uchun quyida keltirilgan tartibda zarur bo'lgan barcha ma'lumotlarni saqlaydi:

  • Jarayon holati: Jarayonning hozirgi holati - u tayyor, ishga tushish, kutish yoki boshqa narsalar.
  • Jarayon imtiyozlari: Bu tizim resurslariga kirishga ruxsat berish / taqiqlash uchun talab qilinadi.
  • Jarayon identifikatori: Operatsion tizimdagi har bir jarayon uchun noyob identifikatsiya.
  • Ko'rsatkich: Ota-ona jarayoniga ko'rsatgich.
  • Dastur hisoblagichi: Dastur hisoblagichi bu jarayon uchun bajarilishi kerak bo'lgan keyingi yo'riqnomaning manzili uchun ko'rsatgichdir.
  • CPU registrlari: Turli xil protsessor protsessorlari registrlari, bunda jarayonlarni ish holatida bajarish uchun saqlash kerak.
  • Protsessorni rejalashtirish to'g'risida ma'lumot: jarayonning ustuvorligi va jarayonni rejalashtirish uchun zarur bo'lgan boshqa rejalashtirish ma'lumotlari.
  • Xotirani boshqarish haqida ma'lumot: Bunga operatsion tizim tomonidan ishlatiladigan xotiraga qarab sahifa jadvali, xotira chegaralari va segment jadvali to'g'risidagi ma'lumotlar kiradi.
  • Buxgalteriya hisobi ma'lumotlari: Bu jarayonni bajarish uchun ishlatiladigan protsessor miqdorini, vaqt chegaralarini, bajarilish identifikatorini va boshqalarni o'z ichiga oladi.
  • IO holati to'g'risidagi ma'lumot: Bu jarayonga ajratilgan I / O qurilmalarining ro'yxatini o'z ichiga oladi.

2: Iplar va moslik

Ip bu jarayon kodi orqali bajariladigan oqimdir. O'zining dasturiy hisoblagichi bor, u navbatdagi buyruqni bajarishni kuzatib boradi. Shuningdek, u joriy ishlaydigan parametrlarga ega tizim registrlari va bajarilish tarixini o'z ichiga olgan suyakka ega.

Ushbu kod o'z segmentlari bilan kod segmenti, ma'lumotlar segmenti va ochiq fayllar kabi turli xil ma'lumotlarni taqsimlaydi. Bitta ip kod segmentidagi xotira elementini o'zgartirganda, qolgan barcha mavzular buni ko'radi.

Ip ham engil jarayon deb ataladi. Mavzular parallelizm orqali dasturlarning ishlashini yaxshilashga imkon beradi. Mavzular qo'shimcha xarajatlarni kamaytirish orqali operatsion tizimlarning ish faoliyatini yaxshilashga qaratilgan dasturiy yondashuvni anglatadi. Ip klassik jarayonga tengdir.

Har bir ip aniq bitta jarayonga tegishli va jarayondan tashqarida hech qanday ip bo'lolmaydi. Har bir ip alohida boshqaruv oqimini anglatadi. Tarmoqlar tarmoq serverlari va veb-serverlarni amalga oshirishda muvaffaqiyatli ishlatilgan. Ular, shuningdek, birgalikda xotira ko'p protsessorlarida dasturlarni parallel ravishda bajarish uchun mos asosni ta'minlaydi.

Iplarning afzalliklari:

  • Ular kontekstni almashtirish vaqtini kamaytiradi.
  • Ulardan foydalanish jarayon davomida moslikni ta'minlaydi.
  • Ular samarali aloqani ta'minlaydi.
  • Kontekstni almashtirish iplarini yaratish va tejash yanada tejamkor.
  • Mavzular ko'p protsessorli arxitekturalardan kengroq va samaraliroq foydalanishga imkon beradi.

Mavzular quyidagi ikkita usulda amalga oshiriladi:

  • Foydalanuvchi darajasidagi mavzular: foydalanuvchi tomonidan boshqariladigan mavzular.
  • Yadro darajasidagi mavzular: yadroda ishlaydigan operatsion tizim boshqaradigan iplar, operatsion tizim yadrosi.

Foydalanuvchi darajasidagi mavzular

Bunday holda, ipni boshqarish yadrosi iplarning mavjudligi haqida xabardor emas. Iplar kutubxonasida iplarni yaratish va yo'q qilish, xabarlar va ma'lumotlarni uzatishlar uchun, mavzularni bajarish jadvalini tuzish va kontekstlarni saqlash va tiklash uchun kod mavjud. Ilova bitta ipdan boshlanadi.

Afzalliklari:

  • Bir-biriga o'tish uchun Kernel rejimi imtiyozlari talab qilinmaydi.
  • Foydalanuvchi darajasidagi ip har qanday operatsion tizimda ishlashi mumkin.
  • Rejalashtirish foydalanuvchi darajasidagi oqim uchun dasturga xos bo'lishi mumkin.
  • Foydalanuvchi darajasidagi mavzular tez yaratiladi va boshqariladi.

Kamchiliklari:

  • Oddiy operatsion tizimda tizim qo'ng'iroqlarining aksariyati blokirovka qilinadi.
  • Ko'p tarmoqli dastur multiprokingdan foydalana olmaydi.

Yadro sathlari

Bunday holda, ipni boshqarish Kernel tomonidan amalga oshiriladi. Ilova sohasida hech qanday boshqaruv kodi mavjud emas. Yadro iplari to'g'ridan-to'g'ri operatsion tizim tomonidan qo'llab-quvvatlanadi. Har qanday dastur ko'p qirrali bo'lishi uchun dasturlashtirilishi mumkin. Ilovadagi barcha mavzular bitta jarayon davomida qo'llab-quvvatlanadi.

Kernel butun jarayon uchun va jarayon tarkibidagi shaxslar uchun kontekst ma'lumotlarini saqlab turadi. Kernel tomonidan rejalashtirish iplar asosida amalga oshiriladi. Kernel yadro makonida iplarni yaratish, jadvallashtirish va boshqarishni amalga oshiradi. Odatda yadro iplari foydalanuvchi iplariga qaraganda yaratish va boshqarish uchun ancha sekin ishlaydi.

Afzalliklari

  • Yadro bir vaqtning o'zida bir nechta jarayonlarni bir xil jarayondan rejalashtirishi mumkin.
  • Agar jarayonda bitta ip bloklangan bo'lsa, yadro xuddi shu jarayonning boshqa ipini rejalashtirishi mumkin.
  • Yadro tartibini o'z-o'zidan ko'p qirrali qilish mumkin.

Kamchiliklari

  • Odatda yadro iplari foydalanuvchi iplariga qaraganda yaratish va boshqarish uchun ancha sekin ishlaydi.
  • Xuddi shu jarayon davomida boshqaruvni bitta ipdan boshqasiga o'tkazish uchun Kernel rejimiga o'tish kerak.

3: Rejalashtirish

Rejalashtirish jarayoni ishlaydigan protsessorni CPU-dan olib tashlash va ma'lum bir strategiya asosida boshqa jarayonni tanlash bilan shug'ullanadigan jarayon menejerining majburiyatidir.

Jarayonni rejalashtirish Multiprogramming operatsion tizimining ajralmas qismidir. Ushbu operatsion tizimlar bir vaqtning o'zida bir nechta operatsiyalarni bajariladigan xotiraga yuklashga imkon beradi va yuklangan jarayon vaqtni ko'paytirish orqali protsessorni almashadi.

Jarayonni rejalashtirish navbatida OT barcha jarayonlarni boshqarish bloklarini (PCB) saqlab turadi. OT har bir jarayon holati uchun alohida navbatni saqlab turadi va bir xil ijro holatidagi barcha jarayonlarning tenglikni PCslari bir xil navbatga joylashtiriladi. Jarayonning holati o'zgartirilganda, uning tengdoshi joriy navbatdan ajratilib, yangi holatga o'tkaziladi.

Operatsion tizim quyidagi muhim jarayonlarni rejalashtirish navbatlarini saqlab turadi:

  • Ishga navbat: Bu navbat tizimdagi barcha jarayonlarni saqlab turadi.
  • Tayyor navbat: Ushbu navbat asosiy xotirada joylashgan barcha jarayonlar to'plamini ushlab turishga tayyor va bajarilishini kutmoqda. Har doim ushbu navbatga yangi jarayon qo'yiladi.
  • Qurilma navbatlari: I / I qurilmasining mavjud emasligi sababli bloklangan jarayonlar ushbu navbatni tashkil qiladi.

OT har bir navbatni boshqarish uchun turli xil qoidalardan foydalanishi mumkin (FIFO, Round Robin, Priority va boshqalar). OTni rejalashtiruvchisi tizimdagi protsessor yadrosiga bittadan yozuvga ega bo'lishi mumkin bo'lgan tayyor va ishga tushirish navbati o'rtasida jarayonlarni qanday o'tkazish kerakligini aniqlaydi. Yuqoridagi diagrammada u CPU bilan birlashtirilgan.

Ikki shtatli jarayon modellariga ishlaydigan va ishlamaydigan holatlar kiradi:

  • Yugurish: yangi jarayon yaratilganda u ishlaydigan holatda tizimga kiradi.
  • Ishlamayapti: ishlamayotgan jarayonlar navbatda turib, o'z navbatini kutmoqda. Navbatdagi har bir kirish ma'lum bir jarayonning ko'rsatgichidir. Navbat bog'langan ro'yxat yordamida amalga oshiriladi. Dispetcherdan foydalanish quyidagicha: jarayon to'xtatilganda, bu jarayon kutish navbati bilan o'tkaziladi. Agar jarayon tugagan yoki bekor qilingan bo'lsa, jarayon bekor qilinadi. Ikkala holatda ham, dispetcher keyin bajarish uchun navbatdan jarayonni tanlaydi.

Kontekstni o'zgartirish - bu jarayonni boshqarish blokida CPU holati yoki kontekstini saqlaydigan va tiklaydigan mexanizm. Bu jarayonni bir vaqtning o'zida xuddi shu nuqtadan boshlashga imkon beradi. Ushbu texnikadan foydalanib, kontekst almashtirgich bir nechta protsessorlarni bitta protsessorni almashish imkonini beradi. Kontekstni almashtirish ko'p tarmoqli operatsion tizimning muhim xususiyatidir.

Rejalashtiruvchi protsessorni bir jarayonni boshqasiga o'tkazganda, joriy ishlayotgan holati jarayonni boshqarish blokiga saqlanadi. Shundan so'ng, keyingi jarayon holati o'z shaxsiy tenglikni tizimidan yuklanadi va shaxsiy kompyuter, registrlar va boshqalarni o'rnatish uchun ishlatiladi, shu vaqtda ikkinchi jarayon bajarishni boshlashi mumkin.

Kontekst kalitlari hisoblash intensivdir, chunki registr va xotira holati saqlanib, tiklanishi kerak. Kontekstni almashtirish vaqtining miqdorini oldini olish uchun ba'zi apparat tizimlari ikki yoki undan ko'p protsessor registrlaridan foydalanadilar.

Jarayon yoqilganda, keyinchalik foydalanish uchun quyidagi ma'lumotlar saqlanadi: Dastur hisoblagichi, jadvalni tuzish to'g'risidagi ma'lumotlar, bazaviy va cheklangan registrning qiymati, hozirda ishlatilgan registr, o'zgartirilgan holat, kirish / chiqish holati to'g'risidagi ma'lumotlar va buxgalteriya ma'lumotlari.

4: Xotirani boshqarish

Xotirani boshqarish - bu asosiy xotirani qayta ishlaydigan yoki boshqaradigan operatsion tizimning funktsionalligi. Bajarish paytida asosiy xotira va disk o'rtasida jarayonlar oldinga va orqaga siljiydi.

Xotirani boshqarish har qanday va har qanday xotira joyini, ba'zi bir jarayonga yoki bepul bo'lishiga qaramay, hisobga oladi. Jarayonlarga qancha xotira ajratilishini tekshiradi. Qaysi jarayon xotirani qaysi vaqtda olishiga qaror qiladi. Va xotirani bo'shatish yoki ajratish har doim kuzatiladi va tegishli ravishda statusni yangilaydi.

Jarayon manzili maydoni - bu jarayon kodiga murojaat qiladigan mantiqiy manzillar to'plami. Masalan, 32 bitli adreslash ishlatilganda, manzillar 0 dan 0x7fffffff gacha bo'lishi mumkin; ya'ni jami nazariy hajmi 2 gigabayt uchun mumkin bo'lgan sonlar.

Operatsion tizim dasturga xotirani ajratish vaqtida mantiqiy manzillarni jismoniy manzillarga xaritada saqlashga e'tibor beradi. Xotira ajratilgunga qadar va undan keyin dasturda uchta turdagi manzillar mavjud:

  • Ramziy manzillar: manba kodida ishlatiladigan manzillar. O'zgaruvchan nomlar, konstantalar va ko'rsatma yorliqlari ramziy manzil maydonining asosiy elementlari hisoblanadi.
  • Nisbiy manzillar: Kompilyatsiya paytida kompilyator ramziy manzillarni nisbiy manzillarga o'zgartiradi.
  • Fizik manzillar: yuklovchi ushbu manzillarni dastur asosiy xotiraga yuklash vaqtida yaratadi.

Virtual va fizik manzillar kompilyatsiya vaqti va yuk vaqtini manzilni ulash sxemalarida bir xil. Virtual va fizik manzillar bajarilish vaqtidagi manzilni bog'lash sxemalarida farq qiladi.

Dastur tomonidan yaratilgan barcha mantiqiy manzillarning to'plami mantiqiy manzillar maydoni deb nomlanadi. Ushbu mantiqiy manzillarga mos keladigan barcha fizik manzillarning to'plami jismoniy manzillar maydoni deb nomlanadi.

5: Jarayonlararo aloqa

Jarayonlar ikki xil: mustaqil va kooperativ. Mustaqil jarayonga boshqa jarayonlarning ta'siri ta'sir ko'rsatmaydi, shu bilan birga boshqa jarayonlar ham o'zaro ta'sir qilishi mumkin.

Mustaqil ravishda olib borilayotgan jarayonlar juda samarali bo'ladi deb o'ylashingiz mumkin. Aslida, jarayonning kooperativ xususiyatidan hisoblash tezligini, qulayligini va modulliligini oshirish uchun foydalanish mumkin bo'lgan holatlar ko'p. Jarayonlararo aloqa (IPC) bu jarayonlarni bir-biri bilan bog'lash va o'z harakatlarini sinxronlashtirishga imkon beradigan mexanizm. Ushbu jarayonlar o'rtasidagi aloqani ular o'rtasidagi hamkorlik usuli sifatida ko'rish mumkin.

Jarayonlar bir-biri bilan ikki yo'l bilan aloqa qilishlari mumkin: Umumiy xotira va Xabarlarni sintezlash.

Umumiy xotira usuli

Aytaylik, ikkita jarayon bor: ishlab chiqaruvchi va iste'molchi. Ishlab chiqaruvchi biron bir mahsulotni ishlab chiqaradi va iste'molchi ushbu narsani iste'mol qiladi. Ikkala jarayon "bo'sh joy" deb nomlanuvchi umumiy bo'shliqni yoki xotirani joylashtiradi, bu erda ishlab chiqaruvchi tomonidan ishlab chiqarilgan mahsulot saqlanadi va agar kerak bo'lsa, iste'molchi uni iste'mol qiladi.

Ushbu muammoning ikkita versiyasi mavjud: birinchisi, ishlab chiqaruvchi mahsulot ishlab chiqarishni davom ettirishi mumkin bo'lgan va bufer hajmida hech qanday cheklovlar mavjud bo'lmagan, cheklanmagan bufer muammosi deb nomlanadi. Ikkinchisi, cheklangan bufer muammosi deb nomlanadi, unda ishlab chiqaruvchi ma'lum miqdordagi mahsulotni ishlab chiqishi mumkin va shundan keyin iste'molchi ularni iste'mol qilishni kutishni boshlaydi.

Cheklangan bufer muammosida, Ishlab chiqaruvchi va Iste'molchi ba'zi umumiy xotiralarni bo'lishadilar. Keyin ishlab chiqaruvchi mahsulot ishlab chiqarishni boshlaydi. Agar ishlab chiqarilgan mahsulotlarning umumiy soni tampon hajmiga teng bo'lsa, ishlab chiqaruvchi ularni iste'molchi tomonidan iste'mol qilinishini kutadi.

Xuddi shunday, Iste'molchi birinchi navbatda buyumning mavjudligini tekshiradi va agar biron bir mahsulot mavjud bo'lmasa, Iste'molchi uni ishlab chiqaruvchini kutadi. Agar mavjud narsalar bo'lsa, Iste'molchi ularni iste'mol qiladi.

Xabarni tahlil qilish usuli

Ushbu usulda jarayonlar bir-birlari bilan umumiy xotiradan biron bir turini ishlatmasdan aloqa o'rnatadi. Agar ikkita jarayon p1 va p2 o'zaro bog'lanishni istasa, ular quyidagicha davom etadi:

  • Aloqa aloqasini yarating (agar havola allaqachon mavjud bo'lsa, uni qayta o'rnatishga hojat yo'q.)
  • Asosiy primitivlar yordamida xabarlar almashishni boshlang. Bizga kamida ikkita primitiv kerak: yuborish (xabar, manzil) yoki yuborish (xabar) va qabul qilish (xabar, xost) yoki qabul qilish (xabar)

Xabar hajmi sobit yoki o'zgaruvchan bo'lishi mumkin. Agar u o'rnatilgan o'lcham bo'lsa, bu OT dizayneriga oson, ammo dasturchi uchun murakkab. Agar u o'zgaruvchan kattalik bo'lsa, unda dasturchi uchun oson, ammo OS dizayneri uchun murakkab. Standart xabar ikki qismdan iborat: sarlavha va tan.

Sarlavha Xabar turi, manzil identifikatori, manba identifikatori, xabar uzunligi va boshqarish ma'lumotlarini saqlash uchun ishlatiladi. Nazorat ma'lumotlari bufer bo'sh joydan chiqib ketgan bo'lsa, nima qilish kerakligi, tartib raqami va uning ustuvorligi kabi ma'lumotlarni o'z ichiga oladi. Odatda, xabar FIFO uslubidan foydalangan holda yuboriladi.

6: Kirish / chiqish boshqaruvi

Operatsion tizimning muhim ishlaridan biri bu turli xil kirish / chiqish (I / O) qurilmalarini, shu jumladan sichqonchani, klaviaturani, sensorli panelni, disk drayverlarini, displey adapterlarini, USB moslamalarini, bitli xaritali ekranni, LED, analoglarni boshqarish. raqamli konvertor, yoqish / o'chirish tugmasi, tarmoq ulanishlari, audio / I / O, printerlar va boshqalar.

I / O tizimidan I / O so'rovini qabul qilish va uni jismoniy qurilmaga yuborish talab qilinadi, so'ngra qurilmadan qaytib kelgan barcha javoblarni oling va dasturga yuboring. I / O qurilmalarini ikki toifaga bo'lish mumkin:

  • Bloklash moslamalari: Bloklash moslamasi - bu haydovchi ma'lumotlarning barcha bloklarini yuborish orqali bog'lanadigan qurilmadir. Masalan, qattiq disklar, USB kameralar, Disk-On-Key va boshqalar.
  • Belgilar qurilmalari: Belgilar qurilmasi - bu haydovchi bitta belgilarni (baytlar, oktetalar) yuborish va qabul qilish orqali aloqa qiladigan qurilmadir. Masalan, ketma-ket portlar, parallel portlar, tovush kartalari va boshqalar.

CPU ma'lumotni kirish / kirish qurilmasiga va undan uzatish uchun yo'lga ega bo'lishi kerak. CPU va qurilma bilan aloqa qilish uchun uchta usul mavjud.

1. Maxsus ko'rsatma I / O

Bu I / O qurilmalarini boshqarish uchun maxsus ishlab chiqilgan CPU ko'rsatmalaridan foydalanadi. Ushbu ko'rsatmalar odatda ma'lumotni I / O qurilmasiga yuborishga yoki kirish / chiqish qurilmasidan o'qishga imkon beradi.

2. Xotira kartasi I / O

Xotiraga o'rnatilgan I / O-dan foydalanishda bir xil manzil maydoni xotira va I / O qurilmalari tomonidan almashiladi. Qurilma to'g'ridan-to'g'ri ma'lum asosiy xotira joylariga ulanadi, shunda I / O qurilmasi protsessor protsessoridan o'tmasdan yoki blokirovka qilingan ma'lumot blokini xotiradan uzatishi mumkin.

I / O o'rnatilgan xotira kartasidan foydalanganda, operatsion tizim xotirada buferni ajratadi va protsessorga ma'lumotlarni yuborish uchun buferdan foydalanishni I / O qurilmasiga ma'lum qiladi. I / O qurilmasi protsessor bilan asenkron ishlaydi va tugagandan so'ng protsessorni to'xtatadi.

Ushbu usulning afzalligi shundaki, xotiraga kirish mumkin bo'lgan har bir qo'llanma kirish / chiqish qurilmasini boshqarish uchun ishlatilishi mumkin. Xotira kartasi I / O disklar va aloqa interfeyslari kabi yuqori tezlikda ishlaydigan / kirish qurilmalarining aksariyati uchun ishlatiladi.

3. Xotiraga to'g'ridan-to'g'ri kirish (DMA)

Klaviatura kabi sekin qurilmalar har bir bayt o'tkazilgandan so'ng asosiy protsessorga uzilishlar keltirib chiqaradi. Agar disk kabi tezkor qurilma har bir bayt uchun uzilishni yuzaga keltirsa, operatsion tizim ushbu uzilishlarga ko'p vaqt sarflaydi. Shunday qilib, odatdagi kompyuter ushbu qo'shimcha xarajatlarni kamaytirish uchun to'g'ridan-to'g'ri xotiraga kirish (DMA) uskunasidan foydalanadi.

To'g'ridan-to'g'ri xotiraga kirish (DMA), protsessor protsessorga I / O modulining vakolatlarini qatnashmasdan xotiradan o'qish yoki yozish huquqini beradi. DMA modulining o'zi asosiy xotira va kirish / chiqish qurilmasi o'rtasida ma'lumot almashishni boshqaradi. CPU faqat o'tkazmaning boshida va oxirida qatnashadi va butun blok o'tkazilgandan keyingina uziladi.

Direct Memory Access ma'lumot uzatishni boshqaruvchi va tizim avtobusiga kirish huquqini boshqaruvchi DMA boshqaruvchisi (DMAC) deb nomlangan maxsus uskunaga muhtoj. Tekshirish moslamalari manba va maqsad ko'rsatgichlari (ma'lumotni qaerda o'qish / yozish), uzatilgan baytlar sonini kuzatish uchun hisoblagichlar va turli xil sozlamalar bilan dasturlashtirilgan. Bularga I / O va xotira turlari, protsessor tsikllari uchun uzilishlar va holatlar kiradi.

7: Virtualizatsiya

Virtualizatsiya bu bir nechta jismoniy qurilmalar tizimidan simulyatsiyalangan muhitlarni yoki ajratilgan manbalarni yaratishga imkon beradigan texnologiya.

Gipervisor deb nomlangan dasturiy ta'minot to'g'ridan-to'g'ri ushbu uskunaga ulanadi va bitta tizimni virtual mashinalar (VM) deb nomlanadigan alohida, aniq va xavfsiz muhitlarga ajratish imkonini beradi. Ushbu VMlar gipervisorning mashina resurslarini uskunadan ajratib olish va ularni tegishli ravishda tarqatish qobiliyatiga tayanadi.

Gipervisor bilan jihozlangan asl, jismoniy mashina uy egasi deb nomlanadi, uning manbalaridan foydalanadigan ko'plab VMlar esa mehmonlar deb ataladi. Ushbu mehmonlar hisoblash resurslariga, masalan, protsessor, xotira va saqlashga, osonlik bilan ko'chirilishi mumkin bo'lgan manbalar sifatida munosabatda bo'lishadi. Operatorlar virtual protsessor protsessorlari, xotira, saqlash va boshqa manbalarni boshqarishlari mumkin, shunda mehmonlar ularga kerak bo'lganda kerakli manbalarni olishadi.

Ideal holda, barcha tegishli VM-lar ishlarni tezlashtiradigan yagona veb-asoslangan virtualizatsiya boshqaruv konsoli orqali boshqariladi. Virtualizatsiya sizga VM-larga qancha ishlov berish kuchi, saqlash va xotira qanchalik yaxshi berilishini aytib berishga imkon beradi, chunki muhitlar VM-larni qo'llab-quvvatlaydigan jihozlardan va bir-birlaridan ajratilganligi sababli muhit yaxshiroq himoyalangan.

Sodda qilib aytganda, virtualizatsiya sizga ishlatilmagan jihozlardan zarur bo'lgan muhit va manbalarni yaratadi.

Virtualizatsiya turlari:

  1. Ma'lumotni virtualizatsiya qilish: Butun dunyoga tarqalgan ma'lumotlar bitta manbaga jamlanishi mumkin. Ma'lumotni virtualizatsiya qilish kompaniyalarga ma'lumotlarni dinamik ta'minot sifatida ko'rib chiqishga imkon beradi - bu bir nechta manbalardan ma'lumotlarni birlashtirishi, yangi ma'lumot manbalarini osongina joylashtirishi va foydalanuvchi ehtiyojlariga muvofiq ma'lumotlarni o'zgartirishi mumkin bo'lgan qayta ishlash imkoniyatlarini ta'minlaydi. Ma'lumotni virtualizatsiya qilish vositalari ko'plab ma'lumot manbalari oldida o'tiradi va ularni yagona manba sifatida ko'rib chiqishga imkon beradi. Ular kerakli ma'lumotlarni kerakli shaklda - kerakli vaqtda istalgan dastur yoki foydalanuvchiga etkazib berishadi.
  2. Ish stolini virtualizatsiya qilish: Operatsion tizimni virtualizatsiya bilan chalkashtirib yuborish - bu bir nechta operatsion tizimlarni bitta mashinada joylashtirish imkonini beradi - ish stolini virtualizatsiya qilish markaziy ma'murga (yoki avtomatlashtirilgan boshqaruv vositasi) bir vaqtning o'zida yuzlab fizik mashinalarga simulyatsiya qilingan ish stoli muhitini joylashtirishga imkon beradi. Har bir mashinada o'rnatiladigan, sozlanadigan va yangilanadigan an'anaviy ish stolidan farqli o'laroq, ish stolini virtualizatsiya qilish administratorlarga barcha virtual ish stollarida ommaviy konfiguratsiyalar, yangilanishlar va xavfsizlik tekshiruvlarini amalga oshirishga imkon beradi.
  3. Serverni virtualizatsiya qilish: Serverlar - bu aniq topshiriqlarning katta hajmini qayta ishlashga mo'ljallangan kompyuterlar, shuning uchun boshqa kompyuterlar - masalan, noutbuk va ish stollari, boshqa vazifalarni bajarishlari mumkin. Serverni virtualizatsiya qilish ushbu funktsiyalarning ko'pini bajarishga imkon beradi va tarkibiy qismlardan bir nechta funktsiyalarga xizmat qilish uchun foydalanilishi uchun uni ajratishni o'z ichiga oladi.
  4. Operatsion tizimni virtualizatsiya qilish: Operatsion tizimni virtualizatsiya qilish yadroda amalga oshiriladi - operatsion tizimlarning markaziy vazifalari. Linux va Windows muhitlarini yonma-yon ishlashning foydali usuli. Korxonalar, shuningdek, virtual operatsion tizimlarni kompyuterlarga surib qo'yishlari mumkin: (1) kompyuterlarning qo'shimcha xarajatlarini kamaytiradi, chunki kompyuterlar bu kabi yuqori darajadagi imkoniyatlarni talab qilmaydi, (2) xavfsizlikni oshiradi, chunki barcha virtual inventarlar bo'lishi mumkin. (3) dasturiy ta'minotni yangilash kabi IT xizmatlariga sarf qilinadigan vaqtni cheklaydi.
  5. Tarmoq funktsiyalari Virtualizatsiya: Tarmoq funktsiyalarini virtualizatsiya qilish (NFV) tarmoqning asosiy funktsiyalarini (katalog xizmatlari, fayllarni almashish va IP-konfiguratsiya) ajratadi, shuning uchun ularni muhitlarga taqsimlash mumkin. Dasturiy ta'minot funktsiyalari ular ilgari yashagan jismoniy mashinalardan mustaqil bo'lgandan so'ng, muayyan funktsiyalar yangi tarmoqqa birlashtirilishi va atrof-muhitga tayinlanishi mumkin. Virtualizatsiya tarmoqlari bir nechta mustaqil tarmoqlarni yaratish uchun zarur bo'lgan va kommutator, marshrutizator, server, kabel va hub kabi jismoniy qismlarning sonini kamaytiradi va bu ayniqsa telekommunikatsiya sohasida mashhurdir.

8 - tarqatilgan fayl tizimlari

Tarqatilgan fayl tizimi bu mijozga serverda saqlangan ma'lumotlarga xuddi o'z kompyuteridagi kabi kirish va qayta ishlash imkonini beradigan mijoz / serverga asoslangan dastur. Foydalanuvchi serverdagi faylga kirganda, server foydalanuvchiga faylning nusxasini yuboradi, u ma'lumotlarni qayta ishlash paytida foydalanuvchining kompyuterida saqlanadi va keyin serverga qaytariladi.

Ideal holda, taqsimlangan fayl tizimi shaxsiy serverlarning fayl va katalog xizmatlarini global katalogga shunday joylashtiradiki, masofadan turib kirish imkoniyati manzilga bog'liq emas, lekin har qanday mijoz uchun bir xil bo'ladi. Barcha fayllar global fayl tizimining barcha foydalanuvchilari uchun ochiq va tashkilot ierarxik va katalogga asoslangan.

Bir vaqtning o'zida bir nechta mijoz bir xil ma'lumotlardan foydalanishi mumkinligi sababli, server doimo yangilanishlarni tashkil etadigan mexanizmga ega bo'lishi kerak (masalan, kirish vaqti haqida ma'lumotni saqlab turish), shunda mijoz har doim ma'lumotlarning eng yangi versiyasini oladi va ma'lumotlar ziddiyatli bo'ladi. turmang Tarqalgan fayl tizimlari ma'lumotlarga kirishning buzilishidan himoya qilish uchun odatda fayl yoki ma'lumotlar bazasi replikatsiyasidan (ma'lumotlarning nusxalarini bir nechta serverlarda tarqatish) foydalanadilar.

Sun Microsystems 'ning tarmoq fayl tizimi (NFS), Novell NetWare, Microsoft tomonidan tarqatilgan fayl tizimi va IBM ning DFS taqsimlangan fayl tizimlariga misollardir.

9 - tarqatilgan umumiy xotira

Distribution Shared Memory (DSM) - bu taqsimlangan tizimlarda umumiy xotira modelini amalga oshiradigan, jismoniy jihatdan umumiy xotiraga ega bo'lmagan taqsimlangan operatsion tizimning resurslarni boshqarish komponentidir. Birgalikda ishlatiladigan xotira taqsimlangan tizimdagi barcha kompyuterlar o'rtasida almashiladigan virtual manzil maydonini ta'minlaydi.

DSM-da ma'lumotlar virtual xotiraga kirish usuliga o'xshash umumiy makondan olinadi. Ma'lumotlar ikkilamchi va asosiy xotira, shuningdek, turli tugunlarning taqsimlangan asosiy xotiralari o'rtasida harakatlanadi. Xotiradagi sahifalarga egalik huquqi oldindan belgilangan holatda boshlanadi, ammo normal ishlash jarayonida o'zgaradi. Egalikdagi o'zgarishlar ma'lum bir jarayonga kirish imkoniyati tufayli ma'lumotlar bir tugundan ikkinchisiga o'tganda ro'y beradi.

Tarqatilgan umumiy xotiraning afzalliklari:

  • Ma'lumotlar harakatini yashirish va ma'lumotlarni almashish uchun sodda mavhumlikni ta'minlang. Dasturchilar, masalan, xabarlarni yuborish modelidan foydalanganda, masalan, mashinalar o'rtasida xotira uzatish haqida tashvishlanmasliklari kerak.
  • Taqsimlangan ilovalar uchun algoritmni ishlab chiqishni soddalashtirish orqali murakkab tuzilmalarni mos yozuvlar orqali o'tishga imkon beradi.
  • Faqat ma'lumot emas, balki havolaga ega ma'lumotlarga ega bo'lgan butun sahifani ko'chirish orqali "ma'lumotlarning joylashuvi" dan foydalanadi.
  • Ko'p protsessorli tizimlarga qaraganda arzonroq. Fikrlar oddiy jihozlardan foydalangan holda amalga oshirilishi mumkin va umumiy xotirani protsessorlarga ulash uchun hech qanday murakkab narsa talab qilinmaydi.
  • Katta hajmdagi xotiralar barcha tugunlarning barcha jismoniy xotiralarini birlashtirgan holda dasturlarda mavjud. Ushbu katta xotira an'anaviy taqsimlangan tizimlar singari almashtirish tufayli diskning kechikishiga olib kelmaydi.
  • Cheklanmagan sonli tugunlardan foydalanish mumkin. Asosiy xotiraga umumiy avtobus orqali kirish mumkin bo'lgan va shu bilan multiprosessor tizimining hajmini cheklaydigan multiprosessor tizimlaridan farqli o'laroq.
  • Birgalikda ishlatiladigan xotira ko'p protsessorlari uchun yozilgan dasturlarni DSM tizimlarida ishlatish mumkin.

Tugunlar qaysi sahifaga egalik qilishi to'g'risida xabardor bo'lishning ikki xil usuli bor: bekor qilish va tarqatish. Noto'g'ri usul - bu ba'zi sahifalar yozuvga kirish huquqini so'raganda va uning yangi egasi bo'lganda sahifani bekor qiladigan usul. Shunday qilib, keyingi safar boshqa bir jarayon o'zi o'ylagan sahifaning nusxasini o'qish yoki yozishga harakat qilganda, sahifa mavjud bo'lmaydi va ushbu sahifaga kirishni qayta so'rashga to'g'ri keladi. Jarayon unga xat yozganda, translyatsiya avtomatik ravishda xotira sahifasining barcha nusxalarini yangilaydi. Bu shuningdek yozish-yangilash deb nomlanadi. Ushbu usulni amalga oshirish ancha samaraliroq emas, chunki bekor qilish haqidagi xabar o'rniga yangi qiymat yuborilishi kerak.

10 - bulutli hisoblash

Tobora ko'proq, biz texnologiya bulutga o'tayotganini ko'rmoqdamiz. Bu shunchaki xayol emas - so'nggi 10 yil ichida an'anaviy dasturiy ta'minot modellaridan Internetga o'tish jadal rivojlanmoqda. Oldinga qarab, bulutli hisoblashning keyingi o'n yilligi hamma joyda mobil qurilmalar orqali hamkorlik qilishning yangi usullarini va'da qilmoqda.

Xo'sh, bulutli hisoblash nima? Aslida, bulutli hisoblash bu kompyuter dasturlarining tashqi turlaridan biri. Bulutli hisob-kitoblardan foydalangan holda, foydalanuvchilar dasturiy ta'minot va dasturlarga kerak bo'lgan joydan kirishlari mumkin, boshqa tomondan esa u "bulut" da bo'ladi. ular shunchaki natijadan zavqlanishlari mumkin.

An'anaviy biznes ilovalari har doim juda murakkab va qimmat bo'lgan. Ularni ishlatish uchun zarur bo'lgan apparat va dasturiy ta'minotning miqdori va xilma-xilligi juda qiyin. Ularni o'rnatish, sozlash, sinov qilish, ishga tushirish, xavfsiz va yangilash uchun sizga butun mutaxassislar guruhi kerak. Ushbu sa'y-harakatlarni o'nlab yoki yuzlab ilovalarga ko'paytirsangiz, nima uchun eng yaxshi IT bo'limlari bo'lgan eng yirik kompaniyalar kerakli dasturlarni ololmayotganini tushunish oson emas. Kichik va o'rta biznes bunday imkoniyatga ega emas.

Bulutli hisoblash yordamida siz o'zingizning ma'lumotingizni saqlash bilan bog'liq bosh og'rig'ini yo'q qilasiz, chunki siz apparat va dasturiy ta'minotni boshqarmasligingiz kerak - bu Salesforce va AWS kabi tajribali sotuvchining javobgarligi bo'ladi. Birgalikda ishlatiladigan infratuzilma bu yordamchi dastur kabi ishlaydi degan ma'noni anglatadi: siz faqat kerakli narsaga to'laysiz, modernizatsiya avtomatik va katta yoki pastroq miqyosda o'lchash oson.

Bulutga asoslangan ilovalar kunlar yoki haftalar ichida yangilanishi mumkin va ular kamroq xarajat qiladi. Bulutli ilova yordamida siz shunchaki brauzer ochasiz, tizimga kirasiz, dasturni sozlashingiz va undan foydalanishni boshlaysiz. Korxonalar bulutda mijozlar bilan munosabatlarni boshqarish (CRM), kadrlar bilan ishlash, buxgalteriya hisobi va boshqa ko'plab turdagi dasturlarni ishlaydi.

Bulutli hisoblash ommalashib borar ekan, minglab kompaniyalar o'zlarining bulutli bo'lmagan mahsulotlarini va xizmatlarini "bulutli hisoblash" deb qayta nomlashmoqda. Bulutli takliflarni baholashda doimo chuqurroq o'rganing va agar siz apparat va dasturiy ta'minotni sotib olish va boshqarish kerak bo'lsa, nima ekanligini unutmang. Siz qarab turibsizki, aslida bulutli hisoblash emas, balki soxta bulut.

So'nggi olib ketish

Dasturiy ta'minot muhandisi sifatida siz apparat, operatsion tizimlar, tarmoqlarni boshqarish, ma'lumotlarni boshqarish va qazib olish va boshqa ko'plab fanlarni qamrab oladigan kompyutershunoslik fanining katta qismiga qo'shilasiz. Ushbu fanlarning har birida muhandislar boshqa fanlar haqida qanchalik ko'p bilishsa, ular boshqa fanlar bilan samarali o'zaro aloqada bo'lishlari shunchalik yaxshi bo'ladi.

Operatsion tizim kirish, ishlov berish va chiqarishni boshqaruvchi "miya" bo'lgani uchun, boshqa barcha fanlar operatsion tizim bilan o'zaro ta'sirlashadi. Operatsion tizimning qanday ishlashini tushunish boshqa fanlar qanday ishlashi haqida muhim ma'lumot beradi, chunki sizning ushbu fanlar bilan o'zaro aloqangiz operatsion tizim tomonidan boshqariladi.

- -

Agar siz ushbu parchani yoqtirgan bo'lsangiz, boshqalar bu haqda qoqilib ketishi uchun chapak urish tugmachasini bosganingizda juda yoqadi. Siz o'z kodimni GitHub-da va boshqa yozuvlarim va loyihalarimni https://jameskle.com/ da topishingiz mumkin. Bundan tashqari, meni Twitter-da kuzatib borishingiz, to'g'ridan-to'g'ri elektron pochta orqali yuborishingiz yoki LinkedIn-dan topishingiz mumkin. O'zingizning xabarlar qutisi orqali ma'lumotlar ilmi, mashinalarni o'rganish va sun'iy intellekt haqidagi so'nggi fikrlarimni olish uchun mening axborot byulletenimga a'zo bo'ling!