Problem - Unix / Windows PROCESS-Süreçleri "ağır" dır. Hafta 07: Threads (İş Parçacıkları) Örnek - 1. Proses=Bir iş parçacığı (single thread)

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

Download "Problem - Unix / Windows PROCESS-Süreçleri "ağır" dır. Hafta 07: Threads (İş Parçacıkları) Örnek - 1. Proses=Bir iş parçacığı (single thread)"

Transkript

1 Hafta 07: Threads (İş Parçacıkları) Overview (Genel Bakış) Multithreading Models (Çoklu Thread Modelleri) Threading Issues (Thread Sorunları) Pthreads (Pthreadler) Solaris 2 Threads (Solaris 2 Threadleri) Windows 2000 Threads (Windows 2000 Threadleri) Java Threads (Java Threadleri) Problem - Unix / Windows PROCESS-Süreçleri "ağır" dır Işlem bağlamda, çok sayıda veri bellek yönetimi dosya sistemleri, vb okuduğunuz zaman İşlemci çok bilgi önbelleğe Bellek Yönetimi bilgileri Etkin sayfaları Önbellekleri Pahalı içerik anahtarları ve tuzaklar 100 adlı mikrosaniye Ayrı süreçler ayrı adres boşluk var Paylaşılan bellek sınırlı veya varolmayan İç eşzamanlıklı uygulamalar zor Bağımsız süreçler vs işbirliği faaliyetleri arasındaki izolasyon Temelde farklı hedefleri olan işlerde Proses=Bir iş parçacığı (single thread) Örnek İşlemci Zamanlayıcısı Proses C Birinci resim İkinci resim Üçüncü resim Üç resim üç ayrı proses gibi istenebilse Internet den resmin gelmesini bekle Internet den resmin gelmesini bekle Internet den resmin gelmesini bekle Sayfanın ekranda gösterilmesi çok daha hızlı olur Web Sunucusu - Aynı anda birden çok istekleri desteklemek için ne yaparız? Bir çözüm: Paralel olarak çalıştırılacak çeşitli süreçler oluşturmak Süreçleri aynı adres alanı eşlemek için paylaşılan bellek (shmget ()) kullanmalı OS için paralel zamanlama Etkin değil Alan(space) : PCB, sayfa tabloları, vs Zaman(time): OS yapıları (fork ()) ve bağlam anahtarı oluşturma Örnek 2 Yoğun işlem işleme sistemleri Örneğin, uçak rezervasyonları veya banka ATM işlemleri 1000 saniyede işlem İşlem başına çok küçük hesaplama olsa da İşlem başına ayrı süreçler çok pahalı Diğer teknikler (örneğin, mesaj vermek) çok daha karmaşıktır Bu Problem Kısmen Unix, Linux ve Windows ve Büyük, güçlü işlemciler (ör., Pentium 4) bir eserdir En büyük sistemlerde meydana eğilimindedir Küçük ölçekli sistemlerde seyrek PDA'lar, cep telefonları, el oyunları Kapalı sistemlerde (örneğin, kontrollü uygulamaları)

2 Çözüm - Threads Bir iş parçacığı-thread bir Unix veya Windows süreci bağlamında bir program veya yordam yürütme Diğer bir deyişle, süreç kavramın da uzman Bir iş parçacığı kendi var Program sayacı, kaydediciler yığın Bir iş parçacığı hisse Adres alanı, yığın, statik veri Tüm diğer kaynaklar Aynı işlem, tüm diğer konuları ile İş parçacığı (thread) Bazı uygulamalarda bir prosesin içinde farklı bölümleri belli sınırlar içinde birbirinden bağımsız çalıştırılabilir Bir proses içinde birden fazla proses parçacığı paralel olarak çalıştırılabilir. Böyle proses parçacıklarına iş parçacığı (thread) denir. İş parçacığı kavramının yararı bir proses içinde çoklu çalıştırma imkanının sunulmasıdır. Tek bir proses içinde çoklu iş parçacıklarının çalıştırılabilmesi, çoklu programlamada birden fazla prosesin çalıştırılabilmesine denktir Threads İş Parçacıkları İş Parçacığı(Thread) Modeli İşlemin eş zamanlı olarak işlenen her bir bölümüdür. İş parçacığı ve işlem arasındaki fark bir işletim sisteminden iş parçacığının oluşturuluşu ve kaynakların paylaşılmasıdır. Çoğu durumda iş parçacıkları işlemlerin-process içinde yer alır, onları oluştururlar. Çoklu iş parçacıkları paralel olarak pek çok bilgisayar sisteminde uygulanabilir. İşlemler aynı kaynakları paylaşmazlar (bellek gibi). Fakat aynı işlem içindeki farklı thread ler aynı kaynakları paylaşabilirler. Bir süreç içerisindeki tüm threadler, aynı adres uzayını, açık dosyaları, genel değişkenler gibi kaynakları paylaşırlar. Süreçler ise fiziksel belleği, diskleri, yazmaçları, ve diğer genel kaynakları paylaşırlar. Her thread kendi sürecinin içerisindeki tüm adreslere erişebilir, bir thread başka bir thread'in yığınına(stack) yazabilir, okuyabilir, ya da tamamen boşaltabilir. Threadler yanı işi gerçekleştirmek üzerinde ortaklaşa çalışırlar İş Parçacığı(Thread) Modeli İş Parçacığı(Thread) Modeli Her process-süreç için Adres Uzayı(Address Space) Genel değişkenler Açık dosyalar Çocuk süreçler Askıya alma ikazları (pending alarms) Sinyal ve sinyal işleyiciler hesap bilgisi Her iş parçacığı-thread için Program sayacı (program counter) Yazmaçlar(registers) Yığın(Stack) Durum bilgisi(state) Süreçler gibi threadlerde hazır(ready), bloklanmış(blocked), çalışır(running) ve sonlanmış(terminated) durumlarında bulunabilir. Çalışır durumda olan thread şu anda aktiftir ve işlemciyi kullanmaktadır. Birinci kolonda bir süreç içerisindeki tüm threadlerce paylaşılan değişkenler, ikinci kolonda ise thread e özel olan değişkenler listelenmiştir. Bloklanmış bir thread, bir olayın olmasını beklemektedir. Örneğin, klavyeden bir verinin girilmesini bekleyen thread bloklanmıştır. Hazır olan thread ise çalışabilir durumdadır ve kendisine sıra geldiginde çalışacaktır

3 İş Parçacığı(Thread) Modeli Her threadin kendi yığını(stack) bulunmaktadır. Örnek Şimdi öyle bir uygulama düşünelim ki: Bu uygulama bir dosyadan okuma yapsın, Okuduğu veri üzerinde hesaplama yapıp, Hesaplamanın sonucunu başka bir dosyaya yazsın. Burada kaç işlemden bahsediyoruz? 1.Dosyadan okuma yapma (G/Ç) 2.Okunan veri üzerinde hesaplama yapma (CPU çalışıyor) 3.Hesaplama sonucunu başka bir dosyaya yazma (G/Ç) Threads Threads 0xFFFFFFFF Virtual address space SP thread 1 stack thread 2 stack thread 3 stack heap SP (T1) SP (T2) SP (T3) Linux, Windows ve Unix çeşitli sürümleri kendi parçacığı arayüzlere sahip Standart değil, ama benzer Bazı konular Unix Örneğin, ERRNO - sistem çağrıları tarafından statik bir değişken seti Fork() ve exec () anlamı static data 0x PC code (text) PC (T2) PC (T1) PC (T3) CS-502 Fall Threads Threads Kimler konuları oluşturur ve yönetir? Kullanıcı düzeyinde uygulanması Fonksiyon kütüphanesi ile yapılır (örneğin, POSIX) Süre sistemi - kullanım alanı dışında, süreç yönetimine benzer Windows NT - lifler: Bir kullanıcı düzeyinde process mekanizması Kernel uygulanması - Yeni sistem çağrıları ve yönetmek için yeni bir varlık Linux: Hafif süreci (YSP) Windows NT ve XP: Threads Benefits (Faydaları) Responsiveness (Yanıt verme kabiliyeti) Resource Sharing (Kaynak Paylaşımı) Economy (Ekonomik) Utilization of MP Architectures (MP Mimarilerinin kullanımı)

4 Threads User Threads(Kullanıcı Threadleri) thread bir nesne değil bir akış kontrolü yöntemidir Sırayla işletilecek bir dizi komut barındırır Thread bir nesnedir??????????? Farklı metotlar ile Yeni bir Thread oluşturup çalışabilir hale getirir ve run() Yeni Thread hayatına bu metodun içinde başlar Thread management done by user-level threads library (Thread yönetimi kullanıcı-seviye threadleri kütüphanesi tarafından yapılır.) Examples (Örnekler) - POSIX Pthreads (POSIX Pthreadleri) - Mach C-threads (Mach C-threadleri) - Solaris threads (Solaris threadleri) Kernel Threads(Çekirdek Thredleri) Single and Multithreaded Processes (Tek ve Çoklu Thread Süreçleri) Supported by the Kernel (Çekirdek tarafından desteklenir) Examples (Örnekler) - Windows 95/98/NT/2000/son sürümler - Solaris - Tru64 UNIX - BeOS - Linux Threads (İş Parçacıkları) Multithreading vs. Multiprocessing Multithreading:Program içerisinde aynı anda birden fazla işin yapılabilmesi. Aynı program içerisinde birçok Thread çalışabilir. Bu iş parçacıkları eşzamanlı olarak asenkron veya senkron olarak çalışabilir. Bağımsız işlemlerle karşılaştırıldığında iş parçacıkları daha hafiftir İş parçacıkları aynı adres alanını paylaştıkları için veri ve kodları paylaşabilir. İçerik değiştirme iş parçacıklarında işlemlere göre daha az pahalıdır. İş parçacıkları arası haberleşme işlemler arası haberleşmeye göre daha ucuzdur İş parçacıkları farklı görevlerin aynı zaman aralığında gerçekleştirilmesine olanak sağlarlar

5 Multithreading Models (Çoklu Thread Modelleri) Many-to-One (Çoka Bir) One-to-One (Bire Bir) Many-to-Many (Çoka Çok) Many-to-One (Çoktan- Bire) Many-to-One Model (Çokludan-tek Modeli) Many user-level threads mapped to single kernel thread. (Çok sayıda kullanıcı-seviye threadleri tek çekirdek thread i ile eşlenir.) Used on systems that do not support kernel threads. (Çekirdek threadlerini desteklemeyen sistemlerde kullanılır.) One-to-One (Bire Bir) One-to-one Model (Bire Bir Modeli) Each user-level thread maps to kernel thread. (Her kullanıcı-seviye thread i çekirdek thread i ile eşlenir.) Examples (Örnekler) - Windows 95/98/NT/ OS/

