İşletim Sistemi - Hızlı Kılavuz
Bir İşletim Sistemi (OS), bir bilgisayar kullanıcısı ile bilgisayar donanımı arasındaki bir arayüzdür. Bir işletim sistemi, dosya yönetimi, bellek yönetimi, süreç yönetimi, giriş ve çıkışı işleme ve disk sürücüleri ve yazıcılar gibi çevresel aygıtları kontrol etme gibi tüm temel görevleri gerçekleştiren bir yazılımdır.
Bazı popüler İşletim Sistemleri arasında Linux İşletim Sistemi, Windows İşletim Sistemi, VMS, OS / 400, AIX, z / OS vb. Bulunur.
Tanım
İşletim sistemi, kullanıcı ve bilgisayar donanımı arasında bir arayüz görevi gören ve her türlü programın yürütülmesini kontrol eden bir programdır.
Aşağıda, bir işletim sisteminin bazı önemli işlevleri verilmiştir.
- Hafıza yönetimi
- İşlemci Yönetimi
- Cihaz yönetimi
- Dosya yönetimi
- Security
- Sistem performansı üzerinde kontrol
- İş muhasebesi
- Yardımcıları tespit etme hatası
- Diğer yazılımlar ve kullanıcılar arasındaki koordinasyon
Hafıza yönetimi
Bellek yönetimi, Birincil Bellek veya Ana Bellek yönetimini ifade eder. Ana bellek, her kelimenin veya baytın kendi adresine sahip olduğu geniş bir kelime veya bayt dizisidir.
Ana bellek, doğrudan CPU tarafından erişilebilen hızlı bir depolama sağlar. Bir programın yürütülmesi için ana bellekte olması gerekir. Bir İşletim Sistemi, bellek yönetimi için aşağıdaki etkinlikleri gerçekleştirir -
Birincil hafızanın, yani hangi kısmının kimler tarafından kullanıldığını, hangi kısmının kullanılmadığını izler.
Çoklu programlamada, işletim sistemi hangi işlemin ne zaman ve ne kadar bellek alacağına karar verir.
Bir işlem bunu yapmasını istediğinde belleği ayırır.
Bir işlem artık ihtiyaç duymadığında veya sonlandırıldığında belleğin dağıtımını kaldırır.
İşlemci Yönetimi
Çoklu programlama ortamında, işletim sistemi hangi işlemin işlemciyi ne zaman ve ne kadar süreyle alacağına karar verir. Bu fonksiyonaprocess scheduling. Bir İşletim Sistemi, işlemci yönetimi için aşağıdaki etkinlikleri gerçekleştirir -
İşlemciyi ve işlem durumunu takip eder. Bu görevden sorumlu olan program şu şekilde bilinir:traffic controller.
İşlemciyi (CPU) bir işleme tahsis eder.
İşlem artık gerekli olmadığında işlemciyi ayırır.
Cihaz yönetimi
Bir İşletim Sistemi, aygıt iletişimini ilgili sürücüleri aracılığıyla yönetir. Cihaz yönetimi için aşağıdaki etkinlikleri gerçekleştirir -
Tüm cihazların kaydını tutar. Bu görevden sorumlu olan program,I/O controller.
Hangi işlemin cihazı ne zaman ve ne kadar süreyle alacağına karar verir.
Cihazı verimli bir şekilde tahsis eder.
Cihazların dağıtımını kaldırır.
Dosya yönetimi
Bir dosya sistemi normalde kolay gezinme ve kullanım için dizinler halinde düzenlenir. Bu dizinler dosyalar ve diğer yönleri içerebilir.
Bir İşletim Sistemi, dosya yönetimi için aşağıdaki etkinlikleri gerçekleştirir -
Bilgileri, konumu, kullanımları, durumu vb. Takip eder. Kolektif tesisler genellikle file system.
Kaynakları kimin alacağına karar verir.
Kaynakları tahsis eder.
Kaynakları ayırır.
Diğer Önemli Faaliyetler
Aşağıda, bir İşletim Sisteminin gerçekleştirdiği önemli etkinliklerden bazıları verilmiştir -
Security - Şifre ve benzeri diğer teknikler sayesinde programlara ve verilere yetkisiz erişimi engeller.
Control over system performance - Servis talebi ile sistemden yanıt arasındaki kayıt gecikmeleri.
Job accounting - Çeşitli işler ve kullanıcılar tarafından kullanılan zaman ve kaynakları takip etmek.
Error detecting aids - Dökümlerin, izlerin, hata mesajlarının ve diğer hata ayıklama ve hata tespit yardımcılarının üretimi.
Coordination between other softwares and users - Bilgisayar sistemlerinin çeşitli kullanıcılarına derleyiciler, tercümanlar, montajcılar ve diğer yazılımların koordinasyonu ve atanması.
İşletim sistemleri ilk bilgisayar neslinden itibaren oradadır ve zamanla gelişmeye devam ederler. Bu bölümde, en sık kullanılan bazı önemli işletim sistemi türlerini tartışacağız.
Toplu işletim sistemi
Bir toplu işletim sisteminin kullanıcıları, bilgisayarla doğrudan etkileşime girmez. Her kullanıcı işini delikli kartlar gibi çevrimdışı bir aygıtta hazırlar ve bilgisayar operatörüne sunar. İşlemeyi hızlandırmak için, benzer ihtiyaçlara sahip işler bir araya toplanır ve grup halinde çalıştırılır. Programcılar programlarını operatöre bırakır ve operatör benzer gereksinimleri olan programları gruplar halinde sıralar.
Toplu Sistemlerle ilgili sorunlar aşağıdaki gibidir -
- Kullanıcı ve iş arasında etkileşim eksikliği.
- Mekanik I / O cihazlarının hızı CPU'dan daha yavaş olduğu için CPU genellikle boştadır.
- İstenilen önceliği sağlamak zor.
Zaman paylaşımlı işletim sistemleri
Zaman paylaşımı, çeşitli terminallerde bulunan birçok kişinin aynı anda belirli bir bilgisayar sistemini kullanmasını sağlayan bir tekniktir. Zaman paylaşımı veya çoklu görev, çoklu programlamanın mantıksal bir uzantısıdır. İşlemcinin aynı anda birden fazla kullanıcı arasında paylaşılan zamanı, zaman paylaşımı olarak adlandırılır.
Multiprogrammed Batch Systems ve Time-Sharing Systems arasındaki temel fark, Multiprogrammed batch sistemleri söz konusu olduğunda, amacın işlemci kullanımını en üst düzeye çıkarmak iken, Time-Sharing Systems'de amaç yanıt süresini en aza indirmektir.
CPU tarafından aralarında geçiş yapılarak birden fazla iş yürütülür, ancak anahtarlar çok sık gerçekleşir. Böylece kullanıcı anında yanıt alabilir. Örneğin, bir işlem işleminde, işlemci her kullanıcı programını kısa bir hesaplama patlaması veya kuantum hesaplamayla yürütür. Yani, eğernkullanıcılar mevcutsa, her kullanıcı bir zaman miktarı elde edebilir. Kullanıcı komutu gönderdiğinde, yanıt süresi en fazla birkaç saniyedir.
İşletim sistemi, her kullanıcıya bir zamanın küçük bir bölümünü sağlamak için CPU planlamasını ve çoklu programlamayı kullanır. Öncelikle toplu sistemler olarak tasarlanan bilgisayar sistemleri, zaman paylaşım sistemlerine dönüştürüldü.
Zaman Paylaşımı işletim sistemlerinin avantajları aşağıdaki gibidir -
- Hızlı yanıt avantajı sağlar.
- Yazılımın kopyalanmasını önler.
- CPU boşta kalma süresini azaltır.
Zaman paylaşımlı işletim sistemlerinin dezavantajları aşağıdaki gibidir -
- Güvenilirlik sorunu.
- Kullanıcı programlarının ve verilerinin güvenliği ve bütünlüğü sorunu.
- Veri iletişimi sorunu.
Dağıtılmış işletim sistemi
Dağıtılmış sistemler, birden çok gerçek zamanlı uygulamaya ve birden çok kullanıcıya hizmet vermek için birden çok merkezi işlemci kullanır. Veri işleme işleri buna göre işlemciler arasında dağıtılır.
İşlemciler birbirleriyle çeşitli iletişim hatları (yüksek hızlı otobüsler veya telefon hatları gibi) aracılığıyla iletişim kurar. Bunlaraloosely coupled systemsveya dağıtılmış sistemler. Dağıtılmış bir sistemdeki işlemciler boyut ve işlev açısından farklılık gösterebilir. Bu işlemciler, siteler, düğümler, bilgisayarlar vb. Olarak adlandırılır.
Dağıtılmış sistemlerin avantajları aşağıdaki gibidir -
- Kaynak paylaşım tesisi ile, bir sitedeki bir kullanıcı, başka bir sitedeki mevcut kaynakları kullanabilir.
- Elektronik posta yoluyla birbirinizle veri alışverişini hızlandırın.
- Dağıtılmış bir sistemde bir site başarısız olursa, kalan siteler potansiyel olarak çalışmaya devam edebilir.
- Müşterilere daha iyi hizmet.
- Ana bilgisayardaki yükün azaltılması.
- Veri işlemedeki gecikmelerin azaltılması.
Ağ işletim sistemi
Bir Ağ İşletim Sistemi bir sunucu üzerinde çalışır ve sunucuya verileri, kullanıcıları, grupları, güvenliği, uygulamaları ve diğer ağ işlevlerini yönetme yeteneği sağlar. Ağ işletim sisteminin birincil amacı, bir ağdaki birden çok bilgisayar arasında, tipik olarak bir yerel alan ağı (LAN), özel bir ağ veya diğer ağlar arasında paylaşılan dosya ve yazıcı erişimine izin vermektir.
Ağ işletim sistemi örnekleri arasında Microsoft Windows Server 2003, Microsoft Windows Server 2008, UNIX, Linux, Mac OS X, Novell NetWare ve BSD bulunur.
Ağ işletim sistemlerinin avantajları aşağıdaki gibidir -
- Merkezi sunucular oldukça kararlıdır.
- Güvenlik, sunucu tarafından yönetilir.
- Yeni teknolojilere ve donanıma yükseltmeler sisteme kolayca entegre edilebilir.
- Sunuculara uzaktan erişim, farklı konum ve sistem türlerinden mümkündür.
Ağ işletim sistemlerinin dezavantajları aşağıdaki gibidir -
- Bir sunucu satın almanın ve çalıştırmanın yüksek maliyeti.
- Çoğu işlem için merkezi bir konuma bağımlılık.
- Düzenli bakım ve güncellemeler gereklidir.
Gerçek Zamanlı işletim sistemi
Gerçek zamanlı sistem, girdileri işlemek ve yanıtlamak için gereken zaman aralığının ortamı kontrol edecek kadar küçük olduğu bir veri işleme sistemi olarak tanımlanır. Sistem tarafından gerekli güncellenmiş bilgilerin bir girişine ve görüntülenmesine yanıt vermek için geçen süre,response time. Dolayısıyla bu yöntemde, yanıt süresi çevrimiçi işlemeye kıyasla çok daha azdır.
Gerçek zamanlı sistemler, bir işlemcinin çalışması veya veri akışı konusunda katı zaman gereksinimleri olduğunda kullanılır ve gerçek zamanlı sistemler, özel bir uygulamada bir kontrol cihazı olarak kullanılabilir. Gerçek zamanlı bir işletim sistemi iyi tanımlanmış, sabit zaman kısıtlamalarına sahip olmalıdır, aksi takdirde sistem başarısız olur. Örneğin, Bilimsel deneyler, tıbbi görüntüleme sistemleri, endüstriyel kontrol sistemleri, silah sistemleri, robotlar, hava trafik kontrol sistemleri vb.
İki tür gerçek zamanlı işletim sistemi vardır.
Zor gerçek zamanlı sistemler
Zor gerçek zamanlı sistemler, kritik görevlerin zamanında tamamlanmasını garanti eder. Zor gerçek zamanlı sistemlerde, ikincil depolama sınırlıdır veya eksiktir ve veriler ROM'da depolanır. Bu sistemlerde sanal bellek neredeyse hiç bulunmaz.
Yumuşak gerçek zamanlı sistemler
Yumuşak gerçek zamanlı sistemler daha az kısıtlayıcıdır. Kritik bir gerçek zamanlı görev, diğer görevlere göre öncelik kazanır ve tamamlanana kadar önceliğini korur. Yumuşak gerçek zamanlı sistemler, zor gerçek zamanlı sistemlere göre sınırlı faydaya sahiptir. Örneğin, multimedya, sanal gerçeklik, deniz altı keşfi ve gezegensel geziciler gibi İleri Bilimsel Projeler vb.
Bir İşletim Sistemi hem kullanıcılara hem de programlara hizmetler sağlar.
- Programlara yürütülecek bir ortam sağlar.
- Kullanıcılara programları uygun bir şekilde yürütmeleri için hizmetler sağlar.
Aşağıda, bir işletim sistemi tarafından sağlanan birkaç yaygın hizmet verilmiştir -
- Program yürütme
- G / Ç işlemleri
- Dosya Sistemi manipülasyonu
- Communication
- Hata Tespiti
- Kaynak Tahsisi
- Protection
Program yürütme
İşletim sistemleri, kullanıcı programlarından yazıcı biriktirici, ad sunucuları, dosya sunucusu vb. Gibi sistem programlarına kadar pek çok etkinlik türünü ele alır. Bu etkinliklerin her biri bir süreç olarak özetlenmiştir.
Bir süreç, tam yürütme bağlamını içerir (çalıştırılacak kod, işlenecek veriler, kayıtlar, kullanımdaki işletim sistemi kaynakları). Aşağıda, program yönetimi ile ilgili olarak bir işletim sisteminin başlıca faaliyetleri yer almaktadır -
- Bir programı hafızaya yükler.
- Programı yürütür.
- Programın yürütülmesini ele alır.
- İşlem senkronizasyonu için bir mekanizma sağlar.
- Süreç iletişimi için bir mekanizma sağlar.
- Kilitlenme işlemine yönelik bir mekanizma sağlar.
G / Ç İşlemi
Bir G / Ç alt sistemi, G / Ç aygıtlarından ve bunlara karşılık gelen sürücü yazılımlarından oluşur. Sürücüler, belirli donanım aygıtlarının özelliklerini kullanıcılardan gizler.
İşletim Sistemi, kullanıcı ve aygıt sürücüleri arasındaki iletişimi yönetir.
- G / Ç işlemi, herhangi bir dosya veya herhangi bir belirli G / Ç cihazı ile okuma veya yazma işlemi anlamına gelir.
- İşletim sistemi, gerektiğinde gerekli I / O cihazına erişim sağlar.
Dosya sistemi manipülasyonu
Dosya, ilgili bilgilerin bir koleksiyonunu temsil eder. Bilgisayarlar, uzun süreli depolama amacıyla dosyaları diskte (ikincil depolama) depolayabilir. Depolama ortamı örnekleri arasında manyetik bant, manyetik disk ve CD, DVD gibi optik disk sürücüleri bulunur. Bu ortamların her birinin hız, kapasite, veri aktarım hızı ve veri erişim yöntemleri gibi kendi özellikleri vardır.
Bir dosya sistemi normalde kolay gezinme ve kullanım için dizinler halinde düzenlenir. Bu dizinler dosyalar ve diğer yönleri içerebilir. Dosya yönetimi ile ilgili olarak bir işletim sisteminin başlıca faaliyetleri şunlardır:
- Programın bir dosyayı okuması veya bir dosya yazması gerekiyor.
- İşletim sistemi, programa dosya üzerinde işlem yapma izni verir.
- İzin salt okunur, okuma-yazma, reddedilen vb. Arasında değişir.
- İşletim Sistemi, kullanıcıya dosya oluşturmak / silmek için bir arayüz sağlar.
- İşletim Sistemi, kullanıcıya dizinleri oluşturmak / silmek için bir arayüz sağlar.
- İşletim Sistemi, dosya sisteminin yedeğini oluşturmak için bir arayüz sağlar.
İletişim
Belleği, çevresel aygıtları veya bir saati paylaşmayan bir işlemci topluluğu olan dağıtılmış sistemler durumunda, işletim sistemi tüm işlemler arasındaki iletişimi yönetir. Birden çok süreç, ağdaki iletişim hatları aracılığıyla birbirleriyle iletişim kurar.
İşletim sistemi yönlendirme ve bağlantı stratejilerini ve çekişme ve güvenlik sorunlarını ele alır. Aşağıda, bir işletim sisteminin iletişimle ilgili başlıca faaliyetleri yer almaktadır -
- İki işlem genellikle aralarında verilerin aktarılmasını gerektirir
- Her iki işlem de bir bilgisayarda veya farklı bilgisayarlarda olabilir, ancak bir bilgisayar ağı üzerinden bağlanır.
- İletişim, Paylaşılan Hafıza veya Mesaj Geçişiyle olmak üzere iki yöntemle gerçekleştirilebilir.
Hata yönetimi
Hatalar her zaman ve her yerde ortaya çıkabilir. CPU'da, G / Ç aygıtlarında veya bellek donanımında bir hata meydana gelebilir. Aşağıdakiler, bir işletim sisteminin hata işleme ile ilgili başlıca faaliyetleridir -
- İşletim sistemi sürekli olarak olası hataları kontrol eder.
- İşletim sistemi, doğru ve tutarlı bilgi işlem sağlamak için uygun bir eylemde bulunur.
Kaynak yönetimi
Çok kullanıcılı veya çok görevli ortam durumunda, ana bellek, CPU döngüleri ve dosya depolaması gibi kaynaklar her kullanıcıya veya işe tahsis edilecektir. Aşağıdakiler, kaynak yönetimi ile ilgili olarak bir işletim sisteminin ana faaliyetleridir -
- İşletim sistemi, planlayıcıları kullanarak her türlü kaynağı yönetir.
- CPU'nun daha iyi kullanılması için CPU planlama algoritmaları kullanılır.
Koruma
Birden çok kullanıcıya sahip bir bilgisayar sistemi ve birden çok işlemin eşzamanlı olarak yürütülmesi düşünüldüğünde, çeşitli süreçler birbirlerinin faaliyetlerinden korunmalıdır.
Koruma, programların, işlemlerin veya kullanıcıların bir bilgisayar sistemi tarafından tanımlanan kaynaklara erişimini denetlemek için bir mekanizma veya bir yol anlamına gelir. Aşağıda, korumayla ilgili olarak bir işletim sisteminin başlıca faaliyetleri yer almaktadır -
- İşletim sistemi, sistem kaynaklarına tüm erişimin kontrol edilmesini sağlar.
- İşletim sistemi, harici I / O cihazlarının geçersiz erişim girişimlerinden korunmasını sağlar.
- İşletim sistemi, parolalar aracılığıyla her kullanıcı için kimlik doğrulama özellikleri sağlar.
Toplu işlem
Toplu işleme, bir İşletim Sisteminin, işleme başlamadan önce programları ve verileri toplu olarak topladığı bir tekniktir. Bir işletim sistemi, toplu işlemeyle ilgili aşağıdaki etkinlikleri gerçekleştirir -
İşletim sistemi, önceden tanımlanmış komut dizisine, programlara ve verilere sahip bir işi tek bir birim olarak tanımlar.
İşletim sistemi hafızada bir numara ve işi tutar ve bunları herhangi bir manuel bilgi olmadan yürütür.
İşler gönderilme sırasına göre işlenir, yani ilk gelene ilk hizmet şekli verilir.
Bir işin yürütülmesi tamamlandığında, belleği serbest bırakılır ve işin çıktısı daha sonra yazdırılmak veya işlenmek üzere bir çıktı kuyruğuna kopyalanır.
Avantajlar
Toplu işlem, operatörün işinin çoğunu bilgisayara alır.
Yeni bir iş olarak artan performans, herhangi bir manuel müdahale olmaksızın, önceki iş biter bitmez başlar.
Dezavantajları
- Programda hata ayıklamak zor.
- Bir iş sonsuz bir döngüye girebilir.
- Koruma şemasının olmaması nedeniyle, bir toplu iş bekleyen işleri etkileyebilir.
Çoklu görev
Çoklu görev, aralarında geçiş yapılarak CPU tarafından aynı anda birden fazla işin yürütülmesidir. Anahtarlar o kadar sık meydana gelir ki kullanıcılar çalışırken her programla etkileşime girebilir. Bir işletim sistemi, çoklu görevle ilgili aşağıdaki etkinlikleri gerçekleştirir -
Kullanıcı işletim sistemine veya bir programa doğrudan talimatlar verir ve anında yanıt alır.
İşletim sistemi, çoklu görevleri, birden çok işlemi gerçekleştirebileceği / aynı anda birden çok programı çalıştırabileceği şekilde gerçekleştirir.
Çoklu Görev İşletim Sistemleri, Zaman paylaşımlı sistemler olarak da bilinir.
Bu İşletim Sistemleri, bir bilgisayar sisteminin makul bir maliyetle etkileşimli kullanımını sağlamak için geliştirilmiştir.
Zaman paylaşımlı bir işletim sistemi, her kullanıcıya zaman paylaşımlı bir CPU'nun küçük bir bölümünü sağlamak için CPU planlama ve çoklu programlama kavramını kullanır.
Her kullanıcının hafızasında en az bir ayrı programı vardır.
Belleğe yüklenen ve yürütülmekte olan bir program genellikle bir process.
Bir işlem yürütüldüğünde, genellikle bitmeden veya G / Ç gerçekleştirmesi gerekmeden önce yalnızca çok kısa bir süre için çalışır.
Etkileşimli G / Ç tipik olarak daha düşük hızlarda çalıştığından, tamamlanması uzun zaman alabilir. Bu süre zarfında, bir CPU başka bir işlem tarafından kullanılabilir.
İşletim sistemi, kullanıcıların bilgisayarı aynı anda paylaşmasına izin verir. Zaman paylaşımlı bir sistemdeki her eylem veya komut kısa olma eğiliminde olduğundan, her kullanıcı için yalnızca küçük bir CPU zamanı gerekir.
Sistem CPU'yu bir kullanıcı / programdan diğerine hızlı bir şekilde değiştirdikçe, her kullanıcıya kendi CPU'su olduğu izlenimi verilirken aslında bir CPU birçok kullanıcı arasında paylaşılıyor.
Çoklu programlama
İki veya daha fazla program aynı anda bellekte bulunduğunda işlemcinin paylaşılması, multiprogramming. Çoklu programlama, tek bir paylaşılan işlemciyi varsayar. Çoklu programlama, CPU'nun her zaman yürütecek bir tane olmasını sağlayacak şekilde işleri düzenleyerek CPU kullanımını artırır.
Aşağıdaki şekil, bir çoklu programlama sistemi için bellek düzenini göstermektedir.
Bir işletim sistemi, çoklu programlama ile ilgili aşağıdaki etkinlikleri gerçekleştirir.
İşletim sistemi bir seferde birkaç işi bellekte tutar.
Bu iş kümesi, iş havuzunda tutulan işlerin bir alt kümesidir.
İşletim sistemi bellekteki işlerden birini seçer ve yürütmeye başlar.
Çoklu programlama işletim sistemleri, işlenecek iş olmadığı sürece CPU'nun hiçbir zaman boşta kalmamasını sağlamak için bellek yönetimi programlarını kullanarak tüm etkin programların ve sistem kaynaklarının durumunu izler.
Avantajlar
- Yüksek ve verimli CPU kullanımı.
- Kullanıcı, birçok programın neredeyse aynı anda CPU tahsis edildiğini hissediyor.
Dezavantajları
- CPU planlaması gereklidir.
- Bellekteki birçok işi barındırmak için bellek yönetimi gereklidir.
Etkileşim
Etkileşim, kullanıcıların bir bilgisayar sistemiyle etkileşim kurma yeteneğini ifade eder. Bir İşletim sistemi etkileşimle ilgili aşağıdaki etkinlikleri gerçekleştirir -
- Kullanıcıya sistemle etkileşim için bir arayüz sağlar.
- Giriş cihazlarını kullanıcıdan girdi alacak şekilde yönetir. Örneğin klavye.
- Kullanıcıya çıktıları göstermek için çıktı cihazlarını yönetir. Örneğin, Monitor.
Kullanıcı sonucu gönderdiği ve beklediği için işletim sisteminin yanıt süresinin kısa olması gerekir.
Gerçek Zamanlı Sistem
Gerçek zamanlı sistemler genellikle adanmış, gömülü sistemlerdir. Bir işletim sistemi, gerçek zamanlı sistem etkinliğiyle ilgili aşağıdaki etkinlikleri gerçekleştirir.
- Bu tür sistemlerde, İşletim Sistemleri tipik olarak sensör verilerini okur ve bunlara tepki verir.
- İşletim sistemi, doğru performansı sağlamak için olaylara belirli süreler içinde yanıt vermeyi garanti etmelidir.
Dağıtılmış Ortam
Dağıtılmış bir ortam, bir bilgisayar sistemindeki birden çok bağımsız CPU veya işlemciyi ifade eder. Bir işletim sistemi, dağıtılmış ortamla ilgili aşağıdaki etkinlikleri gerçekleştirir -
İşletim sistemi, hesaplama mantığını birkaç fiziksel işlemci arasında dağıtır.
İşlemciler hafızayı veya saati paylaşmaz. Bunun yerine, her işlemcinin kendi yerel belleği vardır.
İşletim sistemi, işlemciler arasındaki iletişimi yönetir. Birbirleriyle çeşitli iletişim hatları aracılığıyla iletişim kurarlar.
Biriktirme
Biriktirme, çevrimiçi eşzamanlı çevresel işlemler için bir kısaltmadır. Kuyruklama, çeşitli G / Ç işlerinin verilerini bir arabelleğe koymayı ifade eder. Bu arabellek, bellek veya sabit diskte G / Ç aygıtları tarafından erişilebilen özel bir alandır.
Bir işletim sistemi, dağıtılmış ortamla ilgili aşağıdaki etkinlikleri gerçekleştirir -
Cihazlar farklı veri erişim hızlarına sahip olduğundan G / Ç cihazı veri biriktirmeyi yönetir.
Daha yavaş aygıt yakalarken verilerin dinlenebileceği bir bekleme istasyonu sağlayan bekletme arabelleğini korur.
Bir bilgisayar paralel şekilde G / Ç gerçekleştirebildiğinden, biriktirme işlemi nedeniyle paralel hesaplamayı sürdürür. Bilgisayarı bir kasetten veri okuması, diske veri yazması ve hesaplama görevini yaparken bir teyp yazıcısına yazması mümkün hale gelir.
Avantajlar
- Bekletme işlemi, çok büyük bir arabellek olarak bir disk kullanır.
- Kuyruklama, bir iş için G / Ç işlemi ile başka bir iş için işlemci işlemlerini üst üste bindirebilir.
İşlem
Süreç, temelde yürütülmekte olan bir programdır. Bir sürecin yürütülmesi sıralı bir şekilde ilerlemelidir.
Süreç, sistemde uygulanacak temel iş birimini temsil eden bir varlık olarak tanımlanır.
Basit bir ifadeyle bilgisayar programlarımızı bir metin dosyasına yazıyoruz ve bu programı çalıştırdığımızda programda belirtilen tüm görevleri yerine getiren bir işlem haline geliyor.
Bir program belleğe yüklendiğinde ve bir işlem haline geldiğinde, dört bölüme ayrılabilir - yığın, yığın, metin ve veri. Aşağıdaki görüntü, ana bellek içindeki bir işlemin basitleştirilmiş bir düzenini göstermektedir -
SN | Bileşen Açıklaması |
---|---|
1 | Stack İşlem Yığını, yöntem / işlev parametreleri, dönüş adresi ve yerel değişkenler gibi geçici verileri içerir. |
2 | Heap Bu, çalışma süresi boyunca bir işleme dinamik olarak tahsis edilmiş bellektir. |
3 | Text Bu, Program Sayacı değeriyle temsil edilen mevcut etkinliği ve işlemcinin kayıtlarının içeriğini içerir. |
4 | Data Bu bölüm global ve statik değişkenleri içerir. |
Program
Bir program, tek bir satır veya milyonlarca satır olabilen bir kod parçasıdır. Bir bilgisayar programı genellikle bir bilgisayar programcısı tarafından bir programlama dilinde yazılır. Örneğin, burada C programlama dilinde yazılmış basit bir program var -
#include <stdio.h>
int main() {
printf("Hello, World! \n");
return 0;
}
Bir bilgisayar programı, bir bilgisayar tarafından yürütüldüğünde belirli bir görevi yerine getiren bir talimatlar koleksiyonudur. Bir programı bir süreçle karşılaştırdığımızda, bir sürecin bir bilgisayar programının dinamik bir örneği olduğu sonucuna varabiliriz.
İyi tanımlanmış bir görevi yerine getiren bir bilgisayar programının bir parçası, algorithm. Bilgisayar programları, kitaplıkları ve ilgili verilerden oluşan bir koleksiyon,software.
Süreç Yaşam Döngüsü
Bir süreç yürütüldüğünde farklı durumlardan geçer. Bu aşamalar farklı işletim sistemlerinde farklılık gösterebilir ve bu durumların adları da standartlaştırılmamıştır.
Genel olarak, bir işlem aynı anda aşağıdaki beş durumdan birine sahip olabilir.
SN | Durum ve Açıklama |
---|---|
1 | Start Bu, bir işlemin ilk başlatıldığı / oluşturulduğu ilk durumdur. |
2 | Ready İşlem, bir işlemciye atanmayı bekliyor. Hazır işlemler, işlemcinin çalışabilmesi için işletim sistemi tarafından kendilerine tahsis edilmesini beklemektedir. İşlem daha sonra bu duruma gelebilirStart durumu veya çalıştırırken, ancak başka bir işleme CPU atamak için zamanlayıcı tarafından kesintiye uğratılır. |
3 | Running İşlem, işletim sistemi zamanlayıcısı tarafından bir işlemciye atandıktan sonra, işlem durumu çalışmaya ayarlanır ve işlemci, talimatlarını yürütür. |
4 | Waiting Kullanıcı girdisini beklemek veya bir dosyanın kullanılabilir olmasını beklemek gibi bir kaynağı beklemesi gerekiyorsa işlem bekleme durumuna geçer. |
5 | Terminated or Exit İşlemin yürütülmesi tamamlandığında veya işletim sistemi tarafından sonlandırıldığında, ana bellekten kaldırılmayı beklediği sonlandırılmış duruma taşınır. |
Proses Kontrol Bloğu (PCB)
İşlem Kontrol Bloğu, her işlem için İşletim Sistemi tarafından tutulan bir veri yapısıdır. PCB, bir tamsayı işlem kimliği (PID) ile tanımlanır. Bir PCB, aşağıdaki tabloda listelendiği gibi bir süreci takip etmek için gereken tüm bilgileri saklar -
SN | Bilgi ve Açıklama |
---|---|
1 | Process State Sürecin mevcut durumu, yani hazır, çalışıyor, bekliyor veya her neyse. |
2 | Process privileges Bu, sistem kaynaklarına erişime izin vermek / izin vermemek için gereklidir. |
3 | Process ID İşletim sistemindeki işlemlerin her biri için benzersiz kimlik. |
4 | Pointer Üst süreç için bir işaretçi. |
5 | Program Counter Program Sayacı, bu işlem için yürütülecek bir sonraki talimatın adresine bir göstericidir. |
6 | CPU registers İşlemin çalışma durumu için yürütülmesi için depolanması gereken çeşitli CPU kayıtları. |
7 | CPU Scheduling Information İşlemi planlamak için gerekli olan işlem önceliği ve diğer planlama bilgileri. |
8 | Memory management information Bu, işletim sistemi tarafından kullanılan belleğe bağlı olarak sayfa tablosu, bellek sınırları, Segment tablosu bilgilerini içerir. |
9 | Accounting information Bu, işlem yürütme için kullanılan CPU miktarını, zaman sınırlarını, yürütme kimliğini vb. İçerir. |
10 | IO status information Bu, işleme tahsis edilen I / O cihazlarının bir listesini içerir. |
Bir PCB'nin mimarisi tamamen İşletim Sistemine bağlıdır ve farklı işletim sistemlerinde farklı bilgiler içerebilir. İşte bir PCB'nin basitleştirilmiş bir diyagramı -
PCB, ömrü boyunca bir işlem için korunur ve işlem sona erdiğinde silinir.
Tanım
Süreç çizelgeleme, çalışan sürecin CPU'dan çıkarılmasını ve belirli bir strateji temelinde başka bir işlemin seçilmesini yöneten süreç yöneticisinin faaliyetidir.
İşlem planlama, Çoklu Programlama işletim sistemlerinin önemli bir parçasıdır. Bu tür işletim sistemleri, bir seferde çalıştırılabilir belleğe birden fazla işlemin yüklenmesine izin verir ve yüklenen işlem, zaman çoklama kullanarak CPU'yu paylaşır.
İşlem Planlama Sıraları
İşletim sistemi tüm PCB'leri Süreç Çizelgeleme Sıralarında tutar. İşletim sistemi, işlem durumlarının her biri için ayrı bir kuyruk tutar ve aynı yürütme durumundaki tüm işlemlerin PCB'leri aynı kuyruğa yerleştirilir. Bir sürecin durumu değiştiğinde, PCB'si mevcut kuyruğundan ayrılır ve yeni durum kuyruğuna taşınır.
İşletim Sistemi, aşağıdaki önemli işlem planlama kuyruklarını korur -
Job queue - Bu kuyruk tüm süreçleri sistemde tutar.
Ready queue- Bu kuyruk, ana bellekte bulunan tüm işlemlerin bir takımını hazır ve yürütülmeyi beklemekte tutar. Bu kuyruğa her zaman yeni bir işlem konur.
Device queues - Bir G / Ç cihazının kullanılamaması nedeniyle engellenen işlemler bu kuyruğu oluşturur.
İşletim sistemi, her kuyruğu yönetmek için farklı politikalar kullanabilir (FIFO, Round Robin, Priority, vb.). İşletim sistemi zamanlayıcı, işlemlerin sistemde işlemci çekirdeği başına yalnızca bir girişe sahip olabilen hazır ve çalıştırma kuyrukları arasında nasıl taşınacağını belirler; Yukarıdaki diyagramda CPU ile birleştirilmiştir.
İki Durumlu Süreç Modeli
İki durumlu süreç modeli, aşağıda açıklanan çalışan ve çalışmayan durumları ifade eder -
SN | Durum ve Açıklama |
---|---|
1 | Running Yeni bir proses oluşturulduğunda, sisteme çalışır durumda olduğu gibi girer. |
2 | Not Running Çalışmayan işlemler kuyrukta tutulur ve işlem sırasının gelmesini bekler. Kuyruktaki her giriş, belirli bir işlem için bir göstericidir. Sıra, bağlantılı liste kullanılarak uygulanır. Sevk görevlisinin kullanımı aşağıdaki gibidir. Bir işlem kesintiye uğradığında, bu işlem bekleme kuyruğuna aktarılır. İşlem tamamlanırsa veya durdurulursa, işlem iptal edilir. Her iki durumda da, sevk görevlisi daha sonra yürütmek için kuyruktan bir işlem seçer. |
Zamanlayıcılar
Zamanlayıcılar, süreç planlamasını çeşitli şekillerde gerçekleştiren özel sistem yazılımıdır. Ana görevleri, sisteme sunulacak işleri seçmek ve hangi sürecin çalıştırılacağına karar vermektir. Zamanlayıcılar üç türdendir -
- Uzun Dönem Planlayıcı
- Kısa Süreli Planlayıcı
- Orta Vadeli Planlayıcı
Uzun Dönem Planlayıcı
Aynı zamanda job scheduler. Uzun vadeli bir programlayıcı, hangi programların işlenmek üzere sisteme kabul edildiğini belirler. İşlemleri kuyruktan seçer ve yürütmek için belleğe yükler. İşlem, CPU zamanlaması için belleğe yüklenir.
İş planlayıcının birincil amacı, G / Ç bağlı ve işlemci bağlı gibi dengeli bir iş karışımı sağlamaktır. Aynı zamanda çoklu programlama derecesini de kontrol eder. Çoklu programlamanın derecesi sabitse, ortalama süreç yaratma oranı, sistemden çıkan süreçlerin ortalama ayrılma oranına eşit olmalıdır.
Bazı sistemlerde, uzun vadeli planlayıcı mevcut olmayabilir veya asgari düzeyde olabilir. Zaman paylaşımlı işletim sistemlerinin uzun vadeli planlayıcıları yoktur. Bir süreç, durumu yeniden hazır duruma değiştirdiğinde, o zaman uzun vadeli planlayıcı kullanılır.
Kısa Süreli Planlayıcı
Olarak da adlandırılır CPU scheduler. Temel amacı, seçilen kriterlere göre sistem performansını artırmaktır. İşlemin hazır olma durumunun çalışma durumuna geçişidir. CPU zamanlayıcı, yürütmeye hazır olan işlemler arasından bir işlem seçer ve bunlardan birine CPU tahsis eder.
Sevk görevlileri olarak da bilinen kısa vadeli planlayıcılar, bir sonraki işlemin hangi işlemin gerçekleştirileceğine karar verir. Kısa vadeli planlayıcılar, uzun vadeli planlayıcılardan daha hızlıdır.
Orta Vadeli Planlayıcı
Orta vadeli çizelgeleme, swapping. İşlemleri bellekten kaldırır. Çoklu programlama derecesini azaltır. Orta vadeli planlayıcı, değiştirilen dış süreçleri idare etmekten sorumludur.
Çalışan bir işlem, bir G / Ç talebinde bulunursa askıya alınabilir. Askıya alınmış bir süreç, tamamlanmaya doğru herhangi bir ilerleme sağlayamaz. Bu durumda, işlemi bellekten kaldırmak ve diğer işlemler için yer açmak için, askıya alınan işlem ikincil depolamaya taşınır. Bu sürece denirswappingve sürecin değiş tokuş edildiği veya hayata geçirildiği söyleniyor. Süreç karışımını iyileştirmek için değişim gerekli olabilir.
Zamanlayıcı arasında karşılaştırma
SN | Uzun Dönem Planlayıcı | Kısa Süreli Planlayıcı | Orta Vadeli Planlayıcı |
---|---|---|---|
1 | Bu bir iş planlayıcıdır | Bir CPU zamanlayıcıdır | Bir süreç takas planlayıcısıdır. |
2 | Hız, kısa vadeli planlayıcıdan daha düşüktür | Hız, diğer ikisi arasında en hızlıdır | Hız, hem kısa hem de uzun vadeli planlayıcı arasındadır. |
3 | Çoklu programlama derecesini kontrol eder | Çoklu programlama derecesi üzerinde daha az kontrol sağlar | Çoklu programlama derecesini azaltır. |
4 | Zaman paylaşım sisteminde neredeyse yok veya minimum | Zaman paylaşım sisteminde de minimumdur | Zaman paylaşım sistemlerinin bir parçasıdır. |
5 | İşlemleri havuzdan seçer ve yürütmek için belleğe yükler. | Yürütülmeye hazır olan süreçleri seçer | İşlemi belleğe yeniden sokabilir ve yürütmeye devam edilebilir. |
Bağlam anahtarı
Bir bağlam anahtarı, bir işlemin daha sonra aynı noktadan sürdürülebilmesi için İşlem Kontrol bloğundaki bir CPU'nun durumunu veya bağlamını depolayan ve geri yükleyen mekanizmadır. Bu tekniği kullanarak, bir bağlam değiştirici, birden çok işlemin tek bir CPU'yu paylaşmasına olanak tanır. Bağlam değiştirme, çok görevli bir işletim sistemi özelliklerinin önemli bir parçasıdır.
Programlayıcı, CPU'yu bir işlemi yürütmekten diğerini yürütmek için değiştirdiğinde, mevcut çalışan işlemin durumu işlem kontrol bloğunda saklanır. Bundan sonra, işlemin bir sonraki çalışmasının durumu kendi PCB'sinden yüklenir ve PC'yi, kayıtları vb. Ayarlamak için kullanılır. Bu noktada, ikinci işlem yürütülmeye başlayabilir.
Bağlam anahtarları, kayıt ve bellek durumunun kaydedilmesi ve geri yüklenmesi gerektiğinden hesaplama açısından yoğundur. Bağlam değiştirme süresinden kaçınmak için, bazı donanım sistemleri iki veya daha fazla işlemci kaydı seti kullanır. İşlem değiştirildiğinde, aşağıdaki bilgiler daha sonra kullanılmak üzere saklanır.
- Program sayıcı
- Planlama bilgileri
- Temel ve limit kayıt değeri
- Şu anda kullanılan kayıt
- Değişen Durum
- I / O Durum bilgisi
- Muhasebe bilgileri
Bir İşlem Planlayıcı, belirli programlama algoritmalarına dayalı olarak CPU'ya atanacak farklı işlemleri planlar. Bu bölümde tartışacağımız altı popüler süreç çizelgeleme algoritması vardır -
- İlk Gelen, İlk Hizmet Verilen (FCFS) Planlama
- En Kısa İş Sonraki (SJN) Planlama
- Öncelikli Planlama
- Kalan En Kısa Süre
- Round Robin (RR) Çizelgeleme
- Çok Seviyeli Kuyruk Planlama
Bu algoritmalar ya non-preemptive or preemptive. Önleyici olmayan algoritmalar, bir işlem çalışma durumuna girdiğinde, ayrılan süreyi tamamlayana kadar ön işlemden geçirilemeyecek şekilde tasarlanırken, önleyici programlama önceliğe dayanır; süreç hazır duruma girer.
İlk Gelen İlk Servis (FCFS)
- İşler önce gelen ilk hizmet esasına göre yürütülür.
- Önleyici olmayan, önleyici bir programlama algoritmasıdır.
- Anlaması ve uygulaması kolay.
- Uygulanması FIFO kuyruğuna dayalıdır.
- Ortalama bekleme süresi yüksek olduğu için performansta zayıf.
Wait time her işlemin aşağıdaki gibidir -
İşlem | Bekleme Süresi: Hizmet Süresi - Varış Saati |
---|---|
P0 | 0 - 0 = 0 |
P1 | 5-1 = 4 |
P2 | 8-2 = 6 |
P3 | 16 - 3 = 13 |
Ortalama Bekleme Süresi: (0 + 4 + 6 + 13) / 4 = 5.75
Sonraki En Kısa İş (SJN)
Bu aynı zamanda shortest job firstveya SJF
Bu, önleyici olmayan, önleyici bir programlama algoritmasıdır.
Bekleme süresini en aza indirmek için en iyi yaklaşım.
Gerekli CPU zamanının önceden bilindiği Batch sistemlerinde uygulanması kolaydır.
Gerekli CPU zamanının bilinmediği etkileşimli sistemlerde uygulanması imkansızdır.
İşlemci, işlemin ne kadar zaman alacağını önceden bilmelidir.
Verilen: İşlem tablosu ve Varış zamanı, Yürütme zamanı
İşlem | Varış zamanı | Uygulama vakti | Servis zamanı |
---|---|---|---|
P0 | 0 | 5 | 0 |
P1 | 1 | 3 | 5 |
P2 | 2 | 8 | 14 |
P3 | 3 | 6 | 8 |
Waiting time her işlemin aşağıdaki gibidir -
İşlem | Bekleme süresi |
---|---|
P0 | 0 - 0 = 0 |
P1 | 5-1 = 4 |
P2 | 14-2 = 12 |
P3 | 8-3 = 5 |
Ortalama Bekleme Süresi: (0 + 4 + 12 + 5) / 4 = 21/4 = 5.25
Öncelik Tabanlı Planlama
Öncelikli programlama, öncelikli olmayan bir algoritmadır ve toplu iş sistemlerindeki en yaygın programlama algoritmalarından biridir.
Her işleme bir öncelik atanır. En yüksek önceliğe sahip süreç, ilk önce yürütülmelidir.
Aynı önceliğe sahip işlemler ilk gelen alır esasına göre gerçekleştirilir.
Önceliğe, bellek gereksinimlerine, zaman gereksinimlerine veya diğer herhangi bir kaynak gereksinimine göre karar verilebilir.
Verilen: İşlem tablosu ve bunların Varış zamanı, Yürütme zamanı ve önceliği. Burada 1'in en düşük öncelik olduğunu düşünüyoruz.
İşlem | Varış zamanı | Uygulama vakti | Öncelik | Servis zamanı |
---|---|---|---|---|
P0 | 0 | 5 | 1 | 0 |
P1 | 1 | 3 | 2 | 11 |
P2 | 2 | 8 | 1 | 14 |
P3 | 3 | 6 | 3 | 5 |
Waiting time her işlemin aşağıdaki gibidir -
İşlem | Bekleme süresi |
---|---|
P0 | 0 - 0 = 0 |
P1 | 11-1 = 10 |
P2 | 14-2 = 12 |
P3 | 5-3 = 2 |
Ortalama Bekleme Süresi: (0 + 10 + 12 + 2) / 4 = 24/4 = 6
Kalan En Kısa Süre
En kısa kalan süre (SRT), SJN algoritmasının önleyici versiyonudur.
İşlemci, tamamlanmaya en yakın işe tahsis edilir, ancak tamamlanması daha kısa olan daha yeni bir hazır iş tarafından önceliklendirilebilir.
Gerekli CPU zamanının bilinmediği etkileşimli sistemlerde uygulanması imkansızdır.
Genellikle kısa işlerin tercih edilmesi gereken toplu ortamlarda kullanılır.
Round Robin Zamanlama
Round Robin, önleyici süreç çizelgeleme algoritmasıdır.
Her işlemin yürütülmesi için bir düzeltme süresi sağlanır, buna quantum.
Bir işlem belirli bir süre boyunca yürütüldüğünde, önceden alınır ve diğer süreç belirli bir süre boyunca yürütülür.
Bağlam değiştirme, önceden alınmış işlemlerin durumlarını kaydetmek için kullanılır.
Wait time her işlemin aşağıdaki gibidir -
İşlem | Bekleme Süresi: Hizmet Süresi - Varış Saati |
---|---|
P0 | (0 - 0) + (12 - 3) = 9 |
P1 | (3-1) = 2 |
P2 | (6 - 2) + (14 - 9) + (20 - 17) = 12 |
P3 | (9 - 3) + (17 - 12) = 11 |
Ortalama Bekleme Süresi: (9 + 2 + 12 + 11) / 4 = 8.5
Çok Seviyeli Kuyruk Planlama
Çok seviyeli kuyruklar, bağımsız bir programlama algoritması değildir. Ortak özelliklere sahip işleri gruplamak ve programlamak için diğer mevcut algoritmalardan yararlanırlar.
- Ortak özelliklere sahip işlemler için birden çok kuyruk tutulur.
- Her kuyruğun kendi programlama algoritmaları olabilir.
- Her kuyruğa öncelikler atanır.
Örneğin, CPU'ya bağlı işler bir kuyrukta ve tüm G / Ç bağlantılı işler başka bir kuyrukta programlanabilir. İşlem Zamanlayıcı daha sonra dönüşümlü olarak her bir kuyruktan işleri seçer ve bunları kuyruğa atanan algoritmaya göre CPU'ya atar.
Thread nedir?
Bir iş parçacığı, bir sonraki hangi komutun yürütüleceğini takip eden kendi program sayacı, mevcut çalışma değişkenlerini tutan sistem kayıtları ve yürütme geçmişini içeren bir yığın ile işlem kodu boyunca bir yürütme akışıdır.
Bir iş parçacığı, eş iş parçacıklarıyla kod bölümü, veri bölümü ve açık dosyalar gibi birkaç bilgiyi paylaşır. Bir iş parçacığı bir kod bölümü bellek öğesini değiştirdiğinde, diğer tüm iş parçacıkları bunu görür.
Bir iş parçacığı aynı zamanda a lightweight process. İş parçacıkları, paralellik yoluyla uygulama performansını iyileştirmenin bir yolunu sağlar. İş parçacığı, klasik bir sürece eşdeğer olan genel gider iş parçacığını azaltarak işletim sisteminin performansını artırmaya yönelik bir yazılım yaklaşımını temsil eder.
Her iş parçacığı tam olarak bir işleme aittir ve bir sürecin dışında hiçbir iş parçacığı olamaz. Her iş parçacığı, ayrı bir kontrol akışını temsil eder. İş parçacıkları, ağ sunucularının ve web sunucusunun uygulanmasında başarıyla kullanılmıştır. Ayrıca, paylaşılan bellek çok işlemcilerindeki uygulamaların paralel yürütülmesi için uygun bir temel sağlarlar. Aşağıdaki şekil, tek iş parçacıklı ve çok iş parçacıklı bir işlemin çalışmasını göstermektedir.
Süreç ve İş Parçacığı Arasındaki Fark
SN | İşlem | Konu |
---|---|---|
1 | Süreç ağırdır veya kaynak yoğundur. | İplik hafiftir ve bir işlemden daha az kaynak alır. |
2 | İşlem değiştirme, işletim sistemiyle etkileşim gerektirir. | İş parçacığı değiştirmenin işletim sistemiyle etkileşime girmesine gerek yoktur. |
3 | Birden çok işlem ortamında, her işlem aynı kodu yürütür ancak kendi belleğine ve dosya kaynaklarına sahiptir. | Tüm iş parçacıkları aynı açık dosya kümesini, alt işlemleri paylaşabilir. |
4 | Bir işlem engellenirse, ilk işlem engeli kaldırılana kadar başka hiçbir işlem yürütülemez. | Bir iş parçacığı engellenip beklerken, aynı görevdeki ikinci bir iş parçacığı çalıştırılabilir. |
5 | İş parçacığı kullanmadan birden çok işlem daha fazla kaynak kullanır. | Çoklu iş parçacıklı süreçler daha az kaynak kullanır. |
6 | Çoklu süreçlerde her süreç diğerlerinden bağımsız olarak çalışır. | Bir iş parçacığı başka bir iş parçacığının verilerini okuyabilir, yazabilir veya değiştirebilir. |
İpliğin Avantajları
- İleti dizileri, bağlam değiştirme süresini en aza indirir.
- İş parçacığı kullanımı, bir süreç içinde eşzamanlılık sağlar.
- Etkili iletişim.
- Konu değiştirmek ve bağlam değiştirmek daha ekonomiktir.
- İş parçacıkları, çok işlemcili mimarilerin daha büyük ölçekte ve verimlilikte kullanılmasına izin verir.
İplik Türleri
Dişler aşağıdaki iki şekilde uygulanır -
User Level Threads - Kullanıcı tarafından yönetilen konular.
Kernel Level Threads - İşletim Sistemi tarafından yönetilen bir işletim sistemi çekirdeği olan çekirdek üzerinde hareket eden iş parçacıkları.
Kullanıcı Seviyesi Konuları
Bu durumda, iş parçacığı yönetimi çekirdeği evrelerin varlığından haberdar değildir. İş parçacığı kitaplığı, evreler arasında ileti ve verileri iletmek, iş parçacığı yürütmeyi programlamak ve iş parçacığı bağlamlarını kaydetmek ve geri yüklemek için evrelerin oluşturulması ve yok edilmesi için kod içerir. Uygulama tek bir iş parçacığı ile başlar.
Avantajlar
- İş parçacığı değiştirme, Kernel modu ayrıcalıkları gerektirmez.
- Kullanıcı seviyesi iş parçacığı herhangi bir işletim sisteminde çalışabilir.
- Çizelgeleme, kullanıcı seviyesi iş parçacığında uygulamaya özel olabilir.
- Kullanıcı seviyesi konuları oluşturmak ve yönetmek için hızlıdır.
Dezavantajları
- Tipik bir işletim sisteminde, çoğu sistem çağrısı engelliyor.
- Çok iş parçacıklı uygulama, çoklu işlemden yararlanamaz.
Çekirdek Seviyesi Konuları
Bu durumda, iş parçacığı yönetimi Kernel tarafından yapılır. Uygulama alanında iş parçacığı yönetim kodu yoktur. Çekirdek iş parçacıkları doğrudan işletim sistemi tarafından desteklenir. Herhangi bir uygulama, çok iş parçacıklı olacak şekilde programlanabilir. Bir uygulama içindeki tüm iş parçacıkları tek bir süreç içinde desteklenir.
Çekirdek, bir bütün olarak sürecin bağlam bilgisini ve süreç içindeki bireyler için konuları saklar. Kernel tarafından çizelgeleme iş parçacığı temelinde yapılır. Kernel, Kernel alanında iş parçacığı oluşturma, planlama ve yönetimi gerçekleştirir. Çekirdek iş parçacıklarının oluşturulması ve yönetilmesi genellikle kullanıcı iş parçacıklarından daha yavaştır.
Avantajlar
- Çekirdek aynı anda birden çok işlemde aynı işlemden birden çok iş parçacığı planlayabilir.
- Bir süreçteki bir iş parçacığı engellenirse, Çekirdek aynı işlemin başka bir iş parçacığını zamanlayabilir.
- Çekirdek rutinleri çok iş parçacıklı olabilir.
Dezavantajları
- Çekirdek iş parçacıklarının oluşturulması ve yönetilmesi genellikle kullanıcı iş parçacıklarından daha yavaştır.
- Aynı süreç içinde bir iş parçacığından diğerine kontrol aktarımı, Çekirdeğe bir mod anahtarı gerektirir.
Çok iş parçacıklı modeller
Bazı işletim sistemleri, birleşik bir kullanıcı düzeyi iş parçacığı ve Çekirdek düzeyi iş parçacığı olanağı sağlar. Solaris, bu birleşik yaklaşımın güzel bir örneğidir. Birleştirilmiş bir sistemde, aynı uygulama içindeki birden çok iş parçacığı birden çok işlemcide paralel olarak çalışabilir ve bir engelleme sistem çağrısının tüm süreci engellemesi gerekmez. Çok iş parçacıklı modeller üç türdür
- Çoktan çoğa ilişki.
- Çoktan bire ilişki.
- Bire bir ilişki.
Çoktan Çoka Model
Çoktan çoğa modeli, herhangi bir sayıda kullanıcı iş parçacığını eşit veya daha az sayıda çekirdek iş parçacığı üzerinde çoğullar.
Aşağıdaki diyagram, 6 kullanıcı seviyesi iş parçacığının 6 çekirdek düzeyi iş parçacığı ile çoğulladığı çoktan çoğa iş parçacığı modelini göstermektedir. Bu modelde, geliştiriciler gerektiği kadar çok sayıda kullanıcı iş parçacığı oluşturabilir ve karşılık gelen Kernel iş parçacıkları çok işlemcili bir makinede paralel olarak çalışabilir. Bu model, eşzamanlılık konusunda en iyi doğruluğu sağlar ve bir iş parçacığı engelleyici bir sistem çağrısı gerçekleştirdiğinde, çekirdek yürütme için başka bir iş parçacığı zamanlayabilir.
Çoktan Bire Model
Çoktan bire model, birçok kullanıcı düzeyindeki iş parçacığını tek bir Çekirdek düzeyi iş parçacığına eşler. İş parçacığı yönetimi, iş parçacığı kitaplığı tarafından kullanıcı alanında yapılır. İş parçacığı, engelleyen bir sistem çağrısı yaptığında, tüm süreç engellenecektir. Aynı anda yalnızca bir iş parçacığı Çekirdeğe erişebilir, bu nedenle birden çok iş parçacığı çok işlemcide paralel olarak çalışamaz.
Kullanıcı düzeyindeki iş parçacığı kitaplıkları, işletim sisteminde sistem bunları desteklemeyecek şekilde uygulanırsa, Çekirdek iş parçacıkları çoktan bire ilişki modlarını kullanır.
Bire Bir Model
Kullanıcı düzeyinde iş parçacığı ile çekirdek düzeyindeki iş parçacığı arasında bire bir ilişki vardır. Bu model, çoka bir modelden daha fazla eşzamanlılık sağlar. Ayrıca, bir iş parçacığı engelleyici bir sistem çağrısı yaptığında başka bir iş parçacığının çalışmasına izin verir. Mikroişlemcilerde paralel olarak yürütmek için birden çok iş parçacığını destekler.
Bu modelin dezavantajı, kullanıcı iş parçacığı oluşturmanın ilgili Kernel iş parçacığını gerektirmesidir. OS / 2, Windows NT ve Windows 2000 bire bir ilişki modeli kullanır.
Kullanıcı Seviyesi ve Kernel Seviyesi İş Parçacığı arasındaki fark
SN | Kullanıcı Düzeyinde Konular | Çekirdek Düzeyinde İş Parçacığı |
---|---|---|
1 | Kullanıcı düzeyinde ileti dizileri oluşturmak ve yönetmek daha hızlıdır. | Çekirdek düzeyinde iş parçacıkları oluşturmak ve yönetmek daha yavaştır. |
2 | Uygulama, kullanıcı seviyesindeki bir iş parçacığı kitaplığı ile yapılır. | İşletim sistemi, Çekirdek iş parçacığı oluşturmayı destekler. |
3 | Kullanıcı düzeyinde iş parçacığı geneldir ve herhangi bir işletim sisteminde çalışabilir. | Çekirdek düzeyinde iş parçacığı, işletim sistemine özgüdür. |
4 | Çok iş parçacıklı uygulamalar, çoklu işlemden yararlanamaz. | Çekirdek rutinleri çok iş parçacıklı olabilir. |
Bellek yönetimi, birincil belleği işleyen veya yöneten ve işlemleri yürütme sırasında ana bellek ile disk arasında ileri geri hareket ettiren bir işletim sisteminin işlevselliğidir. Bellek yönetimi, bir işlem için ayrılmış veya ücretsiz olmasına bakılmaksızın her bir bellek konumunu izler. İşlemlere ne kadar bellek ayrılacağını kontrol eder. Hangi sürecin ne zaman bellek alacağına karar verir. Bazı hafızaların ne zaman serbest kaldığını veya ayrılmadığını izler ve buna göre durumu günceller.
Bu eğitim size Bellek Yönetimi ile ilgili temel kavramları öğretecektir.
İşlem Adres Alanı
İşlem adres alanı, bir işlemin kodunda başvurduğu mantıksal adresler kümesidir. Örneğin, 32 bit adresleme kullanımdayken, adresler 0 ile 0x7fffffff arasında değişebilir; yani 2 gigabaytlık toplam teorik boyut için 2 ^ 31 olası sayı.
İşletim sistemi, programa bellek tahsisi sırasında mantıksal adresleri fiziksel adreslerle eşlemeye özen gösterir. Bir programda bellek ayrılmadan önce ve sonra kullanılan üç tür adres vardır -
SN | Bellek Adresleri ve Tanımı |
---|---|
1 | Symbolic addresses Bir kaynak kodda kullanılan adresler. Değişken isimleri, sabitler ve yönerge etiketleri, sembolik adres uzayının temel öğeleridir. |
2 | Relative addresses Derleme sırasında, bir derleyici sembolik adresleri göreceli adreslere dönüştürür. |
3 | Physical addresses Yükleyici, bu adresleri bir programın ana belleğe yüklendiğinde oluşturur. |
Sanal ve fiziksel adresler, derleme zamanı ve yükleme zamanı adres bağlama şemalarında aynıdır. Sanal ve fiziksel adresler, yürütme zamanı adres bağlama şemasında farklılık gösterir.
Bir program tarafından üretilen tüm mantıksal adresler kümesi, bir logical address space. Bu mantıksal adreslere karşılık gelen tüm fiziksel adresler kümesi, birphysical address space.
Sanaldan fiziksel adrese çalışma zamanı eşlemesi, bir donanım aygıtı olan bellek yönetim birimi (MMU) tarafından yapılır. MMU, sanal adresi fiziksel adrese dönüştürmek için aşağıdaki mekanizmayı kullanır.
Temel kayıttaki değer, bir kullanıcı işlemi tarafından üretilen her adrese eklenir ve bu, belleğe gönderildiği anda ofset olarak kabul edilir. Örneğin, temel kayıt değeri 10000 ise, kullanıcı tarafından adres konumu 100'ü kullanma girişimi dinamik olarak konum 10100'e yeniden tahsis edilecektir.
Kullanıcı programı sanal adreslerle ilgilenir; asla gerçek fiziksel adresleri görmez.
Statik ve Dinamik Yükleme
Statik veya Dinamik Yükleme arasında seçim, bilgisayar programı geliştirilirken yapılacaktır. Programınızı statik olarak yüklemeniz gerekiyorsa, derleme sırasında, tüm programlar herhangi bir harici program veya modül bağımlılığı bırakmadan derlenecek ve bağlanacaktır. Bağlayıcı, nesne programını diğer gerekli nesne modülleri ile mantıksal adresleri de içeren mutlak bir programda birleştirir.
Dinamik olarak yüklenmiş bir program yazıyorsanız, derleyiciniz programı derler ve dinamik olarak dahil etmek istediğiniz tüm modüller için, yalnızca referanslar sağlanacak ve işin geri kalanı yürütme sırasında yapılacaktır.
Yükleme sırasında static loading, mutlak program (ve veriler) yürütmenin başlaması için belleğe yüklenir.
Eğer kullanıyorsanız dynamic loading, kütüphanenin dinamik rutinleri yeniden yerleştirilebilir biçimde bir diskte depolanır ve yalnızca program tarafından ihtiyaç duyulduğunda belleğe yüklenir.
Statik ve Dinamik Bağlantı
Yukarıda açıklandığı gibi, statik bağlantı kullanıldığında, bağlayıcı, herhangi bir çalışma zamanı bağımlılığını önlemek için bir programın ihtiyaç duyduğu diğer tüm modülleri tek bir yürütülebilir programda birleştirir.
Dinamik bağlantı kullanıldığında, gerçek modül veya kitaplığı programa bağlamak gerekli değildir, bunun yerine derleme ve bağlama sırasında dinamik modüle bir referans sağlanır. Windows'daki Dinamik Bağlantı Kitaplıkları (DLL) ve Unix'teki Paylaşılan Nesneler, dinamik kitaplıklara iyi örneklerdir.
Takas
Değiştirme, bir işlemin geçici olarak ana bellekten ikincil depolamaya (disk) değiştirilebildiği (veya taşınabildiği) ve bu belleği diğer işlemler için kullanılabilir kıldığı bir mekanizmadır. Daha sonra, sistem, süreci ikincil depolamadan ana belleğe geri alır.
Performans genellikle takas işleminden etkilense de, birden çok ve büyük işlemi paralel olarak çalıştırmaya yardımcı olur ve nedeni budur. Swapping is also known as a technique for memory compaction.
Değiştirme işlemi tarafından harcanan toplam süre, tüm işlemi ikincil bir diske taşımak ve ardından işlemi belleğe kopyalamak için geçen süre ile işlemin ana belleği yeniden kazanmak için geçen süreyi içerir.
Kullanıcı işleminin 2048KB boyutunda olduğunu ve takasın yapılacağı standart bir sabit diskte saniyede 1 MB civarında bir veri aktarım hızına sahip olduğunu varsayalım. 1000K işleminin belleğe veya bellekten gerçek aktarımı,
2048KB / 1024KB per second
= 2 seconds
= 2000 milliseconds
Şimdi giriş ve çıkış süresi düşünüldüğünde, tam 4000 milisaniye artı sürecin ana belleği yeniden kazanmak için yarıştığı diğer ek yükler alacaktır.
Hafıza Tahsisi
Ana bellekte genellikle iki bölüm bulunur -
Low Memory - İşletim sistemi bu bellekte bulunur.
High Memory - Kullanıcı işlemleri yüksek bellekte tutulur.
İşletim sistemi aşağıdaki bellek ayırma mekanizmasını kullanır.
SN | Bellek Ayırma ve Açıklama |
---|---|
1 | Single-partition allocation Bu tür tahsisatta, kullanıcı işlemlerini birbirinden ve işletim sistemi kodunu ve verilerini değiştirmekten korumak için yeniden konumlandırma-kayıt şeması kullanılır. Yeniden yerleştirme kaydı en küçük fiziksel adresin değerini içerirken, limit kaydı mantıksal adreslerin aralığını içerir. Her mantıksal adres, limit yazmacından daha az olmalıdır. |
2 | Multiple-partition allocation Bu tür bir ayırmada, ana bellek, her bölümün yalnızca bir işlem içermesi gereken birkaç sabit boyutlu bölüme bölünür. Bir bölüm boş olduğunda, giriş kuyruğundan bir işlem seçilir ve boş bölüme yüklenir. İşlem sona erdiğinde, bölüm başka bir işlem için kullanılabilir hale gelir. |
Parçalanma
İşlemler yüklenirken ve bellekten kaldırılırken, boş bellek alanı küçük parçalara bölünür. Bazen işlemlerin küçük boyutları dikkate alınarak bellek bloklarına tahsis edilemediği ve bellek bloklarının kullanılmadan kaldığı durumlarda olur. Bu sorun, Parçalanma olarak bilinir.
Parçalanma iki türdendir -
SN | Parçalanma ve Açıklama |
---|---|
1 | External fragmentation Toplam bellek alanı, bir isteği karşılamak veya bir işlemi içinde barındırmak için yeterlidir, ancak bitişik değildir, bu nedenle kullanılamaz. |
2 | Internal fragmentation İşleme atanan bellek bloğu daha büyük. Belleğin bir kısmı başka bir işlem tarafından kullanılamayacağı için kullanılmadan bırakılır. |
Aşağıdaki şema, parçalanmanın nasıl bellek israfına neden olabileceğini ve parçalanmış bellekten daha fazla boş bellek oluşturmak için bir sıkıştırma tekniğinin nasıl kullanılabileceğini göstermektedir -
Dış parçalanma, tüm boş belleği bir büyük bloğa yerleştirmek için bellek içeriğini sıkıştırarak veya karıştırarak azaltılabilir. Sıkıştırmayı mümkün kılmak için, yer değiştirme dinamik olmalıdır.
Dahili parçalanma, en küçük bölümü etkin bir şekilde atayarak, ancak işlem için yeterince büyük olacak şekilde azaltılabilir.
Çağrı
Bir bilgisayar, sisteme fiziksel olarak yüklü miktardan daha fazla belleği adresleyebilir. Bu fazladan bellek aslında sanal bellek olarak adlandırılır ve bilgisayarın RAM'ini taklit etmek için kurulan bir donanımın bir bölümüdür. Sayfalama tekniği, sanal belleğin uygulanmasında önemli bir rol oynar.
Sayfalama, işlem adres alanının adı verilen aynı boyutta bloklara bölündüğü bir bellek yönetimi tekniğidir. pages(boyut 2'nin gücüdür, 512 bayt ile 8192 bayt arasındadır). İşlemin boyutu sayfa sayısıyla ölçülür.
Benzer şekilde, ana bellek küçük sabit boyutlu (fiziksel) bellek bloklarına bölünmüştür: frames ve bir çerçevenin boyutu, ana hafızadan en iyi şekilde faydalanmak ve harici parçalanmayı önlemek için bir sayfanınki ile aynı tutulur.
Adres Çevirisi
Sayfa adresi çağrılır logical address ve temsil eden page number ve offset.
Logical Address = Page number + page offset
Çerçeve adresi denir physical address ve bir frame number ve offset.
Physical Address = Frame number + page offset
Adlı bir veri yapısı page map table bir sürecin bir sayfası ile fiziksel bellekteki bir çerçeve arasındaki ilişkiyi takip etmek için kullanılır.
Sistem herhangi bir sayfaya bir çerçeve ayırdığında, bu mantıksal adresi fiziksel bir adrese çevirir ve programın yürütülmesi boyunca kullanılacak sayfa tablosuna giriş oluşturur.
Bir işlem yürütüldüğünde, ilgili sayfalar herhangi bir kullanılabilir bellek çerçevesine yüklenir. Diyelim ki 8Kb'lik bir programınız var, ancak hafızanız belirli bir zamanda sadece 5Kb'yi barındırabilir, o zaman sayfalama kavramı ortaya çıkacaktır. Bir bilgisayarın RAM'i bittiğinde, işletim sistemi (OS) boşta olan veya istenmeyen bellek sayfalarını, RAM'i diğer işlemler için boşaltmak üzere ikincil belleğe taşıyacak ve program tarafından gerektiğinde geri getirecektir.
Bu işlem, işletim sisteminin boşta kalan sayfaları ana bellekten kaldırmaya devam ettiği ve bunları ikincil belleğe yazdığı ve programın gerektirdiği durumlarda geri getirdiği programın tamamı boyunca devam eder.
Sayfalandırmanın Avantaj ve Dezavantajları
İşte sayfalamanın avantaj ve dezavantajlarının bir listesi -
Sayfalama harici parçalanmayı azaltır, ancak yine de dahili parçalanmadan muzdariptir.
Sayfalamanın uygulanması kolaydır ve etkili bir bellek yönetimi tekniği olarak kabul edilir.
Sayfaların ve çerçevelerin eşit boyutu nedeniyle, değiştirme çok kolay hale gelir.
Sayfa tablosu fazladan bellek alanı gerektirdiğinden, küçük RAM'e sahip bir sistem için iyi olmayabilir.
Segmentasyon
Bölümleme, her işin farklı boyutlarda birkaç bölüme ayrıldığı bir bellek yönetimi tekniğidir, her modül için bir tane ilgili işlevleri gerçekleştiren parçalar içerir. Her bölüm aslında programın farklı bir mantıksal adres alanıdır.
Bir işlem yürütüldüğünde, buna karşılık gelen bölümleme bitişik olmayan belleğe yüklenir, ancak her bölüm bir bitişik kullanılabilir bellek bloğuna yüklenir.
Bölümleme belleği yönetimi, sayfalamaya çok benzer şekilde çalışır, ancak burada bölümler değişken uzunluktadır ve sayfalandırma sayfalarında olduğu gibi sabit boyuttadır.
Bir program bölümü, programın ana işlevini, yardımcı program işlevlerini, veri yapılarını vb. İçerir. İşletim sistemi birsegment map tableher işlem için ve bölüm numaraları, boyutları ve ana bellekte karşılık gelen bellek konumları ile birlikte boş bellek bloklarının bir listesi. Tablo, her segment için segmentin başlangıç adresini ve segmentin uzunluğunu saklar. Bir bellek konumuna yapılan bir referans, bir segmenti ve bir ofseti tanımlayan bir değeri içerir.
Bir bilgisayar, sisteme fiziksel olarak yüklü miktardan daha fazla belleği adresleyebilir. Bu fazladan bellek aslındavirtual memory ve bilgisayarın RAM'ini taklit etmek için ayarlanmış bir sabit diskin bölümüdür.
Bu şemanın ana görünür avantajı, programların fiziksel bellekten daha büyük olabilmesidir. Sanal bellek iki amaca hizmet eder. Birincisi, disk kullanarak fiziksel bellek kullanımını genişletmemize izin verir. İkincisi, bellek korumasına sahip olmamızı sağlar çünkü her sanal adres fiziksel bir adrese çevrilir.
Aşağıda, tüm programın ana belleğe tam olarak yüklenmesi gerekmediği durumlar verilmiştir.
Kullanıcı tarafından yazılan hata işleme rutinleri, yalnızca veri veya hesaplamada bir hata oluştuğunda kullanılır.
Bir programın belirli seçenekleri ve özellikleri nadiren kullanılabilir.
Aslında tablonun sadece küçük bir miktarı kullanılsa bile, birçok tabloya sabit miktarda adres alanı atanır.
Yalnızca kısmen bellekte olan bir programı yürütme yeteneği, birçok faydayı ortadan kaldırır.
Her kullanıcı programını belleğe yüklemek veya takas etmek için daha az sayıda G / Ç gerekli olacaktır.
Bir program artık mevcut fiziksel bellek miktarıyla kısıtlanmayacaktır.
Her kullanıcı programı daha az fiziksel bellek alabilir, aynı anda daha fazla program çalıştırılabilir ve CPU kullanımında ve veriminde buna karşılık gelen bir artış sağlanabilir.
Genel amaçlı kullanım için tasarlanmış modern mikroişlemciler, bir bellek yönetim birimi veya MMU, donanıma yerleştirilmiştir. MMU'nun görevi, sanal adresleri fiziksel adreslere çevirmektir. Aşağıda temel bir örnek verilmiştir -
Sanal bellek genellikle talep sayfalama ile uygulanır. Bir segmentasyon sisteminde de uygulanabilir. Talep segmentasyonu, sanal bellek sağlamak için de kullanılabilir.
Talep Çağrı
Talep sayfalama sistemi, işlemlerin ikincil bellekte bulunduğu ve sayfaların önceden değil, yalnızca talep üzerine yüklendiği takaslı bir sayfalama sistemine oldukça benzer. Bir bağlam anahtarı oluştuğunda, işletim sistemi eski programın sayfalarından herhangi birini diske veya yeni programın sayfalarından herhangi birini ana belleğe kopyalamaz. Bunun yerine, ilk sayfayı yükledikten sonra yeni programı çalıştırmaya başlar ve onu getirir. programın sayfalarına başvurulduğu gibi.
Bir programı çalıştırırken, program kısa bir süre önce değiştirildiği için ana bellekte bulunmayan bir sayfaya referans veriyorsa, işlemci bu geçersiz bellek referansını bir page fault ve sayfayı belleğe geri istemek için denetimi programdan işletim sistemine aktarır.
Avantajlar
Aşağıda, Talep Sayfalandırmanın avantajları verilmiştir -
- Büyük sanal bellek.
- Belleğin daha verimli kullanımı.
- Çoklu programlamanın derecesi konusunda bir sınır yoktur.
Dezavantajları
Sayfa kesintilerini ele almak için tablo sayısı ve işlemci ek yükü miktarı, basit sayfalı yönetim tekniklerindekinden daha fazladır.
Sayfa Değiştirme Algoritması
Sayfa değiştirme algoritmaları, bir İşletim Sisteminin hangi bellek sayfalarının değiştirileceğine, bir bellek sayfasının tahsis edilmesi gerektiğinde diske yazılacağına karar verdiği tekniklerdir. Sayfalandırma, bir sayfa hatası oluştuğunda ve sayfaların mevcut olmaması veya boş sayfa sayısının gerekli sayfalardan daha az olması nedeniyle tahsis amaçlı hesaplama için boş bir sayfa kullanılamadığında gerçekleşir.
Değiştirilmek üzere seçilen ve sayfadan çıkarılan sayfaya tekrar referans verildiğinde, diskten okuması gerekir ve bu, G / Ç'nin tamamlanmasını gerektirir. Bu işlem, sayfa değiştirme algoritmasının kalitesini belirler: sayfa girişleri için bekleme süresi ne kadar azsa, algoritma o kadar iyidir.
Bir sayfa değiştirme algoritması, donanım tarafından sağlanan sayfalara erişimle ilgili sınırlı bilgilere bakar ve toplam sayfa kaçırma sayısını en aza indirgemek için hangi sayfaların değiştirilmesi gerektiğini seçmeye çalışır ve bunu, algoritmanın birincil depolama ve işlemci süresi maliyetleri ile dengeler. kendisi. Birçok farklı sayfa değiştirme algoritması vardır. Bir algoritmayı belirli bir bellek referansı dizisinde çalıştırarak ve sayfa hatası sayısını hesaplayarak değerlendiririz,
Referans Dizesi
Bellek referansları dizisine referans dizesi denir. Referans dizgileri yapay olarak veya belirli bir sistemi izleyerek ve her bellek referansının adresini kaydederek oluşturulur. İkinci seçenek, iki şeyi not ettiğimiz çok sayıda veri üretir.
Belirli bir sayfa boyutu için, adresin tamamını değil, yalnızca sayfa numarasını dikkate almamız gerekir.
Bir sayfaya referansımız varsa p, ardından sayfaya yapılan referansların hemen ardından phiçbir zaman sayfa hatasına neden olmaz. Sayfa p ilk referanstan sonra bellekte olacaktır; hemen takip eden referanslarda hata olmayacaktır.
Örneğin, şu adres sırasını düşünün - 123,215,600,1234,76,96
Sayfa boyutu 100 ise, referans dizesi 1,2,6,12,0,0 olur
İlk Giren İlk Çıkar (FIFO) algoritması
Ana bellekteki en eski sayfa, değiştirilmek üzere seçilecek olan sayfadır.
Uygulaması kolaydır, bir liste tutun, sayfaları kuyruktan değiştirin ve başa yeni sayfalar ekleyin.
Optimal Sayfa algoritması
Optimal bir sayfa değiştirme algoritması, tüm algoritmalar arasında en düşük sayfa hatası oranına sahiptir. Optimal bir sayfa değiştirme algoritması mevcuttur ve OPT veya MIN olarak adlandırılmıştır.
En uzun süre kullanılmayacak olan sayfayı değiştirin. Bir sayfanın kullanılacağı zamanı kullanın.
En Son Kullanılan (LRU) algoritması
Ana bellekte en uzun süre kullanılmayan sayfa, değiştirilmek üzere seçilecek sayfadır.
Uygulaması kolaydır, bir liste tutun, sayfaları geçmişe bakarak değiştirin.
Sayfa Tamponlama algoritması
- Bir süreci hızlı bir şekilde başlatmak için, bir boş çerçeve havuzu bulundurun.
- Sayfa arızasında değiştirilecek bir sayfa seçin.
- Yeni sayfayı boş havuz çerçevesine yazın, sayfa tablosunu işaretleyin ve işlemi yeniden başlatın.
- Şimdi kirli sayfayı diskten yazın ve çerçeve tutan değiştirilen sayfayı boş havuza yerleştirin.
En az sıklıkla kullanılan (LFU) algoritma
En küçük sayıya sahip sayfa, değiştirme için seçilecek olan sayfadır.
Bu algoritma, bir sürecin ilk aşamasında bir sayfanın yoğun bir şekilde kullanıldığı, ancak daha sonra bir daha asla kullanılmadığı durumdan muzdariptir.
En sık Kullanılan (MFU) algoritması
Bu algoritma, en az sayıya sahip sayfanın muhtemelen yeni getirildiği ve henüz kullanılmadığı argümanına dayanmaktadır.
Bir İşletim Sisteminin önemli işlerinden biri, fare, klavyeler, dokunmatik yüzey, disk sürücüleri, ekran adaptörleri, USB aygıtları, Bit eşlemeli ekran, LED, Analogdan dijitale dönüştürücü, Açık / kapatma anahtarı, ağ bağlantıları, ses G / Ç, yazıcılar vb.
Bir I / O sistemi, bir uygulama I / O talebini alıp fiziksel cihaza göndermek, ardından cihazdan gelen yanıtı almak ve uygulamaya göndermek için gereklidir. G / Ç cihazları iki kategoriye ayrılabilir -
Block devices- Blok cihazı, sürücünün tüm veri bloklarını göndererek iletişim kurduğu bir cihazdır. Örneğin, Sabit diskler, USB kameralar, Disk-On-Key vb.
Character devices- Bir karakter aygıtı, sürücünün tek karakterleri (bayt, sekizli) gönderip alarak iletişim kurduğu aygıttır. Örneğin, seri bağlantı noktaları, paralel bağlantı noktaları, ses kartları vb.
Aygıt Denetleyicileri
Aygıt sürücüleri, belirli bir aygıtı işlemek için bir işletim sistemine takılabilen yazılım modülleridir. İşletim Sistemi, tüm G / Ç aygıtlarını işlemek için aygıt sürücülerinden yardım alır.
Aygıt Denetleyicisi, bir aygıt ile aygıt sürücüsü arasında bir arayüz gibi çalışır. G / Ç birimleri (Klavye, fare, yazıcı, vb.) Tipik olarak mekanik bir bileşenden ve elektronik bileşenin aygıt denetleyicisi olarak adlandırıldığı bir elektronik bileşenden oluşur.
İşletim Sistemleriyle iletişim kurmak için her aygıt için her zaman bir aygıt denetleyicisi ve bir aygıt sürücüsü vardır. Bir cihaz kontrolörü, birden fazla cihazı idare edebilir. Bir arabirim olarak ana görevi, seri bit akışını bayt bloğuna dönüştürmek, gerektiğinde hata düzeltmesi yapmaktır.
Bilgisayara bağlı herhangi bir cihaz bir fiş ve soket ile bağlanır ve soket bir cihaz denetleyicisine bağlanır. Aşağıda, CPU ve aygıt denetleyicilerinin tümünün iletişim için ortak bir veri yolu kullandığı CPU, bellek, denetleyiciler ve G / Ç aygıtlarını bağlamak için bir model verilmiştir.
Eşzamanlı ve eşzamansız G / Ç
Synchronous I/O - Bu şemada I / O devam ederken CPU yürütmesi bekler
Asynchronous I/O - G / Ç, CPU yürütme ile eşzamanlı olarak ilerler
I / O Cihazlarıyla İletişim
CPU'nun bir G / Ç cihazına ve G / Ç cihazından bilgi aktarımı için bir yolu olmalıdır. CPU ve Cihaz ile iletişim kurmak için üç yaklaşım vardır.
- Özel Talimat G / Ç
- Bellek eşlemeli G / Ç
- Doğrudan bellek erişimi (DMA)
Özel Talimat G / Ç
Bu, özellikle G / Ç cihazlarını kontrol etmek için yapılmış CPU talimatlarını kullanır. Bu talimatlar tipik olarak verilerin bir G / Ç cihazına gönderilmesine veya bir G / Ç cihazından okunmasına izin verir.
Bellek eşlemeli G / Ç
Bellek eşlemeli G / Ç kullanılırken, aynı adres alanı bellek ve G / Ç aygıtları tarafından paylaşılır. Aygıt doğrudan belirli ana bellek konumlarına bağlanır, böylece G / Ç aygıtı CPU'dan geçmeden bellekten / bellekten veri bloğu aktarabilir.
Bellek eşlemeli GÇ'yi kullanırken, işletim sistemi bellekte arabellek ayırır ve G / Ç aygıtına bu arabelleği CPU'ya veri göndermek için kullanması için bilgi verir. I / O cihazı CPU ile asenkron çalışır, bittiğinde CPU'yu keser.
Bu yöntemin avantajı, belleğe erişebilen her talimatın bir I / O cihazını değiştirmek için kullanılabilmesidir. Bellek eşlemeli GÇ, diskler, iletişim arabirimleri gibi çoğu yüksek hızlı G / Ç cihazı için kullanılır.
Doğrudan Bellek Erişimi (DMA)
Klavyeler gibi yavaş cihazlar, her bayt aktarıldıktan sonra ana CPU'da bir kesinti oluşturacaktır. Disk gibi hızlı bir aygıt her bayt için bir kesinti oluşturduysa, işletim sistemi zamanının çoğunu bu kesintileri ele almakla harcar. Bu nedenle tipik bir bilgisayar, bu ek yükü azaltmak için doğrudan bellek erişimi (DMA) donanımını kullanır.
Doğrudan Bellek Erişimi (DMA), CPU'nun G / Ç modülüne müdahale olmadan bellekten okuma veya bellekten yazma yetkisi verdiği anlamına gelir. DMA modülünün kendisi, ana bellek ile I / O cihazı arasındaki veri alışverişini kontrol eder. CPU yalnızca transferin başında ve sonunda yer alır ve yalnızca tüm blok transfer edildikten sonra kesilir.
Doğrudan Bellek Erişimi, veri aktarımlarını yöneten ve sistem veriyoluna erişimi düzenleyen DMA denetleyicisi (DMAC) adlı özel bir donanıma ihtiyaç duyar. Denetleyiciler, kaynak ve hedef işaretçileri (verilerin nerede okunacağı / yazılacağı), aktarılan baytların sayısını izlemek için sayaçlar ve CPU döngüleri için G / Ç ve bellek türleri, kesintiler ve durumları içeren ayarlar ile programlanır.
İşletim sistemi DMA donanımını aşağıdaki şekilde kullanır -
Adım | Açıklama |
---|---|
1 | Aygıt sürücüsüne, disk verilerini X tampon adresine aktarması talimatı verilmiştir. |
2 | Aygıt sürücüsü daha sonra disk denetleyicisine verileri arabelleğe aktarması talimatını verir. |
3 | Disk denetleyicisi DMA aktarımını başlatır. |
4 | Disk denetleyicisi, her baytı DMA denetleyicisine gönderir. |
5 | DMA kontrolörü baytları arabelleğe aktarır, bellek adresini arttırır, C sayacını C sıfır olana kadar azaltır. |
6 | C sıfır olduğunda, DMA aktarımın tamamlandığını bildirmek için CPU'yu keser. |
Yoklama ve Kesintiler G / Ç
Bir bilgisayar, herhangi bir giriş türünün gelişini algılayacak bir yönteme sahip olmalıdır. Bunun gerçekleşmesinin iki yolu vardır.polling ve interrupts. Bu tekniklerin her ikisi de işlemcinin herhangi bir zamanda meydana gelebilecek ve şu anda çalıştırmakta olduğu işlemle ilgili olmayan olaylarla başa çıkmasına izin verir.
Sorgulama G / Ç
Yoklama, bir G / Ç aygıtının işlemciyle iletişim kurmasının en basit yoludur. Bir sonraki G / Ç işleminin zamanının gelip gelmediğini görmek için cihazın durumunu periyodik olarak kontrol etme işlemine sorgulama denir. G / Ç cihazı, bilgileri bir Durum kaydına koyar ve işlemcinin gelip bilgiyi alması gerekir.
Çoğu zaman, cihazlarla ilgilenilmesi gerekmeyecektir ve biri olduğunda, bir sonraki sorgulama programı tarafından sorgulanana kadar beklemek zorunda kalacaktır. Bu verimsiz bir yöntemdir ve işlemcilerin zamanının çoğu gereksiz anketlerde boşa harcanmaktadır.
Bu yöntemi, bir sınıftaki her öğrenciye sürekli olarak yardıma ihtiyaçları olup olmadığını soran bir öğretmenle karşılaştırın. Açıkçası, daha verimli yöntem, bir öğrencinin yardıma ihtiyaç duyduğunda öğretmeni bilgilendirmesi olacaktır.
I / O'yu kesintiye uğratır
G / Ç ile uğraşmak için alternatif bir şema, kesintiye dayalı yöntemdir. Kesinti, mikroişlemciye dikkat gerektiren bir cihazdan gelen bir sinyaldir.
Bir aygıt denetleyicisi, CPU bir kesme aldığında CPU'nun dikkatine ihtiyaç duyduğunda veriyoluna bir kesme sinyali koyar, mevcut durumunu kaydeder ve kesme vektörünü (çeşitli olayları işlemek için işletim sistemi rutinlerinin adresleri) kullanarak uygun kesme işleyicisini çağırır. Kesilen cihazla ilgilenildiğinde, CPU hiç kesintiye uğramamış gibi orijinal görevine devam eder.
G / Ç yazılımı genellikle aşağıdaki katmanlarda düzenlenir -
User Level Libraries- Bu, girdi ve çıktı gerçekleştirmek için kullanıcı programına basit bir arayüz sağlar. Örneğin,stdio C ve C ++ programlama dilleri tarafından sağlanan bir kitaplıktır.
Kernel Level Modules - Bu, aygıt sürücüsünün aygıt denetleyicisi ve aygıt sürücüleri tarafından kullanılan aygıttan bağımsız G / Ç modülleriyle etkileşim kurmasını sağlar.
Hardware - Bu katman, aygıt sürücüleriyle etkileşime giren ve donanımı canlı kılan gerçek donanım ve donanım denetleyicisini içerir.
I / O yazılımının tasarımındaki temel kavram, cihazı önceden belirtmek zorunda kalmadan herhangi bir I / O cihazına erişebilen programlar yazmanın mümkün olması gereken cihazdan bağımsız olması gerektiğidir. Örneğin, bir dosyayı girdi olarak okuyan bir program, her bir farklı aygıt için programı değiştirmeden disketteki, sabit diskteki veya CD-ROM'daki bir dosyayı okuyabilmelidir.
Aygıt sürücüleri
Aygıt sürücüleri, belirli bir aygıtı işlemek için bir işletim sistemine takılabilen yazılım modülleridir. İşletim Sistemi, tüm G / Ç aygıtlarını işlemek için aygıt sürücülerinden yardım alır. Aygıt sürücüleri, aygıta bağlı kodu kapsüller ve kodun aygıta özgü yazmaç okuma / yazma içermesini sağlayacak şekilde standart bir arabirim uygular. Aygıt sürücüsü, genellikle aygıtın üreticisi tarafından yazılır ve aygıtla birlikte bir CD-ROM'da teslim edilir.
Bir aygıt sürücüsü aşağıdaki işleri gerçekleştirir -
- Yukarıdaki cihazdan bağımsız yazılımdan gelen talebi kabul etmek.
- G / Ç almak ve vermek ve gerekli hata işlemeyi gerçekleştirmek için cihaz denetleyicisiyle etkileşim kurun
- İsteğin başarıyla yerine getirildiğinden emin olmak
Bir aygıt sürücüsünün bir isteği nasıl ele aldığı aşağıdaki gibidir: Bir N bloğunu okumak için bir isteğin geldiğini varsayalım. Bir istek geldiğinde sürücü boştaysa, isteği hemen gerçekleştirmeye başlar. Aksi takdirde, sürücü başka bir istekle zaten meşgulse, yeni isteği bekleyen istekler kuyruğuna yerleştirir.
İşleyicileri kes
Bir kesme hizmet rutini veya ISR olarak da bilinen bir kesinti işleyici, bir yazılım parçası veya daha spesifik olarak bir işletim sistemindeki veya daha spesifik olarak, bir kesintinin alınmasıyla yürütülmesi tetiklenen bir aygıt sürücüsündeki bir geri arama işlevidir.
Kesme gerçekleştiğinde, kesme prosedürü, kesmeyi işlemek için gereken her şeyi yapar, veri yapılarını günceller ve bir kesintinin olmasını bekleyen süreci uyandırır.
Kesme mekanizması bir adresi kabul eder - küçük bir setten belirli bir kesme işleme yordamı / işlevi seçen bir sayı. Çoğu mimaride bu adres, kesme vektör tablosu adı verilen bir tabloda depolanan bir ofsettir. Bu vektör, özel kesme işleyicilerinin bellek adreslerini içerir.
Cihazdan Bağımsız G / Ç Yazılımı
Aygıttan bağımsız yazılımın temel işlevi, tüm aygıtlarda ortak olan G / Ç işlevlerini gerçekleştirmek ve kullanıcı düzeyindeki yazılıma tek tip bir arabirim sağlamaktır. Tamamen cihazdan bağımsız yazılım yazmak zor olsa da, tüm cihazlar arasında ortak olan bazı modülleri yazabiliriz. Aşağıda, aygıttan bağımsız I / O Yazılımının işlevlerinin bir listesi verilmiştir -
- Aygıt sürücüleri için tek tip arabirim
- Cihaz adlandırma - Büyük ve Küçük cihaz numaralarına eşlenen anımsatıcı adlar
- Cihaz koruması
- Cihazdan bağımsız bir blok boyutu sağlama
- Arabelleğe alma çünkü bir aygıttan gelen veriler son hedefte saklanamaz.
- Blok cihazlarda depolama tahsisi
- Özel cihazların tahsis edilmesi ve serbest bırakılması
- Hata Bildirimi
Kullanıcı Alanı I / O Yazılımı
Bunlar, çekirdeğin işlevselliğine erişmek için daha zengin ve basitleştirilmiş arayüz sağlayan veya nihayetinde aygıt sürücüleriyle etkileşimli olan kitaplıklardır. Kullanıcı düzeyindeki G / Ç yazılımlarının çoğu, bir çoklu programlama sistemindeki özel G / Ç aygıtlarıyla ilgilenmenin bir yolu olan bekletme sistemi gibi bazı istisnalar dışında kitaplık prosedürlerinden oluşur.
G / Ç Kitaplıkları (örn. Stdio), işletim sistemi yerleşik aygıttan bağımsız G / Ç yazılımına bir arabirim sağlamak için kullanıcı alanı içindedir. Örneğin putchar (), getchar (), printf () ve scanf (), C programlamada bulunan kullanıcı seviyesi G / Ç kütüphanesi stdio örneğidir.
Çekirdek G / Ç Alt Sistemi
Kernel I / O Subsystem, G / Ç ile ilgili birçok hizmet sağlamaktan sorumludur. Aşağıda verilen hizmetlerden bazıları verilmiştir.
Scheduling- Kernel, onları yürütmek için iyi bir sıra belirlemek üzere bir dizi G / Ç isteği planlar. Bir uygulama engelleyen bir G / Ç sistem çağrısı yayınladığında, istek o aygıt için kuyruğa yerleştirilir. Kernel I / O zamanlayıcı, genel sistem verimliliğini ve uygulamaların deneyimlediği ortalama yanıt süresini iyileştirmek için kuyruk sırasını yeniden düzenler.
Buffering - Kernel I / O Subsystem, olarak bilinen bir bellek alanını korur bufferiki cihaz arasında veya bir uygulama işlemiyle bir cihaz arasında aktarılırken verileri depolayan. Tamponlama, bir veri akışının üreticisi ve tüketicisi arasındaki hız uyuşmazlığıyla başa çıkmak veya farklı veri aktarım boyutlarına sahip cihazlar arasında uyum sağlamak için yapılır.
Caching- Çekirdek, verilerin kopyalarını tutan hızlı bellek bölgesi olan önbelleği korur. Önbelleğe alınmış kopyaya erişim, aslına erişimden daha etkilidir.
Spooling and Device Reservation- Biriktirme, yazıcı gibi, araya eklenmiş veri akışlarını kabul edemeyen bir aygıt için çıktıyı tutan bir arabellektir. Bekletme sistemi, sıradaki biriktirme dosyalarını teker teker yazıcıya kopyalar. Bazı işletim sistemlerinde biriktirme, bir sistem arka plan programı süreci tarafından yönetilir. Diğer işletim sistemlerinde, bir çekirdek içi iş parçacığı tarafından işlenir.
Error Handling - Korumalı bellek kullanan bir işletim sistemi, birçok türde donanım ve uygulama hatalarına karşı koruma sağlayabilir.
Dosya
Dosya, manyetik diskler, manyetik bantlar ve optik diskler gibi ikincil depolamaya kaydedilen, ilgili bilgilerin adlandırılmış bir koleksiyonudur. Genel olarak bir dosya, anlamı dosya oluşturucu ve kullanıcı tarafından tanımlanan bit, bayt, satır veya kayıt dizisidir.
Dosya Yapısı
Dosya Yapısı, işletim sisteminin anlayabileceği gerekli bir biçime göre olmalıdır.
Bir dosyanın türüne göre belirli bir yapısı vardır.
Metin dosyası, satırlar halinde düzenlenmiş bir karakter dizisidir.
Kaynak dosya, bir dizi prosedür ve işlevdir.
Bir nesne dosyası, makine tarafından anlaşılabilen bloklar halinde düzenlenmiş bir bayt dizisidir.
İşletim sistemi farklı dosya yapılarını tanımladığında, bu dosya yapısını destekleyecek kodu da içerir. Unix, MS-DOS minimum dosya yapısını destekler.
Dosya tipi
Dosya türü, işletim sisteminin metin dosyaları kaynak dosyaları ve ikili dosyalar vb. Gibi farklı dosya türlerini ayırt etme yeteneğini ifade eder. Çoğu işletim sistemi birçok dosya türünü destekler. MS-DOS ve UNIX gibi işletim sistemleri aşağıdaki dosya türlerine sahiptir -
Sıradan dosyalar
- Bunlar, kullanıcı bilgilerini içeren dosyalardır.
- Bunların metinleri, veritabanları veya çalıştırılabilir programları olabilir.
- Kullanıcı bu tür dosyalar üzerinde ekleme, değiştirme, silme ve hatta dosyanın tamamını kaldırma gibi çeşitli işlemleri uygulayabilir.
Dizin dosyaları
- Bu dosyalar, dosya adlarının listesini ve bu dosyalarla ilgili diğer bilgileri içerir.
Özel dosyalar
- Bu dosyalar, cihaz dosyaları olarak da bilinir.
- Bu dosyalar, diskler, terminaller, yazıcılar, ağlar, teyp sürücüsü vb. Gibi fiziksel aygıtları temsil eder.
Bu dosyalar iki türdendir -
Character special files - veriler, terminaller veya yazıcılarda olduğu gibi karakter karakter işlenir.
Block special files - veriler, diskler ve teyplerde olduğu gibi bloklar halinde işlenir.
Dosya Erişim Mekanizmaları
Dosya erişim mekanizması, bir dosyanın kayıtlarına erişilme biçimini ifade eder. Dosyalara erişmenin birkaç yolu vardır -
- Sıralı erişim
- Doğrudan / Rastgele erişim
- Dizine alınmış sıralı erişim
Sıralı erişim
Sıralı erişim, kayıtlara belirli bir sırayla erişilmesidir, yani dosyadaki bilgiler sırayla, bir kayıt diğerinden sonra işlenir. Bu erişim yöntemi en ilkel olanıdır. Örnek: Derleyiciler dosyalara genellikle bu şekilde erişirler.
Doğrudan / Rastgele erişim
Rasgele erişim dosya organizasyonu, kayıtlara doğrudan erişim sağlar.
Her kaydın dosya üzerinde kendi adresi vardır ve bunun yardımıyla doğrudan okuma veya yazma için erişilebilir.
Kayıtların dosya içinde herhangi bir sırada olması gerekmez ve depolama ortamında bitişik konumlarda olmaları gerekmez.
Dizine alınmış sıralı erişim
- Bu mekanizma, sıralı erişim temelinde oluşturulmuştur.
- Her dosya için çeşitli bloklara işaretçiler içeren bir dizin oluşturulur.
- Dizin sırayla aranır ve işaretçisi dosyaya doğrudan erişmek için kullanılır.
Alan Tahsisi
Dosyalar, işletim sistemine göre ayrılmış disk alanlarıdır. İşletim sistemleri, dosyalara disk alanı tahsis etmenin üç ana yolunu izleyerek dağıtır.
- Bitişik Tahsis
- Bağlı Tahsis
- Dizine Alınmış Tahsis
Bitişik Tahsis
- Her dosya, diskte bitişik bir adres alanı kaplar.
- Atanan disk adresi doğrusal sıradadır.
- Uygulaması kolaydır.
- Dış parçalanma, bu tür tahsis tekniğinde önemli bir sorundur.
Bağlı Tahsis
- Her dosya, disk bloklarına giden bağlantıların bir listesini taşır.
- Dizin, bir dosyanın ilk bloğuna bağlantı / işaretçi içerir.
- Dış parçalanma yok
- Sıralı erişim dosyasında etkin bir şekilde kullanılır.
- Doğrudan erişim dosyası durumunda verimsiz.
Dizine Alınmış Tahsis
- Bitişik ve bağlantılı tahsis sorunlarına çözümler sunar.
- Dosyalara tüm işaretçileri içeren bir dizin bloğu oluşturulur.
- Her dosyanın, dosyanın kapladığı disk alanı adreslerini saklayan kendi dizin bloğu vardır.
- Dizin, dosyaların dizin bloklarının adreslerini içerir.
Güvenlik, CPU, bellek, disk, yazılım programları ve en önemlisi bilgisayar sisteminde depolanan veriler / bilgiler gibi bilgisayar sistemi kaynaklarına bir koruma sistemi sağlamayı ifade eder. Bir bilgisayar programı yetkisiz bir kullanıcı tarafından çalıştırılırsa, bilgisayar veya içinde depolanan verilere ciddi zarar verebilir. Bu nedenle, bir bilgisayar sistemi yetkisiz erişime, sistem belleğine kötü niyetli erişime, virüslere, solucanlara vb. Karşı korunmalıdır. Bu bölümde aşağıdaki konuları tartışacağız.
- Authentication
- Tek seferlik şifreler
- Program Tehditleri
- Sistem Tehditleri
- Bilgisayar Güvenliği Sınıflandırmaları
Doğrulama
Kimlik doğrulama, sistemin her bir kullanıcısını tanımlamayı ve çalışan programları bu kullanıcılarla ilişkilendirmeyi ifade eder. Belirli bir programı çalıştıran bir kullanıcının gerçek olmasını sağlayan bir koruma sistemi oluşturmak İşletim Sisteminin sorumluluğundadır. İşletim Sistemleri genellikle aşağıdaki üç yolu kullanarak kullanıcıları tanımlar / kimliklerini doğrular -
Username / Password - Kullanıcı, sisteme giriş yapmak için İşletim sistemi ile kayıtlı bir kullanıcı adı ve şifre girmelidir.
User card/key - Kullanıcının, sisteme giriş yapmak için işletim sistemi tarafından sağlanan seçenekte, kart yuvasında kartı delmesi veya anahtar oluşturucu tarafından oluşturulan anahtarı girmesi gerekir.
User attribute - fingerprint/ eye retina pattern/ signature - Kullanıcı, sisteme giriş yapmak için işletim sistemi tarafından kullanılan belirlenmiş giriş cihazı aracılığıyla kendi niteliğini geçirmelidir.
Tek seferlik şifreler
Tek seferlik şifreler, normal kimlik doğrulamayla birlikte ek güvenlik sağlar. Tek Kullanımlık Şifre sisteminde, kullanıcı sisteme her giriş yapmaya çalıştığında benzersiz bir şifre gerekir. Tek seferlik bir şifre kullanıldığında, tekrar kullanılamaz. Tek seferlik şifre çeşitli şekillerde uygulanır.
Random numbers- Kullanıcılara, ilgili harflerle birlikte basılı numaralar içeren kartlar verilir. Sistem rastgele seçilen birkaç alfabeye karşılık gelen sayıları sorar.
Secret key- Kullanıcıya, kullanıcı kimliği ile eşlenmiş gizli bir kimlik oluşturabilen bir donanım cihazı sağlanır. Sistem, oturum açmadan önce her seferinde oluşturulacak böyle bir gizli kimlik ister.
Network password - Bazı ticari uygulamalar, giriş yapmadan önce girilmesi gereken kayıtlı cep telefonu / e-posta üzerinden kullanıcıya tek kullanımlık şifreler gönderir.
Program Tehditleri
İşletim sisteminin süreçleri ve çekirdeği, belirtilen görevi belirtildiği gibi yerine getirir. Bir kullanıcı programı bu işlemlerin kötü amaçlı görevler yapmasını sağladıysa, bunaProgram Threats. Program tehdidinin yaygın örneklerinden biri, kullanıcı kimlik bilgilerini saklayabilen ve ağ üzerinden bir bilgisayar korsanına gönderebilen, bilgisayara yüklenen bir programdır. Aşağıda, bazı iyi bilinen program tehditlerinin listesi verilmiştir.
Trojan Horse - Bu tür bir program, kullanıcı oturum açma kimlik bilgilerini yakalar ve daha sonra bilgisayara oturum açabilen ve sistem kaynaklarına erişebilen kötü niyetli kullanıcılara göndermek için bunları depolar.
Trap Door - Gerektiği gibi çalışacak şekilde tasarlanmış, kodunda güvenlik açığı bulunan ve kullanıcının bilgisi olmadan yasadışı eylem gerçekleştiren bir programa tuzak kapısı çağrılır.
Logic Bomb- Mantık bombası, bir programın yalnızca belirli koşullar karşılandığında hatalı davrandığı bir durumdur, aksi takdirde gerçek bir program olarak çalışır. Tespit etmek daha zordur.
Virus- Adından da anlaşılacağı gibi virüs bilgisayar sisteminde kendilerini çoğaltabilir. Oldukça tehlikelidirler ve kullanıcı dosyalarını, sistem çöküşlerini değiştirebilir / silebilirler. Virüs, genellikle bir programın içine yerleştirilmiş küçük bir koddur. Kullanıcı programa eriştikçe, virüs diğer dosyalara / programlara gömülmeye başlar ve sistemi kullanıcı için kullanılamaz hale getirebilir.
Sistem Tehditleri
Sistem tehditleri, kullanıcıyı belaya sokmak için sistem hizmetlerinin ve ağ bağlantılarının kötüye kullanılmasıdır. Sistem tehditleri, program saldırısı adı verilen eksiksiz bir ağ üzerinde program tehditlerini başlatmak için kullanılabilir. Sistem tehditleri, işletim sistemi kaynaklarının / kullanıcı dosyalarının kötüye kullanıldığı bir ortam yaratır. Aşağıda, iyi bilinen bazı sistem tehditlerinin listesi verilmiştir.
Worm- Solucan, sistem kaynaklarını aşırı seviyelerde kullanarak bir sistem performansını boğabilen bir süreçtir. Bir Solucan süreci, her kopyanın sistem kaynaklarını kullandığı çoklu kopyalarını üretir, diğer tüm işlemlerin gerekli kaynakları almasını engeller. Hatta solucan süreçleri tüm bir ağı kapatabilir.
Port Scanning - Bağlantı noktası taraması, bir bilgisayar korsanının sisteme saldırı yapmak için sistem açıklarını tespit edebileceği bir mekanizma veya araçtır.
Denial of Service- Hizmet reddi saldırıları, normalde kullanıcının sistemi yasal bir şekilde kullanmasını engeller. Örneğin, hizmet reddi tarayıcının içerik ayarlarına saldırırsa, kullanıcı İnternet'i kullanamayabilir.
Bilgisayar Güvenliği Sınıflandırmaları
ABD Savunma Bakanlığı Güvenilir Bilgisayar Sisteminin Değerlendirme Kriterlerine göre, bilgisayar sistemlerinde dört güvenlik sınıflandırması vardır: A, B, C ve D. Bu, sistemlerin ve güvenlik çözümlerinin güvenliğini belirlemek ve modellemek için yaygın olarak kullanılan özelliklerdir. Aşağıda, her bir sınıflandırmanın kısa açıklaması bulunmaktadır.
SN | Sınıflandırma Tipi ve Tanımı |
---|---|
1 | Type A En yüksek seviye. Resmi tasarım özelliklerini ve doğrulama tekniklerini kullanır. Proses güvenliği için yüksek derecede güvence sağlar. |
2 | Type B Zorunlu koruma sistemi sağlar. C2 sınıfı bir sistemin tüm özelliklerine sahiptir. Her nesneye bir hassasiyet etiketi yapıştırır. Üç çeşittir.
|
3 | Type C Denetim yeteneklerini kullanarak koruma ve kullanıcı sorumluluğu sağlar. İki çeşittir.
|
4 | Type D En düşük seviye. Minimum koruma. MS-DOS, Window 3.1 bu kategoriye girer. |
Linux, UNIX işletim sisteminin popüler sürümlerinden biridir. Kaynak kodu ücretsiz olduğu için açık kaynak kodludur. Kullanmak ücretsizdir. Linux, UNIX uyumluluğu düşünülerek tasarlanmıştır. İşlevsellik listesi UNIX'inkine oldukça benzer.
Linux Sisteminin Bileşenleri
Linux İşletim Sisteminin başlıca üç bileşeni vardır
Kernel- Çekirdek, Linux'un temel parçasıdır. Bu işletim sisteminin tüm ana faaliyetlerinden sorumludur. Çeşitli modüllerden oluşur ve doğrudan temeldeki donanımla etkileşime girer. Kernel, düşük seviyeli donanım ayrıntılarını sistem veya uygulama programlarına gizlemek için gereken soyutlamayı sağlar.
System Library- Sistem kitaplıkları, hangi uygulama programlarının veya sistem yardımcı programlarının Kernel'in özelliklerine eriştiğini kullanan özel işlevler veya programlardır. Bu kitaplıklar, işletim sisteminin işlevlerinin çoğunu uygular ve çekirdek modülünün kod erişim haklarını gerektirmez.
System Utility - Sistem Yardımcı programları, özel, bireysel düzeydeki görevleri yapmaktan sorumludur.
Çekirdek Modu - Kullanıcı Modu
Çekirdek bileşen kodu, adı verilen özel bir ayrıcalıklı modda yürütülür kernel modebilgisayarın tüm kaynaklarına tam erişim. Bu kod tek bir işlemi temsil eder, tek adres alanında yürütülür ve herhangi bir bağlam anahtarı gerektirmez ve bu nedenle çok verimli ve hızlıdır. Çekirdek, her işlemi çalıştırır ve işlemlere sistem hizmetleri sağlar, işlemlere donanımlara korumalı erişim sağlar.
Çekirdek modunda çalıştırılması gerekmeyen destek kodu Sistem Kitaplığı'ndadır. Kullanıcı programları ve diğer sistem programları,User ModeSistem donanımına ve çekirdek koduna erişimi olmayan. Kullanıcı programları / yardımcı programları, sistemin düşük seviyeli görevlerini almak üzere Kernel işlevlerine erişmek için Sistem kitaplıklarını kullanır.
Temel özellikler
Aşağıda Linux İşletim Sisteminin önemli özelliklerinden bazıları verilmiştir.
Portable- Taşınabilirlik, yazılımın aynı şekilde farklı donanım türleri üzerinde çalışabileceği anlamına gelir. Linux çekirdeği ve uygulama programları, her türlü donanım platformuna kurulumlarını destekler.
Open Source- Linux kaynak kodu ücretsiz olarak mevcuttur ve topluluk tabanlı geliştirme projesidir. Linux işletim sisteminin kabiliyetini geliştirmek için birden fazla ekip işbirliği içinde çalışır ve sürekli olarak gelişmektedir.
Multi-User - Linux çok kullanıcılı bir sistemdir, birden fazla kullanıcının bellek / ram / uygulama programları gibi sistem kaynaklarına aynı anda erişebileceği anlamına gelir.
Multiprogramming - Linux bir çoklu programlama sistemidir, birden fazla uygulamanın aynı anda çalışabileceği anlamına gelir.
Hierarchical File System - Linux, sistem dosyalarının / kullanıcı dosyalarının düzenlendiği standart bir dosya yapısı sağlar.
Shell- Linux, işletim sisteminin komutlarını yürütmek için kullanılabilecek özel bir yorumlayıcı programı sağlar. Çeşitli işlem türlerini yapmak, uygulama programlarını aramak için kullanılabilir. vb.
Security - Linux, parola koruması / belirli dosyalara kontrollü erişim / verilerin şifrelenmesi gibi kimlik doğrulama özelliklerini kullanarak kullanıcı güvenliği sağlar.
Mimari
Aşağıdaki çizim bir Linux sisteminin mimarisini göstermektedir -
Bir Linux Sisteminin mimarisi aşağıdaki katmanlardan oluşur -
Hardware layer - Donanım, tüm çevresel cihazlardan oluşur (RAM / HDD / CPU vb.).
Kernel - İşletim Sisteminin temel bileşenidir, doğrudan donanımla etkileşime girer, üst katman bileşenlerine düşük seviye hizmetler sağlar.
Shell- Çekirdeğin işlevlerinin karmaşıklığını kullanıcılardan gizleyen bir arayüz. Kabuk, kullanıcıdan komutları alır ve çekirdeğin işlevlerini yürütür.
Utilities - Kullanıcıya bir işletim sisteminin işlevlerinin çoğunu sağlayan yardımcı programlar.