[Linux] Re: MAIL-SEMINER: SWAPPING

---------

New Message Reply About this list Date view Thread view Subject view Author view

From: Serdar Koylu (serdarkoylu@fisek.com.tr)
Date: Thu 04 Jul 2002 - 20:57:54 EEST


Selamlar...

Himm.. Virtual memory destekleyen PMMU ile, Virtual86'yi nasil karistirdim o anda anlayamadim vallahi. 386'larda Paged MMU kullanarak virtual adresleme yapabilirsiniz. 286'larda ise, PMMU yerine Segmented MMU var ve onlarin korumali modlarinda sayfalama ile virtual machine olusturamazsiniz. Olayin dogrusu bu.

Bu durumda burayi soyle duzeltmek lazim:

> > SWAP isinde en can alici nokta, Murat'in belirttigi swap-out
> >kismidir. 386 Mimarisinde bellek, Virtual adreslemeli page modunda kullanilir. Bu
> >modda, bellek 4K sayfalar halinde tutulur ve swap-out kolaylasir
> >(nispeten). MMU sagolsun..

Virtual adresleme nedir ? Sizin erismek istediginiz adres hic bir zaman fiziksel adres degildir. Oyleki fiziksel olarak bellegin en basinda bulunan bytlerle en sonunda bulunan baytlari siz tek parcaymis gibi gorebilirsiniz. Diger yandan, sizin erismek istediginiz bellek bolgesi o an icin fiziksel bellekte mevcut degilse, SWAP imdadiniza kosar cabucak.. Detaylarini su sekilde acabiliriz:

Bir bellek bolgesi eger fiziksel RAM uzerinde kayitli degilse, CPU bir exception uretir. Bu bir kesme sinyalidir. OS bu kesme icin bir handler hazirlar. Bu handler gelen kesmenin hangi bellek adresi icin olusturuldugunu tespit eder. Eger bu adresteki veri, daha onceden SWAP'a konulmussa, Bellegin uygun bir yerindeki veriler once SWAP'a konur, bosalan yere SWAP'taki veri alinip konarak, programin exception urettigi yerden devam etmesi saglanir. Boylece programiniz hic bir zaman bellek bitti mesaji almaz. Elbette yeterince SWAP varsa.. Tabii bu islem icin MMU'nun yeniden set edilmesi vs. gibi bir cok islem yapilir, tipik bir bellek erisimi, 3-5 saat cevriminde bitecekken, belki milyonlarca saat cevrimi suren bir yolculuk yapilir..

En basit tarifi sanirim bu sekilde yapabilirim..

Bir suru derdin arasinda birde anakartimiz yandi, ama bir ders oldu. Bir yanda M/B tamir edip, diger yandan protokol yazarken, birde boyle seminer vermeye cikmak, zirvalamayla sonuclanabiliyormus. Demekki biz insanlarin (en azindan benim) Multitasking mekanizmalari sorunlu...

Duzeltme icin sonsuz tesekkurler...

Saygi ve sevgiler..

04 Jul 2002 19:17 EEST tarihinde yazmışsınız:

>
> Merhaba Serdar bey,
>
> > SWAP isinde en can alici nokta, Murat'in belirttigi swap-out
> >kismidir. 386 Mimarisinde bellek Virtual86 modunda kullanilir. Bu
> >modda, bellek 4K sayfalar halinde tutulur ve swap-out kolaylasir
> >(nispeten). MMU sagolsun..
>
> Burada sanırım bir dil sürçmesi olmuş çünkü 386 mimarisinde dediğiniz gibi
> Virtual 86 modu var fakat Linux bu modda çalışmıyor ya da IA32 de
> çalışan herhangi bir 32 bit işletim sistemi. Linux protected mode
> da çalışıyor. 386 mimarisinde bulunan V86 modu protected mode da
> çalışan OS içerisinde 8086 emulasyonu yapmak için kullanılıyor ki
> 16 bit için yazılmış kodlar çalışabilsin. Virtual 8086 denilmesinin
> sebebi de bu. Aynı zamanda bu ozellik birden fazla 8086 makinasını
> emule etmek içinde kullanılıyor ki hepimizin bildiği Windows 9x
> lerde command prompt ta DOS bu şekilde çalışıyor. Windows 2000 den sonra
> bildigim kadari ile DOS kalkti. Direk hardware erisimine izin verdigi
> icin ya da baska bir cok sebepten olabilir. Windows 2000 de DOS emulasyonu
> yapiliyor fakat bu eski DOS uygulamalarinda da sorunlar yasatiyor ya
> da calismiyor.
>
> İyi çalışmalar,
> -----------------------------------------------------------------------
> Liste üyeliğiniz ile ilgili her türlü işlem için
> http://liste.linux.org.tr adresindeki web arayüzünü kullanabilirsiniz.
>
> Listeden çıkmak için: 'linux-request@linux.org.tr' adresine,
> "Konu" kısmında "unsubscribe" yazan bir e-posta gönderiniz.
> -----------------------------------------------------------------------
>

-----------------------------------------------------------------------
Liste üyeliğiniz ile ilgili her türlü işlem için
http://liste.linux.org.tr adresindeki web arayüzünü kullanabilirsiniz.

Listeden çıkmak için: 'linux-request@linux.org.tr' adresine,
"Konu" kısmında "unsubscribe" yazan bir e-posta gönderiniz.
-----------------------------------------------------------------------


New Message Reply About this list Date view Thread view Subject view Author view

---------

Bu arsiv hypermail 2b29 tarafindan uretilmistir.