CSD İŞLETİM SİSTEMİNİN SANAL DOSYA SİSTEMİNE İLİŞKİN TEMEL VERİ YAPILARI

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "CSD İŞLETİM SİSTEMİNİN SANAL DOSYA SİSTEMİNE İLİŞKİN TEMEL VERİ YAPILARI"

Transkript

1 CSD İŞLETİM SİSTEMİNİN SANAL DOSYA SİSTEMİNE İLİŞKİN TEMEL VERİ YAPILARI Kaan Aslan 06/01/2004 Özet: Bu makale CSD İşletim Sisteminin sanal dosya sistemi üzerinde çalışacak yeni grup üyelerini desteklemek amacıyla yazılmıştır. Makalede CSD İşletim Sisteminin sanal dosya sistemini oluşturan temel veri yapıları ve fonksiyonlar ele alınmaktadır. Makale içerisinde süper blok işlemleri, aşağı seviyeli disk cache işlemleri, dizin girişi işlemleri ve inode işlemleri gözden geçirilmiştir. Burada ele alınan özet bilgiler makalenin yazıldığı tarihe ilişkindir. Geliştirme aşamasında kaynak kodlar üzerinde sürekli olarak büyük ya da küçük değişikliklerin yapıldığı unutulmamalıdır. 1. GİRİŞ CSD sanal dosya sistemi büyük ölçüde Linux sistemlerinin sanal dosya sistemine benzemektedir. Dosya sistemi grubu çeşitli UNIX türevlerinin sanal dosya mimarilerini incelemiş ve Linux sistemlerine yakın durmayı tercih etmiştir. Gelinen nokta gözönüne alındığında sanal dosya sisteminin tasarım bakımından Linux sistemlerine benzemesi yadırganmamalı ve tedirginlikle karşılanmamalıdır. Bilindiği gibi Linux sistemleri de ilk biçiminden bu yana diğer UNIX sistemlerinden oldukça büyük alıntılar yapmış, belli bir aşamadan sonra bazı özgün yaklaşımlar geliştirebilmiştir. CSD Dosya Sistemi Grubu da geliştirmenin sonraki evrelerinde özgün yenilikler yapma isteğindedir. [V: 1] 2. DOSYA SİSTEMİNE İLİŞKİN TEMEL VERİ YAPILARI CSD dosya sisteminin desteklediği tüm dosya sistemleri FILE_SYSTEM_TYPE yapılarından oluşan bir bağlı listede tutulmaktadır. Bağlı listeye elemanlar sistemin başlatılması sırasında eklenmektedir. CSD dosya sisteminde en temel işlem diğer sistemlerde olduğu gibi mount işlemidir. Mount işlemi sırasında mount edilen dosya sistemine ilişkin bilgiler çeşitli veri yapılarında biraraya getirilmektedir. Mount işlemi SYS_LINUX_mount sistem fonksiyonu tarafından yapılmaktadır: int SYS_LINUX_mount(PSTR pszdevname, PSTR pszmountdir, PSTR pszfsname, DWORD dwflags, PVOID pdata); Fonksiyonun çağırma şeması şöyledir: 1

2 SYS_LINUX_mount domount readsuperblock addsuperblock addmountedfs Mount işlemi sırasında mount edilen dosya sistemi addmountedfs fonksiyonu tarafından MOUNTED_FILE_SYSTEM türünden bir bağlı listeye, süper blok bilgileri de addsuperblock fonksiyonu tarafından SUPER_BLOCK türünden bağlı listeye yazılmaktadır. gs_mountedfs MFS MFS MFS MFS slink slink slink slink slinksbmounts slinksbmounts slinksbmounts slinksbmounts gs_superblocks SB SB SB dlink dlink dlink dlinkfssb dlinkfssb dlinkfssb dlistmounts dlistmounts dlistmounts gs_fstype FST FST slink slink MFS = MOUNTED_FILE_SYSTEM dlistfssb dlistfssb SB = SUPER_BLOCK FST = FILE_SYSTEM_TYPE Bir dosya sistemi birden fazla yere mount edilebilir. Yukarıdaki şekilden de görüldüğü gibi SUPER_BLOCK yapısının dlistmounts elemanı ilgili süper bloğun nerelere mount edildiğini belirlemek için kullanılan bir bağlı listedir. Benzer biçimde bir dosya sistemine ilişkin birden fazla volume söz konusu olabilir. FILE_SYSTEM_TYPE yapısının dlistfssb elemanı o dosya sistemine ilişkin SUPER_BLOCK nesnelerini tutan bağlı listedir. MOUNTED_FILE_SYSTEM listesinin ilk elemanı gs_mountedfs tarafından, SUPER_BLOCK listesinin ilk elemanı gs_superblocks tarafından, FILE_SYSTEM_TYPE yapısının ilk elemanı da gs_fstype tarafından tutulmaktadır. 2

3 SYS_LINUX_mount fonksiyonunun parametresi aygıt dosyasının yol ifadesidir. Fonksiyon önce yol ifadesinden hareketle aygıt dosyasının i-node bilgilerini elde eder. Erişim için gereken aygıt numarası i-node bilgilerinin içerisindedir. Bu işlemden sonra eğer aygıtın süper bloğu SUPER_BLOCK listesinde yoksa yeni bir SUPER_BLOCK nesnesi oluşturulmakta, eğer varsa eski SUPER_BLOCK nesnesi kullanılmaktadır. Aygıt dosyasından elde edilen aygıt numaraları pek çok veri yapısına da aktarılmaktadır. SUPER_BLOCK mount edilen fiziksel birime ilişkin parametrik bilgilerin tutulduğu bir veri yapısıdır. Örneğin aygıtın fiziksel adresi, aygıtın blok sayısı, blokların sektör uzunluğu gibi temel tüm parametrik bilgiler SUPER_BLOCK yapısında tutulmaktadır. Disk üzerinde gerçek okuma, yazma işlemlerinin hareket noktası SUPER_BLOCK yapısıdır. SUPER_BLOCK nesnesi FAT ve VFAT dosya sistemlerinde boot sektör BPB blgilerinden, UNIX/LINUX dosya sistemlerinde ise diskteki süper block bilgilerinden oluşturulmaktadır. 2. DİLİMLİ TAHSİSAT SİSTEMİ Dilimli tahsisat sistemi (slab allocator) ilk kez 1994 yılında Solaris 2.4 ile birlikte uygulamaya geçirilmiştir. Linux sistemleri de 2.2 uyarlamasıyla birlikte dilimli tahsisat sistemini kullanmaya başlamıştır. CSD İşletim Sisteminin çekidek yapısı içerisinde dilimli tahsisat sistemi yoğun olarak kullanılmaktadır. Dilimli tahsisat sistemi küçük nesnelerin tahsis edilmesi işlemlerinde yavaş tahisat fonksiyonlarını az çağırmak için oluşturulmuş bir cache sistemidir. Bu sisteme göre bir nesne dilimli tahsisat fonksiyonu ile tahsis edilmeye çalışıldığında dilimli tahsisat fonksiyonu bir grup nesne kadar alanı (yani bir dilimlik alanı) tahsis eder. Sonraki tahsisatlar için hızlı bir biçimde daha önce tahsis edilmiş olan dilimlerden yer verilir. Dilimli tahsisat fonksiyonları şunlardır: HCACHE CreateCache(PCSTR pszname, DWORD dwobjects, DWORD dwobjectsize); PVOID AllocObject(HCACHE hcache); void FreeObject(HCACHE hcache, PVOID pblock); CreateCache fonksiyonu kullanılacak dilim sisteminin ismini, başlangıçta tahsis edilecek nesne sayısını ve bir nesnenin byte uzunluğunu parametre olarak alır ve tahsisat işleminde kullanılacak handle değeri ile geri döner. Fonksiyon ikinci parametresinden hareketle başlangıçta kaç dilimin gerektiğini hesaplar ve bu dilimleri tahsis eder. AllocObject dilimden nesne veren fonksiyondur. Tahsis edilen alan FreeObject fonksiyonu ile serbest bırakılır. FreeObject fonksiyonu tüm dilim boşaltılmışsa dilimi işletim sistemine geri verir. CSD dilimli tahsisat sisteminde nesne uzunluğu ne olursa olsun bir dilim SLAB_SIZE (512) kadar nesne içermektedir. Örneğin: HACAHE hdirentrycache; PDIR_ENTR pentry; hdirentrycache = CreateCache("DirEntryCache", 5000, sizeof(dir_entry)); 3

4 ASSERT(hDirEntryCache!= NULL); pentry = (PDIR_ENTRY) AllocObject(hDirEntryCache); ASSERT(pEntry!= NULL); Bu durumda CreateCache başlangıçta 10 dilim tahsis edecektir (5000 / 512 yukarı doğru yuvarlanmıştır.) Dilimli tahsisat sisteminde dilimler işletim sisteminin çekirdek heap alanından tahsisat yapan AllocMem sistem fonksiyonu ile tahsis edilmektedir. Nesne Tahsisat İşlemleri Dilimli Tahsisat Sistemi Çekirdek Heap Sistemi Sayfa Tablosu Düzeyinde Tahsisat İşlemleri 3. AŞAĞI SEVİYELİ DİSK CACHE SİSTEMİ Disk cache sistemi diskten son okunan blokların RAM de tutulmasıyla disk erişimini azaltmayı hedefleyen bir cache sistemdir. Bu sisteme UNIX/LINUX sistemlerinde İnglizce buffer cache denilmektedir. Disk cache sisteminin büyüklüğüne sistemdeki RAM miktarına bakılarak dinamik bir biçimde karar verilir. Disk cache sisteminin -iyi uygulandığı taktirde- disk erişimini %70 lerin üzerinde azalttığı (cache hit ratio) bilinmektedir. Bu nedenle disk cache sistemi dosya sisteminin performansını belirlemede kritik öneme sahiptir. Linux disk cache sistemi Maurice J. Bach ın ünlü Design of the UNIX Operating System kitabında açıklanan modelden alınmıştır. CSD İşletim Sisteminde de bu model kullanılmaktadır. Disk cache sistemi bağlı listeli bir hash tablosu olarak düzenlenmiştir. Hash tablosu BUFFER_HEAD bağlı listelerininin başlangıç adreslerinin tutulduğu bir dizi biçimindedir. DLIST_HEADER gs_hashtable[hash_table_size]; Cache teki her blok için bir BUFFER_HEAD nesnesi vardır. Bloğun tüm bilgileri bu nesnede tutulur: 4

5 typedef struct tagbuffer_head { KDEV kdev; DWORD dwblock; DWORD dwblocksize; DWORD dwstatus; DWORD dwlruindex; DWORD dwsector; BYTE *pblock; DLIST_NODE dlink; DLIST_NODE dlinkfree; } BUFFER_HEAD, *PBUFFER_HEAD; Görüldüğü gibi yapının içerisinde söz konusu bloğun uzuluğu, hangi aygıtın hangi bloğu olduğu gibi önemli bilgiler bulunmaktadır. Yapının pblock gösterici elemanı bloğun yerini, dwblocksize elemanı ise uzunluğunu tutar. BUFFER_HEAD nesnelerinin tuttukları bloklar farklı büyüklükte olabilmektedir. Fakat blok uzunluğu işlemcinin desteklediği sayfa uzunluğundan (örneğin Intel işlemcilerinde 4K) büyük olamaz. Cache sisteminin şekilsel gösterimi aşağıda verilmiştir: DLIST_HEADER gs_hashtable[hash_table_size]; BUFFER_HEAD... dwblock pblock Diskteki Blok Numarası dwblocksize... BUFFER_HEAD... dwblock pblock dwblocksize... Diskteki Blok Numarası RAM de tutulan disk bloğu RAM de tutulan disk bloğu 5

6 BUFFER_HEAD nesnelerinden oluşan hash tablosu bir bağlı liste dizisi biçimindedir. Bloğun cache içerisinde aranması için aygıt numarası ve blok numarası kullanılarak bir dizi indeksi elde edilir. Dizinin bu indeksli elemanı üzerinde doğrusal arama yapılır. Bloklar getblock fonksiyonu tarafından cache te aranır: PRIVATE PBUFFER_HEAD getblock(kdev kdev, DWORD dwblock, DWORD dwblocksize) Fonksiyon: 1) Önce istenen blok cache te var mı diye bakar. İstenen blok cache te varsa onun BUFFER_HEAD adresiyle geri döner. 2) Eğer istenen blok cache te yoksa yeni bir BUFFER_HEAD oluşturur. Onu cache e yerleştirir ve cache e yerleştirmiş olduğu BUFFER_HEAD nesnesinin adresiyle geri döner. getblock okuma işleminin kendisini yapmaz. getblock fonksiyonunun çağırma şeması şöyledir: getblock getbuffercachehash updatelru additemlists deleteitemfreelist putbuffercache getbuffercachehash additemlru setbufferclean fillfreelist additemfreelist initbufferhead getblock fonksiyonunun anlaşılmasında iki önemli nokta vardır: 1) Cache e yerleştirilecek BUFFER_HEAD nesnesinin tahsis edilmesi 2) BUFFER_HEAD nesnesinin kullandığı bloğun tahsis edilmesi Tahsisat işlemlerinin hızlı yapılabilmesi için bloğu tahsis edilmiş olan fakat diğer bilgileri geçersiz olan BUFFER_HEAD nesneleri özel bağlı listelerde saklanır. Bu bağlı listelere boş blok listeleri (free block lists) denilmektedir. Her blok büyüklüğü için toplam NR_FREE_LIST (4) kadar boş blok listesi vardır. 6

7 DLIST_HEADER gs_freelist[nr_free_list]; gs_freelist[0] BH BH BH gs_freelist[1] BH BH BH BH BH BH gs_freelist[2] gs_freelist[3] BH BH BH Boş blok listelerindeki BUFFER_HEAD nesneleri ve onların blokları tahsis edilmiştir. Fakat BUFFER_HEAD nesnesinin ve onun tuttuğu bloğun içeriği boştur. Bir boş blok listesi elemanını oluşturabilmek için hem bir BUFFER_HEAD nesnesine hem de tampon (buffer) olarak kullanılacak bloğa gereksinim vardır. Boş bağlı listede eleman kalmadığında ona eleman doldurmak için fillfreelist fonksiyonu çağrılmaktadır. fillfreelist fonksiyonu o bağlı listeye Sayfa uzunluğu / Block uzunluğu kadar eleman ekler. Bu fonksiyon getblock içerisinden çağrılmaktadır. fillfreelist fonksiyonunun çağırma şeması şöyledir: fillfreelist AllocPage createbuffers getunusedbufferhead AllocObject additemfreelist fillfreelist fonksiyonu boş bağlı listeye eleman ekleyebilmek için BUFFER_HEAD nesnesi elde etmeye çalışır. BUFFER_HEAD nesneleri normal olarak dilimli tahsisat sisteminden alınmaktadır. Ancak dilimli tahsisat sistemine daha az başvurmak için kullanılmayan BUFFER_HEAD nesneleri kullanılmayan nesne listesi (unused list) denilen bir bağlı listede tıutulur. fillfreelist fonksiyonu BUFFER_HEAD nesnesini önce getunusedbufferhead fonksiyonu ile buradan almaya çalışır. Kullanılmayan nesne listesinde hiç BUFFER_HEAD nesnesi kalmamışsa nesne gerçekten AllocObject dilimli tahsisat fonksiyonuyla tahsis edilir. Her blok büyüklüğü için ayrı bir boş bağlı listenin kullanıldığını görüyorsunuz. Böylece bir blok gerektiğinde onun aranması daha hızlı yapılabilmetedir. 7

