PENGERTIAN DAN CONTOH BATCH
SYSTEM, CRITICAL SECTION, PROCESS CONTROL BLOCK, DISTRIBUTED PROCESSING, HANDHELD DAN THREAD
PENGERTIAN
DAN 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.
BENTUK DARI BATCH SYSTEM
BENTUK DARI BATCH SYSTEM
ada 2 cara dalam Batch System yaitu :
- 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.
(sumber : http://onepersen4ever.blogspot.com/2014/04/pengertian-batch-system-bentuk-batch.html)
sumber: https://mediekaputra.wordpress.com/2011/03/26/critical-section/
PENGERTIAN
DAN CONTOH CRITICAL SECTION
Critical Section adalah
bagian dari suatu proses yang akan melakukan akses dan manipulasi data. Ketika
sebuah proses sedang dijalankan dalam critical section nya, tidak ada
proses lain yang boleh dijalankan dalam critical section tersebut,
karena akan menyebabkan keadaan mutually exclusive. Mutually exclusive
yakni keadaan terjadinya akses resources yang sama di saat yang bersamaan.
Mutually exclusive memerlukan kondisi tertentu agar dapat terpenuhi.
Critical section
biasanya digunakan saat program multithreading, dimana program tersebut
terdiri dari banyak thread, akan mengubah nilai dari variabel. Dalam hal ini critical
section diperlukan untuk melindungi variabel dari concurrent access
(pengaksesan program di saat yang bersamaan) yang dapat membuat nilai dari
variabel tersebut menjadi tidak konsisten.
Seperti yang telah kita
ketahui bahwa proses dapat bekerja sendiri (independent process) dan
juga dapat bekerja bersama proses-proses yang lain (cooperating process).
Pada umumnya ketika proses saling bekerjasama (cooperating process) maka
proses-proses tersebut akan saling berbagi data. Pada saat proses-proses
berbagi data, ada kemungkinan bahwa data yang dibagi secara bersama itu akan
menjadi tidak konsisten dikarenakan adanya kemungkinan proses-proses tersebut
melakukan akses secara bersamaan yang menyebabkan data tersebut berubah, hal
ini dikenal dengan istilah Race Condition. Oleh karena itu, dibutuhkan
solusi yang tepat untuk menghindari munculnya Race Condition. Solusi
tersebut harus memenuhi ketiga syarat berikut:
- Mutual Exclusion
- Progress
- Bounded Waiting
Ada dua jenis solusi
untuk memecahkan masalah critical section, yaitu.
- Solusi Perangkat Lunak. Solusi ini menggunakan algoritma-algoritma untuk mengatasi masalah critical section.
- Solusi Perangkat Keras. Solusi ini tergantung pada beberapa instruksi mesin tertentu, misalnya dengan me-non-aktifkan interupsi, mengunci suatu variabel tertentu atau menggunakan instruksi level mesin seperti tes dan set.
Berikut ini
algoritma-algoritma yang digunakan untuk mengatasi masalah critical section:
1.
Algoritma I
Algoritma I memberikan
giliran kepada setiap proses untuk memproses critical section-nya secara
bergantian. Asumsi yang digunakan disini setiap proses secara bergantian
memasuki critical section-nya. Statement while(turn != 4) akan memeriksa apakah
pada saat itu proses 4 mendapatkan turn, jika tidak maka proses 4 akan busy
waiting (lihat kembali bahwa printah while diakhiri dengan “;”). Jika ternyata
pada saat itu merupakan giliran proses 4 maka proses 4 akan mengerjakan
critical section-nya. Sampai sini jelas terlihat bahwa mutex terpenuhi! Proses
yang tidak mendapatkan turn tidak akan dapat mengerjakan critical section-nya
dan turn hanya akan diberikan pada satu proses saja.
Setelah proses 4
selesai mengerjakan critical section maka turn diberikan pada proses lainnya
(turn= j, j merupakan proses selanjutnya yang dapat mengerjakan critical
section). Setelah turn-nya diberikan kepada proses lain, proses 4 akan
mengerjakan remainder section. Disini jelas terlihat bahwa syarat
bounded waiting jelas terpenuhi. Ingat asumsi yang digunakan dalam algoritma
ini adalah setiap proses secar bergantian memasuki critical section-nya, jika
pada saat itu proses 4 ternyata belum mau mengerjakan critical section-nya maka
proses ke-j tidak akan mendapatkan kesempatan untuk mengerjakan critical
section walau saat itu sebenarnya proses ke-j akan memasuki critical section.
Artinya syarat progress tidak terpenuhi pada algoritma ini.
2.
Algoritma II
Masalah yang terjadi
pada algoritma 1 ialah ketika di entry section terdapat sebuah proses yang
ingin masuk ke critical section, sementara di critical section sendiri tidak
ada proses yang sedang berjalan, tetapi proses yang ada di entry section tadi
tidak bisa masuk ke critical section. Hal ini terjadi karena giliran untuk
memasuki critical section adalah giliran proses yg lain sementara proses
tersebut masih berada di remainder section. Untuk mengatasi masalah ini maka
dapat diatasi dengan merubah variabel trun pada algoritma pertama dengan array Boolean
flag [2];
Elemen array
diinisialisasi false. Jika flag[i] true, nilai tersebut menandakan bahwa Pi
ready untuk memasuki critical section. Pada algoritma ini. hal pertama yang
dilakukan ialah mengeset proses Pi dengan nilai True, ini menandakan bahwa Pi
ready untuk masuk ke critical section. kemudian, Pi memeriksa apakah Pj tidak
ready untuk memasukui critical section. Jika Pj ready, maka Pi menunggu sampai
Pj keluar dari critical section (flag[j] bernilai false). Ketika keluar dari
critcal section, Pi harus merubah nilai flag[i] menjadi false agar prores lain
dapat memasuki critical section.
Contoh:
Pada algoritma ini,
kriteria Mutual-exclusion terpenuhi, tetapi tidak memenuhi kriteria
progress. Ilustrasinya
seperti di bawah ini.
T0 : Po set flag [0] =
true
T1 : Po set flag [1] =
true
Dari ilustrasi diatas
terlihat bahwa algoritma ini memungkinkan terjadinya nilai true untuk kedua
proses, akibatnya tidak ada proses yang akan berhasil memasuki critical
section.
Jadi untuk algoritma 2
masih terdapat kelemahan, seperti yang terjadi di atas.
3.
Algoritma III
Idenya berasal dari
algoritma 1 dan 2. Algoritma 3 mengatasi kelemahan pada algoritma 1 dan 2
sehingga progres yang diperlukan untuk mengatasi critical section terpenuhi. Algoritma
III ditemukan oleh G.L. Petterson pada tahun 1981 dan dikenal juga sebagai
Algoritma Petterson. Petterson menemukan cara yang sederhana untuk mengatur
proses agar memenuhi mutual exclusion. Algoritma ini adalah solusi untuk
memecahkan masalah critical section pada dua proses. Ide dari algoritma
ini adalah menggabungkan variabel yang di- sharing pada Algoritma I dan
Algoritma II, yaitu variabel turn dan variabel flag. Sama seperti
pada Algoritma I dan II, variabel turn menunjukkan giliran proses mana
yang diperbolehkan memasuki critical section dan variabel flag
menunjukkan apakah suatu proses membutuhkan akses ke critical section
atau tidak.
Awalnya flag
untuk kedua proses diinisialisai bernilai false, yang artinya kedua
proses tersebut tidak membutuhkan akses ke critical section. Kemudian
jika suatu proses ingin memasuki critical section, ia akan mengubah flag-nya
menjadi true (memberikan tanda bahwa ia butuh critical section)
lalu proses tersebut memberikan turn kepada lawannya. Jika lawannya
tidak menginginkan critical section (flag-nya false), maka
proses tersebut dapat menggunakan critical section, dan setelah selesai
menggunakan critical section ia akan mengubah flag-nya menjadi false.
Tetapi apabila proses lawannya juga menginginkan critical section maka
proses lawan-lah yang dapat memasuki critical section, dan proses
tersebut harus menunggu sampai proses lawan menyelesaikan critical section
dan mengubah flag-nya menjadi false.
Misalkan ketika P0
membutuhkan critical section, maka P0 akan mengubah flag[0] = true,
lalu P0 mengubah turn= 1. Jika P1 mempunyai flag[1] = false,
(berapapun nilai turn) maka P0 yang dapat mengakses critical section.
Namun apabila P1 juga membutuhkan critical section, karena flag[1]
= true dan turn= 1, maka P1 yang dapat memasuki critical
section dan P0 harus menunggu sampai P1 menyelesaikan critical section
dan mengubah flag[1] = false, setelah itu barulah P0 dapat
mengakses critical section.
Bagaimana bila kedua
proses membutuhkan critical section secara bersamaan? Proses mana yang
dapat mengakses critical section terlebih dahulu? Apabila kedua proses
(P0 dan P1) datang bersamaan, kedua proses akan menset masing-masing flag
menjadi true (flag[0] = true dan flag[1] = true),
dalam kondisi ini P0 dapat mengubah turn = 1 dan P1 juga dapat mengubah turn =
0. Proses yang dapat mengakses critical section terlebih dahulu adalah
proses yang terlebih dahulu mengubah turn menjadi turn lawannya.
Misalkan P0 terlebih dahulu mengubah turn= 1, lalu P1 akan mengubah turn=
0, karena turn yang terakhir adalah 0 maka P0-lah yang dapat mengakses critical
section terlebih dahulu dan P1 harus menunggu.
Algoritma III memenuhi
ketiga syarat yang dibutuhkan. Syarat progress dan bounded waiting
yang tidak dipenuhi pada Algoritma I dan II dapat dipenuhi oleh algoritma ini
karena ketika ada proses yang ingin mengakses critical section dan tidak
ada yang menggunakan critical section maka dapat dipastikan ada proses
yang bisa menggunakan critical section, dan proses tidak perlu menunggu
selamanya untuk dapat masuk ke critical section.
4.
Algoritma Tukang Roti
Algoritma ini didasarkan
pada algoritma penjadwalan yang biasanya digunakan oleh tukang roti, dimana
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
Dengan demikian,
diketahui bahwa 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
section pada dua proses adalah Algoritma III. Sedangkan untuk masalah critical
section pada n-buah proses dapat diselesaikan dengan menggunakan Algoritma
Tukang Roti.
sumber: https://mediekaputra.wordpress.com/2011/03/26/critical-section/
PENGERTIAN
DAN CONTOH PROCESS CONTROL BLOCK
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.
Process Control
Block adalah informasi-informasi lain yang diperlukan SO
untuk mengendalikan dan koordinasi beragam proses aktif, termasuk ini:
- Keadaan proses: Keadaan mungkin, new ,ready ,running, waiting, halted, dan juga banyak lagi.
- Program counter: Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk ditambah code information pada kondisi apapun. Besertaan dengan program counter, keadaan/ status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya.
- Informasi manajemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasardan batas register. tabel page/ halaman, atau tabel segmen tergantung pada sistem memori yangdigunakan oleh sistem operasi (ch 9).
- Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan bataswaktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
- Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini,suatu daftar open file dan banyak lagi.
- PCB hanya berfungsi sebagai tempat menyimpan/gudang untuk informasi apapun yang dapatbervariasi dari prose ke proses.proses ini.
- CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.Register tersebut termasuk accumulator, index register, stack pointer, general-puposes register.
Elemen-elemen dari PCB
itu sendiri adalah :
Identifikasi Proses
yaitu Identifier numerik yang meliputi
- Identifier proses
- Identifier proses yang menciptakan
- Identifier pemakai
Informasi Status
Pemroses yang meliputi
- 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, a.l.:
1. Program
counter
2. PSW,
dsb.
- Pointer stack yaitu Tiap proses mempunyai satu stack atau lebih. Stack digunakan untuk parameter atau alamat prosedur pemanggil dan system call. Pointer stack menunjuk posisi paling atas dari stack
Informasi Kendali
Pemroses meliputi
- Informasi penjadwalan dan status yaitu Informasi-informasi yang dipakai untuk menjalankan fungsi penjadwalan a.l :
1. Status
proses. Mendefinisikan status proses (running,ready,block, dsb)
2. Prioritas.
Menjelaskan prioritas proses
3. Informasi
berkaitan penjadwalan. Informasi ini seperti lama menunggu, lama proses
terakhir dieksekusi dsb.
4. Kejadian
(Event). Identitas kejadian yang ditunggu proses
- Penstrukturan data yaitu Suatu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring, atau struktur lainnya. PCB harus memiliki pointer untuk mendukung struktur ini.
- Komunikasi antar proses yaitu Beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi antara dua proses yang terpisah. Informasi ini disimpan dalam PCB
- Kewenangan proses yaitu Proses dapat mempunyai kewenangan berkaitan dengan memori dan tipe instruksi yang dapat dijalankan
- Manajemen memori Bagian ini berisi pointer ke tabel segmen atau page yang menyatakan memori virtual proses
- Kepemilikan dan utilisasi sumber daya yaitu Sumber daya yang dikendalikan proses harus diberi tanda, misalnya :
1. Berkas
yang dibuka
2. Pemakaian
pemroses
3. Pemakaian
sumberdaya lainnya
sumber: https://uniquesciences.wordpress.com/2012/10/04/process-control-block-pcb/
http://femmifirdausahdiat.blogspot.com/2012/09/pcb-process-control-block.html
http://femmifirdausahdiat.blogspot.com/2012/09/pcb-process-control-block.html
PENGERTIAN DAN CONTOH DISTRIBUTED PROCESSING
Distributed Data
Processing System (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
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 :
- Kumpulan dari data logik yang digunakan bersama-sama.
- Data di bagi menjadi beberapa fragment.
- Fragment mungkin mempunyai copy ( replika ).
- Fragment / replika nya di alokasikan pada yang digunakan.
- Setiap site berhubungan dengan jaringan komunikasi.
- Data pada masing-masing site dibawah pengawasan DBMS.
- DBMS pada masing-masing site dapat mengatasi aplikasi lokal, secara otonomi.
- Masing-masing DBMS berpastisipasi paling tidak satu global aplikasi.
Persyaratan &
Tujuan pendukung System Pengolahan Data Terdistribusi
- Penggunaan komputer Mini & Mikro(dimana interkoneksi micro computer, mini computer dan large computer lebih efektif biayanya).
- Pemakaian teknik Database. (dapat sharing data oleh banyak user).
- Corporation wide work.
- Struktur jaringan yang fleksibel.
- Penggunaan standard line control & network architecture.
Contoh Sistem
Pengolahan Data terdistribusi
- Internet
·
Jaringan komputer dan aplikasi
yang heterogen.
·
Mengimplementasikan
protokol internet.
- Intranet
·
Jaringan yang teradminitrasi
secara lokal.
·
Terhubung ke internet melalui
feriwall.
·
Menyediakan layanan internet dan
eksternal.
- Mobile Computing ( Sistem Komunikasi telepon seluler)
·
Menggunakan frekuensi radio
sebagai media transmisi
·
Perangkat dapat bergerak kemanapun
asal masih terjangkau dengan frekuensinya
·
Dapat menghandle/dihububngkan
dengan perangkat lain
- Sistem Telepon
·
ISDN atau yang biasa disebut jaringan
telpon tetap (dengan kabel).
·
PSTN jaringan telepon/telekomunikasi
yang semuanya digital.
- Network File System (NTFS)
·
WWW
- Arsitektur client server yang diterpakan dalam infrastruktur internet
Contoh
Impementasi Distributed Data Processing System
Aplikasi facebook.Com
yang biasa anda gunakan untuk bersosialisai dengan saudara, kawan dan orang di
seluruh dunia melalui internet. Bila kita lihat aplikasi tersebut, database
tidak didistribusikan, tetapi proses sistem dan penggunaan fungsi-fungsi atau feature
pada sistem terpisah-pisah prosesnya tidak satu proses saja dalam satu waktu.
Pada waktu tertentu ada orang yang sedang isi status, dan mungkin di waktu yang
sama ada sedang mencari teman, ada yang mengupload foto dan sebagainya.
Tampak disini beberapa proses pada sistem terdistribusi pada setiap client
yang berbeda.
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.
(Sumber : https://fskita.com/2018/07/13/distributed-data-processing-system-berserta-contoh-implementasi/)
Terdapat beberapa keuntungan utama dari program
yang multithreading, yaitu sebagai berikut:
PENGERTIAN DAN CONTOH
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.
PENGERTIAN DAN CONTOH THREAD
Thread dalam sistem
operasi dapat diartikan sebagai sekumpulan perintah (instruksi) yang dapatdilaksanakan
(dieksekusi) secara sejajar dengan ulir lainnya, dengan menggunakan cara time slice
(ketika satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya) atau multiprocess
(ketika ulir-ulir tersebut dilaksanakan oleh CPU yang berbeda dalam satu
sistem).
Ulir sebenarnya mirip
dengan proses, tapi cara berbagi sumber daya antara proses dengan
ulir sangat berbeda. Multiplethread dapat dilaksanakan secara
sejajar pada sistem komputer. Secaraumum multithreading melakukan time-slicing (sama
dengan time-division multipleks), di manasebuah CPU bekerja pada ulir yang
berbeda, di mana suatu kasus ditangani tidak sepenuhnyasecara serempak, untuk
CPU tunggal pada dasarnya benar-benar melakukan sebuah pekerjaan pada satu
waktu.
Thread saling berbagi
bagian program, bagian data dan sumber daya sistem operasi dengan thread lain
yang mengacu pada proses yang sama. Thread terdiri atas ID thread, program
counter,himpunan register, dan stack. Dengan banyak kontrol thread proses dapat
melakukan lebih darisatu pekerjaan pada waktu yang sama.
Model Multithread
Beberapa terminologi
yang akan di bahas , yaitu :
• User (pengguna)
thread User thread didukung di atas kernel dan diimplementasi oleh thread
library pada user level. library menyediakan fasilitas untuk pembuatan
thread, penjadualan thread, dan managemen thread tanpa dukungan dari
kernel.
Adapun kelemahannya
yang dialami yaitu apabila kernelnya merupakan thread tunggal maka apabila
salah satu user-level thread menjalankan blocking system call maka akan
mengakibatkan seluruh proses diblok walau pun ada thread lain yang dapat
jalan dalam aplikasi tersebut
Contoh sistem operasi yang
mendukung kernel thread adalah windows NT, Solaris, digital UNIX..
Berdasarkan
Pemetaan Thread
Model
multithreading berdasarkan dengan pemetaan dibedakan menjadi tiga bagian,
yaitu:
1).
Many to One
Model ini memetakan beberapa thread
tingkatan user ke sebuah thread tingkatan kernel. Pengaturan
thread dilakukan dalam ruang user sehingga efisien hanya satu thread
user yang dapat mengakses thread kernel pada satu
saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada
multiprosesor.
2).
One to One
Model
ini memetakan setiap thread tingkatan user ke setiap thread. One to One menyediakan
lebih banyak concurrency dibandingkan model Many to One
Keuntungannya
sama dengan keuntungan thread kernel. Kelemahan model iniialah setiap pembuatan
thread user memerlukan tambahan thread kernel.Karena itu, jika mengimplementasikan
sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya
jumlah thread dibatasi dalam sistem.
3).
Many to Many
Model
ini memultipleks banyak thread tingkatan user ke thread kernel
yang jumlahnya sedikit atau sama dengan tingkatan user Model ini
mengizinkan developer membuat thread
sebanyak yang developer inginkan tetapi concurrency tidak dapat
diperoleh karena hanya satu thread yang dapat dijadwalkan oleh
kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread
yang bersangkutan dapat berjalan secara paralel pada multiprosessor.
Jenis
jenis proses Thread :
1. Single
Thread Process
Sebuah
proses tradisional atau heavyweight process mempunyai single
thread yang berfungsi sebagai pengendali. Dapat diartikan sebagai proses
yang bekerja secara berurutan sesuai dengan urutan masing-masing thread (terstruktur)
dan hanya mengerjakan satu tugas dalam satu waktu.
2. Multithread
Process
merupakan
satu atau beberapa thread yang dijalankan secara bersamaan(multiproses),
dimana masing-masing thread tersebut dijalankan pada jalur masing-masing.
Setiap thread pada multithread menjalankan kode atau script program
secara berurutan. Multithread dapat diartikan juga sebagai suatu proses
dengan thread banyak dapat mengerjakan lebih dari satu tugas pada
satu satuan waktu.
Keuntungan
Thread
1. * Responsiveness
Membuat
aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program
terus berjalan meski pun sebagian dari program tersebut diblok atau melakukan operasi
yang panjang, karena itu dapat meningkatkan respons kepada user. Sebagai contohnya
dalam Web browser yang multithreading, sebuah thread dapat melayani permintaan
user sementara thread lain berusaha menampilkan image.
2. * Resource
sharing
Thread
berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh prose
yang sama. Keuntungan dari berbagi kode adalah mengizinkan sebuah aplikasi
untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang
sama.
3. * Economy
Dalam
pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya.
Alternatifnya
adalah dengan useran thread, karena thread berbagi memori dan sumber daya proses
yang memilikinya maka akan lebih ekonomis untuk membuat dan context switch
thread. Akan sulit 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.
Sumber: