Ana içeriğe geç

Kitap 13 · Özet sayfa

İşletim Sistemleri

Her programın altında olanlar: süreçler ve iş parçacıkları, bellek, dosyalar, kabuk ve hepsini çalıştıran çekirdek.

01BootloaderÖnyükleyici
Bootloader, bilgisayarın firmware'i başladıktan sonra çalışan, işletim sistemi kernel'ını belleğe yükleyen ve denetimi ona devreden küçük bir programdır.
  • Bootloader, firmware'den sonra ve işletim sistemi kernel'ından önce çalışır.
  • Kernel'ı bulur, belleğe yükler ve ona başlatma seçeneklerini iletir.
  • UEFI sistemlerde EFI System Partition üzerinde bulunur.
02Context SwitchBağlam Geçişi
Context switch, işletim sisteminin çalışan thread veya process'in durumunu kaydedip CPU'yu kullanabilmesi için başka birinin durumunu geri yüklemesidir.
  • Context switch, bir görevin CPU durumunu kaydeder ve başka birininkini geri yükler.
  • Zaman dilimlerinin bitmesi, bloke eden I/O, kilitler veya daha yüksek öncelikli iş tarafından tetiklenir.
  • Doğrudan maliyeti mikrosaniyelerdir, ancak soğuk önbellekler gizli ek yük getirir.
03CPUMerkezî İşlem Birimi
CPU (merkezî işlem birimi), program talimatlarını yürüten ve her yazılımın üzerinde çalıştığı aritmetik, mantık ve kontrol işlerini yapan işlemcidir.
  • CPU program talimatlarını yürütür: getir, çöz, yürüt.
  • GHz cinsinden saat hızı saniyedeki döngü sayısıdır, ama hikâyenin tamamı değildir.
  • Modern CPU'ların birden çok çekirdeği ve küçük, hızlı önbellekleri vardır.
04CPU Önbelleği
CPU önbelleği, işlemcideki küçük ve çok hızlı bir bellektir; RAM'den yakın zamanda kullanılan verinin kopyalarını tutar, böylece CPU belleği daha az bekler.
  • CPU önbelleği, işlemcide RAM'deki verinin kopyalarını tutan hızlı bellektir.
  • Önbellekler seviyelidir: L1 en küçük ve en hızlı, L3 en büyük ve paylaşımlıdır.
  • Veri, tipik olarak 64 bayt uzunluğundaki cache line'lar halinde hareket eder.
05CPU Zamanlama
CPU zamanlama, işletim sisteminin her CPU çekirdeğinde hangi hazır process ya da thread'in ne kadar çalışacağına karar vermesidir; işlemci adil paylaşılır.
  • Zamanlayıcı, kernel'ın her CPU çekirdeğinde hangi görevin çalışacağını seçen bölümüdür.
  • Kesintili zamanlama görevlere kısa zaman dilimleri verir ve gerektiğinde onları keser.
  • Görevler arasında geçiş bir bağlam geçişi gerektirir ve küçük bir performans maliyeti vardır.
06DaemonArka Plan Servisi
Daemon, kullanıcı arayüzü olmadan arka planda çalışan, genellikle açılışta başlatılan ve günlükleme, zamanlama veya SSH gibi bir hizmet sunan programdır.
  • Daemon, terminali veya kullanıcı arayüzü olmayan bir arka plan process'idir.
  • Daemon'lar genellikle açılışta başlar ve istekleri veya olayları bekler.
  • systemd gibi servis yöneticileri daemon'ları başlatır, durdurur ve yeniden başlatır.
07DeadlockKilitlenme
Deadlock, iki ya da daha fazla thread veya process'in kaynakları bırakmaları için birbirini sonsuza dek beklediği ve hiçbirinin ilerleyemediği durumdur.
  • Deadlock, her birinin bir başkasının tuttuğu kaynağı beklediği bir taraflar döngüsüdür.
  • Karşılıklı dışlama, tut ve bekle, kesintisizlik ve döngüsel bekleme gerektirir.
  • Kilitleri tutarlı bir sırayla almak onu önlemenin en yaygın yoludur.
08Device DriverAygıt Sürücüsü
Device driver, işletim sisteminin belirli bir donanımı denetlemesini sağlayan ve genel işletim sistemi isteklerini aygıta özgü komutlara çeviren yazılımdır.
  • Sürücü, genel işletim sistemi isteklerini aygıta özgü komutlara çevirir.
  • Çoğu sürücü kernel modunda, çoğu zaman yüklenebilir kernel modülleri olarak çalışır.
  • Sürücüler bir aygıtın interrupt'larını ve veri aktarımlarını yönetir.
09Dosya İzinleri
Dosya izinleri, bir dosyayı kimin okuyup değiştirebileceğini ya da çalıştırabileceğini belirleyen ve işletim sisteminin her erişimde uyguladığı kurallardır.
  • Her dosyanın bir sahibi, bir grubu ve sahip, grup ve diğerleri için izinleri vardır.
  • Temel izinler okuma, yazma ve çalıştırmadır.
  • Sekizlik gösterim okuma (4), yazma (2) ve çalıştırmayı (1) toplar; 755 ya da 600 gibi.
10Dosya Sistemi
Dosya sistemi, işletim sisteminin bir depolama aygıtındaki veriyi dosya ve klasörlere düzenleyen ve her parçanın nerede saklandığını izleyen bölümüdür.
  • Dosya sistemi, ham depolamayı adlandırılmış dosya ve dizinlere düzenler.
  • Meta veri, her dosyanın boyutunu, izinlerini, zaman damgalarını ve veri bloklarını izler.
  • Journaling, bir dosya sisteminin çökmelerden veya elektrik kesintisinden sonra toparlanmasına yardımcı olur.
11File DescriptorDosya Tanıtıcısı
File descriptor, Unix benzeri bir işletim sisteminin process'e açık bir dosya, socket, pipe ya da başka bir girdi/çıktı kaynağı için verdiği küçük tamsayıdır.
  • File descriptor, açık bir I/O kaynağına başvuran, process başına bir tamsayıdır.
  • 0, 1 ve 2 numaralı tanıtıcılar standart girdi, standart çıktı ve standart hatadır.
  • Dosyalara, pipe'lara, socket'lere ve aygıtlara tanıtıcılar üzerinden erişilir.
12GPUGrafik İşlem Birimi
GPU (grafik işlem birimi), binlerce küçük çekirdeğiyle aynı hesabı çok büyük veri üzerinde aynı anda yapan işlemcidir; grafik ve yapay zekâ için kullanılır.
  • GPU'da paralel çalışan binlerce basit çekirdek vardır.
  • Grafik için yapıldı, bugün yapay zekâyı da çalıştırıyor.
  • 2007'den CUDA, GPU'ları genel hesaplama için programlanabilir yaptı.
13Heap Belleği
Heap belleği, boyutu ya da ömrü önceden bilinmeyen, çalışma zamanında ayrılan ve onu oluşturan fonksiyondan uzun yaşayabilen verilerin tutulduğu bölgedir.
  • Heap, boyutu ve ömrü esnek, çalışma zamanında ayrılan veriyi tutar.
  • Bir fonksiyon çağrısından daha uzun yaşayan nesneler heap'te yaşar.
  • C ve C++ onu elle serbest bırakır; Rust sahiplik, diğerleri çöp toplama kullanır.
14Hypervisor
Hypervisor, tek bir fiziksel bilgisayarın CPU, bellek ve aygıtlarını paylaştırarak yalıtılmış sanal makineler oluşturan ve çalıştıran yazılımdır.
  • Hypervisor, tek bir fiziksel bilgisayarda sanal makineler oluşturur, çalıştırır ve yalıtır.
  • Tip 1 hypervisor'lar bare-metal üzerinde, tip 2 hypervisor'lar bir işletim sisteminin üzerinde çalışır.
  • Modern CPU'lardaki donanım sanallaştırma, konukların yerele yakın hızda çalışmasını sağlar.
15InterruptKesme
Interrupt, CPU'ya bir olayın acil ilgi gerektirdiğini bildiren sinyaldir; CPU mevcut işini duraklatır ve kernel'daki özel bir işleyiciyi çalıştırır.
  • Interrupt, CPU'nun acil bir olayı ele almak için mevcut işini duraklatmasını sağlar.
  • Kernel eşleşen interrupt işleyicisini çalıştırır ve ardından kesilen işe devam eder.
  • Donanım aygıtları, zamanlayıcılar ve CPU istisnalarının hepsi interrupt yükseltebilir.
16İşletim SistemiOS
İşletim sistemi (OS), bilgisayarın donanımını yöneten temel yazılımdır; bu donanımı programlar arasında paylaştırır ve onu kullanmanın ortak bir yolunu sunar.
  • İşletim sistemi donanımı yönetir ve programları çalıştırır.
  • Çekirdeği süreçleri, belleği, dosyaları, cihazları ve izinleri yönetir.
  • Programlar onun hizmetlerini sistem çağrılarıyla kullanır.
17KernelÇekirdek
Kernel, işletim sisteminin CPU'yu, belleği ve donanım aygıtlarını yöneten ve programların bu kaynaklara nasıl eriştiğini denetleyen çekirdek bölümüdür.
  • Kernel, işletim sisteminin çekirdeğidir ve bilgisayar açık olduğu sürece çalışır.
  • CPU'yu, belleği, aygıtları ve dosya sistemlerini yönetir.
  • Kernel ayrıcalıklı kernel modunda çalışır; uygulamalar kısıtlı kullanıcı modunda çalışır.
18Kernel ModeÇekirdek Kipi
Kernel mode (çekirdek kipi), çekirdeğin donanıma ve belleğe tam erişebildiği ayrıcalıklı CPU durumudur; sıradan programlar kısıtlı kullanıcı kipinde çalışır.
  • Çekirdek kipi, işletim sistemi çekirdeğine donanıma ve belleğe tam erişim verir.
  • Uygulamalar kısıtlı kullanıcı kipinde çalışır.
  • Sistem çağrıları, kesmeler ve hatalar CPU'yu çekirdek kipine geçirir.
19Komut Satırı ArayüzüCLI
Komut satırı arayüzü (CLI), bilgisayarı metinle kullanmanın yoludur: seçenekleri ve argümanlarıyla bir komut yazar, Enter'a basar ve çıktısını okursunuz.
  • CLI bir metin arayüzüdür: bir komut yazar, çıktıyı okursunuz.
  • Komutlar argümanlar ve --verbose gibi seçenekler alır.
  • CLI'lar hızlı, kesin ve betiklemesi, otomatikleştirmesi kolaydır.
20Memory LeakBellek Sızıntısı
Memory leak, bir programın artık ihtiyaç duymadığı belleği tutmayı sürdürdüğü hatadır; bellek kullanımı zamanla artar, sistem yavaşlayabilir ya da çökebilir.
  • Memory leak, program artık ihtiyaç duymasa da ayrılmış halde kalan bellektir.
  • Sızıntılar bellek kullanımının zamanla istikrarlı biçimde artmasına yol açar.
  • Çöp toplama, takılı kalan başvuruların yol açtığı sızıntıları önlemez.
21MutexKarşılıklı Dışlama (Mutual Exclusion)
Mutex, kodun kritik bir bölümüne aynı anda yalnızca bir thread'in girmesine izin veren bir kilittir; thread'ler paylaşılan veriyi aynı anda değiştirip bozamaz.
  • Mutex, bir kritik bölümü aynı anda yalnızca bir thread'in çalıştırmasına izin verir.
  • Mutex'i kilitli bulan thread'ler serbest bırakılana kadar bekler.
  • Bir mutex'i yalnızca onu kilitleyen thread açmalıdır.
22PagingSayfalama
Paging, belleği sabit boyutlu sayfalara bölen ve sayfa tablolarıyla her process'in sanal sayfalarını fiziksel RAM'e eşleyen bir bellek yönetim düzenidir.
  • Bellek, yaygın olarak 4 KB olan sabit boyutlu sayfalara, RAM ise çerçevelere bölünür.
  • Sayfa tabloları her sanal sayfayı bir fiziksel çerçeveye eşler.
  • TLB, aramaların hızlı kalması için son çevirileri önbelleğe alır.
23ProcessSüreç
Process, bir programın çalışan örneğidir; işletim sistemi tarafından yönetilen kendi bellek alanına, kaynaklarına ve en az bir yürütme iş parçacığına sahiptir.
  • Process, bir process ID'si (PID) ile tanımlanan, yürütülmekte olan programdır.
  • Her process'in kendine ait yalıtılmış bir bellek alanı ve kaynakları vardır.
  • Process, kodunu çalıştıran bir ya da daha fazla thread içerir.
24Race ConditionYarış Durumu
Race condition, programın sonucunun paylaşılan veriyi aynı anda kullanan thread, process veya isteklerin öngörülemeyen zamanlamasına bağlı olduğu hatadır.
  • Race condition, sonucu eşzamanlı işlemlerin zamanlamasına bağımlı kılar.
  • Oku-değiştir-yaz ve kontrol et-sonra-uygula dizileri en yaygın nedenlerdir.
  • Yarışlar thread'ler, process'ler veya ayrı web istekleri arasında olabilir.
25RAMRastgele Erişimli Bellek
RAM (rastgele erişimli bellek), bilgisayarın hızlı ve geçici çalışma belleğidir; kullanımdaki programları ve verileri tutar, güç kesilince içeriği kaybolur.
  • RAM, çalışan programlar için hızlı ve geçici çalışma belleğidir.
  • Uçucudur: güç olmadan içeriği kaybolur.
  • Her adres doğrudan okunabilir; rastgele erişim bunu anlatır.
26Sanal Bellek
Sanal bellek, her process'e kendine ait özel bir adres alanı veren ve bunu arka planda fiziksel RAM'e ya da diske eşleyen bir işletim sistemi tekniğidir.
  • Her process kendi özel sanal adres alanını alır.
  • MMU ve sayfa tabloları sanal adresleri fiziksel adreslere çevirir.
  • Bellek, yaygın olarak 4 KB olan sabit boyutlu sayfalarla yönetilir.
27Semaphore
Semaphore, mevcut izinlerin sayacını tutan bir senkronizasyon aracıdır; belirli bir sayıya kadar thread'in bir kaynağı aynı anda kullanmasına izin verir.
  • Semaphore, thread'lerin aldığı ve geri verdiği bir izin sayısı tutar.
  • Counting semaphore, aynı anda en fazla N thread'in bir kaynağı kullanmasına izin verir.
  • Semaphore'un sahibi yoktur; bu yüzden herhangi bir thread bir izni serbest bırakabilir.
28ShellKabuk
Shell, kullanıcının yazdığı ya da bir betikte yazılı komutları okuyup işletim sisteminden çalıştırmasını isteyen, genellikle metin arayüzlü bir programdır.
  • Shell komutları yorumlar ve işletim sisteminden çalıştırmasını ister.
  • Popüler shell'ler arasında Bash, Zsh, fish ve PowerShell vardır.
  • Pipe'lar, yönlendirme ve değişkenler küçük komutları güçlü olanlara dönüştürmenizi sağlar.
29Stack Belleği
Stack belleği, bir thread'in fonksiyonlarının yerel değişkenlerini ve dönüş adreslerini tuttuğu bölgedir; her çağrıda büyür, dönüşte otomatik olarak küçülür.
  • Stack her fonksiyon çağrısının çerçevesini tutar: parametreler, yerel değişkenler, dönüş adresi.
  • Çerçeveler çağrıda eklenir, dönüşte çıkarılır; bu yüzden ayırma çok hızlıdır.
  • Her thread'in kendi küçük, sabit boyutlu stack'i vardır.
30sudo
sudo, izin verilen bir kullanıcının kendi parolasıyla tek bir komutu root ya da başka bir kullanıcının yetkileriyle çalıştırmasını sağlar ve bunu kaydeder.
  • sudo, tek bir komutu root'un ya da başka bir kullanıcının yetkileriyle çalıştırır.
  • Sizin kendi parolanızı sorar ve her kullanımı kaydeder.
  • visudo ile düzenlenen sudoers dosyası kimin neyi çalıştırabileceğini söyler.
31Swap AlanıTakas Alanı
Swap alanı, işletim sisteminin RAM'in taşma alanı olarak kullandığı disk bölgesidir; fiziksel bellek azaldığında az kullanılan bellek sayfaları oraya taşınır.
  • Swap alanı, RAM dolduğunda taşma olarak kullanılan disk depolamasıdır.
  • Kernel az kullanılan sayfaları swap'a taşır ve talep üzerine geri okur.
  • Thrashing denen yoğun takas, sistemi son derece yavaşlatır.
32System CallSistem Çağrısı
System call, bir programın işletim sistemi kernel'ından bir dosyayı okumak ya da process başlatmak gibi ayrıcalıklı bir işlem yapmasını istediği çağrıdır.
  • System call, kullanıcı modundaki bir programın kernel'dan ayrıcalıklı bir hizmet istemesinin yoludur.
  • Her system call CPU'yu kullanıcı modundan kernel moduna ve geri geçirir.
  • Örnekler arasında open, read, write, fork ve mmap vardır.
33Terminal
Terminal, bir metin arayüzü gösteren, tuş vuruşlarınızı bir kabuğa ya da komut satırı programına iletip onun geri gönderdiği metni görüntüleyen programdır.
  • Terminal bir metin arayüzü gösterir ve tuş vuruşlarınızı iletir.
  • İlk terminaller donanımdı; bugünküler terminal emülatörleridir.
  • Komutları gerçekten çalıştıran bir kabuğu başlatır.
34Threadİş Parçacığı
Thread, işletim sisteminin zamanlayabileceği en küçük yürütme birimidir; bir process içinde çalışır ve o process'in belleğini diğer thread'lerle paylaşır.
  • Thread, bir process içinde yaşayan yürütme birimidir.
  • Aynı process'teki thread'ler belleği paylaşır, ancak her birinin kendi yığını vardır.
  • Birden fazla thread, çok çekirdekli bir CPU'da paralel çalışabilir.
35Unix
Unix, 1969'da Bell Labs'ta doğan ve küçük araçlar, dosyalar ve bir kabuktan oluşan tasarımı Linux ve macOS'ta yaşamaya devam eden bir işletim sistemi ailesidir.
  • Unix, 1969'da Bell Labs'ta başladı ve kısa süre sonra C ile yeniden yazıldı.
  • Felsefesi: her biri tek bir işi iyi yapan, pipe'larla birleştirilen küçük araçlar.
  • Neredeyse her şey bir dosyadır ve insanlar bir kabuk üzerinden çalışır.
36Unix SignalUnix Sinyali
Unix signal, kernel'ın bir process'e durdurma isteği, hata ya da dolan bir zamanlayıcı gibi bir olayı bildirmek için ilettiği kısa ve asenkron bir bildirimdir.
  • Signal, bir process'e iletilen küçük, asenkron bir bildirimdir.
  • Yaygın signal'lar arasında SIGINT, SIGTERM, SIGKILL ve SIGHUP vardır.
  • Bir process varsayılan eylemi kullanabilir, signal'i yok sayabilir veya bir işleyici çalıştırabilir.
37User SpaceKullanıcı Alanı
User space, sıradan programların çalıştığı kısıtlı alandır; kernel space'ten ayrıdır, böylece hatalı ya da kötü niyetli bir uygulama tüm sistemi çökertemez.
  • User space, uygulamaların kısıtlı ayrıcalıklarla çalıştığı yerdir.
  • Kernel space, donanıma tam erişimi olan kernel'a ayrılmıştır.
  • CPU sınırı ayrıcalık düzeyleri ve bellek korumasıyla uygular.
Software Dictionary'den 37 terim. Ayrıntılı açıklamalar, örnekler ve sık sorulan sorular için: softwaredictionary.org/tr/kutuphane/operating-systems

Kitaba dönİpucu: Bir kopyasını saklamak için yazdırma penceresinde “PDF olarak kaydet”i seçin.

Daha fazla

Ayarlar