8 fillfreelist fonksiyonu bloklar için gerekli olan tampon RAM alanlarını doğrudan AllocPage fonksiyonunu çağırarak sayfa düzeyinde tahsis eder. getblock(...) Blok cache te var mı? Hayır fillfreelist(...) AllocPage(...) Boş bağlı listeden elemanı al ve cache e yerleştir Evet Bloğu cache ten al Kullanılmayan nesne listesinde BUFFER_HEAD var mı? Evet Hayır AllocObject(...) Sistemin blok okuması yapan ana fonksiyonu ReadBlock fonksiyonudur. ReadBlock önce getblock fonksiyonunu çağırarak cache e bakar. Eğer cache te blok bulunamazsa gerçek disk okuması için ReadWriteBlock fonksiyonunu kullanır. ReadWriteBlock fonksiyonu blok aygıt sürücüsünün teemel bir fonksiyonudur. Burada ele alınmayacaktır. ReadBlock fonksiyonunun çağırma şeması şöyledir: ReadBlock getblock ReadWriteBlock Disk cache sistemi hem okuma hem de yazma amaçlı kullanılmaktadır. Yani yazma işlemi sırasında da eğer blok cache te ise yazma cache e yapılmaktadır. Cache teki blokların tazelenmesi arka planda çalışan çekirdeğe ilişkin bir thread tarafından yapılacaktır. Disk cache sisteminde kullanılan son veri yapısı LRU listesidir. Bu liste cache teki blokların en az işlem görenlerini tespit etmek amacıyla kullanılır. Cache teki bir blok üzerinde işlem yapıldığında bu bloğa ilişkin BUFFER_HEAD nesnesi LRU listesinin en önüne alınır. Böylece listenin sonunda her zaman az kullanılanlar kalır. Disk cache sisteminden eleman çıkartılacağı zaman en az kullanılan bloklar cache ten atılmaktadır. Aşağı seviyeli disk cache sisteminde kullanılan veri yapıları isimleriyle şunlardır: 1. BUFFER_HEAD bağlı listelerinin başlangıç adreslerlerini tutan hash tablosu: PRIVATE DLIST_HEADER gs_hashtable[bufcache_hash_table_size]; 8

9 2. BUFFER_HEAD nesnelerinin tahsis edilmesinde kullanılan dilimli tahsisat sistemi: PRIVATE HCACHE gs_hbufheadcache; 3. Bloğu tahsis edilmiş BUFFER_HEAD nesnelerinden oluşan boş bağlı listeler: PRIVATEDLIST_HEADER gs_dlistfree[bufcache_nr_free_list]; 4. Kullanılmayan BUFFER_HEAD nesnelerinin saklı olduğu kullanılmayan nesne listesi: PRIVATE DEFINE_DLIST(gs_dlistUnused); 5. Cache teki ve kullanılmayan nesne listesindeki eleman sayılarını tutan değişkenler: PRIVATE int gs_ninusebufheads; PRIVATE int gs_nunusedbufheads; Aşağı seviyeli disk cache sistemindeki alt sistemlerin amaçları da aşağıda özetlenmiştir: Genel Disk Cache Sistemi: Diskte erişilen son blokları RAM de bir cache içerisinde saklayarak disk erişimini azaltır. Böylece sistemin hızlı çalışmasını sağlar. İşletim sisteminin hızı bakımından kritik öneme sahip bir sistemdir. Dilimli Tahsisat Sistemi: İşletim sisteminin tahsisat fonksiyonları yavaştır. Bu nedenle küçük nesneler için sistemin tahsisat fonksiyonlarını ikide bir çağırmak etkin bir yöntem değildir. Bunun yerine işletim sisteminin tahsisat fonksiyonları ile büyük dilimler tahsis edip sonra o dilimlerin içerisinden hızlı bir biçimde nesneleri verme yöntemi tercih edilir. Amaç işletim sisteminin yavaş çalışan tahsisat fonksiyonlarını daha az çağırmaktır. Hash Tablosu: Erişilmeye çalışılan bir bloğun disk cache sistemi içerisinde olup olmadığının hızlı bir biçimde tespit edilmesi için kullanılır. Eğer blok cache te varsa doğrudan alınır. Blok cache te yoksa aygıt okumasyla blok aygıttan alınarak hash tablosuna yerleştirilir. Boş Blok Listeleri: Cache ten çıkartılan bloklar hemen serbest bırakılmaz. Boş blok listelerine alınarak orada bekletilir. Böylece yeni bir disk bloğu için yeniden RAM alanı tahsis edilmemiş olur. Boş blok listelerinde bulunan bir RAM bloğu yeni disk bloğu için kullanılır. (Tabii cache ten çıkartılan her blok boş blok listesinde biriktirilmez bunun bir sayısı vardır. Yani boş blok listesinde maksimum sayı kadar blok zaten varsa yeni bloklar listeye yazılmadan doğrudan sisteme iade edilir) Kullanılmayan Nesne Listesi: Bu liste BUFFER_HEAD nesneleri için cache olarak kullanılır. Yani kullanılmayan BUFFER_HEAD nesneleri bu listeye alınır. Böylece dilimli tahsisat sisteminden yapılan tahsisatlar azaltılmış olur. Bu listedeki nesnelerin blokları tahsis edilmemiştir. 9

10 4. YOL İFADESİNİN ÇÖZÜMLENMESİ VE DİZİN GİRİŞLERİNE İLİŞKİN CACHE SİSTEMİ Dosya işlemlerinin programcı bakımından başlangıç noktası dosyanın hangi dizinde ve hangi isimde olduğunu gösteren yol ifadesi (path name) dir. Dosya üzerinde işlem yapan pek çok sistem fonksiyonu (open, stat, mkdir, chdir, ) dosyayı tespit edebilmek için dosyanın yol ifadesini parametre olarak almaktadır. Yol ifadesini parametre olarak alan sistem fonksiyonları ilk iş olarak bu yol ifadesinden hareketle dosyanın temel bilgilerine ulaşmaya çalışırlar. Dosyanın temel bilgileri POSIX sistemlerinde i-node yapısıyla temsil edilmektedir. Verilen bir yol ifadesinden hareketle yol ifadesinin sonunda belirtilen dosyanın i-node bilgilerine erişilmesi sürecine yol ifadesinin çözümlenmesi (pathname resolution) denilmektedir. (Yol ifadesi terimi hem dosyalar için hem de dizinler için kullanılan bir kavramdır. Dizinler ve dosyalar arasında bunların ele alınma biçimleri bakımından bir fark bulunmamaktadır.) Yol ifadelerinin çözümlenmesi özyinelemeli (recursive) bir işlemdir. Çözümleme sırasında yol ifadesini oluşturan her bir yol bileşeni üzerinden teker teker geçilmek zorundadır. Çünkü her yol bileşenine ilişkin i- node bilgisi önceki bileşen ile belirtilen dizin içerisindedir. Örneğin, /home/osdev/test.c gibi bir yol ifadesinin çözümlenmesi sırasında önce kök dizinin i-node bilgilerinden home dizininin i- node bilgileri, home dizininin i-node bilgilerinden osdev dizininin i-node bilgileri, osdev dizininin i-node bilgilerinden de nihayet test.c dosyasının i-node bilgileri elde edilir. CSD dosya sisteminde yol bileşenlerine dizin girişi (directory entry) de denilmektedir. Dizin girişi bilgileri DIR_ENTRY yapısıyla temsil edilmektedir. typedef struct tagdir_entry *PDIR_ENTRY; typedef struct tagdir_entry { DWORD dwcount; DWORD dwflags; PINODE pinode; PDIR_ENTRY pparententry; DLIST_NODE dlinkhash; DLIST_NODE dlinklru; DLIST_NODE dlinkalias; DLIST_NODE dlinksibling; DLIST_HEADER dlistsubentry; PSUPER_BLOCK psb; PDIR_ENTRY_OPERATIONS pops; ENTRY_NAME entryname; char shortentryname[dentry_short_name_size]; } DIR_ENTRY; Bir dosyaya ilişkin dizin girişi bilgileri ve i-node bilgileri aslında disk üzerinde tutulan bilgilerdir. Yol ifadelerinin çözümlenmesi sırasında yol ifadelerini oluşturan dizin girişi ve i-node bilgileri diskten belleğe alınmak zorundadır. Yani yol ifadesinin çözümlenmesi işlemi aslında yol ifadesinin sonunda bulunan dosyaya ilişkin i-node bilgilerinin diskten belleğe çekilmesi işlemidir. Yol ifadelerinin çözümlenmesi daha etkin bir hale nasıl getirilebilir? Şüphesiz ilk düşünülecek yöntem bir cache sistemi kurmaktır. Böylece, bir dosyanın bilgilerine erişilirken geçilen yollara ilişkin tüm bileşenlerin dizin girişi bilgileri ve i-node bilgileri bir cache sisteminde tutulursa, ayn ı dosyalara erişildiği durumda işlemin hızlanacağı açıktır. Bu nedenle modern işletim sistemlerinde hem dizin girişleri hem de i-node elemaları için ayrı cache sistemleri kullanılmaktadır. CSD 10

