Aracılığıyla paylaş


[Bülten Arşivi ^] [< Birim 1, Sayı 1] [Birim 1, Sayı 3 >]

Systems Internals Bülten Cilt 1, Sayı 2

http://www.sysinternals.com


15 Mayıs 1999 - Bu sorunda:

  1. SISTEM IÇLERINDEKI YENILIKLER

    • SDelete
    • BlueScreen Ekran Koruyucu Win2K Güncelleştirmesi
    • "Linux ve Enterprise"
    • "İÇ NT Yardımcı Programları"
    • Mayıs Windows NT Magazine Sütunum
    • Pek De Yeni Olmayan Şeyler
  2. İÇ HABERLER

    • Dr. GUI'nin Kötü BaşUcu Davranışları
    • WinDev '99 Doğu
    • Numega Driver Works Yayın Yakın
    • Beta 3 DDK Yayınlandı
    • Win2K Kuyruğa Alınmış Spinlock'lar
  3. YAKLAŞANLAR

    • Win2K Sistem Dosya Koruyucusu (SFP)

SPONSOR: WINTERNALS SOFTWARE

Systems Internals Newsletter, Winternals Software sponsorluğunda, web'de http://www.winternals.com. Winternals Software, Windows NT/2K için gelişmiş sistem araçlarının önde gelen geliştiricisi ve sağlayıcısıdır. Winternals Software ürünleri Windows NT 4.0 için FAT32, ERD Commander (Windows NT için önyükleme diski özelliği) ve NTRecover'ı içerir.

Herkese merhaba,

Systems Internals bülteninin ikinci sürümüne hoş geldiniz. Bültenin şu anda 2700 abonesi var ve abonelikler hala güçlü gidiyor.

Microsoft son bültenden bu yana Windows 2000 Beta 3'i resmi olarak yayımladı. Beta 3 çekirdeğinin derleme numarası 2031 iken, NT 4.0'ın ilk yayın çekirdeği 1381 ve NT 3.51'in derleme sayısı 1025'tir. . Tek bulduğum şey (ve biraz can sıkıcı), Microsoft'un işletim sisteminin tam derlemesini (her iş günü) her gerçekleştirdiklerinde derleme numarasını artırmasıdır, ancak çekirdeğin bildirilen derleme numarası ilk genel sürümünü yansıtır. Örneğin, NT 4.0 Service Pack 5 çekirdeğinin gerçek derleme sayısı 1381'den çok daha yüksek olsa da, çekirdek yine de derleme numarası olarak 1381 bildirir.

Windows 2000'in Beta 3 sürümü, geliştirici topluluğu için bir uyandırma çağrısı olarak tasarlanmıştır. Microsoft, Ekim ayında Windows 2000'i göndereceğini ve Beta 3'ün neyin gönderileceğinin tam sürümünü temsil ettiğini, böylece geliştiricilerin altlarından işlerin değişeceğinden korkmadan yeni ürünler yazmaya başlayabileceğini duyurdu.

Windows 2000 yeni API'ler, katmanlı hizmetler ve çekirdek geliştirmeleriyle birlikte gelir. Özellikle cihaz sürücüsü geliştiricileri tarafından görülebilecek bir değişiklik, Mavi Ölüm Ekranı'nın (BSOD) değişmiş olmasıdır. NT'nin önceki sürümlerinde BSOD, bir sistemdeki tüm sürücüler için bağlantı zamanı ve yükleme adresi bilgilerinin yanı sıra kilitlenme sırasında olduğu gibi yığının dökümünü görüntüledi. Windows 2000'de yalnızca durdurma kodu ve ilişkili adres satırları (adres satırları, bir veya daha fazla durdurma kodu parametresini cihaz sürücüleri içindeki konumlara çevirir) ve ayrıntılı bir ileti gösterilir. Destek iletisi bios ve sabit sürücü ayarlarınızı denetlemenizi ve kilitlenmeyi yeniden önlemek için yazılım ve virüs tarayıcılarını birleştirmeyi devre dışı bırakmanızı önerir. Microsoft Premier Destek Hizmetleri (PSS), deneyimlerine ve müşteri geri bildirimlerine göre NT 4 stilindeki BSOD'nin kilitlenmenin nedenini belirlemek için yararlı olmadığını belirledi.

