Kamis, 15 November 2012

Contoh Thread pada Bahasa Pemrograman

Thread adalah suatu pengontrol aliran program dengan menggunakan kendali tunggal.

contoh thread pada pemrograman java :

class TestSinkronisasi {
private java.util.Random random = new java.util.Random();
public void callMe(String data) {
System.out.print("[");
67
try{
Thread.sleep(random.nextInt(200));
}catch(InterruptedException e) {
e.printStackTrace();
}
System.out.print(data);
try{
Thread.sleep(random.nextInt(200));
}catch(InterruptedException e) {
e.printStackTrace();
}
System.out.println("]");
}
}
class ThreadBaru extends Thread {
private String data;
private TestSinkronisasi obj;
public ThreadBaru(TestSinkronisasi obj,String data) {
this.obj = obj;
this.data = data;
start();
}
public void run() {
obj.callMe(data);
}
}
class DemoThread {
public static void main(String[] args) {
TestSinkronisasi obj = new TestSinkronisasi();
ThreadBaru thread1 = new ThreadBaru(obj,"Superman");
ThreadBaru thread2 = new ThreadBaru(obj,"Batman");
ThreadBaru thread3 = new ThreadBaru(obj,"Spiderman");
//tunggu hingga semua child thread selesai dieksekusi
try{
68
thread1.join();
thread2.join();
thread3.join();
}catch(InterruptedException e) {
System.out.println("Thread utama diinterupsi " + e);
}
}
}

Ada juga alternatif lain sebagai berikut :
#define _REENTRANT
#include <stdio.h>
#include <thread.h>

/* Prototype for thread subroutine */
void *counter(void *);

int count;
mutex_t count_lock;

main()
{
char str[80];
thread_t ctid;

/* create the thread counter subroutine */
thr_create(NULL, 0, counter, 0, THR_NEW_LWP|THR_DETACHED, &ctid);

while(1) {
gets(str);
thr_suspend(ctid);

mutex_lock(&count_lock);
printf("\n\nCOUNT = %d\n\n", count);
mutex_unlock(&count_lock);

thr_continue(ctid);
}

return(0);
}

void *counter(void *arg)
{
int i;

while (1) {
printf("."); fflush(stdout);

mutex_lock(&count_lock);
count++;

for (i=0;i<50000;i++);

mutex_unlock(&count_lock);

for (i=0;i<50000;i++);
}

return((void *)0);
}

Sistem Operasi yang Mendukung HyperThreading

  1. Windows NT/XP/2000, linux, solaris 9 termasuk ke kelompok multithreading one the one model
  2. Windows NT/2000, IRIX, Digital Unix dan solaris termasuk kelompok multhithreading many the one model
  3. IRIX, HP-UX, Tru64 UNIX, solaris 8 termasuk kelompok multithreading two level model
  4. GNU juga termasuk ke kelompok multithreading many to one model

Dispatching Algorithm

Dispatching algorithm atau algoritma antrian adalah suatu proses mengeksekusi dalam 2 buah proses secara berurutan atau sekuensial ini memungkinkan efisiensi ketika mengeksekusi sebuah thread meskipun sistem operasi bersifat multitasking

Komputer dengan Teknologi Hyperthreading

komputer ini merupakan sebuah teknologi mikroprosesor yang diciptakan oleh intel corp, pada beberpa prosesor seperti pentium 4, pentium D, Xeon, dan core 2. 
prosesor tingkat ini akan dilihat oleh sistem operasi yang banyak mendukung seperti windows NT, 2000, xp, vista, dan GNU sebagai 2 buah prosesor walaupun jika secara fisik hanya 1 prosesor.jika demikian maka kerja sistem pun akan lebih efisien, meskipun sifatnya multitasking, sistem operasi tersebut melakukan eksekusi secara berurutan dengan sebuah algoritma antrean/algoritma dispatching

Latihan Tugas 4

10. Perlihatkan semua kemungkinan keadaan dimana suatu proses dapat berjalan, dan gambarkan   diagram transisi keadaan yang menjelaskan bagaimana proses bergerak diantara state

Jawab !


11. Apakah suatu proses memberikan 'issue' ke suatu disk I/O ketika, proses tersebut dalam 'ready' state jelaskan?

 Jawab !
 ya, karena dalam suatu proses mempunyai 'issue'(pengaruh) terhadap disk I/O itu sendiri

12. Kernel menjaga suatu rekaman untuk setiap proses, disebut Proses Control Blocks(PCB).
ketika suatu proses sedang tidak berjalan, PCB berisi informasi tentang perlunya melakukan restart suatu proses dalam CPU. jelaskan dua informasi yang harus dipunyai PCB?

Jawab !

- Informasi status I/O : berisi tentang informasi daftar I/O yang digunakan pada proses
- Informasi pencatatatan : berisi info tentang jumlah CPU, waktu riil, digunakan, batas waktu, jumlah akun, jumlah job, dll. 





 

Filesystem Hierarchy Standard (FHS)

FHS merupakan sebuah perangkat petunjuk sebagai penempatan file dan direktori pada SO linux, pada saat kita telah menginstal sebuah sistem operasi linux maka otomatis pada dirktori kita akan terdapat direktosri seperti bin, boot, dev, root, sbin dll yang telah disediakan oleh linux berdasarkan FHS. fungsi dari FHS untuk program pengembangan, program administrasi system dan interopabilitas, FHS memudahkan user dan pengembang untuk memodifikasi disto linux yang ingin mereka kembangkan.