11 işletim sisteminde de (tıpkı Linux sistemlerinde olduğu gibi) dizin girişleri ve i-node bilgileri bu nesnelere özgü cache sistemlerinde saklanır. CSD dosya sisteminin dizin girişlerinin cache sisteminde şu veri yapıları kullanılmaktadır: 1. DIR_ENTRY türünden bağlı listelerin başlangıç adreslerinin tutulduğu bir hash tablosu: PRIVATE DLIST_HEADER gs_direntryhashtable[dentry_hash_table_size]; 2. En az kullanılan ve kullanılmayan DIR_ENTRY nesnelerinin tespit edilmesini sağlayan bir LRU bağlı listesi: PRIVATE DEFINE_DLIST(gs_dlistLRU); 3. Bir i-node a ilişkin link bilgilerini tutan bir eş giriş bağlı listesi. Bu listenin ilk elemanı i-node nesnesi içerisindedir: DLIST_HEADER dlistdirentry; /* INODE yap ısının elemanıdır */ 4. Cache teki ve kullanılmayan nesne listesindeki eleman sayınısı tutan değişkenler: PRIVATE int gs_ninuseentries; PRIVATE int gs_nunusedentries; DIR_ENTRY nesnesinin kaç kişi tarafından kullanıldığını gösteren bir dwcount elemanı vardır. Sayacı sıfıra düşen DIR_ENTRY nesnesi hash tablosundan çıkarılmaz; yalnızca LRU listesinin sonuna alınır. LRU listesinde sayacı sıfıra düşmüş olan yani kullanılmayan kaç tane DIR_ENTRY nesnesi olduğu gs_nunusedentries değişkeninde tutulmaktadır. Kullanılan DIR_ENTRY nesneleri bağlı listede öne alınır. Böylece en çok kullanılanlar önde en az kullanılanlar ve hiç kullanılmayanlar arkada kalır. Bir i-node elemanına ilişkin birden fazla DIR_ENTRY nesnesi bulunabilir. Bunlar da başlangıcı i-node nesnesinde fakat linkleri DIR_ENTRY içerisinde olan eş giriş listelerinde saklanırlar. Dizin girişlerine ilişkin cache sistemi i-node cache sisteminin kontrol merkezidir. I-node cache sistemine elemanlar DIR_ENTRY işlemleriyle alınırlar. Yani ne zaman bir yol ifadesi kullanılsa bu yol ifadesindeki dizin girişleri dizin girişi cache sistemine, i-node elemanları ise i-node cache sistemine alınmaktadır Her dizin girişi için i-node cache sistemi içerisinde bir i-node nesnesi vardır. CSD dosya sisteminde yol ifadelerinin çözümlenmesi LookupDirEntry fonksiyonu tarafından yapılmaktadır: PDIR_ENTRY LookupDirEntry(PCSTR ppathname, PDIR_ENTRY pbaseentry, DWORD dwlookupflags) 11

12 Fonksiyon çözümlenecek yol ifadesini (ppathname), arama işleminin başlatılacağı dizini (pbaseentry) ve arama planını belirten bayrakları parametre olarak alır. Başarılıysa ilgili girişin DIR_ENTRY adresiyle, başarısızsa NULL adresiyle geri döner. Fonksiyon dizin girişini önce cache te arar. Eğer cache te bulamazsa aygıttan okuyarak onu cache e yerleştirir. Birkaç durum söz konusudur: 1. Eğer ppathname mutlak yol ifadesi ve pbaseentry de NULL ise pbaseentry process in kök dizinine çekilir. Böylece arama işlemi kök dizininden itibaren yapılır. 2. Eğer ppathname mutlak yol ifadesi ve pbaseentry de NULL ise pbaseentry ile belirtilen girişin sayacı bir artırılır ve pbaseentry process in root dizinine çekilir. Yani yukarıdaki durumda olduğu gibi arama yine kök dizininden itibaren yapılacaktır. 3. ppathname göreli yol ifadesi ve pbaseentry de NULL ise pbaseentry process in çalışma dizinine çekilir. Böylece arama işlemi çalışma dizininden itibaren yapılır. 4. ppathname göreli yol ifadesi ve pbaseentry de NULL değilse pbaseentry olduğu gibi bırakılır. Yani arama işlemi pbaseentry ile belirtilen dizinden itibaren yapılır. Fonksiyonun çağırma şeması şöyledir: LookupDirEntry checkpermission (permission) lookupreservedentries (lookup_dentry) GetDirEntryCache (cached_lookup) GetDevDirEntry (real_lookup) allocdirentry (d_alloc) checkpermission her yol bileşeninin erişim iznini denetler. lookupreservedentries yol bileşeninin. ve.. gibi ayrılmış (reserved) isimler olup olmadığına bakar. GetDirEntryCache bileşeni cahe te aramaktadır. Bu fonksiyon ya bileşeni cache te bulur ya da bulamaz. Bileşen cache te bulunamadıysa aygıttan çekilecektir. Bunun için GetDevDirEntry fonksiyonu kullanılır. GetDevDirEntry bir DIR_ENTRY nesnesi tahsis eder ve aygıttan okunan bilgileri DIR_ENTRY cache içerisinde saklar. GetDevDirEntry fonksiyonu aygıttan yol bileşeni için DIR_ENTRY bilgilerini alarak dizin girişi cache sistemine yerleştirir. Bu işlem sırasında aynı zamanda DIR_ENTRY nesnesine ilişkin i-node bilgileri de i-node cache sistemine çekilir. PDIR_ENTRY GetDevDirEntry(PDIR_ENTRY pparententry, PCENTRY_NAME pentryname) Fonksiyon üst dizinin DIR_ENTRY adresini ve elde edilecek dizin girişinin ismini alır. GetDevDirEntry fonksiyonunun çağırma şeması şöyledir: GetCacheDirEntry allocdirentry pparentinode->pops->pflookup putdirentrycache PutInodeCache 12

13 allocdirentry yeni bir DIR_ENTRY nesnesini dilimli tahsisat sistemini kullanarak yaratır ve nesnenin bazı elemanlarını doldurur. Aygıttan DIR_ENTRY ve INODE nesnelerinin okunması tamamen INODE yapısına ilişkin pflookup sanal fonksiyonu tarafından yapılmaktadır. pflookup fonksiyonunun parametrik yapısı şöyledir: PDIR_ENTRY (*pflookup)(pcinode, PCDIR_ENTRY); Fonksiyon üst dizinin INODE nesne adresini ve bu dizinde aranacak olan bileşenin DIR_DENTRY nesne adresini parametre olarak alır. pflookup sanal fonksiyonu elde ettiği DIR_ENTRY nesnesini PutDirEntryCache ile dizin girişlerine ilişkin cache sistemi içerisine, PutInodeCache ile de i-node cache içerisine yerleştirir. 5. I-NODE CACHE SİSTEMİ Dosyalar üzerinde işlem yapılmadan önce onlara ilişkin bilgiler INODE yapısı ile temsil edilerek belleğe çekilmektedir. Belleğe çekilen i-node bilgileri etkinliği artırmak amacıyla bir cache sistemi içerisinde saklanır. Bu cache sistemine i-node cache denilmektedir. I-node cache sistemi aşağıdaki veri yapılarından oluşur: 1. INODE elemanlarını içeren bağlı listelerin başlangıç adreslerini tutan bir hash tablosu: PRIVATE DLIST_HEADER gs_inodehashtable[inode_hash_table_size]; 2. INODE nesnelerinin tahsis edildiği bir dilimli tahsisat sistemi: PRIVATE HCACHE gs_hinodecache; 3. En az kullanılan ve kullanılmayan i-node elemanlarının tutulduğu bir LRU listesi: PRIVATE DEFINE_DLIST(gs_dlistLRU); 4. Cache teki ve kullanılmayan nesne listesindeki eleman sayısını tutan değişkenler: PRIVATE int gs_ninuseinodes; PRIVATE int gs_nunusedinodes; I-node cache içerisinde getinodecache fonksiyonu ile arama yapılır. Bu fonksiyon hash fonksiyonuyla elde edilen indeksteki bağlı listeyi dolaşarak istenen i-node elemanının cache içerisinde olup olmadığına bakar. Yeni bir i-node nesnesine gereksinim duyulduğunda bu nesne allocinode fonksiyonu tarafından tahsis edilmektedir. allocinode nesneyi önce LRU listesinin sonundaki kullanılmayan elemanlardan elde etmeye çalışır. Eğer bunu başaramazsa tahsisat dilimli tahsisat sistemine ilişkin AllocObject fonksiyonu tarafından yapılmaktadır: 13