Kullanıcılardan sürücü hata raporları alırken yararlı olmak için yüklenen sürücü listesini ve özellikle yığın dökümünü kişisel olarak buldum. Bu bilgileri almak, kullanıcıların çok megabaytlı kilitlenme dökümü göndermesinden çok daha kolay ve hızlıdır. Kilitlenmenin nedenini genellikle yığın dökümü ve kullanıcıların sürücü listesinde görüntülenen sürüm bilgilerine göre yüklemiş olduğu doğrulanmış sürücü sürümleri temelinde yalıtdım. Ne düşündüğünüzu merak ediyorum: NT 4 stilindeki BSOD'nin Windows 2000'e taşınacağını mı görmek istiyorsunuz yoksa yeni BSOD biçimi yeterli mi? Bir fikrin varsa bana bir e-posta gönder. Bu resmi olmayan anketin sonuçlarını bir sonraki bültende bildireceğim. BSOD'lar konusundayken, bu sorunda ele alınan popüler Sistemler Dahili Sistemler BlueScreen Ekran Koruyucusu'nun Windows 2000 güncelleştirmesine göz atmaya dikkat edin.

Teşekkürler!

-İşaret

SISTEM IÇLERINDEKI YENILIKLER

SDELETE

C2 güvenlik derecelendirme gereksinimlerini karşılayan Windows NT 4.0 kapsamında "nesne yeniden kullanım koruması" uygular. Başka bir deyişle NT, uygulamalar kaynaklara ilk kez eriştiğinde ayrılan dosya ve bellek kaynakları uygulamalarını sıfırlar. Bu, örneğin bir uygulamanın büyük bir dosya oluşturmasını ve diskte daha önce depolananları görmek için içeriğini incelemesini engeller. Ancak, nesne yeniden kullanımı koruması, kaynakla ilgili standart API'leri atlayan veya işletim sistemini tamamen atlayan uygulamalar tarafından erişilebilen kaynakları koruma kapsamına alınmaz. Örneğin, bir diskin ayrılmamış bölümlerinin içeriğini incelemek için Resource Kit'in DiskProbe'ı gibi bir disk düzenleyicisi kullanabilirsiniz. Bu, daha önce silinmiş dosyalara ait olan verileri görmenizi sağlar.

Birçok ortamda "güvenli silme" özelliği gerekir. Bu özellik, kullanıcıların hassas verileri kalıcı olarak silerek işletim sistemi koruma olanaklarını atlayan araçlar tarafından görünmemelerini sağlar. Şifreleme Dosya Sistemi'nin (EFS) ortaya çıkması, Windows 2000'de güvenli bir silme tesisi gereksinimini vurgulamıştır. Daha önce şifrelenmemiş bir dosyayı şifrelediğinizde, EFS disk ayırmalarını boşalttığında dosyanın şifrelenmemiş verilerini içeren disk ayırmalarının içeriğini silmez. Bu nedenle, şifrelediğiniz dosyanın etkin sürümü güvenli olsa da, NTFS'nin bu bölümlere atadığı yeni dosya verileri üzerine yazılana kadar dosyanın eski sürümü diskin ayrılmamış bölümlerinde yer almaya devam eder.

Bu deliği doldurmak için SDelete (Güvenli Silme) yazdım. Bu, yalnızca standart dosyaları güvenli bir şekilde silmenizi değil, aynı zamanda diskin ayrılmamış bölümlerinde daha önce silinmiş olan tüm verileri güvenli bir şekilde silmenizi de mümkün kılan bir komut satırı aracıdır. Buna ek olarak, birleştirme API'sinin kullanılmasını gerektiren Windows NT/2000 sıkıştırılmış, şifrelenmiş ve seyrek dosyalar ile çalışır. SDelete, Savunma Bakanlığı'nın standart DOD 5220.22-M'yi temizlemesine ve temizlemesine bağlıdır, böylece verileri sildikten sonra sonsuza kadar silineceğinden emin olabilirsiniz.

