RENCANA PEMBELAJARAN SEMESTER (RPS)sonia.soc.telkomuniversity.ac.id/cdn/rps/S1 Teknik...
Transcript of RENCANA PEMBELAJARAN SEMESTER (RPS)sonia.soc.telkomuniversity.ac.id/cdn/rps/S1 Teknik...
RENCANA PEMBELAJARAN SEMESTER
(RPS)
CSG3E3
SISTEM OPERASI
Disusun oleh:
Endro Ariyanto Erwid M Jadied Novian Anggis S
SARJANA TEKNIK INFORMATIKA FAKULTAS INFORMATIKA
UNIVERSITAS TELKOM
LEMBAR PENGESAHAN
Rencana Pembelajaran Semester (RPS) ini telah disahkan untuk mata kuliah sbb:
Kode Mata Kuliah : CSG3E3
Nama Mata Kuliah : SISTEM OPERASI
Bandung, Juli 2015
Mengetahui Menyetujui
Kaprodi Informatika Ketua KK Telematika
MOCH. ARIF BIJAKSANA ANDRIAN RAKHMATSYAH
DAFTAR ISI
LEMBAR PENGESAHAN .............................................................................................................................. ii
DAFTAR ISI ................................................................................................................................................ iii
A. PROFIL MATA KULIAH....................................................................................................................... 1
B. RENCANA PEMBELAJARAN SEMESTER (RPS) ................................................................................... 3
C. RANCANGAN INTERAKSI DOSEN–MAHASISWA ............................................................................... 5
D. RANCANGAN TUGAS ........................................................................................................................ 7
E. PENILAIAN DENGAN RUBRIK .......................................................................................................... 12
F. PENENTUAN NILAI AKHIR MATA KULIAH ....................................................................................... 14
G. LAMPIRAN CONTOH TUGAS ........................................................................................................... 15
A. PROFIL MATA KULIAH
Mata kuliah Sistem Operasi (CSG3E3) merupakan mata kuliah wajib tingkat 3 yang harus diambil
oleh setiap mahasiswa program studi S1 Teknik Informatika dengan beban 3 sks.
Konsep dasar materi Sistem Operasi cenderung tetap, tidak ada perubahan ataupun
penambahan yang signifikan dalam konsep dasarnya. Akan tetapi, pengembangan dari produk
Sistem Operasi sangat bervariasi dan cepat (dapat dilihat dari varian/distro Linux, Unix dan
versi-versi Windows). Pemahaman tentang Sistem Operasi akan membantu mahasiswa (yang
akan menjadi: sistem analis, programmer dan developer sistem operasi) untuk dapat
menganalisis, troubleshooting , membuat dan mengembangkan sistem secara keseluruhan.
Materi sistem operasi dapat dikelompokkan berdasarkan kelompok materi menjadi 3 kelompok
besar seperti yang ditunjukkan pada Gambar A-1. Tiga kelompok itu adalah kelompok proses
dan thread, memori, dan file/Input dan Output/proteksi dan keamanan.
Gambar A-1 Pengelompokan Materi Sistem Operasi
Lanjutan dari mata kuliah ini adalah mata kuliah pilihan Sistem Operasi lanjut. Pada mata kuliah
Sistem Operasi lanjut spesialisasi pengembangan Sistem Operasi dapat dikelompokkan menjadi
Sistem Operasi untuk sistem terdistribusi, perangkat Mobile dan embedded system.
Learning outcome yang ingin dicapai dari mata kuliah ini adalah:
1. Mahasiswa mampu menjelaskan fungsi sistem operasi di dalam sistem komputer
2. Mahasiswa mampu menjelaskan konsep proses di dalam sistem operasi
3. Mahasiswa mampu menjelaskan konsep thread dan Symmetric Multiprocessing
4. Mahasiswa mampu membuat solusi permasalahan concurrency
5. Mahasiswa mampu menjelaskan metode penanganan deadlock
6. Mahasiswa mampu menjelaskan konsep manajemen memori
7. Mahasiswa mampu menjelaskan konsep memori virtual
8. Mahasiswa mampu membuat penjadwalan proses
9. Mahasiswa mampu menjelaskan konsep manajemen file
10. Mahasiswa mampu menjelaskan konsep manajemen input/output
11. Mahasiswa mampu menjelaskan berbagai ancaman terhadap sistem operasi
Dari daftar outcome diatas dapat dilihat bahwa hal yang ingin dicapai melalui mata kuliah
Sistem Operasi adalah Level 6 KKNI (Kerangka Kualifikasi Nasional Indonesia) dari Dikti terutama
bagian:
“Menguasai konsep teoritis bidang pengetahuan tertentu secara umum dan konsep teoritis
bagian khusus dalam bidang pengetahuan tersebut secara mendalam, serta mampu
memformulasikan penyelesaian masalah procedural”.
B. RENCANA PEMBELAJARAN SEMESTER (RPS)
Rencana Pembelajaran Semester merupakan pengembangan SAP dan GBPP berbasis SCL.
Pertemuan ke-
Kemampuan Akhir yang Diharapkan
Bahan Kajian (Materi Ajar) Metode/ Strategi
Pembelajaran Kriteria Penilaian
(Indikator) Bobot Nilai
1-2 Mampu menguasai materi yang diajarkan
Overview Sistem Operasi
Discovery Learning Belajar mandiri memanfaatkan elearning
Tidak ada (mahasiswa
belajar sendiri)
Mampu bekerja sama; mampu menganalisis
Overview Sistem Operasi
Cooperative Learning Tugas 1: Rangkuman tentang sistem operasi
7%
Mampu untuk berpikir logis, sistematis, kritis dan inovatif;
Overview Sistem Operasi
Tatap muka; Small Group Discussion
Diskusi dan penilaian langsung
2%
3-8 Mampu menguasai materi yang diajarkan
Proses Threads
Discovery Learning Belajar mandiri memanfaatkan elearning
Tidak ada (mahasiswa
belajar sendiri)
Mampu bekerja sama; mampu menganalisis
Proses Threads
Cooperative Learning Tugas 2: Makalah dan presentasi
7%
Mampu untuk berpikir logis, sistematis, kritis dan inovatif;
Proses Threads
Tatap muka; Small Group Discussion
Diskusi dan penilaian langsung
2%
9-14 Mampu menguasai materi yang diajarkan
Sinkronisasi Proses Deadlock
Discovery Learning Belajar mandiri memanfaatkan elearning
Tidak ada (mahasiswa
belajar sendiri)
Mampu bekerja sama; mampu menganalisis
Sinkronisasi Proses Deadlock
Cooperative Learning Tugas 3: Praktek membuat program sinkronisasi
7%
Mampu untuk berpikir logis, sistematis, kritis dan inovatif;
Sinkronisasi Proses Deadlock
Tatap muka; Small Group Discussion
Diskusi dan penilaian langsung
2%
UTS Mampu menganalisis; mampu bekerja mandiri yang berkualitas;
Overview Sistem Operasi Proses Threads
Self Learning Jawaban UTS 15%
Sinkronisasi Proses Deadlock
15-17 Mampu menguasai materi yang diajarkan
Penjadwalan Discovery Learning Belajar mandiri memanfaatkan elearning
Tidak ada (mahasiswa
belajar sendiri)
Mampu bekerja sama; mampu menganalisis
Penjadwalan Cooperative Learning Tugas 4:
Penjadwalan 7%
Mampu untuk berpikir logis, sistematis, kritis dan inovatif;
Penjadwalan Tatap muka; Small Group Discussion
Diskusi dan penilaian langsung
2%
18-20 Mampu menguasai materi yang diajarkan
Manajemen Memori Memori Virtual
Discovery Learning Belajar mandiri memanfaatkan elearning
Tidak ada (mahasiswa
belajar sendiri)
Mampu bekerja sama; mampu menganalisis
Manajemen Memori Memori Virtual
Cooperative Learning Tugas 5: Makalah dan presentasi
7%
Mampu untuk berpikir logis, sistematis, kritis dan inovatif;
Manajemen Memori Memori Virtual
Tatap Muka; Small Group Discussion
Diskusi dan penilaian langsung
2%
21 Mampu menganalisis; mampu bekerja mandiri yang berkualitas;
Penjadwalan Manajemen Memori Memori Virtual
Self Learning Jawaban Quiz 10%
22-28 Mampu membuat laporan ilmiah, mampu menganalisis; mampu bekerja sama; mampu bertanggung jawab atas hasil kerja dan mengevaluasi kerja tim; mampu menerapkan kaidah ilmiah untuk menjamin kesahihan dan mencegah plagiasi.
Manajemen File Manajemen I/O Proteksi dan Keamanan
Discovery Learning; Cooperative Learning
-presentasi -diskusi -penilaian -Tugas 6: Tugas besar
30%
C. RANCANGAN INTERAKSI DOSEN–MAHASISWA
Nama Strategi: Discovery Learning Kemampuan Akhir yang Diharapkan: Mahasiswa mampu mencari dan mendapatkan informasi secara mandiri Pertemuan Penggunaan Strategi (Metode): 1-2, 3-8, 9-14, 15-17, 18-20,22-28 Deskripsi Singkat Strategi (Metode) pembelajaran: Pada metode pembelajaran ini, mahasiswa diminta untuk memanfaatkan fasilitas e-learning yang ada di telkomuniversity dan dapat mencari informasi di Internet
RANCANGAN INTERAKSI DOSEN–MAHASISWA
Aktivitas Dosen Aktivitas Mahasiswa
Membuat bahan-bahan e-learning Mahasiswa mengakses e-learning
Membuat soal-soal e-learning Mengerjakan soal-soal yang ada di e-
learning
Dosen memberikan topik-topik sederhana yang
dapat dicari di web
Mahasiswa mencari informasi di internet
kemudian merangkum dalam bentuk blog.
Nama Strategi: Tatap muka; Small Group Discussion Kemampuan Akhir yang Diharapkan: Mahasiswa mampu berpikir logis, sistematis serta mampu menyampaikan ide di dalam kelas. Pertemuan Penggunaan Strategi (Metode): 1, 3-6, 9-12,15, 18-19, 22-24 Deskripsi Singkat Strategi (Metode) pembelajaran: Dosen menyampaikan materi. Dosen memfasilitasi mahasiswa berdiskusi berdasarkan kelompok menggunakan bahan materi yang disampaikan
RANCANGAN INTERAKSI DOSEN–MAHASISWA
Aktivitas Dosen Aktivitas Mahasiswa
Pertemuan sebelum kuliah menugaskan
mahasiswa untuk membaca textbook
Mahasiswa membaca textbook
Saat awal kuliah dosen memberikan pertanyaan
singkat untuk menguji apakah mahasiswa telah
membaca bab yang dikuiahkan hari ini
Mahasiswa menjawab pertanyaan
Dosen memberikan materi kuliah Mahasiswa menyimak dan mendengarkan
Dosen memberikan kasus-kasus menarik dan
dekat dengan masalah nyata berdasarkan materi
kuliah hari ini
Mahasiswa menjawab kasus/pertanyaan
secara berkelompok.
Dosen memfasilitasi dan menilai diskusi. Contoh:
setelah diberikan kasus terdapat 2 atau 3
jawaban dipersilahkan setiap kelompok untuk
mempertahankan jawabannya dan diadu dengan
jawaban kelompok lain.
Mahasiswa berdiskusi.
Nama Strategi: Cooperative Learning Kemampuan Akhir yang Diharapkan: Mahasiswa mampu bekerjasama, berpikir logis, sistematis, kritis dan inovatif di luar kelas. Pertemuan Penggunaan Strategi (Metode): 2, 7-8,13-14,17,20,25-28 Deskripsi Singkat Strategi (Metode) pembelajaran: Dosen memfasilitasi mahasiswa berdiskusi berdasarkan kelompok menggunakan bahan materi soal yang dikerjakan pada kegiatan tugas terstruktur.
RANCANGAN INTERAKSI DOSEN–MAHASISWA
Aktivitas Dosen Aktivitas Mahasiswa
Dosen memberikan tugas terstruktur yang
berfokus pada “learning by doing” dan
mendekati permasalahan di dunia nyata
Mahasiswa mengerjakan soal secara berkelompok.
Dosen menilai presentasi dan memfasilitasi
diskusi.
Mahasiswa mempresentasikan hasil tugas kepada kelas.
Nama Strategi: Self learning Kemampuan Akhir yang Diharapkan:Mahasiswa menguasi materi, mampu menganalisis dan mampu bekerja mandiri. Pertemuan Penggunaan Strategi (Metode): UTS, 21 Deskripsi Singkat Strategi (Metode) pembelajaran: Mahasiswa mengerjakan soal yang diberikan oleh dosen secara individu.
RANCANGAN INTERAKSI DOSEN–MAHASISWA
Aktivitas Dosen Aktivitas Mahasiswa
Dosen memberikan soal yang bersifat open ended question.
Mahasiswa mengerjakan soal secara mandiri di dalam kelas. Kelengkapan dan kebenaran jawaban mahasiswa akan menentukan tingkat kemampuan mahasiswa menguasai materi.
Dosen mengevaluasi dan menyerahkan kembali hasil jawaban ke mahasiswa.
Mahasiswa memperoleh feedback
D. RANCANGAN TUGAS
Rancangan Tugas 1: Overview Sistem Operasi
Mata kuliah : Sistem Operasi
Semester : Ganjil sks : 3
Pertemuan ke : 2 Tugas ke : 1
1. Tujuan tugas:
a. Mengetahui sejarah sistem operasi
b. Mahasiswa memperoleh pengalaman langsung bagaimana menggunakan
sistem operasi di masa lalu
c. Softskill: kerjasama tim, kemampuan menyampaikan ide/pendapat
2. Uraian Tugas:
- Obyek garapan: tulisan mengenai sejarah sistem operasi
- Yang harus dikerjakan dan batasan-batasan :
- Alasan memilih OS tersebut! mengapa OS tersebut bersejarah. Boleh
OS yang gagal atau berhasil
- Deskripsi OS dan sejarah
- Fitur utama OS yang benar-benar baru
- Kelebihan dan kekurangan OS
- Demo OS (virtualbox, VMware, emulator, website). Agar bisa
merasakan bagaimana menggunakan OS jaman dulu
- Kesimpulan
- Metode/cara pengerjaan tugas: masing-masing kelompok mencari sejarah OS
di internet/paper/textbook, merangkumnya, memberi analisis dan
mempresentasikannya
- Deskripsi luaran tugas yang dihasilkan: tulisan/makalah dan presentasi
3. Kriteria Penilaian:
a. Presentasi 40%
- slide
- penyampaian
b. Makalah 40%
- kelengkapan materi
- kebenaran analisis
c. Kerjasama tim 20%
Rancangan Tugas 2: Makalah dan presentasi proses dan threads
Mata kuliah : Sistem Operasi
Semester : Ganjil sks : 3
Pertemuan ke : 7-8 Tugas ke : 2
1. Tujuan tugas:
- Mahasiswa mengetahui bagaimana proses/thread diciptakan, struktur data
proses/thread, state-state proses/thread
- Mahasiswa mampu membuat proses/thread di OS
- Softskill: kerjasama, kemampuan menyampaikan pendapat
2. Uraian Tugas:
a. Obyek garapan: proses dan thread
b. Yang harus dikerjakan dan batasan-batasan :
a. Deskripsi/penjelasan detail proses (thread)
b. Struktur data proses (thread)
c. Bagaimana OS menangani PCB (TCB)?
d. State-state dari proses (thread). Buat animasi sederhana
e. Demo membuat proses (thread) dengan menulis kode
f. Bisa ditambahkan hal-hal lain yang berhubungan dengan proses (misal:
interrupt, ipc, dst)
g. Kesimpulan
c. Metode/cara pengerjaan tugas: masing-masing kelompok mencari informasi
mengenai proses (thread) kemudian menjelaskan di depan kelas. Harus ada
referensi dan referensi minimal dari website universitas, paper atau textbook.
Dalam kelas maksimal 8 kelompok: 4 kelompok untuk proses, 4 kelompok
untuk thread. Disetiap kategori terdapat 4 pilihan OS: unix, linux, windows dan
Mac.
d. Deskripsi luaran tugas yang dihasilkan: tulisan/makalah dan presentasi
3. Kriteria Penilaian:
a. Penulisan makalah 40%
- kelengkapan materi
- kebenaran analisis
b. Presentasi 40%
- slide
- penyampaian
c. Kerjasama kelompok 20%
Rancangan Tugas 3: Praktek membuat program sinkronisasi dan deadlock
Mata kuliah : Sistem Operasi
Semester : Ganjil sks : 3
Pertemuan ke : 13-14 Tugas ke : 3
1. Tujuan tugas:
- Mahasiswa memahami konsep sinkronisasi dalam OS (deadlock, mutex,
semaphore, rendezvous, dll), mengetahui masalah-masalah yang muncul pada
saat sinkronisasi
- Mahasiswa mampu mengetahui cara untuk mengatasi masalah sinkronisasi
dengan membuat program
- Softskill: kerjasama tim, kemampuan menyampaikan ide
2. Uraian Tugas:
a. Obyek garapan: Sinkronisasi proses
b. Yang harus dikerjakan dan batasan-batasan :
- Deskripsi masalah sinkronisasi. Masalah sinkronsasi yang diambil dapat
merupakan masalah sinkronisasi "klasik" (dining philosopher,
barbershop problem, santa clause problem, river crossing problem,
roller coster problem, building H2O, dining savage, dll) atau bisa
mengambil latihan di Andrews’s Concurrent Programming (Gregory R.
Andrews. Concurrent Programming: Principles and Practice, Addison-
Wesley)
- Penjelasan detail dan analisis bagaimana masalah diselesaikan
- Pembuatan dan demo program
c. Metode/cara pengerjaan tugas: mahasiswa mencari kasus, menyelesaikannya
kasus dengan program yang dibuat
d. Deskripsi luaran tugas yang dihasilkan: program dan presentasi
3. Kriteria Penilaian:
a. Program 50%
- fungsionalitas program
- performansi program
b. Presentasi 30%
- slide
- penyampaian
c. Kerjasama kelompok 20%
Rancangan Tugas 4: Presentasi penjadwalan
Mata kuliah : Sistem Operasi
Semester : Ganjil sks : 3
Pertemuan ke : 17 Tugas ke : 4
1. Tujuan tugas:
- Mahasiswa mengetahui jenis-jenis penjadwalan
- Mahasiswa mengetahui kelebihan dan kekurangan suatu algoritma
penjadwalan
- Mahasiswa mampu memecahkan masalah penjadwalan
- Softskill: kerjasama, kemampuan menyampaikan pendapat
2. Uraian Tugas:
a. Obyek garapan: Penjadwalan
b. Yang harus dikerjakan dan batasan-batasan :
- Mahasiswa mencari kasus penjadwalan nyata di OS.
- Mahasiswa mendeskrisikan masalah/kasus dengan jelas
- Mahasiswa menjelaskan algoritma penjadwalan (bagaimana algoritma
penjadwalan dapat menyelesaikan masalah)
- Mahasiswa melakukan analisis (kelebihan dan kekurangan, kebenaran
algoritma, efisiensi, dll)
- Kesimpulan
c. Metode/cara pengerjaan tugas: masing-masing kelompok mencari contoh kasus
penjadwalan OS kemudian menjelaskan di depan kelas
d. Deskripsi luaran tugas yang dihasilkan: tulisan/makalah dan presentasi
3. Kriteria Penilaian:
a. Penulisan makalah 40%
- kelengkapan materi
- kebenaran analisis
b. Presentasi 40%
- slide
- penyampaian
c. Kerjasama kelompok 20%
Rancangan Tugas 5: Makalah dan presentasi memori dan memori virtual
Mata kuliah : Sistem Operasi
Semester : Ganjil sks : 3
Pertemuan ke : 20 Tugas ke : 5
1. Tujuan tugas:
- Mahasiswa mengetahui mekanisme virtual memori pada sistem operasi
- Mahasiswa mampu membandingkan mekanisme virtual memori di 2 OS yang
berbeda
- Softskill: kerjasama, kemampuan menyampaikan pendapat
2. Uraian Tugas:
a. Obyek garapan: tulisan mengenai manajemen memori dan virtual memori
b. Yang harus dikerjakan dan batasan-batasan:
- Deskripsi mekanisme virtual memori di OS
- Perbandingan mekanisme virtual memori dari 2 OS yang berbeda
- Hasil analisis dan kesimpulan
c. Metode/cara pengerjaan tugas: mahasiswa mencari paper/topik kemudian
mempresentasikannya. Dalam kelas maksimal 8 kelompok, terdapat 5 pilihan
OS: unix, linux, windows, Mac dan selain (4 sebelumnya).
d. Deskripsi luaran tugas yang dihasilkan: tulisan/makalah
3. Kriteria Penilaian:
a. Penulisan makalah 40%
- kelengkapan materi
- kebenaran analisis
b. Presentasi 40%
- slide
- penyampaian
c. Kerjasama kelompok 20%
Rancangan Tugas 6: Tugas besar
Mata kuliah : Sistem Operasi
Semester : Ganjil sks : 3
Pertemuan ke : 25-28 Tugas ke : 6
1. Tujuan tugas:
- Mahasiswa mampu mengaplikasikann konsep/teori sistem operasi yang telah
didapatkan untuk menyelesaikan masalah secara umum
- Mahasiswa mampu membuat paper
- Softskill: kerjasama tim
2. Uraian Tugas:
a. Obyek garapan: paper/jurnal tentang sistem dasar sistem operasi
b. Yang harus dikerjakan dan batasan-batasan :
- Memahami dan menganalisis 3 paper tentang dasar sistem operasi
berdasarkan topik yang berbeda
- Membuat makalah/paper sesuai dengan format standar
c. Metode/cara pengerjaan tugas: masing-masing kelompok mencari 3 paper
atau jurnal sesuai dengan plotting tugas konsep dasar sistem operasi.
Paper/jurnal tersebut diberikan kepada dosen untuk divalidasi. Masing-masing
kelompok membuat paper baru dari 3 paper yang diacu dan membuat slide
presentasi. Mahasiswa akan diberikan kesempatan untuk mempresentasikan
hasil tugasnya dan akan dinilai oleh kelompok lain. Pada saat presentasi akan
dilaksanakan diskusi untuk memperdalam pemahaman terhadap materi
konsep dasar sistem operasi.
d. Deskripsi luaran tugas yang dihasilkan: paper hasil analisis masing-masing
kelompok, slide presentasi dan file pendukung paper. Format dan ketentuan
paper akan didefinisikan lebih lanjut.
3. Kriteria Penilaian:
a. Pemilihan paper referensi 5 %
- kekomplekan paper
- kerelevansian paper
- kabaruan paper
b. Penulisan makalah 50%
- kelengkapan materi
- kebenaran analisis
c. Presentasi 20%
- slide
- penyampaian
d. Kerjasama kelompok 15%
e. Diskusi 10%
E. PENILAIAN DENGAN RUBRIK
Rubrik Kerjasama Kelompok
Jenjang (Grade)
Angka (Skor) Deskripsi perilaku (Indikator)
Sangat
bagus (A) 80-100 Tugas tidak terlambat, hasil bagus, pembagian tugas jelas
Bagus (B) 60-80
Tugas tidak terlambat, hasil jelek, pembagian tugas jelas
Kurang (C) 40-60
Tugas tidak terlambat, hasil jelek, pembagain tugas tidak jelas
Buruk (D) 1-40
Tugas terlambat
Tidak
Lulus (E) 0 Tidak mengumpulkan tugas
Rubrik Presentasi
Rubrik Program
Jenjang (Grade)
Angka (Skor) Deskripsi perilaku (Indikator)
Sangat
bagus (A) 80-100 Program berjalan benar
Bagus (B) 60-80
Program berjalan tetapi ada sedikit bug
Kurang (C) 40-60
Program berjalan dan banyak error
Buruk (D) 1-40
Program tidak berjalan, ada source code
Tidak lulus
(E) 0 Tidak mengumpulkan
Rubrik Diskusi
Jenjang (Grade)
Angka (Skor) Deskripsi perilaku (Indikator)
Sangat
bagus (A) 80-100 Mahasiswa mengerti materi, mampu menyampaikan ide sendiri,
mendengarkan ide orang lain
Jenjang (Grade)
Angka (Skor) Deskripsi perilaku (Indikator)
Sangat
bagus (A) 80-100 Isi jelas, “to the poin” dan menarik, Menyampaikan isi dengan jelas
dan menarik
Bagus (B) 60-80
Komposisi tulisan dan gambar bagus, terstruktur, mempresentasikan
dengan baik tetapi kurang menguasai materi
Kurang (C) 40-60
Tidak terstruktur, terlalu banyak tulisan, baca presentasi/catatan,
kurang menguasai materi
Buruk (D) 1-40
Presentasi asal-asalan, tidak menguasai materi
Tidak
Lulus (E) 0 Tidak presentasi
Bagus (B) 60-80
Mampu mengikuti diskusi secara baik
Kurang (C) 40-60
Mampu mengikuti diskusi tetapi dengan kekurangan (suka
mendominasi, tidak mendengarkan pendapat orang lain, dll)
Buruk (D) 1-40
Tidak mengikuti diskusi, ribut dalam kelas.
Tidak
Lulus (E) 0 Tidak hadir
Rubrik Makalah, Resume, Ringkasan
Jenjang (Grade)
Angka (Skor) Deskripsi perilaku (Indikator)
Sangat
bagus (A) 80-100 Materi lengkap, analisis benar, terdapat tambahan hasil pemikiran
mahasiswa, sesuai kaidah penulisan (struktur, rapi, dll)
Bagus (B) 60-80
Materi lengkap, analisis benar, sesuai kaidah penulisan (struktur, rapi,
dll)
Kurang (C) 40-60
Materi kurang lengkap, analisis benar
Buruk (D) 1-40
Materi tidak lengkap, analisis tidak benar
Tidak
Lulus (E) 0 Tidak mengumpulkan
F. PENENTUAN NILAI AKHIR MATA KULIAH
Index penilaian akhir mengikuti aturan akademik telkomuniversity yaitu:
Berdasarkan rata-rata kelas
Rata-rata + 1,2xSB < NSM = A
Rata-rata + 0,6xSB < NSM ≤ Rata-rata + 1,2 xSB = AB
Rata-rata < NSM ≤ Rata-rata + 0,6 xSB = B
Rata-rata – 0,6 xSB < NSM ≤ Rata-rata = BC
Rata-rata – 1,2 xSB < NSM ≤ Rata-rata – 0,6xSB = C
40 < NSM ≤ Rata-rata – 0,6xSB = D
NSM ≤ 40 = E
Rata-rata = rataan nilai-nilai mahasiswa kelas dengan NSM > 40
SB = simpangan baku nilai-nilai kelas dengan NSM > 40
Penentuan rata-rata kelas bisa berdasarkan kelas paralel yang diajar oleh dosen yang sama
(beda dosen bisa beda rata-rata kelasnya)
Berdasarkan nilai absolut
Nilai Akhir (NA) Nilai Mata Kuliah
80 < NA A
70 < NA ≤ 80 AB
65 < NA ≤ 70 B
60 < NA ≤ 65 BC
50 < NA ≤ 60 C
40 < NA ≤ 50 D
NA < 40 E
G. LAMPIRAN CONTOH TUGAS
Dining Philosopher
The problem can be stated quite simply as follows. Five philosophers are seated around a
circular table. Each philosopher has a plate of spaghetti. The spaghetti is so slippery that a
philosopher needs two forks to eat it. Between each pair of plates is one fork. The layout of the
table is:
The life of a philosopher consists of alternate periods of eating and thinking. When a
philosopher gets hungry, she tries to acquire her left and right forks, one at a time, in either
order. If successful in acquiring two forks, she eats for a while, then puts down the forks, and
continues to think. The key question is: Can you write a program for each philosopher that
does what it is supposed to do and never gets stuck?
Producer Consumer Problem
The general statement is this: There are one or more producers generating some type of
data (records, characters,event) and placing these in a buffer. Whenever an event occurs, a
producer thread creates an event object and adds it to the event buffer. Concurrently,
consumer threads take events out of the buffer and process them. In this case, the
consumers are called “event handlers.”
• While an item is being added to or removed from the buffer, the buffer is in an
inconsistent state. Therefore, threads must have exclusive access to the buffer.
• If a consumer thread arrives while the buffer is empty, it blocks until a producer adds a
new item.
Producer code
1 event = waitForEvent()
2 buffer.add(event)
Consumer code
1 event = buffer.get()
2 event.process()
Access to the buffer has to be exclusive, but waitForEvent and event.process can run
concurrently.
Add synchronization statements to the producer and consumer code to enforce the
synchronization constraints!
Producer Consumer Problem with Finite Buffer
Same as Producer consumer problem but If a producer arrives when the buffer is full, it
blocks until a consumer removes an item. Write producer-consumer code that handles the
finite-buffer constraint.
Reader Writer Problem
The readers/writers problem is defined as follows: There is a data area shared among a
number of processes. The data area could be a file, a block of main memory, or even a bank
of processor registers. There are a number of processes that only read the data area
(readers) and a number that only write to the data area (writers). The conditions that must
be satisfied are as follows:
1. Any number of readers may simultaneously read the file.
2. Only one writer at a time may write to the file.
3. If a writer is writing to the file, no reader may read it.
In other words, a writer cannot enter the critical section while any other thread (reader or
writer) is there, and while the writer is there, no other thread may enter. Use semaphores to
enforce these constraints, while allowing readers and writers to access the data structure,
and avoiding the possibility of deadlock!
Cigarette Smoker Problem
The cigarette smokers problem problem was originally presented by Suhas Patil. Four
threads are involved: an agent and three smokers. The smokers loop forever, first waiting for
ingredients, then making and smoking cigarettes. The ingredients are tobacco, paper, and
matches.
We assume that the agent has an infinite supply of all three ingredients, and each smoker
has an infinite supply of one of the ingredients; that is, one smoker has matches, another
has paper, and the third has tobacco.
The agent repeatedly chooses two different ingredients at random and makes them
available to the smokers. Depending on which ingredients are chosen, the smoker with the
complementary ingredient should pick up both resources and proceed.
For example, if the agent puts out tobacco and paper, the smoker with the matches should
pick up both ingredients, make a cigarette, and then signal the agent.
To explain the premise, the agent represents an operating system that allocates resources,
and the smokers represent applications that need resources. The problem is to make sure
that if resources are available that would allow one more applications to proceed, those
applications should be woken up. Conversely, we want to avoid waking an application if it
cannot proceed.
Agent
1 agentSem = Semaphore(1)
2 tobacco = Semaphore(0)
3 paper = Semaphore(0)
4 match = Semaphore(0)
Agent A
1 agentSem.wait()
2 tobacco.signal()
3 paper.signal()
Agent B
1 agentSem.wait()
2 paper.signal()
3 match.signal()
Agent C
1 agentSem.wait()
2 tobacco.signal()
3 match.signal()
Dining Savage Problem
A tribe of savages eats communal dinners from a large pot that can hold M servings of
stewed missionary. When a savage wants to eat, he helps himself from the pot, unless it is
empty. If the pot is empty, the savage wakes up the cook and then waits until the cook has
refilled the pot.
Savage
1 while True:
2 getServingFromPot()
3 eat()
Cook
1 while True:
2 putServingsInPot(M)
The synchronization constraints are:
• Savages cannot invoke getServingFromPot if the pot is empty.
• The cook can invoke putServingsInPot only if the pot is empty.
Add code for the savages and the cook that satisfies the synchronization constraints.
The Barber Shop
A barbershop consists of a waiting room with n chairs, and the barber room containing the
barber chair. If there are no customers to be served, the barber goes to sleep. If a customer
enters the barbershop and all chairs are occupied, then the customer leaves the shop. If the
barber is busy, but chairs are available, then the customer sits in one of the free chairs. If the
barber is asleep, the customer wakes up the barber. Write a program to coordinate the
barber and the customers.
• Customer threads should invoke a function named getHairCut.
• If a customer thread arrives when the shop is full, it can invoke balk, which does not
return.
• Barber threads should invoke cutHair.
• When the barber invokes cutHair there should be exactly one thread invoking getHairCut
concurrently.
The Santa Claus Problem
Santa Claus sleeps in his shop at the North Pole and can only be wakened by either (1) all
nine reindeer being back from their vacation in the South Pacific, or (2) some of the elves
having difficulties making toys; to allow Santa to get some sleep, the elves can only wake
him when three of them have problems. When three elves are having their problems solved,
any other elves wishing to visit Santa must wait for those elves to return. If Santa wakes up
to find three elves waiting at his shop’s door, along with the last reindeer having come back
from the tropics, Santa has decided that the elves can wait until after Christmas, because it
is more important to get his sleigh ready. (It is assumed that the reindeer do not want to
leave the tropics, and therefore they stay there until the last possible moment.) The last
reindeer to arrive must get Santa while the others wait in a warming hut before being
harnessed to the sleigh. Solve this problem using semaphores!
Building H2O
There are two kinds of threads, oxygen and hydrogen. In order to assemble these threads
into water molecules, we have to create a barrier that makes each thread wait until a
complete molecule is ready to proceed.
As each thread passes the barrier, it should invoke bond. You must guarantee that all the
threads from one molecule invoke bond before any of the threads from the next molecule
do.
In other words:
• If an oxygen thread arrives at the barrier when no hydrogen threads are present, it has to
wait for two hydrogen threads.
• If a hydrogen thread arrives at the barrier when no other threads are present, it has to
wait for an oxygen thread and another hydrogen thread.
We don’t have to worry about matching the threads up explicitly; that is, the threads do not
necessarily know which other threads they are paired up with. The key is just that threads
pass the barrier in complete sets; thus, if we examine the sequence of threads that invoke
bond and divide them into groups of three, each group should contain one oxygen and two
hydrogen threads.
Write synchronization code for oxygen and hydrogen molecules that enforces these
constraints.
River Crossing Problem
Somewhere near Redmond, Washington there is a rowboat that is used by both Linux
hackers and Microsoft employees (serfs) to cross a river. The ferry can hold exactly four
people; it won’t leave the shore with more or fewer. To guarantee the safety of the
passengers, it is not permissible to put one hacker in the boat with three serfs, or to put one
serf with three hackers. Any other combination is safe.
As each thread boards the boat it should invoke a function called board. You must guarantee
that all four threads from each boatload invoke board before any of the threads from the
next boatload do.
After all four threads have invoked board, exactly one of them should call a function named
rowBoat, indicating that that thread will take the oars. It doesn’t matter which thread calls
the function, as long as one does. Don’t worry about the direction of travel. Assume we are
only interested in traffic going in one of the directions.
Write synchronization that enforces these constraints.
The Rollercoaster Problem
Suppose there are n passenger threads and a car thread. The passengers repeatedly wait to
take rides in the car, which can hold C passengers, where C < n. The car can go around the
tracks only when it is full.
Here are some additional details:
• Passengers should invoke board and unboard.
• The car should invoke load, run and unload.
• Passengers cannot board until the car has invoked load
• The car cannot depart until C passengers have boarded.
• Passengers cannot unboard until the car has invoked unload.
Write code for the passengers and car that enforces these constraints.
Non-Classical Problem
The Unisex Bathroom Problem
She was working in a cubicle in the basement of a concrete monolith, and the nearest
women’s bathroom was two floors up. She proposed to the Uberboss that they convert the
men’s bathroom on her floor to a unisex bathroom.
The Uberboss agreed, provided that the following synchronization constraints can be
maintained:
• There cannot be men and women in the bathroom at the same time.
• There should never be more than three employees squandering company time in the
bathroom.
Of course the solution should avoid deadlock. For now, though, don’t worry about
starvation. You may assume that the bathroom is equipped with all the semaphores you
need.
The Sushi Bar Problem
Imagine a sushi bar with 5 seats. If you arrive while there is an empty seat, you can take a
seat immediately. But if you arrive when all 5 seats are full, that means that all of them are
dining together, and you will have to wait for the entire party to leave before you sit down.
Write code for customers entering and leaving the sushi bar that enforces these
requirements.
The Child Care Problem
At a child care center, state regulations require that there is always one adult present for
every three children.
Write code for child threads and adult threads that enforces this constraint in a critical
section.
The Room Party Problem
The following synchronization constraints apply to students and the Dean of Students:
1. Any number of students can be in a room at the same time.
2. The Dean of Students can only enter a room if there are no students in the room (to
conduct a search) or if there are more than 50 students in the room (to break up the party).
3. While the Dean of Students is in the room, no additional students may enter, but students
may leave.
4. The Dean of Students may not leave the room until all students have left.
5. There is only one Dean of Students, so you do not have to enforce exclusion among
multiple deans.
Write synchronization code for students and for the Dean of Students that enforces all of
these constraints.
The Bus Problem
This problem was originally based on the Senate bus at Wellesley College. Riders come to a
bus stop and wait for a bus. When the bus arrives, all the waiting riders invoke boardBus, but
anyone who arrives while the bus is boarding has to wait for the next bus. The capacity of
the bus is 50 people; if there are more than 50 people waiting, some will have to wait for the
next bus.
When all the waiting riders have boarded, the bus can invoke depart. If the bus arrives when
there are no riders, it should depart immediately.
Write synchronization code that enforces all of these constraints
The Dining Hall Problem
Students in the dining hall invoke dine and then leave. After invoking dine and before
invoking leave a student is considered “ready to leave”.
The synchronization constraint that applies to students is that, in order to maintain the
illusion of social suave, a student may never sit at a table alone. A student is considered to
be sitting alone if everyone else who has invoked dine invokes leave before she has finished
dine.
Write code that enforces this constraint.