Definisi dan Contoh dari Batch system, Critical Section, Process Control Block , Distributed Processing, Handheld, dan Thread
1. BATCH SYSTEM
a. Definisinya:
Batch
system adalah suatu perintah yang mirip, dikumpulkan dan dijalankan secara berkelompok
kemudian setelah kelompok dijalankan tadi selesai maka secara otomatis kelompok
lain dijalankan secara berurutan. Artinya, 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. Tapi, dalam beberapa fungsi sistem
operasi, seperti os yang tengah berkembang pada jaman sekarang ini. Contohnya
adalah FMS (Fortarn Monitoring System) dan IBSYS.
Adapun
bentuk dari Batch System ini, yaitu:
1) 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.
2) 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.
Dalam
Batch System juga terdapat 2 cara, yaitu:
1) 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”
2) Overlap Operasi antara Input/Output 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. Sementara 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.
b. Contohnya:
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.
2. CRITICAL SECTION
a.
Definisinya:
Critical
Section adalah segmen kode yang mengakses data yang digunakan proses secara bersama-sama
yang dapat membawa proses itu ke bahaya race condition. Biasanya sebuah proses
sibuk melakukan perhitungan internal dan hal-hal lainnya tanpa ada bahaya yang
menuju ke race condition pada sebagian besar waktu. Akan tetapi, biasanya
setiap proses memiliki segmen kode dimana proses itu dapat mengubah variabel,
meng- update suatu tabel, menulis ke suatu file, dan lain-lainnya, yang dapat
membawa proses itu ke bahaya race condition.
Struktur
umum dari proses Pi yang memiliki segmen Critical Section 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.
Adapun
beberapa kode yang dimiliki oleh Critical Section, yaitu:
1) Entry
Section adalah kode yang digunakan untuk masuk ke dalam critical section
2) Critical
Section adalah kode di mana hanya ada satu proses yang dapat dieksekusi pada
satu waktu.
3) Exit
Section adalah khir dari critical section, mengizinkan proses lain.
4) Remainder
Section adalah kode istirahat setelah masuk ke proses critical section
Dengan
begitu, terdapat juga solusi dari Critical Section, yaitu:
1) Mutual
Exclusion. Jika proses pi sedang mengeksekusi critical section-nya maka tidak
ada proses lain yang dapat mengeksekusi dalam critical section mereka.)
2) Terjadinya
Kemajuan (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.
3) Adanya
batas waktu tunggu (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.
Namun,
ada dua jenis solusi untuk memecahkan masalah Critical Section. Pertama, Solusi
Perangkat Lunak. Solusi ini menggunakan algoritma-algoritma untuk mengatasi
masalah critical section. Kedua, 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.
b.
Contohnya:
1) Algoritma
1
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 Pidiizinkan 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.)
Kode
programnya, yaitu:
/**
* 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;
}
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.
2) Algoritma
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
Piakan 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.
/**
* 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];
}
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 di critical
section pada saat yang bersamaan, yang akan melanggar syarat mutual exclusion.
3) Algoritma
3
Dengan
menggabungkan algoritma 1 dan algoritma 2, kita akan memperoleh solusi yang
tepat untuk masalah critical 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];
}
3. PROCESS CONTROL BLOCK
a.
Definisinya:
Blok
kontrol proses (PCB) adalah struktur data yang digunakan oleh sistem operasi
komputer untuk menyimpan semua informasi tentang suatu proses . Ini juga
dikenal sebagai deskriptor proses. Ketika suatu proses dibuat (diinisialisasi
atau diinstal), sistem operasi membuat blok kontrol proses yang sesuai. Informasi
dalam blok kontrol proses diperbarui selama transisi status proses. Ketika
proses berakhir, PCBnya dikembalikan ke pool tempat PCB baru diambil. Setiap
proses memiliki satu PCB.
Peran
PCB sangat penting dalam manajemen proses karena mereka diakses atau
dimodifikasi oleh sebagian besar utilitas, terutama yang terlibat dengan
penjadwalan dan manajemen sumber daya. Dan ketika suatu proses dibuat maka
sistem operasi membuat blok kontrol prosesnya.
PCB
berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses
yang spesifik, termasuk hal-hal di bawah ini:
1) Status
Proses. Status new, ready, running, waiting, halted, dan lain-lain.
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, register indeks, stack
pointer, general-purposes register, ditambah code information pada kondisi apa
pun. Beserta dengan program counter, keadaan/status informasi harus disimpan
ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja
dengan benar setelahnya.
4) 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.
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 M/K. 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.
Adapun
3 kelompok dari PCB yaitu :
1) Process
identification data selalu menyertakan sebuah identifier unik untuk prosesnya
(hampir selalu bernilai integer) dan, dalam sebuah sistem
multiuser-multitasking, data seperti identifier proses induk, identifier
pengguna, identifier grup pengguna, dll. Proses ini sangan relevan, karena itu
sering digunakan untuk referensi silang tabel OS, misalnya memungkinkan untuk
mengidentifikasi proses yang menggunakan device I/O, atau daerah memori.
2) Processor
state data adalah potongan-potongan informasi yang mendefinisikan status dari
suatu proses ketika proses itu ditangguhkan, yang memungkinkan OS untuk
melakukan restart proses nantinya dan masih dapat mengeksekusinya dengan benar.
Hal ini selalu menyertakan isi dari register CPU tujuan.
3) Process control data digunakan oleh OS untuk mengelola proses itu sendiri.
b.
Contohnya:
Struktur data yang mengendalikan beberapa PCB adalah process table. Bisa saja beberapa PCB ditaruh pada daftar dalam waktu yang bersamaan. Process table ini menggambarkan sistem tersebut ketika OS menemukan tiap-tiap PCB melalui proses ID.
a. Definisinya:
Distributed
Processing (Komputasi Terdistribusi) adalah suatu sistem pada jaringan komputer
yang dihubungkan dengan cara tertentu sehingga tampak seperti satu komputer
bagi pemakai individual. Komputasi terdistribusi menggunakan sumber data
komputer yang ada dan melibatkan banyak komputer yang terdistribusi dan
terpisah secara geografis yang bertujuan untuk memecahkan berbagai macam
persoalan komputasi dalam skala besar.
Komputasi
terdistribusi mentransformasikan banyak komputer dalam satu jaringan yang dapat
digunakan secara efektif seperti halnya sebuah komputer saja, sehingga
memaksimalkan penggunaan sumber daya komputasi. Hal ini berarti bahwa setiap
klien dalam jaringan dapat mengakses setiap file data yang terdapat dalam jaringan,
menjalankan program komputer yang ada dalam jaringan (baik yang ada dalam
server maupun yang ada dalam klien).
Distributed Processing
mengerjakan semua proses pengolahan data secara bersama antara komputer 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 yang lain akan mengambil alih tugasnya.
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.
b. Contohnya:
1) 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.
2) Pada
penggunaan aplikasi media sosial. Aplikasi facebook 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.
5.
HANDHELD
a. Definisinya:
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.
Adapun
fungsi yang dimiliki oleh Handheld adalah Personal Digital Assistants (PDA),
yaitu:
1) 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.
2) 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.
b. Contohnya:
1) 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.
2) Symbia
OS adalah sistem operasi terbuka yang dikembangkan oleh Ltd. Yang dirancang
untuk digunakan peralatan bergerak (mobile).
6.
THREAD
a.
Definisinya:
Ulir,
utas atau thread singkatan dari "thread of execution" dalam ilmu
komputer, thread diartikan sebagai sekumpulan perintah (instruksi) yang dapat
dilaksanakan (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, tetapi cara berbagi sumber daya antara proses
dengan ulir sangat berbeda. Multiplethread dapat dilaksanakan secara sejajar
pada sistem komputer. Secara umum multithreading melakukan time-slicing (sama
dengan time-division multipleks), di mana sebuah CPU bekerja pada ulir yang
berbeda, di mana suatu kasus ditangani tidak sepenuhnya secara serempak, untuk
CPU tunggal pada dasarnya benar-benar melakukan sebuah pekerjaan pada satu
waktu. Teknik penggantian (switching) ini memungkinkan CPU seolah-olah bekerja
secara serempak.
Adapun
keuntungan memakai Thread, yaitu:
1) Tanggap:
Multi-threading mengizinkan program untuk terus berjalan walaupun pada bagian
program tersebut diblock atau sedang dalam keadaan menjalankan operasi yang
lama/panjang. Contohnya 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.
Keuntungan dari pembagian kode adalah aplikasi mempunyai perbedaan aktifitas
thread dengan alokasi.
3) Ekonomis:
Mengalokasikan memori dan sumber daya untuk membuat proses itu sangat mahal.
Alternatifnya thread membagi sumber daya dari proses, Jadi lebih ekonomis.
4) Pemberdayaan
arsitektur multiprosesor: Keuntungann dari multithreading dapat ditingkatkan
dengan arsitektur multiprosesor, dimana setiap thread dapat berjalan secara
parallel 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.
Thread
ada 2 macam. Pertama, Single threading ialah
proses hanya mengeksekusi satu thread dalam satu waktu. Kedua, Multi-threading
ialah proses dapat mengeksekusi sejumlah thread dalam satu waktu.
b. Contohnya:
Thread
pada Windows. Windows mengunakan Win32 API sebagai API utama dalam hampir semua
sistem operasi Microsoft. Selain itu windows mengimplementasi model relasi
One-to-One, dimana terdapat satu kernel thread yang berasosiasi dengan masing –
masing user thread. Thread pada windows secara umum mempunyai komponen sebagai
berikut :
·
Thread ID
·
Register set
·
User stack dan kernel stack
·
Private storage area.
Register
set, stacks dan private data storage disebut sebagai context dari sebuah
thread. Struktur data utama dari sebuah thread :
·
ETHREAD (executive thread block)
·
KTHREAD (kernel thread block)
·
TEB (thread environment block) ETHREAD
(executive thread block)
Bagian
penting dari ETHREAD adalah KTHREAD, Process ID, Thread start address. Blok
KTHREAD merupakan pointer yang merujuk pada kernel thread (KTHREAD), Process ID
juga merupakan suatu pointer yang menunjuk pada proses utama yang memiliki
thread tersebut dan Thread start address adalah alamat dari rutin awal thread.
REFERENSI:
http://jefrisuhardi.blogspot.com/2018/10/pengertian-dan-contoh-batch-system.html
http://ftp.gunadarma.ac.id/linux/docs/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/ch18s03.html
https://www.gurupendidikan.co.id/pengertian-sinkronisasi-sistem-operasi-lengkap/
http://stefhannylourensia.blogspot.com/2018/11/pengertian-dan-contoh-process-control.html
https://michaelaureliuss.wordpress.com/2018/11/02/distributed-processing/
http://muhammadakbar98.blogspot.com/2018/10/pengertian-distributed-processing.html
https://id.wikipedia.org/wiki/Handheld_computer
http://briyandhatama1.blogspot.com/2019/08/pengertian-dan-contoh-handheld.html
https://id.wikipedia.org/wiki/Utas_(komputer)
http://deniagung01.blogspot.com/2017/10/contoh-thread-pada-os-windows.html
Terima kasih telah mengunjungi blog saya. Semoga bermanfaat.







Komentar
Posting Komentar