Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Bölüm 9: Dosya Sistemi. 10.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Dosya Kavramı Birleşik mantıksal adres aralığı Dosya: Dosya,

Benzer bir sunumlar


... konulu sunumlar: "Bölüm 9: Dosya Sistemi. 10.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Dosya Kavramı Birleşik mantıksal adres aralığı Dosya: Dosya,"— Sunum transkripti:

1 Bölüm 9: Dosya Sistemi

2 10.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Dosya Kavramı Birleşik mantıksal adres aralığı Dosya: Dosya, bilgilerin ve programların saklandığı yerdir. Dizin: Dizin, bilgiler ve programlarla birlikte dosyalarında saklanabildiği yerlerdir. Dosya yönetimi işletim sisteminin sunduğu temel hizmetlerden biridir. Dosyalar, disk, disket, teyp gibi, çeşitli ikincil saklama alanlarında saklanır. Tüm bu saklama aygıtlarının kendine özel karakteristik yapısı vardır. İşletim sistemi, bu yapıya uygun dosya yönetimini gerekli aygıt üzerinde gerçekleştirir.

3 10.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Dosya Nitelikleri-File Attributes İsim- Name – only information kept in human-readable form Tanımlayıcı- Identifier – unique tag (number) identifies file within file system Tür -Type – needed for systems that support different types Konum-Location – pointer to file location on device Büyüklük-Size – current file size Koruma-Protection – controls who can do reading, writing, executing Tarih, Saat ve Kullanıcı Tamını- Time, date, and user identification – data for protection, security, and usage monitoring Information about files are kept in the directory structure, which is maintained on the disk

4 10.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Dosya İşlemleri-File Operations Dosya İşlemleri İşletim sisteminin, dosyayla ilgili sunduğu hizmetler : 1- Dosya yaratılması Bir dosyanın yaratılması için iki adım vardır. Birincisi dosyanın disk üzerinde yerleştirilebileceği boş bellek alanı bulunur. İkinci olarakta dosyanın yerleşeceği dizin belirtilerek dosyaya, bir dosya adı verilir. 2- Dosyanın yazılması :Dosyanın, disk üzerindeki bir dizin içine yazılabilmesi için, işletim sistemi dosyanın yerleştirileceği dizini bulur. Her dizin, içine yazılan dosya bilgilerini tutan bir yazma işaretleyicisine sahiptir. Bu işaretleyiciye göre dosyanın yerleşeceği adres bloğu bulunur ve dosya bu yere yazılır.

5 10.5 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Dosya İşlemleri-File Operations 3- Dosyanın okunması Dosyanın disk üzerinde okunması için, işletim sistemi dosyanın yerleştiği dizini bulur. Her dizin, bir okuma işaretleyicisine sahiptir. Bu işaretleyici bilgisine göre dosya dizin üzerinden okunur. Bir çok işletim sisteminde, dizinlerde bulunan okuma ve yazma işaretleyicileri yerine “aktif dosya pozisyon” işaretleyicisi bulunur. Bu işaretleyici her iki işaretleyicinin yaptığı işi tek başına yapar. 4- Dosyanın yerinin yeniden düzenlenmesi Yeri yeniden düzenlenecek olan dosyaya ilişkin dizin bulunur. Bu dizinin aktif dosya işaretleyicisinde, belirtilen dosya ile konum bilgisi yeniden düzenlenir.

6 10.6 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Açık Dosyalar Açık dosyaları yönetmek için gereken bilgiler : Dosya Göstergeci-File pointer: pointer to last read/write location, per process that has the file open File-open count- Dosyanın kaç defa açıldığı bilgisini tutar. Açık dosya tablosundan silinmesi için, dosyayı kullanan tüm işlemlerin dosyayı kapatması gerekir.  – to allow removal of data from open-file table when last processes closes it Disk Konumu -Disk location of the file: cache of data access information Erişim Hakları- Access rights: per-process access mode information

7 10.7 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Dosya Türleri, İsim, Uzantı File Types – Name, Extension

8 10.8 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Erişim Metotları-Access Methods Sıralı Erişim --Sequential Access read next write next reset no read after last write (rewrite) Doğrudan Erişim-Direct Access read n write n position to n read next write next rewrite n Her blok belli bir büyüklüğe sahip n = relative block number

