Kamisato Ayaka
Top 10 List of Week 04
Taufiq Hadi Pratama --- Jakarta

Top 10 List of Week 04

  1. Do pointer addresses change every time the program is executed in C?
    Saya melihat ada perbedaan hasil dari program yang di run saat kelas dengan program yang saya run sendiri, terutama pada hasil penangkapan pointer address. Saya pun juga sudah memahami dari Java bahwa memori yang dialokasikan ketika program dieksekusi akan selalu berbeda. Kalau dalam Linux, pengaturan ini dapat diotak-atik agar hasilnya selalu sama, tetapi saya tidak akan mencobanya demi kelancaran belajar OS (karena ngotak-ngatik file system, jadi ga berani).

  2. Difference Between Logical and Physical Address in Operating System
    Awalnya mendengar istilah ini dari kelas OS minggu ke-4, tetapi saya masih belum terlalu memahami maksud dari logical memory serta perbedaannya dengan physical memory. Intinya adalah kita tidak bisa langsung mengakses physical memory. Kita bisa menggunakan logical memory sebagai pointer yang menunjuk ke alamat memory di physical memory. Istilah virtual memory dan logical memory itu sama saja, jadi tak perlu khawatir kalau tiba-tiba nanti ada artikel yang pakai istilah virtual memory.

  3. How is Virtual Memory Translated to Physical Memory?
    Lanjutan dari link di atas, tetapi kali ini perlu pengetahuan dari POK, yaitu cache. Dalam proses ini, cache yang kita gunakan adalah Translation Look-aside Buffer (TLB). Cache ini akan menampung physical page number yang pernah diakses. Pertama, virtual address kita cari page number yang sesuai di TLB. Jika ada, maka hit dan langsung tahu physical address-nya. Sedangkan jika tidak ada maka miss, cari tag yang sesuai dulu di physical memory, kemudian masukkan ke TLB.

  4. Fragmentation: What Is Disk Fragmentation?
    Yang jelas, jangan seperi saya, yang mengganggap fragmentation == memory paging. Setelah kuliah minggu ke-4, penjelasan mengenai paging saya kira adalah metode untuk membuat fragment dalam disk agar manajemen storage lebih terorganisasi. Fragmentation adalah sebuah masalah yang sering muncul dalam alokasi memori. Biasanya sebuah bagian aplikasi memanfaatkan bagian storage secara non-sequential sehingga ada bagian dari memori yang tidak terpakai atau sia-sia.

  5. Explain Hashed page tables in operating system
    Ketika saya baca OSC Silberschatz chapter 9, saya pun bertanya-tanya “Kok tiba-tiba ada q pas mau ngambil p? Kan p virtual page number nya, terus q apa?”. Ternyata ini ada hubungannya dengan pelajaran hash table pada SDA. Jadi ini menggunakan hash table versi open hashing dengan linked list. q itu juga merupakan virtual page number yang sudah pernah diakses, tetapi kebetulan hasil hash function nya mirip dengan p. Hashed page table sangat mempersingkat waktu akses karena memang sifat alami dari struktur data hash table, yaitu memiliki waktu akses yang konstan.

  6. Endianness: Bit and Byte Ordering
    Sejak awal PSD dan POK, saya selalu saja lupa-lupa ingat dengan pengaturan ini. Awalnya di PSD diajarkan aturan ini untuk angka-angka biner, kemudian di POK diajarkan untuk pengaturan di word atau byte addressing ketika memakai AVR atau MIPS. Yang jelas, video ini pasti saya tonton ketika mau kuis, UTS, atau UAS matkul PSD dan POK. Perbedaan yang paling jelas adalah big endian itu tulis saja seperti biasa karena most significant bit pasti akan selalu ada di kiri, sedangkan little endian tinggal tulis kebalikan dari big endian. Misal kita punya 0x22446688 yang akan disimpan. Jika formatnya big endian, angka akan disimpan jadi 22 | 44 | 66 | 88. Jika formatnya little endian, angka akan disimpan jadi 88 | 66 | 44 | 22.

  7. What is a File Format?
    Bagaimana kalau sebenarnya file .zip itu adalah source code yang bisa dieksekusi oleh software pembaca .zip dan menghasilkan output berupa file-file yg dikompresi tadi? Video ini sangat mengubah pandangan saya mengenai file extension. Bahkan kita bisa membuat sebuah file yang berekstensi lebih dari satu dan masih bisa dibuka normal jika salah satu ekstensinya dihapus. Pada dasarnya, file adalah kode yang bisa dieksekusi oleh software tertentu. Software ini akan “kacangin” isi yang tidak sesuai dengan format yang mereka gunakan. Karena itulah kita bisa tumpuk saja langsung konten dari 2 file yang berbeda kedalam satu file. Dalam video dicontohkan dengan file berekstensi .zip dan .pdf.

  8. Belajar Pemrograman C #13: Mengenal Tipe Data Struct
    Laman pembelajaran yang selalu menemani saya dalam pemrograman C dalam matkul OS. Dari penjelasan di laman dan demo struct minggu 4, saya bisa simpulkan bahwa struct adalah Class tanpa method dalam Java. Struct dapat digunakan untuk membuat inisialisasi objek dan variabel-variabelnya agar kode tidak redundant.

  9. Difference between static and shared libraries?
    Ada pengibaratan yang bagus setelah saya membaca laman tersebut. Bayangkan static library adalah toko buku, sedangkan shared library adalah perpustakaan. Nah, kalau kita ingin punya sebuah buku/fungsi, kita bisa pergi ke toko buku atau perpustakaan. Kalau perpustakaan, kita harus tau dimana buku/fungsi yang akan kita pinjam/gunakan karena kita harus tahu rak mana bukunya. Kita juga tidak bisa menggunakan buku yang kita tidak pinjam dari perpustakaannya. Berarti, shared libraries akan membuat referensi saat runtime dan program yang bekerja di dalam itu hanya akan membuat referensi ke shared libraries nya. Kalau toko buku, kita beli buku/fungsinya dan itu jadi milik kita tidak peduli kapan belinya. Berarti, static libraries digunakan saat waktu compile dan fungsi yang diambil sudah menjadi bagian dari program kita dan dapat digunakan kapanpun.

  10. Understanding the ELF File Format
    Berangkat dari keingintahuan “Kok bisa ELF file extension-nya beda-beda?”, saya menemukan link ini. Dan lagi, file format semacam ini dipastikan sangat asing untuk pengguna Windows seperti saya. ELF ini struktur filenya adalah binary file, yaitu file yang isinya bahasa-bahasa mesin. Ibaratnya seperti Instruction Set dari pelajaran POK, atau memang itulah yang dimaksud POK dulu.


© 2021-2021 --- Taufiq Hadi Pratama --- File Revision: 0008---8-May-2021.