Tugas Praktikum Sistem Operasi I
Amankan Critical Region thread-thread yang ada di bawah ini dengan cara:
- Lock Variables
- Strict Alternation
- Peterson’s Solution (Pelajari sendiri dari buku Modern Operating Systems karangan Andrew S. Tanembaum.)
Kirimkan tugasnya ke lathyka@usa.com & djph@ymail.com selambat-lambatnya pada:
- Kelas A: 11 Oktober 2010 Pukul 23.59 WIB
- Kelas B: 14 Oktober 2010 Pukul 23.59 WIB
- Kelas C: 15 Oktober 2010 Pukul 23.59 WIB
NB: Kepada peserta praktikum yang sudah mengerti diharapkan dapat mengajari teman-temannya yang belum mengerti.
Thread1.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | /** * @(#)Thread1.java * * * @author * @version 1.00 2010/10/9 */ public class Thread1 extends Thread { public Thread1() { } public void run() { for(int i=0; i<10; i++) { String kalimat = "Saya sedang belajar tentang sistem operasi!"; for(int j=0; j<kalimat.length(); j++) { System.out.print(kalimat.charAt(j)); delay(100); } System.out.println(); } } public void delay(long milis) { try { Thread.sleep(milis); } catch(InterruptedException ie) { System.out.println("Terjadi interupsi. Error: "+ie.getMessage()); } } } |
Thread2.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | /** * @(#)Thread2.java * * * @author * @version 1.00 2010/10/9 */ public class Thread2 extends Thread { public Thread2() { } public void run() { for(int i=0; i<10; i++) { String kalimat = "Saya bosan belajar tentang sistem operasi!"; for(int j=0; j<kalimat.length(); j++) { System.out.print(kalimat.charAt(j)); delay(100); } System.out.println(); } } public void delay(long milis) { try { Thread.sleep(milis); } catch(InterruptedException ie) { System.out.println("Terjadi interupsi. Error: "+ie.getMessage()); } } } |
MainThread.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | /** * @(#)MainThread.java * * * @author * @version 1.00 2010/10/9 */ public class MainThread { public static void main(String[] args) { Thread1 t1 = new Thread1(); Thread2 t2 = new Thread2(); t1.start(); t2.start(); } } |