9 10.9 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sıralı Erişim Dosya içerisine veriler belirli bir sıra ile yazılır. Her kayıt bir önceki kayıttan sonra gelir. Dosya yazma işlemi, yazma işaretleyicisinin (writer pointer) bulunduğu noktadan itibaren gerçekleştirilir. Yazma tamamlandıktan sonra işaretleyici otomatik olarak bu kaydın sonuna gelir. Dosya okuma işleminde, okuma işaretleyicisinin (reader pointer) bulunduğu konumdan sonraki bilgi okunur. İşaretleyicinin değeri otomatik olarak artar. Bu erişim türü “sıralı erişim” olarak bilinir. Bu erişim türünü kullanan bazı sistemlerde n kayıt ileri ya da n kayıt geri gidilebilir.

10 10.10 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Doğrudan erişim Doğrudan erişim tekniğinde disk üzerindeki her dosya numaralandırılmış blok sıralarına kaydedilir. Bu erişim tekniğiyle rastgele seçilmiş bloklara ulaşılarak okunup - yazılabilir.

11 10.11 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Simulation of Sequential Access on a Direct-access File

12 10.12 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Relativ adresin İndekslenmesi Kitaplardaki içindekiler kısmı gibi bir indeks aracılığı ile istenilen alana ulaşılması

13 10.13 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts İndeksli erişim İndeksli erişim tekniğinde, disk üzerindeki dosyaların listesi bir blokta tutulur. Bu bir kitabın indeks sayfasına benzetilebilir. Kitap içinde ulaşmak istediğimiz konuyu önce indeksten bulup oradan da sayfa numarasını alırız. Bu yöntemde de ulaşılmak isteden dosya önce indeks bloğuna bakılarak yeri bulunur. Daha sonra dosyaya ulaşılır.

14 10.14 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Dizin Yapısı-Directory Structure Dosyalar hakkında bilgi içeren düğüm-node kolleksiyonu F 1 F 2 F 3 F 4 F n Dizin-Directory Dosya-Files Dizin yapısı ve dosyalar diskte yer alırlar.

15 10.15 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Dosya Sistemi Organizasyonu Drectory kısmı o partition da yer alan dosyaların dosyaların isim, konum, büyüklük, tür gibi bilgilerini içermektedir.

16 10.16 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Windows File System,NTFS