6 Many-to-Many Model (Çoktan-Çoka Modeli) Many-to-Many Model (Çoktan- Çoka Modeli) Allows many user level threads to be mapped to many kernel threads. (Çok sayıda kullanıcı-seviye threadlerinin, çok sayıda çekirdek threadleri ile eşleşmesini sağlar.) Allows the operating system to create a sufficient number of kernel threads. (İşletim sisteminin yeterli sayıda çekirdek threadi oluşturmasını sağlar. ) Solaris 2 Windows NT/2000 with the ThreadFiber package (ThreadFiber paketi ile Windows NT/2000) Threading Issues (Threading Sorunları) Semantics of fork() and exec() system calls (fork() ve exec() sistem çağrılarının semantiği) Thread cancellation (Thread iptal etme) Signal handling (Sinyal işleme) Thread pools (Thread havuzları) Thread specific data (Thread özel verisi) Pthreads a POSIX standard (IEEE c) API for thread creation and synchronization. (Thread yaratma ve senkronizasyon için bir POSIX standartı(ieee c) vardır.) API specifies behavior of the thread library, implementation is up to development of the library. (API thread kütüphanesinin davranışını belirtir, uygulama kütüphanenin gelişmesine bağlıdır.) Common in UNIX operating systems. (Unix işletim sistemlerinde yaygın olarak kullanılır) Solaris 2 Threads (Solaris 2 Threadleri) Solaris Process (Solaris Süreci)

7 Windows 2000 Threads (Windows 2000 Threadleri) Implements the one-to-one mapping. (Bire Bir eşlemede uygulanır.) Each thread contains (her thread şu özellikleri içerir) - a thread id (thread id si) - register set (belirlenen kayıt) - separate user and kernel stacks (ayrı kullanıcı ve çekirdek yığınları ) - private data storage area (özel veri depolama alanı) Linux Threads (Linux Threadleri) Linux refers to them as tasks rather than threads. (Linux onları threadler yerine görevler olarak içerir) Thread creation is done through clone() system call. (Thread oluşturulması clone() sistem çağrısı tarafından yapılır) Clone() allows a child task to share the address space of the parent task (process) (Clone() çocuk görevin, ana görevin adres alanını paylaşmasını sağlar.) Java Threads (Java Threadleri) Java threads may be created by: (Java threadleri aşağıdakiler tarafından oluşturulabilir:) Java Thread States (Java Thread Durumu) Extending Thread class (Thread sınıfına uzanma) Implementing the Runnable interface (Çalıştırılabilir ara yüzleri yürütme) Java threads are managed by the JVM. (Java threadleri JVM tarafından yönetilir.) Win32-THREAD LER Thread kullanımı Win32 sistemleriyle mümkün hale getirilmiştir. Klasik UNIX sistemlerinde thread kavramı yoktur. Ancak son yıllarda UNIX sistemlerine de thread konusu dahil edilmiştir. Bir process n thread den oluşur. Her process çalışmaya tek bir thread le başlar. Buna ana thread denir. Process in çalışması ana thread den başlar. Diğer thread ler herhangi bir zamanda herhangi bir thread içerisinde CreateThread API fonksiyonuyla yaratılırlar. Thread bir process in farklı bir programmış gibi çalışabilen parçalarına denir. Win32 nin zaman paylaşımlı çalışma sistemi process temelinde değil thread temelinde yapılmaktadır. Örneğin sistemde üç process çalışmakta olsun. P1 process inin üç, P2 process inin dört, P3 process inin de iki thread i olsun. Win32 sistemlerinin işleme süresi-quanta süresi 20 ms dir. Sistem her quanta süresi dolduğunda dokuz thread den birini bırakacak diğerini alacaktır

8 Bir process in thread leri sanki ayrı programlarmış gibi asenkron bir biçimde ele alınıp çalıştırılırlar. C programcısı için herhangi bir fonksiyon thread olarak tanımlanabilir. Bir thread CreateThread API fonksiyonuyla yaratılıp çalıştırılmaya başlanır Aşağıdaki durumlardan bir tanesi oluştuğunda sonlanır. 1. Thread olarak belirlenen fonksiyonun içerisinde ExitThread API fonksiyonunun çağırılması ile, 2. Thread olarak belirlenen fonksiyon ana bloğunu bitirip sonlandığında, 3. Thread olarak belirtilen fonksiyon içerisinde return anahtar sözcüğü kullanılarak fonksiyon sonlandırıldığında. Aslında thread olarak belirlenen fonksiyon yalnızca thread in başlangıç ve bitiş noktalarını belirlemekte etkilidir. Yoksa thread bir akış belirtir. Ana thread in başlangıç noktası derleyicinin başlangıç kodudur. WinMain başlangıç kodu tarafından çağırılır. WinMain akış bakımından ana thread i temsil eder. Bir process yaratıldığında ana thread işletim sistemi tarafından yaratılır. Yani WinMain içerisinde akış ana thread üzerindedir. Fakat ana thread in başlangıç noktası derleyicinin başlangıç kodudur Örneğin iki thread in akışı aynı herhangi bir fonksiyonun içerisinde olabilir. Özetle thread bir akış belirtir. Thread fonksiyonu ise sadece akışın başlangıç fonksiyonudur. Bir thread fonksiyonu bittiğinde akış nereden devam edecektir? ---Aslında thread fonksiyonu CreateThread API fonksiyonu içerisinden çağırılır. Thread fonksiyonu doğal olarak sonlandığında akış CreateThread içerisinden devam eder. İşte o noktada ExitThread fonksiyonu uygulanır. CreateThread ve ExitThread fonksiyonları mantıksal olarak şunları yapmaktadır: CreateThread() Yeni akış yarat Thread fonksiyonunu çağır ExitThread ExitThread() Akışı sil Tabii CreateThread API fonksiyonu çağırıldığında bu fonksiyon yeni bir akışı yaratarak kendi akışına devam eder