14 AlloInode GetUnuesInode AllocObject I-node cache sistemine eleman PutInodeCache fonksiyonuyla eklenmektedir. 14

SANAL DOSYA SİSTEMİ. Fatih YILDIRIM

SANAL DOSYA SİSTEMİ. Fatih YILDIRIM SANAL DOSYA SİSTEMİ Fatih YILDIRIM [V : 1] Özet: Bu makalede Sanal Dosya Sistemi nin genel mimarisi incelenmektedir. Sanal Dosya Sistemi nin genel fikirleri verildikten sonra Linux taki mimarisi kullanılan

Detaylı

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2) BLM-112 PROGRAMLAMA DİLLERİ II Ders-3 İşaretçiler (Pointer) (Kısım-2) Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dinamik Bellek Yönetimi Bir program çalıştırıldığında

Detaylı

HEAP SİSTEMİ. Oğuz Karan

HEAP SİSTEMİ. Oğuz Karan HEAP SİSTEMİ Oğuz Karan Özet: Bu makalede heap sistemi hakkında bilgiler verilmiş ve çeşitli sistemlerde heap sisteminin aşağı seviyeli çalışması anlatılmıştır. Ayrıca son bölümde CSD işletim sisteminin

Detaylı

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers) 1 BLM 112- Programlama Dilleri II Hafta 5 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan Hiç hata yapmayan insan, hiçbir şey yapmayan insandır. Ve hayatta en büyük hata, kendini hatasız sanmaktır. ~Y.

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur.

Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizinin altında bulunur. Dosya Sistemi ve Çalışma Mantığı Dosya Sistemi Disk üzerindeki dosyaların düzenlenmesini ve bir işletim sisteminde dosyaların izlerinin bulunmasını sağlayan yapıya Dosya Sistemi (File System) denir. Linux

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonu Referans ile Çağırma (Call by Reference) Bir fonksiyona gönderilen parametrenin normalde değeri değişmez. Fonksiyon içinde yapılan işlemlerin hiçbiri argüman değişkeni

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

