Musaddam - 8020210049 - 02PT3
Pengertian
dan Contoh Batch System, Critical Section, Process Control Block, Distributed
Processing, Handheld & Thread.
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 adalah FMS ( Fortarn Monitoring System ) dan IBSYS.
Jadi bisa disimpulkan, bahwa komputer
generasi ke-2 ini merupakan generasi pertama Sistem Operasi.
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 :
·
Resident
Monitor
Operator bertugas mengatur urutan job
Job-job yg sama cukup dicetak sekali saja, cara inilah yg
disebut “Batch system”
Teknik pengurutan job secara manual begini 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”
·
Overlap Operasi antara I/O dg CPU
· 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
· 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.
BENTUK
DAN CONTOH BATCH SYSTEM
· 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.
R
CRITICAL SELECTION
· Entry
Section: kode yang digunakan untuk masuk ke dalam critical section
· Critical
Section: Kode di mana hanya ada satu proses yang dapat dieksekusi pada satu
waktu
· Exit
Section: akhir dari critical section, mengizinkan proses lain
· Remainder
Section: kode istirahat setelah masuk ke critical section
Solusi
untuk mengatasi masalah Critical Section, yaitu:
a).
Mutual exclution : Jika proses pi sedang mengeksekusi critical section-nya maka
tidak ada proses lain yang dapat mengeksekusi dalam critical section mereka.
b).
Progress : Jika tidak ada proses yang sedang dieksekusi dalam critical section
dan ada beberapa proses yang ingin masuk ke critical section mereka, maka
pemilihan proses yang akan masuk ke critical section berikutnya tidak bias
ditunda
c).
Bounded Waiting :Suatu keterikatan harus ada pada sejumlah proses yang
diijinkan masuk ke critical section mereka, setelah adanya proses yang meminta
masuk ke critical section dan sebelum permintaan itu diterima.
Contoh
pada algoritma
Cara-cara
memecahkan masalah
• Hanya
dua proses, Po dan P1
•
Struktur umum dari proses adalah Pi (proses lain Pj)
do {
critical
section
remainder
section
}
while(1);
Algoritma
1
Disini
kita akan mencoba membuat sebuah rangkaian solusi-solusi dari permasalahan yang
makin meningkat kerumitannya.
Pada
semua contoh, i adalah proses yang sedang berjalan, j adalah proses yang lain.
Pada contoh ini code.
i.
Shared variables
•
int turn
Initially
turn=0
•
turn = i, Pi can enter its critical section
ii.
Process Pi
do {
while(turn!=1);
critical
section
turn=j;
remainder
section
}
while(1);
iii.
Memenuhi mutual exclusion, tapi bukan progress.
Algoritma
2
FLAG
untuk setiap proses yang memberi STATE:
Setiap
proses memantau suatu flag yang mengindikasikan ia ingin memasuki critical
section. Dia memeriksa flag poses lain dan tidak akan memasuki critical section
bila ada proses lain yang sedang masuk.
i.
Shared variables
•
boolean flag[2];
initially
flag [0] = flag [1] = false
•
flag [i] = true , Pi ready to enter its critical section
ii.
Process Pi
do {
flag[i]:=true;
while(turn!=1);
critical
section
turn=j;
remainder
section
}
while(1);
iii.
Memenuhi mutual exclusion, tapi tidak memenuhi progess.
Algoritma
3
FLAG
untuk meminta izin masuk:
· Setiap
proses mengeset sebuah flag untuk meminta izin masuk. Lalu setiap proses
mentoggle bit untuk mengizinkan yang lain untuk yang pertama
· Kode
ini dijalankan untuk setiap proses i
Shared
variables
F
boolean flag[2];
initially
flag[0] = flag[1] = false
F
flag[i] = true;
Pi
ready to enter its critical section
· Gabungan
shared variables dari algorima 1 dan 2
· Process
Pi
do {
flag[i]:=true;
turn
= j;
while(flag[j]
and turn = j);
critical
section
flag[i]
= false;
remainder
section
}
while(1);
· Memenuhi
ketiga persyaratan, memecahkan persoalan critical section untuk kedua proses
Algoritma
Bakery
Critical
Section untuk n buah proses:
Sebelum
memasukkan proses ke critical section, proses menerima sebuah nomor. Pemegang
nomor terkecil masuk ke critical section. Jika ada dua proses atau lebih
menerima nomor sama, maka proses dengan indeks terkecil yang dilayani terlebih
dahulu untuk masuk ke critical section. Skema penomoran selalu naik secara
berurut contoh: 1, 2, 3, 3, 3, 3, 4, 5,...
boolean
choosing [n];
long
long long int number [n];
/* 64
bit maybe okay for about 600 years */
Array
structure elements are initiallized to false and 0 respectively
while
(true) {
choosing[i]
= true;
number[i]
= max(number[0], ... [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))) {}
}
number[i]
= 0
}
Solves
the critical-section problem
for n
process
PROCESS 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 (lihat Gambar 2-3).
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 (lihat Bab Managemen memori).
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
7.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:
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
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
system handheld adalah Android, Symbian.
B.
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
C. Sejarah Perkembangan System Handheld
Sistem operasi Handheld juga memiliki sejarah dalam
perkembangannya, adapun sejarah perkembangan system operasi Handheld adalah:
a. 1993 Ponsel pintar yang pertama, IBM Simon,
memiliki fitur layar sentuh, email, dan fitur PDA dirilis.
b. Palm Pilot 1000 personal digital assistant(PDA) diperkenalkan
pertama kali dengan sistem operasi Palm OS.
c. 1996 PC handled pertama dengan sistem
Windows CE diperkenalkan.
d. 2000 Symbian menjadi sistem operasi genggam modern
pertama pada ponsel pintar dengan munculnya Ericsson R380.
e. 2001 The Kyocera 6035 menjadi ponsel pintar
pertama yang menggunakan Palm OS.
f. 2002 Microsoft Windows CE versi
Pocket PC untuk ponsel pintar diperkenalkan.
g. 2002 BlackBerry merilis ponsel pintar
pertamanya.
h. 2007 Apple iPhone dengan iOS pertama kali
diperkenalkan.
i. 2008 OHA merilis Android 1.0 dengan
HTC Dream (T-Mobile G1) sebagai ponsel Android yang pertama.
j. 2009 Palm memperkenalkan webOS
melalui Palm Pre.
k. 2009 Samsung memperkenalkan Bada OS melalui
Samsung S8500.
l. 2010 Windows Phone OS dirilis.
C. Perkembangan Sytem Handheld (PDA)
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.
D. 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.
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.
D. 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.
E. Kegunaan PDA
a. Telekomunikasi
b. Informasi
c. Pendidikan
d. Olahraga
F. Fitur yang terdapat dalam PDA
·
Layar sentuh
·
GPS
·
PCPocket
·
Koneksi Nirkabel
·
Agenda
·
Memory
·
LAN
·
Surel
·
HiburanKamera
·
Sinkronisasi
THREAD
Thread adalah unit dasar dari penggunaan CPU, thread mengandung
Thread ID, program counter, register set, dan stack. Sebuah Thread berbagi code
section, data section, dan sumber daya sistem operasi dengan Thread lain yang
dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process.
Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal
yang berfungsi sebagai pengendali. Perbedaan antara proses dengan thread
tunggal dengan proses dengan thread yang banyak adalah proses dengan thread
yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.
Banyak software yang berjalan pada PC modern didesain secara multithreading.
Sebuah aplikasi biasanya diimplementasi sebagai proses yang terpisah dengan
beberapa thread yang berfungsi sebagai pengendali. Contohnya sebuah web browser
mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang
lain berfungsi sebagai penerima data dari network.
·
Kadang kala ada situasi dimana sebuah aplikasi diperlukan untuk
menjalankan beberapa tugas yang serupa. Sebagai contohnya sebuah web server
bisa mempunyai ratusan klien yang mengaksesnya secara concurrent. Kalau web
server berjalan sebagai proses yang hanya mempunyai thread tunggal maka ia
hanya bisa 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
multithreading. 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.
Java
mempunyai pengunaan lain dari thread. Perlu dikeahui bahwa java tidak mempunyai
konsep asynchronous. Sebagai contohnya kalau program java mencoba untuk
melakukan koneksi ke server maka ia akan berada dalam keadaan block state
sampai koneksinya jadi(bisa dibayangkan apa yang terjadi apabila servernya
mati). Karena java tidak memiliki konsep asynchronous maka solusinya adalah
dengan membuat thread yang mencoba untuk melakukan koneksi ke server dan thread
lain yang pertamanya tidur selamabeberap waktu(misalnya 60 detik) kemudian
bangun. Ketika waktu tidurnya habis maka ia akan bangun dan memeriksa apakah
thread yang melakukan koneksi ke server masih mencoba untuk melakukan koneksi
ke server, kalau thread tersebut masih dalam keadaan mencoba untuk melakukan
koneksi ke server maka ia akan melakukan interrupt dan mencegah thread tersebut
untuk mencoba melakukan koneksi ke server.
Keuntungan
Keuntungan
dari program yang multithrading dapat dipisah menjadi empat kategori :
1.
Responsi
Membuat
aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program
terus berjalan meskipun sebagian dari program tersebut diblok atau melakukan
operasi yang panjang, karena itu dapat meningkatkan respons kepada pengguna.
Sebagai contohnya dalam web browser yang multithreading, sebuah thread dapat
melayani permintaan pengguna sementara thread lain berusaha menampilkan image.
2.
Berbagi sumber daya
thread
berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses
yang sama. Keuntungan dari berbagi kode adalah mengijinkan sebuah aplikasi
untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
3.
Ekonomi
dalam
pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya.
Alternatifnya adalah dengan penggunaan thread, karena thread berbagi memori dan
sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan
context switch thread. Akan susah untuk mengukur perbedaan waktu antara proses
dan thread dalam hal pembuatan dan pengaturan, tetapi secara umum pembuatan dan
pengaturan proses lebih lama dibandingkan thread. Pada Solaris, pembuatan
proses lebih lama 30 kali dibandingkan pembuatan thread, dan context switch
proses 5 kali lebih lama dibandingkan context switch thread.
4.
Utilisasi arsitektur multiprocessor
Keuntungan
dari multithreading bisa sangat meningkat pada arsitektur multiprocessor,
dimana setiap thread dapat berjalan secara pararel di atas processor yang
berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread
secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan
ilusi pararel, tetapi pada kenyataannya hanya satu thread yang dijalankan CPU
pada satu-satuan waktu(satu -satuan waktu pada CPU biasa disebut time slice
atau quantum).
User
Threads
User
thread didukung diatas kernel dan diimplementasi oleh thread library pada user
level. Library meneyediakan fasilitas untuk pembuatan thread, penjadwalan
thread, dan manajemen thread tanpa dukungan dari kernel. Karena kernel tidak
menyadari user-level thread maka semua pembuatan dan penjadwalan thread
dilakukan di user space tanpa intervensi dari kernel. Oleh karena itu, user
-level thread biasanya cepat untuk dibuat dan diatur. Tetapi user thread
mempunyai kelemahan yaitu apabila kernelnya merupakan thread tunggal maka
apabila salah satu user-level thread menjalankan blocking system call maka akan
mengakibatkan seluruh proses diblok walaupun ada thread lain yang bisa jalan
dalam aplikasi tersebut. Contoh user-thread libraries adalah POSIX Pthreads,
Mach C-threads, dan Solaris threads.
Kernel
Threads
Kernel
thread didukung secara langsung oleh sistem operasi: pembentukan thread,
Penjadwalan, dan managemen dilakukan oleh kernel dalam ruang kernel. Karena
managemen thread telah dilakukan oleh sistem operasi, kernel thread biasanya
lebih lambat untuk membuat dan mengelola daripada pengguna thread. Windows NT,
Solaris, dan Digital UNIX adalah sistem operasi yang mendukung kernel thread.
Kelebihan
:
1. Jika
sebuah thread menjalankan blocking system call maka kernel dapat menjadualkan
thread lain di aplikasi untuk melakukan eksekusi.
2. Pada
lingkungan multiprocessor, kernel dapat menjadual thread-thread pada processor
yang berbeda.
Kekurangan
:
1.
Pengaturan dan pembuatan thread lebih lambat.
Model
Multithreading
Multithreading
adalah suatu kemampuan yang memungkinkan beberapa kumpulan instruksi atau
proses dapat dijalankan secara bersamaan dalam sebuah program. Satu kumpulan
instruksi yang akan dieksekusi secara independen dinamakan thread. thread
adalah alur kontrol dari suatu proses.atau sekumpulan perintah(instruksi) yang
dapat dilaksanakan(dieksekusi) secara teratur dengan proses lainnya.Proses
melakukan setiap langkah-langkah/intruksi yang berurutan, setiap intruksi untuk
mengeksekusi baris kode/listing – listing program.Nah Karena langkah-langkah
yang berurutan itu, setiap langkah membutuhkan jumlah waktu tertentu.
Model
Many to One
Yaitu
memetakan beberapa tingkatan thread user hanya ke satu buah kernel thread.
Kelebihan
:
1.
Managemen proses thread dilakukan oleh(di ruang) pengguna, sehingga menjadi
lebih efisien.
Kekurangan
:
1.
Multithread tidak dapat berjalan atau bekerja secara paralel di dalam
multiprosesor karena hanya satu thread saja yang bisa mengakses kernel dalam
suatu waktu. Model ini ada pada Solaris Green dan GNU Portable.
Model
One to One
Yaitu
memetakan setiap user thread ke dalam 1 kernel thread.
Kelebihan
:
1.
Model one-to-one lebih sinkron daripada model many-to-one karena mengizinkan
thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap
sistem pemanggilan, hal ini juga membuat multiple thread bisa berjalan secara
parallel dalam multiprosesor.
Kekurangan
:
1.
Dalam pembuatan user thread diperlukan 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 ini ada pada Windows NT dan OS/2.
Model
Many to Many
Yaitu
membolehkan setiap tingkatan user thread dipetakan ke banyak kernel thread.
Kelebihan
:
1.
Developer dapat membuat user thread sebanyak yang diperlukan dan kernel thread
yang bersangkutan dapat berjalan secara parallel pada multiprocessor.
2. Dan
ketika suatu thread menjalankan blocking system call maka kernel dapat
menjadwalkan thread lain untuk melakukan eksekusi.
Kekurangan
:
1.
Developer dapat membuat user thread sebanyak mungkin, tetapi konkurensi tidak
dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel
pada suatu waktu. Model ini ada pada Solaris, IRIX, dan Digital UNIX.
Thread
Dalam Solaris 2
Solaris
2 merupakan salah satu versi dari UNIX yang sampai dengan tahun 1992 hanya
masih mendukung proses berat(heavyweight) dengan kontrol oleh satu buah thread.
Tetapi sekarang Solaris 2 sudah berubah menjadi sistem operasi yang modern yang
mendukung threads di dalam level kernel dan pengguna, multiprosesor
simetrik(SMP), dan Penjadwalan real-time.
Threads
di dalam Solaris 2 sudah dilengkapi dengan library mengenai API-API untuk
pembuatan dan managemen thread. Di dalam Solaris 2 terdapat juga level tengah
thread. Di antara level pengguna dan level kernel thread terdapat proses
ringan/ lightweight(LWP). Setiap proses yang ada setidaknya mengandung minimal
satu buah LWP. Library thread memasangkan beberapa thread level pengguna ke
ruang LWP-LWP untuk diproses, dan hanya satu user-level thread yang sedang
terpasang ke suatu LWP yang bisa berjalan. Sisanya bisa diblok mau pun menunggu
untuk LWP yang bisa dijalankan.
1.
Thread Java
Thread
adalah rangkaian eksekusi dari sebuah aplikasi java dan setiap program java
minimal memiliki satu buah thread. Sebuah thread bisa berada di salah satu dari
4 status, yaitu new, runnable, blocked, dan dead.
Untuk
membuat thread dalam java terdapat dua cara, yaitu :
1.
Extends class Thread
Untuk
menjalankan thread, dapat dilakukan dengan memanggil method start(). Saat
start() dijalankan, maka sebenarnya method run() dari class akan dijalankan.
Jadi untuk membuat thread, harus mendefinisikan method run() pada definisi
class. Konstruktor dari cara ini adalah :
SubThread
namaObject = new SubThread();
namaObject.start();
2.
Implements interface Runnable
Cara
ini merupakan cara yang paling sederhana dalam membuat thread. Runnable
merupakan unit abstrak, yaitu kelas yang mengimplementasikan interface ini
hanya cukup mengimplementasikan fungsi run(). Dalam mengimplementasi fungsi
run(), kita akan mendefinisikan instruksi yang membangun sebuah thread.
Konstruktor dari cara ini adalah :
MyThread
myObject= new MyThread();
Thread
namaObject = new Thread(myObject);
Atau
dengan cara singkat seperti :
New
Thread(new ObjekRunnable());
MyThread
merupakan class yang mengimplementasikan interface dari Runnable, dan object dari
class MyThread akan menjadi parameter instansi object class Thread.
2.
Managemen Thread
Manajemen
thread merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen
thread adalah masalah utama dalam perancangan sistem operasi. Proses adalah
program yang sedang dieksekusi. Proses dapat juga didefinisikan sebagai unit
kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh
sistem operasi. Proses berisi instruksi, data, program counter, register
pemroses, stack data, alamat pengiriman dan variabel pendukung lainnya.
3.
Keadaan Thread
Sebuah
thread berada di dalam keadaan BARU ketika kita mempunyai sebuah objek Thread
yang dipakai tapi belum dipanggil dengan method start().
Ketika
kita mulai sebuah thread(dengan memanggil Method Start() dari Objek Thread),
sebuah tumpukan baru akan dibuat, dengan run() method dari Runnable yang berada
di bawah tumpukan. Thread sekarang mulai dalam keadaan RUNNABLE, menunggu untuk
dijalankan.
Sebuah
thread mengatakan untuk menjadi RUNNING ketika Penjadwal Thread dari JVM telah
memilihnya untuk menjadi thread yang sedang berjalan. Pada mesin berprosessor
tunggal, hanya ada satu Thread yang sedang Berjalan.
Kadang
sebuah Thread dapat dipindahkan dari keadaan RUNNING ke keadaan TERBLOK(TIdak
Berjalan untuk Sementara). Sebuah Thread mungkin Terblok karena ia menunggu
data dari sebuah stream(aliran data), atau karena ia telah tertidur, atau
karena ia menunggu untuk penguncian Objek.
Penjadwalan
Thread tidak menjamin untuk bekerja pada cara tertentu, jadi kita tidak dapat
memastikan bahwa thread-thread akan bergiliran sesuai keinginan kita. Kita
dapat membantu untuk mempengaruhi mengaktifkan pengambilan dengan
mengkondisikan thread anda ke keadaan sleep pada waktu-waktu tertentu.
4.
Thread dan JVM
JVM(Java
Virtual Machine) adalah sebuah mesin imajiner(maya) yang bekerja dengan
menyerupai aplikasi pada sebuah mesin nyata. JVM menyediakan spesifikasi
hardware dan platform dimana kompilasi kode Java terjadi. Spesifikasi inilah
yang membuat aplikasi berbasis Java menjadi bebas dari platform manapun karena
proses kompilasi diselesaikan oleh JVM.
Aplikasi
program Java diciptakan dengan file teks berekstensi.java. Program ini
dikompilasi menghasilkan satu berkas bytecode berekstensi.class atau lebih.
Bytecode
adalah serangkaian instruksi serupa instruksi kode mesin. Perbedaannya adalah
kode mesin harus dijalankan pada sistem komputer dimana kompilasi ditujukan,
sementara bytecode berjalan pada java interpreter yang tersedia di semua
platform sistem komputer dan sistem operasi.
5. JVM
dan Sistem Operasi
Java
Virtual Machine atau JVM adalah jenis perangkat lunak virtual machine aplikasi
untuk menjalankan program dalam kode instruksi Java. Java sendiri adalah bahasa
komputer yang digunakan pada sistem platform Java, dimana memiliki jenis
instruksi mesin yang berbeda dengan sistem komputer jenis PC atau yang lainnya.
Oleh karena itu agar sebuah komputer dapat menjalankan sebuah program dalam bahasa
Java, maka diperlukan JVM yang sering disebut sebagai middleware yang berfungsi
untuk menterjemahkan instruksi Java(JVM instruction set) menjadi instruksi
mesin pada komputer jenis tertentu.
Java
Virtual Machine dalam nama lain disebut sebagai Java Runtime Environment(JRE),
dikembangkan oleh Sun Microsystem untuk memperluas penggunaan bahasa Java pada
platform komputer manapun. Oleh karena itu program yang dibuat dengan java
dapat dijalankan pada banyak platform komputer maupun berbagai sistem operasi
komputer. Dengan sistem emulasi instruksi ini, maka program java ini banyak
sekali dipakai pada aplikasi--aplikasi di perangkat mobile, karena perangkat
mobile saat ini sudah banyak yang sudah memiliki Java Virtual Machine.
6.
Contoh Solusi Multithreaded
solusi
multithreaded secara lengkap kepada masalah produser konsumer yang menggunakan
penyampaian pesan. Kelas server pertama kali membuat sebuah mailbox untuk
mengumpulkan pesan, dengan menggunakan kelas message queue kemudian dibuat
produser dan konsumer threads secara terpisah dan setiap thread mereferensi ke
dalam mailbox bersama. Thread produser secara bergantian antara tidur untuk
sementara, memproduksi item, dan memasukkan item ke dalam mailbox. Konsumer
bergantian antara tidur dan mengambil suatu item dari mailbox dan
mengkonsumsinya. Karena receive() method dari kelas message queue adalah tanpa
pengeblokan, konsumer harus mencek apakah pesan yang diambilnya tersebut adalah
nol.





Komentar
Posting Komentar