Penjelasan Dan Contoh dari Batch System, Critical Section, Process Control Block, Distributed Processing, Hanheld dan Thread
BATCH SYSTEM
BATCH SYSTEM
PENGERTIAN BATCH SYSTEM
Batch system adalah dimana job-job yang mirip dikumpulkan dan dijalankan
secara kelompok kemudian setelah kelompok yang dijalankan tadi selesai maka
secara otomatis kelompok lain dijalankan. jadi dengan kata lain adalah
teknologi proses komputer dari generasi ke-2. yang jika suatu tugas sedang
dikerjakan pada 1 rangkaian, akan di eksekusi secara berurutan. Pada komputer
generasi ke-2 sistem komputer nya maasih blum dilengkapi oleh sebuah sistem
operasi. But, dalan beberapa fungsi sistem operasi, seperti os yang tengah
berkembang pada jaman sekarang ini. Contohnya adlah FMS ( Fortarn Monitoring
System ) dan IBSYS.
Jadi bisa disimpulkan, bahwa
komputer generasi ke-2 ini merupakan generasi pertama Sistem Operasi.
CONTOH
BATCH SYSTEM
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.
ADA
2 CARA DALAM BATCH SYSTEM, yaitu :
1. Resident
Monitor
a.
Operator
bertugas mengatur urutan job
b.
Job-job yg sama cukup dicetak sekali saja,
cara inilah yg disebut “Batch system”
Teknik pengurutan
job secara manual ini akan menyebabkan tingginya waktu menganggur CPU. Muncul
teknik pengurutan job otomatis yg mampu mentransfer secara otomatis dari suatu
proses ke proses lainnya.Program kecil dan bersifat residen dimemori serta
berisi urutan2 job yg akan berpindah secara otomatis, inilah “Resident Monitor”
2. Overlap
Operasi antara I/O dg CPU
a.Off
line Processing, data yg dibaca dari card reader disimpan dulu dalam tape
driver sebelum dibawa ke CPU, demikian pula informasi yg mau dicetak, disimpan
dulu di tape.
b.Spooling adalah
suatu program dapat dikerjakan walaupun I/O masih mengerjakan proses
lainnya dan disk secara bersamaan menggunakan data untuk banyak proses.
Pengertian multi programming adalah kegiatan menjalankan beberapa program pada
memori pada satu waktu.
MULTIPROGRAMMING
SYSTEM
Multi programming
system adalah dimana job-job disimpan di main memory di waktu yang sama dan CPU
dipergunakan bergantian. Hal ini membutuhkan beberapa kemampuan tambahan yaitu
: Penyediaan I/O routine oleh sistem, Pengaturan memori untuk mengalokasikan
memory pada beberapa Job, penjadwalan CPU untuk memilih job mana yang akan
dijalankan, serta pengalokasian hardware lain.
Multiprogramming berarti meletakkan lebih dari sebuah program di main memory. Cara ini dilakukan dengan membagi main memory menjadi beberapa partisi. Tiap partisi akan menyimpan sebuah program. Foreground partitions akan berisi program dengan prioritas yang lebih tinggi sedang background partitions akan berisi program dengan prioritas yang lebih rendah.
Multiprogramming berarti meletakkan lebih dari sebuah program di main memory. Cara ini dilakukan dengan membagi main memory menjadi beberapa partisi. Tiap partisi akan menyimpan sebuah program. Foreground partitions akan berisi program dengan prioritas yang lebih tinggi sedang background partitions akan berisi program dengan prioritas yang lebih rendah.
Meskipun setiap proses
merupakan Entitiy yang berdiri sendiri, dan masing-masing memiliki program
Counter dan status internal, beberapa proses sering kali harus berinteraksi
dengan proses yang lain. Keluaran dari suatu proses dapat menjadi masukan bagi
proses yang lain. Jika proses yang sedang menunggu masukan tidak menemukan
masukan yang dikehendaki, proses tersebut diblok sampai masukan tersedia.
Pada saat proses diblok, secara logika proses tersebut tidak dapat dilanjutkan karena menuggu masukan yang belum tersedia. Dapat terjadi bahwa proses yang Ready dan dapat di-run terpaksa harus dihentikan karena sistem operasi arus mengalokasikan CPU ke proses lain untuk sementara waktu.
Pada saat proses diblok, secara logika proses tersebut tidak dapat dilanjutkan karena menuggu masukan yang belum tersedia. Dapat terjadi bahwa proses yang Ready dan dapat di-run terpaksa harus dihentikan karena sistem operasi arus mengalokasikan CPU ke proses lain untuk sementara waktu.
Proses dapat berada
pada status berikut:
Submitt: Proses baru saja dikirimkan oleh user dan masih menunggu untuk dilayani.
Running: Proses benar-benar menggunakan CPU pada saat itu.
Ready: Proses berhenti sementara untuk memberikan kesempatan pada proses lain untuk menggunakan CPU.
Blocked: Proses tidak dapat di-Run sampai terjadi kejadian eksternal yang sesuai (misalkan selesainya operasi input/output atau telah tersedianya data input).
Finished: Proses telah dilaksanakan secara sempurna.
Di antara status
Running, Ready dan Blocked, hanya terdapat 4 kemungkinan perubahan status,
yaitu:
1.Running ke Blocked: Terjadi jika proses diblok, karena menunggu masukan atau menunggu selesainya aktivitas I/O.
2.Running ke Ready: Terjadi jika Process Scheduler menghentikan proses yang sedang running untuk memberikan kesempatan pada proses lain menggunakan CPU.
3.Blocked ke Ready: Terjadi jika ada kejadian eksternal yang menyebabkan proses dapat dijalankan kembali. Misalnya datangnya input atau selesainya suatu aktifitas I/O.
4.Ready ke Running: Terjadi jika proses siap untuk menggunakan CPU dan masukan yang sesuai untuk proses tersebut telah tiba.
MULTITASKING
Multitasking adalah
adalah pemrosesan beberapa tugas pada waktu yang bersamaan.
Cara Kerja
Multitasking, Dewasa ini penggunaan time-sharing jarang digunakan, dan
digantikan dengan multitasking.
Contoh sistem operasi
jenis ini
antara lain adalah linux. Linux adalah sistem operasi yang multitasking dan
multiuser seperti kebanyakan SO yang ada pada saat ini. Multitasking pada linux
artinya linux bisa atau mampu menjalankan beberapa proses dalam waktu yang
bersamaan.
Seperti contoh pada
saat kita menjalankan aplikasi web browser kita juga bisa menjalankan aplikasi
kompresi file. Sedangkan multiuser pada linux adalah user bisa login ke dalam
sistem secara bersamaan, dengan artinya user bisa menggunakan satu sistem
secara bersamaan dalam satu waktu. Multitasking dan multiuser pada sistem
operasi merupakan satu keharusan dalam masa ini.
Keuntungan sistem ini
adalah :
1. Suatu
perintah dapat dilaksanakan secara tuntas sampai berakhir dengan prioritas
tertinggi.
2. Mampu memproses lebih dari satu perintah dalam waktu yang bersamaan.hal ini dapat terjadi karena kemampuan membagi sumber daya yang tersedia.
2. Mampu memproses lebih dari satu perintah dalam waktu yang bersamaan.hal ini dapat terjadi karena kemampuan membagi sumber daya yang tersedia.
Jika suatu perintah
datang membutuhkan sumber daya media simpan menyelesaikan perintah/pekerjaan
yang telah ditentukan, apabila datang perintah lain yang membutuhkan sumber
daya memori misalnnya, perintah tersebut dapat langsung dikerjakan tanpa
menunggu perintah sebelumnya selesai dierjakan.
Kelemahan dari sistem
ini adalah jika terdapat banyak perintah, maka akan terjadi antian perintah
yang cukup panjang. Pengguna harus menunggu perintah selesai dilaksanakan untuk
memasukkan perintah selanjutnya.
Manfaat metode ini
akan terasa ketika banyak terdapat perintah yang menggunakan sumber daya yang
berbeda, sehingga rangkaian perintah dapat diselesaikan dengan lebih cepat.
TIME
SHARING SYSTEM
Time-sharing adalah
metode dimana banyak pengguna dapat melakukan processing dalam satu komputer.
Christopher Strachy pada tahun 1959 telah memberikan ide mengenai pembagian
waktu yang dilakukan oleh CPU. Baru pada tahun 1961, pertama kali sistem yang
benar-benar berbentuk time sharing system dilakukan di MIT (Massachusetts
Institute of Technology) dan diberi nama CTSS (Compatible Time Sharing System)
yang bisa melayani sebanyak 8 pemakai dengan menggunakan omputer IBM 7090. Pada
TSS tiap-tiap User dilayani oleh komputer dengan bergiliran dalam waktu yang
sangat cepat. Sehingga tiap pemakai komputer tidak merasa bahwa komputer
melayani beberapa pemakai sekaligus secara bergiliran.
Contoh penggunaan Time Sharing System
Contoh penggunaan Time Sharing System
Salah satu penggunaan
time sharing system ini dapat dilihat dalam pemakaian suatu teller terminal
pada suatu bank. Bilamana seorang nasabah datang ke bank tersebut untuk
menyimpan uang atau mengambil uang, maka buku tabungannya ditempatkan pada
terminal. Dan oleh operator pada terminal tersebut dicatat melalui papan ketik
(keyboard), kemudian data tersebut dikirim secara langsung ke pusat komputer,
memprosesnya, menghitung jumlah uang seperti yang dikehendaki, dan mencetaknya
pada buku tabungan tersebut untuk transaksi yang baru saja dilakukan.
REAL TIME SYSTEM
Real time system
adalah suatu sistem yang mengharuskan suatu komputasi selesai dalam jangka
waktu tertentu. Jika komputasi ternyata belum selesai maka sistem dianggap
gagal dalam melakukan tugasnya.
Arsitektur Real-time System
Arsitektur Real-time System
Arsitektur sistem
real-time merupakan suatu blog diagram yang mengambarkan interkoneksi antar sistem
yang ada pada real-time. Secara garis besar dibedakan menjadi dua, yaitu bagian
statistik dan algoritma. Pada bagian algoritma terdapat sejumlan n algoritma.
Semakin kompleks suatu program, maka akan semakin banyak punya algoritma yang
bisa digunakan untuk menyelesaikan program tersebut.
Pada bagian masukan terdapat saklar selector yang digunakan untuk memilih input mana yang akan dieksekusi menggunakan algoritma 1 – n, tergantung dari keinginan kita atau tingkat komplektifitas program. Agar bisa diperoleh konsep real-time, maka ditambahkan suatu kontrol /pencatat kapan program mulai start dan kapan program tersebut harus berhenti dengan menghasilkan nilai dan waktu sesuai dengan kesepakatan batas waktu (deadline).
Pada bagian masukan terdapat saklar selector yang digunakan untuk memilih input mana yang akan dieksekusi menggunakan algoritma 1 – n, tergantung dari keinginan kita atau tingkat komplektifitas program. Agar bisa diperoleh konsep real-time, maka ditambahkan suatu kontrol /pencatat kapan program mulai start dan kapan program tersebut harus berhenti dengan menghasilkan nilai dan waktu sesuai dengan kesepakatan batas waktu (deadline).
Suatu hasil dikatakan
tepat waktu :
· Yang
meminta hasil memberitahu, hasilnya harus diserahkan sesuai dengan waktu yang
telah disepakati/ditentukan. Misalnya seorang dosen memberikian ulangan kepada
sejumlah mahasiswa dan memberikan waktu pengerjaan selama 1 jam. Apabila waktu
pengerjaan telah mencapai 1 jam, maka seluruh pekerjaan yang diberikan tadi
harus segera dukumpulkan.
· Bisa
memberikan jawaban setiap kali diminta.
· Harus
bisa memberikan jawaban yang dapat memuaskan penanya dan jawabannya harus
akurat.
· Selalu siap sedia kapanpun peminta
memerintahkan dan kapan harus diberikan oleh sistem serta dapat menjawab pada
setiap saat
Sumber :
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.
Solusi dari masalah
Critical Section harus memenuhi tiga syarat berikut:
1.
Mutual
Exclusion.
Mutual
Exclusion merupakan sebuah jalan yang menjamin jika sebuah proses sedang
menggunakan variabel atau berkas yang digunakan bersama-sama, proses lain akan
dikeluarkan dari pekerjaan yang sama. Misal proses Pi sedang menjalankan
critical section (dari proses Pi), maka tidak ada proses-proses lain yang dapat
menjalankan critical section dari proses-proses tersebut. Dengan kata lain,
tidak ada dua proses yang berada di critical section pada saat yang bersamaan.
Contoh Struktur umum dari proses Pi adalah:
do {
entry section
critical section
exit section
remainder section
} while (1);
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. Dari kode di atas, dapat kita lihat bahwa untuk bisa memasuki critical
section sebuah proses harus melalui entry section.
Gambar. ilustrasi proses Pi
2.
Terjadi Kemajuan (Progress).
Jika
tidak ada proses yang sedang menjalankan critical section-nya dan jika terdapat
lebih dari satu proses lain yang ingin masuk ke critical section, maka hanya
proses-proses yang tidak sedang menjalankan remainder section-nya yang dapat
berpartisipasi dalam memutuskan siapa yang berikutnya yang akan masuk ke
critical section, dan pemilihan siapa yang berhak masuk ke critical section ini
tidak dapat ditunda secara tak terbatas (sehingga tidak terjadi deadlock).
3.
Ada Batas Waktu Tunggu
(Bounded Waiting).
Jika
seandainya ada proses yang sedang menjalankan critical section, maka terdapat
batasan waktu berapa lama suatu proses lain harus menunggu giliran untuk
mengakses critical section. Dengan adanya batas waktu tunggu akan menjamin
proses dapat mengakses ke critical section (tidak mengalami starvation: proses
seolah-olah berhenti, menunggu request akses ke critical section
diperbolehkan).
Solusi Untuk Dua Proses:
Ada dua
jenis solusi masalah critical section, yaitu:
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.
CONTOH
CRITICAL SECTION
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];
}
|
Solusi
Untuk Proses Jamak: Algoritma Tukang Roti
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);
|
Solusi critical section harus
memenuhi ketiga syarat berikut:
·
Mutual Exclusion
·
Progress
·
Bounded Waiting
Algoritma I
dan II terbukti tidak dapat memecahkan masalah critical section untuk dua proses karena tidak memenuhi
syarat progress dan bounded
waiting. Algoritma yang dapat menyelesaikan masalah critical
sectionpada dua proses adalah Algoritma III. Sedangkan untuk masalah critical
section pada n-buah proses
dapat diselesaikan dengan menggunakan Algoritma Tukang Roti.
Sumber
:
PCB (PROCESS CONTROL BLOCK)
PENGERTIAN
PROCESS CONTROL BLOCK
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).
CONTOH
PROSES CONTROL BLOCK
Process
Control Block ini hanya berfungsi sebagai tempat penyimpanan informasi
yang dapat bervariasi dari proses yang satu dengan yang lain. Setiap
proses digambarkan dalam sistem operasi oleh sebuah Process Control Block
(PCB). PCB ini berisikan banyak informasi yang berhubungan dengan sebuah proses
yang spesifik, yaitu pointer, status proses, program counter, CPU registers,
informasi manajemen memori, informasi pencatatan, dan informasi status I/O.
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. Pointer
Merupakan perubahan dinamis dimana suatu perubahan yang akan dialokasikan
hanya pada saat diperlukan, yaitu setelah program di eksekusi.
2. Status
Proses
Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan
statis/asal). Status dari sebuah proses didefinisikan dalam bagian oleh
aktivitas yang ada dari proses tersebut. Tiap proses mungkin adalah satu dari
keadaan proses new, ready, running, waiting, terminated.
a. New
Status yang dimiliki pada saat proses baru saja dibuat oleh penjadwalan
tingkat tinggi, tetapi belum siap melakukan eksekusi.
b. Ready
Status yang dimiliki pada saat proses siap dieksekusi oleh prosesor.
c. Running
Status yang dimiliki pada saat instruksi-instruksi dari sebuah proses
dieksekusi. Proses bisa dieksekusi karena CPU tidak sedang mengerjakan tugas
yang lain.
e. Waiting
Status yang dimiliki pada saat proses menunggu suatu event (kejadian),
seperti penyelesaian I/O atau menerima signal.
f. Terminated
Status yang dimiliki pada saat proses telah selesai dieksekusi.
Hanya satu proses yang dapat berjalan pada prosesor mana pun pada satu
waktu. Namun, banyak proses yang dapat berstatus Ready atau Waiting. Ada tiga
kemungkinan bila sebuah proses memiliki status Running, yaitu:
· Jika program telah selesai dieksekusi maka status dari
proses tersebut akan berubah menjadiTerminated.
· Jika waktu yang disediakan oleh OS untuk proses tersebut
sudah habis maka akan terjadi interupsi dan proses tersebut berstatus Ready.
· Jika suatu event (kejadian) terjadi pada saat proses
dieksekusi maka proses tersebut akan menunggu event tersebut selesai dan proses
berstatus Waiting.
Diagram Status Proses:
3. Program
Counter
Program Counter menunjukkan alamat berikutnya yang akan
dieksekusi oleh suatu proses. Program Counter mengindikasikan address dari perintah
selanjutnya untuk dijalankan dan ditambah code information pada kondisi apapun.
4. CPU
Registers
Register bervariasi dalam setiap jumlah dan jenis,
tergantung pada rancangan komputer. Register tersebut termasuk dalam
accumulator, register indeks, stack pointer, general-purpose register, ditambah
kode informasi pada kondisi apa pun. Beserta dengan program counter,
keadaan/status informasi harus disimpan pada saat gangguan terjadi, untuk
memungkinkan proses tersebut berjalan / bekerja dengan benar setelahnya.
5. Informasi
Manajemen Memori
Informasi ini dapat termasuk suatu informasi sebagai
nilai dari dasar dan batas register, tabel halaman, atau tabel segmen
tergantung pada sistem memori yang digunakan oleh sistem operasi.
6. Informasi
Pencatatan
Informasi ini termasuk jumlah dari CPU dan waktu riil
yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak
lagi.
7. Informasi
Status
Informasi termasuk daftar dari perangkat M/K yang di
gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan
banyak lagi. PCB hanya berfungsi sebagai tempat penyimpanan informasi yang
dapat bervariasi dari proses yang satu dengan yang lain.
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
6. Context data : data yang berkaitan dengan proses
7. I/O status information : terdapat masukan dan keluaran
yang diinginkan
8. Accounting 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:
· Ready adalah status dimana proses siap untuk dieksekusi
pada giliran berikutnya
· Running adalah status dimana saat ini proses sedang
dieksekusi oleh prosesor
· Blocked adalah status dimana proses tidak dapat
dijalankan pada saat prosesor siap/bebas
Informasi pada Process Control Block (PCB)
Struktur
data PCB menyimpan informasi lengkap mengenai proses sehingga dapat terjadi
siklus hidup proses. Sistem operasi memerlukan banyak informasi mengenai proses
guna pengelolaan proses. Informasi ini berada di PCB. Sistem berbeda akan
mengorganisasikan secara berbeda.
Informasi-informasi
pada PCB antara lain:
1.
Informasi
Identifikasi Proses
Informasi
ini berkaitan dengan identitas proses yang berkaitan dengan tabel lainnya.
Informasi tersebut meliputi:
·
Identifier proses
·
Identifier proses yang menciptakan
·
Identifier pemakai
2.
Informasi
Status Proses
Informasi
ini tentang isi register-register pemroses. Saat proses berstatus running,
informasi tersebut berada diregister-register. Ketika proses diinterupsi, semua informasi register
harus disimpan agar dapat dikembalikan saat
proses dieksekusi kembali. Jumlah dan jenis register yang terlibat tergantung
arsitektur komputer. Informasi status proses ini terdiri dari :
· Register-Register yang Terlihat Pemakai
Yaitu register-register yang dapat ditunjuk instruksi bahasa assembly untuk
diproses pemroses.
· Register-Register Kendali dan Status
Yaitu register-register yang digunakan untuk mengendalikan operasi
pemroses, seperti program counter dan PSW.
· Pointer Stack
Setiap proses mempunyai satu atau lebih stack, yang digunakan untuk
parameter atau alamat prosedur pemanggil dan system call. Pointer stack
menunjukkan posisi paling atas dari stack.
3. Informasi Kendali Proses
Informasi
kendali proses adalah informasi lain yang diperlukan sistem operasi untuk
mengendalikan dan koordinasi beragam proses aktif. Informasi kendali terdiri
dari:
·
Informasi Penjadwalan dan Status
Informasi-informasi ini digunakan untuk menjalankan
fungsi penjadwalan, antara lain:
o
Status Proses, Mendefinisikan keadaan/status proses (running, ready,
blocked).
o
Prioritas, Menjelaskan prioritas proses.
o Informasi Berkaitan dengan Penjadwalan, Berkaitan
dengan informasi penjadwalan, seperti lama menunggu, lama proses terakhir
dieksekusi.
o
Kejadian/Event, Identitas kejadian yang ditunggu proses.
o Penstrukturan Data, satu proses dapat dikaitkan
dengan proses lain dalam satu antrian atau ring, atau struktur lainnya. PCB
harus memiliki pointer untuk mendukung struktur ini.
· Komuikasi Antar Proses
Beragam flag, sinyal dan pesan dapat
diasosiasikan dengan komunikasi antara dua proses yang terpisah.
Informasi ini disimpan di dalam PCB.
· Kewenangan Proses
Proses dapat mempunyai kewenangan berkaitan dengan memori dan tipe
instruksi yang dapat dijalankan.
· Manajemen Memori
Bagian yang berisi pointer ke tabel segmen atau page yang menyatakan memori
maya (virtual memory) proses.
· Kepemilikan dan Utilisasi Sumber Daya
Sumber daya yang dikendalikan proses harus diberi tanda, misalnya berkas
yang dibuka, pemakaian pemroses dan pemakaian sumber daya lainnya. Informasi
yang terdapat pada setiap proses meliputi Status Proses, Program Counter, CPU
Registers, Informasi Penjadwalan CPU, Informasi Manajemen Memori, Informasi
Accounting dan Informasi Status I/O.
Sumber :
PENGERTIAN
DISTRIBUTED PROCESSING
Distributed Processing
adalah kemampuan menjalankan semua proses pengolahan data secara bersama antara
komputer yang berfungsi sebagai pusat dengan beberapa komputer yang lebih kecil
dan saling dihubungkan melalui jalur komunikasi. Setiap komputer tersebut
memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara
terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian
total. Jika salah satu prosesor mengalami kegagalan atau masalah maka prosesor
yang lain akan mengambil alih tugasnya. Dalam proses distribusi sudah mutlak
diperlukan perpaduan yang mendalam antara teknologi komputer dan
telekomunikasi, karena selain proses yang harus didistribusikan, semua host
komputer wajib melayani terminal-terminalnya dalam satu perintah dari komputer
pusat.
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 saling berhubungan antar site. Jaringan komputer
adalah interkoneksi antara sejumlah komputer autonomous yang dapat
saling bertukar informasi antara komputer yang saling terhubung. Bentuk
komputer yang saling terhubung biasanya disebut dengan Node, Host atau Site. Bentuk hubungan antar komputer tidak hanya
melalui kawat tembaga saja, tetapi dapat melalui serat optic, gelombang
mikro dan satelit komunikasi
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 :
1.
Kumpulan dari data logik yang digunakan bersama-sama.
2.
Data di bagi menjadi beberapa fragment.
3.
Fragment mungkin mempunyai copy ( replika ).
4.
Fragment / replika nya di alokasikan pada yang digunakan.
5.
Setiap site berhubungan dengan jaringan komunikasi.
6.
Data pada masing-masing site dibawah pengawasan DBMS.
7. DBMS pada masing-masing site dapat mengatasi aplikasi
lokal, secara otonomi.
8. Masing-masing DBMS berpastisipasi paling tidak satu
global aplikasi.
Alasan Sistem Pengolahan Data Terdistribusi Digunakan
Dalam Berbagai Perusahaan, Organisasi Dan Perkantoran
Perkembangan
organisasi yang pada umumnya mempunyai banyak cabang yang tersebar dalam
berbagai lokasi. Dan Menginginkan untuk mengintregrasikan antar cabang-cabang
tersebut sehingga pertukaran data dan informasi dapat dilakukan dengan cepat
dan koordinasi antar cabang dapat ditingkatkan lebih baik lagi.
Distributed
data processing system juga sangat berperan, ini dikarenakan terdapat
kebutuhan dan tuntutan baik dari pihak perusahaan maupun dari sisi customer agar user dan customer dapat
berinteraksi dengan mudah.
Pengaruh Distributed Data Processing System Pada
Organisasi
1.
Meningkatkan kemampuan komputasi
2.
Meningkatkan kemampuan Data Storage
3.
Memungkinkan kerja lebih efisien
4.
Meningkatkan End-user, manajemen punya otoritas
lebih
Masalah pada End-User
Banyak End-user
merasa tidak puas terhadap pelayanan dari organisasi Sentralisasi Data
Prosesing:
1.
Harus membuat/mengisi aplikasi form.
2.
Menunggu proses yang lama.
3. Tidak dapat mengakses ke komputer setiap saat dimana ia
membutuhkan.
Persyaratan & Tujuan pendukung System Pengolahan Data
Terdistribusi
1. Penggunaan komputer Mini & Mikro(dimana interkoneksi
micro computer, mini computer dan large computer lebih efektif biayanya).
2.
Pemakaian teknik Database. (dapat sharing data oleh
banyak user).
3.
Corporation wide work.
4.
Struktur jaringan yang fleksibel.
5.
Penggunaan standard line control & network
architecture.
CONTOH
DISTRIBUTED PROCESSING
Contoh Sistem Pengolahan Data terdistribusi
1.
Internet
·
Jaringan komputer dan aplikasi yang heterogen.
·
Mengimplementasikan protokol internet.
2.
Intranet
·
Jaringan yang teradminitrasi secara lokal.
·
Terhubung ke internet melalui feriwall.
·
Menyediakan layanan internet dan eksternal.
3.
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
4.
Sistem Telepon
·
ISDN atau yang biasa disebut jaringan telpon tetap
(dengan kabel).
·
PSTN jaringan telepon/telekomunikasi yang semuanya
digital.
5.
Network File System (NTFS)
· WWW
6.
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.
Pada
penggunaan aplikasi pembayaran / transaksi online pada suatu perusahaan,
misalnya saja tiket pesawat terbang. Aplikasi tersebut juga contoh dari
aplikasi pengolahan data terdistribusi, dimana data pembayaran ada tersimpan di
database bank, sementara data tiketnya tersimpan di database server maskapai
yang menyediakan aplikasi tiket online tersebut. Jadi dapat dikatakan bila
aplikasi yang digunakan menggunakan database yang terpisah tidak satu database
saja, maka dapat dikatakan itu adalah aplikasi pengolahan data terdistribusi
atau dikenal juga dengan distributed data processing system.
Figure 6-1 The Client/Server Architecture and Distributed
Processing
Oracle client / server arsitektur dalam lingkungan
pemrosesan terdistribusi memberikan manfaat sebagai berikut:
1. Aplikasi client tidak bertanggung jawab untuk
melaksanakan setiap pengolahan data. Sebaliknya, mereka meminta masukan dari
pengguna, data permintaan dari server, dan kemudian menganalisa dan menyajikan
data ini menggunakan kemampuan tampilan dari workstation klien atau terminal
(misalnya, dengan menggunakan grafik atau spreadsheet).
2. Aplikasi client tidak tergantung pada lokasi fisik dari
data. Jika data tersebut akan dipindahkan atau didistribusikan ke server
database lain, aplikasi terus berfungsi dengan modifikasi sedikit atau tidak
ada.
3. Oracle memanfaatkan fasilitas multitasking dan
berbagi-memori sistem operasi yang mendasarinya. Akibatnya, ini memberikan
tingkat tertinggi kemungkinan konkurensi, integritas data, dan kinerja untuk
aplikasi kliennya.
4. Klien workstation atau terminal dapat dioptimalkan untuk
penyajian data (misalnya, dengan menyediakan grafis dan dukungan mouse) dan
server dapat dioptimalkan untuk pengolahan dan penyimpanan data (misalnya,
dengan memiliki sejumlah besar memori dan ruang disk) .
5. Dalam lingkungan jaringan, Anda dapat menggunakan
workstation klien murah untuk mengakses data remote dari server efektif.
6. Jika perlu, Oracle dapat ditingkatkan sebagai sistem Anda
tumbuh. Anda dapat menambahkan beberapa server untuk mendistribusikan beban
database pengolahan seluruh jaringan (horizontal skala), atau Anda dapat
memindahkan Oracle ke komputer mini atau mainframe, untuk mengambil keuntungan
dari kinerja sistem yang lebih besar itu (vertikal skala). Dalam kedua kasus,
semua data dan aplikasi yang dipertahankan dengan modifikasi sedikit atau tidak
ada, karena Oracle adalah portabel antara sistem.
7. Dalam lingkungan jaringan, data bersama disimpan pada
server, bukan pada semua komputer dalam sistem. Hal ini membuat lebih mudah dan
lebih efisien untuk mengelola akses konkuren.
8. Dalam lingkungan jaringan, aplikasi client mengirimkan
permintaan database ke server dengan menggunakan pernyataan SQL. Setelah
diterima, pernyataan SQL diproses oleh server, dan hasilnya dikembalikan ke
aplikasi klien. Jaringan lalu lintas disimpan ke minimum karena hanya
permintaan dan hasilnya dikirim melalui jaringan.
Sumber :
SISTEM OPERASI HANDHELD
PENGERTIAN
SISTEM OPERASI 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.
CONTOH
SISTEM OPERASI HANDHELD
Android adalah sebuah
sistem operasi mobile phone yang direlease oleh google. Google merupakan sebuah
perusahaan yang memiliki segudang aplikasi yang handal, seperti gmail, blogger,
webmaster tool, google analytic, google buzz, google wave, spreadsheet, dan
masih banyak lagi. Itulah yang menjadi kunci keunggulan Android OS karena
didukung oleh sebuah perusahaan terkemuka dan memiliki segudang fitur unggulan
yang saat ini banyak digunakan oleh khalayak ramai.
Kelebihan :
· Multitasking
– Android bisa menjalankan berbagai aplikasi, artinya bisa menggunakan berbagai aplikasi dalam waktu yang bersamaan.
· Notifikasi
– Setiap ada SMS, Email, atau bahkan artikel terbaru dari RSS Reader, akan
selalu ada notifikasi di Home Screen Ponsel Android, tak ketinggalan Lampu LED
Indikator yang berkedip- kedip, sehingga tidak akan terlewatkan satu SMS, Email
ataupun Misscall sekalipun.
· Akses
Mudah terhadap Ribuan Aplikasi Android lewat Google Android App Market – Jika
kita menyukai kegiatan menginstall aplikasi ataupun games, lewat Google Android
App Market, bisa mendownload berbagai aplikasi dengan gratis. Ada banyak ribuan
aplikasi dan games yang siap untuk di download di ponsel Android.
· Pilihan
Ponsel yang beranekaragam - Bicara ponsel Android, akan terasa ‘beda’
dibandingkan dengan iOS, jika iOS hanya terbatas pada iPhone dari Apple, maka
Android tersedia di ponsel dari berbagai produsen, mulai dari Sony Ericsson,
Motorola, HTC sampai Samsung. Dan setiap pabrikan ponsel pun menghadirkan ponsel
Android dengan gaya masing-masing, seperti Motorola dengan Motoblur-nya, Sony
Ericsson dengan TimeScape-nya.
· Bisa
menginstal ROM yang dimodifikasi – Jika tidak puas dengan tampilan standar
Android, jangan khawatir ada banyak Costum ROM yang bisa di pakai di ponsel
Android.
· Widget
– Dengan adanya Widget di homescreen, kita bisa dengan mudah mengakses berbagai setting dengan cepat dan mudah.
· Google
Maniak – Pengguna setia layanan Google mulai dari Gmail sampai Google Reader,
ponsel Android telah terintegrasi dengan layanan Google, sehingga bisa dengan
cepat mengecek email dari gMail.
Kekurangan:
Tak bisa dipungkiri
disamping kelebihan tentu saja ada kekurangan dari sistem operasi Android ini.
· Koneksi
Internet yang terus menerus – Kebanyakan ponsel Android memerlukan koneksi
internet yang simultan alias terus menerus aktif, artinya pengguna harus siap
berlangganan paket GPRS yang sesuai dengan kebutuhan.
· Iklan
– Aplikasi di ponsel Android memang bisa didapatkan dengan mudah dan gratis,
namun konsekuensinya di setiap aplikasi tersebut, akan selalu iklan yang
terpampang, entah itu bagian atas atau bawah aplikasi.
· Karena
masih baru, maka belum banyak aplikasi yg tersedia untuk android, namun tidak
menutup kemungkinan bakal bertambah banyak mengingat Android adalah OS open
source. Hampir semua aplikasi bisa didapat gratis, dan dapat diunduh melalui
fasilitas Android Market dan blog-blog pribadi.
· Bagi
orang yg belum pernah memakainya mungkin akan sedikit membingungkan
· ponsel
Android kurang nyaman jika dipakai untuk telepon.
· Masih
sedikit yg memakai OS ini.
· Android
masih mampu sedikit mengimbangi Wndows Mobile untuk terintegrasi dengan
Exchange (outlook) server tanpa hambatan.
· Android
tidak bisa konek ke wireless ad-hoc. Sudah browsing ke forum2x, ternyata memang
dari Androidnya.
Symbian OS adalah
sistem operasi terbuka yang dikembangkan oleh Symbian Ltd. yang dirancang untuk
digunakan peralatan bergerak (mobile).
Kelebihan
:
· Mudah
dalam dimasukkan game atau aplikasi apa saja (Format jar. dan sis.)
· Dirancang
sebagai gabungan kemampuan computer dengan ponsel
· Bersifat
open application environment yang memungkinkan ponsel menjadi sebuah platform
bagi pengembangan berbagai aplikasi dan layanan (Bahasa dan konten)
· Open
standard dan interoperability, modul-modulnya mudah diimplementasikan secara
fleksibel karena mendukung berbagai aplikasi teknologi dan pemrograman
interfaces (APIs)
· Multitasking,
yang menekankan pada object oriented dan component based.
· Flexible
user interface design sehingga mudah dikembangkan dengan inovasi yang
diinginkan
Kekurangan
:
· Karena
memiliki sistem operasi terbuka, handphone jenis ini sangat rentan terhadap
serangan virus seperti Cabir, Commwarrior, SymbOS.skulls. dan masih banyak
lagi.
· Handphone
dengan sistem ini gampang Hang, atau lambat dalam membuka gallery, lagu, serta pesan singkat(SMS).
·
Symbian
ini termasuk dalam kategori OS yang mahal
·
Selain
itu, Symbian OS ini pemakaiannya cukup rumit bagi seorang pemula
· Symbian
OS ini juga boros dalam penggunaan baterainya, dikarenakan sistemnya sangat
besar dan canggih.
System Operasi Palm
yang dimulai pada tahun 1996 sebenarnya sistem operasi ini bisa saja disebut
sebagai perintis OS pada sebuah handset untuk PDA maupun Smartphone, hal ini
dikarenakan pesatnya perkembangan produk yang menggunakan Palm dan juga
banyaknya jumlah pihak ketiga yang membuat program untuk Palm, hingga sekarang
telah ada ribuan program untuk perangkat elektronik yang berbasis Palm.
Palm OS di desain
untuk tepat pada devais ukuran telapak tangan dari ukuran tertentu dengan
ukuran layar tertentu pula. Palm OS menggunakan multitasking, tetapi hanya satu
task untuk setiap aplikasi. Pengguna menggunakan satu aplikasi pada waktu
tertentu, satu program apikasi harus selesai sebelum yang berikutnya dapat dipilih.
Pembatasan ini membuat sistem operasi mendedikasikan penuh perhatian pada
aplikasi yang terbuka. Space yand dibutuhkan oleh sistem untuk setiap aplikasi
yang berjalan adalah bersifat dinamis, reusable random access memory (RAM).
Aplikasi dan database yang berhubungan disimpan dalam tempat penyimpanan
permanen, tetapi tempat penyimpanan permanen itu adalah RAM (bukan hard disk).
Palm OS membagi sebuah
aplikasi menjadi code yang dapat dijalankan dan tipe elemen data yang berbeda,
seperti elemen antar muka (user interface) dan icons. Elemen data dapat diubah
dengan mudah tanpa perlu menulis ulang code.
Kelebihan
:
· Palm
memiliki kebutuhan sistem yang sedikit dan cepat sehingga tidak dibutuhkan
perangkat PDA yang canggih dan mahal, dan tidak memerlukan banyak memory untuk
dapat menjalankannya dengan baik.
· User
interfacenya sangat mudah digunakan. Anda hanya memerlukan tidak lebih dari
lima menit untuk menggunakan fungsi-fungsi utama dari PDA-Phone tersebut
· Alasan
kemudahan penggunaan tersebut adalah sudah tersedianya tomboltombol shortcut
untuk fungsi organizer serta fungsi komunikasi
· Terlebih
lagi, Anda dapat melakukan navigasi dan menggunakan hampir semua aplikasi
bawaan Treo tanpa harus menyentuh layar sentuhnya, cukup menggunakan keypad
saja
· Berkat
penggunaan Palm OS yang sudah lama beredar, tersedia ratusan, bahkan ribuan
aplikasi
Kelemahan:
· Palm
OS yaitu tidak memiliki media penyimpanan eksternal/tambahan, walaupun bisa
diisi sebuah program
· Software
maupun Aplikasi tetapi tidak bisa di instal dengan kapasitas yang banyak karena
hanya keterbatasan memori.
· Selain
itu , perusahaan yang mengembangkan Palm telah dihentikan maka kemungkinan
perkembangan program Palm tidak akan ada lagi dan development yang ada sekarang
mungkin hanya berupa support untuk produk produk lama Palm
· Masih
kalah bersaing dengan OS yang terkenal yaitu: Symbian dan Android
· Penyimpanan
memori berupa RAM, bukan berupa Harddisk.
Sistem Operasi pada
iPad yaitu menggunakan Sistem Operasi Multitasking. Multitasking Memungkinkan
lebih dari satu program untuk berjalan secara bersamaan.
Kelebihan:
· Dalam
sistem multi-program, pekerjaan yang sedang diolah terus berjalan hingga
membutuhkan suatu operasi yang memerlukan interaksi dari luar. (e.g. membaca
dari tape). Sistem multi-program didesain untuk memaksimalkan penggunaan CPU.
· Dalam
sistem time-sharing , pekerjaan yang sedang diolah diharuskan melepaskan kerja
CPU, baik secara sukarela atau dari interaksi luar, seperti
interupsi-perangkat-keras. Sistem Time-sharing didesain untuk memperbolehkan
beberapa program seolah diproses secara bersamaan.
· Dalam
sistem real-time, beberapa program yang sedang menunggu dijamin untuk
mendapatkan pengolahan dari CPU ketika interaksi luar terjadi. Sistem real-time
didesain untuk melakukan kontrol mekanik seperti robot-robot industri, yang
memerlukan ketepatan pemrosesan.
· Menjadwalkan
pekerjaan mana yang dapat berjalan dalam satu waktu, dan kapan pekerjaan yang
lain menunggu untuk diolah dapat dikerjakan
· Mengalokasikan
CPU dari pekerjaan satu ke pekerjaan yang lain disebut context switch. Ketika
context switch terjadi dengan sangat cepat -- kondisi ini cukup untuk
memberikan ilusi pengolahan-paralel.
Kelemahan:
· No
Drag and Drop File Management. iPhone adalah kebutuhan untuk mensinkronkan iPad
dengan komputer lain untuk sistem manajemen di konten utama. Jika hal yang sama
bisa bekerja pada iPhone dan iPod, maka Anda hanya dapat melakukan hal ini pada
satu device saja. Ini merupakan sebuah kendala bagi orang yang memiliki media
yang tersebar di beberapa komputer, hard drives, network attached storage unit
dan sebagainya. Anda hanya bisa mengunduh konten dari web lewat iTunes.
· No
USB Port. Pad baru bisa sync via USB-namun hanya saat ditancapkan lewat dock
connector. Dan Anda tidak dapat menggunakan external USB keyboard yang sudah
Anda miliki tanpa memakai USB adaptor yang harus dibeli terpisah. Anda juga
harus menggunakan iPad Camera Connection Kit jika ingin mengambil foto lewat
kamera yang USB-enabled. Ini berarti Anda juga wajib menginstal perangkat
tambahan, saat ingin menggunakan mouse atau bahkan keyboard.
· No
SD Slot. Berbicara mengenai storage, baik 16GB, 32 GB atau 64GB, maka itulah
yang bakal Anda dapat. Mengingat iPad tidak memiliki konektor USB dan atau SD
Card reader. Artinya, Anda tidak dapat menggunakan SD card 16GB sebagai semi
permanen storage (lagi-lagi) tanpa menggunakan iPad Camera Connection.
Sangat-sangat tidak efisien.
· No
Flash Support. Situs Mashable pernah mendemonstrasikan salah satu keburukan
iPad: tidak adanya support untuk Adobe Flash. Sudah beredar kabar bahwa Apple
memang tidak menyukai ekosistem Flash. Apple juga berharap bahwa HTML5 segera
keluar dan menggantikan dominasi Flash sebagai sebuah teknologi video playback
di web.
· No
HDMI Out. Berbicara mengenai video, Anda juga tidak bisa menemukan port untuk
mengkoneksikan iPad ke televisi. Untuk menonton video yang baru saja diunggah
ke YouTube di ruang TV bersama keluarga, Anda harus menancapkan adaptor VGA ke
Dock Connector yang bakal membatasi resolusi VGA itu sendiri.
· No
Full HD Playback. Di era High-Definition seperti sekarang ini, miris rasanya
jika pabrikan sebesar Apple justru melansir gadget yang tidak compatible untuk
memutar tayangan HD. Memang, untuk layar berdimensi 9.7 inci sudah cukup untuk
memutar video berukuran 720pixel. Namun kenyataan yang cukup menggangu adalah,
ukuran video yang sekarang banyak beredar di internet adalah video yang
memiliki dimensi 1080 pixel. Anda harus mengkonversinya baru bisa ditonton
lewat layar iPad.
· No
Open SDK. Apple kerap melakukan hal ini. Namun Software Development Kit untuk
iPhone OS 3.2-yang merupakan sistem operasional yang juga diaplikasikan di
iPad-membuat developer harus menandatangani perjanjian Non-Disclosure Agreement
sebelum memulai akses. Perjanjian ini mencegah developer mendiskusikan OS
diluar forum Apple yang sah. Hal tersebut berarti programmer yang mengerjakan
aplikasi untuk device ini tidak bisa membicarakan platform ke orang lain yang
juga belum menandatangani NDA, lewat Twitter misalnya.
Windows CE adalah
perangkat lunak keluaran Microsoft untuk perangkat keras organizer. Organizer
Windows CE tersedia dalam dua bentuk, sebagai Handheld yang horizontal dan
Palmsize yang vertikal. Versi Handheld memiliki keyboard dan pena untuk input,
sedangkan Palmsize menggunakan layar tampilan yang lebih kecil dan pena.
Handheld dilengkpi dengan Pocket-Office-Suite komplit berisi Word, Exel,
PowerPoint dan Outlook. Palmsize hanya dilengkapi dengan Pocket-Outlook sebagai
channel browser (Internet Explorer mini) dan Notetaker sebagai editor. Tetapi
kini banyak perkembangan yang terjadi pada Palmsize yaitu layar tampilan telah
berwarna.
Kelebihan
:
· Tampilannya
tampak familiar dan hanya Windows CE yang memiliki tampilan warna.
· Handheld
yang horizontal juga memiliki keistimewaan yaitu pada kecepatan.
· Kompatibilitas
dengan Microsoft Windows dalam komunikasi data, penanganan transfer file,
sinkronisasi, dan akses database sehingga Windows CE sudah mulai dipakai pada
beberapa PDA (Personal Digital Assistant) terbaru.
· Pengguna
tidak perlu lagi mempelajari abjad baru seperti pada Palm. Jika pengguna tidak menyukai pengenalan tulisan tangan, maka pengguna dapat menggantinya dengan
keyboard virtual
· Untuk
mendukung suksesnya Pocket PC, Microsoft bahkan memberikan Compiler VisualBasic
dan C++ berbasiskan Pocket PC-nya secara gratis, yang dapat didownload di
Internet
Kelemahan:
·
Sistem
operasi Windows CE ini rentan terhadap serangan virus
·
Harus
sesekali diupdate software-nya untuk selalu menjaga konsistensi OS ini dalam
bekerja
·
Sistem
yang kurang stabil
·
Komunitasnya
terlalu sedikit, karena bersifat closed-source
·
Tidak
adanya Java Virtual Machine seperti generasi-geerasi windows sebelumnnya
Sumber :
SISTEM OPERASI THREAD
PENGERTIAN SISTEM OPERASI THREAD
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang
multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang
alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon
dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk
mengambil keuntungan dari arsitektur multiprosesor.
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.
Kerugian Multi-Threading
1. Multiple thread bisa mengganggu satu sama lain saat
berbagi hardware resource, misalnya chace memory.
2. Execution time (waktu proses) dari sebuah single-thread
tidak dapat diimprove (ditambah), tapi malah bisa diturunkan. Ini terjadi
karena penurunan frequensi yang dibutuhkan ketika terjadi pergantian
thread yang berjalan.
3.
Harus ada dukungan dari hardware ataupun software untuk
melakukan multi-Threading.
Model-Model Threading
1. Kernel-level threading; thread ini dibuat oleh pengguna
yang berkorespondensi 1-1 dengan entitas-entitas yang terjadwalkan yang
berada di kernel. Ini merupakan implementasi (penerapaan) paling sederhana
dari threading.
·
Thread kernel didukung langsung oleh sistem operasi.
·
Pembuatan, penjadwalan, dan manajemen thread dilakukan
oleh kernel pada kernel space.
· Pengaturan thread dilakukan oleh sistem operasi, sehingga
pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user
thread.
2. User-level threading; sebuah pemetaan N-1, yang berarti
bahwa semua level aplikasi thread dipetakan ke entitas tunggal yang ada di
kernel. Dengan pendekatan ini, switching proses dapat dilakukan dengan
sangat cepat.
· Thread pengguna didukung kernel serta diimplementasikan
dengan pustaka (library) thread pada tingkatan pengguna.
· Pustaka (library) menyediakan fasilitas untuk pembuatan
thread, penjadwalan thread, dan manajemen thread tanpa dukungan dari
kernel.
· Semua pembuatan dan penjadwalan thread dilakukan dalam
ruang pengguna tanpa campur tangan kernel.
Thread dalam Sistem Operasi
1.
Sistem operasi telah mendukung proses multithreading.
2.
Setiap sistem operasi memiliki konsep tersendiri dalam
pengimplementasiannya.
3.
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.
Thread Pools
Pada web
server yang multithreading ada dua masalah yang timbul:Ukuran waktu yang
diperlukan untuk menciptakan thread untuk melayani permintaan yang diajukan
terlebih pada kenyataannya thread dibuang ketika ia seketika sesudah ia
menyelesaikan tugasnya.Pembuatan thread yang tidak terbatas jumlahnya dapat
menurunkan performa dari sistem.Solusinya adalah dengan penggunaan Thread
Pools, cara kerjanya adalah dengan membuat beberapa thread pada proses startup
dan menempatkan mereka ke pools, dimana mereka duduk diam dan menunggu untuk
bekerja. Jadi ketika server menerima permintaan maka maka ia akan membangunkan
thread dari pool dan jika thread tersedia maka permintaan tersebut akan
dilayani.Ketika thread sudah selesai mengerjakan tugasnya maka ia kembali ke
pool dan menunggu pekerjaan lainnya. Bila tidak thread yang tersedia pada saat
dibutuhkan maka server menunggu sampai ada satu thread yang bebas.
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.
CONTOH SYSTEM OPERASI THREAD
Contoh Thread Pada Os 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 OS Linux
Berikut langkah-langkah ringkas untuk membuat thread
sederhana pada linux:
1.
Pastikan telah ada include dan id dari thread sudah
dicantumkan dalam kode
#include<stdio.h>
#include<string.h>
#include<pthread.h>
#include<stdlib.h>
#include<unistd.h>
pthread_t tid[2];
Note : pthread_tid adalah untuk membuat thread id
#include<stdio.h>
#include<string.h>
#include<pthread.h>
#include<stdlib.h>
#include<unistd.h>
pthread_t tid[2];
Note : pthread_tid adalah untuk membuat thread id
2.
Buatlah thread pada inti program (int main) dengan
menggunakan fungsi
pthread_create
pthread_create(&(tid[i]), NULL, &doSomeThing, NULL);
Note :
pthread_create(&(tid[i]), NULL, &doSomeThing, NULL);
Note :
o
tid[i] adalah id thread yang dibuat pada langkah 1
o
&doSomeThing adalah fungsi yang dijalankan oleh thread
3.
Pastikan thread mempunyai fungsi yang dijalankan,
void* doSomeThing(void *arg) {
unsigned long i = 0;
pthread_t id = pthread_self();
if(pthread_equal(id,tid[0])) {
printf("\n First thread processing\n");
}
else {
printf("\n Second thread processing\n");
}
for(i=0; i<(0xFFFFFFFF);i++);
return NULL;
}
Note : fungsi ini berkaitan dg langkah 2. fungsi ini yang dipass-ing pada pthread_create
void* doSomeThing(void *arg) {
unsigned long i = 0;
pthread_t id = pthread_self();
if(pthread_equal(id,tid[0])) {
printf("\n First thread processing\n");
}
else {
printf("\n Second thread processing\n");
}
for(i=0; i<(0xFFFFFFFF);i++);
return NULL;
}
Note : fungsi ini berkaitan dg langkah 2. fungsi ini yang dipass-ing pada pthread_create
4. Jika ingin antarthread mengetahui satu sama lain (satu
thread mengetahui ada thread lain, sehingga dalam berproses tidak error)
gunakan fungsi pthread_join
pthread_join(th1, NULL);
pthread_join(th2, NULL);
Note :
Contoh ini jika misalnya ada dua thread bernama th1 dan th2 yang akan di-join.
pthread_join(th1, NULL);
pthread_join(th2, NULL);
Note :
Contoh ini jika misalnya ada dua thread bernama th1 dan th2 yang akan di-join.
Sumber :
http://deniagung01.blogspot.com/2017/10/contoh-thread-pada-os-windows.html?m=1
http://pradana-pride.blogspot.com/2016/10/tugas-sistem-operasi-contoh-thread-pada.html?m=1
http://pradana-pride.blogspot.com/2016/10/tugas-sistem-operasi-contoh-thread-pada.html?m=1
Tidak ada komentar:
Posting Komentar