17 10.17 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Windows File System,NTFS Standard information: This attribute includes the information that was standard in the MS-DOS world: read/write permissions, creation time, last modification time, count of how many directories point to this this file (hard link count. File Name: This attribute describes the file's name in the Unicode character set. Multiple file names are possible, such as when: the file has multiple links, or the file has an MS-DOS short name. Security Descriptor: This attribute lists which user owns the file and which users can access it (and how they can access it). Data: This attribute either contains the actual file data in the case of a small file or points to the data (or points to the objects that point to the data) in the case of larger files.

18 10.18 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Dizinde Yapılan İşlemler Operations Performed on Directory Arama- Search for a file Dosya Oluşturma-Create a file Dosya Silme-Delete a file İçerik Listeleme-List a directory Dosya Adlandırma-Rename a file Yedekleme-Traverse the file system

19 10.19 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Tek-Düzey Dizin Single-Level Directory Her kullanıcı için tek dizin İsimlendirme ve gruplama problemi (Windows sisteminde dosya isimleri 255 karakter olabilir)

20 10.20 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts İki-Seviyeli Dizin Two-Level Directory Her kullanıcıya ayrı dizin Farklı kullanıcıların aynı dosya isimleri olabilir Etkili arama

21 10.21 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts İki-Seviyeli Dizin Two-Level Directory. Sistemin Master Dosya Dizininde -Master File Directory (MFD) kişisel dosya dizinleri için pointer bulunur. Avantajları İsim çakışması problemini önler Kullanıcıları birbirinden ayırır. (Koruma). Etkin arama

22 10.22 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Ağaç Yapılı Dizinler Tree-Structured Directories Kullanıcıya iç içe dizin yapma imkanı verir. Her dizin içeriğideki bit, girişin dosyamı, dizin mi olduğunu belirtir. 0 dosya, 1 alt dizin anlamındadır. Özel sistem çağrıları ile dizin oluşturma ve silme gerçekleştirilir. Her kullanıcı kendi dizin ve alt dizinlerini tanımlayabilir. Bu tür dizinlerde her dosya kendi konumunu belirleyen bir dizin yoluna sahiptir. Bu yapıda, farklı dizinler içerisinde olmak kaydıyla aynı dosya ve alt dizin isimleri kullanılabilir. Aynı düzeydeki dizinlerin isimleri birbirinden farklı olmak zorundadır. Daha etkin arama yapılabilir

23 10.23 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Ağaç Yapılı Dizinler Tree-Structured Directories

24 10.24 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Ağaç Yapılı Dizinler Tree-Structured Directories Absolute or relative path name Creating a new file is done in current directory Delete a file rm Creating a new subdirectory is done in current directory mkdir Example: if in current directory /mail mkdir count mail progcopyprtexpcount Deleting “mail”  deleting the entire subtree rooted by “mail”

25 10.25 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Disk yapısı Bilgi, her iki yüzü manyetik bir materyalle kaplı olan diskler üzerine kaydedilir. Yüksek hızlı bir motor diskleri okuma yazma kafası önünde döndürür. Okuma yazma kafaları da bu diskler üzerinde bir kol yardımıyla hareket ederek istenilen bilgiye ulaşır. Disk yüzeyi mantıksal olarak izlere(track) bölünmüştür. Bilgi okuma yazma kafasının altında bulunan ize otomatik olarak kaydedilir ya da o iz üzerinden okunur.

26 10.26 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Disk yapısı

27 10.27 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Yerleşim metotları,Allocation Methods İkincil bellek üzerine bir çok dosya kaydedilir. Bu nedenle disk üzerindeki boş alanların yönetimi ne kadar önemliyse, kaydedilecek dosyaların disk üzerine en verimli şekilde yerleştirilmesi de o derece önemlidir. İşletim sistemlerinin ikincil bellek üzerine bilgi yerleştirmek için kullandıkları üç çeşit metod bulunmaktadır: Bitişik, Contiguous allocation Bağlantılı, Linked allocation İndeksli, Indexed allocation

28 10.28 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bitişik, Contiguous allocation Bu yerleşim metodunda, her dosya disk üzerinde birbirini takip eden adreslerde bulunur. Bu yerleşim yöntemiyle yerleştirilmiş olan dosya, ilk blok adresi ve uzunluğuyla tanımlanır. Örneğin bir dosya n blok uzunluğunda ve b adresinden başlayarak yerleştirilmişse, dosyanın yerleştiği alan b, b+1, b+2, …… ….b+(n-1). Bu durum bir sonraki slayttaki şekilde görülmektedir. Örneğin, listedeki dene dosyası 14 nolu bloktan başlayarak, sıra ile 14,15,16 numaralı bloklarda yerleştirilmiştir. dene dosyası 14 nolu blok adresi ile başlamaktadır ve toplam uzunluğu üç bloktur

29 10.29 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bitişik, Contiguous allocation Each file occupies a set of contiguous blocks on the disk Simple – only starting location (block #) and length (number of blocks) are required Random access Wasteful of space (dynamic storage-allocation problem) Files cannot grow

30 10.30 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bitişik, Contiguous allocation

31 10.31 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bağlantılı, Linked allocation Bağlantılı yerleşim tekniğinde, her dosya parçalara ayrılarak değişik yerlerdeki disk bloklarına yerleştirilebilir. Dizinler dosyanın ilk ve son bloğunun bulunduğu adresleri gösteren bir işaretliyiciye(pointer) sahiptir. Aynı zamanda, dosyanın yerleştiği her blok dosya bilgisinin yanında kendisinden sonra gelen bloğu gösteren bir işaretliyiciye de sahiptir. Şekil de görülen araba dosyası 9 nolu bloktan başlayıp 23 nolu blokta sona ermektedir. 9 nolu blok kendinden sonraki 16 nolu bloğun numarasını tutar. Benzer şekilde, diğer bloklar da kendisiden sonra gelen bloğun numarasını tutarlar File-allocation table (FAT), bağlantılı yerleşim yöntemini kullanmaktadır.

32 10.32 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bağlantılı, Linked allocation Bitiş

33 10.33 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bağlantılı, Linked allocation

34 10.34 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts İndeksli, Indexed allocation İndeksli yerleşimde her dosya için bir indeks bloğu oluşturulmuştur. Dizinler dosyaların indeks blok adresini tutar. Bu indeks bloğunda dosyanın yerleşmiş olduğu her bloğun adresi vardır. Böylece her bloğa direkt olarak ulaşabilir. Şekilde görülen deneme dosyasının indeks bloğu 19 nolu bloktur. 19 nolu blokta deneme dosyasının yerleşmiş olduğu blokların numaraları bulunmaktadır.

35 10.35 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts İndeksli, Indexed allocation

36 10.36 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Boş Alan Yönetimi Disk üzerinde bulunan dosyalar silindiğinde, silinen dosyaların boşalttığı alanları tekrar kullanılması gerekmektedir. Bu nedenle, işletim sistemleri disk üstündeki boş alanların yönetimiyle ilgili bir "boş alan listesi" tutar. Bir dosya, kaydedilmek istendiğinde işletim sistemi bu liste üzerinden dosyanın yerleşeceği en uygun boşluğu bulur ve dosya buraya kaydedilir. Daha sonra bu alan boş alan listesinden çıkartılır. Bir dosya silindiğinde ise, silinen dosyanın boşalttığı alan boş alan listesine eklenir. İkincil bellek üzerindeki boş alanların listesini tutmak için işletim sistemlerinde kullanılan çeşitli yöntemler vardır.

37 10.37 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Boş Alan Yönetimi Bit Vektör Yöntemi Bağlantılı Liste Yöntemi Gruplama Yöntemi Sayma Yöntemi

38 10.38 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bit Vektör Yöntemi Bit vektör yönteminde boş alan listesi bir bit haritası şeklinde tutulur. Bilgi bulunan yerler 0, boş olan yerler 1 ile gösterilir (Bazı işletim sistemlerinde bunun tersi de olabilir). Örneğin disk üstünde 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 17,18, 25, 26, and 27 nolu alanların boş olduğunu kabul edilirse, bu yönteme göre bit vektörü şu şekilde olur Bu yöntemin temel avantajı basit olması ve ardarda gelen boş alanların kolaylıkla bulunabilmesidir.

39 10.39 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Bağlantılı Liste Yöntemi Boş alanların tutulması ile ilgili işletim sistemlerinin kullandığı diğer bir yöntem ise bağlantılı liste yöntemidir. Bu yönteme göre boş alan kendisinden sonra gelen boş alanı gösteren bir işaretleyici(pointer) tutar.

40 10.40 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Gruplama, Grouping Yöntemi Kullanılan bir diğer yöntem de gruplamadır. Bu yöntemde birbirlerini takip eden boş alanlar gruplanır ve grubun ilk elemanın adresi bir önceki boş alan grubunun son elamanında tutulur. Grubun ilk elemanı kendisinden sonra kaç tane boş alan olduğu bilgisini tutar.

41 10.41 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Sayma Yöntemi İkinci bellek üzerinde bulunan ilk boşluk alanda, tüm boş alanların ve bunları takip eden boşlukların adres ve sayıları tutulur.

42 10.42 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Örnek

43 10.43 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts

44 10.44 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Disk Planlama (Disk Scheduling) İkincil bellek üzerinde çok sayıda okuma/yazma işlemi yapılmaktadır. Okuma/yazma işlemlerinin çok hızlı gerçekleştirilmesi gerekmektedir. Disk hızını belirleyen 3 etken vardır : 1. Sistem öncelikle kafayı uygun iz ya da silindir üzerine hareket ettirir. Bu harekete ”Arama”, geçen süreye de ”Arama Süresi” denir. 2. Kafa uygun track(iz) üzerindeyken, doğru sektöre gelene kadar geçen süreye de ”Rotasyonel Gecikme (Rotational Delay)” denir. 3. Son olarak bilgi diskten okunarak ana belleğe transfer edilinceye kadar geçen süreye de ”Transfer Süresi” denir.

45 10.45 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Disk Planlama (Disk Scheduling) Bir diskin okuma/yazma isteğine cevap vermesi bu üç sürenin toplamıyla bulunur. Arama süresinin kısa olması ve kafanın istenilen bloğa hızlı ulaşabilmesi için, çeşitli disk çizelgeleme algoritmaları geliştirilmiştir. Bunlardan bazıları : FCFS İlk gelen ilk hizmet disk çizelgeleme algoritması SSTF disk çizelgeleme algoritması SCAN disk çizelgeleme algoritması C-LOOK disk çizelgeleme algoritması C-SCAN disk çizelgeleme algoritması

46 10.46 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts FCFS, İlk Gelen İlk Hizmet Disk Planlama İlk gelen ilk hizmet disk planlama en basit disk çizelgelemesidir. Disk kuyruğundaki sıraya göre okuma-yazma kafası izler üzerinde hareket ettirilir. Örnek : Disk kuyruğu : 68,123, 57, 128, 44, 184, 95, 32 Okuma-Yazma Kafası başlama konumu: 78 izde. Bu algoritmaya göre gerçekleştirilecek olan işlem şu sırayla olacaktır. 78. izde bulunan okuma-yazma kafası önce 68. ize sonra sırayla 123, 57, 128, 44, 184, 95 ve 32 izlere hareket edecektir.

47 10.47 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts FCFS Illustration shows total head movement of 640 cylinders.

48 10.48 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Shortest-seek-time-first (SSTF) algorithm. SSTF disk çizelgeleme algoritmasında okuma yazma kafası bulunduğu konumdan (başlama konumu), arama zamanının en düşük olduğu iz üzerine hareket ederek işlemlerini gerçekleştirir..SSTF algoritması disk başlığının ilk durumuna en yakın olan silindiri ilk işlem için seçecektir. Örnek : Disk kuyruğu : 68,123, 57, 128, 44, 184, 95, 32 Okuma-Yazma Kafası başlama konumu: 78 iz. Bu algoritmaya göre gerçekleştirilecek olan işlem şu sırayla olacaktır. 78. izde bulunan okuma-yazma kafası arama zamanı en düşük olan 68. ize hareket eder. Daha sonra sırasıyla 57, 44 ve 32 izler yönüde hareket eder. 32 izden sonra arama zamanı en düşük olan 95 ize hareket eder. Buradan da sırası ile 123, 128 ve 184’üncü izlere hareket eder.

49 10.49 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts SSTF (Cont.) Illustration shows total head movement of 236 cylinders.

50 10.50 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts SCAN Algoritması Bu algoritmada disk başlık kolu diskin bir ucundan başlayarak diğer ucuna (kenarına) gidene kadar hareket eder ve karşılaştığı silindirler üzerinde işlem yapar. Sonra diğer kenardan ters yönde hareket eder ve aynı işlemleri yapar. Böylelikle kuyruktaki tüm silindirlerin taranması için diskin önce ileri sonra geri hareketi gerekiyor. Burada önemli olan, disk başlığının hareket yönü belirlenmelidir. Sometimes called the elevator algorithm. Illustration shows total head movement of 208 cylinders.

51 10.51 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts SCAN (Cont.) Illustration shows total head movement of 208 cylinders.

52 10.52 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts C-Scan (Circular SCAN scheduling) C-Scan disk çizelgeleme algoritmasında okuma-yazma kafası bulunduğu konumdan son iz yönünde hareket ederek bu alan içinde bulunan işlemleri gerçekleştirir. Daha sonra, son ize ulaştığında buradan hızlı bir şekilde ilk ize dönerek, ilk iz ile ilk konumu arasında kalan işlemleri yapar.

53 10.53 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts C-SCAN (Cont.)

54 10.54 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts C-LOOK Version of C-SCAN Arm only goes as far as the last request in each direction, then reverses direction immediately, without first going all the way to the end of the disk.

55 10.55 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts C-LOOK (Cont.)

56 10.56 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts C-Look C-Scan Scan Look Go until the last request Go until the last cylinder Service in only one direction Service both directions Direction Go until

57 10.57 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Selecting a Disk-Scheduling Algorithm SSTF is common and has a natural appeal SCAN and C-SCAN perform better for systems that place a heavy load on the disk. Performance depends on the number and types of requests. Requests for disk service can be influenced by the file-allocation method. The disk-scheduling algorithm should be written as a separate module of the operating system, allowing it to be replaced with a different algorithm if necessary. Either SSTF or LOOK is a reasonable choice for the default algorithm.


"Bölüm 9: Dosya Sistemi. 10.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Dosya Kavramı Birleşik mantıksal adres aralığı Dosya: Dosya," indir ppt

Benzer bir sunumlar


Google Reklamları