SISTEM OPERASI
Batch System dan Contohnya
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.
2 Contoh Batch Sytem
1. SISTEM BATCH
Pada tahun 1950-an
yaitu saat munculnya komputer generasi pertama,muncul konsep ini yaitu dengan menggunakan
job-job dalam satu angkatan,konsep ini merupakan cikal bakal dari sistem
operasi selanjutnya,tujuan dari konsep ini adalah untuk meningkatkan utilitas
CPU dalam menangani job-job yang ada. Batch sistem terdapat dua cara:
a. Resident Monitor
b. Overlap Operasi Antara I/O dengan CPU
Sistem Batch Pertama
Dengan mengeluarkan biaya yg
tinggi,manusia bisa mengatasi waktu dalam melakukan komputasi solusi yg di
lakukan adalah dengan mengadopsi sistem batch. Ide dasarnya adalah dengan
mengumpulkan semua job yg akan di kerjakan dan memasukannya ke dalam magnetik
tape.
2. Multiprogramming System
Beberapa job yg siap di
eksekusi,dikumpulkan dalam sebuah pool. Sistem operasi mengambil job-job
tersebut dan meletakan di memori dalam bentuk antrian .
3. Time Sharing Sitem
Sering juga di sebut
dengan”Multitasking”,teknik sama dengan “Multiprogramming system”,hanya saja
waktu bagi proses untuk menggunakan CPU di batasi,waktu mksimum penggunaan CPU
oleh proses ini disebut dengan “Quantum”.
4. Multiproccessing System
Multiproccessing merupkan ssuatu
system yg lebih dari satu CPU(prosessor) pekerjaan sebuah job di lakukan dengan
dua cara:
a. Pararel System
b. Distributed System
5. Real Time System
Real tyme system di gunakan jika
satu operasi melakukan kecepatan waktu dari prosesor atau aturan data dan
sering di gunakan sebagai pengontrol terhadap aplikasi-aplikasi tersebut
terdapat dua bentuk real time sistem yaitu:
a. Hard real time,menjamin critical task selesai tepat waktu
b. Soft real time,memberikan prioritas pada critical task di
banding dengan task lainnya sampai critical task tersebut selesai di kerjakan
6. Sistem operasi terpusat dan terdisistribusi
Istilah sistem operasi
terpusat dan terdistribusi terdapat pada system multiprocessing. System operasi
terpusat adalah system operasi yg dapat menangani multiprosesor di mana semua
prosesor menggunakan satu memori utama. Sebuah proses bertindak sebagai master
dan yg lainnya sebagai slave.
System operasi terdestribusi adalah system operasi yg dapat
menangani multiprosessor di mana masing-masing prosesor memiliki memory utama
tersendiri.
a. Pengaturan sumber daya
b. Keuntungan dari dua sistem
c. Kerugian dari sebuah system
Critical Section dan contohnya
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:
1.
Mutual
Exclusion
2.
Progress
3.
Bounded
Waiting
Ada dua jenis solusi untuk memecahkan masalah critical
section, yaitu.
1.
Solusi
Perangkat Lunak. Solusi ini
menggunakan algoritma-algoritma untuk mengatasi masalah critical
section.
2.
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.
Penjadwalan CPU
Penjadwalan CPU adalah suatu proses pengaturan atau
penjadwalan proses-proses yang ada di dalam komputer. Dimana proses-proses
tersebut berjalan dalam pola yang disebut Siklus Burst.
Penjadwalan sangat penting dalam menentukan performance sebuah
komputer karena mengatur alokasi resource dari CPU untuk
menjalankan proses-proses di dalam komputer. Penjadwalan CPU merupakan suatu
konsep dasar dari multiprograming, karena dengan adanya penjadwalan
dari CPU itu sendiri maka proses-proses tersebut akan mendapatkan alokasi resource dari
CPU.
Penjadwalan CPU mungkin akan dijalankan ketika proses dalam
keadaan:
1.
Berubah dari running ke waiting
state.
2.
Berubah dari running ke ready
state.
3.
Berubah dari waiting ke ready
state.
4.
Dihentikan.
Penjadwalan nomor 1 dan 4 bersifat Non Preemptive sedangkan
lainnya Preemptive.
Penjadwalan yang biasa digunakan sistem operasi dewasa ini
biasanya bersifat Preemptive. Bahkan beberapa penjadwalan sistem
operasi, contohnya Linux 2.6, mempunyai kemampuan Preemptive terhadap system
call-nya ( preemptible kernel).
Penjadwalan CPU secara garis besar dibagi menjadi 2, yaitu
Penjadwalan Preemptive dan Penjadwalan Non Preemptive.
1. Penjadwalan Pre-emptive
Penjadwalan Preemptive mempunyai arti
kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang
berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi.
Penjadwalan ini bisa saja termasuk penjadwalan proses atau I/O.
Dengan kata lain, penjadwalan Preemptive melibatkan
mekanisme interupsi yang menyela proses yang sedang berjalan dan memaksa sistem
untuk menentukan proses mana yang akan dieksekusi selanjutnya.
Penjadwalan Preemptive memungkinkan sistem
untuk lebih bisa menjamin bahwa setiap proses mendapat sebuah slice waktu
operasi. Dan juga membuat sistem lebih cepat merespon terhadap event dari
luar (contohnya seperti ada data yang masuk) yang membutuhkan reaksi cepat dari
satu atau beberapa proses.
Lama waktu suatu proses diizinkan untuk dieksekusi dalam
penjadwalan Preemptive disebut time slice/quantum.
Penjadwalan berjalan setiap satu satuan time slice untuk
memilih proses mana yang akan berjalan selanjutnya. Bila time slice terlalu
pendek maka penjadwal akan memakan terlalu banyak waktu proses, tetapi
bila time slice terlau lama maka memungkinkan proses untuk
tidak dapat merespon terhadap event dari luar secepat yang
diharapkan.
Dalam waktu-waktu tertentu, proses dapat dikelompokkan ke
dalam dua kategori: proses yang memiliki Burst I/O yang sangat
lama disebut I/O Bound, dan proses yang memiliki Burst CPU
yang sangat lama disebut CPU Bound. Terkadang juga suatu sistem
mengalami kondisi yang disebut busywait, yaitu saat dimana sistem
menunggu request input(seperti disk, keyboard,
atau jaringan). Saat busywait tersebut, proses tidak melakukan
sesuatu yang produktif, tetapi tetap memakan resource dari
CPU. Dengan penjadwalan Preemptive, hal tersebut dapat dihindari.
Keuntungan penggunaan penjadwalan pre-emptive:
a. sistem lebih
responsif daripada sistem yang memakai penjadwalan Non Preemptive.
b. Sistem terhindar dari
keadaan busywait.
contoh sistem operasi yang menerapkan penjadwalan Preemptive:
Windows 95, Windows XP, Linux, Unix, AmigaOS, MacOS X, dan
Windows NT .
2. Penjadwalan Non
Pre-emptive
Penjadwalan Non Preemptive ialah salah satu
jenis penjadwalan dimana sistem operasi tidak pernah melakukan context
switch dari proses yang sedang berjalan ke proses yang lain. Dengan
kata lain, proses yang sedang berjalan tidak bisa di- interupt.
Penjadwalan Non Preemptive terjadi ketika
proses hanya:
1.
Berjalan dari running state sampai waiting state.
2.
Dihentikan.
Ini berarti CPU menjaga proses sampai proses itu pindah
ke waiting state ataupun dihentikan (proses tidak diganggu).
Metode ini digunakan oleh Microsoft Windows 3.1 dan Macintosh. Ini
adalah metode yang dapat digunakan untuk platforms hardware tertentu,
karena tidak memerlukan perangkat keras khusus (misalnya timer yang
digunakan untuk meng interupt pada metode penjadwalan Preemptive).
Dispatcher
Komponen yang lain yang terlibat dalam penjadwalan CPU
adalah dispatcher.
Dispatcher adalah
modul yang memberikan kontrol CPU kepada proses yang sedang terjadwal.
Fungsinya:
1.
Context
switching
Mengganti state dari suatu proses dan mengembalikannya untuk
menghindari monopoli CPU time. Context switching dilakukan
untuk menangani suatu interrupt(misalnya menunggu waktu I/O). Untuk
menyimpan state dari proses-proses yang terjadwal sebuah Process
Control Block harus dibuat untuk mengingat proses-proses yang sedang
diatur scheduler. Selain state suatu proses, PCB juga
menyimpan process ID, program counter(posisi saat ini
pada program), prioritas proses dan data-data tambahan lainnya.
1.
Switching
to user mode dari kernel mode.
2.
Lompat dari suatu bagian di
progam user untuk mengulang program.
Dispatcher seharusnya
dapat dilakukan secepat mungkin. Dispatch Latency adalah waktu
yang diperlukan dispatcher untuk menghentikan suatu proses dan
memulai proses yang lain.
Sistem Operasi - PCB (process control block)
PCB (process control block) dalam Sistem Operasi
Sebagai pendahuluan kita harus mengenal dulu apa itu Sistem
Operasi,Sistem operasi adalah seperangkat program yang mengelola sumber daya
perangkat keras komputer, dan menyediakan layanan umum untuk aplikasi perangkat
lunak. Sistem operasi adalah jenis yang paling penting dari perangkat lunak
sistem dalam sistem komputer. Tanpa sistem operasi, pengguna tidak dapat
menjalankan program aplikasi pada komputer mereka, kecuali program aplikasi
booting.
Sistem operasi mempunyai penjadwalan yang sistematis
mencakup perhitungan penggunaan memori, pemrosesan data, penyimpanan data, dan
sumber daya lainnya.Untuk fungsi-fungsi perangkat keras seperti sebagai masukan
dan keluaran dan alokasi memori, sistem operasi bertindak sebagai perantara
antara program aplikasi dan perangkat keras komputer,meskipun kode aplikasi
biasanya dieksekusi langsung oleh perangkat keras dan seringkali akan
menghubungi OS atau terputus oleh itu. Sistem operasi yang ditemukan pada
hampir semua perangkat yang berisi komputer-dari ponsel dan konsol permainan
video untuk superkomputer dan server web.
Contoh sistem operasi modern adalah Linux, Android, iOS, Mac
OS X, dan Microsoft Windows.
Definisi Proses
Proses adalah program yang sedang dieksekusi. Menurut
SilberSchatz, suatu proses adalah lebih dari sebuah kode program, yang
terkadang disebut text section . Proses juga mencakup program counter , yaitu
sebuah stack untuk menyimpan alamat dari instruksi yang akan dieksekusi
selanjutnya dan register. Sebuah proses pada umumnya juga memiliki sebuah stack
yang berisikan data-data yang dibutuhkan selama proses dieksekusi (seperti
parameter method, alamat return dan variabel lokal), dan sebuah data section
yang menyimpan variabel global.
Kami tekankan bahwa program itu sendiri bukanlah sebuah
proses; suatu program adalah satu entitas pasif; seperti isi dari sebuah berkas
yang disimpan didalam disket. Sedangkan sebuah proses dalam suatu entitas
aktif, dengan sebuah program counter yang menyimpan alamat instruksi selanjut
yang akan dieksekusi dan seperangkat sumber daya ( resource yang dibutuhkan
agar sebuah proses dapat dieksekusi.
Setiap proses dalam sebuah sistem operasi mendapatkan sebuah
PCB (Process Control Block) yang memuat informasi tentang proses tersebut,
yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor
identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses
dalam memori. Prioritas proses merupakan suatu nilai atau besaran yang
menunjukkan seberapa sering proses harus dijalankan oleh prosesor. Proses yang
memiliki prioritas lebih tinggi, akan dijalankan lebih sering atau dieksekusi
lebih dulu dibandingkan dengan proses yang berprioritas lebih rendah. Suatu
sistem operasi dapat saja menentukan semua proses dengan prioritas yang sama,
sehingga setiap proses memiliki kesempatan yang sama. Suatu sistem operasi
dapat juga mengubah nilai prioritas proses tertentu, agar proses tersebut akan
dapat memiliki kesempatan lebih besar pada eksekusi berikutnya (misalnya: pada
proses yang sudah sangat terlalu lama menunggu eksekusi, sistem operasi
menaikkan nilai prioritasnya).
Proses control block
Tiap proses digambarkan dalam sistem operasi oleh sebuah
process control block PCB - juga disebut sebuah control block. PCB berisikan
banyak bagian dari informasi yang berhubungan dengan sebuah proses yang
spesifik, termasuk hal-hal dibawah ini:
1.Status proses: status mungkin, new, ready, running,
waiting, halted, dan juga banyak lagi.
2.Program counter: suatu stack yang berisi alamat dari
instruksi selanjutnya untuk dieksekusi untuk proses ini.
3.CPU register: Register bervariasi dalam jumlah dan jenis,
tergantung pada rancangan komputer. Register tersebut termasuk
accumulator , indeks register, stack pointer , general-purposes register ,
ditambah code information pada kondisi apa pun. Besertaan dengan program
counter, keadaaan/status informasi harus disimpan ketika gangguan terjadi,
untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya
(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
7Accounting information : memberikan informasi yang
dibutuhkan
Macam-Macam Jenis Status Proses
Jenis status yang mungkin dapat disematkan pada suatu proses
pada setiap sistem operasi dapat berbeda-beda. Tetapi paling tidak ada 3 macam
status yang umum, yaitu:
1.Ready adalah status dimana proses siap untuk dieksekusi
pada giliran berikutnya
2.Running adalah status dimana saat ini proses sedang
dieksekusi oleh prosesor
3.Blocked adalah status dimana proses tidak dapat dijalankan
pada saat prosesor siap/bebas
Distributed Processing
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.
Pemrosesan terdistribusi adalah penggunaan lebih dari satu
prosesor untuk melakukan pengolahan untuk tugas individu. Contoh pemrosesan
terdistribusi dalam sistem database Oracle muncul dalam Gambar 6-1.
Dalam Bagian A dari gambar, klien dan server yang terletak
di komputer yang berbeda, komputer ini terhubung melalui jaringan. Server dan
klien dari sistem database Oracle berkomunikasi melalui Net8, antarmuka
jaringan Oracle.
Dalam Bagian B dari gambar, satu komputer memiliki lebih
dari satu prosesor, dan prosesor yang berbeda memisahkan pelaksanaan aplikasi
klien dari Oracle.
Figure 6-1 The Client/Server Architecture and Distributed
Processing
Oracle client / server arsitektur dalam lingkungan
pemrosesan terdistribusi memberikan manfaat sebagai berikut
– 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).
– 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.
REPORT THIS AD
– 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.
– 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) .
– Dalam
lingkungan jaringan, Anda dapat menggunakan workstation klien murah untuk
mengakses data remote dari server efektif.
– 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.
– 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.
– 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.
Distributed data processing / pemrosesan data terdistribusi
Merupakan sekumpulan peralatan pemrosesan yang saling
terhubung melalui jaringan yang mengerjakan tugas-tugas tertentu.
Pemrosesan terdistribusi dapat dikelompokan berdasarkan
beberapa kriteria yaitu :
Struktur antar hubungan
Kesaling tergantungan komponen-komponen.
Keselarasan antar komponen.
Distributed database system / system database terdistribusi
Merupakan sekumpulan database yang saling terhubung secara
logical dan secara fisik terdistribusi pada berbagai tempat melalui jaringan
computer.
Sistem yang mengelola
database terdistribusi dan menyediakan mekanisme agar distribusi
transparent adalahdistributed database management system (DDBMS).
REPORT THIS AD
Ciri-ciri untuk system yang bukan merupakan system database
terdistribusi :
Sistem yang berisi kumpulan file
Berbagai arsitektur fisik berkait dengan system
multiprocessor.
Ciri sistem database distribusi
Data disimpan pada sejumlah tempat. Setiap tempat secara
logic terdiri dari processor tunggal.
Processor pada tempat yang berbeda tersebut dihubungkan
dengan jaringan computer.
Bukan sekumpulan file yang berada pada berbagai tempat
tetapi merupakan database pada berbagai tempat.
Setiap tempat mempunyai kemampuan untuk mandiri memproses
permintaan user yang membutuhkan akses kedata ditempat tersebut, dan juga mampu
untuk memproses data yang tersimpan di tempat lain
Keuntungan dan Kelemahan sistem database distribusi
– Keuntungan :
Pengelolaan secara transparan data terdistribusi dan
replicated.
Mengacu pada struktur organisasi
Meningkatkan kemampuan untuk share dan otonomi local
Meningkatkan ketersediaan data
Meningkatkan kehandalan
Meningkatkan unjuk kerja
Memudahkan pengembangan system
– Kelemahan :
Kompleksitas manajemen
Control integritas lebih sulit
Biaya pengembangan
Keamanan
Kurang standarisasi
Menambahkan kebutuhan penyimpanan
Lebih sulit dalam mengatur lingkungan data
Menambah biaya pelatihan.
HandHeld
Pengertian Sistem 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 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 PADA SISTEM OPERASI
1.Thread
- 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.
2.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.
3. Keuntungan Multi-Threading
- 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.
- 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.
- 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.
- 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.
REPORT THIS AD
4. Kerugian Multi-Threading
- Multiple
thread bisa mengganggu satu sama lain saat berbagi hardware resource,
misalnya chace memory.
- 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.
- Harus
ada dukungan dari hardware ataupun software untuk melakukan
multi-Threading.
5. Model-Model Threading
- 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.
REPORT THIS AD
6. Thread dalam Sistem Operasi
- Sistem
operasi telah mendukung proses multithreading.
- Setiap
sistem operasi memiliki konsep tersendiri dalam pengimplementasiannya.
- Sistem
operasi dapat mendukung thread pada tingkatan kernel maupun tingkatan
pengguna.
- Model
Multi-Threading
- Memetakan
beberapa thread tingkatan pengguna
- ke
sebuah thread tingkatan kernel.
- Pengaturan
thread dilakukan dalam ruang
- pengguna,
sehingga efisien.
- Hanya
satu thread pengguna yang dapat
- mengakses
thread kernel pada satu saat.
- One-to-One
- Memetakan
setiap thread tingkatan pengguna ke thread kernel.
- Model
ini menyediakan lebih banyak concurrency dibandingkan model Many-to-One.
- D3
KomSI UGM Sistem Operasi
- Many-to-Many
REPORT THIS AD
- Mengelompokkan
banyak thread pengguna untuk dipetakan ke thread kernel yang
- jumlahnya
lebih sedikit atau sama dengan tingkatan pengguna.
- Mengijinkan
sistem operasi untuk membuat sejumlah thread kernel.
7. Cancellation
Thread cancellation ialah pemberhentian thread sebelum
tugasnya selesai. Umpama, 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 biasa disebut target
thread.Pemberhentian target thread dapat terjadi melalui dua cara yang
berbeda:Asynchronous cancellation: suatu thread seketika itu juga
memberhentikan target thread.
Defered cancellation: target thread secara perodik memeriksa
apakah dia harus berhenti, cara ini memperbolehkan target thread untuk
memberhentikan dirinya sendiri secara terurut.
Alternatifnya adalah dengan menggunakan deffered
cancellation. Cara kerja dari deffered cancellation adalah dengan menggunakan
satu thread yang berfungsi sebagai pengindikasi bahwa target thread hendak
diberhentikan. Tetapi pemberhentian hanya akan terjadi jika target thread
memeriksa apakah ia harus berhenti atau tidak. Hal ini memperbolehkan thread
untuk memeriksa apakah ia harus berhenti pada waktu dimana ia dapat
diberhentikan secara aman yang aman. Pthread merujuk tersebut sebagai
cancellation points.
8.Threads 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.
9. Keuntungan thread pool:
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 pentingpada sistem yang tidak
dapat mendukung banyak thread yang berjalan secara concurrent.
Daftar Pustaka :