9 Bir process in thread ler arasındaki geçişlerinde sayfa tablosunda hiçbir değişiklik yapılmaz. Yani bir process in bütün thread leri aynı adres alanı içerisinde çalışmaktadır. Aynı thread lerin arasındaki haberleşme normal global değişkenler kullanılarak yapılabilir. Ancak farklı process lerin thread leri arasındaki geçiş sırasında sayfa tablosu yeniden düzenlenir. Böylece farklı process lerin thread leri arasıda adres alanı bakımından bir izolasyon sağlanmış durumundadır. Aynı process in thread leri arasındaki geçiş zamansal bakımdan farklı process lerin thread leri arasındaki geçişten daha hızlıdır. Thread lerle Çalışmanın Process lerle Çalışmaya Göre Avantajları Thread sisteminin olmadığı işletim sistemlerinde işlemler process lerle yapılır. Thread lerle çalışmanın process lerle çalışmaya göre avantajları şunlardır: 1. Thread ler arasındaki geçiş işlemi process ler arasındaki geçiş işleminden daha hızlı yapılır(tabii farklı process lerin thread leri arasındaki geçiş söz konusuysa bu daha yavaştır). 2. Çoklu thread çalışmalarında process in bloke olma olasılığı daha azdır. Örneğin klavyeden bir girdi beklense tüm process bloke edilmez, yalnızca işlemin yapıldığı thread bloke edilir(process in bloke edilmesi işletim sisteminin bir process i dışsal bir olay gerçekleşene kadar çizelge dışı bırakması işlemidir). 3. Thread ler arası haberleşme process ler arası haberleşmeden çok daha kolaydır. Sadece global değişkenlerle haberleşme sağlanabilir Thread lerle Çalışmanın Process lerle Çalışmaya Göre Dezavantajları 1. Thread ler arasında process lere göre daha yoğun bir senkronizasyon uygulamak gerekir. 2. Process ler birbirlerinden izole edildikleri için çok process le çalışılması daha güvenlidir. İşlevlerine Göre Thread lerin Sınıflandırılması 1. Uyuyan Thread ler(sleepers threads): Bu tür thread ler bir olay oluşana kadar beklerler. Olay oluşunca bir faaliyet gösterirler. Sonra o olay oluşana kadar yeniden beklerler. Tabii bekleme işi thread bloke edilerek yapılmaktadır. 2. Tek İş Yapan Thread ler(one shot threads): Bu thread ler bir olay gerçekleşene kadar bekler. Olay gerçekleşince faaliyet gösterir ve thread in çalışması biter. 3. Önceden Faaliyet Gösteren Thread ler(anticipating threads): Burada ileride yapılacak bir işlem önceden yapılır. Eğer akış o işleme gerek kalmayacak bir biçimde gelişiyorsa işlem boşuna yapılmış olur. Eğer akış o işlemin farklı bir biçimde yapılmasını gerektirecek bir şekilde gelişiyorsa o işlem yeniden yapılır. 4. Beraber Faaliyet Gösteren Thread ler: Burada spesifik bir iş vardır. CPU dan daha fazla zaman alacak biçimde işlem birden fazla thread tarafından yapılır. 5. Bağımsız Faaliyet Gösteren Thread ler: Bu thread ler tamamen farklı amaçları gerçekleştirmek için yazılır. Genellikle bir senkronizasyon problemi oluşturmazlar. Tasarım kolaylığı sağlamak amacıyla kullanılırlar Thread lerin Öncelik Derecelendirilmesi Windows ve UNIX sistemleri çizelgeleme algoritması olarak döngüsel çizelgeleme(round robin scheduling) metodu kullanılır. Örneğin sistemde 8 tane thread şu önceliklerle bulunsun: Bu çizelgeleme yönteminde process ler ya da thread ler sırasıyla çalıştırılır. Liste bittiğinde başa dönülerek tekrardan başlanır. Ancak Win32 de öncelikli döngüsel çizelgeleme(priority round robin scheduling) denilen bir yöntem kullanılır. Bu yöntemde her thread in 0-31 arasında bir öncelik derecesi vardır. Bu yöntemde en yüksek öncelikli thread grubu diğerlerine bakılmaksızın kendi aralarında çalıştırılır. O grup tamamen bitirilince daha düşük gruptakiler yine kendi aralarında çizelgelenir ve işlemler böyle devam ettirilir. İlk önce 18 öncelikliler işleme alınır. Bu grup bitirilince 14 lükler kendi aralarında çalıştırılır ve bitirilirler. Sonra 8 likler en son da 1 likler kendi aralarında çalıştırılıp bitirilirler. Düşük öncelikli thread lerin çalışma olasılıkları düşük olmakla birlikte 0 değildir. Ancak düşük öncelikli thread ler iki nedenden dolayı çalışma fırsatı bulabilirler:

