Nama : Ilham Adriansyah
NIM :
8020190323
Kelas : 01PT3
1. Batch
Sistem
Batch system adalah dimana job-job
yang mirip dikumpulkan dan dijalankan secara kelompok kemudian setelah kelompok
yang dijalankan tadi selesai maka secara otomatis kelompok lain dijalankan.
jadi dengan kata lain adalah teknologi proses komputer dari generasi ke-2. yang
jika suatu tugas sedang dikerjakan pada 1 rangkaian, akan di eksekusi secara
berurutan. Pada komputer generasi ke-2 sistem komputer nya maasih blum
dilengkapi oleh sebuah sistem operasi. But, dalan beberapa fungsi sistem
operasi, seperti os yang tengah berkembang pada jaman sekarang ini. Contohnya
adlah FMS ( Fortarn Monitoring System ) dan IBSYS.
Jadi bisa disimpulkan, bahwa komputer
generasi ke-2 ini merupakan generasi pertama Sistem Operasi.
contoh sebuah Batch System adalah
sebuah e-mail dan transaksi batch processing. Dalam suatu sistem batch
processing, transaksi secara individual dientri melalui peralatan terminal,
dilakukan validasi tertentu, dan ditambahkan ke transaction file yang berisi
transaksi lain, dan kemudian dientri ke dalam sistem secara periodik. Di waktu
kemudian, selama siklus pengolahan berikutnya, transaction file dapat
divalidasi lebih lanjut dan kemudian digunakan untuk meng-up date master file
yang berkaitan.
ada 2 cara dalam Batch System yaitu :
1. Resident
Monitor
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 I/O dg CPU
Off
line Processing, data yg dibaca dari card reader disimpan dulu dalam tape
driver sebelum dibawa ke CPU, demikian pula informasi yg mau dicetak, disimpan
dulu di tape
Spooling
adalah suatu program dapat dikerjakan walaupun I/O masih
mengerjakan proses lainnya dan disk
secara bersamaan menggunakan data untuk banyak proses. Pengertian multi programming
adalah kegiatan menjalankan beberapa program pada memori pada satu waktu.
Multiprogramming System
Multi programming system adalah
dimana job-job disimpan di main memory di waktu yang sama dan CPU dipergunakan
bergantian. Hal ini membutuhkan beberapa kemampuan tambahan yaitu : Penyediaan
I/O routine oleh sistem, Pengaturan memori untuk mengalokasikan memory pada
beberapa Job, penjadwalan CPU untuk memilih job mana yang akan dijalankan,
serta pengalokasian hardware lain.Multiprogramming berarti meletakkan lebih
dari sebuah program di main memory. Cara ini dilakukan dengan membagi main
memory menjadi beberapa partisi. Tiap partisi akan menyimpan sebuah program.
Foreground partitions akan berisi program dengan prioritas yang lebih tinggi
sedang background partitions akan berisi program dengan prioritas yang lebih
rendah.
Meskipun setiap proses merupakan
Entitiy yang berdiri sendiri, dan masing-masing memiliki program Counter dan
status internal, beberapa proses sering kali harus berinteraksi dengan proses
yang lain. Keluaran dari suatu proses dapat menjadi masukan bagi proses yang
lain. Jika proses yang sedang menunggu masukan tidak menemukan masukan yang
dikehendaki, proses tersebut diblok sampai masukan tersedia.
Pada saat proses diblok, secara
logika proses tersebut tidak dapat dilanjutkan karena menuggu masukan yang
belum tersedia. Dapat terjadi bahwa proses yang Ready dan dapat di-run terpaksa
harus dihentikan karena sistem operasi arus mengalokasikan CPU ke proses lain
untuk sementara waktu.
Proses dapat berada pada status
berikut:
1. Submitt: Proses baru saja
dikirimkan oleh user dan masih menunggu untuk dilayani.
2. Running: Proses benar-benar
menggunakan CPU pada saat itu.
3. Ready: Proses berhenti sementara
untuk memberikan kesempatan pada proses lain untuk menggunakan CPU.
4. Blocked: Proses tidak dapat di-Run
sampai terjadi kejadian eksternal yang sesuai (misalkan selesainya operasi
input/output atau telah tersedianya data input).
5. Finished: Proses telah
dilaksanakan secara sempurna.
Di antara status Running, Ready dan
Blocked, hanya terdapat 4 kemungkinan perubahan status, yaitu:
1. Running ke Blocked: Terjadi jika
proses diblok, karena menunggu masukan atau menunggu selesainya aktivitas I/O.
2. Running ke Ready: Terjadi jika
Process Scheduler menghentikan proses yang sedang running untuk memberikan
kesempatan pada proses lain menggunakan CPU.
3. Blocked ke Ready: Terjadi jika ada
kejadian eksternal yang menyebabkan proses dapat dijalankan kembali. Misalnya
datangnya input atau selesainya suatu aktifitas I/O.
4. Ready ke Running: Terjadi jika
proses siap untuk menggunakan CPU dan masukan yang sesuai untuk proses tersebut
telah tiba.
Multitasking
Multitasking adalah adalah pemrosesan
beberapa tugas pada waktu yang bersamaan.
Cara Kerja Multitasking
Dewasa ini, penggunaan time-sharing
jarang digunakan, dan digantikan dengan multitasking.
Contoh sistem operasi jenis ini
antara lain adalah linux. Linux adalah sistem operasi yang multitasking dan
multiuser seperti kebanyakan SO yang ada pada saat ini. Multitasking pada linux
artinya linux bisa atau mampu menjalankan beberapa proses dalam waktu yang
bersamaan.
Seperti contoh pada saat kita
menjalan kan aplikasi web browser kita juga bisa menjalankan aplikasi kompresi
file. Sedangkan multiuser pada linux adalah user bisa login ke dalam sistem
secara bersamaan, dengan artinya user bisa menggunakan satu sistem secara
bersamaan dalam satu waktu. Multitasking dan multiuser pada sistem operasi
merupakan satu keharusan dalam masa ini.
Keuntungan sistem ini adalah :
1. Suatu perintah dapat dilaksanakan
secara tuntas sampai berakhir dengan prioritas tertinggi.
2. Mampu memproses lebih dari satu
perintah dalam waktu yang bersamaan.hal ini dapat terjadi karena kemampuan
membagi sumber daya yang tersedia. Jika suati perintah datang membutuhkan
sumber daya media simpan menyelesaikan perintah/pekerjaan yang telah
ditentukan, apabila datang perintah lain yang membutuhkan sumber daya memori
misalnnya, perintah tersebut dapat langsung dikerjakan tanpa menunggu perintah
sebelumnya selesai dierjakan.
Kelemahan dari sistem ini adalah jika
terdapat banyak perintah, maka akan terjadi antian perintah yang cukup panjang.
Pengguna harus menunggu perintah selesai dilaksanakan untuk memasukkan perintah
selanjutnya.
Manfaat metode ini akan terasa ketika
banyak terdapat perintah
yang menggunakan sumber daya yang berbeda, sehingga rangkaian perintah dapat diselesaikan dengan lebih cepat.
2. 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
sectiondiperlukan 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.
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.
Pada semua contoh, i adalah proses
yang sedang berjalan, j adalah proses yang lain. Pada contoh ini code.
i. Shared variables
• int turn
Initially
turn=0
• turn = i, Pi can
enter its critical section
ii. Process Pi
do {
while(turn!=1);
critical section
turn=j;
remainder section
} while(1);
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.
Setiap proses memantau suatu flag
yang mengindikasikan ia ingin memasuki critical section. Dia memeriksa flag
poses lain dan tidak akan memasuki critical section bila ada proses lain yang
sedang masuk.
Contoh :
i. Shared variables
• boolean
flag[2];
initially flag [0] = flag [1] = false
• flag [i] =
true , Pi ready to enter its critical section
ii. Process Pi
do {
flag[i]:=true;
while(turn!=1);
critical section
turn=j;
remainder section
} while(1);
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] =
truedan 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 waitingyang 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
sectionmaka dapat dipastikan ada proses yang bisa menggunakan critical section,
dan proses tidak perlu menunggu selamanya untuk dapat masuk ke critical
section.
Contoh :
FLAG untuk meminta izin masuk:
- Setiap proses mengeset sebuah flag
untuk meminta izin masuk. Lalu setiap proses mentoggle bit untuk mengizinkan
yang lain untuk yang pertama
- Kode ini dijalankan untuk setiap
proses i
Contoh :
Shared variables
F boolean flag[2];
initially flag[0] =
flag[1] = false
F flag[i] = true;
Pi ready to enter its critical
section
- Gabungan shared variables dari
algorima 1 dan 2
- Process Pi
do {
flag[i]:=true;
turn = j;
while(flag[j] and
turn = j);
critical section
flag[i] = false;
remainder section
} while(1);
-Memenuhi ketiga persyaratan,
memecahkan persoalan critical section untuk kedua proses
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.
Contoh :
Critical Section untuk n buah proses:
Sebelum memasukkan proses ke critical
section, proses menerima sebuah nomor. Pemegang nomor terkecil masuk ke
critical section. Jika ada dua proses atau lebih menerima nomor sama, maka
proses dengan indeks terkecil yang dilayani terlebih dahulu untuk masuk ke
critical section. Skema penomoran selalu naik secara berurut contoh: 1, 2, 3,
3, 3, 3, 4, 5,...
boolean choosing [n];
long long long int
number [n];
/* 64 bit maybe okay
for about 600 years */
Array structure
elements are initiallized to false and 0 respectively
while (true) {
choosing[i] = true;
number[i] = max(number[0], ... [n-1]) + 1;
choosing[i] = false;
for (j =
0; j < n; j ++) {
while (choosing[j]) {}
while ((number[j] !=0) &&
((number[j], j) < (number[i], i))) {}
}
number[i] = 0
}
Solves the
critical-section problem
for n process
3. Process
Control Block
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
4. Distributed
Processing
Distributed Processing
adalah kemampuan menjalankan semua proses pengolahan data secara bersama antara
komputer yang berfungsi sebagai pusat dengan beberapa komputer yang lebih kecil
dan saling dihubungkan melalui jalur komunikasi.
Setiap komputer tersebut
memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara
terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian
total. Jika salah satu prosesor mengalami kegagalan atau masalah maka prosesor
yang lain akan mengambil alih tugasnya. Dalam proses distribusi sudah mutlak
diperlukan perpaduan yang mendalam antara teknologi komputer dan
telekomunikasi, karena selain proses yang harus didistribusikan, semua host
komputer wajib melayani terminal-terminalnya dalam satu perintah dari komputer
pusat.
Definisi umum dari
pemrosesan terdistribusi merupakan cara untuk mempercepat pengolahan data atau
informasi dengan mendistribusikan pekerjaan atau intruksi ke banyak komputer
yang telah dipilih untuk memberi kekuatan pemrosesan yang lebih cepat. Tujuan dari
komputasi terdistribusi adalah menyatukan kemampuan dari sumber daya (sumber
komputasi atau sumber informasi) yang terpisah secara fisik, ke dalam suatu
sistem gabungan yang terkoordinasi dengan kapasitas yang jauh melebihi dari
kapasitas individual komponen-komponennya.
Tujuan lain yang ingin
dicapai dalam komputasi terdistribusi adalah transparansi. Kenyataan bahwa
sumber daya yang dipakai oleh pengguna sistem terdistribusi berada pada lokasi
fisik yang terpisah, tidak perlu diketahui oleh pengguna tersebut. Transparansi
ini memungkinkan pengguna sistem terdistribusi untuk melihat sumber daya yang
terpisah tersebut seolah-olah sebagai satu sistem komputer tunggal, seperti
yang biasa digunakannya. Dalam prosesnya setiap komputer berinteraksi satu sama
lain untuk mencapai tujuan bersama.
5. 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.
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
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.
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.
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.
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.
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
6. Thread
Thread adalah sebuah alur kontrol
dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa
perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari
multithreaded meliputi peningkatan respon dari user, pembagian sumber daya
proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur
multiprosesor.
User level thread adalah thread yang
tampak oleh programmer dan tidak diketahui oleh kernel. User level thread
secara tipikal dikelola oleh sebuah library thread di ruang user. Kernel level
thread didukung dan dikelola oleh kernel sistem operasi. Secara umum, user
level thread lebih cepat dalam pembuatan dan pengelolaan dari pada kernel
thread. Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan
kernel thread.
Model many to one: memetakan beberapa
user level thread hanya ke satu buah kernel thread.
Model one to one: memetakan setiap
user thread ke dalam satu kernel thread. Berakhir.
Model many to many: mengizinkan
pengembang untuk membuat user thread sebanyak mungkin, konkurensi tidak dapat
tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu
waktu.
Thread merupakan unit dasar dari penggunaan
CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack.
Sebuah thread berbagi code section, data section, dan sumber daya sistem
operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga
sering disebut lightweight process. Sebuah proses tradisional atau heavyweight
process mempunyai thread tunggal yang berfungsi sebagai pengendali.
Perbedaan antara proses dengan thread tunggal
dengan proses dengan thread yang banyak adalah proses dengan thread yang banyak
dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.
Keuntungan
1 Tanggap: Multithreading mengizinkan
program untuk berjalan terus walau pun pada bagian program tersebut di block
atau sedang dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai
contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan
suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
2 Pembagian sumber daya: Secara default,
thread membagi memori dan sumber daya dari proses. Keuntungan dari pembagian
kode adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi memori
yang sama.
3 Ekonomis: Mengalokasikan memori dan
sumber daya untuk membuat proses adalah sangat mahal. Alternatifnya, karena
thread membagi sumber daya dari proses, ini lebih ekonomis untuk membuat
threads.
4
Pemberdayaan arsitektur multiprosesor: Keuntungann dari multithreading
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. User thread didukung oleh kernel dan
diimplementasikan oleh thread library ditingkat pengguna. Library mendukung
untuk pembentukan thread, penjadualan, dan manajemen yang tidak didukung oleh
kernel.
Sumber :
- http://rochmadudinus.blogspot.com/2013/03/definisi-batch-system-multiprograming.html
- https://mediekaputra.wordpress.com/2011/03/26/critical-section/
- http://teknikkom15.blogspot.com/2012/04/critical-section.html
- Process Control Block (PCB) | LEARN FROM EXPERIENCE (wordpress.com)
- https://erarahma.wordpress.com/2015/06/26/distribusi-processing/
- http://arifbudimanhsb.blogspot.com/2016/06/distributed-processing-adalah.html
- http://siso06225.blogspot.com/
- http://kreasiku-info.blogspot.com/p/makalah-sistem-operasi-handheld.html
- Pengertian Thread (mata kuliah sistem operasi) dan keuntungan dari Thread (juliarnasution.blogspot.com)
Tidak ada komentar:
Posting Komentar