Tampilkan postingan dengan label tugas OS 6. Tampilkan semua postingan
Tampilkan postingan dengan label tugas OS 6. Tampilkan semua postingan

Kamis, 15 November 2012

Program Sederhana Menggunakan Thread

Program sederhana menggunakan thread salah satunya adalah pemrograman berbasis console, dimana user bisa menghentikan proses dengan menekan tombol ”s” atau “S”. Proses yang sedang terjadi dijalankan melalui sebuah Thread dan proses menunggu juga dilakukan dalam Thread.

import std.thread;
import std.stdio;
import std.c.stdio;
import std.date;
// Thread proses utama ….
class mythread:Thread
{
private char [] d_name = “”;
private long d_nloop = 10;
private bool d_stop = false;
this(char [] name, long nloop)
{
super();
writefln(name ~ ” called”);
this.d_name = name;
this.d_nloop = nloop;
}

override public int run()
{
long i = 0;
for(i=0;(i<this.d_nloop && (!d_stop));i++)
{
//writefln(d_name ~ ” called again “);
}
if( d_stop )
writefln(d_name ~ ” stopped by user in “
~ std.string.toString(i) ~ ” times of loop”);
else
writefln(d_name ~ ” Finished …” ~ std.string.toString(d_nloop));
return 0;
}

public void stopIt()
{
d_stop = true;
}
}
// thread untuk menunggu pengguna menekan s atau S
class UserToStopAllThread: Thread
{
private bool d_stop = false;
this()
{
super();
}

override public int run()
{
while(!d_stop)
{
char ch = getch();
if(ch == ‘s’ || ch == ‘S’)
break;
}
return 0;
}

public void stopIt()
{
d_stop = true;
}
}
// ini adalah Thread utama ….
void main(char [][] args)
{
int i = 0;
mythread a = new mythread(“A”, 9999999999999);

writefln(“Tekan s untuk menghentikan proses ….”);
UserToStopAllThread utsa = new UserToStopAllThread;
a.start();
utsa.start();

while(a.getState() == Thread.TS.RUNNING && utsa.getState() == Thread.TS.RUNNING)
{
// tunggu sampai a selesai atau user menekan tombol ‘S’ or ‘s’
}
if(a.getState() == Thread.TS.RUNNING) a.stopIt(); // pastikan berhenti
if(utsa.getState() == Thread.TS.RUNNING) utsa.stopIt(); // pastikan berhenti

SISTEM OPERASI SUPPORT HYPERTHREADING

Berikut merupakan beberapa sistem operasi yang menggunakan teknologi hyperthreading :

1. linux, Model Multithreading one to one

2. solaris, Model Multithreading one to one

3. Solaris Green Threads, Model Multithreading many to one

4. GNU Portable Threads, Model Multithreading many to one

5. IRIX Model Multithreading many to many

6. Digital unix Model Multithreading many to many

7. Microsoft Windows NT 4.0, Model Multithreading one to one

8. Microsoft Windows 2000, Model Multithreading one to one

9. Microsoft XP Professional, Model Multithreading one to one

10.Microsoft Windows Seven, Model Multithreading one to one

Arsitektur Komputer Menggunakan Teknologi Hyperthreading dengan Algoritma Dispatching Algorithm

Sebuah arsitektur komputer dimana CPU nya menggusung teknologi yang seolah-olah seperti lebih dari 1 processor dengan menggunakan algoritma antrean untuk mengeksekusi proses-proses dari CPU secara berurutan. Sehingga kinerja dari processor tersebut menjadi lebih cepat dan effisien.  

Tekhnologi Hyperthreading merupakan teknologi yang memungkinkan sistem operasi tertentu mendeteksi adanya dua buah prsesor logis (logical procesor) yang beroperasi meskipun kenyataannya hanya ada sebuah prosesor.

Cara kerja dari Tekhnologi Hyperthreading ini tidak terlalu rumit dimana prosesor akan menjalankan dua aplikasi atau lebih secara bersamaan secara paralel. Dengan demikian akan didapatkan efisiensi dan waktu eksekusi yang lebih singkat dibandingkan denagn resuorces yang sama dengan prosesor tanpa kemampuan Hyper threading.

Apa itu dispatching algorithm?

Sistem operasi  mengenali 2 buah prosesor maka suatu sistem bekerja dlm melakukan sebuah eksekusii setiap "thread" akan lebih effisien, walaupun sitem tersebut bersifat "multitasking".
sitem operasi akan melakukan sebuah eksekusi proses secara berurutan, dengan menggunakan sebuah "algoritma antrean" yang dinamakan "Dispatching algorithm"