DOSYA ORGANİZASYONU. Çarpışma çözümleme yöntemleri ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DOSYA ORGANİZASYONU ÖZLEM AYDIN TRAKYA ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Çarpışma çözümleme yöntemleri Sunum planı Bağlantıları kullanarak çarpışmaların çözümlenmesi. Coalesced Hashing (Birleştirilmiş

Detaylı

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Dosya İşlemleri (Rastgele Erişim)

Detaylı

Temel Linux Eğitimi 1., 2. ve 3. Bölümler

Temel Linux Eğitimi 1., 2. ve 3. Bölümler Süha TUNA Bilişim Enstitüsü UHeM Yaz Çalıştayı - 11.06.2012 İçerik 1. Linux, Kavramlar ve Dizin Yapısı 2. Temel Linux Komutları 3. Sunucuya Uzaktan Bağlanma 1. Linux, Kavramlar ve Dizin Yapısı Linux Linux,

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı Ders 7 LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ 1 LINUX Yapısı LINUX işletim sisteminin diğer işletim sistemleri gibi kendine özgü bir yapısı vardır. LINUX yapısı ve bileşenleri aşağıdaki

Detaylı

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ

VERİ YAPILARI LİSTELER. Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ VERİ YAPILARI LİSTELER Yrd. Doç. Dr. Murat GÖK Bilgisayar Mühendisliği Bölümü YALOVA ÜNİVERSİTESİ Bağlı Listeler Aynı kümeye ait veri parçalarının birbirlerine bellek üzerinde, sanal olarak bağlanmasıyla

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 VERİ YAPILARI Sunu Planı Kendini-gösteren Yapılar Dinamik Bellek Tahsisi Bağlı Listeler Yığınlar Kuyruklar Ağaçlar 1 Veri Yapıları Şu ana kadar, diziler, matrisler ve yapılar

Detaylı

Master boot record (MBR)

Master boot record (MBR) DİSK ve FAT Cluster büyüklükleri fat yapısına ve disk büyüklüğüne bağlıdır. Aşağıdaki tabloda FAT16 dosya sistemi için disk size larına göre cluster büyüklükleri verilmiştir. Disk size (partition büyüklüğü)

Detaylı

Veri Yapıları Laboratuvarı

Veri Yapıları Laboratuvarı 2013 2014 Veri Yapıları Laboratuvarı Ders Sorumlusu: Yrd. Doç. Dr. Hakan KUTUCU Lab. Sorumlusu: Arş. Gör. Caner ÖZCAN İÇİNDEKİLER Uygulama 1: Diziler ve İşaretçiler, Dinamik Bellek Ayırma... 4 1.1. Amaç

Detaylı

Dosyaların Özellikleri (Attribute) Dosya İşlemleri. İki Seviyeli Katalog Sistemleri. Tek Seviyeli Katalog Sistemleri. Hiyerarşik Katalog Sistemleri

Dosyaların Özellikleri (Attribute) Dosya İşlemleri. İki Seviyeli Katalog Sistemleri. Tek Seviyeli Katalog Sistemleri. Hiyerarşik Katalog Sistemleri Bilgilerin Uzun Vadeli Saklanması 8 DOSYA SİSTEMS STEMİ saklanacak veriler çok fazla olabilir veriler proses sonlandıktan sonra da kaybolmamalı bilgiye prosesler ortak olarak ulaşabilmeli 424 Dosya Sistemi

Detaylı

Windows Eski Sürümleri Bellek Yapısı

Windows Eski Sürümleri Bellek Yapısı Windows Eski Sürümleri Bellek Yapısı -Intel 8086/8088 mimarili işlemciler//640k RAM -Segment Modeli(Segmented Model) -Her segment 64K uzunluğunda -Intel 80286,640K dan daha fazla RAM i destekledi -Windows

Detaylı

LİNUX. Dosyalar ve dizinler

LİNUX. Dosyalar ve dizinler LİNUX Dosyalar ve dizinler Dosya sistemi Linux işletim sisteminde de dosya ve dizinler diğer Unix türevi işletim sistemlerinde olduğu gibi hiyerarşik yapıya sahiptir. En üst düzeyde olan kök dizini olarak

Detaylı

DİSK DEPOLAMA ALANLARI

DİSK DEPOLAMA ALANLARI DİSK DEPOLAMA ALANLARI 1. Giriş İşlemci hızı ve hafıza kapasitesinin disk hızından çok daha hızlı bir gelişim içinde bulunduğu göz önüne alınırsa, disk kullanımında teorik ilgi ve uygulamanın önemliliği

Detaylı

Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir.

Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir. 2 Dosya Nedir? Dosya, disk üzerinde depolanmış verilerin bütününe verilen isimdir. İşletim sistemi genel olarak iki çeşit dosya içerir. Birincisi, bir sistem görevi yerine getirirken yada bir uygulama

Detaylı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

Detaylı

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması Ağaç, verilerin birbirine sanki bir ağaç yapısı oluşturuyormuş gibi sanal olarak bağlanmasıyla elde edilen hiyararşik yapıya sahip

Detaylı

BİLGİ İŞLEM DERS 1. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ

BİLGİ İŞLEM DERS 1. Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ MSGSU FİZİK BÖLÜMÜ BİLGİ İŞLEM MSGSU FİZİK BÖLÜMÜ DERS 1 Yrd Doç Dr. Ferhat ÖZOK MSGSU FİZİK BÖLÜMÜ İŞLETİM SİSTEMİ OS(Operating System) İşletim sistemi temel olarak, belli girdileri alıp derleyen ve sonuçları üreten program

Detaylı

Yeni G/Ç (new I/O) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 10 1

Yeni G/Ç (new I/O) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 10 1 Yeni G/Ç (new I/O) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 10 1 YENİ G/Ç (NEW I/O) Yeni G/Ç (nio) paketi içerisindeki sınıfları kullanarak dosya işlemleri (okuma/yazma) ve ağ üzerinden

Detaylı

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

Bilgilerin Uzun Vadeli Saklanması

Bilgilerin Uzun Vadeli Saklanması 8 DOSYA SİSTEMS STEMİ Bilgilerin Uzun Vadeli Saklanması saklanacak veriler çok fazla olabilir veriler proses sonlandıktan sonra da kaybolmamalı bilgiye prosesler ortak olarak ulaşabilmeli 424 Dosya Sistemi

Detaylı

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı C++ Dersi: Nesne Tabanlı Programlama 2. Baskı ³ Bölüm 19: Standart Şablon Kütüphanesi (vector) İçerik 19.1 Standart Şablon Kütüphanesi (STL) 19.2 vector SınıK 19.3 vectortanımı 19.4 vector Elemanlarına

Detaylı

Dosya Saklama Ortamları (Sabit Diskler) Kütük Organizasyonu 1

Dosya Saklama Ortamları (Sabit Diskler) Kütük Organizasyonu 1 Dosya Saklama Ortamları (Sabit Diskler) Kütük Organizasyonu 1 Depolama Aygıtları 1- Birincil Depolama Aygıtları Hızlı Erişim Süresine Sahiptirler Fiyatı daha fazladır. Daha küçük kapasiye sahiptir 2. İkincil

Detaylı

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler: Veri Yapıları Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz İçindekiler: Giriş Temel Veri Yapıları Tanımlamalı Veri Yapıları Veri Modeli ve Türleri

Detaylı

Linux Dosya ve Dizin Yapısı

Linux Dosya ve Dizin Yapısı Linux Dosya ve Dizin Yapısı Dosya ve Dizin Sistemi Linux te kök dizin (/) sembolü ile ifade edilir. Windowsta kök dizin C: ise Linux ta / sembolüdür. 1 Kök dizini (/) İşletim Sisteminin çalışabilmesi için

Detaylı

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

İşletim Sistemleri. Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü İşletim Sistemleri Hazırlayan: M. Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Bu dersin sunumları, Abraham Silberschatz, Greg Gagne, Peter B. Galvin, Operating System Concepts 9/e, Wiley,

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş İşletim Sistemleri ve Donanım İşletim Sistemlerine Giriş/ Ders01 1 İşletim Sistemi? Yazılım olmadan bir bilgisayar METAL yığınıdır. Yazılım bilgiyi saklayabilir, işleyebilir

Detaylı

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA BLM-112 PROGRAMLAMA DİLLERİ II Ders-8 Dosya İşlemleri-1 Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Giriş Değişken ve dizilerde tutulan değerler programın çalışması

Detaylı

Fiziksel Veritabanı Modelleme

Fiziksel Veritabanı Modelleme Fiziksel Veritabanı Modelleme Fiziksel Veritabanı VTYS, verileri yan bellekte tutar. Bu yüzden VTYS lerde sıklıkla READ (yan bellekten okuma) ve WRITE (yan belleğe yazma) işlemi meydana gelir. READ ve

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

Konular. Hafta 5 Veri Tipleri (Devam) BLG339 PROGRAMLAMA DİLLERİ KAVRAMI BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 5 Veri Tipleri (Devam) Yrd. Doç. Dr. Melike Şah Direkoğlu Konular Dizi Tipleri Kayıt Tipleri Birleşik Tipler Küme Tipleri İşaretçi ve Referans Tipleri Alındığı

Detaylı

BTP 205 İŞLETİM SİSTEMLERİ

BTP 205 İŞLETİM SİSTEMLERİ BTP 205 İŞLETİM SİSTEMLERİ DOSYA SİSTEMİ Dr. Önder EYECİOĞLU 2012 DOSYA SİSTEMİ 1. Dosya Kavramı: 1. Dosya Özellikleri 2. Dosya Türleri 3. Dosya Operasyonları 4. Dosya Yapısı 5. Dahili Dosya Yapısı 2.

Detaylı

Proses. Prosesler 2. İşletim Sistemleri

Proses. Prosesler 2. İşletim Sistemleri 2 PROSESLER Proses Bir işlevi gerçeklemek üzere ardışıl bir program parçasının yürütülmesiyle ortaya çıkan işlemler dizisi Programın koşmakta olan hali Aynı programa ilişkinbirdenfazlaprosesolabilir. Görev

Detaylı

Temel Veri Yapıları. (Veri Yapıları 1. Bölüm)

Temel Veri Yapıları. (Veri Yapıları 1. Bölüm) Temel Veri Yapıları (Veri Yapıları 1. Bölüm) Kaan Aslan 10 Haziran 2013 1. Giriş Programlarımızda tanımladığımız nesneler ya tek parçadan ya da birden fazla parçadan oluşurlar. Tek parçadan oluşan nesnelerin

Detaylı

William Stallings Computer Organization and Architecture 9 th Edition

William Stallings Computer Organization and Architecture 9 th Edition William Stallings Computer Organization and Architecture 9 th Edition Bölüm 4 Cache Bellek Bilgisayar Hafıza Sisteminin Ana Karakteristikleri Table 4.1 Key Characteristics of Computer Memory Systems Bilgisayar

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

API(Application Programming Interface) Fonksiyonları:

API(Application Programming Interface) Fonksiyonları: API(Application Programming Interface) Fonksiyonları: Bir işletim sisteminin çalışırken kendisinin kullandığı, programcının da dışarıdan çağırabileceği fonksiyonları vardır. Bunlara sistem fonksiyonları

Detaylı

Bölüm 10. Altprogramların gerçeklenmesi ISBN 0-0-321-49362-1

Bölüm 10. Altprogramların gerçeklenmesi ISBN 0-0-321-49362-1 Bölüm 10 Altprogramların gerçeklenmesi ISBN 0-0-321-49362-1 10. Bölüm konuları Çağırma / geri dönme semantiği Yığıt-dinamik yerel değişkeni olan altprogramların gerçeklenmesi İçiçe altprogramlar Statik

Detaylı

PROSESLER. Proses. Proses

PROSESLER. Proses. Proses Proses 2 PROSESLER Bir işlevi gerçeklemek üzere ardışıl bir program parçasının yürütülmesiyle ortaya çıkan işlemler dizisi Programın koşmakta olan hali Aynı programa ilişkin birden fazla proses olabilir.

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN malloc Malloc fonksiyonu bir değişken için hafızadan bir blok yer ayrılması için kullanılır. Eğer hafızada yeterli alan yoksa fonksiyon NULL döndürür. int *ptr; ptr = (int *)

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Yapılar ve Birlikler enum Deyimi

Detaylı

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları Veri yapısı, bilginin anlamlı sırada bellekte veya disk, çubuk bellek gibi saklama birimlerinde tutulması veya saklanması şeklini gösterir. Bilgisayar

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 7 Liste ve Bağlantılı Liste Liste birbiriyle ilişkili verileri içeren bir kümedir, programlama açısından liste en basitinden bir dizi üzerinde tutulur. Dizi elemanları

Detaylı

VERİ YAPILARI VE PROGRAMLAMA

VERİ YAPILARI VE PROGRAMLAMA VERİ YAPILARI VE PROGRAMLAMA (BIP116) Yazar: Doç.Dr.İ.Hakkı.Cedimoğlu SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.

Detaylı

Linux ta komutlar hakkında yardım almak için aşağıdaki komutlar kullanılır : - man - info - whatis - apropos

Linux ta komutlar hakkında yardım almak için aşağıdaki komutlar kullanılır : - man - info - whatis - apropos Yardım Komutları Linux ta komutlar hakkında yardım almak için aşağıdaki komutlar kullanılır : - man - info - whatis - apropos Yardım Komutları man komut Parametre olarak aldığı komut hakkında bilgiyi ekranda

Detaylı

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)... Array (Diziler) Array Aynı tipten çok sayıda değişken topluluğudur. Birden fazla aynı tipteki değerle işlem yapmayı kolaylaştırır. X Y Score1 Score2 40 56 Grade 40 56 80 (0) (1) (2)... (13) Array tanımlama:

