Select the product you need help with
Zaman uyumsuz disk g/Ç, Windows NT, Windows 2000 ve Windows XP üzerinde eşzamanlı olarak görünüyorMakale numarası: 156932 - Bu makalenin geçerli olduğu ürünleri görün. Bu SayfadaÖzetDosya g/Ç, Microsoft Windows NT, Windows 2000 ve Windows XP, zaman uyumlu veya zaman uyumsuz olabilir. G/Ç için varsay?lan davran??? zaman uyumlu çalışır: bir g/Ç işlevi olarak adlandırılır ve g/Ç işlemi tamamlandığında döner. Zaman uyumsuz g/Ç Diğer yandan, yürütme için Arayanın geri hemen geri dönmek, bir g/Ç işlevi sağlar., ancak bazı sonraki bir zamana kadar tamamlanması için ı/o varsayılır. G/Ç işlemi tamamlandığında işletim sistemi, arayanın bildirir. Alternatif olarak, arayan, işletim sistemi hizmetlerini kullanarak durumu Bekleyen g/Ç işlemi belirleyebilirsiniz. Zaman uyumsuz g/Ç avantajlarından arayan zaman başka bir iş veya daha fazla istekleri, g/Ç işlemi tamamlanırken sorun olduğunu ' dir. Çakışan g/Ç terimi sık zaman uyumsuz g/Ç ve olmayan çakışan g/Ç için eşzamanlı g/Ç için kullanılır. Bu makalede, Windows NT altında bir g/Ç işlemleri için zaman uyumsuz ve zaman uyumlu kullanır. Bu makale, okuyucu dosya g/Ç işlevleriyle CreateFile (ReadFile, WriteFile gibi belirli benzerlik sahip olmadığını varsayar. Genellikle, zaman uyumsuz g/Ç işlemleri yalnızca olarak eşzamanlı g/Ç. zaman uyumlu olarak, g/Ç işlemlerini tamamlamak sonraki bölümlerde markasını bu makalede açıklanan belirli koşulları davranır. Arayanın, çünkü g/Ç işlemi tamamlanıncaya kadar g/Ç işlevleri geri arka plan iş zaman vardır. Zaman uyumlu ve zaman uyumsuz g/Ç için ilgili çeşitli işlevleri. Bu makalede, örnek olarak ReadFile ve WriteFile kullanır; bu iyi bir alternatif ReadFileEx ve WriteFileEx olacaktır. Yalnızca disk g/Ç, özellikle bu makalede anlatılmaktadır ancak birçok ilkeler gibi seri bir g/Ç veya ağ g/Ç (ı/o, diğer tür uygulanabilir. Not: (diğer bir g/Ç aygıtları türlerine yaptığı karşın) Windows 95 için zaman uyumsuz g/Ç disk aygıtlarda desteklemez, bu makaledeki davranışını kapsanmayan. Daha fazla bilgiZaman uyumsuz g/Ç ayarlaDosya açıldığında CreateFile FILE_FLAG_OVERLAPPED bayrağın belirtilmesi gerekir. Bu bayrak, zaman uyumsuz olarak gerçekleştirilecek dosya g/Ç işlemlerini sağlar. Işte bir örnek:Zaman uyumsuz işlemler gibi ek işlemleri Kuyruklama, tamamlamasını bekliyor veya arka plan iş yapmak çalışırken bir program için pek çok şey vardır. Örneğin, aşağıdaki kodu düzgün çakışan olan ve olmayan çakışan bir okuma işlemi tamamlandığında işler. Bu işlem yapmaz birden fazla bekleyen ı/o tamamlanması için beklemeniz: Diğer yandan, bir operasyon hemen sonra tamamlandıktan ve içine NumberOfBytesRead geçirilen ReadFile okunan bayt sayısı için geçerli olur. Bu durumda, ReadFile geçirilen OVERLAPPED yapısını dikkate; GetOverlappedResult veya WaitForSingleObject kullanmayın. Başka bir uyarı ile zaman uyumlu işlem bekliyor, işlem tamamlanıncaya kadar bir OVERLAPPED yapısını kullanmanız gerekir ' dir. Diğer bir deyişle, üç bekleyen g/Ç işlemleri varsa, üç OVERLAPPED yapıları kullanmanız gerekir. Bir OVERLAPPED yapısını yeniden, g/Ç işlemlerinde, öngörülmeyen sonuçlar alırsınız ve veri bozulması karşılaşabilirsiniz. Bu nedenle, yeni işlem sola üzerinden veri etkiler Ayrıca, ilk kez bir OVERLAPPED yapısı'nı kullanmadan önce veya daha önceki bir operasyon tamamlandıktan sonra yeniden önce doğru yeniden başlatmalısınız. Kısıtlaması aynı tür işlemdeki veri arabelleği için geçerlidir. Bir veri arabelleğini olmalı değil okunamıyor veya onun karşılık gelen g/Ç işlemi tamamlanıncaya kadar yazılan; okuma veya arabelleğe yazma hatalarını ve bozuk veri neden olabilir. Zaman uyumsuz g/Ç hareketsiz zaman uyumlu olarak görünüyorBu makalede anlatılan yönergeleri izlediyseniz, ancak tüm g/Ç işlemlerini hala genellikle zaman uyumlu olarak verilen, sırayla tamamlayın ve ReadFile işlemlerin hiçbiri YANLıŞ GetLastError() ile ERROR_IO_PENDING döndürülüyor verir, bu, tüm arka plan iş zaman gerektiği anlamına gelir. Bu neden oluşuyor?Zaman uyumsuz işlem için kodlanmış olsa bile neden g/Ç işlemlerini eşzamanlı tamamlamak nedeni vardır: SıkıştırmaZaman uyumsuz işlem için bir engel NTFS sıkıştırması ' dir. Dosya sistemi sürücüsü sıkıştırılmış dosyaları zaman uyumsuz olarak erişecek değil; bunun yerine tüm işlemleri yalnızca eşzamanlı yapılmaz. Bu, SıKıŞTıRMA veya PKZIP benzer yardımcı programları içeren sıkıştırılmış dosyalar için geçerli değildir.NTFS, şifrelemeBenzer şekilde, sıkıştırma, dosya şifreleme sistemi sürücüsü, zaman uyumsuz g/Ç için zaman uyumlu dönüştürmek neden olur. Dosyaların şifresi, zaman uyumsuz g/Ç istekleri de olacaktır.Bir dosya genişletmeG/Ç işlemlerini eşzamanlı tamamlandığından başka bir işlem kendilerini nedenidir. Windows NT'DE herhangi uzunluğunu aşan bir dosyaya işlem zaman uyumlu yazın.Not: uygulamaları daha önce sözü edilen yazma işlemi zaman uyumsuz SetFileValidData işlevini kullanarak ve sonra da bir WriteFile verme dosyanın geçerli veri uzunluğunu değiştirerek yapabilirsiniz. (Bu, Windows XP ve sonraki sürümlerde kullanılabilir) SetFileValidData kullanarak uygulamalar verimli bir şekilde dosyaları bunları sıfır-doldurma için bir performans ceza ödemeden olmadan genişletebilirsiniz. Çünkü, NTFS dosya sistemi olmayan sıfır - <a1>Dolgu</a1> verilerin SetFileValidData, bu işlev tarafından tanımlanan geçerli veri uzunluğu (VDL) daha önce diğer dosyalar tarafından kullanılan kümeleri dosya atanabilir güvenlik olası etkilere sahiptir.... Bu nedenle, SetFileValidData arayanın etkin bir yeni SeManageVolumePrivilege bulunmalıdır (varsayılan olarak, bu yalnızca yöneticiler tarafından atanır). Microsoft, ısv etkileri, bu işlevi kullanarak, dikkatle ele almanızı önerir. ÖnbellekBirçok g/Ç (disk, iletişim ve diğerleri) sürücüleri, burada, bir g/Ç isteği "hemen" tamamlanabilir, operasyonun tamamlandı ve ReadFile veya WriteFile işlevi TRUE döndürecektir özel durum koduna sahip. Zaman uyumlu için bu tür işlemler tüm şekillerde görüntülenir. Verileri bellekte "hemen" önbelleğe alındığında bir disk aygıtı, tipik olarak bir g/Ç isteği tamamlanabilir.Veri önbelleği içinde değil.Veri önbellekte değilse önbellek düzeni karşı ancak çalışabilirsiniz. Windows NT önbellek dahili dosyası eşleştirmeleri kullanılarak uygulanır. Windows NT'de bellek yöneticisi, önbellek yöneticisi tarafından kullanılan dosya eşlemeleri yönetme için bir zaman uyumsuz bir sayfa hatası mekanizma sağlamamaktadır. Önbellek Yöneticisi ancak, istenen sayfayı bellekte olup olmadığını doğrulayabilirsiniz; bu nedenle, zaman uyumsuz bir önbellekteki okuma sorunu ve sayfaları bellekte değil, dosya sistemi sürücüsü engellendi, iş parçacığının istemiyorsanız ve sınırlı bir çalışan iş parçacığı havuzu tarafından işlenen istek varsayar. Denetim, okuma hala bekliyor ReadFile aramanız sonra programınızı döndürülür.Bu istekleri, az sayıda için düzgün çalışır, ancak çalışan iş parçacığı havuzunun olduğundan (şu anda üç sistemindeki 16 MB), burada sınırlı hala yalnızca birkaç istekleri disk sürücüye belirli bir zamanda sıraya alınır. Çok fazla g/Ç işlemlerinin önbellekte bulunmayan verileri vermek ve önbellek yöneticisi bellek yöneticisi doygun olur ve isteklerinizi zaman uyumlu hale getirilir. Önbellek Yöneticisi davranışını da olup, bir dosyaya sıralı veya rasgele erişim üzerinde temel etkilenebilirler. Dosyaları sırayla erişirken, kazançlar önbelleğinin en görülür. Bu tür bir erişim için önbelleği CreateFile çağrısında FILE_FLAG_SEQUENTIAL_SCAN bayrağı en iyi duruma getirecektir. Ancak, rasgele biçimde dosyalara, davranışını rasgele erişim için en iyi duruma getirmek için önbellek Yöneticisi'ne CreateFile FILE_FLAG_RANDOM_ACCESS bayrağı kullanın. Önbelleği kullanınÇoğu zaman uyumsuz işlem için dosya sistemi davranışını etkisini FILE_FLAG_NO_BUFFERING bayrağı var. Bu, gerçekte zaman uyumsuz g/Ç istekleri olup olmadığını güvence altına almak için en iyi yoldur. Bu, tüm önbellek mekanizması hiç kullanmamak için dosya sistemi yönlendirir.UYARı: bazı sınırlamalar için bu bayrağın kullanarak veri arabellek hizalama ve aygıtın kesim boyutuna olan vardır. CreateFile işlevi bu bayrağı düzgün kullanma hakkında daha fazla bilgi için belgelerine <a1>işlev</a1> başvurusuna bakın. ÖRNEK KODAşağıdaki dosya Microsoft Yükleme Merkezi'nden yüklenebilir:Asynczip.exe Microsoft destek dosyalarını karşıdan yükleme konusunda ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
(http://download.microsoft.com/download/platformsdk/sample/3/nt4/en-us/asynczip.exe)
119591 Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır. Bu makaleyle ilgili örnek kod, bayraklar ve tartışılan işlevleri kullanımını gösterir. Kod Windows NT'DE bir konsol uygulaması olarak çalışır. Aşağıdaki komut satırı anahtarları davranışını denetleyen:
(http://support.microsoft.com/kb/119591/EN-US/
)
Microsoft Destek Dosyaları Çevrimiçi Hizmetler'den Nasıl Alınır
Asynchio
Usage: asynchio [options]
Options:
/fFilePattern Files to use for I/O.
/s Specifies synchronous operation.
/n Specifies that no buffering should be used
/r Use FILE_FLAG_RANDOM_ACCESS
/l Use FILE_FLAG_SEQUENTIAL_SCAN
/o### Issue ### operations
/e First read entire file, then issue smaller reads
/? Display this usage message.
Örnek: asynchio /f*.bmp /n Varsayılan bu programın çalışması için zaman uyumsuz, arabelle?e al?nm?? işlemdir. Varsayılan olarak, 500 g/Ç işlemlerini istenir. Gerçek World sınaması sonuçlarıÖrnek kodun bazı sınama sonuçları şunlardır. Sayıların boyutları, burada önemli değildir ve bilgisayardan bilgisayara değişir, ancak birbirine göre sayıları arasındaki ilişki, genel bayraklar performans üzerindeki etkisini illuminates.Aşağıdakine benzer sonuçlar görmeyi beklediğiniz:
SONUÇTürünü, boyutunu ve programınızı gerçekleştirdiği işlem sayısı, tüm bağlı olduğundan hangi en iyi yöntemdir karar verebilirsiniz.Varsayılan dosya erişimi, CreateFile için'herhangi bir özel bayrakları belirtmeden bir zaman uyumlu ve önbelleğe alınan işlemdir. Not: dosya sistemi sürücüsü öngörü zaman uyumsuz önceden okuma ve zaman uyumsuz yavaş yazma değiştirilen veri var olduğundan, bazı otomatik zaman uyumsuz davranışı Bu modda alma. Bu uygulama [ASCII 146] s, g/Ç zaman uyumsuz yapmaz, ancak basit uygulamalar büyük çoğunluğu için ideal durumdur. Diğer taraftan, uygulamanızın basit değilse, bazı profil oluşturma ve benzer sınamaları bu makalenin önceki bölümlerinde gösterildiği şekilde en iyi yöntemi belirlemek için performans izleme yapmak gerekebilir. Içinde <a1>ReadFile veya WriteFile</a3> işlevini talebinde harcanan süre profil oluşturma ve daha sonra ne kadar fiili g/Ç işlemlerini tamamlamak geçecek zaman bu karşılaştırma son derece kullanışlıdır. Çoğu zaman, aslında ı/o verme harcandığını, daha sonra g/Ç zaman uyumlu olarak tamamlandı. Sertifikayı veren g/Ç istekleri için harcanan zaman ancak işlemlerinizin zaman uyumsuz olarak davranılır sonra tamamlamak, <a0></a0>, g/Ç işlemleri için gereken zaman karşılaştırıldığında görece küçük olur. Bu makalede sözü geçen örnek kod, kendi iç profil oluşturma yapmak için QueryPerformanceCounter fonksiyonunu kullanır. Performans izleme, programınızı disk ve önbellek ne verimlilikle kullanarak belirlemek yardımcı olabilir. Herhangi bir önbellek nesnesi için performans sayaçlarını izleme, performans önbellek yöneticisinin gösterir. Disk sistemleri performans nesnelerinin fiziksel disk veya mantıksal disk performans sayaçlarını izleme gösterir. Performans izleme yardımcı olan çeşitli hizmet programları vardır; bu PerfMon ve DiskPerf kullanışlıdır. Disk sistemleri performans verilerini toplamak sistem için önce diskperf -y komut kesmeniz gerekir. Komut çıkış sonra veri toplamayı başlatmak için sistemi yeniden başlatmanız gerekir. ReferanslarBu yardımcı programları ve performans izleme hakkında daha fazla bilgi için bkz: birim <a0>Windows NT Resource Kit</a0> belgelerinde "Windows NT en iyi duruma getirme". SQL Server sistemlerini desteklemek için gerektirir ‘ kararlı bir ortam garanti ’ altında Microsoft SQL Server Always-On depolama Solution inceleme program özetlendiği gibi. FOSQL Server veritabanı altyapısı için giriş ve çıkış gereksinimleri hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın: 967576
(http://support.microsoft.com/kb/967576/
)
Microsoft SQL Server Database Engine giriş/çıkış gereksinimleri ÖzelliklerMakale numarası: 156932 - Son Gözden Geçirme: 06 Şubat 2009 Cuma - Gözden geçirme: 5.1 Bu makaledeki bilginin uygulandığı durum:
Otomatik Tercüme ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir. Makalenin İngilizcesi aşağıdaki gibidir:156932
(http://support.microsoft.com/kb/156932/en-us/
)
| Makale çevirileri
|




Üste








