<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>I/O on Nalar</title>
    <link>https://nalar.dev/id/tags/i/o/</link>
    <description>Recent content in I/O on Nalar</description>
    <generator>Hugo</generator>
    <language>id-id</language>
    <lastBuildDate>Thu, 17 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://nalar.dev/id/tags/i/o/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Linux splice Menjadikan Pipe sebagai Batas Transfer Data Kernel</title>
      <link>https://nalar.dev/id/linux-splice-menjadikan-pipe-sebagai-batas-transfer-data-kernel/</link>
      <pubDate>Thu, 17 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://nalar.dev/id/linux-splice-menjadikan-pipe-sebagai-batas-transfer-data-kernel/</guid>
      <description>&lt;p&gt;&lt;code&gt;splice()&lt;/code&gt; dapat memindahkan byte antara dua file descriptor tanpa terlebih dahulu menyalin payload ke buffer userspace, tetapi antarmukanya mengharuskan setidaknya satu endpoint berupa pipe. Syarat ini menjadikan pipe lebih dari sekadar transport perantara. Pipe adalah batas buffer yang terlihat oleh kernel, tempat semantik offset, blocking, kapasitas, dan partial progress operasi tersebut dibentuk.&lt;/p&gt;&#xA;&lt;p&gt;Hal ini berbeda dari &lt;code&gt;read()&lt;/code&gt; yang diikuti &lt;code&gt;write()&lt;/code&gt;. Pada urutan tersebut, userspace memiliki array byte perantara dan dapat memeriksa atau mengubahnya. Dengan &lt;code&gt;splice()&lt;/code&gt;, payload dapat tetap berada di storage yang dikelola kernel sementara proses mengoordinasikan perpindahan antar-endpoint.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shared Ring io_uring Menjadikan Memory Ordering Bagian dari ABI</title>
      <link>https://nalar.dev/id/shared-ring-io-uring-menjadikan-memory-ordering-bagian-dari-abi/</link>
      <pubDate>Thu, 17 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://nalar.dev/id/shared-ring-io-uring-menjadikan-memory-ordering-bagian-dari-abi/</guid>
      <description>&lt;p&gt;Queue &lt;code&gt;io_uring&lt;/code&gt; adalah shared memory yang diubah oleh dua domain eksekusi independen. User space menyiapkan submission entry dan memajukan metadata queue; kernel mengonsumsi submission tersebut lalu memublikasikan completion entry. Layout ring menghilangkan satu batas copy, tetapi pada saat yang sama membuat visibilitas memori menjadi bagian dari kontrak interface.&lt;/p&gt;&#xA;&lt;p&gt;Assignment biasa pada level source ke tail queue tidak cukup sebagai model publikasi yang portabel. Data entry harus terlihat lebih dulu sebelum nilai tail yang membuat entry tersebut boleh dikonsumsi. Di sisi completion, user space harus mengamati publikasi completion dari kernel sebelum membaca field di completion tersebut. Relasi ordering ini adalah bagian dari correctness, bukan sekadar detail optimasi.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Write Combining Menggabungkan Store Berdekatan Sebelum Trafik Memori</title>
      <link>https://nalar.dev/id/write-combining-menggabungkan-store-berdekatan-sebelum-trafik-memori/</link>
      <pubDate>Thu, 17 Sep 2026 00:00:00 +0000</pubDate>
      <guid>https://nalar.dev/id/write-combining-menggabungkan-store-berdekatan-sebelum-trafik-memori/</guid>
      <description>&lt;p&gt;Beberapa area memori jauh lebih sering ditulis daripada dibaca. Frame buffer, aperture perangkat, dan area output streaming adalah contoh umum. Mengirim setiap store CPU kecil sebagai transaksi memori terpisah dapat membuang bandwidth bus dan menambah overhead transaksi.&lt;/p&gt;&#xA;&lt;p&gt;Write combining memberi prosesor tempat sementara untuk mengumpulkan store yang kompatibel. Beberapa penulisan ke alamat yang berdekatan dapat digabung menjadi transaksi yang lebih besar sebelum meninggalkan CPU. Teknik ini menguntungkan throughput tulis berkelanjutan, tetapi juga mengubah asumsi waktu dan ordering yang aman bagi software.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
