Mühendislik ve Teknoloji

Gardırobunuzu Bir Bilgisayarın Hafızasını Düzenlediği Gibi Nasıl Düzenlersiniz?

Gardırobunuz ve çalışma masanız her daim karmaşa içindeyse bilgisayarların depolama ve dosyalama algoritmaları size yardımcı olabilir.

Gardırobunuzun karmaşa içinde olduğunu düşünün. İçinde onlarca kıyafet var ama dolabınızın onu taşıyacak kapasitesi yok. Bu duruma canınız sıkılıyor, kıyafetlerinizi düzenlemeye karar veriyorsunuz. İşte tam bu noktada çetrefilli bir seçim ile karşı karşıyasınız. “Hangi kıyafetlerinizi elinizde tutacaksınız ve hangilerinden vazgeçeceksiniz?”.

Belki de o 2 yıl önce aldığınız siyah kazağı elden çıkartmanın zamanı gelmiştir. Ya da birkaç yazlık atarsınız ve yaz geldiğinde bu sefer birkaç kışlık atıp dengeyi sağlarsınız. İnternette bir kaç anahtar kelime yardımı ile arama yaparsanız size “derle, topla, rahatla” biçiminde önerilerde bulunacak kişilerden ne yapmanız konusunda tavsiyeler dinleyebilirsiniz. Ya da bir bilgisayar gibi düşünmeyi de deneyebilirsiniz.

Gardırobunuzu Bir Bilgisayarın Hafızasını Düzenlediği Gibi Nasıl Düzenlersiniz?
Her seferinde düzenlemek için çok fazla zaman ve çaba harcasak da düzen genellikle kısa sürer. Sonucunda dolap yine dağınık hale gelir.

Ancak aslında bilgisayarlar da sizinle aynı sorunu yaşarlar. Sonuçta depolama alanları sınırlıdır. Bu kısıtlı alan içinde neyin nasıl saklanacağı ve neyin daha hızlı ulaşılması gerektiği ile ilgili kararların verilmesi gerekir. Amaç hem paradan hem de zamandan tasarruf etmektir.

Aslına bakarsanız, bilgisayarlar var olduğundan beri, bilgisayar bilimcileri neyin tutulacağı ve nasıl düzenleneceği sorunuyla boğuşuyorlar. Şimdi gelin onların bu sorunu nasıl çözdüğüne bakalım.

Bilgisayarlar Kalabalıkla Nasıl Baş Ederler?

Önbelleğe alma (caching), bellek mimarisinde kritik bir rol oynar ve milimetre ölçeğindeki işlemci yongalarının düzeninden küresel İnternet coğrafyasına kadar her şeyin temelini oluşturur. Bu önbellekler üzerinde saklanan verinin ihtiyaç duyulması halinde daha hızlı ve kolay ulaşılmasını sağlar. Verileri sık sık okuma sorununu çözer.

Diğer bir deyişle, karmaşa içinde olan gardırobunuzdan giymek istediğiniz o kırmızı kapüşonlu hırkayı daha rahat çekip çıkartmanıza olanak tanır.

Gardırobunuzu Bir Bilgisayarın Hafızasını Düzenlediği Gibi Nasıl Düzenlersiniz?
Dolabınızda çekmeceler ve kutular hafıza veya sabit diskler gibidir. Giysileri ise veri olarak düşünmelisiniz.
Kıyafet almak, kıyafet koymak, kıyafet aramak gibi eylemler ise bu verilerle yapılan işlemler gibidir.

Önbellek olarak IKEA’dan aldığımız bir askılı düzenleyici kullanabiliriz. Örneğin sık kullanılmayan giysileri bu düzenleyiciye koyabiliriz. Sadece bu kıyafetleri bulmamız gerektiğinde ise aslında nereye bakacağımızı biliriz. Ancak önbelleklerin de tahmin edileceği üzeri sınırsız bir depolama alanı yoktur. Bir önbelleğin kapasitesindeki sınıra ulaştığımızda eğer başka bir şeyler de saklamak istiyorsak, yer açmamız gerekir.

