os211

Top 10 List of Week 07

  1. Difference between Mutex and Semaphore in Operating System
    Penjelasan yang sama dapat ditemukan di buku teks. Bisa dibilang ini adalah rangkumannya. Seperti sebelum-sebelumnya, sangat menyenangkan bagi saya untuk dapat membaca hal-hal seperti ini dengan cepat di internet. Penjelasannya yang mudah juga mengkonfirmasi pemahaman saya dengan lebih cepat mengenai mutex dan semaphore.

  2. Definition of Race Condition
    Race artinya balapan. Bisa dibilang race condition adalah kondisi balapan saat terdapat threading / process yang berjalan secara paralel dan mengakses memori yang sama dan menimbulkan inkonsistensi data atau bug lain yang mungkin lebih berbahaya. Artikel ini membantu saya mengerti definisinya saat dulu pertama kali mendengar race condition. Ini menginspirasi saya untuk mengeksplorasi kemungkinan lebih jauh mengenai berbagai bug yang mungkin dapat ditimbulkan dengan multithreading.

  3. Explaining Dirty COW local root exploit - CVE-2016-5195 - liveOverflow
    Ini adalah salah satu contoh nyata dari race condition yang bisa dieksploitasi pada kernel linux. Tentu saja, hal ini sudah mendapat patch. Dengan menonton ini, saya menjadi tahu lebih banyak mengenai bug yang pernah terjadi (mungkin saja saya bisa mereplikasinya lagi untuk riset? Atau bug seperti ini masih ada di masa depan?) Sangat menarik mengetahui hal ini!

  4. Classical Problems of Synchronization
    Hal yang sama dapat kita temukan di buku teks. Setelah saya GSGS ke sana ke mari, saya menemukan penjelasan yang sangat mudah dari ini. Saya sejujurnya agak bingung saat membaca buku teks, setelah membaca ini, saya jadi paham.

  5. How to create a simple thread in C
    Akhirnya, saya baru paham bagaimana cara menggunakan pthread setelah membaca ke sana kemari. Melihat demo week-06 dan week-07 ternyata membantu, tetapi perlu ada perhatian khusus jika kita ingin membuat sendiri (karena demo yang diberikan tidak error, jadi agak bingung karena saat coba sendiri malah error). Tapi akhirnya paham juga :D.

  6. gcc can’t link to pthread?
    Setelah mengerjakan popquiz, saya jadi tahu cara compile menggunakan pthread. Caranya ada seperti link di atas. Dan saya juga baru tahu kalau kita harus buat sendiri fungsi register dan run nya karena pthread menyediakan pthread_create dan pthread_join.

  7. Google CTF 2017 - pwn474 primary
    Salah satu writeup yang menarik yang mengeksploitasi race condition dan heap dengan tcmalloc. Saya ingin mempelajarinya lebih jauh. Teknik ini sepertinya cukup bagus dan tergolong agak advanced, tapi layak dibaca untuk menambah pengetahuan.

  8. How to Troubleshoot Java Synchronization Issues
    Seperti halnya dengan C, Java juga memiliki isu dengan multithreading (misal saat suatu objek diubah oleh lebih dari satu proses secara bersamaan). Hal ini dapat dengan mudah diselesaikan di Java dengan penambahan synchronized di depan method. Tetapi ada beberapa isu juga yang muncul seperti performa. Selengkapnya ada di link tersebut. Artikel ini membantu saya untuk memahami lebih jauh bahwa multithreading merupakan keuntungan sekaligus menimbulkan berbagai isu yag perlu diselesaikan.

  9. How to avoid deadlock
    Salah satu rangkuman lagi mengenai cara mencegah deadlock. Membaca ini membantu saya memahami materi di week ini.

  10. Difference between Executable and Linkable Format(.elf) and Object(.o) file
    Mungkin agak sedikit berbeda dengan topik bahasan minggu ini, tetapi saya memperhatikan ketika sedang mencoba demo week-07, programnya dicompile terlebih dahulu menjadi .o lalu baru menjadi executable setelah di-link dengan 99-myutils.o. Hal ini cukup menarik perhatian saya, terutama setelah di pop quiz ada program yang saya tidak bisa compile karena ld error saat menggunakan pthread.