10 ThreadState 1. Yüksek öncelikli bütün thread lerin bir t anında bloke edilmiş olma olasılığı vardır. Böylelikle düşük öncelikli thread ler de çalışma fırsatı bulur. 2. Win32 sistemleri ismine dinamik yükseltme(dynamic boosting) uygular. Dinamik yükseltme uygulanan iki durum vardır: a) Bir thread 3-4 saniye süresince hiç çalışma fırsatı bulamadıysa Win32 tarafından önceliği 2 quanta süresi kadar 15 e yükseltilir. 2 quantadan sonra tekrar eski derecesine indirilir. b) Hiçbir giriş-çıkış faaliyetine yol açmayan ve hiçbir penceresi olmayan process lere background process denir. Bir penceresi olan ve giriş-çıkış işlemi kullanan process lere foreground process denir. Giriş-çıkış işlemlerine yol açan sistem fonksiyonları otomatik olarak process i bir quanta süresi için 2 derece, sonraki quanta süresi içinse 1 derece yükseltirler. Sonraki quanta larda eski haline döndürülürler using System; using System.Threading; C# Örnekleri(Ve diğerleri) namespace ConsoleApplication10 class ThreadTest static void Main() Thread t = new Thread (WriteY); // Kick off a new thread t.start(); // running WriteY() // Simultaneously, do something on the main thread. for (int i = 0; i < 1000; i++) Console.Write ("x"); İşletim Sistemlerinde Thread Çekirdeklerde büyük, çoklu iş parçacıklı programlara dönüşmüştür. Eşzamanlı etkinliği çok Aynı anda çalışan birden çok cihaz Aynı anda birden fazla uygulama faaliyetleri Yararlı bir araç Özel çekirdek iplik paketleri, senkronizasyon ilkellerini, vb static void WriteY() for (int i = 0; i < 1000; i++) Console.Write ("y"); 7.57 Karmaşık OS ortamlar için faydalı 7.58 using System; using System.Threading; namespace ConsoleApplication10 class ThreadTest bool done; static void Main() new Thread(Go).Start(); // Call Go() on a new thread Go(); // Call Go() on the main thread static void Go() // Declare and use a local variable - 'cycles' for (int cycles = 0; cycles < 5; cycles++) Console.Write('?'); Kaynakçalar Yrd.Doç.Dr.Nurettin Beşli Sistem Programcılığı

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition Bölüm 4: İş Parçacıkları 14.1 Silberschatz, Galvin and Gagne 2009 Bölüm 4: İş Parçacıkları Genel Bakış Çoklu İş Parçacığı Modelleri İş Parçacığı Kütüphaneleri İş Parçacıkları ile İlgili Meseleler İşletim

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ı

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition

Bölüm 4: İş Parçacıkları. Operating System Concepts with Java 8 th Edition Bölüm 4: İş Parçacıkları 14.1 Silberschatz, Galvin and Gagne 2009 Bölüm 4: İş Parçacıkları Genel Bakış Çoklu İş Parçacığı Modelleri İş Parçacığı Kütüphaneleri İş Parçacıkları ile İlgili Meseleler İşletim

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 Sistemleri (Operating Systems)

İşletim Sistemleri (Operating Systems) İşletim Sistemleri (Operating Systems) 1 Thread (İşlemcik) Thread (İşlemcik) Nedir? Thread (işlemcik-iplik); Belli bir process e bağlıdır. Bağlı bulundukları process in adres uzayını kullanırlar, Thread

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ı

PROCESS YARATIMI (TEKRAR):

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

Detaylı

YZM 3102 İşletim Sistemleri

YZM 3102 İşletim Sistemleri YZM 3102 İşletim Sistemleri Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BÖLÜM - 5 Bu bölümde, Thread (İş Parçacığı) Thread lerin Faydaları

Detaylı

Bölüm 4: Threads (İş Parçaları)

Bölüm 4: Threads (İş Parçaları) Bölüm 4: Threads (İş Parçaları) Mehmet Demirci tarafından çevrilmiştir. Silberschatz, Galvin and Gagne 2013 Bölüm 4: Threads (İş Parçaları) Genel bakış Çok çekirdekli programlama Çok iş parçalı modeller

Detaylı

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312 Giriş Bilgisayar İşletim Sistemleri BLG 312 İplikler geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü vardır bazı durumlarda, aynı adres uzayında birden fazla akış kontrolü

Detaylı

Giriş. geleneksel işletim sistemlerinde her prosesin. aynı adres uzayında birden fazla akış kontrolü gerekebilir

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

Detaylı

İş Parçacıkları Thread(s)

İş Parçacıkları Thread(s) İş Parçacıkları Thread(s) Bir çok geliştirici programlarını doğrusal(linear) bir şekilde oluşturmaktadır. Böyle bir durumda tek bir processin işini bitirmesi beklenmekte ve ardından bir sonraki kod parçasına

Detaylı

Giriş. İplik Modeli. geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var.

Giriş. İplik Modeli. geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü var. Giriş 3 İPLİKLER geleneksel işletim sistemlerinde her in özel adres uzayı ve tek akış kontrolü var. aynı adres uzayında birden fazla akış kontrolü gerekebilir aynı adres uzayında çalışan paralel ler gibi

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ı

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ı

YZM 3102 İşletim Sistemleri

YZM 3102 İşletim Sistemleri YZM 3102 İşletim Sistemleri Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği BÖLÜM - 3 Bu bölümde, Proses Kavramı Proses Üzerindeki Bilgiler

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ı

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

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

Detaylı

İşletim Sistemlerinde Çok Prosesli Çalışma

İşletim Sistemlerinde Çok Prosesli Çalışma İşletim Sistemlerinde Çok Prosesli Çalışma Kaan Aslan 4 Mart 2008 İşletim sistemlerini proses yönetimine göre kabaca tek prosesli (single processing) ve çok prosesli (multiprocessing) olmak üzere iki gruba

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ı

İŞLETİM SİSTEMLERİ. (Operating Systems)

İŞ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

Detaylı

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması Sistem Programlama Sistem programlama bilgisayar mühendisliğinin bir alanı olup karmaşık sistemlerin ve bu sistemlerin parçalarının ile ilgilenir. İşletim Sistemlerinin Programlaması Giriş/Cıkış( I/O)

Detaylı

İşlem Yönetimi (Process Management)

İş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

Detaylı

İş Parçacıkları (Threads)

İş Parçacıkları (Threads) İş Parçacıkları (Threads) Bir elin nesi var iki elin sesi var -Atasözü- Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 11 1 İŞ PARÇACIKLARI (THREADS) Geçen bölümlerde yapılan uygulama örnekleri