Detaylı

CSD İŞLETİM SİSTEMİNDE SİSTEM FONKSİYONLARININ ÇAĞIRILMASI

CSD İŞLETİM SİSTEMİNDE SİSTEM FONKSİYONLARININ ÇAĞIRILMASI CSD İŞLETİM SİSTEMİNDE SİSTEM FONKSİYONLARININ ÇAĞIRILMASI 07.07.2003 Burak DEMİRKOL Atılım BOY [v 1.0] Özet : Bu makalede CSD İşletim sisteminin sistem fonksiyonlarının user mod dan (ring 3) kernel mod

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN GİRİŞ Değişken ve dizilerde tutulan değerler programın çalışması esnasında değerlerini korurlarken programın çalışması sona erdiğinde veri kaybolur. Dosyalar verinin kalıcı olarak

Detaylı

sayi=3 harf=a reelsayi=8.72 Bellek durumu 5. İşaretç iler (pointers)

sayi=3 harf=a reelsayi=8.72 Bellek durumu 5. İşaretç iler (pointers) 5. İşaretç iler (pointers) C dilinin öyle bir özelliği vardır ki, programlama dilleri arasında kendisini diğerlerinden ayıran bir fark olarak sunulur: işaretçiler. Aslında, bazı diğer dillerde de direkt

Detaylı

BLG 312 Bilgisayar İşletim Sistemleri 2006 BLG 312. Bilgilerin Uzun Vadeli Saklanması. Dosya Sistemi Görevleri. Dosya Sistemi Özellikleri

BLG 312 Bilgisayar İşletim Sistemleri 2006 BLG 312. Bilgilerin Uzun Vadeli Saklanması. Dosya Sistemi Görevleri. Dosya Sistemi Özellikleri Bilgilerin Uzun Vadeli Saklanması Bilgisayar İşletim Sistemleri BLG 312 Dosya Sistemi saklanacak veriler çok fazla olabilir veriler proses sonlandıktan sonra da kaybolmamalı bilgiye prosesler ortak olarak

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 DOSYALAMA Sunu Planı Veri Hiyerarşisi Dosyalar ve Akımlar(streams) Sıralı Erişim (Sequential Access) dosyalarının oluşturulması Sıralı Erişim Dosyalarından Veri Okuma Rasgele

Detaylı

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1

Dosyalarda Farklı Yaklaşımlar. Kütük Organizasyonu 1 Dosyalarda Farklı Yaklaşımlar Kütük Organizasyonu 1 Giriş Şimdiye kadar öğrendiğimiz temel dosyalama komutlarıyla (fopen,flclose, fputs vb..) dosya oluşturabilmekte, kayıt ekleyebilmekte ve her bir kaydın

Detaylı

Harddisk Disk Sabit diskler üstüste yerleştirilmiş plakalardan (platter) oluşmaktadır. Plakaların her iki yüzeyinde okuma/yazma için okuma yazma kafaları (read-write heads) monte edilmiştir. R/W kafaları

Detaylı

Linux altında komut satırında...

Linux altında komut satırında... -Kabuk (Shell) Unix ve benzeri işletim sistemlerinde kullanıcının komut yazmasını sağlayan, bu komutları yorumlayarak gerekli işlemleri yapan programlara kabuk (shell) adı verilir. Linux da bir kullanıcı

Detaylı

İşletim Sistemleri (Operating Systems)

İşletim Sistemleri (Operating Systems) İşletim Sistemleri (Operating Systems) 1 İşletim Sistemleri (Operating Systems) Genel bilgiler Ders kitabı: Tanenbaum & Bo, Modern Operating Systems:4th ed., Prentice-Hall, Inc. 2013 Operating System Concepts,

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders08/ 1 Yapısal Veri Tipleri C dili genişletilebilen bir dildir. Var olan veri tipleri kullanılarak yeni veri tipleri tanımlanıp kullanılabilir. Programlama

Detaylı

CSD-OS İşletim Sistemi Projesi - Fonksiyon Açıklama Standardı

CSD-OS İşletim Sistemi Projesi - Fonksiyon Açıklama Standardı CSD-OS İşletim Sistemi Projesi - Fonksiyon Açıklama Standardı C ve Sistem Programcıları Derneği Kasım 2002 İçindekiler: 1 -GIRIŞ 3 1.1.NEDEN STANDARTLARA IHTIYACIMIZ VAR? 3 2 -İMLA VE YAZIM 3 2.1.TÜRKÇE

Detaylı

ALGORİTMA VE PROGRAMLAMA I

ALGORİTMA VE PROGRAMLAMA I ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi Dizilere Başlangıç Değeri Verme Dizilerde Arama

Detaylı

Malloc () ve Free() fonksiyonları

Malloc () ve Free() fonksiyonları Malloc () ve Free() fonksiyonları Malloc() sınıfı büyük bir buffer (yığın) bellek tutar. Kullanıcı ne kadar yer tahsisinde bulunursa malloc() o kadar yer açmaktadır sistemde.eger buffer bellekte kullanıcının

Detaylı

Pointers (İşaretçiler)

Pointers (İşaretçiler) Pointers (İşaretçiler) Pointers (İşaretçiler) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ile ilişkilidir. Donanımsal açıdan

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA BLM-111 PROGRAMLAMA DİLLERİ I Ders-12 Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı

Detaylı

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir. Kesmeler çağırılma kaynaklarına göre 3 kısma ayrılırlar: Yazılım kesmeleri Donanım

Detaylı

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta -

Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri hafta - BİLECİK ŞEYH EDEBALİ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Struct VE GÖSTERİCİLER FONKSİYONLARDA STRUCT KULLANIMI Programlama dilleri 1-14. hafta - Araş. Gör. Nesibe YALÇIN

Detaylı

HESAP MAKİNASI YAPIMI

HESAP MAKİNASI YAPIMI HESAP MAKİNASI YAPIMI 1..Aşağıdakine benzer görünüm ve butonları hazırlayın. 2. 24. Butonun içerisine aşağıdaki kodları yazın. 3. Yeni bir layer ekleyip Frame1 F9 na aşağıdaki kodları ekleyelim. 4. Butonlardan

Detaylı

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net

Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Bilgisayar Programlama Ders 9 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Dizileri Fonksiyonlara Dizileri Fonksiyonlara Bir dizi argümanını fonksiyon içinde bir değer olarak kullanabilmek

Detaylı

Windows'da çalışırken pek çok durumda bir işe başlamadan önce işletim sisteminin o işe ilişkin bilgileri depolayacağı bir alan yaratması gerekir.

Windows'da çalışırken pek çok durumda bir işe başlamadan önce işletim sisteminin o işe ilişkin bilgileri depolayacağı bir alan yaratması gerekir. Handel Kavramı: Windows'da çalışırken pek çok durumda bir işe başlamadan önce işletim sisteminin o işe ilişkin bilgileri depolayacağı bir alan yaratması gerekir. Alanın yaratıldığı bölge Windows'un kendi