Bilgisayar biliminde bu alan açma işlemine “önbelleğe yazma ve silme (cache replacement)” denir. İşte tam bu noktada bilgisayarların önbellekten neyi çıkartacağını karar vermesini sağlayan algoritmalar, sizin de gardırobunuzdan hangi kıyafetleri çıkartacağınıza karar vermeniz için en uygun strateji olacaktır.

Rastgele Çıkarma (Random Eviction)

Bu algoritma, tamamen dolu bir önbelleğe yeni bir veri ekleneceği zaman yeni verinin halihazırda bulunan rastgele bir verinin üzerine yazılmasını savunur. Bu bizim problemimizde gözünüzü kapatıp gardırobunuzdan bir kıyafet seçmenizi ve onu, en sevdiğiniz kıyafetiniz olsa bile, elden çıkartmanıza denk gelir.

İlk Giren İlk Çıkar (First In-Out)

Bu algoritma ise önbellekten bir veri kaldırılacağı zaman önbelleğe alınan ilk veriden başlanmasını önerir. Bu algoritmayı uygulamaya karar verirseniz, en eski giysinizden başlayarak, hala sıklıkla giyiyor olsanız bile, onları atmanızı ve böylelikle de dolabınızda yer açmanız gerekmektedir.

Son Zamanlarda En Az Kullanılan (Least Recently Used)

Bu algoritma yakın zamanda kullanılmayan verilere odaklanır. Yeni veri, son zamanlarda diğerlerine oranla daha az kullanılan verinin yerini alır. Yani gardırobunuzu düzenleme karar verdiğinizde kendinize şu soruyu sormalısınız. “Bu kıyafeti son zamanlarda ne sıklıkla giydim?”.

Bu algoritma sizi ne en sevdiğiniz ne de sıklıkla kullandığınız eski bir kıyafeti elde çıkartmaya zorlamaz. Sadece son zamanlarda en az kullandığınız ya da hiç kullanmadığınız kıyafetlere karar vermenizi ve onlara dolabınızda daha fazla yer vermemenizi önerir. Aslında gardırop problemimiz için en iyi strateji budur.

Bilgisayarlar Düzenlemeyi Nasıl Yapar?

Giysilerimizin hepsini gardırobumuzdan çıkarttık. Ardından son zamanlarda en az kullanılanları belirleyip ayırdık. Şimdi bomboş bir dolaba ve ona yerleştirmemiz gereken kıyafetlere sahibiz. Bu durumda kıyafetlerimizi rastgele yerleştirmeyi seçebiliriz.

Gardırobunuzu Bir Bilgisayarın Hafızasını Düzenlediği Gibi Nasıl Düzenlersiniz?

Fakat her gün giydiğimiz bir ceket için dolabın arka taraflarında bir yer seçmek ona ulaşımımızı zora sokacaktır. Ayrıca bunu yapmaya çabalarken dolabımız yine karışacaktır. O yüzden kıyafetleri düzenleme-yerleştirme problemi için de uygun bir çözüm yolu seçmemiz gereklidir.

Dosyaları gruplamak ve ya çalışma kağıtlarını sıralamak bu düzenleme probleminin ortaya çıktığı diğer durumlardır. Bu durumda da rastgele bir sıralama yöntemi seçebileceğiniz gibi alfabetik bir sıralama yöntemi de seçebilirsiniz.

Çalışma kağıtlarınıza attığınız başlıklara bakarsanız ve onları o başlıkların alfabetik sıralamasına göre düzenlersiniz. Böylelikle de “Basit Makineler” konusu için çalışma kağıdınıza göz atacağınız zaman nereye bakacağınızı bilirsiniz.

Ancak bu strateji aslında verimli değildir. Örneğin son zamanlarda işlediğiniz “Belirli İntegral” konusu çalışma kağıdına erişmek için “B” harfiyle başlayanlar kategorisindeki birçok çalışma kağıdını incelemeniz gereklidir. “Basit Makineler” konusunu belki geçen dönem işlediniz. Lakin o kağıdın konum olarak daha üstte olması, sizin “Belirli İntegral” kağıdına erişiminizde zaman kaybına neden olacaktır.

