Linux Sistemlerde Süreç Zamanlama Algoritmaları (Scheduler Algorithms) ÜMİT İŞGÜDER
|
|
|
- Sanaz Akşit
- 9 yıl önce
- İzleme sayısı:
Transkript
1 Linux Sistemlerde Süreç Zamanlama Algoritmaları (Scheduler Algorithms) ÜMİT İŞGÜDER 21/03/07 İşletim Sistemleri 1
2 Linux Zamanlayıcısının Temelleri Linux 2.5.x 'in geliştirilmesi sırasında yeni bir zamanlama algoritması Linux çekirdeğine en önemli değişikliğini yaşattı. Linux 2.4.x zamanlayıcısı geniş bir alanda güvenilir, genelde sorunsuz olarak kullanılıyordu fakat birçok istenilmeyen özelliklere sahipti ve bunlar yapılanmadan ötürü yerleşik durumdaydı. 21/03/07 İşletim Sistemleri 2
3 Linux Zamanlayıcısının Temelleri Ingo Molnar bunları iyileştirma çabası içine girdi ve eski algoritmada değişiklikler yapmak yerine tümüyle yeni olan bir algoritma oluşturdu. Linux 2.4.x zamanlama algoritmasının O(n) algoritmalarını içermesi belki de en büyük kusuruydu ve sonradan anlaşıldığı gibi en iyi gelişme yeni zamanlayıcının O(1) algoritmalarından oluşmasıydı. 21/03/07 İşletim Sistemleri 3
4 Peki nedir bu O(1) algoritması? 21/03/07 İşletim Sistemleri 4
5 O(1) Algoritması Bir algoritma girdiler (input) üzerine işlem yapar ve girdilerin sayısı genellikle çalışma zamanını belirler. Big-O notasyonu algoritmanın çalışma zamanının büyüme oranının girdi sayısınına dayalı olarak belirlenmesinde kullanılır. Örneğin O(n) algoritmasının çalışma zamanı n arttıkça doğrusal olarak artar. Bir O(n²) algoritması için üstsel olarak artar (quadratical). 21/03/07 İşletim Sistemleri 5
6 O(1) Algoritması Eğer bir algoritmanın çalışma zamanında (running time) sabit üs kullanmak mümkün olursa bu bize O(1)'i sağlar.başka bir deyişle algoritmamız sabit zamanda çalışabilir. Yani bir O(1) algoritması bize girdi sayısı ne olursa olsun kesin bir sürede tamamlanma garantisi veriyor. 21/03/07 İşletim Sistemleri 6
7 Linux Zamanlayıcısının O(1) Zamanında Görevini Yerine Getirmesini Ne Sağlıyor? 21/03/07 İşletim Sistemleri 7
8 Linux Zamanlayıcısının Yapısı Linux zamanlayıcısı O(1)'den daha kötü çalışan bir algoritma içermiyor. Bu durum zamanlayıcının her bölümünün sistemde ne kadar görev varsa kesin bir sürede çalıştırılacağına garanti veriyor. Bu da Linux çekirdeğinin etkin bir şekilde çok fazla sayıda artan görevlerin maliyeti arttırmaksızın yönetmesine izin veriyor. 21/03/07 İşletim Sistemleri 8
9 Linux Zamanlayıcısının Yapısı Linux zamanlayıcısında bu görevlerin O(1) zamanında gerçekleşmesini sağlayan iki adet veri yapısı vardır ve yapısı bunlar etrafında döner: Öncelik Dizileri -Priority Arrays Çalışma Kuyrukları -Runqueues 21/03/07 İşletim Sistemleri 9
10 Runqueues (Çalışma Kuyrukları) Runqueue veri yapısı Linux zamanlayıcısında kullanılan en temel veri yapısıdır ve bütün algoritma bunun üzerine kuruludur. Aslında bir runqueue CPU'ya atanmış tüm çalışabilir görevlerin alan bilgisini tutar.bunun için sistemde her CPU için bir runqueue oluşturulur ve yönetilir. 21/03/07 İşletim Sistemleri 10
11 Runqueues (Çalışma Kuyrukları) Her runqueue iki adet öncelik dizisi (priority array) içerir. Runqueue'nin işi CPU'nun özel thread bilgilerinin yerlerini tutup bunları iki öncelik dizisiyle yönetmektir. 21/03/07 İşletim Sistemleri 11
12 Runqueues Veri Yapısı ve Kullandığı Değişkenler Runqueue veri yapısı kernel/sched.c 'de tanımlanmış olan bir veri yapısıdır. spinlock_t lock Bu değişken runqueue'yi koruyan kilittir. Sadece bir görev belirli zamanda runqueue üzerinde oynama yapabilir. 21/03/07 İşletim Sistemleri 12
13 Runqueues Veri Yapısı ve Kullandığı Değişkenler unsigned long nr_running Runqueue'deki çalışabilir durumda olan görevlerin sayısını tutar. unsigned long expired_timestamp En son Priority Array değişiminden beri geçen zaman ( aktif ölü ) 21/03/07 İşletim Sistemleri 13
14 Runqueues Veri Yapısı ve Kullandığı Değişkenler unsigned long nr_uninterruptible Runqueue'deki çalışması kesilemeyen görevlerin sayısını tutar. task_t *curr En son çalışan göreve pointer. task_t *idle CPU'nun idle görevine pointer. ( Idle: sistem boşta hali ) 21/03/07 İşletim Sistemleri 14
15 Runqueues Veri Yapısı ve Kullandığı Değişkenler struct mm_struct *prev_mm Bir sonraki çalışacak olan görevin bulunduğu sanal belleğe pointer. Etkin olarak sanal bellek haritalama ve yönetiminde kullanılır. (cache) atomic_t nr_iowait I/O için runqueue'de sıra bekleyen görevlerin sayısını tutar. 21/03/07 İşletim Sistemleri 15
16 Runqueue ve Kilitleme Sadece bir görev belirli zamanda runqueue üzerinde oynama yapabilir ve bunu yapmak isteyen görev önce kilidi açmalıdır. Birden çok runqueue kilitlerini açmak karmaşıklıktan kaçınmak için runqueuenin azalan adresler olarak düzenlenmesi gerekir. İki runqueyi kilitlemek için uygun bir fonksiyon olan double_rq_lock(rq1, rq2) kilitleri kendi yönetir. Tersi olarak da, double_rq_unlock(rq1, rq2) ikisini birden kilitler. Runqueueyi kilitleme de task_rq_lock(task, &flags) adındaki fonksiyondaki bir görevdir. 21/03/07 İşletim Sistemleri 16
17 Priority Arrays (Öncelik Dizileri) Bu veri yapısı Linux zamanlayıcısının O(1) zamanlı performansını sağlamadaki en önemli öğesidir. Zamanlayıcı daima sistemdeki en yüksek öncelikli görevleri zamanlar ve eğer birden çok görev aynı öncelik seviyesinde ise birbirleriyle dönüşümlü olarak zamanlanır. 21/03/07 İşletim Sistemleri 17
18 Priority Arrays (Öncelik Dizileri) Öncelik kuyrukları sistemde en yüksek seviyeli öncelikli görevleri bulurlar ayrıca sabit zamanda mümkün olduğunca öncelik seviyelerini dönüşümlü olarak ayarlarlar. 21/03/07 İşletim Sistemleri 18
19 Priority Arrays (Öncelik Dizileri) Bundan başka zaman dilimi bölümleri arasında geçiş yaparak iki öncelik kuyruğunu uyum içinde kullanmak sabit zamanlı işlemleri meydana getirdi. Bu zaman dilimi bölümleri tüm çalışabilir görevlerin yeni bir zaman dilimiyle başlamaları ve zamanlarını harcamaları arasındaki zamandır. 21/03/07 İşletim Sistemleri 19
20 Priority Arrays Nasıl Kullanılır? 21/03/07 İşletim Sistemleri 20
21 Priority Arrays Öncelik kuyrukları, her öncelik seviyesinden oluşan bağlı listeler dizisidir. (Linux 'de 140 seviyede öncelik vardır ). Bir görev diziye eklendiğinde aslında listeye eklenen onun öncelik sırasıdır. Boyutu MAX_PRIO+1 olan bir bitmapde her öncelik seviyesi için aktif görevleri içeren bit seti vardır. 21/03/07 İşletim Sistemleri 21
22 Priority Arrays Dizideki en yüksek seviyeli öncelikli görevi bulmak için biri sadece bitmape konulan bitlerin ilkini bulmak zorunda. Aynı önceliğe sahip çoklu görevler dönüşümlü olarak zamanlanır; çalışmadan sonra, görevler öncelik seviyelerinin listesine göre dibe konulur. 21/03/07 İşletim Sistemleri 22
23 Priority Arrays Çünkü sonlu uzunluktaki bir bitmapde ilk biti bulmak ve listede ilk elemanı bulmak işlemin ne kadar zaman alacağını belirleyen bir dizi işlemlerdir. CPU'daki her görev aktif olan öncelik sırasında yaşamına başlar ve ona verilen zaman dilimi süresince yaşar ve süresi dolan ölü dolan görevlerin tutulduğu öncelik dizisine taşınır. 21/03/07 İşletim Sistemleri 23
24 Priority Arrays Taşınma süresinde de yeni çalışma süresi hesaplanır. Artık aktif öncelik dizisinde çalışabilir durumda bir görev kalmamışsa sadece diziler yer değiştirir. Çünkü zaman dilimleri görevlerin süreleri dolunca yeniden hesaplanır, ama bu tüm görevler için yeni zaman dilimlerinin hesaplanması demek değildir. 21/03/07 İşletim Sistemleri 24
25 Priority Arrays Bu birkaç görev için hesaplanan zaman dilimleri ve bunların iterasyonunu kullanmak yerine kullanılan birkaç küçük sabit-zaman işlemidir. Yani bizim O(n) algoritmamızdaki istemediğimiz olay çözüme kavuşmuştur. Ölü ve aktif öncelik dizilerimizin pointerlarının yer değiştirilmesi n adet görevi sayılarca diziden diziye taşıyan ve O(n) zaman alan işlemlerden kaçınan sabit-zaman işlemidir. 21/03/07 İşletim Sistemleri 25
26 Priority Arrays Veri Yapısının Kullandığı Değişkenler prio_array_t *active Aktif olan ve daha çalışma zamanları bulunan görevlerin bulunduğu aktif priority array'e pointer. prio_array_t *expired Zamanlarını kullanmış ve bitirmiş olan ölü priority array'e pointer. 21/03/07 İşletim Sistemleri 26
27 Priority Arrays Veri Yapısının Kullandığı Değişkenler int best_expired_prio Ölü bir dizide en yüksek öncelik. EXPIRED_STARVING makrosu içinde kullanılır ve çalışan görev öldükten sonra hangi görevin en yüksek öncelikli olduğunu saptamaya yarar. 21/03/07 İşletim Sistemleri 27
28 Linux Sistemlerde Süreç Zamanlama Algoritmaları (Scheduler Algorithms) ÜMİT İŞGÜDER 21/03/07 İşletim Sistemleri 28
İş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
İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2
İş Sıralamanın Amaçları İŞ SIRALAMA İşleri zaman içinde işlemciye yerleştirmek Sistem hedeflerine uygun olarak: İşlemci verimi Cevap süresi (response time) Debi (throughput) 23 İş Sıralama İş Sıralama
İŞ SIRALAMA. İş Sıralama 6. İşletim Sistemleri
6 İŞ SIRALAMA İş Sıralama Çok programlı ortamlarda birden fazla proses belirli bir anda bellekte bulunur Çok programlı ortamlarda prosesler: işlemciyi kullanır bekler giriş çıkış bekler bir olayın olmasını
BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN 0904.01036. [email protected] KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ
BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN 0904.01036 [email protected] KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİŞKEK 2012 Ahmet Atakan
& WIN 32 DEN BAKIŞ AÇISI İSMAİL YALÇIN
WINDOWS XP SCHEDULING ALGORITHMS & WIN 32 DEN BAKIŞ AÇISI İSMAİL YALÇIN WIN 32 Win 32 de süreçler oluştuğu bir sınıf önceliği üzerine verilmiştir. >>Idle(tembel),below,below normal,normal,above normal,high,ve
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
İşlem Yönetimi (Process Management)
İşlem Yönetimi (Process Management) 2 Bir işletim sisteminde, temel kavramlardan bir tanesi işlemdir. İş, görev ve süreç kelimeleri de işlem ile eşanlamlı olarak kullanılabilir. Bir işlem temel olarak
REALTIME LINUX. 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara
REALTIME LINUX 3. Linux ve Özgür Yazılım Şenliği Murat Demirten, 16 Mayıs 2004, Ankara Bu belgeyi, Free Software Foundation tarafından yayınlanmış bulunan GNU Genel Kamu Lisansının 2 ya da daha sonraki
Bölüm 5: İşlemci Zamanlaması. Operating System Concepts with Java 8 th Edition
Bölüm 5: İşlemci Zamanlaması 5.1 Silberschatz, Galvin and Gagne 2009 Temel Kavramlar Çoklu programlama sayesinde CPU kullanımının optimize edilmesi CPU I/O İşlem Döngüsü Bir işlemin çalıştırılması birbirlerini
Algoritmalar ve Karmaşıklık
Algoritmalar ve Karmaşıklık Ders 11 Algoritma Ayrık matematikte karşılaşılan bir çok problem sınıfı mevcuttur. Örneğin, verilen tamsayı grubu içindeki en büyük olanının bulunması, verilen bir kümenin bütün
Alıştırma 1: Yineleme
Alıştırma 1: Yineleme Alıştırma 2: Yineleme H10->H2 çevrimini yapınız 7 2 1 3 2 1 1 1 2 0 Hafta 3: Yineleme Alıştırmaları(1) E1. (44/174) S değerini yineleme kullanarak hesap ediniz S = 1 + 2 + 3 + n Hafta3:
{\} /\ Suhap SAHIN Onur GÖK
Veri Yapıları ve Algoritmalar 0 {\} /\ Suhap SAHIN Onur GÖK Kaynaklar http://www.papatyabilim.com.tr/veriyapilari_algoritmalar.htm Kaynaklar http://www.tutorialspoint.com/data_structures_algorithms/index.htm
YZM 2116 Veri Yapıları
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BAŞLAMADAN ÖNCE Bu dersi alan öğrencilerin aşağıdaki konuları bildiğ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
MATLAB/Değişkene Değer Atamak
MATLAB/Değişkene Değer Atamak input fonksiyonu klavyeden giriş yapmayı sağlayan bir fonksiyondur. degisken=input( bir deger giriniz: ) şeklinde kullanılır. =input('bir değer giriniz: ') bir değer giriniz:
Algoritma Geliştirme ve Veri Yapıları 8 Kuyruk ve Yığın Yapısı. Mustafa Kemal Üniversitesi
Algoritma Geliştirme ve Veri Yapıları 8 Kuyruk ve Yığın Yapısı Yığın ve kuyruk modelleri verinin geçici olarka saklandığı, davranışları birbirinin tamamen tersi olan ve bellek üzerinde kurulmuş birer saklama
Yrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Hafıza Yapısı Bir değişken tanımlandığında arka planda bilgisayarın hafızasında bir konuma yerleştirilir. Hafıza küçük hücrelerden oluşmuş bir blok olarak düşünülebilir. Bir değişken
İş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,
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
Bilgisayar İşletim Sistemleri BLG 312
Bilgisayar İşletim Sistemleri BLG Çok prosesli ortamda birden fazla proses çalışmaya hazır şekilde bellekte yer alır MİB zamanının prosesler arasında paylaştırılması:zaman paylaşımlı çalışma iş sıralama:bir
ELN1002 BİLGİSAYAR PROGRAMLAMA 2
ELN1002 BİLGİSAYAR PROGRAMLAMA 2 SIRALAMA ALGORİTMALARI Sunu Planı Büyük O Notasyonu Kabarcık Sıralama (Bubble Sort) Hızlı Sıralama (Quick Sort) Seçimli Sıralama (Selection Sort) Eklemeli Sıralama (Insertion
Yrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği
Yrd. Doç. Dr. A. Burak İER Bilgisayar Mühendisliği Algoritma Analizi İçerik: Temel Kavramlar Yinelemeli ve Yinelemesiz Algoritma Analizi Asimptotik otasyonlar Temel Kavramlar Algoritma: Bir problemin çözümüne
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
BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)
1 BLM 112- Programlama Dilleri II Hafta 4 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan İyilik insanları birbirine bağlayan altın zincirdir. ~Goethe Hafıza Yapısı 2 Bir değişken tanımlandığında arka
Java, Python ve Ruby Dillerinin Performans Karşılaştırması
Java, Python ve Ruby Dillerinin Performans Karşılaştırması Çanakkale Onsekiz Mart Üniversitesi Mustafa ŞAHİN Akademik Bilişim 2007 1 Dillerin seçim nedeni Java, Pyton ve Ruby Programlama dillerinin popülerliği
Ö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,
http://www.fatihbasaran.com.tr
http://www.fatihbasaran.com.tr FmB Network Tools Kurulum ve Kullanım Rehberi 1) Kurulum a) Hazırlık Eğer indirmediyseniz, yazılımın bir kopyasını aşağıdaki adresten edinebilirsiniz. Kurulum öncesinde tüm
GELİŞMİŞ ŞİFRELEME STANDARDI - AES
GELİŞMİŞ ŞİFRELEME STANDARDI - AES Şifreleme algoritmalarına yapılan saldırılarda kullanılan yöntemin dayanıklı olması o algoritmanın gücünü gösterir. Aes in ortaya çıkışının temelinde Des şifreleme algoritmasının
else *on=*on+1; return gecici; } int giseyeyerlestir(struct gise*giseler) {//giseye bos olmasi durumunda yerlestirme yapiliyor...
///////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////// ALGORITMA VE PROGRAMALAMA DERSI ODEV-3 ////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////
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
İleri Diferansiyel Denklemler
MIT AçıkDersSistemi http://ocw.mit.edu 18.034 İleri Diferansiyel Denklemler 2009 Bahar Bu bilgilere atıfta bulunmak veya kullanım koşulları hakkında bilgi için http://ocw.mit.edu/terms web sitesini ziyaret
VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ
VERİ YAPILARI DERS NOTLARI BÖLÜM 5 QUEUE (KUYRUK) Yard. Doç. Dr. Deniz KILINÇ CELAL BAYAR ÜNİVERSİTESİ, YAZILIM MÜHENDİSLİĞİ 2015-2016 1. Tanım Kuyruk, eleman eklemelerin sondan (rear) ve eleman çıkarmaların
Ayrık Fourier Dönüşümü
Ayrık Fourier Dönüşümü Tanım: 0 n N 1 aralığında tanımlı N uzunluklu bir dizi x[n] nin AYRIK FOURIER DÖNÜŞÜMÜ (DFT), ayrık zaman Fourier dönüşümü (DTFT) X(e jω ) nın0 ω < 2π aralığında ω k = 2πk/N, k =
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
ALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ [email protected] YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 İşaretçiler ve Diziler Fonksiyon
İşletim Sistemlerine Giriş
İşletim Sistemlerine Giriş Bellek Yönetimi (Memory Management) İşletim Sistemlerine Giriş - Ders08 1 Bellek Yönetimi Bellek önemli bir kaynaktır ve dikkatli yönetilmelidir. İşletim sistemlerinde bellek
BELLEK YÖNETY. Bellek Yönetimi
7 BELLEK YÖNETY NETİMİ Bellek Yönetimi Birden fazla prosese yer verilebilecek şekilde belleğin alt birimlere ayrılması Belleğin prosesler arasında atanması etkin olmalı: en fazla sayıda proses 286 Bellek
ALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ [email protected] YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi
ALGORİTMA ANALİZİ. Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü
ALGORİTMA ANALİZİ Cumhuriyet Üniversitesi Bilgisayar Mühendisliği Bölümü 2 Temel Kavramlar Algoritma: Bir problemin çözümünü belirli bir zamanda çözmek için sonlu sayıdaki adım-adım birbirini takip eden
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
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 [email protected] http://web.karabuk.edu.tr/umitatilla/ Giriş Değişken ve dizilerde tutulan değerler programın çalışması
VIESMANN VITOCLIMA-S. Kullanma kılavuzu VITOCLIMA 300-S. Grup Kontrol VITOCLIMA VIESMANN 1
VITOCLIMA-S VIESMANN Kullanma kılavuzu VITOCLIMA 300-S Grup Kontrol VITOCLIMA VIESMANN 1 Fonksiyon bilgisi Aynı dış üniteye bağlı 1-16 iç ünite tek tek veya grup olarak kontrol edilebilir. Grup kontrol
PROCESS YARATIMI (TEKRAR):
PROCESS YARATIMI (TEKRAR): Gecen haftaki dersten hatırlayabileceğiniz üzere, bir process başka bir process yaratabilmesi için UNIX sistemlerinde fork() sistem çağrısı kullaılıyordu. Başka bir process yaratan
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
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 *)
HACETTEPE ÜNİVERSİTESİ BAHAR DÖNEMİ
Öğrenci Adı Soyadı: Öğrenci Numarası: S1 S2 S3 S4 S5 Toplam HACETTEPE ÜNİVERSİTESİ 2013-2014 BAHAR DÖNEMİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BBM202 Algoritmalar 1. Ara Sınav 18.03.2014 Sınav Süresi: 50 dakika
İşletim Sistemlerine Giriş
İşletim Sistemlerine Giriş Girdi/Çıktı (I/O) İşletim Sistemlerine Giriş - Ders12 1 Disk Manyetik diskler silindirler(cylinder) şeklinde organize edilirler. Her silindir başları dikey olarak gruplanmış
Algoritmaların Karşılaştırılması. Doç. Dr. Aybars UĞUR
Algoritmaların Karşılaştırılması Doç. Dr. Aybars UĞUR Giriş Bir programın performansı genel olarak programın işletimi için gerekli olan bilgisayar zamanı ve belleğidir. Bir programın zaman karmaşıklığı
VERİ YAPILARI VE PROGRAMLAMA (BTP104)
VERİ YAPILARI VE PROGRAMLAMA (BTP104) 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.
İŞLETİM SİSTEMLERİ. (Operating Systems)
İŞLETİM SİSTEMLERİ (Operating Systems) İşletim Sistemi Tanımı, Görevleri, Bilinen İşletim Sistemleri Çok Kullanıcılı Sistemler, Bellek Yönetim Birimi Linux ve Windows Ailesi, Bilinen İşletim Sistemleri
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.
Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu
Algoritmalar, Akış Şemaları ve O() Karmaşıklık Notasyonu Öğr. Gör. M. Ozan AKI r1.0 Algoritmalar (Algorithms) Algoritma, bir problemin çözümünü sağlayan ancak deneme-yanılma ve sezgisel çözüme karşıt bir
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ı
YZM 2116 Veri Yapıları
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 5 Kuyruk VY ve ADT Basit Kuyruk (Simple Queue)
YZM 2116 Veri Yapıları
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 9 Hatırlatmalar Tam İkili Ağaç Eksiksiz İkili
3.2. DP Modellerinin Simpleks Yöntem ile Çözümü Primal Simpleks Yöntem
3.2. DP Modellerinin Simpleks Yöntem ile Çözümü 3.2.1. Primal Simpleks Yöntem Grafik çözüm yönteminde gördüğümüz gibi optimal çözüm noktası, her zaman uygun çözüm alanının bir köşe noktası ya da uç noktası
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ç
Her bir kapının girişine sinyal verilmesi zamanı ile çıkışın alınması zamanı arasında çok kısa da olsa fark bulunmaktadır -> kapı gecikmesi
Kapılardaki gecikme Her bir kapının girişine sinyal verilmesi zamanı ile çıkışın alınması zamanı arasında çok kısa da olsa fark bulunmaktadır -> kapı gecikmesi Kapılardaki gecikme miktarının hesaplanması
İş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.
Yrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN BAĞLI LİSTELER Bağlı listeler konusuna çalışmanın bazı faydaları var. Bağlı listeler gerçek programlarda kullanılabilecek bir veri yapısıdır. Bağlı listelerin güçlü ve zayıf yönlerini
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 [email protected] http://web.karabuk.edu.tr/umitatilla/ Dinamik Bellek Yönetimi Bir program çalıştırıldığında
C++ Dersi: Nesne Tabanlı Programlama
C++ Dersi: Nesne Tabanlı Programlama Bölüm 6: Diziler İçerik Diziler Dizi Elemanlarına İlk Atama Diziler ve Fonksiyonlar İki Boyutlu Diziler İki Boyutlu Dizi Tanımı İki Boyutlu Dizi Elemanlarına Erişim
Algoritma Analizi ve Büyük O Notasyonu. Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları
Algoritma Analizi ve Büyük O Notasyonu Şadi Evren ŞEKER YouTube: Bilgisayar Kavramları Algoritmaların Özellikleri Algoritmalar Input Girdi, bir kümedir, Output ÇıkF, bir kümedir (çözümdür) Definiteness
BİT in Temel Bileşenleri (Yazılım-1)
Ders 4 BİT in Temel Bileşenleri (Yazılım-1) BİLGİ & İLETİŞİM TEKNOLOJİLERİ 1 Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik araçların, birbirleriyle haberleşebilmesini ve uyumunu
Dr. Fatih AY Tel: 0 388 225 22 55 [email protected] www.fatihay.net
Bilgisayar Programlama Ders 9 Dr. Fatih AY Tel: 0 388 225 22 55 [email protected] www.fatihay.net Dizileri Fonksiyonlara Dizileri Fonksiyonlara Bir dizi argümanını fonksiyon içinde bir değer olarak kullanabilmek
VERİ YAPILARI VE PROGRAMLAMA (BTP104)
VERİ YAPILARI VE PROGRAMLAMA (BTP104) Yazar: Doç.Dr. İ. Hakkı CEDİMOĞLU S1 SAKARYA ÜNİVERSİTESİ Adapazarı Meslek Yüksekokulu Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir.
Bölüm 5: İşlemci Zamanlaması. Operating System Concepts with Java 8 th Edition
Bölüm 5: İşlemci Zamanlaması 5.1 Silberschatz, Galvin and Gagne 2009 İşlemci Zamanlaması Temel Kavramlar Zamanlama Kriteri Zamanlama Algoritmaları İş Parçacığı Zamanlaması Çok-İşlemci Zamanlaması İşletim
Fonksiyon Optimizasyonunda Genetik Algoritmalar
01-12-06 Ümit Akıncı Fonksiyon Optimizasyonunda Genetik Algoritmalar 1 Fonksiyon Optimizasyonu Fonksiyon optimizasyonu fizikte karşımıza sık çıkan bir problemdir. Örneğin incelenen sistemin kararlı durumu
Linux Assembly Programlamaya Giriş
Linux Assembly Programlamaya Giriş Barış Metin Konular gcc / gas / ld Intel ve AT&T söz dizimleri gdb INT 80H C kütüphane fonksiyonları Stack Frame Örnek
DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II
DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II DİZİLER Dizi, aynı tipteki verilere tek bir isimle erişmek için kullanılan bir kümedir. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe
İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler
PHP de Dizi-Değişkenler, Nesneler Dizilerle ilgili örneklere geçmeden önce aşağıdaki tabloyu inceleyelim. Tabloda dizi kavramının mantığı açıklanmaktadır. Tablonun tamamını bir dizi olarak düşünün ve bu
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
YMT219 VERİ YAPILARI ÖDEV-1
YMT219 VERİ YAPILARI ÖDEV-1 1. İkiliBul yordamı aşağıda verilmiştir. İkiliBul yordamı A dizisi içerisinde 2 tane eşit sayı bulursa true bulamazsa false döndürmektedir. public boolean ikilibul(int[] A){
enum bolumler{elektronik, insaat, bilgisayar, makine, gida};
BÖLÜM 12: Giriş C programlama dilinde programcı kendi veri tipini tanımlayabilir. enum Deyimi (Enumeration Constants) Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı
Yrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Hafıza Yapısı Bir değişken tanımlandığında arka planda bilgisayarın hafızasında bir konuma yerleştirilir. Hafıza küçük hücrelerden oluşmuş bir blok olarak düşünülebilir. Bir değişken
İşletim Sistemlerine Giriş
İşletim Sistemlerine Giriş Zamanlama (Scheduling) İşletim Sistemlerine Giriş - Ders02 1 Zamanlama (Scheduling) Eğer bir bilgisayar çok programlı(multi programming) ise, sıklıkla birçok süreç aynı anda
Bilgisayar Sistemlerine Genel Bakış
Süleyman Demirel Üniversitesi / Mühendislik Fak. / Bilgisayar Mühendisliği Carnegie Mellon Bölümü Bilgisayar Sistemlerine Genel Bakış BIL-304: Bilgisayar Mimarisi Dersi veren öğretim üyesi: Yrd. Doç. Dr.
PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.
PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011
BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama
BMS-302 İleri Web Programlama İş Parçacığı (Thread) ve Soket (Socket) Programlama İş Parçacıkları (Threads) Ana programa paralel çalışan işler oluşturmak için kullanılır Makine birden fazla çekirdeğe sahipse
YZM 5257 YAPAY ZEKA VE UZMAN SİSTEMLER DERS#6: GENETİK ALGORİTMALAR
YZM 5257 YAPAY ZEKA VE UZMAN SİSTEMLER DERS#6: GENETİK ALGORİTMALAR Sınıflandırma Yöntemleri: Karar Ağaçları (Decision Trees) Örnek Tabanlı Yöntemler (Instance Based Methods): k en yakın komşu (k nearest
F(A, N, K) // A dizi; N, K integer if N<0 then return K; if A[N]>K then K = A[N]; return F(A, N-1, K);
2009-2010 BAHAR DÖNEMİ MC 689 ALGORİTMA TASARIMI ve ANALİZİ I. VİZE ÇÖZÜMLERİ 1. a) Böl ve yönet (divide & conquer) tarzındaki algoritmaların genel özelliklerini (çalışma mantıklarını) ve aşamalarını kısaca
Bekleme Hattı Teorisi
Bekleme Hattı Teorisi Sürekli Parametreli Markov Zincirleri Tanım 1. * +, durum uzayı * +olan sürekli parametreli bir süreç olsun. Aşağıdaki özellik geçerli olduğunda bu sürece sürekli parametreli Markov
Dosya Sıkıştırma (File Compression) Kütük Organizasyonu 1
Dosya Sıkıştırma (File Compression) Kütük Organizasyonu İçerik Dosya sıkıştırma nedir? Dosya sıkıştırma yöntemleri nelerdir? Run-Length Kodlaması Huffman Kodlaması Kütük Organizasyonu 2 Dosya Sıkıştırma
Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009
Bölüm 3: İşlemler 3.1 Silberschatz, Galvin and Gagne 2009 Bölüm 3: İşlemler İşlem Kavramı İşlem Zamanlaması (Process Scheduling) İşlemler Üzerindeki Faaliyetler İşlemler Arası İletişim (Interprocess Communication)
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
Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009
Bölüm 3: İşlemler 3.1 Silberschatz, Galvin and Gagne 2009 Bölüm 3: İşlemler İşlem Kavramı İşlem Zamanlaması (Process Scheduling) İşlemler Üzerindeki Faaliyetler İşlemler Arası İletişim (Interprocess Communication)
İşletim sistemlerinde, gerçekleştirilen işlemlerin geçici olarak saklandığı merkeze ana bellek (RAM) denir.
Bellek Yönetimi 2 İşletim sistemlerinde, gerçekleştirilen işlemlerin geçici olarak saklandığı merkeze ana bellek (RAM) denir. Ana bellek, giriş-çıkış aygıtlarının kolaylıkla ulaşabildiği bir bilgi deposudur.
Giriş. geleneksel işletim sistemlerinde her prosesin. aynı adres uzayında birden fazla akış kontrolü gerekebilir
3 İPLİKLER Giriş geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var. aynı adres uzayında birden fazla akış kontrolü gerekebilir aynı adres uzayında çalışan paralel
Çok işlemli (multitasking) sistemlerde işlemler (process) kısıtlı kaynakları kullanmak zorundadırlar.
Kilitlenme (Deadlock) 2 Çok işlemli (multitasking) sistemlerde işlemler (process) kısıtlı kaynakları kullanmak zorundadırlar. Bir işlem bir kaynak için talepte bulunur. Eğer bu kaynak müsait değilse, işlem
JAVADA DİZİ İŞLEMLERİ
JAVADA DİZİ İŞLEMLERİ Javada diziler nesnedirler, cdeki gibi hafızada yer kaplayan pointer değillerdir. Javada diziler, cye göre daha güvenilirdir. Dizilerin elemanlarına gelişigüzel değerler atayamazsınız.
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
PARALEL HESAPLAMA ÇAĞRI GİDER ENES BİLGİN
PARALEL HESAPLAMA ÇAĞRI GİDER 13011016 ENES BİLGİN - 13011004 Paralel Hesaplama Nedir? Paralel Hesaplamanın Avantajları Paralel Hesaplamanın Kullanım Alanları Paralel Hesaplama Yöntemleri, Donanım ve Yazılım
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
Algoritma ve Akış Diyagramları
Algoritma ve Akış Diyagramları Bir problemin çözümüne ulaşabilmek için izlenecek ardışık mantık ve işlem dizisine ALGORİTMA, algoritmanın çizimsel gösterimine ise AKIŞ DİYAGRAMI adı verilir 1 Akış diyagramları
ALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ [email protected] YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Bellek ve Adresleme Dinamik Bellek
GÖRÜNTÜ İŞLEME - (7.Hafta) KENAR BELİRLEME ALGORİTMALARI
GÖRÜNTÜ İŞLEME - (7.Hafta) KENAR BELİRLEME ALGORİTMALARI Bu konuda bir çok algoritma olmasına rağmen en yaygın kullanılan ve etkili olan Sobel algoritması burada anlatılacaktır. SOBEL FİLTRESİ Görüntüyü
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,
YZM 2116 Veri Yapıları
YZM 2116 Veri Yapıları Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bu bölümde, BÖLÜM - 3 Motivasyon: Neden Listeye İhtiyaç Var? Bağlı
