os211

Top 10 List of Week 06

  1. Why did the command “:(){ :|: & };:” make my system lag so badly I had to reboot?

    DANGER
    Do not run this command to ‘test’ it unless you are prepared for a crash and/or force-rebooting your system.

    Seperti yang dikatakan di warning tersebut, jangan mencobanya kecuali siap dengan risikonya. Menarik untuk sedikit mempelajari mengenai fork bomb ini karena minggu ini sedang mempelajari mengenai process and threads. Resource yang terbatas seperti jadi tidak terbatas dengan adanya virtual memori yang dibahas di minggu lalu. Tapi, apakah memang benar bahwa itu tidak terbatas?

    Tentu saja pasti ada batasnya. Dan itu dapat sekiranya dapat dibuktikan dengan membuat sangat banyak proses secara bersamaan. Tapi ini cukup berbahaya juga bagi hardware, jadi jangan dicoba untuk keselamatan device.

    Penjelasan di forum ini cukup menarik menurut saya sehingga mengajarkan bahwa command-command dengan simbol-simbol tertentu juga dapat di-run di terminal.

  2. Concurrency in Operating System
    Konsep concurrency yang dibahas di bab 3 dan bab 4 di buku ditulis juga dengan baik di sini. Intinya, concurrency adalah eksekusi banyak instruksi secara bersamaan. Bisa dibilang ada lebih dari satu proses yang berjalan secara bersamaan. Saya menyukai artikel ini karena penjelasannya singkat dan jelas.

  3. How to check running process in Ubuntu Linux using command line
    Kadang-kadang ada aplikasi yang mengalami hang di laptop, sehingga saya perlu mematikan proses dari terminal. Seringnya, saya mencari dulu prosesnya dengan ps aux | grep nama_proses kemudian mematikannya dengan kill pid_proses. Di link ini juga dijelaskan cara lain selain menggunakan ps untuk mengecek running process.

  4. How does ltrace work?
    Untuk mengeksaminasi sebuah proses, kita bisa menggunakan gdb (bisa dilihat link ke beberapa tips yang dapat dipakai ketika menggunakan gdb di W04) atau juga menggunakan ltrace. Link ini menunjukkan dengan jelas kegunaan ltrace untuk mengecek fungsi apa pada library yang dipanggil oleh program. Saya sendiri lebih suka menggunakan gdb, tetapi tidak ada salahnya untuk mempelajarinya karena artikel ini juga menjelaskan dengan sangat baik.

  5. Difference between Process and Thread
    Bisa dibilang, satu proses terdiri dari threads. Jadi, thread ada di dalam proses. Terima kasih kepada link ini sehingga saya yakin mengenai perbedaan kedua istilah tersebut.

  6. Multithreading vs Multiprocessing: What’s the difference?
    Tunggu dulu, bukannya tadi dibilang bahwa thread ada dalam process? Berarti apa itu multithreading dan multiprocessing? Jawabannya jelas adalah multithreading tetap ada dalam satu proses dan bisa dijalankan secara concurrent, sementara multiprocessing memiliki scope yang lebih luas dari multithreading. Sejujurnya saya baru paham hal ini setelah membaca link ini, karena dulu saya pernah membuat program dengan multithreading dan multiprocessing dan keduanya sangat mirip dalam hal high-level implementation yang saya gunakan. Tapi, ternyata di link ini dijelaskan perbedaannya yang jelas.

  7. What is the difference between a Multicore System and a Multiprocessor System?
    Kalau tadi pembahasannya dari sisi proses dan thread, link ini membahas sesuatu yang ada di hardware, yaitu processor dan core. Core adalah unit komputasi yang ada di dalam processor, dan dalam pengembangan hardware, hal-hal seperti ini penting untuk performa. Perbedaannya dijelaskan di link berikut.

  8. Programming challenges in multicore systems
    Jika sudah membaca link yang sebelumnya, mungkin akan timbul pertanyaan apakah ada masalah yang mungkin terjadi ketika kita ingin memanfaatkannya sebagai programmer? Artikel ini menjelaskan dengan singkat beberapa isu yang mungkin kita perlu pikirkan ketika ingin menggunakan multicore.

  9. Orphan vs Zombie vs Daemon processes
    Beberapa istilah menarik mengenai proses. Penggunaan istilah tersebut mungkin terdengar lucu bagi orang awam (semisal: ‘how to kill a child of fork’). Link ini menjelaskan istilah-istilah tersebut, jadi jangan sampai kita bingung sendiri dengan istilah tersebut.

  10. The /proc filesystem
    Proses ternyata juga disimpan di filesystem! Kita bisa menemukan beberapa hal menarik dari /proc/, seperti /proc/stat di mana kita bisa menggunakannya sebagai file yang bisa kita buka dan ambil datanya dengan program yang kita buat untuk mengetahui utilisasi cpu (sepertinya top pun diimplementasikan dengan cara ini, entahlah, saya belum membaca source code top). Saya sendiri baru tahu hal ini sejak tahun ini dan kelihatannya menarik. Semenjak mengetahui hal-hal seperti ini, saya jadi lebih sering melihat uptime dan cpu utilization serta proses-proses di komputer saya.