Rabu, 07 November 2012

Perbedaan Struktur SO Windows dan Linux

1. Windows

terdapat 3 buah struktur sistem pada windows, yaitu :

  • FAT 16 : sistem yang hanaya digunakan untuk mengatur floppy drive, namun setelah dikembangkan lagi sistem ini bisa mengatur file pada HDD. FAT 16 tidak bisa melakukan proses enkripsi, kompresi, dan akses kontrol pada partisi
  • FAT 32 : merupakan pengembangan dari FAT 16 yang mempunyai kelebihan untuk membuat HDD jadi lebih baik kinerjanya, namun FAT 32 tidak mendukung untuk sembarang SO
  • NTFS : merupakan pengembangan dari kedua struktur sistem diatas kelebihan pada NTFS yaitu sudah mendukung kompresi file, enkripsi data dan cluster serta peningkatan security yang lebih baik
apabila pada PC sudah terinstalasi SO windows, maka akan terdapat direktori, antara lain :

- direktori C:\windows : didalamnya terdapat semua sistem dari windows. seperti system32, registry dan program lain yang mendukung windows untuk melancarkan tugasnya.
- direktori C:\program files : berisi semua aplikasi yang telah terpasang pada windows
- direktori C:\my document : berisi data file si pemilik

2. Linux


   linux mempunyai 3 sistem struktur, yaitu :
  • kernel : program yang berhubungan langsung dengan sistem perangkat keras dan memiliki peran untuk menjalankan proses, menydeiakan pelayanan sistem yang memberikan pengaturan proteksi akses ke sumber perangkat keras termasuk virtual memori
  • system library : berfungsi untuk berinteraksi dengan kernel
  • system utilities : aplikasi yang mempunyai fungsi untuk mengatur dan memanage secara individual, termasuk aplikasi yang menganalisis sistem.
fungsi dari masing2 direktori yang ada pada root :
1. /bin : berisi file yang bisa digunakan baik oleh user biasa maupun super user
2. /boot : berisi file yang digunakan untuk booting
3. /dev : berisi file sistem khusus yang merupakan refleksi device hardware yang digunakan sistem
4. /etc : berisi file konfigurasi sistem, dan biasanya hanya diubah superuser
5. /home : berisi direktori home
6. /lib : berisi file library yang mendukung kerja kernel linux
7. /mnt : direktori khusus yang digunakan unuk mounting storage ke dalam sistem dalam bentuk direktori
8. /proc : berisi file data2 kernel
9. /root : direktori untuk user root
10. /sbin : mirp seperti /bin, namun sbin hanya disediakan untuk superuser
11. /tmp : berisi file sementara yang digunakan pada aplikasi yang sedang berjalan
12. /usr : berisi library, bianri, dokumen dan file lain si user
13. /var : berisi file log, mailbox, dan data aplikasi

API, COMMAND INTERPRETER, SYSTEM CALL, AND SHELL

1. API (Application Programming Interface)


   API adalah suatu kumpulan perintah fungsi, maupun protokol yang biasa digunakan oleh para programmer pada saat membangun software untuk sistem operasi. API mempunyai perintah yang lebih terstruktur sehingga mempermudah programmer untuk membangun sebuah software, API bisa digunakan sistem operasi mana saja jika didalam sistem operasi tersebut sudah terdapatpaket2 API.

 2. Command Interpreter


     Program yang biasa di gunakan sebagai penerima perintah dari user, CI membaca menerima perintah berupa teks kemudian dia menerjemahkannya menjadi bahasa mesin.

Command Interpreter mempunyai beberapa fungsi, yaitu :

  • mengeksekusi program : memanggil suatu program ke memori, hasil eksekusi bisa normal ataupun ada indikasi error
  • pengoperasian I/O : menyediakan peralatan I/O pada saat program berjalan agar efesien dan aman
  • memanipulasi system file : kemampuan untuk dapat menulis, membuat, membaca, dan menghapus suatu file
  • error detection : CI dapat mendeteksi error pada CPU, piranti I/O, dan memori
3.  System Calls
     Cara pemanggilan aplikasi yang bertujuan untuk mendapat pelayanan yang diseikana oleh suatu sistem operasi.

Fungsi System Calls :
  • manajemen berkas : membuka atau menutup file, membuat atau menghapusfile
  • manajemen piranti : memasukan atau melepaskan suatu piranti
  • pengendalian proses : membuat atau mengakhiri proses, alokasi dan pengosongan memori
  • mempertahankan informasi : mengatur waktu, mengambil proses file atau atribut
4. Shell
    Shell mirip dengan CMD pada windows yang berfungsi sebagai penghubung antara sistem operasi dengan si user, perintah yang dilakukan yaitu dengan cara mengetikan baris perintah tersebut.


Fungsi Shell :
  • biasanya digunakan untuk mengontrol session pada OS yang berbasis UNIX
  • untuk pemrograman
jenis Sheel :

/bin/csh or /usr/bin/csh = C shell
/bin/jsh = bourne sheel termasuk pada job control
/bin/ksh = korn shell
/bin/rksh = resticted korn shell
/bin/rsh = restricted bourne sheel
/bin/sh = bourne shell