Noguchi Dosyalama Sistemi

Japon ekonomist Yukio Noguchi’nin dosyalama sistemi, bizim sorunumuzu çözmemizin en uygun yolu olabilir. Bu dosyalama sisteminin uygulanması temelinde oldukça basittir ve oldukça verimli sonuçlar doğurur.

Noguchi Dosyalama Sistemi

Bir karton kutunuz olduğunu düşünün ve onun içine sonradan da erişmek isteyeceğiniz bazı dosyaları yerleştireceksiniz. Tüm belgeleri yerleştirirken sol taraftan başlayarak koyuyorsunuz. Yeni bir belge eklenmesi gerektiğinde ise onu kutunun en soluna ekliyorsunuz.

Eski bir belgeye ihtiyaç duyduğunuzda onu kutudan çıkartıp kullandıktan sonra o belgeyi eski konumuna değil kutunun en soluna ekliyorsunuz. Böylelikle de kutudaki belgeler soldan sağa doğru son zamanlarda en çok kullanılandan en az kullanılana göre sıralanmış olur.

Bu metodu gardırop düzenleme problemimize uyarlarsak, gardırobunuza kıyafetleri yerleştirirken en çok kullandığınız kıyafetlerini ön taraflara yerleştirmelisiniz. Arka tarafta bulunan bir kıyafeti sık kullanmaya başladığınızda onu ön tarafa doğru kaydırmalısınız. Böylelikle de sıklıkla kullandığınız kıyafetlerinizi kolayca erişebilirsiniz. Bu sistem bize en iyi stratejiyi sunar

Çalışma kağıtlarını düzenlemek için gardıroplarımızı düzenlemek kadar çaba sarf etmemize gerek olmayabilir. Çünkü birçoğumuz belki farkına bile varmadan bahsettiğimiz stratejiyi uyguluyoruz. Masanızın üzerinde üst üste yığılmış kağıtları düşünün.

Her yeni çalışma kağıdı hazırlandığında o yığının üstüne bırakılır ve o yığın gittikçe büyür. Bir kargaşa olarak gözükse de aslında o yığın çalışma kağıtlarınızı düzenlemek için en iyi stratejidir.


Kaynaklar ve ileri okumalar:

  • How Should You Organize Your Closet? Exactly Like a Computer Organizes Its Memory; yayınlanma tarihi: 20 Nisan 2016; Bağlantı: https://www.wired.com/
  • How I Use Data Structures and Algorithms to Help My Wife Organize the Closet;. Yayınlanma tarihi: 15 Temmuz 2020; Bağlantı: https://medium.com/

Size Bir Mesajımız Var!

Matematiksel, 2015 yılından beri yayında olan ve Türkiye’de matematiğe karşı duyulan önyargıyı azaltmak ve ilgiyi arttırmak amacıyla kurulmuş bir platformdur. Sitemizde, öncelikli olarak matematik ile ilgili yazılar yer almaktadır. Ancak bilimin bütünsel yapısı itibari ile diğer bilim dalları ile ilgili konular da ilerleyen yıllarda sitemize dahil edilmiştir. Bu sitenin tek kazancı sizlere göstermek zorunda kaldığımız reklamlardır. Yüksek okunurluk düzeyine sahip bir web sitesi barındırmak ne yazık ki günümüzde oldukça masraflıdır. Bu konuda bizi anlayacağınızı umuyoruz. Ayrıca yazımızı paylaşarak veya Patreon üzerinden ufak bir bağış yaparak da büyümemize destek olabilirsiniz. Matematik ile kalalım, bilim ile kalalım.

Matematiksel

Kamil Anıl

Cevaplardan çok sorulara merak duyan, bilginin yaygınlaşması için katkıda bulunmak isteyen ,eğitim hayatını ODTÜ'de sürdüren bir öğrenciyim. Ayrıca bilim ve matematiğin uçsuz bucaksız olduğuna ve herkese ulaşabileceğine inanmaktayım. Yeter ki ne kadar zaman geçerse geçsin "hala öğreniyorum" diyebilelim.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu