Fare imlecini hareket ettirmek neden Windows 95'in daha hızlı çalışmasına neden oldu?

Retro temalı bir işletim sistemi hakkında bir oyun olan Hypnospace Outlaw oynuyordum. Bu işletim sisteminin, bir web sayfası yüklenirken fare imlecini oynatmanın sayfayı daha hızlı yükleyeceği gibi tuhaf bir davranışı var.

Bu bana bir şey hatırlattı. Gençken, eğer doğru hatırlıyorsam, Windows 95 (98 değilse) program yüklerken fare imlecini oynatmanın ilerlemeyi hızlandırdığı garip bir davranışa sahipti. Buna ne sebep oluyordu? Google'da arattım ama bununla ilgili bir şey bulamadım.

Belirsiz açıklama için özür dilerim.

Bunun nedeni Windows 95'in olayları oluşturma biçimindeki bir kusur ve birçok uygulamanın olay güdümlü olmasıdır.

Windows 95 uygulamaları genellikle eşzamansız G/Ç kullanır, yani kopyalama gibi bir dosya işleminin gerçekleştirilmesini isterler ve ardından işletim sistemine bu işlem bitene kadar uyku moduna geçebileceklerini söylerler. Uyuyarak, dosya işleminin henüz tamamlanıp tamamlanmadığını sorarak CPU zamanını boşa harcamak yerine diğer uygulamaların çalışmasına izin verirler.

Tam olarak açık olmayan nedenlerden dolayı, ancak muhtemelen düşük uçlu makinelerdeki performans sorunlarından dolayı, Windows 95, G / Ç tamamlanmasıyla ilgili mesajları bir araya getirme eğilimindedir ve bunları servis etmek için uygulamayı hemen uyandırmaz. Bununla birlikte, muhtemelen duyarlı hissetmesini sağlamak için kullanıcı girişi için uygulamayı uyandırır ve uygulama uyanık olduğunda bekleyen G/Ç mesajlarını da işler.

Böylece fareyi oynatmak uygulamanın G/Ç mesajlarını daha hızlı işlemesine ve daha hızlı yüklenmesine neden olur. Bu etki oldukça belirgindi; yüklenmesi bir saat sürebilen büyük uygulamalar uygun fare girdisiyle 15 dakikaya indirilebiliyordu.

Yorumlar (16)

Evet, bu ölçülebilir bir hızlanmaya neden olan gerçek bir etkidir ve istenildiği zaman yeniden üretilebilir:

Büyük bir dosyayı çağdaş bir makinede Not Defteri ile açmayı deneyin. Pencere tam ekran olmamalıdır. Yüklendiğinde, fareyi kullanarak tüm metni işaretleyin (klavye de çalışır, sadece daha fazla el becerisi gerektirir). Düğmeyi basılı tutarken (ve işaretlerken) fareyi aşağı doğru hareket ettirin, böylece metin işaretlenir ve kaydırılır. Şimdi fareyi sabit tutarken ve oynatırken kaydırma hızını karşılaştırın. Makinenize bağlı olarak hız birkaç kat daha hızlı olabilir.

Şaşırtıcı, değil mi?

Diğer birçok programda da görüntülenebilir, Not Defteri sadece çoğaltılması kolay bir örnektir. Windows'un ilk sürümlerinde çoklu görevin çalışma şekliyle ilgilidir. Burada her şey mesaj kuyruğu etrafında dönüyordu. Fareyi oynatmak, fare hareket mesajlarından oluşan bir sele neden oluyor, bu da programların daha sık uyanmasına ve (yapılarına bağlı olarak) her seferinde durumlarını güncellemelerine, tekrar mesaj döngüsüne girmelerine, ekran güncellemelerine zaman ayırmalarına ve sonuçta daha hızlı tepki vermelerine neden oluyordu. Bu, MS'in işbirlikçi iş parçacıklı yapısına rağmen Windows'u oldukça duyarlı hale getirmek için kullandığı yollara bir bakış sunuyor.

Yorumlar (18)

NT öncesi Windows (Windows 1,2,3,3.11,95,98) NT'ye (2000, XP, Vista, 7 & 10) karşı işbirlikçi çoklu görevdi.

İşbirlikçi çoklu görevde, ön plandaki uygulamanın kontrolü diğer görevlere bırakması gerekir. Bu nedenle, ön plandaki uygulama takılırsa, tüm makine donar.

Öncelikli çoklu görev, sistemde genellikle verimi zorlamak için bir donanım kesmesi, genellikle bir zamanlayıcı vardı.

Windows 95'te klavye ve fare kesmeler oluşturuyor, fareyi hareket ettirmek kesmenin ateşlenmesine ve işletim sisteminin olay kuyruğuna hizmet etmesine neden oluyordu. Bir çeşit önleyici çoklu görev, sabit bir zamanlayıcı kesmesi yerine, bunu siz yapıyordunuz.

İşletim sistemi, kesinti sırasında ekrandaki durumu güncelleyecek ve ardından diğer görevlere geçecektir. Ekran güncellemesi, işletim sisteminin daha hızlı işlem yapıyormuş gibi görünmesini sağlardı.

DÜZENLEME - 1/2 sağ ... Win16 uygulamalarını çalıştırmak için Windows 3.1'dekiyle aynı Sistem Sanal Makinesi (VM) modelini kullandığından Win16 uygulamalarına önceden çoklu görev veremez. Bu nedenle, Windows 95, Win16 uygulamalarını çalıştırırken işbirlikçi çoklu görev ortamına geri dönecek ve uygulamalar çalıştığı sürece CPU'nun özel kontrolünü onlara verecektir. Sonuç olarak, Win16 ve Win32 uygulamalarının bir karışımını çoklu görevde çalıştırırken gerçek ön-emptive işlem imkansızdır.

Yorumlar (5)