Pengertian dan Contoh dari Batch System, Critical Section, Process Control Block, Distributed Processing, Handheld, dan Thread
MANAJEMEN PROSES
1. BATCH SYSTEM
Batch system
dikenalkan pada generasi kedua (1955-1965). Batch sistem adalah suatu teknik
pengurutan kerja secara otomatis untuk menghindari waktu menganggurnya CPU.
Tugas ini dikerjakan dalam satu rangkaian, lalu dieksekusi secara berurutan.
Pada generasi ini sistem komputer belum dilengkapi sistem operasi, tetapi
beberapa fungsi sistem operasi telah ada, contohnya fungsi sistem operasi ialah
FMS dan IBSYS.
- Multi-programming adalah salah satu teknik penjadwalan dimana tugas (task) yang sedang berjalan tetap berjalan sampai ia melakukan operasi yang membutuhkan waktu untuk menunggu respon dari luar (external event), misalnya membaca data dari disket/CD/dsb, atau sampai komputer memaksa untuk menukar tugas yang sedang berjalan dengan tugas lainnya. Sistem operasi yang yang menggunakan multi-program sebagai scheduler-nya bertujuan untuk memaksimalkan penggunaan CPU.
- Multiprocessing adalah istilah teknologi informasi dalam bahasa Inggris yang merujuk kepada kemampuan pemrosesan komputer yang dilakukan secara serentak. Hal ini dimungkinkan dengan menggunakan dua CPU atau lebih dalam sebuah sistem komputer. Istilah ini juga dapat merujuk kepada dukungan sebuah sistem untuk mendukung lebih dari satu prosesor dan mengalokasikan tugas kepada prosesor-prosesor tersebut.
- Jenis jenis System Operasi
Sistem
Operasi Real-time: Adalah sebuah sistem operasi multitasking yang
bertujuan mengeksekusi aplikasi secara real-time . Real-time Operating System
sering menggunakan algoritma penjadwalan khusus, sehingga mereka bisa mencapai
sifat deterministik perilaku . Tujuan utama dari sistem operasi ini adalah
memberikan respon cepat dan real-time, serta prediksi suatu event. Ia juga
didesain dengan event-driven atau time-sharing one. Sebuah sistem switch event
antara tugas-tugas yang berdasarkan prioritas, sementara sistem operasi
time-sharing akan beralih tugas berdasarkan jam interupsi.
Windows CE , OS - 9 , Symbian dan LynxOS adalah beberapa yang dikenal sebagai sistem operasi real-time .
Sistem Operasi Multi-user dan Single-user: Sistem operasi komputer jenis ini akan memungkinkan beberapa pengguna untuk mengakses sistem komputer secara bersamaan. Sistem time sharing dapat diklasifikasikan sebagai sistem multi-user, karena mereka memungkinkan akses beberapa pengguna ke komputer melalui berbagi waktu. Sistem operasi single-user, adalah sebagai lawan dari sistem operasi multi-user, yang dapat digunakan oleh satu pengguna pada satu waktu. Pada OS windows mampu memiliki beberapa account, namun tidak membuat sistem multi-user. Sebaliknya, hanya administrator jaringanlah pengguna yang sebenarnya. Tapi untuk sistem operasi yang mirip Unix, adalah mungkin untuk dua pengguna untuk login pada satu waktu, dan kemampuan OS ini yang membuatnya menjadi sistem operasi multi-user.
Windows 95, Windows 2000 , Mac OS , dan Palm OS adalah contoh dari sistem operasi single-user. Unix dan OpenVMS adalah contoh dari sistem operasi multi-user.
Sistem operasi Multi-tasking dan Single-tasking : Ketika sebuah program tunggal yang diperbolehkan untuk berjalan pada satu waktu, sistem ini dikelompokkan di bawah kategori sistem single- tasking, sedangkan dalam kasus sistem operasi yang memungkinkan untuk pelaksanaan beberapa tugas pada satu waktu, ini diklasifikasikan sebagai sistem operasi multi - tasking. Multi-tasking masih ada dua jenis yaitu, pre-emptive atau co-operative. Pre-emptive multitasking OS memotong waktu CPU, dan mendedikasikan satu slot untuk masing-masing program. Unix - sistem operasi seperti Solaris dan Linux, yang mendukung pre-emptive multitasking. Jika Anda mengerti terminologi multi-threading, Anda dapat mempertimbangkan jenis multi-tasking yang mirip dengan multi-threading. Co-operative multitasking dicapai dengan mengandalkan setiap proses untuk memberikan waktu kepada proses lain, dengan cara yang sudah ditetapkan. Ini adalah jenis multi-tasking yang mirip dengan gagasan blok multi-threading, di mana satu thread berjalan hingga diblok oleh beberapa even lainnya. MS Windows (sebelum Windows 95) digunakan untuk mendukung multitasking co-operative.
Palm OS untuk Palm handheld adalah Multi-tasking and Single-tasking Operating Systems. Windows 9x mendukung multi- tasking. DOS Plus adalah sistem operasi multi - tasking yang relatif kurang dikenal.
Distributed Operating System: Sistem operasi yang mengelola sekelompok komputer independen, dan membuat merekaseolah hanya sebuah komputer, dikenal sebagai sistem operasi terdistribusi. Perkembangan jaringan komputer yang dapat dihubungkan, dan dibuat untuk berkomunikasi satu sama lain yang memunculkan ide komputasi terdistribusi. Perhitungan terdistribusi dilakukan oleh lebih dari satu mesin. Ketika komputer dalam suatu kelompok kerja sama, maka mereka akan membuat sistem terdistribusi .
Amoeba, Plan9 dan LOCUS ( yang dikembangkan antara tahun 1980-an ) adalah beberapa contoh Distributed Operating System.
Embedded System: Sistem operasi yang dirancang untuk digunakan dalam sistem komputer embedded, atau yang dikenal sebagai Embedded System. Ini dirancang untuk beroperasi pada perangkat kecil seperti PDA yang dengan otonomi kurang. System ini mampu beroperasi dengan jumlah sumber daya yang terbatas. Sangat compact, serta dengan desain yang sangat efisien.
Windows CE , FreeBSD dan Minix 3 adalah beberapa contoh Embedded System. Penggunaan Linux dengan sistem komputer embedded disebut sebagai Embedded Linux .
Mobile Operating System/OS Mobile: Meskipun ini bukanlah tipe yang berbeda fungsional dari sebuah sistem operasi, OS mobile juga termasuk penting untuk dimasukkan kedalam daftar jenis sistem operasi ini. OS mobile berfungsi untuk mengontrol perangkat mobile, yang memiliki desain yang mendukung untuk komunikasi nirkabel dan aplikasi mobile. Ia juga built- in dalam mendukung format multimedia pada perangkat mobile. Tablet PC dan smartphone adalah contoh perangkat yang dijalankan dengan sistem operasi mobile .
Blackberry OS , Google Android dan Apple iOS adalah beberapa nama OS Mobile yang paling dikenal .
Batch Processing dan Interactive Systems: Batch processing mengacu pada pelaksanaan program komputer dalam ' batch ' tanpa intervensi manual. Dalam sistem batch processing, program dikumpulkan, dikelompokkan dan diproses di kemudian hari. Tidak ada input data oleh user, sebagai input data dikumpulkan terlebih dahulu untuk proses selanjutnya. Input data dikumpulkan dan diproses dalam batch, maka dinamakan batch processing. IBM z / OS memiliki kemampuan pemrosesan batch. Sistem yang berlawanan dengan ini, operasi interaktif membutuhkan intervensi oleh pengguna , dan tidak dapat dijalankan tanpa pengguna.
Online dan Offline Processing: Dalam pengolahan data online, pengguna tetap berhubungan dengan komputer, dan proses dijalankan di bawah kendali central processing unit (CPU) komputer. Bila proses tidak dieksekusi di bawah kontrol langsung dari CPU, maka pengolahan ini disebut dengan offline. Mari kita ambil contoh batch processing. Di sini, batching atau pengelompokan data dapat dilakukan tanpa melibatkan pengguna dan intervensi oleh CPU, dan bisa dilakukan secara offline. Namun pelaksanaan proses yang sebenarnya mungkin terjadi di bawah kontrol prosesor langsung (yang online).
Sistem operasi juga membantu untuk menyederhanakan interaksi manusia dengan perangkat keras komputer, bertanggung jawab untuk menghubungkan antara program aplikasi dengan perangkat keras, sehingga pengguna dapat mencapai akses komputasi dengan mudah. Tanpa OS, komputer tak akan ada gunanya, atau paling tidak akan sulit untuk dioperasikan oleh kebanyakan orang.
Windows CE , OS - 9 , Symbian dan LynxOS adalah beberapa yang dikenal sebagai sistem operasi real-time .
Sistem Operasi Multi-user dan Single-user: Sistem operasi komputer jenis ini akan memungkinkan beberapa pengguna untuk mengakses sistem komputer secara bersamaan. Sistem time sharing dapat diklasifikasikan sebagai sistem multi-user, karena mereka memungkinkan akses beberapa pengguna ke komputer melalui berbagi waktu. Sistem operasi single-user, adalah sebagai lawan dari sistem operasi multi-user, yang dapat digunakan oleh satu pengguna pada satu waktu. Pada OS windows mampu memiliki beberapa account, namun tidak membuat sistem multi-user. Sebaliknya, hanya administrator jaringanlah pengguna yang sebenarnya. Tapi untuk sistem operasi yang mirip Unix, adalah mungkin untuk dua pengguna untuk login pada satu waktu, dan kemampuan OS ini yang membuatnya menjadi sistem operasi multi-user.
Windows 95, Windows 2000 , Mac OS , dan Palm OS adalah contoh dari sistem operasi single-user. Unix dan OpenVMS adalah contoh dari sistem operasi multi-user.
Sistem operasi Multi-tasking dan Single-tasking : Ketika sebuah program tunggal yang diperbolehkan untuk berjalan pada satu waktu, sistem ini dikelompokkan di bawah kategori sistem single- tasking, sedangkan dalam kasus sistem operasi yang memungkinkan untuk pelaksanaan beberapa tugas pada satu waktu, ini diklasifikasikan sebagai sistem operasi multi - tasking. Multi-tasking masih ada dua jenis yaitu, pre-emptive atau co-operative. Pre-emptive multitasking OS memotong waktu CPU, dan mendedikasikan satu slot untuk masing-masing program. Unix - sistem operasi seperti Solaris dan Linux, yang mendukung pre-emptive multitasking. Jika Anda mengerti terminologi multi-threading, Anda dapat mempertimbangkan jenis multi-tasking yang mirip dengan multi-threading. Co-operative multitasking dicapai dengan mengandalkan setiap proses untuk memberikan waktu kepada proses lain, dengan cara yang sudah ditetapkan. Ini adalah jenis multi-tasking yang mirip dengan gagasan blok multi-threading, di mana satu thread berjalan hingga diblok oleh beberapa even lainnya. MS Windows (sebelum Windows 95) digunakan untuk mendukung multitasking co-operative.
Palm OS untuk Palm handheld adalah Multi-tasking and Single-tasking Operating Systems. Windows 9x mendukung multi- tasking. DOS Plus adalah sistem operasi multi - tasking yang relatif kurang dikenal.
Distributed Operating System: Sistem operasi yang mengelola sekelompok komputer independen, dan membuat merekaseolah hanya sebuah komputer, dikenal sebagai sistem operasi terdistribusi. Perkembangan jaringan komputer yang dapat dihubungkan, dan dibuat untuk berkomunikasi satu sama lain yang memunculkan ide komputasi terdistribusi. Perhitungan terdistribusi dilakukan oleh lebih dari satu mesin. Ketika komputer dalam suatu kelompok kerja sama, maka mereka akan membuat sistem terdistribusi .
Amoeba, Plan9 dan LOCUS ( yang dikembangkan antara tahun 1980-an ) adalah beberapa contoh Distributed Operating System.
Embedded System: Sistem operasi yang dirancang untuk digunakan dalam sistem komputer embedded, atau yang dikenal sebagai Embedded System. Ini dirancang untuk beroperasi pada perangkat kecil seperti PDA yang dengan otonomi kurang. System ini mampu beroperasi dengan jumlah sumber daya yang terbatas. Sangat compact, serta dengan desain yang sangat efisien.
Windows CE , FreeBSD dan Minix 3 adalah beberapa contoh Embedded System. Penggunaan Linux dengan sistem komputer embedded disebut sebagai Embedded Linux .
Mobile Operating System/OS Mobile: Meskipun ini bukanlah tipe yang berbeda fungsional dari sebuah sistem operasi, OS mobile juga termasuk penting untuk dimasukkan kedalam daftar jenis sistem operasi ini. OS mobile berfungsi untuk mengontrol perangkat mobile, yang memiliki desain yang mendukung untuk komunikasi nirkabel dan aplikasi mobile. Ia juga built- in dalam mendukung format multimedia pada perangkat mobile. Tablet PC dan smartphone adalah contoh perangkat yang dijalankan dengan sistem operasi mobile .
Blackberry OS , Google Android dan Apple iOS adalah beberapa nama OS Mobile yang paling dikenal .
Batch Processing dan Interactive Systems: Batch processing mengacu pada pelaksanaan program komputer dalam ' batch ' tanpa intervensi manual. Dalam sistem batch processing, program dikumpulkan, dikelompokkan dan diproses di kemudian hari. Tidak ada input data oleh user, sebagai input data dikumpulkan terlebih dahulu untuk proses selanjutnya. Input data dikumpulkan dan diproses dalam batch, maka dinamakan batch processing. IBM z / OS memiliki kemampuan pemrosesan batch. Sistem yang berlawanan dengan ini, operasi interaktif membutuhkan intervensi oleh pengguna , dan tidak dapat dijalankan tanpa pengguna.
Online dan Offline Processing: Dalam pengolahan data online, pengguna tetap berhubungan dengan komputer, dan proses dijalankan di bawah kendali central processing unit (CPU) komputer. Bila proses tidak dieksekusi di bawah kontrol langsung dari CPU, maka pengolahan ini disebut dengan offline. Mari kita ambil contoh batch processing. Di sini, batching atau pengelompokan data dapat dilakukan tanpa melibatkan pengguna dan intervensi oleh CPU, dan bisa dilakukan secara offline. Namun pelaksanaan proses yang sebenarnya mungkin terjadi di bawah kontrol prosesor langsung (yang online).
Sistem operasi juga membantu untuk menyederhanakan interaksi manusia dengan perangkat keras komputer, bertanggung jawab untuk menghubungkan antara program aplikasi dengan perangkat keras, sehingga pengguna dapat mencapai akses komputasi dengan mudah. Tanpa OS, komputer tak akan ada gunanya, atau paling tidak akan sulit untuk dioperasikan oleh kebanyakan orang.
Contoh :
Sebuah Batch System adalah sebuah
e-mail dan transaksi batch processing. Dalam suatu sistem batch processing,
transaksi secara individual dientri melalui peralatan terminal, dilakukan
validasi tertentu, dan ditambahkan ke transaction file yang berisi transaksi
lain, dan kemudian dientri ke dalam sistem secara periodik. Di waktu kemudian,
selama siklus pengolahan berikutnya, transaction file dapat divalidasi lebih
lanjut dan kemudian digunakan untuk meng-up date master file yang berkaitan. Contohnya
adlah FMS ( Fortarn Monitoring System ) dan IBSYS.
SUMBER:
2. CRITICAL SECTION
Critical
section adalah dengan mendesain
sebuah protokol di mana proses-proses dapat menggunakannya secara bersama-sama.
Setiap proses harus 'meminta izin' untuk memasuki critical section-nya.
Bagian dari kode yang mengimplementasikan izin ini disebut entry
section. Akhir dari critical section itu disebut exit
section. Bagian kode selanjutnya disebut remainder section.
Struktur umum dari proses Pi adalah:
Contoh:
do {
entry section
critical
section
exit section
remainder section
} while (1);
do{
critical section
}while(1)
Solusi dari masalah critical
section harus memenuhi tiga syarat berikut:
1.
Mutual Exclusion.
Jika suatu proses sedang menjalankan critical
section-nya, maka proses-proses lain tidak dapat menjalankan critical
section mereka. Dengan kata lain, tidak ada dua proses yang berada di critical
section pada saat yang bersamaan.
2.
Terjadi kemajuan (progress).
Jika tidak ada proses yang sedang
menjalankan critical section-nya dan ada proses-proses lain yang
ingin masuk ke critical section, maka hanya proses-proses yang yang
sedang berada dalam entry section saja yang dapat berkompetisi
untuk mengerjakan critical section.
3.
Ada batas waktu tunggu (bounded
waiting).
Jika seandainya ada proses yang sedang
menjalankan critical section, maka proses lain memiliki waktu
tunggu yang ada batasnya untuk menjalankan critical section -nya,
sehingga dapat dipastikan bahwa proses tersebut dapat mengakses critical
section-nya (tidak mengalami starvation: proses seolah-olah
berhenti, menunggu request akses ke critical section diperbolehkan).
1.
Solusi perangkat lunak.
Dengan menggunakan algoritma-alogoritma yang
nilai kebenarannya tidak tergantung pada asumsi-asumsi lain, selain bahwa
setiap proses berjalan pada kecepatan yang bukan nol.
2.
Solusi perangkat keras.
Tergantung pada beberapa instruksi mesin
tertentu, misalnya dengan me-non-aktifkan interupsi atau dengan mengunci suatu
variabel tertentu
Selanjutnya akan dibahas sebuah algoritma
sebagai solusi masalah dari critical section yang memenuhi
tiga syarat seperti yang telah disebutkan di atas. Solusi ini tidak tergantung
pada asumsi mengenai instruksi-instruksi perangkat keras atau jumlah prosesor
yang dapat didukung oleh perangkat keras. Namun, kita mengasumsikan bahwa
insruksi bahasa mesin yang dasar (instruksi-instruksi primitif seperti load, store, dan test) dieksekusi secara atomik. Artinya,
jika dua instruksi tersebut dieksekusi secara konkuren, hasilnya ekuivalen
dengan eksekusi instruksi tersebut secara sekuensial dalam urutan tertentu.
Jadi, jika load dan store dieksekusi secara
konkuren, load akan mendapatkan salah satu dari nilai yang lama atau nilai
yang baru, tetapi tidak kombinasi dari keduanya.
Alogoritma I
Pada algoritma 1, variabel yang digunakan
bersama (shared variabel) adalah sebuah variabel
integer turn, yang diinisialisasi awal nilai 0 (atau 1 di proses yang
kedua). Jika turn == i, maka proses Pi diizinkan untuk
mengeksekusi critical sectionnya.
Algoritma ini menjamin bahwa hanya ada satu
proses pada suatu saat yang berada di critical section. Namun,
algoritma ini tidak memenuhi syarat terjadinya kemajuan, karena algoritma ini
membutuhkan pergiliran proses di dalam menjalankan critical section. Misalnya,
jika turn == 0 dan P1 ingin masuk ke critical
section, P1 tidak dapat masuk, meskipun P0 sedang
berada di remainder section. Hal ini
dikarenakan P0 belum masuk ke critical section. dan
oleh karenanya P0 belum mengubah
nilai turn (menjadi turn == 1.)
/**
*
Program ini sesuai dengan solusi critical section dengan
*
menggunakan algoritma 1.
*
Disadur dari buku Silberschatz dkk,
*
Applied Operating Systems Concepts, 2000.
*/
public
class Algoritma_1 extends MutualExclusion
{
public
Algoritma_1() {
turn
= TURN_0;
}
public
void masukCriticalSection(int t) {
while
(turn != t)
Thread.yield();
}
public
void keluarCriticalSection(int t) {
turn
= 1 - t;
}
private
volatile int turn;
}
|
Algoritma 2
Kelemahan algoritma 1 adalah bahwa algoritma 1
tidak menyediakan informasi yang cukup mengenai keadaan state setiap proses, ia
hanya mengingat proses mana yang diperbolehkan untuk memasuki critical
section. Untuk memecahkan masalah ini, variabel turn diganti
dengan sebuah array, yaitu:
boolean flag[2];
|
Setiap elemen dari array tersebut diinisialisasi
awal ke false. Jika flag[i] bernilai true, maka ini
mengindikasikan bahwa Pi siap untuk masuk ke critical section.
Setiap proses memantau suatu flag yang mengindikasikan ia ingin memasuki critical
section. Dia memeriksa flag proses lain dan tidak akan memasuki critical
section bila ada proses lain yang sedang masuk.
/**
*
Program ini sesuai dengan solusi critical section dengan
*
menggunakan algoritma 2.
*
Disadur dari buku Silberschatz dkk,
*
Applied Operating Systems Concepts, 2000.
*/
public
class Algoritma_2 extends MutualExclusion
{
public
Algoritma_2() {
flag[0]
= false;
flag[1]
= false;
}
public
void masukCriticalSection(int t) {
int
other;
other
= 1 - t;
flag[t]
= true;
while
(flag[other] == true)
Thread.yield();
}
public
void keluarCriticalSection(int t) {
flag[t]
= false;
}
private
volatile boolean[] flag = new boolean[2];
}
|
Di algoritma 2 ini,
proses Pi pertama-tama mengubah
nilai(set) flag[i] menjadi true, menandakan
bahwa Pi mau masuk ke critical section. Kemudian Pi mengecek
apakah proses Pj juga mau masuk kecritical section. Jika
proses Pj mau masuk, maka proses Pi akan menunggu sampai
proses Pj mengubah statenya bahwa ia tidak mau lagi masuk ke critical
section (flag[j] == false). Pada saat itu, maka Pi akan
masuk ke critical section. Ketika keluar dari critical
section, Pi akan mengset nilai flag[i] menjadi
false, memperbolehkan proses lain (jika ada proses lain yang
menunggu) untuk masuk ke critical section.
Solusi dengan algoritma 2 ini memenuhi
syarat mutual exclusion, tetapi tidak memenuhi syarat
terjadinya kemajuan. Untuk mengilustrasikan masalah ini, perhatikan urutan
eksekusi berikut:
T0: P0 sets flag[0] true
T1:
P1 sets flag[1] true
|
Sekarang P0 dan P1 akan
loop selama-lamanya di dalam statement while masing-masing.
Perhatikan bahwa mengubah urutan instuksi untuk mengset flag[i] dan
mengecek nilai flag[j] tidak akan memecahkan masalah ini. Kita malah
akan berada di situasi di mana ada kemungkinan untuk kedua proses berada dicritical
section pada saat yang bersamaan, yang akan melanggar syarat mutual
exclusion.
Algoritma 3
Dengan menggabungkan algoritma 1 dan algoritma
2, kita akan memperoleh solusi yang tepat untuk masalahcritical section, di
mana solusi itu akan memenuhi tiga syarat seperti yang telah disebutkan di
atas. Setiap proses menggunakan dua variabel:
boolean flag[2];
int
turn;
|
Awalnya flag[0] = flag[1] =
false, dan nilai turn tergantung dari proses yang boleh masuk (0
atau 1). Untuk masuk ke critical section, proses Pi pertama-tama
mengset flag[i] menjadi true, dan kemudian mengset
nilai turn menjadi j, sehingga memperbolehkan proses lain
yang ingin masuk ke critical section untuk dapat masuk
ke critical section. Jika kedua proses mencoba untuk masuk ke critical
section pada saat yang bersamaan, turn akan diset ke nilai i dan j pada
saat yang hampir bersamaan. Yang terakhir mengubah nilai turn akan
mempersilakan proses yang lainnya untuk masuk ke critical section.
/**
*
Program ini sesuai dengan solusi critical section dengan
*
menggunakan algoritma 3.
* Disadur
dari buku Silberschatz dkk,
*
Applied Operating Systems Concepts, 2000.
*/
public
class Algoritma_3 extends MutualExclusion
{
public
Algoritma_3() {
flag[0]
= false;
flag[1]
= false;
turn
= TURN_0;
}
public
void masukCriticalSection(int t) {
int
other;
other
= 1 - t;
flag[t]
= true;
turn
= other;
while
( (flag[other] == true) && (turn == other) )
Thread.yield();
}
public
void keluarCriticalSection(int t) {
flag[t]
= false;
}
private
volatile int turn;
private
volatile boolean[] flag = new boolean[2];
}
|
Algoritma ini didasarkan pada algoritma
penjadualan yang biasanya digunakan oleh tukang roti, di mana urutan pelayanan
ditentukan dalam situasi yang sangat sibuk.
Algoritma ini dapat digunakan untuk memecahkan
masalah critical section untuk n buah proses, yang
diilustrasikan dengan n buah pelanggan. Ketika memasuki toko, setiap pelanggan
menerima sebuah nomor. Sayangnya, algoritma tukang roti ini tidak dapat
menjamin bahwa dua proses (dua pelanggan) tidak akan menerima nomor yang sama.
Dalam kasus di mana dua proses menerima nomor yang sama, maka proses dengan
nomor ID terkecil yang akan dilayani dahulu. Jadi, jika Pi dan Pj menerima nomor yang sama
dan i < j, maka Pi dilayani dahulu. Karena setiap nama proses adalah unik dan
berurut, maka algoritma ini dapat digunakan untuk memecahkan masalah critical
section untuk n buah proses.
Struktur data umum algoritma ini adalah
boolean choosing[n];
int
number [n];
|
Awalnya, struktur data ini diinisialisasi
masing-masing ke false dan 0, dan menggunakan notasi
berikut:
- (a, b) < (c, d) jika a < c atau jika
a= c dan b < d
- max(a0, ..., an-1) adalah sebuah bilangan k,
sedemikian sehingga k >= ai untuk setiap i= 0, ..., n – 1
do {
choosing[i]
= true;
number[i]
= max(number[0], number [1], ..., number [n+1])+1;
choosing[i]
= false;
for
(j=0; j < n; j++) {
while
(choosing[j]);
while
((number[j]!=0) && ((number[j],j) < number[i],i)));
}
<foreignphrase>critical
section</foreignphrase>
number[i]
= 0;
<foreignphrase>remainder
section</foreignphrase>
}
while (1);
|
1. NON PREEMPTIVE
Nonpreemptive multitasking adalah gaya komputer multitasking
di mana sistem operasi tidak pernah memulai context switch dari proses yang
berjalan kepada proses lain. Sistem seperti ini baik statis dijadwalkan, paling sering
sistem periodik, atau menunjukkan beberapa bentuk koperasi multitasking, dalam
hal ini tugas-tugas komputasi yang dapat menyela diri dan secara sukarela
memberikan kontrol kepada tugas-tugas lain. Ketika memesan efek
terlebih dahulu tidak digunakan, proses yang menerima sumber daya tersebut
tidak dapat terganggu sampai selesai.
Koperasi multitasking adalah jenis multitasking di mana saat
ini mengendalikan proses CPU harus menawarkan kontrol untuk proses lainnya. Hal ini disebut
"koperasi" karena semua program harus bekerjasama agar ini bekerja. Sebaliknya,
preemptive multitasking aplikasi menyela dan memberikan kontrol ke proses lain
di luar kontrol aplikasi.
Program yang berjalan dibawah sistem operasi non-preemptive
harus khusus ditulis untuk bekerja sama dalam multitasking oleh kontrol
menghasilkan prosesor pada interval yang sering. Program yang tidak
menghasilkan cukup sering menyebabkan sistem non-preemptive untuk tetap
"terkunci" dalam program yangdatang tidak menghasilkan. Contoh gagal
non-preemptive multitasking adalah ketidak mampuan untuk melakukan hal
lain saat mencetak dokumen di Microsoft Word for Windows 2.0a. Hal ini terjadi
karena firman tidak menyerah kontrol prosesor cukup sering saat mencetak
dokumen Anda. Kasus terburuk dari program tidak menghasilkan adalah ketika
sebuah crash program. Kadang-kadang, program yang crash di Windows 3.1 akan crash
keseluruhan sistem hanya karena tidak ada tugas-tugas lain dapat menjalankan
sampai jatuh hasil program.
2. PREENTIVE
Dalam komputasi, preemption (kadang pre-emption) adalah
tindakan sementara mengganggu tugas yang sedang dilakukan oleh sistem komputer,
tanpa memerlukan kerjasama, dan dengan maksud melanjutkan tugas di lain waktu. Perubahan seperti ini
dikenal sebagai context switch. Hal ini biasanya dilakukan oleh tugas istimewa atau bagian
dari sistem yang dikenal sebagai preemptive scheduler, yang memiliki kekuatan
untuk mendahului, atau mengganggu, dan kemudian melanjutkan, tugas-tugas lain
dalam sistem.
Istilah preemptive multitasking digunakan untuk membedakan
sistem operasi multitasking, yang memungkinkan preemption tugas, dari sistem
multitasking koperasi dimana proses atau tugas harus secara eksplisit diprogram
untuk menghasilkan ketika mereka tidak membutuhkan sumber daya sistem.
Dalam hal sederhana:
Preemptive multitasking melibatkan penggunaan mekanisme interupsi yang menunda
proses yang sedang dijalankan dan memanggil scheduler untuk menentukan proses
harus melaksanakan berikutnya. Oleh karena itu semua proses akan mendapatkan beberapa jumlah
waktu CPU pada suatu waktu tertentu.
Pada preemptive multitasking, kernel sistem operasi juga
dapat memulai konteks sebuah saklar untuk memenuhi kendala prioritas kebijakan
penjadwalan, dengan demikian preempting tugas aktif.Secara umum, preemption
berarti "penyitaan sebelumnya". Ketika tugas
prioritas tinggi pada contoh yang merebut tugas yang sedang berjalan, ini
dikenal sebagai penjadwalan preemptive.
Istilah
"preemptive multitasking" kadang-kadang keliru digunakan ketika arti
yang diinginkan lebih spesifik, mengacu bukan untuk kelas yang dikenal sebagai
kebijakan penjadwalan penjadwalan waktu bersama, atau time-sharing.
Preemptive multitasking memungkinkan sistem komputer untuk
lebih andal menjamin setiap proses "slice" biasa waktu operasi.Hal
ini juga memungkinkan sistem untuk cepat menangani peristiwa eksternal penting
seperti data yang masuk, yang mungkin memerlukan perhatian segera dari satu
atau proses lain.
Pada setiap waktu tertentu, proses dapat dikelompokkan menjadi dua kategori: yang sedang menunggu untuk input atau output (disebut "I / O terikat"), dan mereka yang sepenuhnya menggunakan CPU ("CPU terikat"). Dalam sistem awal, proses sering akan "jajak pendapat", atau "busywait" sambil menunggu input diminta (seperti disk, keyboard atau input jaringan). Selama ini, proses tersebut tidak melakukan pekerjaan yang berguna, namun masih terjaga kontrol dari CPU. Dengan munculnya interrupt dan preemptive multitasking, ini I / O proses terikat bisa "diblokir", atau ditunda, sambil menunggu kedatangan data yang diperlukan, yang memungkinkan proses-proses lain untuk menggunakan CPU. Sebagai kedatangan data yang diminta akan menghasilkan interrupt, diblokir proses dapat jaminan kembali tepat waktu untuk eksekusi.
Meskipun teknik multitasking pada awalnya dikembangkan untuk mengijinkan beberapa pengguna untuk berbagi satu mesin, segera menjadi jelas bahwa multitasking berguna terlepas dari jumlah pengguna. Banyak sistem operasi, dari mainframe ke single-user komputer pribadi dan sistem kontrol tidak ada pengguna-(seperti di pesawat ruang angkasa robot), telah mengakui manfaat multitasking dukungan untuk berbagai alasan.Multitasking memungkinkan pengguna tunggal untuk menjalankan beberapa aplikasi pada saat yang sama, atau untuk menjalankan "latar belakang" dengan tetap mengontrol proses komputer.
Pada setiap waktu tertentu, proses dapat dikelompokkan menjadi dua kategori: yang sedang menunggu untuk input atau output (disebut "I / O terikat"), dan mereka yang sepenuhnya menggunakan CPU ("CPU terikat"). Dalam sistem awal, proses sering akan "jajak pendapat", atau "busywait" sambil menunggu input diminta (seperti disk, keyboard atau input jaringan). Selama ini, proses tersebut tidak melakukan pekerjaan yang berguna, namun masih terjaga kontrol dari CPU. Dengan munculnya interrupt dan preemptive multitasking, ini I / O proses terikat bisa "diblokir", atau ditunda, sambil menunggu kedatangan data yang diperlukan, yang memungkinkan proses-proses lain untuk menggunakan CPU. Sebagai kedatangan data yang diminta akan menghasilkan interrupt, diblokir proses dapat jaminan kembali tepat waktu untuk eksekusi.
Meskipun teknik multitasking pada awalnya dikembangkan untuk mengijinkan beberapa pengguna untuk berbagi satu mesin, segera menjadi jelas bahwa multitasking berguna terlepas dari jumlah pengguna. Banyak sistem operasi, dari mainframe ke single-user komputer pribadi dan sistem kontrol tidak ada pengguna-(seperti di pesawat ruang angkasa robot), telah mengakui manfaat multitasking dukungan untuk berbagai alasan.Multitasking memungkinkan pengguna tunggal untuk menjalankan beberapa aplikasi pada saat yang sama, atau untuk menjalankan "latar belakang" dengan tetap mengontrol proses komputer.
Periode waktu yang suatu proses diperbolehkan untuk
dijalankan dalam sistem preemptive multitasking umumnya disebut potongan waktu,
atau kuantum. The scheduler dijalankan sekali setiap irisan waktu untuk
memilih proses selanjutnya untuk menjalankan. Jika irisan waktu
terlalu pendek maka penjadwal akan memakan waktu proses terlalu banyak.
Interrupt dijadwalkan untuk memungkinkan kernel sistem
operasi untuk beralih di antara proses-proses ketika irisan waktu mereka
berakhir, efektif sehingga waktu prosesor untuk dibagi antara sejumlah tugas,
memberikan ilusi bahwa berurusan dengan tugas-tugas secara bersamaan, atau
secara bersamaan. Sistem operasi yang mengontrol desain seperti ini disebut
sistem multi-tasking.
Sistem pendukung preemptive multitasking
Hampir semua sistem operasi mendukung preemptive multitasking,
termasuk versi terbaru Windows, Mac OS, Linux, IOS dan Android. Contoh awal sistem
operasi preemptive termasuk AmigaOS, yang 95/98/ME Windows (32-bit hanya
aplikasi) [2] dan Windows keluarga NT (termasuk 2000, XP, Vista, dan 7), Linux,
* BSD, OS / 2 2.x - OS / 2 Warp 3-4,5, Mac OS X. Unix dan sistem berbasis
Unix, dan VMS, serta sistem lainnya yang digunakan di pasar bisnis akademik dan
menengah sampai besar, selalu mendukung preemptive multitasking, tapi untuk waktu yang
lama berada di luar jangkauan kebanyakan pengguna baik karena biaya lisensi
atau perangkat keras yang mahal diperlukan untuk mendukung mereka.
Contoh yang lebih tua, non-preemptive (koperasi) sistem
operasi termasuk Windows 1.x, 2.x, 3.x, Windows for Workgroups, Windows
95/98/ME (ketika menjalankan aplikasi 16-bit), NetWare, dan Classic Mac versi OS (sistem 5.0
dan ke atas). Non-multitasking sistem operasi termasuk versi Mac OS, MS
DOS, dan Commodore 64 OS yang hanya bisa menjalankan satu program pada satu
waktu. Beberapa sistem operasi yang paling awal yang tersedia
untuk pengguna rumahan menampilkan preemptive multitasking adalah Sinclair QDOS
(1984 [3]) dan Amiga OS (1985). Kedua berlari pada mikroprosesor Motorola 68000-keluarga
tanpa manajemen memori. Meskipun ada sistem Unix-like lainnya seperti Xenix dan
koheren, mereka sering bisa mahal untuk digunakan di rumah.Amiga OS digunakan
pembebanan dinamis dari blok kode yang dapat direlokasikan ("bakhil"
dalam jargon Amiga) untuk multitask Terlebih Dahulu semua proses dalam ruang alamat
yang sama datar. Awal sistem operasi PC, seperti MS-DOS dan DR-DOS,
tidak mendukung multitasking sama sekali. Novell NetWare,
Microsoft Windows dan OS / 2 sistem diperkenalkan koperasi multitasking ke PC,
tetapi tidak mendukung preemptive multitasking. Dalam hal PC, lambat
awal sebagian karena kebutuhan untuk mendukung kode warisan besar perangkat
lunak DOS tertulis untuk menjalankan dalam modus single-user, sedangkan sistem
Amiga dirancang untuk multitask dari awal. Versi awal Windows
untuk mendukung bentuk terbatas preemptive multitasking adalah Windows 2.1x,
yang menggunakan Intel 80386 Virtual 8086 mode untuk menjalankan aplikasi DOS
di mesin virtual 8086 - dikenal sebagai "kotak DOS" - yang dapat
mendahului. Pada Windows 95, 98 dan ME, aplikasi 32-bit dibuat memesan
efek terlebih dahulu dengan menjalankan masing-masing dalam ruang alamat yang
terpisah, tapi aplikasi 16 bit tetap kooperatif. [2] Windows NT selalu
mendukung preemptive multitasking.
SUMBER:
http://opensource.telkomspeedy.com/repo/abba/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch22s02.html
3. PROCESS CONTROL BLOCk
PENGERTIAN
PROCESS CONTROL BLOCK (PCB) adalah
struktur data yang dipakai oleh OS untuk mengelola proses.Hampir semua OS yang
modern telah memuat PCB(Process Control Block) namun strukturnya berbeda-beda
pada setiap OS tersebut.PCB juga memuat informasi tentang proses, yaitu: sebuah tanda
pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status
proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori.
Prioritas proses merupakan suatu nilai atau besaran yang menunjukkan seberapa
sering proses harus dijalankan oleh prosesor. Proses yang memiliki prioritas
lebih tinggi, akan dijalankan lebih sering atau dieksekusi lebih dulu
dibandingkan dengan proses yang berprioritas lebih rendah.
Sebagai
contoh, struktur data yang mengendalikan beberapa PCB adalah process table.
Bisa saja beberapa PCB ditaruh pada daftar dalam waktu yang bersamaan.Process
table ini menggambarkan sistem tersebut ketika OS menemukan tiap-tiap PCB
melalui proses ID. Setiap proses dalam sebuah sistem operasi mendapatkan sebuah
PCB (Process Control Block) yang memuat informasi tentang proses tersebut,
yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor
identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses
dalam memori.
Sebagai
pendahuluan kita harus mengenal dulu apa itu Sistem Operasi,Sistem operasi
adalah seperangkat program yang mengelola sumber daya perangkat keras komputer,
dan menyediakan layanan umum untuk aplikasi perangkat lunak. Sistem operasi
adalah jenis yang paling penting dari perangkat lunak sistem dalam sistem
komputer. Tanpa sistem operasi, pengguna tidak dapat menjalankan program
aplikasi pada komputer mereka, kecuali program aplikasi booting.
Sistem
operasi mempunyai penjadwalan yang sistematis mencakup perhitungan penggunaan
memori, pemrosesan data, penyimpanan data, dan sumber daya lainnya.Untuk
fungsi-fungsi perangkat keras seperti sebagai masukan dan keluaran dan alokasi
memori, sistem operasi bertindak sebagai perantara antara program aplikasi dan
perangkat keras komputer,meskipun kode aplikasi biasanya dieksekusi langsung
oleh perangkat keras dan seringkali akan menghubungi OS atau terputus oleh itu.
Sistem operasi yang ditemukan pada hampir semua perangkat yang berisi
komputer-dari ponsel dan konsol permainan video untuk superkomputer dan server
web.
Contoh:
sistem operasi modern adalah Linux, Android, iOS, Mac OS X, dan
Microsoft Windows.
Definisi
Proses
Proses
adalah program yang sedang dieksekusi. Menurut SilberSchatz, suatu proses
adalah lebih dari sebuah kode program, yang terkadang disebut text section .
Proses juga mencakup program counter , yaitu sebuah stack untuk menyimpan
alamat dari instruksi yang akan dieksekusi selanjutnya dan register. Sebuah
proses pada umumnya juga memiliki sebuah stack yang berisikan data-data yang
dibutuhkan selama proses dieksekusi (seperti parameter method, alamat return
dan variabel lokal), dan sebuah data section yang menyimpan variabel global.
Kami
tekankan bahwa program itu sendiri bukanlah sebuah proses; suatu program adalah
satu entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam
disket. Sedangkan sebuah proses dalam suatu entitas aktif, dengan sebuah
program counter yang menyimpan alamat instruksi selanjut yang akan dieksekusi
dan seperangkat sumber daya ( resource yang dibutuhkan agar sebuah proses dapat
dieksekusi.
Setiap
proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process Control
Block) yang memuat informasi tentang proses tersebut, yaitu: sebuah tanda
pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status
proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori.
Prioritas proses merupakan suatu nilai atau besaran yang menunjukkan seberapa
sering proses harus dijalankan oleh prosesor. Proses yang memiliki prioritas
lebih tinggi, akan dijalankan lebih sering atau dieksekusi lebih dulu
dibandingkan dengan proses yang berprioritas lebih rendah. Suatu sistem operasi
dapat saja menentukan semua proses dengan prioritas yang sama, sehingga setiap
proses memiliki kesempatan yang sama. Suatu sistem operasi dapat juga mengubah
nilai prioritas proses tertentu, agar proses tersebut akan dapat memiliki
kesempatan lebih besar pada eksekusi berikutnya (misalnya: pada proses yang
sudah sangat terlalu lama menunggu eksekusi, sistem operasi menaikkan nilai
prioritasnya).
Proses
control block
Tiap
proses digambarkan dalam sistem operasi oleh sebuah process control block PCB -
juga disebut sebuah control block. PCB berisikan banyak bagian dari informasi
yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal dibawah
ini:
1.
Status
proses: status mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
2.
Program
counter: suatu stack yang berisi alamat dari instruksi selanjutnya untuk
dieksekusi untuk proses ini.
3.
CPU
register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan
komputer. Register tersebut termasuk accumulator , indeks register, stack
pointer , general-purposes register , ditambah code information pada kondisi
apa pun. Besertaan dengan program counter, keadaaan/status informasi harus
disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut
berjalan/bekerja dengan benar setelahnya
4.
Informasi
managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai
dari dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung
pada sistem memori yang digunakan oleh sistem operasi
5.
Informasi
pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang
digunakan, batas waktu, jumlah akun jumlah job atau proses, dan banyak lagi.
6.
Informasi
status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada
proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
7.
PCB
hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari
proses yang satu dengan yang lain.
Gambar Proses Control Blok
Elemen-elemen
dari Process Control Block (PCB) :
1.Identifier
: menjelaskan proses yang sedang terjadi
2.State
: kondisi yang terjadi pada proses
3.Priority
: urutan perintah yang jelas pad suatu proses
4.Program
counter : instruksi pada proses
5.Memory
pointers : media penyimpanan (penunjuk alamat) pada proses
5.Context
data : data yang berkaitan dengan proses
6.I/O
status information : terdapat masukan dan keluaran yang diinginkan
7Accounting
information : memberikan informasi yang dibutuhkan
Macam-Macam
Jenis Status Proses
Jenis
status yang mungkin dapat disematkan pada suatu proses pada setiap sistem operasi
dapat berbeda-beda. Tetapi paling tidak ada 3 macam status yang umum, yaitu:
1.
.Ready
adalah status dimana proses siap untuk dieksekusi pada giliran berikutnya
2.
Running
adalah status dimana saat ini proses sedang dieksekusi oleh prosesor
3.
Blocked
adalah status dimana proses tidak dapat dijalankan pada saat prosesor
siap/bebas.
Identifikasi Proses yaitu Identifier numerik yang meliputi
a. Identifier proses
b. Identifier proses yang menciptakan
c. Identifier pemakai
SUMBER:
http://femmifirdausahdiat.blogspot.com/2012/09/pcb-process-control-block.html
4. DISTRIBUTED PROCESSING
Distributed
Data Processing System yang dalam bahasa indonesianya Sistem pengolahan data
terdistribusi. Merupakan Sekumpulan komputer yang saling berkoneksi untuk
memenuhi kebutuhan pengolahan informasi dari satu entity perusahaan atau
organisasi modern. Didukung oleh komputer dan komunikasi, sistem pengolahan
data terdistribusi merupakan media pelayanan data.
Sistem
pengolahan data terdistribusi dalam arti lain yaitu meletakan sumber daya
komputer pada tempat dimana user berada, dimana sumber daya tersebut
secara geografis terpisah dan saling interkoneksi secara on-line
atau secara langsung.
Sumber
Daya Pengolahan Data Dalam Sistem Terdistribusi
Apa yang dimaksud sumber daya
pengolahan data dalam sistem terdistribusi? Adapun yang dimaksud dengan Sumber
daya yang didistribusikan yaitu berupa sumber daya Platform (Hardware
dan Software System), Aplikasi atau Proses dan Data atau Database.
Terminologi sistem pengolahan datanya dapat berbentuk distribusi horisontal
(setiap node komputer atau jaringan mempunyai kedudukan yang sama dengan node
lainnya).Sedangkan distribusi vertical dimana ada penjenjangan atau
hirarki antar node di setiap lokasi, misalnya kantor pusat, kantor wilayah,
kantor cabang dan unit lebih kecil lainnya yang terdistribusi hirachical
secara komputasi.
Diperlukan jaringan komunikasi
komputer pada sistem pengolahan data terdistribusi untuk dapat Sistem
pengolahan data terdidtribusi dibangun pada top of network, sedemikian
rupa sehingga jaringan tidak nampak pada user. User tidak perlu
tahu kerumitan pengelolaan jaringan, semuanya sudah dilakukan secara otomatik
oleh sistem.
Sistem pengolahan data terdistribusi
dapat diakses oleh pengguna dengan menggunakan dua aplikasi yaitu berupa
aplikasi lokal dan aplikasi global, sehingga distributed data processing
system memiliki karakteristik yaitu :
- Kumpulan dari data logik yang digunakan bersama-sama.
- Data di bagi menjadi beberapa fragment.
- Fragment mungkin mempunyai copy ( replika ).
- Fragment / replika nya di alokasikan pada yang digunakan.
- Setiap site berhubungan dengan jaringan komunikasi.
- Data pada masing-masing site dibawah pengawasan DBMS.
- DBMS pada masing-masing site dapat mengatasi aplikasi lokal, secara otonomi.
- Masing-masing DBMS berpastisipasi paling tidak satu global aplikasi.
Pengaruh Distributed Data Processing System Pada Organisasi
- Meningkatkan kemampuan komputasi
- Meningkatkan kemampuan Data Storage
- Memungkinkan kerja lebih efisien
- Meningkatkan End-user, manajemen punya otoritas lebih
Masalah pada End-User
Banyak End-user merasa tidak puas terhadap pelayanan dari organisasi Sentralisasi Data Prosesing :- Harus membuat/mengisi aplikasi form.
- Menunggu proses yang lama.
- Tidak dapat mengakses ke komputer setiap saat dimana ia membutuhkan.
Persyaratan & Tujuan pendukung System Pengolahan Data Terdistribusi
- Penggunaan komputer Mini & Mikro(dimana interkoneksi micro computer, mini computer dan large computer lebih efektif biayanya).
- Pemakaian teknik Database. (dapat sharing data oleh banyak user).
- Corporation wide work.
- Struktur jaringan yang fleksibel.
- Penggunaan standard line control & network architecture.
Contoh Sistem Pengolahan Data terdistribusi
- Internet
- Jaringan komputer dan aplikasi yang heterogen.
- Mengimplementasikan protokol internet.
- Intranet
- Jaringan yang teradminitrasi secara lokal.
- Terhubung ke internet melalui feriwall.
- Menyediakan layanan internet dan eksternal.
- Mobile Computing ( Sistem Komunikasi telepon seluler)
- Menggunakan frekuensi radio sebagai media transmisi
- Perangkat dapat bergerak kemanapun asal masih terjangkau dengan frekuensinya
- Dapat menghandle/dihububngkan dengan perangkat lain
- Sistem Telepon
- ISDN atau yang biasa disebut jaringan telpon tetap (dengan kabel).
- PSTN jaringan telepon/telekomunikasi yang semuanya digital.
- Network File System (NTFS)
- WWW
- Arsitektur client server yang diterpakan dalam infrastruktur internet
Contoh Impementasi Distributed Data Processing System
Aplikasi facebook.Com yang biasa anda gunakan untuk bersosialisai dengan saudara, kawan dan orang di seluruh dunia melalui internet. Bila kita lihat aplikasi tersebut, database tidak didistribusikan, tetapi proses sistem dan penggunaan fungsi-fungsi atau feature pada sistem terpisah-pisah prosesnya tidak satu proses saja dalam satu waktu. Pada waktu tertentu ada orang yang sedang isi status, dan mungkin di waktu yang sama ada sedang mencari teman, ada yang mengupload foto dan sebagainya. Tampak disini beberapa proses pada sistem terdistribusi pada setiap client yang berbeda.
CONTOH:
ATM, komputer yang
dirancang untuk tugas-tugas melaksanakan proyek, analisis finansial,
penjadwalan waktu dan akuntansi. Contoh lainnya, pengolahan data pada server
yahoo yang tersebar hampir di seluruh dunia secara distribusi, setiap wilayah
mempunyai server masing-masing. Seperti di indonesia mempunyai server
tersendiri sehingga pengolahan data tidak di pusat melainkan di wilayah
masing-masing, dll.
SUMBER:
5. HANDHELD
Handheld
computer adalah komputer yang cukup kecil sehingga dapat digenggam.
Komputer genggam ini dapat bekerja dengan fungsi yang hampir sama dengan
komputer biasa. Meskipun sangat mudah untuk dibawa, komputer genggam tidak
dapat menggantikan komputer biasa (PC) karena hanya memiliki keyboard dan layar
yang kecil. Beberapa produsen mencoba untuk memecahkan masalah keyboard yang
terlalu kecil. Keyboard tersebut diganti dengan electronic pen.
Bagaimanapun,electronic pen ini masih bergantung pada teknologi
pengenalan tulisan tangan yang masih dalam tahap pengembangan.
Kelebihan
dari komputer genggam ini adalah pengguna dapat menyimpan serta mengatur data
dengan lebih efisien dan akurat. Biasanya komputer genggam dilengkapi dengan
teknologi Bluetooth. Bluetooth memang tepat untuk mencetak secara nirkabel,
menghubungkan antara komputer genggam dengan mobile printer. Tidak
hanya dengan printer tetapi komputer genggam juga dapat dihubungkan dengan
alat-alat lain melalui koneksi Bluetooth.
Komputer
genggam dapat meningkatkan produktivitas pengguna dan memudahkan mereka untuk
bekerja lebih efisien. Komputer genggam yang paling banyak digunakan adalah
komputer yang khusus dirancang untuk menyediakan fungsi PIM (Personal
Information Manager), seperti kalender, agenda, dan buku alamat.
Perkembangan System Handheld
Sekitar tahun 1990-an
dikembangkan sistem yang lebih kecil dari mikrokompuer yang disebut dengan
sistem handheld dalam
bentuk personal
digital assistants (PDA).
Pada beberapa sistem terdapat telepon selular. Sistem ini mempunyai memory yang
terbatas, prosessor dengan kecepatan rendah dan display screen yang kecil.
Personal Digital Assistants disingkat PDA adalah sebuah alat elektronik yang
berbasis komputer dan berbentuk kecil serta dapat dibawa kemana-mana. PDA
banyak digunakan sebagai pengorganisir pribadi pada awalnya, tetapi karena
perkembangannya, kemudian bertambah banyak fungsi kegunaannya, seperti
kalkulator, penunjuk jam dan waktu, permainan komputer, pengakses internet,
penerima dan pengirim surat elektronik (e-mail), penerima radio, perekam video,
dan pencatat memo. Selain dari itu dengan PDA (komputer saku) ini, kita dapat
menggunakan buku alamat dan menyimpan alamat, membaca buku-e, menggunakan GPS
dan masih banyak lagi fungsi yang lain. Bahkan versi PDA yang lebih canggih
dapat digunakan sebagai telepon genggam, akses internet, intranet, atau
extranet lewat Wi-Fi atau Jaringan Wireless. Salah satu ciri khas PDA yang
paling utama adalah fasilitas layar sentuh.
Bertahun-tahun dunia PDA membeku. Lalu Palm Inc. meluncurkan PDA
pertamanya di tahun 1996. Peluncuran inilah yang kemudian mengubah nasib PDA
dan sekaligus mendongkrak popularitas PDA di jagad elektronik.
Alat genggam yang disinergikan dengan operating system
(OS) Palm ini menuai sukses luar biasa. Kemudahan sinkronisasi dengan PC dan
pendekatan pengoperasian berbasis ikon membuat banyak pengguna merasakan
kegunaan alat yang satu ini, lebih daripada sekedar sebuah piranti genggam
biasa.
Dalam jangka waktu enam tahun, pertumbuhan PDA sendiri boleh
dikatakan luar biasa, meskipun tentu saja tak secepat perangkat komputer pada
umumnya. Selama kurun waktu tersebut, PDA terus tumbuh, baik dari sisi
teknologi maupun bisnis. contoh sistem operasi yang digunakan. Palm OS
saat ini masih merupakan pemain yang paling dominan. Merek-merek yang
menggunakan OS ini antara lain adalah Palm sendiri, Sony, IBM dan Handspring.
Berikutnya
adalah WindowsCE atau sekarang disebut PocketPC. Operating system
khusus untuk PDA atau PocketPC ini dibuat oleh Microsoft, karena itu tampilan
pada versi PocketPC 2002 hampir mnyerupai tampilan pada Windows XP. Sebagai
catatan popularitas PocketPC kini terdongkrak cukup kuat seiring dengan
komitmen Microsoft yang besar terhadap perkembangan sistem operasi ini. Merek
yang menggunakan OS ini antara lain HP, Compaq, Casio, dan Siemen.
Sejarah Perkembangan System Handheld
- 1993 Ponsel pintar yang pertama, IBM Simon, memiliki fitur layar sentuh, email, dan fitur PDA dirilis.
- 1996 Palm Pilot 1000 personal digital assistant(PDA) diperkenalkan pertama kali dengan sistem operasi Palm OS.
- 1996 PC handled pertama dengan sistem Windows CE diperkenalkan.
- 2000 Symbian menjadi sistem operasi genggam modern pertama pada ponsel pintar dengan munculnya Ericsson R380.
- 2001 The Kyocera 6035 menjadi ponsel pintar pertama yang menggunakan Palm OS.
- 2002 Microsoft Windows CE versi Pocket PC untuk ponsel pintar diperkenalkan.
- 2002 BlackBerry merilis ponsel pintar pertamanya.
- 2007 Apple iPhone dengan iOS pertama kali diperkenalkan.
- 2008 OHA merilis Android 1.0 dengan HTC Dream (T-Mobile G1) sebagai ponsel Android yang pertama.
- 2009 Palm memperkenalkan webOS melalui Palm Pre.
- 2009 Samsung memperkenalkan Bada OS melalui Samsung S8500.
- 2010 Windows Phone OS dirilis.
Fungsi
PDA
Pertama dan terutama fungsi dari sebuah piranti genggam semacam PDA adalah untuk mengelola informasi atau data. Lebih spesifik lagi karena namanya juga Personal Digital Assistant, maka data yang dikelolanya pun bersifat personal. Diantaranya alamat, nomor telepon, alamat e-mail, jadwal kegiatan dan daftar kegiatan yang harus kita kerjakan. Baru setelah fungsi itu PDA dikembangkan sehingga lebih memainkan peran sebagai subnotebook. tentu saja fungsi yang selama ini diperankan oleh organizer juga termasuk didalamnya, seperti jam, kalkulator dan kalender.
Sebagian besar PDA dapat disinkronisasikan kedalam komputer
desktop atau notebook, sehingga kita dapat me-maintenace informasi/data
kita dan meng-update-nya kedalam komputer baik yang ada dikantor maupun
yang ada dirumah.
Saat ini, handheld keluaran terbaru sudah mampu
berperan sebagai alat memainkan musik, pemutar musik MP3 (MP3 player),
membaca buku elektronik (eBook Reader) bahkan memainkan video
streaming. Dengan kemampuan grafis yang tidak lagi hitam putih, handheld
ini sudah melebihi tanggung jawabnya sebagai Asisten Pribadi sesuai dengan
namanya, namun walau begitu jangan sekali-kali menyamakan kemampuan PDA dengan
notebook apalagi PC desktop.
Sistem Kerja PDA
Sebagai komputer genggam, PDA memiliki processor dan
sistem operasi layaknya komputer biasa. Sistem operasi ini merupakan peranti
lunak utama pada PDA. Cara kerjanya sama seperti sitem operasi pada
komputer seperti Windows XP atau Mac OS, tetapi didesain khusus untuk
PDA. Terdapat dua kesamaan sistem operasi pada PDA yaitu Palm dan Pocket PC
(Windows Mobile). Keduanya bekerja dengan program piranti lunak yang
berbeda, jadi walaupun berisikan banyak dokumen seperti gambar, musik dan
lainnya yang bisa dipakai namun tidak pada pemrogaman. Pada penyimpanan data
tanpa kartu memori, data disimpan dalam RAM dengan ukuran puluhan
MegaByte, sedangkan sumber
energinya berasal dari baterai (dulunya A3) isi ulang. Selain itu, bisa juga
menggunakan adaptor yang disambungkan ke stop kontak AC.
Kegunaan PDA
o
Telekomunikasi
o
Informasi
o
Pendidikan
o
Olahraga
Fitur yang terdapat dalam PDA
o
Layar sentuh
o
GPS
o
PCPocket
o
Koneksi Nirkabel
o
Agenda
o
Memory
o
LAN
o
Surel
o
Hiburan
o
Kamera
o
Sinkronisasi
Keuntungan dan Kelemahan menggunakan
PDA
Keuntungan.
Ukuran kecil dan ringan, piranti ini jelas menjadi penopang mobilitas kerja, sehingga kita bisa membawanya kemana-mana dan dimana saja kita dapat melakukan kerja dengan piranti ini. Sebagian aplikasi berharga murah bahkan ada yang dapat di-download secara gratis dari Internet.Aksesoris dan Perlengkapan. Sebagian aksesoris dan perlengkapan umumnya dapat diperoleh dengan gampang.Instant. Proses booting tidak memakan waktu yang lama dibandingkan desktop atau notebook.Baterai. Umur baterai tergantung model, tapi pada umumnya PDA punya ketahanan digunakan minimal sehari tanpa dicolokkan ke listrik. Bahkan ada yang bisa diganti dengan baterai alkaline biasa.Sinkronisasi Desktop. Anda bisa melakukan sinkronisasi data antara PDA dengan PC secara gampang dan praktis.Wireless. Sebagian piranti PDA dilengkapi fasilitas teknologi tanpa kabel sehingga memudahkan kita bekerja di mana saja.Sinyal Infrared. Memudahkan fasilitas transfer data tanpa perlu kabel atau peranti tambahan lainnya.Cukup satu alat. Dengan alat ini, kita tidak perlu menenteng buku, kalender, arloji, bahkan ponsel, karena saat ini ada PDA yang sudah ter-integrasi dengan ponsel.
Kelemahan.
Ukuran dan berat Lantaran berukuran terlalu kecil, kadangkala Kita lupa menaruhnya dimana, atau terjatuh ketika kita simpan didalam saku kemeja atau bahkan kita benar-benar kehilangan piranti yang satu ini. Hampir semua OS di handheld tidak bisa di-upgrade layaknya OS di PC desktop atau notebook.Aksesoris dan perlengkapan. Lantaran terlalu banyak aksesoris dan perlengkapan, terkadang justru membuat ribet dan berat, apalgi jika kita sering bergerak mobile.Input Data. Proses meng-input data lebih lambat, baik menggunakan pena stylus maupun dengan kibor mini. jauh lebih kikuk dibanding input data di PC.Baterai. Bila kita mencolokkan piranti ini ke sumber listrik AC terlalu lama, umur batre akan merosot lebih cepat dibanding umur normalnya.Kenampakan layar. Sebagian PDA memang memiliki layar yang bagus, tetapi sebagian besar layar PDA sangat susah dibaca ketika berada dibawah terik sinar matahari.Kerusakan layar. Layar PDA biasanya sensitif terhadap goresan. kadangkala sensitifnya berlebihan sehingga layarnya mudah rusak.Standarisasi. Standarisasi PDA terlalu banyak, mulai dari hardware-nya maupun software-nya, sehingga meyulitkan untuk pengembangan lebih lanjut.Perubahan yang cepat. Perkembangan yang cepat mebuat kita kadangkala merasa sayang membeli alat yang secara teknologis tidak berumur lama.
Ukuran kecil dan ringan, piranti ini jelas menjadi penopang mobilitas kerja, sehingga kita bisa membawanya kemana-mana dan dimana saja kita dapat melakukan kerja dengan piranti ini. Sebagian aplikasi berharga murah bahkan ada yang dapat di-download secara gratis dari Internet.Aksesoris dan Perlengkapan. Sebagian aksesoris dan perlengkapan umumnya dapat diperoleh dengan gampang.Instant. Proses booting tidak memakan waktu yang lama dibandingkan desktop atau notebook.Baterai. Umur baterai tergantung model, tapi pada umumnya PDA punya ketahanan digunakan minimal sehari tanpa dicolokkan ke listrik. Bahkan ada yang bisa diganti dengan baterai alkaline biasa.Sinkronisasi Desktop. Anda bisa melakukan sinkronisasi data antara PDA dengan PC secara gampang dan praktis.Wireless. Sebagian piranti PDA dilengkapi fasilitas teknologi tanpa kabel sehingga memudahkan kita bekerja di mana saja.Sinyal Infrared. Memudahkan fasilitas transfer data tanpa perlu kabel atau peranti tambahan lainnya.Cukup satu alat. Dengan alat ini, kita tidak perlu menenteng buku, kalender, arloji, bahkan ponsel, karena saat ini ada PDA yang sudah ter-integrasi dengan ponsel.
Kelemahan.
Ukuran dan berat Lantaran berukuran terlalu kecil, kadangkala Kita lupa menaruhnya dimana, atau terjatuh ketika kita simpan didalam saku kemeja atau bahkan kita benar-benar kehilangan piranti yang satu ini. Hampir semua OS di handheld tidak bisa di-upgrade layaknya OS di PC desktop atau notebook.Aksesoris dan perlengkapan. Lantaran terlalu banyak aksesoris dan perlengkapan, terkadang justru membuat ribet dan berat, apalgi jika kita sering bergerak mobile.Input Data. Proses meng-input data lebih lambat, baik menggunakan pena stylus maupun dengan kibor mini. jauh lebih kikuk dibanding input data di PC.Baterai. Bila kita mencolokkan piranti ini ke sumber listrik AC terlalu lama, umur batre akan merosot lebih cepat dibanding umur normalnya.Kenampakan layar. Sebagian PDA memang memiliki layar yang bagus, tetapi sebagian besar layar PDA sangat susah dibaca ketika berada dibawah terik sinar matahari.Kerusakan layar. Layar PDA biasanya sensitif terhadap goresan. kadangkala sensitifnya berlebihan sehingga layarnya mudah rusak.Standarisasi. Standarisasi PDA terlalu banyak, mulai dari hardware-nya maupun software-nya, sehingga meyulitkan untuk pengembangan lebih lanjut.Perubahan yang cepat. Perkembangan yang cepat mebuat kita kadangkala merasa sayang membeli alat yang secara teknologis tidak berumur lama.
Sistem Kerja PDA
Sebagai komputer genggam, PDA
memiliki processor dan sistem operasi layaknya komputer
biasa. Sistem operasi ini merupakan peranti lunak utama
pada PDA. Cara kerjanya sama seperti sitem operasi pada komputer seperti Windows XP atau
Mac OS, tetapi didesain khusus untuk PDA. Terdapat dua kesamaan sistem operasi
pada PDA yaitu Palm dan Pocket
PC (Windows Mobile).
Keduanya bekerja dengan program piranti lunak yang berbeda, jadi walaupun
berisikan banyak dokumen seperti gambar, musik dan lainnya yang bisa dipakai
namun tidak pada pemrogaman. Pada penyimpanan data tanpa kartu memori, data
disimpan dalam RAM dengan ukuran puluhan MegaByte,
sedangkan sumber energinya berasal dari baterai (dulunya A3) isi ulang. Selain
itu, bisa juga menggunakan adaptor yang disambungkan ke stop kontak AC.
SUMBER:
6. THREAD
Suatu proses didefinisikan oleh resource yang digunakan dan
lokasi yang akan dieksekusi. Namun ada kalanya proses-proses akan menggunakan
resource secara bersama-sama. Suatu unit dasar dari CPU utilization yang berisi
program counter, kumpulan register, dan ruang stack disebut dengan thread atau
lighweight process(LWP). Thread akan bekerja sama dengan thread lainnya dalam
hal penggunaan bagian kode, bagian data, dan resource sistem operasi, seperti
open file dan sinyal secara kolektif yang sering disebut dengan task.
- Thread adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh sistem operasi.
- Merupakan sebuah status eksekusi (ready, running, suspend, block, queue, dll)
- Kadang disebut sebagai proses ringan (lightweight).
- Unit dasar dari dari sistem utilisasi pada processor (CPU).
- Dalam thread terdapat: ID Thread, Program Counter, Register dan Stack.
- Sebuah thread berbagi code section, data section dan resource sistem operasi dengan thread yang lain yang memiliki proses yang sama.
Single-Threading dan
Multi-Threading
• Single-Threading
adalah sebuah lightweight process (proses sederhana) yang
mempunyai thread tunggal yang berfungsi sebagai pengendali/ controller.
• Multi-Threading
adalah proses dengan thread yang banyak dan mengerjakan
lebih dari satu tugas dalam satu waktu.
Dalam gambar tersebut terlihat
perbedaan antara single thread dengan multi thread. Setiap thread dapat
melakukan proses tersendiri, sehingga proses yang semula besar dipecah ke dalam
proses kecilkecil, sedangkan pada single thread hanya ada 1 thread yang
menangani proses yang besar. Tentu multithread akan lebih cepat dari pada
single thread, namun dalam kasus tertentu terlalu banyak multithread justru
memperlambat kerja atau proses.
Keuntungan Multi-Threading
1. Responsive; tanggap : Multi-Threading mengizinkan program
untuk berjalan terus walau-pun pada bagian program tersebut di block atau
sedang dalam keadaan menjalankan operasi yang lama/panjang. Sebagai contoh,
multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu
thread ketika suatu gambar sedang diload oleh thread yang lain.
2. Pembagian sumber daya : Secara default, thread membagi
memori dan sumber daya dari proses. Ketika thread berjalan pada data yang sama,
thread tersebut bisa berbagi cache memory.
3. Ekonomis : Mengalokasikan memori dan sumber daya untuk
membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi sumber
daya dari proses, ini lebih ekonomis untuk membuat threads.
4. Pemberdayaan arsitektur multiprosesor: Keuntungan dari
multi-threading dapat ditingkatkan dengan arsitektur multiprosesor, dimana
setiap thread dapat jalan secara paralel pada prosesor yang berbeda. Pada
arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread
dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya
hanya satu thread yang berjalan di setiap waktu.
2.4 Thread dalam Sistem Operasi
• Sistem operasi telah mendukung proses multithreading.
• Setiap sistem operasi memiliki konsep tersendiri dalam
pengimplementasiannya.
• Sistem operasi dapat mendukung thread pada tingkatan
kernel maupun tingkatan pengguna.
Model Multi-Threading
1. Many-to-One
Model manytoone ini memetakan beberapa tingkatan pengguna
thread hanya ke satu buah kernel thread. Managemen proses thread dilakukan oleh
(di ruang) pengguna, sehingga menjadi efisien, tetapi apabila sebuah thread
melakukan sebuah pemblokingan terhadap sistem pemanggilan, maka seluruh proses
akan berhenti (blocked). Kelemahan dari model ini adalah multihreads tidak
dapat berjalan atau bekerja secara paralel di dalam multiprosesor dikarenakan
hanya satu thread saja yang bisa mengakses kernel dalam suatu waktu.
2. One-to-One
Model onetoone memetakan setiap thread pengguna ke dalam
satu kernel thread. Hal ini membuat model onetoone lebih sinkron daripada
model manytoone dengan mengizinkan thread lain untuk berjalan ketika suatu
thread membuat pemblokingan terhadap sistem pemanggilan; hal ini juga
mengizinkan multiple thread untuk berjalan secara parallel dalam multiprosesor.
Kelemahan model ini adalah dalam pembuatan thread pengguna dibutuhkan pembuatan
korespondensi thread pengguna. Karena dalam proses pembuatan kernel thread
dapat mempengaruhi kinerja dari aplikasi maka kebanyakan dari implementasi
model ini membatasi jumlah thread yang didukung oleh sistem. Model onetoone
diimplementasikan oleh Windows NT dan OS/2.
3. Many-to-Many
Beberapa tingkatan thread pengguna dapat menggunakan jumlah
kernel thread yang lebih kecil atau sama dengan jumlah thread pengguna. Jumlah
dari kernel thread dapat dispesifikasikan untuk beberapa aplikasi dan beberapa
mesin (suatu aplikasi dapat dialokasikan lebih dari beberapa kernel thread
dalam multiprosesor daripada dalam uniprosesor) dimana model manytoone
mengizinkan pengembang untuk membuat thread pengguna sebanyak mungkin,
konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan
oleh kernel dalam satu waktu. Model onetoone mempunyai konkurensi yang lebih
tinggi, tetapi pengembang harus hatihati untuk tidak membuat terlalu banyak
thread tanpa aplikasi dan dalam kasus tertentu mungkin jumlah thread yang dapat
dibuat dibatasi.
Thread cancellation
Thread cancellation/ pembatalan thread ialah pemberhentian
thread sebelum tugasnya selesai. Misalnya jika dalam program Java hendak
mematikan Java Virtual Machine (JVM). Sebelum JVM dimatikan, maka seluruh
thread yang berjalan harus dihentikan terlebih dahulu. Thread yang akan
diberhentikan disebut sebagai target thread. Pembatalan Thread terdiri dari 2 jenis:
1. Asynchronous cancellation: suatu thread seketika itu juga
memberhentikan target thread.
2. Deffered cancellation: target thread secara perodik
memeriksa apakah dia harus berhenti, cara ini memperbolehkan target thread
untuk memberhentikan dirinya sendiri secara terurut.
2.7 Thread Pools
Thread Pools adalah cara kerja dengan membuat beberapa
thread pada proses startup dan menempatkan mereka ke pools.
Keuntungan menggunakan Thread Pools
• Biasanya lebih cepat untuk melayani permintaan dengan
thread yang ada dibanding dengan menunggu thread baru dibuat.
• Thread pool membatasi jumlah thread yang ada pada suatu
waktu. Hal ini penting pada sistem yang tidak dapat mendukung banyak thread
yang berjalan secara concurrent.
THREADS PADA WINDOWS
Windows mengunakan Win32 API
sebagai API utama dalam hampir semua sistem operasi Microsoft. Selain itu
windows mengimplementasi model relasi One-to-One, dimana terdapat satu kernel
thread yang berasosiasi dengan masing – masing user thread. Thread pada windows
secara umum mempunyai komponen sebagai berikut :
•
Thread ID
•
Register set
•
User stack dan kernel stack
•
Private storage area.
Register set, stacks dan private
data storage disebut sebagai context dari sebuah thread. Struktur data utama
dari sebuah thread :
•
ETHREAD (executive thread block)
•
KTHREAD (kernel thread block)
•
TEB (thread environment block)
ETHREAD (executive
thread block)
Bagian penting dari ETHREAD adalah KTHREAD, Process ID,
Thread start address. Blok KTHREAD merupakan pointer yang merujuk pada kernel
thread (KTHREAD), Process ID juga merupakan suatu pointer yang menunjuk pada
proses utama yang memiliki thread tersebut dan Thread start address adalah
alamat dari rutin awal thread.
KTHREAD (kernel thread block)
KTHREAD menyimpan informasi yang
dibutuhkan oleh kernel untuk dapat melakukan penjadwalan dan sinkronisasi
thread. Pada KTHREAD juga terdapat kernel stack, yang mana akan digunakan
ketika thread berjalan pada kernel mode. Juga terdapat pointer yang menunjuk
TEB.
TEB (thread environment block)
TEB menyimpan informasi image loader dan beberapa DLLs dari
windows. Komponen - komponen ini berjalan pada user mode, maka dibutuhkan suatu
struktur data yang dapat dimanipulasi(writable) pada user mode. Oleh karena
itu, tidak seperti KTHREAD dan ETHREAD yang berada pada kernel space, TEB
berada pada user space.
Contoh Thread pada Sistem Operasi Windows
- exe : Thread 29, Proses dari aplikasi chatting Line.
- exe : Thread 12, Proses dari aplikasi Google Chrome.
- System : Thread 117, Proses yang merupakan menggambarkan sistem yang bertanggung jawab atas memori sistem dan memori terkompresi pada kernel NT.
CONTOH:
sebuah web browser
mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang
lain berfungsi sebagai penerima data dari network. sebuah web server dapat
mempunyai ratusan klien yang mengaksesnya secara concurrent. Kalau web server
berjalan sebagai proses yang hanya mempunyai thread tunggal maka ia hanya dapat
melayani satu klien pada pada satu satuan waktu. Bila ada klien lain yang ingin
mengajukan permintaan maka ia harus menunggu sampai klien sebelumnya selesai
dilayani. Solusinya adalah dengan membuat web server menjadi multi-threading.
Dengan ini maka sebuah web server akan membuat thread yang akan mendengar
permintaan klien, ketika permintaan lain diajukan maka web server akan
menciptakan thread lain yang akan melayani permintaan tersebut.
SUMBER:
Comments
Post a Comment