Uçtan uca prensibi resmileştirilebilir mi?


10

1990'ların sonlarında, yüksekokuldayken, yazı

JH Saltzer; DP Kamış; DD Clark: Sistem tasarımında uçtan uca argümanlar . ACM Trans. Comput. Sist. 2 (4): 277-288, 1984. DOI = 10.1145 / 357401.357402

her üniversitedeki her işletim sistemi sınıfında okumaya ihtiyaç duyuyordu ve hala internet tasarımının altında yatan temel rehber ilkelerden biri gibi görünüyor. (Örneğin bakınız: J Kempf, R Austein (eds) ve IAB, "Ortadan Yükseliş ve Uçtan Uca Geleceği: İnternet Mimarisinin Evrimi Üzerine Düşünceler ", RFC 3724, Mart 2004. )

Uçtan uca prensip belirtmektedir (Saltzer vd., 1984):

[Eğer] söz konusu fonksiyon, iletişim sisteminin son noktalarında duran uygulamanın bilgisi ve yardımı ile tamamen ve doğru bir şekilde uygulanabiliyorsa, ... iletişim sisteminin kendisinin bir özelliği olarak söz konusu fonksiyonun mümkün. [Yine de] bazen iletişim sistemi tarafından sağlanan fonksiyonun eksik bir versiyonu, bir performans geliştirme olarak yararlı olabilir.

Veya daha kısaca (özetten):

Uçtan uca argüman, bir sistemin düşük seviyelerine yerleştirilen işlevlerin, bu düşük seviyede sağlama maliyetiyle karşılaştırıldığında gereksiz veya çok az değerli olabileceğini düşündürmektedir.

Ama kendi deneyimlerime göre uçtan uca prensibi uygularken pek başarılı olamadım (ki bilgisayar mimarisinde, internet mimarisinde değil). İlke bir "şiir" olarak ifade edildiğinden (yani, matematiksel olarak tanımlanmamış bir grup terim ile İngiliz nesirinde), "söz konusu işlevin yalnızca ve doğru bir şekilde yalnızca doğru şekilde uygulanabileceğini düşünmeye kandırmak oldukça kolaydır. uygulamanın bilgi ve yardımı. " Fakat bir uygulamanın "bilgi ve yardımı", "söz konusu fonksiyon", ne olursa olsun "nedir?

Örnek: Çip üzerinde ağların (internetin aksine) paketleri bırakmasına izin verilmez, ancak oldukça sınırlı arabelleğe alma özelliğine sahiptir, bu nedenle kilitlenmeden kaçınmak veya kurtulmak için bir yolunuz olması gerekir. Öte yandan, uygulamanın da kendini kilitlenme serbest bırakması gerekiyor, değil mi? Bu yüzden yaygın dava (kilitlenme yok) hızlı yapmak ve app kilitlenme önleme itmek gerekir neden olabilir. Aslında, Alewife ve Fugu üzerinde denediklerimiz (Mackenzie, et al., Hızlı Korumalı Mesajlaşma için İki Durumda Teslimden Yararlanma, Uluslararası Symp High-Perf Comp Arch, (HPCA-4): 231-242, 1998. Veya John Kubiatowicz tezi.) "Çalıştı" (arabellekler dolduğunda ara bağlantıyı işlemciye ara vererek ve işletim sistemi yazılım arabellekleme ile güçlendirerek) ama akademi veya endüstride (bu konuda yazar olan herhangi birimiz dahil) hiç kimse görmedim HPCA kağıt) etrafında yarışarak fikri çoğaltmaya çalışıyor. Dolayısıyla, bir ağda kilitlenme önleme, uygulama düzeyinde kilitlenme önleme ile aynı "söz konusu işlev" ile aynı değildir veya uçtan uca prensibi yanlıştır.

Uçtan uca prensibini bir "şiirden" bir teorem haline dönüştürmek mümkün müdür? Ya da en azından bir bilgisayar mimarı tarafından anlaşılabilir olarak ifade edilebilir mi?


bu, bir iletişim bağlamında bir arayüzün aşırı tasarlanması veya aşırı yapılandırılması gibi bir şeydir. CS arayüzlerinde / API'larında genellikle nadiren kullanılan işlevlerle oluşturulur veya beklenen yapı gerçek kullanım / gereksinimlerle uyumlu değildir. öğüt "mümkün olduğu kadar farkında olmak ve bundan kaçınmak" gibi görünmektedir.
vzn

Örneğinizle ilgili olarak; sen "çalıştı", (arabellek doldurulduğunda ara bağlantı kesme işlemcisi ve işletim sistemi yazılım tamponlama ile artırılması). Yani CPU'lar arasındaki ara bağlantı, başka bir CPU'nun normal işlemci belleğindeki verileri arabelleğe almasına izin verecek kadar "sessiz" mi? Bu bana oldukça mantıklı gelmiyor.
Alexandros

Ara bağlantı oldukça meşgul. Yazılım kesintisi ve arabellekleme yalnızca donanım arabellekleri bir kilitlenmeyi önlemek için yetersiz olduğunda oluşur. Yazılım arabellekleri, donanım arabelleklerinden daha büyük boyutlarda olabilir, bu nedenle küçük donanım arabelleklerinin doldurulmasından kaynaklanan bağımlılık döngülerini kırabilir. Bu nadiren oldu (esas olarak yalnızca önbellek tutarlılığı trafiğiyle rekabet eden çok sayıda DMA trafiği olduğunda), bu nedenle çoğu program için donanım yerine yazılımda işlenen mesajların oranı ihmal edilebilir.
Gezici Mantık

Yanıtlar:


3

Uçtan uca (e2e) ilkesini uygulamanızda iki eksiklik olabileceğine inanıyorum:

İlk olarak, performans için uyguladığınız anlamında. Uçtan uca, mimari dikeyliği, birleştirilebilirliği, düzenliliği, bir veya tümünü, ilkeleri vb. Sağlamak gibi bir tasarım ilkesidir. Bu ilkeler ilgili ders kitaplarında ana hatlarıyla belirtilmiştir. Performans bunlardan biri değil. Aslında Clark ve arkadaşları, katı uçtan uca daha kötü performansa neden olabileceğini, bu nedenle bu ilkeye bir istisna olarak kullanıldığını ima eder.

Eğer hala resmileştirmek istiyorsanız:

"Uçtan uca argüman uygulama gereksinimlerine hitap eder ve katmanlı bir sistemde işlevi yukarı taşımak için bir gerekçe sağlar", böylece resmi uygulama gereksinimlerine ve resmi katmanlı sisteme ihtiyacınız olacaktır. İşte bir adım daha ileri gitmenize yardımcı olabilecek bir girişim:

Diyelim ki Katman (i) gereksinimleriniz var (Katman (0) şimdi veya gelecekte desteklemeyi beklediğiniz uygulamalar kümesi için, uygulama katmanı) ve arabirim (i, i + 1) ve Arayüz (i + 1) , i) (Katman i'den i + 1'e, burada çapraz katmanlama olmadığını varsayalım, değiştirilmesi ve bir gereksinim yaratması kolay) ve işlevler İşlev (i, j) (Katman i, İşlev dizini j, işlevin veri bölümünü varsayar) daha basit olması için)

Girdi: Katman (0) gereksinimleri (bunların resmileştirilmesi gerektiğini söylediğimiz gibi)

Çıktı: diğer her şey

END-TO-END Çıktı, her L için, Katman (L) gereksinimlerini yalnızca İşlev (L, j) (yani katman içindeki işlevler) ve Arayüz (L, L + 1), Arayüz işlevleri ile gerçekleştirir. (L + 1, L)

Her Katman L ve fonksiyon Fonksiyonu (L, F) için çıkışta Fonksiyon (L, F) = S (= eşdeğer çıktı ve yan etkiler anlamına gelir) hiçbir Fonksiyon S kümesi yoktur.

Bu nedenle, belirli e2e prensibi uygulaması için ikinci olası eksikliğe gelmek (ve neyin denendiğini doğru okuyorsam), e2e prensibine hiç uymadığını iddia edebilir, tam tersine. Çipleriniz "bazı kilitlenme önleme" sağlar ve sıradışı olmayan sağlam ve üst katmanlardan daha fazla yardım tetiklemek (kesmek) için özel bir Arabirim vardır. Bu tartışmalı bir uçtan uca yaklaşım değil, katmanlar arası bir yaklaşımdır. Başka bir deyişle, set Arabirimleri ile görevini tam ve doğru bir şekilde yerine getirmeyen bir İşleviniz (1, x) vardır - yukarıda sağlanan taslak resmileştirmeyi kullanmak istiyorsanız (elbette sorunuza tam olarak cevap vermek için bir başlangıç ​​yararlıdır) ancak büyük olasılıkla kendi içinde tam değildir).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.