LETM SSTEMLER DERS 3 LETM SSTEMNN TEMEL GREVLER

  • Slides: 25
Download presentation
İŞLETİM SİSTEMLERİ DERS 3

İŞLETİM SİSTEMLERİ DERS 3

İŞLETİM SİSTEMİNİN TEMEL GÖREVLERİ PROSES YÖNETİMİ ZAMANLAMA(Scheduling) PROSESLER ARASI İLETİŞİM DOSYA SİSTEMİ YÖNETİMİ BELLEK

İŞLETİM SİSTEMİNİN TEMEL GÖREVLERİ PROSES YÖNETİMİ ZAMANLAMA(Scheduling) PROSESLER ARASI İLETİŞİM DOSYA SİSTEMİ YÖNETİMİ BELLEK YÖNETİMİ GÜVENLİK AĞ HİZMETLERİ GİRİŞ/ÇIKIŞ İŞLEMLERİ YÖNETİMİ 2

PROSES Disk üzerinde pasif halde duran yapıya program adını ve rilir. Bu yapının belleğe

PROSES Disk üzerinde pasif halde duran yapıya program adını ve rilir. Bu yapının belleğe yüklenerek çalıştırılmasıyla ortay a çıkan yeni yapıya ise PROSES diyoruz. İşletim sistemi, çalışmakta olan programı sürekli izler ve bu çalışma işletim sisteminin kontrolü altında gerçekleşir. Bir processin işi yapabilmesi için, yani bir programın pro ses haline gelebilmesi için belleğe yüklenmesi gerekir. Her bir proses için bellekte bir adres alanı ayrılır. Proseslerin bütün bilgileri bu alanda tutulur. Bu adres alanında programın kodları, programın kullanacağı veriler ve programın yığını bulunur. Ayrıca her bir proses işlemcideki bazı kaydedicilerin (program sayacı, yığın göstergeci vb) kendilerine ait değerlerini de bu adres alanında saklarlar. 3

Periyodik olarak işletim sistemi (süre kısıtlaması veya kesme gibi nedenlerden dolayı) çalışan bir prosesi

Periyodik olarak işletim sistemi (süre kısıtlaması veya kesme gibi nedenlerden dolayı) çalışan bir prosesi durdurup askıya alabilir ve yerine başka bir prosesi başlatabilir. Askıya alınan bir proses işletim sistemi tarafında tekrar işlemciye alındığında en son durdurulduğu zamanki konumundan işleme devam etmesi gerekir. Bu da bir proses durdurulduğunda bütün bilgilerinin doğrudan bir yere kaydedilmesi gerektiğin gerçeğini ortaya koyar. Bir çok işletim sistemi prosesler ile ilgili bütün gerekli verileri proses tablosu ya da proses kontrol bloğu denen bir dizi yapısında tutar. Proses tablosunda her bir kayıt bilgisayarda başlatılmış durumda olan bir proses için ayrılmıştır. 4

BELLEK YÖNETIMI Çalışmakta olan bütün programlarını verileri ana bellekte tutulur. Günümüzdeki modern işletim sistemlerinde

BELLEK YÖNETIMI Çalışmakta olan bütün programlarını verileri ana bellekte tutulur. Günümüzdeki modern işletim sistemlerinde aynı anda ana bellekde (RAM) birden fazla proses bulunur. Bu proseslerin ortak bir belleği paylaşması bazı kurallar çerçevesinde olur. Bellek Yönetim Birimi adı verilen işletim sisteminin bir bileşeni proseslerin belleği ortak kullanmalarını yönetir. Çalışmakta olan proseslerin verilerinin bir kısmı ana bellekte bir kısmı ise disk üzerinde Sanal Bellek adı verilen alanda tutulur. Gerektiğinde bu veriler işletim sistemi tarafından iki yönlü olarak (bellekten diskediskten belleğe) haraket ettirilebilir. 5

GIRIŞ ÇıKıŞ BIRIMLERI Çevresel birim olarak adlandırılan klavye, mouse, yazıcı, disk, ekran kartı vb

GIRIŞ ÇıKıŞ BIRIMLERI Çevresel birim olarak adlandırılan klavye, mouse, yazıcı, disk, ekran kartı vb bir çok donanım mevuttur. Bunların yönetimi de işletim sistemi tarafından yürütülür. Bu birimleri yönetirken işletim sistemi genellikle sürücü(driver) yazılımı kullanır. 6

DOSYALAR İşletim sistemi kullanıcıları diskteki donanım kargaşasından soyutlayarak verilere dosyalar halinde ulaşma imakanı sunar.

DOSYALAR İşletim sistemi kullanıcıları diskteki donanım kargaşasından soyutlayarak verilere dosyalar halinde ulaşma imakanı sunar. Birçok işletim sistemi dosyaları gruplandırmak için dizin(directory) yapısını kullanır. 7

 Dosyalar hiyerarşik bir yapıda bilgisayarda saklanır. 8

Dosyalar hiyerarşik bir yapıda bilgisayarda saklanır. 8

 Her dosya ana dizinden itibaren bir nerde olduğunu gösterene bir adres yoluna sahiptir.

Her dosya ana dizinden itibaren bir nerde olduğunu gösterene bir adres yoluna sahiptir. CS 101’in adres yolu, /Faculty/Prof. Brown/Courses/CS 101 (Unix’de) FacultyProf. BrownCoursesCS 101 (MS_DOS’de) şeklinde gösterilir. 9

GUVENLIK Bilgisayarlarda kullanıcılara ait korunması gereken binlerce dosya vardır. Unix ‘de koruma işlemini 9

GUVENLIK Bilgisayarlarda kullanıcılara ait korunması gereken binlerce dosya vardır. Unix ‘de koruma işlemini 9 bitlik binary bir kod ile gerçekleştirilir. Bu 9 bitlik kod 3 bitlik 3 alana bölünmüştür. İlk üç bit admin yetkilendirmesi için, ikinci 3 bit admin tarafından oluşturulan kullanıcı gruplar için, son 3 bit ise sıradan kullanıcılar için ayrılmıştır. Her üç bitlik grup okuma(r), yazma(w) ve çalıştırma (x) işlemlerini temsil eder. Örneğin rwxr-x--x koruma kodunun anlamı, admin bu dosyayı okuyabilir, dosyaya yazabilir ve bu dosyayı çalıştırabilir. Kullanıcı grubu ise dosyayı okur ve çalıştırabilir fakat dosyaya yazamaz. Sıradan kullanıcılar ise sadece dosyayı çalıştırabilir. Dizin için ise x bu klasör üzerinde arama yetkisi için kullanılır. 10

SHELL Kullanıcı modundaki işlemlerden gelen sistem çağrılarına işletim sistemi cevap verir. Derleyiciler, yorumlayıcılar, editörler,

SHELL Kullanıcı modundaki işlemlerden gelen sistem çağrılarına işletim sistemi cevap verir. Derleyiciler, yorumlayıcılar, editörler, komut yorumlayıcıları işletim sistminin bir parçası değildir. UNIX’in Shell isimli komut yorumlayıcısı, işletim sistemini bir parçası değildir ama sistem çağrılarının nasıl çalıştığını anlamak için iyi bir örnektir. Aynı zamanda GUI kullanılmadığı zaman kullanıcı ile işletim sisteminin arasında ara yüz görevi görür. Bir kullanıcı sisteme giriş yaptığında bir shell başlatılır ve bu shell standart giriş ve çıkışlar için bir terminal niteliğindedir. 11

SİSTEM ÇAĞRILARI İşletim sistemleri kullanıcı programları ile işletim sistemi arasına bir ara yüz görevi

SİSTEM ÇAĞRILARI İşletim sistemleri kullanıcı programları ile işletim sistemi arasına bir ara yüz görevi yapan bir grup sistem çağrısına sahiptir. Bu sistem çağrıları işletim sisteminden işletim sistemine farklılık gösterir. Sistem çağrıları makineye bağımlıdır. Dolayısı ile assembly de kodlanması gerekir. İşletim sistemleri C ve diğer dillerden sistem çağrılarını aktive etmek için bir prosedür kütüphanesi sunarlar. 12

Eğer kullanıcı modunda çalışan bir kullanıcı programı bir servise ihtiyaç duyarsa, örneğin bir dosyayı

Eğer kullanıcı modunda çalışan bir kullanıcı programı bir servise ihtiyaç duyarsa, örneğin bir dosyayı okumak isterse, bir kütüphane prosedürü ile sistem çağrısı komutu(system call instruction) çalıştırarak kontrolü işletim sistemine vermelidir. İşletim sistemin gelen prosedürün parametrelerine bakarak sistem çağrısına karşılık gelen işlemi gerçekleştirir ve elde edilen değeri geri döndürür. Bir sistem çağrısı üç tane parametreye sahiptir : birincisi dosyayı bildirir, ikincisi buffer belleğe dosyanın yerini bildirir üçüncüsü ise verinin kaç byte uzunluğa sahip olduğunu bildirir. C programından bir sistem çağrısı aşağıdaki şekilde yapılabilir : Count = read(fd, buffer, nbytes) 13

 İşletim sistemi programın ne istediğini parametreleri inceleyerek belirler, sistem çağrısını yerine getirir ve

İşletim sistemi programın ne istediğini parametreleri inceleyerek belirler, sistem çağrısını yerine getirir ve kontrolü sistem çağrısını çağıran programa geri verir. Sistem çağrısını çağırmayı, prosedür çağırma gibi düşünebiliriz Sistem çağrı düzeneğinin kurulmasında, ana işlem biriminin bu amaçla öngörülmüş komutlarından yararlanılır. Sistem çağrısı yapmak işletim sistemine sapmak anlamına gelir. Bir işletim sistemi işlevine gereksinim duyulduğunda SVC (Supervisor Call), INT (Interrupt) gibi adlarla anılan özel makina komutları çalıştırılarak ilgili işletim sistemi kesimine sapılır. İşlem parametreleri sisteme, ana işlem birimi yazmaçları içinde aktarılır. 14

 Sistem çağrısının adımları 15

