<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yıldırım -- İşadamı &#187; işletim sistemi</title>
	<atom:link href="http://yildirim.isadamlari.org/tag/isletim-sistemi/feed" rel="self" type="application/rss+xml" />
	<link>http://yildirim.isadamlari.org</link>
	<description>M. Salih YILDIRIM'ın Kişisel Karalamacı</description>
	<lastBuildDate>Sun, 21 Feb 2010 15:12:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>İşletim Sistemleri 01.3 &#8211; İşlemler</title>
		<link>http://yildirim.isadamlari.org/2009/isletim-sistemleri-01-3-islemler.html</link>
		<comments>http://yildirim.isadamlari.org/2009/isletim-sistemleri-01-3-islemler.html#comments</comments>
		<pubDate>Wed, 01 Jul 2009 22:39:40 +0000</pubDate>
		<dc:creator>yildirim</dc:creator>
				<category><![CDATA[İşletim Sistemleri]]></category>
		<category><![CDATA[gezegen]]></category>
		<category><![CDATA[gezegen_arch]]></category>
		<category><![CDATA[işletim sistemi]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[os]]></category>

		<guid isPermaLink="false">http://yildirim.isadamlari.org/2009/isletim-sistemleri-01-2-islemler.html</guid>
		<description><![CDATA[Önceki Yazılara Buradan ulaşabilirsiniz.
İşlem Hiyerarşisi:
İşlemler belirli bir hiyerarşi içinde çalışırlar. Bazı işlemler alt işlemler oluşturarak bunların da çalışmasını sağlarlar. Böylelikle bir uygulamaya ait farklı görevler üstlenen işlemler eşzamanlı olarak çalışabilirler.

Resimde görüldüğü üzere, bazı işlemler başka işlemlerin ebeveyni olarak konumlanmış durumdalar.
Özellikleri:

Ebeveyn işlem, çocuk işlem ile eşzamanlı çalışabilir yada çocuk işlemin bitmesini bekleyip daha sonra kaldığı yerden [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-weight: bold;">Önceki Yazılara <a href="http://yildirim.isadamlari.org/tag/operating-systems" target="_blank">Buradan</a> ulaşabilirsiniz.</span></p>
<p>İşlem Hiyerarşisi:</p>
<p>İşlemler belirli bir hiyerarşi içinde çalışırlar. Bazı işlemler alt işlemler oluşturarak bunların da çalışmasını sağlarlar. Böylelikle bir uygulamaya ait farklı görevler üstlenen işlemler eşzamanlı olarak çalışabilirler.<br />
<img style="max-width: 800px;" src="http://yildirim.isadamlari.org/wp-content/uploads//2009/07/process_hierarchy.jpg" alt="" width="421" height="373" /></p>
<p>Resimde görüldüğü üzere, bazı işlemler başka işlemlerin ebeveyni olarak konumlanmış durumdalar.</p>
<p><span style="font-weight: bold;">Özellikleri:</span></p>
<ul>
<li>Ebeveyn işlem, çocuk işlem ile eşzamanlı çalışabilir yada çocuk işlemin bitmesini bekleyip daha sonra kaldığı yerden çalışmaya devam edebilir.</li>
<li>Çocuk işlem, ebeveyn işlemin tüm değişkenlerini veya bir kısmını kullanabilir.</li>
<li>Ebeveyn işlemin sonlanması, çocuk işlemlerin sonlanmasına neden olur.</li>
<li>Çocuk işlemler, ebeveyn çalıştığı sürece çalışabilir veya aralıklarla çalışabilir.</li>
</ul>
<p><span style="font-weight: bold;">Türleri:</span></p>
<ul>
<li>Bağımsız: Çocuk işlemler, diğer işlemleri etkilemeden çalıştırılabilir ve sonlandırılabilirler, Sonucu kesindir, başka işlemlerin çalışması sonucunun değişmesine neden olmaz.</li>
<li>İşbirlikçi: Çocuk işlemler, birbirleri ile ortak çalışırlar, çalışma sıraları değiştiğinde sonuç değişebilir. Uygulamanın çıktısı her zaman aynı olmayabilir. Sonuç dış etmenlere de bağlıdır.</li>
</ul>
<p><span style="font-weight: bold;">İşlemler Arası İletişim:</span></p>
<p>İşlemlerin birbirleri ile iletişim kurmasıdır. 2 temel iletişim metodu vardır.<span style="font-weight: bold;"><br />
</span></p>
<ul>
<li><span style="font-weight: bold;">Bellek Paylaşımı (Shared memory):</span> Bu yöntemde veri iletimi yoktur. Birden fazla işlem aynı paylaşılan bellek bölgesini kullanarak değişkenler üzerinden iletişim kurarlar.</li>
<li><span style="font-weight: bold;">Mesaj Gönderme Arayüzü (Message Passing Interface):</span> Bu yöntemde veri iletimi vardır. Bir işlem veriyi &#8220;send&#8221; metodu ile gönderirken, diğer işlem veriyi &#8220;receive&#8221; metodu ile alır.</li>
</ul>
<p><span style="font-weight: bold;">Mesaj Gönderme Arayüzü, Uygulama Yöntemleri:</span></p>
<ul>
<li>Direkt veya Dolaylı iletişim</li>
<li>Simetrik veya Asimetrik iletişim</li>
<li>Arabellek (Buffer) Mekanizması</li>
<li>Sabit Boyutlu veya değişken boyutlu mesajlar</li>
</ul>
<p><span style="font-weight: bold;">Direkt İletişim:</span><br />
Bu yöntemde bir işlem, göndereceği veriyi direkt olarak bir işleme gönderir. Bu yöntemde gönderici ve alıcı isimleri bilinmelidir. Mekanizma aşağıdaki gibidir.</p>
<pre lang="c">send(tuketici_islem, veri);
receive(uretici_islem, veri);</pre>
<p><span style="font-weight: bold;">Üretici/Tüketici Problemi:</span> Standart bir problemdir. Bir işlem veri üretir, diğer işlem üretilen veriyi tüketir. Direkt iletişime uyarlanmış şekli şöyledir.</p>
<p><span style="font-weight: bold;">Üretici:</span></p>
<pre lang="c">repeat
    uret item;
    send (tuketici, message);
until false</pre>
<p><span style="font-weight: bold;">Tüketici:</span></p>
<pre lang="c">repeat
    receive (uretici, message);
    tuket item;
until false</pre>
<p><span style="font-weight: bold;">Özellikleri:</span></p>
<ul>
<li>Bağlantı otomatik olarak sağlanır.</li>
<li>Yalnızca 2 işlem iletişimde bulunabilir.</li>
<li>2 işlem için 1 bağlantı gerekir.</li>
<li>Genellikle tek yönlüdür.</li>
<li>Tuketici, iletişim sırasında üreticinin kimliğine ihtiyaç duymayabilir.</li>
<li>Her iki işlemin kimliği bilinmelidir, kodun bakımı zordur.</li>
</ul>
<p><span style="font-weight: bold;">Dolaylı İletişim:</span><br />
Bu iletişim yönteminde, işlemler posta kutusu denen yapı yardımı ile iletişim kurarlar. İşlem aşağıdaki gibidir.</p>
<pre lang="c">open (posta_kutusu_adi);
send (posta_kutusu_adi, message);
receive (posta_kutusu_adi, message);</pre>
<ul>
<li>Ancak eğer bir posta kutusu varsa iletişim sağlanabilir. İşlemler arası iletişimin kurulabilmesi için öncelikle posta kutusu ile iletişim kurulmalıdır.</li>
<li>İkiden fazla işlem aynı posta kutusunu kullanabilir.</li>
<li>Birden fazla alıcı olduğunda işler karışabilir. Posta kutusuna mesa gelince kimin alacağı belirlenemeyebilir.</li>
</ul>
<p><span style="font-weight: bold;">Simetrik İletişim:</span><br />
Bu iletişim metodunda üretici ve tüketici eşit hızlarda çalışır, çoğu zaman ara belleğe gerek yoktur.</p>
<p><span style="font-weight: bold;">Asimetrik İletişim:</span><br />
Bu iletişim metodunda üretici ve tüketici farklı hızlarda çalışırlar. Ara belleğe ihtiyaç duyulur.</p>
<p><span style="font-weight: bold;">Ara Bellek:</span></p>
<ul>
<li>Sıfır: Üretici, tüketicinin veriyi almasını bekler.</li>
<li>Sınırlı Ara Bellek: Eğer ara bellekte n taneden fazla mesaj varsa üretici bekler.</li>
<li>Sınırsız Ara Bellek: Üretici hiç bir zaman tüketiciyi beklemez.</li>
</ul>
<p><span style="font-weight: bold;">RPC (Remote Procedure Call, uzak prosedür çağrısı):</span><br />
Ağ üzerinden bağlı bilgisayarlardaki uygulamaların birbirleri ile iletişim kurmaları için bir soyutlmadır.</p>
<p><span style="font-weight: bold;">Gelecek Bölüm:</span></p>
<ul>
<li>Bellek Yönetimi</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://yildirim.isadamlari.org/2009/isletim-sistemleri-01-3-islemler.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>İşletim Sistemleri 01.2 &#8211; İşlemler ve Zamanlayıcı</title>
		<link>http://yildirim.isadamlari.org/2009/isletim-sistemleri-01-2-islemler-ve-zamanlayici.html</link>
		<comments>http://yildirim.isadamlari.org/2009/isletim-sistemleri-01-2-islemler-ve-zamanlayici.html#comments</comments>
		<pubDate>Mon, 29 Jun 2009 21:53:21 +0000</pubDate>
		<dc:creator>yildirim</dc:creator>
				<category><![CDATA[İşletim Sistemleri]]></category>
		<category><![CDATA[döküman]]></category>
		<category><![CDATA[gezegen]]></category>
		<category><![CDATA[gezegen_arch]]></category>
		<category><![CDATA[işletim sistemi]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[minix]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://yildirim.isadamlari.org/?p=326</guid>
		<description><![CDATA[Tekrar merhaba, bu yazımızda sırasıyla:

Context Switching (İçerik Değiştirme)
Zamanlayıcı Çeşitleri
Zamanlama Algoritmaları

kavramlarına değineceğiz.
Context Switching (İçerik Değiştirme):
Preemption: Genel amaçlı modern işletim sistemlerinde bulunan bir yapı olan preemption mekanizması, bir işlemci üzerinde bir işleme t kadar bir zaman aralığı verilmesini sağlar. Eğer bir işlem t sürede tamamlanır ve &#8220;çalışıyor&#8221; durumundan &#8220;sonlandırıldı&#8221; durumuna geçerse, herhangi bir sorun olmaz, &#8220;hazır&#8221; kuyruğunda [...]]]></description>
			<content:encoded><![CDATA[<p>Tekrar merhaba, bu yazımızda sırasıyla:</p>
<ul>
<li>Context Switching (İçerik Değiştirme)</li>
<li>Zamanlayıcı Çeşitleri</li>
<li>Zamanlama Algoritmaları</li>
</ul>
<p>kavramlarına değineceğiz.</p>
<p><span style="font-weight: bold;">Context Switching (İçerik Değiştirme):</span></p>
<p><span style="font-weight: bold;">Preemption:</span> Genel amaçlı modern işletim sistemlerinde bulunan bir yapı olan preemption mekanizması, bir işlemci üzerinde bir işleme t kadar bir zaman aralığı verilmesini sağlar. Eğer bir işlem t sürede tamamlanır ve &#8220;çalışıyor&#8221; durumundan &#8220;sonlandırıldı&#8221; durumuna geçerse, herhangi bir sorun olmaz, &#8220;hazır&#8221; kuyruğunda bekleyen sıradaki uygulama &#8220;çalışıyor&#8221; durumuna geçer. Fakat bir işlem t zaman aralığında sonlanmazsa &#8220;preemption&#8221; mekanizması devreye girer ve bu işlemi işlemciden (&#8220;çalışıyor&#8221; durumundan) alarak &#8220;hazır&#8221; kuyruğuna gönderir.</p>
<p>Context Swtichin (İçerik değiştirme) ise t zaman aralığında bitmemiş işlemin &#8220;hazır&#8221; kuyruğuna gönderilmesi sırasında gerçekleşen tüm olayları kapsar. Bu işlem sırasında gerçekleşen olaylar ise şu şekildedir.</p>
<ul>
<li>Çalışan işleme ait PCB (Process Control Block, İşlem Kontrol Bloğu) veri yapısı belleğe yazılır.</li>
<li>Zamanlayıcının belirli algoritmalara dayanarak seçtiği yeni işleme ait PCB işlemciye gönderilir.</li>
<li>İşlemci PCB verilerine göre durumunu değiştirir. (Registerlar, program counter vs)</li>
<li>İşlemi çalıştırır.</li>
<li>t kadar süre geçtikten sonra durumunu belleğe gönderir, yeni işlemin gelmesini bekler.</li>
</ul>
<p>Burada görüldüğü üzere bir işlem sonlanmadan, diğer bir işleme geçiş yapılmaktadır. Bu olaya Context Switching denir.</p>
<p>Context Switching&#8217;in yararları:</p>
<ul>
<li>Çok işlemli işletim sistemlerinin tasarımını sağlar. Aynı anda birden fazla uygulama çalıştırılabilir.</li>
<li>Çok kullanıcılı işletim sistemlerinin tasarımını sağlar. Birden fazla kullanıcı sisteme bağlanabilir.</li>
<li>Bir işlem çalışırken, diğer işlemlerin de devam etmesini sağlar.</li>
<li>Herhangi bir uygulama çalışırken işletim sistemi de çalışmakta olduğundan işletim sistemi kontrolü sürekli elinde tutar.</li>
<li>Deadlock (daha sonra ayrıntılı olarak ele alınacaktır, bir uygulamanın kilitlenmesi olarak düşünebilirsiniz.) durumunda, sadece deadlock olmuş uygulamanın sonlandırılmasını sağlar.</li>
</ul>
<p><span style="font-weight: bold;">Zamanlayıcı ve Çeşitleri:</span></p>
<p>Sıradaki işlemlerden hangisinin işlemcide çalıştırılacağını belirleyen mekanizmadır. Bu işlemi gerçekleştirmek için farklı algoritmalar kullanabilir.<br />
<br style="font-weight: bold;" /><span style="font-weight: bold;">Uzun Dönemli Zamanlayıcı (Long Term Scheduler):</span></p>
<ul>
<li>İşlemleri iş kuyruğundan seçer.</li>
<li>Seçilen işlemleri çalıştırılmak üzere belleğe yükler.</li>
<li>Hazır kuyruğunu günceller.</li>
<li>Çokluprogramlamanın derecesini kontrol eder. (Ana bellekte kaç adet işlem olacağı)</li>
<li>Kısa dönemli zamanlayıcıdan daha seyrek çalışır.</li>
<li>Seçtiği işlemlerin işlemci kullanımı ve girdi/çıktı miktarı arasında bir oran oluşturmaya çalışır. Örnek olarak sürekli g/ç yapan işlemleri seçmez bunun yerine 1 adet g/ç, 1 adet hesaplama yapan işlem çalıştırır.</li>
<li>Bazı işletim sistemlerinde bulunmayabilir.</li>
</ul>
<p><span style="font-weight: bold;">Kısa Dönemli Zamanlayıcı (Short Term Scheduler):</span></p>
<ul>
<li>İşlemleri &#8220;hazır&#8221; kuyruğundan seçer.</li>
<li>İşlemciyi seçilen işlem için hazır duruma getirir (kaynak ayırır.)</li>
<li>İşlemi, işlemciye gönderir.</li>
<li>Çok kısa aralıklarla tekrar tekrar çalışır. (bir kaç milisaniyede bir)</li>
<li>Çok hızlı karar vermek zorundadır.</li>
</ul>
<p><span style="font-weight: bold;">İyi Bir Zamanlayıcının Özellikleri:<br />
</span></p>
<ul>
<li>Adalet: Her bir işlem, işlemciyi adil bir şekilde paylaşmalıdır.</li>
<li>Verimlilik: İşlemci yükü %100&#8242;e yakın olmalıdır, unutmayın ki kullanılmayan işlemcinin kimseye yararı yoktur.</li>
<li>Tepki Zamanı: İnteraktif kullanıcılar yaptıkları işlemlerin etkilerini çok kısa sürede görebilmelidirler. Kimse yazı yazmaya başladıktan belirli bir süre sonra ekranda harflerin belirmesinden hoşnut olmaz.</li>
<li>Geri Dönüş Süresi: Bir işlemin çıktı verene kadar geçen süresini minimuma indirmelidir.</li>
<li>Çıkış: 1 saat içinde yapılan işlem sayısını maksimize etmelidir.</li>
</ul>
<p><span style="font-weight: bold;">Zamanlama Türleri:</span></p>
<p>1. Preemptive:</p>
<ul>
<li>Süren bir işlemi kısa zaman aralıklarında çalıştırır, çalışmadığı zamanlarda işlemci&#8217;de çalışacağı zamanı bekler.</li>
<li>İşlemcideki kayıp zaman non-preemptive&#8217;e göre fazladır.</li>
<li>Interrupt (bir olayın sonucuna bağlı olarak), trap (hata veya exception&#8217;a bağlı olarak), Supervisor Call (kernel&#8217;den özel bir çağrıya bağlı olarak) nedeniyle işlem, duraklatılabilir.</li>
</ul>
<p>2. Non-Preemptive</p>
<ul>
<li>İşlem sonlanana kadar işletim sistemi işleme müdahale etmez.</li>
</ul>
<p><span style="font-weight: bold;">Zamanlama Algoritmaları:</span></p>
<ul>
<li>İlk Giren İlk Çıkar: Bu algoritmada işlemlerin işlemciye geliş sırasına göre işlemci bunları çalıştırır. En basit zamanlama algoritmasıdır. Uygulaması kolay olduğundan ve bazı sistemlerde gelen olaya göre sıralı tepki verilmesi gerektiğinde kullanılır. Ortalama bekleme süresi uzundur.  Günümüz kullanım alanı genellikle gömülü sistemlerdedir. Preemptive değildir.</li>
<li>Son Giren İlk Çıkar: Bu algoritmada, ilk örneğin tersidir. Son gelen işi ilk sıraya alır. Pek fazla kullanım alanı yoktur. Preemptive değildir.</li>
<li>En Kısa İşlem Önceliği: Bu algoritmada sıradaki en kısa iş en önce yapılır. Böylece birim sayıda yapılan işlem sayısı artırılarak tepki zamanı düşürülmeye çalışılır. Genelde toplu işlemlerin yapılmasında kullanılır. (Bankadaki haftalık hesapların arkaplanda yapılması gibi) Preemptive değildir.</li>
<li>En Uzun İşlem Önceliği: Burada en uzun işlem ilk önce yapılarak işlemcideki iş yükünün sürekli yüksek olması amaçlanır. Böylece işlemciden daha çok verim alınabilir. Yüksek performanslı bilgisayarlarda sıkça kullanılmaktadır. Preemptive bir algoritmadır.</li>
<li>En Az İşlem Zamanı Kalan İşlem Önceliği: Bu algoritma en kısa işlem önceliği algoritmasının preemptive halidir. Bir işlemin ne kadar süre daha çalıştırılacağını belirleyip kalan zamanı en az olan işlemi çalıştırır. Günümüzde genel amaçlı bazı bilgisayarlarda kullanılmaktadır. Amacı tepki zamanını azaltmaktır. Preemptive bir algoritmadır.</li>
<li>Round Robin: En adil algoritmadır. Tüm işlemlerin önceliği aynıdır ve eşit zaman aralıklarında çalışırlar. Süresi dolan işlem preemtive edilir. bir sonraki işlem çalışır. Hazır kuyruğu olarak dairesel kuyruk veri yapısını kullanır. Preemptive bir algoritmadır.</li>
<li>Çok Kademeli Geri Beslemeli Zamanlama: Bu algoritma günümüzde genel amaçlı bilgisayarlarda en fazla kullanılan algoritmadır. Bu algoritmada Context Switch&#8217;den kaybedilen zamanı azaltmak için çalışan işlemlerden geri besleme alınır ve zaman aralığı artırılabilir. Ayrılan zamanı arttırmak CPU yükünü yüksek tutacağı gibi boş geçen zamanı düşürür bu da performans artışı sağlar. Tabii ki diğer taraftan starvation (bir işlemin yeterli kaynağı bulamaması durumunda kilitlenmesi) ihtimaline karşı önlem alınır ve belirli bir zaman periyodundan sonra context switching gerçekleşir.</li>
</ul>
<p><span style="font-weight: bold;">Gelecek Bölüm:</span></p>
<ul>
<li>İşlem akrabalıkları</li>
<li>İşlemler arası iletişim</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://yildirim.isadamlari.org/2009/isletim-sistemleri-01-2-islemler-ve-zamanlayici.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>İşletim Sistemleri 01.1 &#8211; İşlemler ve Zamanlayıcı</title>
		<link>http://yildirim.isadamlari.org/2009/isletim-sistemleri-01-1-islemler-ve-zamanlayici.html</link>
		<comments>http://yildirim.isadamlari.org/2009/isletim-sistemleri-01-1-islemler-ve-zamanlayici.html#comments</comments>
		<pubDate>Sun, 28 Jun 2009 22:19:57 +0000</pubDate>
		<dc:creator>yildirim</dc:creator>
				<category><![CDATA[İşletim Sistemleri]]></category>
		<category><![CDATA[bsd]]></category>
		<category><![CDATA[gezegen]]></category>
		<category><![CDATA[gezegen_arch]]></category>
		<category><![CDATA[işletim]]></category>
		<category><![CDATA[işletim sistemi]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[minix]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[unix]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://yildirim.isadamlari.org/?p=319</guid>
		<description><![CDATA[İşlem (Proccess) Nedir?
İşlem bir uygulamanın çalışmakta olan (aktif olan) durumuna verilen isimdir.  Bir işlem tarafından tutulan özellikler aşağıdakilerdir.

Donanım durumu
bellek durumu ve adresleri
işlemci
ilerleme durumu

İşlemlerle çalışmak

kaynak paylaştırma (mantıksal (dosyalar) ve fiziksel (bellek, işlemci vs))
hesaplamaların hızlanması (paralel programlamanın avantajlarının kullanımı)
güvenliğin artması

gibi özellikler sağlar.
Bir İşlemin Durumları:


Yeni: İşlemin henuz yeni oluşturulduğu durumdur.
Çalışıyor: işlemi oluşturan kodların çalıştırıldığı durumdur. Bu durumdaki işlem [...]]]></description>
			<content:encoded><![CDATA[<p><strong>İşlem (Proccess) Nedir?</strong></p>
<p>İşlem bir uygulamanın çalışmakta olan (aktif olan) durumuna verilen isimdir.  Bir işlem tarafından tutulan özellikler aşağıdakilerdir.</p>
<ul>
<li>Donanım durumu</li>
<li>bellek durumu ve adresleri</li>
<li>işlemci</li>
<li>ilerleme durumu</li>
</ul>
<p>İşlemlerle çalışmak</p>
<ul>
<li>kaynak paylaştırma (mantıksal (dosyalar) ve fiziksel (bellek, işlemci vs))</li>
<li>hesaplamaların hızlanması (paralel programlamanın avantajlarının kullanımı)</li>
<li>güvenliğin artması</li>
</ul>
<p>gibi özellikler sağlar.</p>
<p><strong>Bir İşlemin Durumları:</strong></p>
<p><img class="alignnone size-full wp-image-320" title="scheduler" src="http://yildirim.isadamlari.org/wp-content/uploads//2009/06/scheduler.png" alt="scheduler" width="420" height="167" /></p>
<ul>
<li><strong>Yeni:</strong> İşlemin henuz yeni oluşturulduğu durumdur.</li>
<li><strong>Çalışıyor: </strong>işlemi oluşturan kodların çalıştırıldığı durumdur. Bu durumdaki işlem işlemcide tutulur.</li>
<li><strong>Bekliyor:</strong> Bir olay veya girdi/çıktı işlemi için işlemin beklediği durumdur.</li>
<li><strong>Hazır:</strong> Bir işlem için gereken tüm kaynakların ayrıldığı, işlemcide çalıştırılması için işlemin beklediği durumdur.</li>
<li><strong>Sonlandırıldı:</strong> İşlemin bittiği durumdur.</li>
</ul>
<p><strong>PCB (Process Control Block, İşlem Kontrol Bloğu):</strong></p>
<p>Her bir işlem ile ilgili bilgi içeren veri yapısıdır. İçerdiği bilgiler şunlardır:</p>
<ul>
<li>PC (Program Counter, programın çalışması sırasında çalışmanın hangi aşamada olduğunu saklar.)</li>
<li>Bellek yönetim bilgileri</li>
<li>Kullanılan Zaman</li>
<li>İşlem Numarası</li>
<li>Girdi/Çıktı durumu</li>
<li>Zamanlayıcı verileri, öncelik</li>
<li>İşlem Durumu (bekliyor, çalışıyor vs)</li>
</ul>
<p><strong>Zamanlama (Scheduling):</strong></p>
<p>Zamanlayıcının görevi aktif çalışan bir işlemi, işlemciden alıp yerine başka bir işlem atamaktır. Bu işleme <em>Context Switching (CS)</em> denir. CS yapılırken önceki işleme ait PCB alınıp belleğe yazılır ve yeni işlemin PCB&#8217;si işlemciye gönderilir.</p>
<p><strong>Zamanlayıcı Kuyrukları:</strong></p>
<p>Zamanlayıcı yapısında iki adet kuyruk vardır. Bunlardan bir tanesi Hazır kuyruğu, diğeri ise girdi/çıktı kuyruğudur. Hazır kuyruğunda işlemciye gönderilecek, kaynak tahsis edilmiş işlemler beklerken, girdi/çıktı kuyruğunda işlemcide çalışmış ancak bir kaynağa erişmesi gereken ve henuz kaynak tahsil edilmemiş işlemler beklerler. Bu listeler tekli bağlı liste olabileceği gibi çiftli bağlı liste de olabilir.</p>
<p>Gelecek Bölüm:</p>
<ul>
<li>Zamanlayıcı (Devam)</li>
<li>İşlemleri Zamanlama</li>
<li>İşlemler Arası İletişim</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://yildirim.isadamlari.org/2009/isletim-sistemleri-01-1-islemler-ve-zamanlayici.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>İşletim Sistemleri 00.1 &#8211; İşletim Sistemi Nedir?</title>
		<link>http://yildirim.isadamlari.org/2009/isletim-sistemleri-00-1-isletim-sistemi-nedir.html</link>
		<comments>http://yildirim.isadamlari.org/2009/isletim-sistemleri-00-1-isletim-sistemi-nedir.html#comments</comments>
		<pubDate>Sun, 28 Jun 2009 14:12:46 +0000</pubDate>
		<dc:creator>yildirim</dc:creator>
				<category><![CDATA[İşletim Sistemleri]]></category>
		<category><![CDATA[gezegen]]></category>
		<category><![CDATA[gezegen_arch]]></category>
		<category><![CDATA[işletim sistemi]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[minix]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[türkçe]]></category>
		<category><![CDATA[windows bsd]]></category>

		<guid isPermaLink="false">http://yildirim.isadamlari.org/?p=315</guid>
		<description><![CDATA[İşletim sistemleri teorisi ile ilgili yazmaya başladığım bu yazı dizisinin öncelikle içeriğinden bahsedip sonra genel olarak işletim sisteminin ne olduğuna değineceğiz. Çok fazla derine inmeden anlatacağım konular, genel bilgi sahibi olmak isteyenlerin işine yarayacaktır. Tabii ki daha ayrıntılı bilgi almak isteyenlere Andrew S. Tanenbaum&#8217;un &#8220;Modern Operating Systems&#8221; kitabını edinmelerini öneririm.
Başlıklar:

İşlem Yönetimi
Ana Bellek Yönetimi
Dosya Yönetimi
Girdi/Çıktı Yönetimi
İkincil [...]]]></description>
			<content:encoded><![CDATA[<p>İşletim sistemleri teorisi ile ilgili yazmaya başladığım bu yazı dizisinin öncelikle içeriğinden bahsedip sonra genel olarak işletim sisteminin ne olduğuna değineceğiz. Çok fazla derine inmeden anlatacağım konular, genel bilgi sahibi olmak isteyenlerin işine yarayacaktır. Tabii ki daha ayrıntılı bilgi almak isteyenlere Andrew S. Tanenbaum&#8217;un &#8220;Modern Operating Systems&#8221; kitabını edinmelerini öneririm.</p>
<p><strong>Başlıklar:</strong></p>
<ul>
<li>İşlem Yönetimi</li>
<li>Ana Bellek Yönetimi</li>
<li>Dosya Yönetimi</li>
<li>Girdi/Çıktı Yönetimi</li>
<li>İkincil Bellek Yönetimi</li>
<li>Ağ</li>
</ul>
<p><strong>İşletim Sistemi Nedir?</strong></p>
<p>İşletim Sistemi (İS) gerçekleşen olayları düzenleyen ve yöneten, bilgisayarın kaynaklarını uygulamalara dağıtan, kullanıcı ve donanım arasında bir arayüzdür. İS bilgisayarda çalışan uygulamalar için ev sahipliği görevini üstlenir. Bu görevin bir parçası olarak programların  donanımla ilgili işlemlerini yürütür. Böylece programcı donanım ile ilgilenmeden, donanım bağımsız uygulamalar yazabilir. Bu sayede farklı bilgisayarlarda aynı işletim sistemi çalıştığı müddetçe aynı uygulama da çalışabilir. Nerdeyse her bilgisayar, robotlar, beyaz eşyalar, dvd playerlar, mp3 playerlar birer işletim sistemi sayesinde işlemlerini yürütürler.</p>
<p>İşletim sistemleri, uygulama yazılımlarına ve kullanıcılara bir takım hizmetler sunarlar. Uygulamalar bu hizmetlere API (Application Programming Interfaces, uygulama geliştirme arayüzü) ve System Call (Sistem çağrısı) ile ulaşırlar. Bu yöntemle uygulama almak istediği hizmeti ve parametrelerini işletim sistemine gönderir ve cevabı bekler. Burada gerçekleşen işlemler programcıyı ilgilendirmez. Daha sonra işletim sistemi, verilen hizmeti tamamlayıp sonucunu uygulama programına gönderir.</p>
<p>Kullanıcılar işletim sistemleri ile birden fazla şekilde etkileşim içinde bulunabilirler. Bu etkileşim CLI (Command Line Interface, komut satırı arayüzü) veya GUI (Graphical User Interface, grafiksel kullanıcı arayüzü) olabilir. Kullanıcı arayüzü genelde ufak ve masaüstü sistemler için geliştirilmiş işletim sistemlerinde işletim sisteminin bir parçasıyken, Unix gibi geniş ölçekli, çok kullanıcılı işletim sistemlerinde işletim sisteminin üstünde çalışan bir uygulamadır (kurulum aşamasından önce işletim sistemine paket olarak dahil edilmesi bu gerçeği değiştirmez.).</p>
<p><strong>Gelecek Bölüm:</strong></p>
<ul>
<li>İşlem Nedir?</li>
<li>Zamanlayıcı Nedir?</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://yildirim.isadamlari.org/2009/isletim-sistemleri-00-1-isletim-sistemi-nedir.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