Detaylı

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

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)

Detaylı

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

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)

Detaylı

& WIN 32 DEN BAKIŞ AÇISI İSMAİL YALÇIN

& 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

Detaylı

Bilgisayar Sistemlerine Genel Bakış

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.

Detaylı

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME Ecem İren Halilcan Can Akince Aylin Kantarcı Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü Bilgisayar Müh. Bölümü

Detaylı

Görsel Programlama DERS 11. Görsel Programlama - Ders11/ 1

Görsel Programlama DERS 11. Görsel Programlama - Ders11/ 1 Görsel Programlama DERS 11 Görsel Programlama - Ders11/ 1 ÇOKLU KULLANIM(Multi Threading) Günümüz işletim sistemleri çok görevli(multi tasking) dir. Aynı anda farklı programlar çalışmakta, görevler yerine

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ı

Multithreading & Asynchronous Programlama

Multithreading & Asynchronous Programlama Multithreading & Asynchronous Programlama Concurent : Aynı zamanda olan olayları tanımlamak için kullanılır. Multithreaded : Çoklu yürütme içeriklerini tanımlar. Parallel : Aynı anda gerçekleşen işlemler

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

Detaylı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu bulunmaktadır; Performans:

Detaylı

İŞ SIRALAMA. İş Sıralamanın Amaçları. İş Sıralama Türleri - 1. İş Sıralama. İş Sıralama Türleri - 2

İŞ 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

Detaylı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu bulunmaktadır; 1. Performans: İşletim sistemi, makine

Detaylı

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312 Bilgisayar İşletim Sistemleri BLG 312 İşletim Sistemlerine Giriş Bilgisayar Sistemi uygulama programları derleyici editör komut yorumlayıcı işletim sistemi makina dilinde programlar mikroprogram (ROM da)

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

Programlama Dillerinde Kullanılan Veri Tipleri Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs

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ı

İş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ı

BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ

BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ Derleyen: Prof. Dr. Güngör BAL Bölüm 4 Yazılım: Sistemler ve uygulama yazılımı Prensipler ve Öğrenme hedefleri Sistemler ve uygulama yazılımı bireylerin ve organizasyonların

Detaylı

İŞ SIRALAMA. İş Sıralama 6. İşletim Sistemleri

İŞ 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ı

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ı

C# nedir,.net Framework nedir?

C# nedir,.net Framework nedir? 1 C# nedir,.net Framework nedir? C# nedir? C#, C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip iyi yönlerinin alındığı, güçlü basit, esnek, tip-güvenli(typesafe,tür dönüşümlerindeki

Detaylı

Öğr.Gör. Gökhan TURAN www.gokhanturan.com.tr. Gölhisar Meslek Yüksekokulu

Öğr.Gör. Gökhan TURAN www.gokhanturan.com.tr. Gölhisar Meslek Yüksekokulu Öğr.Gör. Gökhan TURAN www.gokhanturan.com.tr Gölhisar Meslek Yüksekokulu Bilgisayarın Yapısı Donanım (Hardware): Bir bilgisayara genel olarak bakıldığında; Kasa, Ekran, Klavye, Fare, Yazıcı, Hoparlör,

Detaylı

Yazılım Mühendisliğine Giriş 2018 GÜZ

Yazılım Mühendisliğine Giriş 2018 GÜZ Yazılım Mühendisliğine Giriş 2018 GÜZ 1 İşletim Sistemi (Operating System) 2 Unix İşletim Sistemi Unix AT&T çalışanları tarafından Bell Laboratuvarlarında 1969 yılında geliştirilmiştir. Farklı platformlar

Detaylı

BİT in Temel Bileşenleri (Yazılım-1)

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

Detaylı

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine İŞLETİM SİSTEMLERİNE GİRİŞ - 2 Kaynakların Paylaşımı (Resource Sharing) Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine sunar. Bir işletim sisteminde paylaşılan kaynaklar

Detaylı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

Detaylı

Bölüm 3: İşlemler Operating System Concepts with Java 8th Edition 3.1 Silberschatz, Galvin and Gagne 2009

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)

Detaylı

Veritabanı. Ders 2 VERİTABANI

Veritabanı. Ders 2 VERİTABANI Veritabanı Veritabanı Nedir? Birbiri ile ilişkili verilerin bir arada uzun süreli bulundurulmasıdır. Veritabanı bazen Veritabanı Yönetim sistemi veya Veritabanı Sistemi yerine de kullanılır. Gerçek dünyanın

Detaylı

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 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

Detaylı

İşletim Sistemleri. B L M Mesleki Te r minoloji I I Ö ğ r e n c i S unumu

İşletim Sistemleri. B L M Mesleki Te r minoloji I I Ö ğ r e n c i S unumu İşletim Sistemleri 1 4011029 R. Serkan Ke s kin 1 401103 9 Ö zcan Akdora B L M4811 - Mesleki Te r minoloji I I Ö ğ r e n c i S unumu Nedir? Bilgisayar donanımını yöneten yazılımdır. Bilgisayar yazılımlarının

Detaylı

YRD. DOÇ. DR. AGÂH TUĞRUL KORUCU Kernel çeşitleri

YRD. DOÇ. DR. AGÂH TUĞRUL KORUCU Kernel çeşitleri YRD. DOÇ. DR. AGÂH TUĞRUL KORUCU agah.korucu@gmail.com Kernel çeşitleri Tek Parçalı Çekirdek (Monolithic Kernel) Mikro Çekirdek (Microkernel) Melez Çekirdek (Hybrid Kernel) Dış Çekirdek (Excokernel) Tek

Detaylı