Detaylı

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Kas Salı, Çarşamba Öğr. Gör. Murat KEÇECİOĞLU

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı Kas Salı, Çarşamba Öğr. Gör. Murat KEÇECİOĞLU Elbistan Meslek Yüksek Okulu 2012 2013 GÜZ Yarıyılı 13-14 Kas. 2012 Salı, Çarşamba Öğr. Gör. Murat KEÇECİOĞLU Address Resulation Protokol Adres Çözümleme Protokolüdür. IP Adresi Donanım Adresi (MAC) Address

Detaylı

İşletim Sistemi. BTEP205 - İşletim Sistemleri

İşletim Sistemi. BTEP205 - İşletim Sistemleri İşletim Sistemi 2 İşletim sistemi (Operating System-OS), bilgisayar kullanıcısı ile bilgisayarı oluşturan donanım arasındaki iletişimi sağlayan ve uygulama programlarını çalıştırmaktan sorumlu olan sistem

Detaylı

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition

Bölüm 8: Ana Bellek. Operating System Concepts with Java 8 th Edition Bölüm 8: Ana Bellek 8.1 Silberschatz, Galvin and Gagne 2009 Bölüm 8: Ana Bellek Arka Plan Bilgisi Yer Değiştirme (Swapping) Bitişik Bellek Yerleşimi (Contiguous Memory Allocation) Sayfalama (Paging) Sayfa

Detaylı

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

ELN1002 BİLGİSAYAR PROGRAMLAMA 2 ELN1002 BİLGİSAYAR PROGRAMLAMA 2 DOSYALAMA Sunu Planı Rasgele Erişim (Random Access) Dosyaları Rasgele Erişim Dosyalarına Veri Yazma Rasgele Erişim Dosyalarından Veri Okuma 1 Sıralı Erişim Dosyası Bir

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş Girdi/Çıktı (I/O) İşletim Sistemlerine Giriş - Ders11 1 Girdi/Çıktı (I/O) İşletim sisteminin temel fonksiyonlarından biride bilgisayardaki tüm I/O aygıtlarını kontrol etmesidir.

Detaylı

Kütük Yönetimi. Kütük Yönetim Sisteminin İşlevleri. Hacettepe Üniversitesi Kavramsal Kütük Modeli.

Kütük Yönetimi. Kütük Yönetim Sisteminin İşlevleri. Hacettepe Üniversitesi Kavramsal Kütük Modeli. Kütük Yönetim Sisteminin İşlevleri Kütük Yönetimi Ahmet Burak Can Hacettepe Üniversitesi abc@cs.hacettepe.edu.tr Mantıksal kütük yapılarından fiziksel yapılara geçişin sağlanması Kütük başına göreli mantıksal

Detaylı

İşletim Sistemleri. Dr. Binnur Kurt binnur.kurt@gmail.com. Omega Eğitim ve Danışmanlık http://www.omegaegitim.com. İşletim Sistemleri

İşletim Sistemleri. Dr. Binnur Kurt binnur.kurt@gmail.com. Omega Eğitim ve Danışmanlık http://www.omegaegitim.com. İşletim Sistemleri İşletim Sistemleri Dr. Binnur Kurt binnur.kurt@gmail.com Omega Eğitim ve Danışmanlık http://www.omegaegitim.com 1 S a y f a İÇİNDEKİLER 1. İşletim Sistemi 2. Kabuk 3. Prosesler 4. İplikler 5. İplikler

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş Bellek Yönetimi (Memory Management) İşletim Sistemlerine Giriş - Ders10_02 1 Yazılım ile LRU Benzetimi Donanım kullanmadan LRU algoritmasının yazılım ile gerçekleştirimidir.

Detaylı

Multicore/Multithread Programlama

Multicore/Multithread Programlama Multicore/Multithread Programlama Onur Tolga Şehitoğlu Bilgisayar Mühendisliği 7 Şubat 2008 Başlıklar 1 Gereksinimi Dal ile Süreç Çok İşlemci ve Dal Modelleri Neden Çoklu Dal Programlama? 2 Çok İşlemci/Çok

Detaylı

Genel Programlama II

Genel Programlama II Genel Programlama II 22.03.2011 1 Yapılar ( Structures ) Yapılar ( structures ); tam sayı, karakter vb. veri tiplerini gruplayıp, tek bir çatı altında toplar. Bu gruplandırma içinde aynı ya da farklı veri

Detaylı

DOSYA NEDİR? Verilerin HDD de saklanması. Verilerin HDD de saklanması DOSYA SİSTEMİ NEDİR?

DOSYA NEDİR? Verilerin HDD de saklanması. Verilerin HDD de saklanması DOSYA SİSTEMİ NEDİR? DOSYA NEDİR? Dosya;disk üzerinde depolanmış verilerin bütününe verilen isimlendirmedir. İşletim sistemi tipik olarak iki çeşit dosya içerir. Birincisi; bir sistem görevi yerine getirirken yada bir uygulama

Detaylı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş Süreçler ve İş Parçacıkları(Thread) İşletim Sistemlerine Giriş - Ders03 1 Süreç -Tüm modern bilgisayarlarda bir çok iş aynı anda yapılabilir. *kullanıcı programları çalışır *disk

Detaylı

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Bellek ve Adresleme Dinamik Bellek

Detaylı

Kütük Yönetimi. Kütük Yönetim Sisteminin İşlevleri. Hacettepe Üniversitesi abc@cs.hacettepe.edu.tr. Kavramsal Kütük Modeli.

Kütük Yönetimi. Kütük Yönetim Sisteminin İşlevleri. Hacettepe Üniversitesi abc@cs.hacettepe.edu.tr. Kavramsal Kütük Modeli. Kütük Yönetim Sisteminin İşlevleri Kütük Yönetimi Ahmet Burak Can Hacettepe Üniversitesi abc@cs.hacettepe.edu.tr Mantıksal kütük yapılarından fiziksel yapılara geçişin sağlanması Kütük başına göreli mantıksal

Detaylı

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312 Prosesler Bilgisayar İşletim Sistemleri BLG 312 Prosesler ve Proses Yönetimi bilgisayar sisteminde birden fazla iş aynı anda etkin olabilir kullanıcı programı diskten okuma işlemi yazıcıdan çıkış alma

Detaylı

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI

YZM VERİ YAPILARI DERS#9: HASH FONKSİYONLARI YZM 2116- VERİ YAPILARI DERS#9: HASH FONKSİYONLARI İÇERİK Bu bölümde, Giriş Hash Tabloları Hash Fonksiyonu Çakışma (Collision) Ayrık Zincirleme Çözümü Linear Probing Çözümü Quadratic Probing Çözümü konusuna

Detaylı

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance public class Test { // çalışır İnsan insan = new Çiçekçi();

Detaylı

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler C Programlama Dr. Serkan DİŞLİTAŞ 3.1. Sabitler Sabitler, tanımlanmasıyla birlikte program içerisinde

Detaylı

8. İŞARETCİLER (POINTERS)

8. İŞARETCİLER (POINTERS) 8. İŞARETCİLER (POINTERS) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ilişkilidir. Donanımsal açıdan adres bellekte yer gösteren

Detaylı

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015 BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015 Ders- 8 Dosya Sistemleri ve Dizinler Yrd. Doç. Dr. Burcu Can Buğlalılar Bilgisayar Mühendisliği Bölümü Bilgisayar Katmanları İçerik Dosya, dosya sistemi ve dizin

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Bellek ve Adresleme İşaretçi Kavramı

Detaylı

Jval tipi. Genel veri yapılarını kullanacağımız zaman Jval den faydalanırız.önemli olanlar aşağıda mevcuttur:

Jval tipi. Genel veri yapılarını kullanacağımız zaman Jval den faydalanırız.önemli olanlar aşağıda mevcuttur: Jval tipi /blugreen/homes/plank/cs360/include/jval.h içerisinde bir Jval tipi tanımlanmıştır.büyük bir union yapısı aşağıdadır: typedef union { int i; long l; double d; void *v; char *s; char c; unsigned

Detaylı