Sistem çağrısının adımları 15

 Bazı POSIX sistem çağrıları ve kütüphane prosedürleri 16

Bazı POSIX sistem çağrıları ve kütüphane prosedürleri 16

17

17

THE WINDOWS WIN 32 API API, bir kütüphane yada ortamın(framework) sunduğu yararlı işlemler yapan

THE WINDOWS WIN 32 API API, bir kütüphane yada ortamın(framework) sunduğu yararlı işlemler yapan foksiyonlarına verilen genel addır. (Örneğin JAVA API’leri, Windows API’leri, Socket API’leri vs. ) Sistem çağrıları denilince işletim sisteminin KERNEL modda çalışan foksiyonları anlaşılır. API ise daha geneldir. Her sistem çağrısı bir API’dir fakat her API bir sistem çağrısı değildir. Windows’un sistem çağrıları API’ler aracılığıyla dolaylı olarak çağrılmaktadır. Kullanıcı programları direk sistem çağrılarına ulaşamaz onun yerine API’ler aracılığı ile sistem çağrılarını aktive ederler. 18

Sistem çağrıları OS(Operating System) tarafından servisler için sağlanan arayüzdür. Sistem çağrıları sayesinde yazılımcı doğrudan

Sistem çağrıları OS(Operating System) tarafından servisler için sağlanan arayüzdür. Sistem çağrıları sayesinde yazılımcı doğrudan donanıma müdahale etmez. Donanım üzerinde gerçekleştireceği işlemi sistem çağrısı kullanarak gerçekleştirir. Bu sayede olası sistem hatalarından kaçınılmış olur. Sistem çağrılarının, sistemden sisteme değişiyor olması yazılımcının işini zorlaştırır. Bu değişiklik, bir OS için yazılan programın başka bir OS üzerinde çalışamamasına sebep olur. Bu yüzden programcılar, doğrudan sistem çağrılar yerine API(application program interface)kullanmayı tercih ederler. 19

NEDEN API? API’ler programın her sistem üzerinde çalışabilmesini sağlar. API kullanımı, her sistemin sistem

NEDEN API? API’ler programın her sistem üzerinde çalışabilmesini sağlar. API kullanımı, her sistemin sistem çağrılarını ezbere bilmeyi gerektirmez. Birden fazla sistem işlemini kısa fonksiyonlarla yapabilmeyi sağlar. Programcı API fonksiyonunun içeriğiyle ilgilenmez. Fonksiyonun parametrelerini ve dönüş değerini bilmesi yeterlidir. 20

UNIX sistemlerde genellikle sistem çağrısı ile çağrılacak olan kütüphane fonksiyonunun ismi aynıdır. Bu isimler

UNIX sistemlerde genellikle sistem çağrısı ile çağrılacak olan kütüphane fonksiyonunun ismi aynıdır. Bu isimler POSIX tarafından tanımlanmıştır. Yani sistem çağrıları ile kütüphane prosedürleri arasında bire- bir ilişki vardır. POSIX fonksiyonları, UNIX türevi tüm sistemlerde bulunan fonksiyonlardır. Örneğin dosya açmada kullandığımız ‘open’ fonksiyonu bir POSIX fonksiyonudur. Linux’ta, MAC OS’da vs. bulunur. Windowsda durum bu şekilde değildir. Microsoft Win 32 API (Application Programin Interface) adını verdiği bir prosedür kümesi tanımlamıştır. 21

Programcılar işletim sisteminin servislerini kullanmak için bu API’leri kullanırlar. Bu arayüz (API’ler) tüm Windows

Programcılar işletim sisteminin servislerini kullanmak için bu API’leri kullanırlar. Bu arayüz (API’ler) tüm Windows işletim sistemleri tarafından genel ölçüde desteklenmektedir. Microsoft sistem çağrılarını ile kullanıcı programlarını API kullanımı ile izole ederek sahip olduğu işletim sistemleri üzerinde değişiklik yapabilme imkanını elinde bulundurur. İşletim sistemleri değişse bile bir kullanıcı programı API’ler aracılığı ile bütün Windows işletim sistemlerinde sorunsuzca çalışabilmektedir. Windows’un sistem çağrılarını ve işletim sistemi kullanıcı değişikliklerine kapalıdır ve kullanıcılardan gizlenir. 22

 Win 32 API çağrılarının sayısı binlerle ifade edilecek kadar çoktur. API Windows’u ,

Win 32 API çağrılarının sayısı binlerle ifade edilecek kadar çoktur. API Windows’u , geometrik şekilleri, yazıları, fontları, kaydırma çubuklarını, diyalog kutularını, menüleri ve diğer GUI(Graphical User Interface) özelliklerini yönetmek için çok sayıda sistem çağrısına sahiptir. Şimdi bu çağrıların bir kısmına bakalım. 23

24

24

SORULAR? 25

SORULAR? 25