PARALEL HESAPLAMA ÇAĞRI GİDER ENES BİLGİN

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

Detaylı

İşletim Sistemleri (Operating Systems)

İşletim Sistemleri (Operating Systems) İşletim Sistemleri (Operating Systems) 1 Process (İşlem-Süreç) 2 İşletim Sistemi Process Yönetimi Process oluşturma ve sonlandırma (Process creation and termination) Process değiştirme (Process switching)

Detaylı

PROGRAMLAMAYA GİRİŞ DERS 2

PROGRAMLAMAYA GİRİŞ DERS 2 PROGRAMLAMAYA GİRİŞ DERS 2 Program editörde oluşturulur ve diske kaydedilir Tipik Bir C Programı Geliştirme Ortamının Temelleri 1. Edit 2. Preprocess 3. Compile 4. Link 5. Load 6. Execute Önişlemci programı

Detaylı

İŞLETİM SİSTEMLERİ TANIMI

İŞLETİM SİSTEMLERİ TANIMI İŞLETİM SİSTEMLERİ OPERATING SYSTEMS TANIMI Bilgisayar Sistemi Bir bilgisayar sitemi dört kısımdan oluşur: - Donanım(Hardware): Bilgisayarı oluşturan fiziksel parçalar. İşlemci, anakart, hdd, ram vb. -İşletim

Detaylı

Java Programlama Giriş

Java Programlama Giriş Java Programlama Giriş 2013-2014 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Teknik Bilimler Meslek Yüksekokulu Burdur 2014 Muhammer İLKUÇAR 1 Neden Java Programlama Platformdan bağımsızdır

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ı

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ İçerik Mikroişlemci Sistem Mimarisi Mikroişlemcinin yürüttüğü işlemler Mikroişlemci Yol (Bus) Yapısı Mikroişlemci İç Veri İşlemleri Çevresel Cihazlarca Yürütülen İşlemler

Detaylı

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1 Görsel Programlama DERS 01 Görsel Programlama - Ders01/ 1 Takdim Planı Nesneye Dayalı Programlama Kavramı Nesne, Sınıf Kavramı Java Programlama Dili Java Programlama Dili Temel Özellikleri Java Sürümleri

Detaylı

Bölüm 5: İşlemci Zamanlaması. Operating System Concepts with Java 8 th Edition

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

Detaylı

4. Bölüm Programlamaya Giriş

4. Bölüm Programlamaya Giriş 4. Bölüm Programlamaya Giriş Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 4.1. C# ile Program Geliştirme Net Framework, Microsoft firması tarafından açık internet protokolleri ve standartları

Detaylı

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN Bilgisayar Mühendisliğine Giriş Yrd.Doç.Dr.Hacer KARACAN İŞLETİM SİSTEMLERİ Bilinen İşletim Sistemleri İşletim Sistemlerinin Görevleri İşletim Sistemlerinin Gelişim Evresi İşletim Sistemi Türleri İşletim

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ı

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ı

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1 İsimler ve Kapsam Tanım: Bir değişkenin kapsamı (scope) değişkenin görülebilir olduğu komutların alanıdır. Görülebilir olduğu alan, bir komut içinde belirlenen değerle kullanılabildiği alandır. Tanım:

Detaylı

İşletim Sistemleri. Bilgisayar Mühendisliğine Giriş. Teknoloji Fakültesi / Bilgisayar Mühendisliği. Öğr.Gör.Günay TEMÜR

İşletim Sistemleri. Bilgisayar Mühendisliğine Giriş. Teknoloji Fakültesi / Bilgisayar Mühendisliği. Öğr.Gör.Günay TEMÜR İşletim Sistemleri Bilgisayar Mühendisliğine Giriş Teknoloji Fakültesi / Bilgisayar Mühendisliği Öğr.Gör.Günay TEMÜR İşletim sistemi (Operating System) Bir işletim sistemini orkestrayı yöneten bir maestro

Detaylı

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach() (LOOPS) while(), do-while(), for(), foreach() Döngüler (loops) while do-while for foreach while ( koşul ) işlemler; do işlemler; while (koşul ); for (başlangıç ; koşul ; arttırma) işlemler; foreach ( tip

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ı

Java Temel Özellikleri

Java Temel Özellikleri Java Temel Özellikleri Java Programlama Dili Java programlama dili şu anda dünyadaki en popüler programlama dillerinden biri haline gelmiştir. Java SUN bilgisayar şirketince elektrikli ev aletlerinin birbiriyle

Detaylı

Hafta 13 Fonksiyonlar

Hafta 13 Fonksiyonlar BLM111 Programlama Dilleri I Hafta 13 Fonksiyonlar Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı fonksiyonları ve kütüphane fonksiyonlarını birlikte kullanırlar.

Detaylı

Bilgisayar İşletim Sistemleri BLG 312

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

Detaylı

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. C PROGRAMLAMA FONKSİYONLAR Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en kolay yolu onları küçük parçalar halinde yazıp sonra

Detaylı

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 Bölüm 11 Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 11. Bölüm konuları Soyutlama kavramı Veri soyutlamasına giriş Soyut veri tipleri için tasarım konuları Dil örnekleri Parametreli

Detaylı

İşletim Sistemlerine Genel Bakış

İşletim Sistemlerine Genel Bakış İşletim Sistemlerine Genel Bakış 1.1 Silberschatz, Galvin and Gagne 2009 İşletim Sistemi Nedir? Bilgisayar donanımı ile bilgisayar kullanıcısı arasında bir ara katman olarak aracılık etmek İşletim sisteminin

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış Kepware Veritabanı Ürünleri Teknolojiye Genel Bir Bakış Gündem Veritabanı Client API teknolojisinin gözden geçirilmesi ODBC istemci sürücüsü- bir KEPServerEX Plug-In Haberleşme Sürücüsüdür. DataLogger-

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Servlet Üst Düzey Programlama-ders01/ 1 Servlet Nedir? Web sayfaları ilk başlarda durağan bir yapıya sahipti ve kullanıcıdan bilgi alarak işlemler yapmıyordu. Zamanın geçmesiyle kullanıcıya

Detaylı

İŞLETİM SİSTEMLERİ (POSIX THREADS v1)

İŞLETİM SİSTEMLERİ (POSIX THREADS v1) YILDIZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ İŞLETİM SİSTEMLERİ (POSIX THREADS v1) ARŞ. GRV. UĞUR ÇEKMEZ Multi Thread Programlama Thread Çalışma Mantığı Basit manada threadler, bir prosesin içinde

Detaylı

public static int Toplam int x, int y

public static int Toplam int x, int y static Kavramı 1 İçinde bulunduğu sınıftan nesne oluşturulmadan veya hiç bir nesneye referans olmadan kullanılabilen üyeler static olarak nitelendirilir. Metotlar ve alanlar static olarak tanımlanabilir.

Detaylı

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar) Bus