SDelete'e tam kaynak kodu ve nasıl çalıştığını gösteren bir açıklama sağlarım, böylece birleştirme API'sini nasıl kullandığını görebilirsiniz ve böylece hassas silinen verilerinizin kurtarılabilir olmasını engellediği iddialarımı doğrulayabilirsiniz.

Windows NT/2000 birleştirme API'sinde belgeleri şu konumda bulabilirsiniz: http://www.sysinternals.com/defrag.htm. Tam kaynak koduyla SDelete'i indirin: http://www.sysinternals.com/sdelete.htm.

BLUESCREEN EKRAN KORUYUCU WIN2K GÜNCELLEŞTIRMESI

Microsoft'un Windows 2000'deki NT başlangıç ekranında ve Mavi Ölüm Ekranı (BSOD) düzeninde yaptığı değişiklikler, Systems Internals BlueScreen Ekran Koruyucusu'nun önemli bir güncelleştirme gerektirmesini sağladı. Size BSOD gerçekçiliği konusunda en üst düzeyde bilgi vermeye devam etmek için ekran koruyucunun 2.0 sürümünü yayımladım. Yalnızca BSOD biçimindeki değişiklikleri yansıtmaz, aynı zamanda windows 2000 başlangıç ekranını tam olarak taklit eder ve ilerleme şeridi ve ilerleme çubuğu güncelleştirmelerini döndürür. Ekran koruyucunun Windows 2000 uzman kullanıcılarını ve geliştiricileri bile kandıracağı kadar gerçek. Elbette, NT 4.0 BlueScreen Ekran Koruyucusu altında NT 4.0 BSOD ve başlangıç ekranlarını sunmaya devam eder.

Windows 2000 başlangıç ekranını mükemmel ve aynı zamanda telif hakkı yasalarını ihlal etmeyen şekilde nasıl yeniden oluşturdum? Ekran koruyucu ile Windows 2000 başlangıç bit eşlem grafiklerini eklemiyorum. Bunun yerine, başlangıç sırası sırasında grafik modunu Windows 2000 tarafından kullanılanla aynı moda geçmek için DirectX kullanıyorum ve ardından windows 200 çekirdek dosyasının bit eşlem kaynaklarına başvuruda bulunup ntoskrnl.exe. Bu kaynaklar (Visual Studio'da ntoskrnl.exe kaynaklarını açarak bunları görüntüleyebilirsiniz), çekirdeğin görüntülediği kaynaklardır. Bu, başlangıç grafiklerinin aslında ayrı dosyalar olduğu işlemleri Windows 9x yönteminden kaynaklanan bir değişikliktir. Bilgisayar OEM'lerine Windows 2000'de başlangıç deneyimini özelleştirme fırsatı verilecek gibi görünmüyor...

BlueScreen ekran koruyucusunu şu konumdan indirebilirsiniz: http://www.sysinternals.com/bluescreen.htm. Ekran koruyucu ile birini kandırmayla ilgili komik bir hikayeniz varsa, lütfen bunu iletin.

BSOD'lerin nasıl ve neden olduğu hakkında daha fazla bilgi için bkz. Aralık 1997 Windows NT Magazine NT Internals sütunum olan "Mavi Ekran İçinde". Systems Internals Publications sayfasındaki bir bağlantı sizi http://www.sysinternals.com/publ.htmbu sütunun satır içi sürümüne götürür. Sayfa ayrıca, benim yazdığım makalelerin ve sütunların diğer satır içi sunularının bağlantılarını da içerir.

"LINUX VE KURULUŞ"

Linux çekirdeğinin ölçeklenebilirlik eksiklikleri hakkında Windows NT Magazine'in Nisan sayısında yayınlanan makaleme Linux topluluğunun muazzam yanıtı, dergiden makalenin satır içi sürümünü zamanlamadan önce yayınlamasını istetmiştir. "Linux ve Kuruluş" makalesinin bağlantısını şu konumdaki "Makaleler" bölümünde bulabilirsiniz: http://www.sysinternals.com/publ.htm. Bu makalede, etkin bir olay bekleme mekanizmasının olmaması, önemli bir sistem çağrısı serileştirmesi olmaması, zaman uyumsuz G/Ç olmaması ve sendfile (NT'de TransmitFile adlı yuva API'sinin) kötü uygulanması dahil olmak üzere Linux çekirdeğinin (2.2x) geçerli sürümünün çeşitli sınırlamaları açıklanmaktadır. Bu sınırlamaların birleşimi, Linux'un web sunucuları, veritabanı sunucuları ve e-posta sunucuları gibi kurumsal sınıf uygulamalarda performans açısından NT ve diğer UNIX'lerle kafa kafaya rekabet etmesini engeller.

"INSIDE NT UTILITIES"

Filemon, Regmon veya HandleEx kullandıysanız ve size ne söyledikleri ve nasıl uygulandıkları hakkında daha fazla bilgi edinmek istiyorsanız, Şubat'taki Windows NT Magazine sütunum olan "Inside NT Utilities" ile ilgileneceksiniz. Bu sütunda, bu araçların iç işlevleri açıklanır ve Regmon ve Filemon için kayıt defteri veya dosya sistemi etkinliğini yakalarken günlüğe kaydeddikleri hata kodları ve istek türleri hakkında biraz bilgi sağlar. Bu makalenin yeni kullanıma sunulan on-line sürümünün bağlantısı şu konumda bulunur: http://www.sysinternals.com/publ.htm.

MAYıS WINDOWS NT MAGAZINE SÜTUNUM

Windows NT/2000'in Kayıt Defteri'nin içeriğini bellek içinde veya diskte nasıl düzenlediğini hiç merak ettiniz mi? Windows NT Magazine'in geçerli (Mayıs) sayısı, bunu ve daha fazlasını söyleyen "Inside the Registry" adlı sütunumu içerir. Örneğin, Configuration Manager çekirdek modu alt sisteminin (Kayıt Defterini yönetmekten sorumlu alt sistem) anahtarları nasıl arayacağınızı, değer verilerini nasıl depolayacağınızı, aramayı nasıl iyileştireceğinizi ve disk üzerindeki Kayıt Defteri dosyalarının bütünlüğünü nasıl koruduğu hakkında bilgi edinin. Windows NT Magazine, http://www.winntmag.com, Borders and Barnes and Nobles adresinde mevcuttur.

ÇOK YENI OLMAYAN ŞEYLER

Windows 2000 Beta 2 yayımlandıktan kısa bir süre sonra çekirdek görüntü dosyasının (ntoskrnl.exe) Checked (hata ayıklama) derlemesini aldım, çekirdekte bir dize araması yaptım ve çekirdeği oluşturmak için kullanılan kaynak dosyaların adlarının listesini aldım. NT/2000 çekirdeğinin İşaretli derlemesi, Assert'ın bulunduğu dosyanın dosya adını içeren çok sayıda Assert deyimi (tutarlılık denetimleri) içerir. Çekirdek kaynağındaki herhangi bir öneme sahip her dosyanın içinde en az bir Assert bulunacağını varsayarsak, liste oldukça kapsamlıdır. Listeyi bir Java betiğine dökümü bana Windows 2000 kaynak ağacının dizin yapısının Explorer benzeri güzel bir ağaç görünümü verdi. Şu konumdan göz atın: http://www.sysinternals.com/nt5src.htm.

İÇ HABERLER

DR. GUI'NIN KÖTÜ BAŞUCU DAVRANıŞLARı

Microsoft Developer Network News Dr. GUI'nin Mart/Nisan sayısında, okuyucudan gelen ve bir sürücünün iş parçacıklarını nasıl etkileştirebileceğini (belirli bir CPU'ya zorlama) sorduğu bir soru alır. Dr. GUI, bir sürücüden bir sistemdeki işlemci sayısını belirlemenin hiçbir yolu olmadığını ve sürücü iş parçacığının hangi işlemcide çalıştığını söyleyemediğini yanıtlar. Ne yazık ki, Dr. GUI bu tanıyı mahvetti (belki de Dr. GUI GUI'lere bağlı kalmalıdır).

NT çekirdeği (ntoskrnl.exe), NTDDK'da tanımlanan KeNumberProcessors adlı bir değişkeni dışarı aktarır. H:

extern PCCHAR KeNumberProcessors;

Bu, aşağıdaki gibi bir sürücüde doğrudan başvurulabilir:

CHAR    i;

for( i = 0; i < *KeNumberProcessors; i++ ) {

    // do processor specific stuff
}

Bir sürücü iş parçacığının hangi işlemcide çalıştığını belirlemek için, yalnızca NTDDK'de tanımlanmayan başka bir çekirdek dışarı aktarma işlemi olan KeGetCurrentProcessorNumber() kullanın. H, ancak aslında DDK'de belgelenmiştir!

Dr. GUI bu rahatsızlık için yanlış ilaç yazdı. Şaşırtıcı bir şekilde, Dr. GUI e-postayı hiç kabul etmemiş. sonraki sorunda iyi Dr. hataya uygun olup olmadığını göreceğiz...

WINDEV '99 DOĞU

Windows geliştiricileri için premier konferansın 1999 East Coast sürümü hızla yaklaşıyor. WinDev '99 East 14-18 Haziran'da Boston Cambridge Marriot'ta gerçekleşecek. Jeff Richter, Jeff Prosise ve Don Box da dahil olmak üzere Windows geliştirme alanındaki bir dizi büyük isim konuşuyor. Cihaz sürücüsünde Jamie Hanrahan ve Brian Catlin ile orada olacağım. Sunularımda NT iç sistemleriyle ilgili bir günlük öğreticinin yanı sıra Windows NT/2K dosya sistemi sürücüleri yazma ve gelişmiş cihaz sürücüsü geliştirme sorunlarıyla ilgili bir öğretici yer alıyor. Gelin ve merhaba deyin!

NUMEGA DRIVER WORKS RELEASE IMMINENT

Compuware NuMega Labs, driverStudio adlı güçlü yeni bir Windows 9x/NT/2K cihaz sürücü geliştirme seti yayınlamanın eşiğindedir. DriverStudio, DriverAgent, DriverWorks, SoftICE ve VtoolsD dahil olmak üzere NuMega'nın tüm mevcut cihaz sürücüsü araçlarını birleştirir ve sürücüler ve FieldAgent için yeni BoundsChecker'ı ekler (yalnızca Windows NT/2K).

BoundsChecker'ın cihaz sürücüsü sürümü, sürücünüzün kullandığı her çekirdek API'sinin kapsamlı bir şekilde izlenmesini sağlar ve bunu kullanarak sürücünüzün sistemdeki diğer tüm cihaz sürücüleriyle etkileşimlerini izleyebilirsiniz. FieldAgent, istemcilerin sizin için çözümleyebileceğiniz izlemeleri toplaması için BoundsChecker'ın sürücü sürümünü istemci sistemlerine dağıtmanıza olanak tanır. DriverStudio müşterileri için ücretsiz bir güncelleştirme olarak yakında sürücüler için TrueTime ve sürücüler için TrueCoverage, cihaz sürücülerinizi kolayca performans ayarlamanızı ve kapsam test etmenizi sağlayan araçlardır.

Bu paket nihai sürücü geliştirme setidir ve bunu şiddetle tavsiye ederim (Beta programındayım). Daha fazla bilgi için: http://www.numega.com.

BETA 3 DDK YAYINDA

Microsoft, Windows 2000 Beta 3 sürümüyle birlikte Windows 2000 Beta 3 DDK'yi (Cihaz Sürücü Seti) ücretsiz olarak indirilmesini sağlamıştır. DDK'yi şu konumdan alabilirsiniz: http://www.microsoft.com/ddk/ddk2kb3.htm. Beta 3'te MSDN'nin Nisan sürümünden itibaren belgelenmemiş bir dizi Win32 API'sinin bulunduğundan SDK'nın yakında takip edeceğini umuyorum.

WIN2K KUYRUĞA ALıNMıŞ SPINLOCK'LAR

Windows 2000, genel kilitleri için "kuyruğa alınmış spinlock" olarak adlandırılan yeni bir spinlock türü kullanır. Windows 2000'deki genel kilitler, Windows NT 4.0 ile aynıdır ve şunları içerir:

  • KiDispatcherLock: zamanlayıcı veritabanı kilidi
  • KiContext-SwapLock: sırt değiştirme kilidi
  • MmPfnLock: fiziksel sayfa çerçevesi veritabanı kilidi
  • MmSystemSpaceLock: çekirdek modu adres alanı kilidi
  • CcMasterSpinLock: Önbellek Yöneticisi'nin genel spinlock'u
  • CcVacbSpinLock: Önbellek Yöneticisi'nin mapping-array kilidi

Tek işlemcili kuyruğa alınmış bir spinlock'lar tam olarak normal spinlock'lar gibi çalışır. Ancak NT'nin çok işlemcili derlemesinde kuyruğa alınan spinlock'lar önemli ölçüde farklıdır. Standart spinlock'lar gibi kuyruğa alınan spinlock'lar da HAL'de uygulanır. Çekirdek kuyruğa alınmış bir spinlock almak için HAL işlevini KeAcquireQueuedSpinlock çağırır ve kuyruğa alınmış bir spinlock serbest bırakmak için çağırır KeReleaseQueuedSpinlock . KeAcquireSpinlock ve KeReleaseSpinlock, çekirdeğin standart spinlock'ları almak ve serbest bırakmak için kullandığı HAL işlevleri, belirtilen spinlock adresini parametre olarak gerektirir. Buna karşılık, kuyruğa alınan spinlock işlevleri genel bir spinlock'un dizin numarasını alır. Çekirdek, genel spinlock'ları bir dizide başlatır; burada her spinlock, çekirdeğin bunları HAL'de tanımlamak için kullandığı önceden tanımlanmış bir dizin numarasına sahiptir. Bu nedenle, kuyruğa alınan spinlock'lar cihaz sürücüleri tarafından tanımlanamaz ve kullanılamaz, çünkü genel kuyruğa alınmış spinlock dizisini artırmanın bir yolu yoktur.

Windows 2000'de, bir SMP'deki her işlemci denetim bölgesi (PCR) (her işlemci için bir PCR vardır) kuyruğa alınmış spinlock'lar kadar çok girdi içeren bir diziye sahiptir. Her dizi girişi iki alan içerir: karşılık gelen kuyruğa alınmış spinlock işaretçisi ("spinlock" alanı) ve "kuyruk" alanı. Aşağıdaki açıklamada, spinlock ve kuyruk alanlarına başvurdığımda, alınan veya yayımlanan spinlock için dizi girişiyle ilişkili alanlardan bahsediyorum.

KeAcquireQueuedSpinlock şöyle çalışır: işlev, geçerli işlemcinin PCR adresini spinlock'a yerleştirmek için birbirine bağlı exchange CPU yönergesini kullanarak spinlock'u almaya çalışır. Spinlock tutulursa işlev, değiştirme işleminin bir parçası olarak başka bir işlemcinin PCR'sinin adresine sahiptir. Ardından işlev, kendi PCR'sinde spinlock alanının düşük bitini çevirerek kendisini "bekliyor" olarak tanımlar. Ardından, kendi PCR adresini, kilitten aldığı PCR'nin kuyruk alanına yerleştirir. Son olarak, bit kapalıyken düşük bit kendi spinlock alanında kapatılana kadar meşgul döngüsünde bekler, ardından geçerli işlemciye spinlock verilir ve bu nedenle alma işlevini çağırana döner.

Bir işlemci kuyruğa alınmış bir spinlock aldıktan ve kilidi tutarken yapmak istediği işlemi tamamladıktan sonra öğesini çağırır KeReleaseQueuedSpinlock. KeReleaseQueuedSpinlock geçerli işlemcinin PCR'sinde belirtilen spinlock için kuyruk alanına bakar. Kuyruk alanı sıfır değilse, başka bir işlemci PCR'sini orada "kuyruğa" almıştır. KeReleaseQueuedSpinlock bekleyen PCR için spinlock alanının düşük bitini temizler ve ardından kendi kuyruk alanını temizleyip döndürür. Bekleyen PCR'nin spinlock alanındaki düşük biti temizleyerek bir sonraki CPU'ya kilidin olabileceğinin sinyalini verdi. Kuyruk alanı sıfırsa, kilidi bekleyen başka bir işlemci yoktur ve KeReleaseQueuedSpinlock genel spinlock'u temizlemek için kilitlenmiş bir değişim işlemi gerçekleştirir.

Kuyruğa alınan spinlock'ların işlemi, işlemcilerin tutulan bir spinlock'u beklerken "sıralandığı" işlemdir. Her işlemci, kendisinden önce gelen işlemciye beklediğini söyleyerek kendisini kuyruğa alır. Bu, kuyruğa alınmış bir spinlock işlemcilerinin spinlock'u istedikleri sırayla almasına yönelik belirleyici bir sıralama sağlar. Standart spinlock'lar için böyle bir sıralama yoktur. Kuyruğa alınan spinlock'ların daha önemli bir avantajı daha vardır. Bir işlemci, düşük bitin temizlenmiş olması için spinlock alanını beklerken özel belleği kendi işlemcisine döndürüyor. Bir işlemci meşgul standart bir spinlock beklediğinde, tüm işlemciler tarafından paylaşılan genel spinlock üzerinde döner. Bu nedenle, meşgul bekleme sırasında paylaşılan önbellek satırı erişimi olmadığından kuyruğa alınan spinlock'lar daha iyi çok işlemcili veri yolu özelliklerine sahiptir. Buna ek olarak, kuyruğa alınan spinlock'ların kuyruğa alma özelliği nedeniyle, bir kilit birkaç işlemcinin çekişmesi altında olduğunda standart spinlock'lara göre genellikle daha az veri yolu kilidi işlemi vardır.

Kuyruğa alınan spinlock'lar, Microsoft'un Windows 2000'in çok işlemli ölçeklenebilirliğini yaptığı çeşitli geliştirmelerden biridir.

YAKLAŞANLAR

Windows 2000, işleç hatalarına ve hatalı uygulamalara karşı daha dayanıklı olmasını sağlayan çok sayıda özellik içerir. Bunlardan biri, ve %systemroot%\system32\drivers dizini altındaki %systemroot%\system32 DLL'lerin ve sürücülerin çoğunun Sistem Dosya Koruyucusu (SFP) adlı bir izleme tarafından korunmasıdır. Dizinine system32 gidip öğesini yeniden adlandırarak ntoskrnl.exevarlığını doğrulayabilirsiniz. Watchdog uyanır ve korumalı bir sistem dosyasıyla oynandığını algılayıp onardığını size bildirir. Dizini yeniden kontrol ederseniz sihirli bir şekilde değiştirildiğini göreceksiniz ntoskrnl.exe . Bir dahaki sefere bunun nasıl çalıştığını anlatacağım.


Systems Internals Bülten'i okuduğun için teşekkür ederiz.

Yayın tarihi: 15 Mayıs 1999 Cumartesi 19:15 ottoh

[Bülten Arşivi ^] [< Birim 1, Sayı 1] [Birim 1, Sayı 3 >]