Tugas Sinkronisasi dan Deadlock (revisi 141014-r04)

Kembali ke Lab 05

  1. Ambil berkas untuk sesi lab ini dengan perintah
    $ wget --no-check-certificate https://projects.ui.ac.id/attachments/download/8218/Lab05-SRC.tar.bz2
    
  2. Lihat isi berkas terkompresi dengan perintah
    $ tar tjf Lab05-SRC.tar.bz2
    
  3. Ekstrak isi berkas terkompresi dengan perintah
    $ tar xjf Lab05-SRC.tar.bz2
    
  4. Hapus berkas Lab05-SRC.tar.bz2 dengan perintah
    $ rm Lab05-SRC.tar.bz2
    
  5. Edit seluruh berkas dengan menggunakan vi di bagian di bawah ini:
    ZCZC NPM KELAS
    

    Ganti NPM dengan NPM anda dan KELAS dengan kelas anda. Contoh ZCZC 1202000818 TESTING.
  6. Pelajari berkas Makefile agar anda bisa mengerti bagaimana berkas ini mempermudah anda mengompilasi program main1, main2, main3, main4, main5, dan main6.
  7. Eksekusi berkas Makefile dengan perintah
    $ make

    Tips: untuk lab ini, setiap kali anda mengubah berkas .c, untuk compile anda bisa langsung mengetik "make" saja, tidak perlu mengetik gcc. Make secara otomatis akan mendeteksi berkas mana saja yang anda ubah lalu melakukan kompilasi sesuai setting make.
  8. Pelajari seluruh berkas .c dan .h
  9. Eksekusi satu per satu seluruh program (main1 sampai dengan main6).
  10. Tugas anda adalah memodifikasi berkas "main3.c" dan "main6.c".
  11. Untuk main3.c:
    1. Modifikasi program ini dengan mengubah program "main2.c" sehingga bisa mencetak "Thread masakan padang" dengan nomor thread ganjil dahulu baru genap!
    2. Untuk jelasnya lihat contoh jawaban di bawah:
    3. Bonus 10% jika program anda bisa meminta input jumlah thread masakan padang yang diproses.
    4. Untuk jelasnya lihat contoh jawaban di bawah:
  12. Untuk main6.c:
    1. Modifikasi program ini dengan mengubah program "main5.c" sehingga writer dan reader harus bergantian, setiap satu writer menghasilkan tulisan, harus ada reader yang membaca terlebih dahulu sebelum ada writer lain yang masuk dan menulis, dan demikian sebaliknya.
    2. Untuk jelasnya lihat contoh jawaban di bawah.
    3. Bonus 10% jika program anda bisa membatasi para writer sehingga jika satu writer sudah menghasilkan tulisan, dia tidak akan menulis lagi sampai semua writer juga sudah menghasilkan tulisan. Jadi misalnya jika ada 3 writer dan writer 1 menghasilkan tulisan, maka dia harus menunggu writer 2 dan 3 menghasilkan tulisan dulu baru dia bisa menulis lagi, demikian sebaliknya.
    4. Untuk jelasnya lihat contoh jawaban di bawah:
  13. Demikian Tugas Sinkronisasi dan Deadlock hari ini.

Kembali ke Lab 05
Kembali

Lab05-SRC.tar.bz2 (3.08 KB) Ramot Stephanus Sihombing rast20, 29/01/2015 16:23

main3_bonus.png (8.4 KB) Ramot Stephanus Sihombing rast20, 29/01/2015 16:23

main3_standar.png (10.8 KB) Ramot Stephanus Sihombing rast20, 29/01/2015 16:23

main6_bonus.png (31.6 KB) Ramot Stephanus Sihombing rast20, 29/01/2015 16:23

main6_standar.png (31.6 KB) Ramot Stephanus Sihombing rast20, 29/01/2015 16:23