Detaylı

İşletim Sistemleri. Discovering Computers Living in a Digital World

İşletim Sistemleri. Discovering Computers Living in a Digital World İşletim Sistemleri Discovering Computers 2010 Living in a Digital World Sistem Yazılımı Sistem yazılımı, bilgisayar ve aygıtlarının çalışmasını kontrol eden ve sürdüren programlardan oluşur. İşle;m sistemleri

Detaylı

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. 1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. [10 puan] int param = 30; int result = 300; if (param > 45) result

Detaylı

Binnur Kurt binnur.kurt@ieee.org. İstanbul Teknik Üniversitesi Bilgisayar MühendisliM

Binnur Kurt binnur.kurt@ieee.org. İstanbul Teknik Üniversitesi Bilgisayar MühendisliM İşletim Sistemleri Binnur Kurt binnur.kurt@ieee.org İstanbul Teknik Üniversitesi Bilgisayar MühendisliM hendisliği i BölümüB İşletim Sistemleri Copyright 2005 1 Version 0.0.1 About the Lecturer BSc İTÜ,

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ı

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır.

İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır. İŞLETİM SİSTEMİ İşletim sistemi kullanıcıyla bilgisayar donanımı arasında iletişim sağlayan programdır. Programların ve donanımların kullanılması için bir çalıştırılması platformu oluşturur. Sistemin yazılım

Detaylı

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 4 Ders 2 Yrd. Doç. Dr. Melike Şah Direkoğlu Alındığı kaynak: Addison-Wesley s Programming Language Concepts slaytları ve Prof. Dr. Tuğrul Yılmaz ın ders notlarından

Detaylı

İşletim Sistemlerine Giriş 2. Kaynakların Paylaşımı. Öğr.Gör. Dr. Şirin KARADENİZ

İşletim Sistemlerine Giriş 2. Kaynakların Paylaşımı. Öğr.Gör. Dr. Şirin KARADENİZ İşletim Sistemlerine Giriş 2 Kaynakların Paylaşımı Öğr.Gör. Dr. Şirin KARADENİZ Kaynakların Paylaşımı Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine sunar. Bir işletim sisteminde

Detaylı

MOBIL UYGULAMA GELIŞTIRME

MOBIL UYGULAMA GELIŞTIRME MOBIL UYGULAMA GELIŞTIRME PELIN YILDIRIM FATMA BOZYIĞIT YZM 3214 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Bu Derste Android Nedir ve Uygulama Temelleri Android Uygulama Bileşenleri

Detaylı

Dosya Yönetim Sistemi Hazırlayan : mustafa kaygısız Kaynak: megep.meb.gov.tr

Dosya Yönetim Sistemi Hazırlayan : mustafa kaygısız Kaynak: megep.meb.gov.tr Dosya Yönetim Sistemi Hazırlayan : mustafa kaygısız Kaynak: megep.meb.gov.tr İşletim sisteminin dosyaları organize etme ve yönetme için ne kullandığını gösteren ifadedir. Dosya verilerin toplandığı birimlerdir

Detaylı

BTEP243 Ders 3. class Yazım Kuralı:

BTEP243 Ders 3. class Yazım Kuralı: BTEP243 Ders 3 Sınıflar ve Nesneler Nesne tabanlı programlamada, programlamanın temeli sınıflardır (class). Nesnelerin yaratılmasında taslak (blueprint) görevi görür. Sınıflar; o Nesnelerin özelliklerinin

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar)

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ı

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN Basit C Programları: Bir Metni Yazdırmak #include /* program çalışmaya main fonksiyonundan başlar*/ int main() { printf( "C diline hoşgeldiniz!\n"

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ Ders 10 LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ LINUX de Programlama LINUX işletim sistemi zengin bir programlama ortamı sağlar. Kullanıcılara sistemi geliştirme olanağı sağlar.

Detaylı

Süreç 1 Kavramı ve Oluşturma Yöntemleri

Süreç 1 Kavramı ve Oluşturma Yöntemleri İçindekiler Süreç Kavramı ve Oluşturma Yöntemleri...2 UNIX / Linux Sistemlerinde fork ve exec Sistem Çağrıları İle Süreç Kopyalama ve Çalıştırma...3 Thread Kavramı...7 Thread lerin İşletim Sistemleri Tarafından

Detaylı

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık İşletim Sistemleri

İşletim Sistemleri. Dr. Binnur Kurt Omega Eğitim ve Danışmanlık  İş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ı