Zalfan Fadhlurahman
( 8020230204 )


Dalam komputer dan perangkat lunak, ada banyak jenis sistem dan ide yang membantu cara komputer bekerja dan berkomunikasi dengan orang dan gadget lainnya. Penting untuk mengetahui kata-kata ini untuk memahami cara kerja proses komputer dan cara memperbaikinya. Ini adalah prosedur langkah demi langkah :

1. Batch System




1.       Pengertian:

a.      Batch System Adalah suatu perintah yang mirip, yang dikumpulkan dan dijalankan secara berkelompok kemudian setelah kelompok dijalankan tadi selesai maka secara otomatis kelompok lain dijalankan secara berurutan.

Contoh : 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.

 

b.      Multiprogramming system adalah suatu metode yang memungkinkan dua buah program atau lebih dijalankan secara serentak dalam sebuah komputer dan berbagai sumber daya dalam waktu yang berlainan.

Contoh : Menjalankan program Microsoft Powerpoint bersamaan dengan Live Zoom

 

c.       Multitasking adalah sebuah metode dimana banyak pekerjaan atau dikenal juga sebagai proses diolah dengan menggunakan sumber daya CPU yang sama.

Contoh sistem operasi jenis ini antara lain adalah linux. Linux adalah sistem operasi yang multitasking danmultiuser seperti kebanyakan SO yang ada pada saat ini. Multitasking pada linux artinya linux bisa atau mampu menjalankan beberapa proses dalam waktu yang bersamaan.

 

d.      Real time system adalah Sistem yang harus menghasilkan responyang tepat dalam batas waktu yang telah ditentukan. Jika respon komputer melewati batas waktu tersebut, maka terjadi degradasi performansi atau kegagalan sistem.Sebuah Real time system adalah sistem yang kebenarannya secara logis didasarkan pada kebenaran hasil-hasil keluaran sistem dan ketepatan waktu hasil-hasil tersebutdikeluarkan. Aplikasi penggunaan sistem seperti ini adalah untuk memantau danmengontrol peralatan seperti motor, assembly line, teleskop, atau instrumen lainnya.Peralatan telekomunikasi dan jaringan komputer biasanya juga membutuhkan pengendalian secara Real time.

Contoh adalah pemesanan tiket pesawat on line.

 

2.       Perbedaaan :

a.       Sistem paralel adalah sistem yang mempunyai lebih dari satu prosessor yang dapat berkomunikasi, membagi bus, clock dan juga perangkat memory dan peripheral. Sistem ini disebut sebagai tightly coupled system.

Contoh : sistem UNIX versi Encore’s untuk komputer Multimax Komputer dapat dikonfigurasikan untuk menangani satu lusin prosessor, semua menjalankan UNIX.

 

b.      Sistem operasi terpusat adalah sistem operasi yg dapat menangani multiprocessor di mana semua processor menggunakan satu memori utama.

Contoh : Multiprocessing IMB System/370

 

c.       Sistem operasi terdistribusi adalah sistem operasi yg dapat menangani multiprocessor dimana masing-masing processor memiliki memori utama sendiri.

Contoh : pada Sistem Windows sering terjadi membagi data atau transfer data antara display. Jika beberapa site dihubungkan dengan lainnya dengan jaringan komunikasi, prosessor pada site yang berbeda dapat menukar informasi. User melakukan transfer file atau komunikasi dengan user lain melalui electronic mail. Seorang user dapat mengirim mail ke user lain pada site yang sama atau site yang berbeda.

 

3.       Cara Kerja system batch:

a.       Pertama-tama, pada sistem batch ini data-data yang ada dikumpulkan dan dihumpun menjadi satu kelompok untuk dimasukkan dalam database.

b.      Ketika dimasukkan dalam database, akan terjadi update master file untuk memastikan semua data dalam keadaan baik dan dicek ulang dan disortir juga sebelum dikirim pada database.

c.       Apabila terdapat data yang tidak valid akan dimasukkan dalam error report dan biasanya ditujukan pada aplikasi yang berjumlah transaksi sangat besar.

d.      Batch system ini sering digunakan pada pembaharuan tiga file master yaitu piutang, persediaan, dan analisis penjualan.

e.      Batch proses akan dilakukan dengan siklus harian dan dilakukan setiap hari. Kelemahan dari sistem ini adalah adanya kemungkinan manajemen data yang diberikan tidak memiliki informasi akurat yang menggambarkan sistem fisik perusahaan itu sendiri.

 

4.       Perbedaaan SO Terpusat dan terdisitribusi:

a.       Sistem Operasi Terpusat adalah sistem operasi yang dapat menangani multiprosesor dimana semua prosesor menggunakan satu memori utama. Sebuah prosesor sebagai master dan yang lainnya sebagai slave.

b.      Sistem Operasi Terdistribusi adalah sistem operasi yang dapat menangani multiprocessor dimana masing-masing processor memiliki memori utama sendiri.


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 keadaanmutually 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.

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 masalahcritical 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 turn1. 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 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 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 = 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 disebuttime 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 BurstCPU 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 interuptpada 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 timeContext switching dilakukan untuk menangani suatu interrupt(misalnya menunggu waktu I/O). Untuk menyimpan state dari proses-proses yang terjadwal sebuah Process Control Blockharus dibuat untuk mengingat proses-proses yang sedang diatur scheduler. Selain statesuatu proses, PCB juga menyimpan process IDprogram 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.

3. Process Control Block


Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB) – juga disebut sebuah control block. Sebuah PCB ditunjukkan dalam Gambar 1.1. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, Contoh sistem operasi modern adalah Linux, Android, iOS, Mac OS X, dan Microsoft Windows.

beberapa proses dibawah ini :
  • Keadaan proses: Keadaan mungkin, newreadyrunningwaitinghalted, dan juga banyak lagi.
  • Program counter Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk 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, ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaan/ status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya (lihat Gambar 1.2).
  • 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.
  • Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, 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 berkas dan banyak lagi.
  • PCB hanya berfungsi sebagai tempat menyimpan/ gudang untuk informasi apa pun yang dapat bervariasi dari prose ke proses.

Gambar 1.1 Process Control Blok 



Gambar 1.2 Cpu Register

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

4. Distributed Processing


Distributed Data Processing System  yang dalam bahasa indonesianya Sistem pengolahan data terdistribusi. Merupakan Sekumpulan komputer yang saling berkoneksi untuk memenuhi kebutuhan pengolahan informasi dari satu entity perusahaan atau organisasi modern. Didukung oleh komputer dan komunikasi, sistem pengolahan data terdistribusi merupakan media pelayanan data.

Sistem pengolahan data terdistribusi dalam arti lain yaitu meletakan sumber daya komputer pada tempat dimana  user berada, dimana sumber daya tersebut secara  geografis terpisah dan saling interkoneksi secara on-line atau secara langsung.

Sumber Daya Pengolahan Data Dalam Sistem Terdistribusi

Apa yang dimaksud sumber daya pengolahan data dalam sistem terdistribusi? Adapun yang dimaksud dengan Sumber daya yang didistribusikan  yaitu berupa sumber daya Platform (Hardware dan Software System), Aplikasi atau Proses dan Data atau Database. Terminologi sistem pengolahan datanya dapat berbentuk distribusi horisontal (setiap node komputer atau jaringan mempunyai kedudukan yang sama dengan node lainnya).Sedangkan distribusi vertical dimana ada penjenjangan atau hirarki antar node di setiap lokasi, misalnya kantor pusat, kantor wilayah, kantor cabang dan unit lebih kecil lainnya yang terdistribusi hirachical secara komputasi.

Diperlukan jaringan komunikasi komputer pada sistem pengolahan data terdistribusi untuk dapat saling berhubungan antar site. Jaringan komputer adalah interkoneksi antara sejumlah komputer autonomousyang dapat saling bertukar informasi antara komputer yang  saling terhubung. Bentuk komputer yang saling terhubung biasanya disebut dengan Node, Host atau Site. Bentuk hubungan antar komputer tidak hanya melalui kawat tembaga saja, tetapi dapat melalui serat optic, gelombang mikro dan satelit komunikasi

Sistem pengolahan data terdidtribusi dibangun pada top of network, sedemikian rupa sehingga jaringan tidak nampak pada user.  User tidak perlu tahu kerumitan pengelolaan jaringan, semuanya sudah dilakukan secara otomatik oleh sistem.

Sistem pengolahan data terdistribusi dapat diakses oleh pengguna dengan menggunakan dua aplikasi yaitu berupa aplikasi lokal dan aplikasi global, sehingga distributed data processing system memiliki karakteristik yaitu :

  • Kumpulan dari data logik yang digunakan bersama-sama.
  • Data di bagi menjadi beberapa fragment.
  • Fragment mungkin mempunyai copy ( replika ).
  • Fragment / replika nya di alokasikan pada yang digunakan.
  • Setiap site berhubungan dengan jaringan komunikasi.
  • Data pada masing-masing site dibawah pengawasan DBMS.
  • DBMS pada masing-masing site dapat mengatasi aplikasi lokal, secara otonomi.
  • Masing-masing DBMS berpastisipasi paling tidak satu global aplikasi.

Alasan Sistem Pengolahan Data Terdistribusi Digunakan Dalam Berbagai Perusahaan, Organisasi Dan Perkantoran

Perkembangan organisasi yang pada umumnya mempunyai banyak cabang yang tersebar dalam berbagai lokasi. Dan Menginginkan untuk mengintregrasikan antar cabang-cabang tersebut sehingga pertukaran data dan informasi dapat dilakukan dengan cepat dan koordinasi antar cabang dapat ditingkatkan lebih baik lagi.

Distributed data processing system juga sangat berperan, ini dikarenakan terdapat kebutuhan dan tuntutan baik dari pihak perusahaan maupun dari sisi customer agar user dan customer dapat berinteraksi dengan mudah.

Pengaruh Distributed Data Processing System Pada Organisasi

  1. Meningkatkan kemampuan komputasi
  2. Meningkatkan kemampuan Data Storage
  3. Memungkinkan kerja lebih efisien
  4. Meningkatkan End-user, manajemen punya otoritas lebih

Masalah pada End-User

Banyak End-user merasa tidak puas terhadap pelayanan dari organisasi Sentralisasi Data Prosesing :

  • Harus membuat/mengisi aplikasi form.
  • Menunggu proses yang lama.
  • Tidak dapat mengakses ke komputer setiap saat dimana ia membutuhkan.

Persyaratan & Tujuan pendukung System Pengolahan Data Terdistribusi

  • Penggunaan komputer Mini & Mikro(dimana interkoneksi micro computer, mini computer dan large computer lebih efektif biayanya).
  • Pemakaian teknik Database. (dapat sharing data oleh banyak user).
  • Corporation wide work.
  • Struktur jaringan yang fleksibel.
  • Penggunaan standard line control & network architecture.

Contoh Sistem Pengolahan Data terdistribusi

  1. Internet
  •   Jaringan komputer dan aplikasi yang heterogen.
  •    Mengimplementasikan protokol internet.
  1. Intranet
  •  Jaringan yang teradminitrasi secara lokal.
  •  Terhubung ke internet melalui feriwall.
  •  Menyediakan layanan internet dan eksternal.
  1. Mobile Computing ( Sistem Komunikasi telepon seluler)
  •  Menggunakan frekuensi radio sebagai media transmisi
  •  Perangkat dapat bergerak kemanapun asal masih terjangkau dengan frekuensinya
  •  Dapat menghandle/dihububngkan dengan perangkat lain
  1. Sistem Telepon
  • ISDN atau yang biasa disebut jaringan telpon tetap (dengan kabel).
  • PSTN jaringan telepon/telekomunikasi yang semuanya digital.
  1. Network File System (NTFS)
  •  WWW
  1. Arsitektur client server yang diterpakan dalam infrastruktur internet

Contoh Impementasi Distributed Data Processing System

Aplikasi facebook.Com yang biasa anda gunakan untuk bersosialisai dengan saudara, kawan dan orang di seluruh dunia melalui internet. Bila kita lihat aplikasi tersebut, database tidak didistribusikan, tetapi proses sistem dan penggunaan fungsi-fungsi atau feature pada sistem terpisah-pisah prosesnya tidak satu proses saja dalam satu waktu. Pada waktu tertentu ada orang yang sedang isi status, dan mungkin di waktu yang sama ada sedang mencari teman, ada yang mengupload foto dan sebagainya.  Tampak disini beberapa proses pada sistem terdistribusi pada setiap client yang berbeda.

Pada penggunaan aplikasi pembayaran / transaksi online pada suatu perusahaan, misalnya saja tiket pesawat terbang. Aplikasi tersebut juga contoh dari aplikasi pengolahan data terdistribusi, dimana data pembayaran ada tersimpan di database bank, sementara data tiketnya tersimpan di database server maskapai yang menyediakan aplikasi tiket online tersebut. Jadi dapat dikatakan bila aplikasi yang digunakan menggunakan database yang terpisah tidak satu database saja, maka dapat dikatakan itu adalah aplikasi pengolahan data terdistribusi atau dikenal juga dengan distributed  data processing system.


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.

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

6. Thread


Sistem Operasi — Ionos

Thread

Thread merupakan sebuah status eksekusi (running, ready, dll.), sering disebut dengan lightweight process. 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 merupakan cara dari komputer untuk menjalankan dua atau lebih task dalam waktu bersamaan, sedangkan multithreading adalah cara komputer untuk membagi-bagi pekerjaan yang dikerjakan sebagian-sebagian dengan cepat sehingga

  1. Single-threading : Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali.
  2. Multi-threading : Sebuah proses dengan thread yang banyak dan mengerjakan lebih dari satu tugas pada satu satuan waktu.
Single and Multi Threading Process

Proses-proses Thread dalam system 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. Adapun tipe dari thread ini adalah :

  1. Thread pengguna: Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan.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. Thread pengguna biasanya dapat cepat dibuat dan dikendalikan.
  2. Thread Kernel: Thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna. 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.
Process Thread

Model-model MultiThreading

Model Many-to-One. Model ini 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. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Kekurangannya adalah ketika ada satu blocking systemc call, semua akan menjadi terblok juga. Contoh: Solaris

Model Many to One

Model One-to-One. Model ini memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem.
Contoh: Windows NT/XP/2000 , Linux, Solaris 9, OS/2.

Model One to One

Model Many-to-Many. Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor dan lebih efisien. Contoh : Solaris 2, IRIX, HPUX.

Model Many to Many

Pustaka Thread

Pustaka Thread atau yang lebih familiar dikenal dengan Thread Library bertugas untuk menyediakan API untuk programmer dalam menciptakan dan memanage thread. Ada dua cara dalam mengimplementasikan pustaka thread:

  1. Menyediakan API dalam level pengguna tanpa dukungan dari kernel sehingga pemanggilan fungsi tidak melalui system call. Jadi, jika kita memanggil fungsi yang sudah ada di pustaka, maka akan menghasilkan pemanggilan fungsi call yang sifatnya lokal dan bukan system call.
  2. Menyediakan API di level kernel yang didukung secara langsung oleh sistem operasi. Pemanggilan fungsi call akan melibatkan system call ke kernel. Ada tiga pustaka thread yang sering digunakan saat ini, yaitu: POSIX Pthreads, Java, dan Win32. Implementasi POSIX standard dapat dengan cara user level dan kernel level, sedangkan Win32 adalah kernel level. Java API thread dapat diimplementasikan oleh Pthreads atau Win32.

Thread Cancellation

Thread Cancellation ialah pembatalan thread sebelum tugasnya selesai. Misalnya hendak mematikan Java Virtual Machine (JVM) pada program Java. Maka sebelum JVM dimatikan seluruh thread yang berjalan harus dibatalkan terlebih dahulu. Contoh lain adalah pada masalah search. Apabila sebuah thread mencari sesuatu dalam database dan menemukan serta mengembalikan hasilnya, thread sisanya akan dibatalkan. Thread yang akan diberhentikan biasa disebut target thread.

Pemberhentian target Thread dapat dilakukan dengan 2 cara:

  1. Asynchronous cancellation. Suatu thread seketika itu juga membatalkan target thread.
  2. Deferred cancellation. Suatu thread secara periodik memeriksa apakah ia harus batal, cara ini memperbolehkan target thread untuk membatalkan dirinya secara terurut.

Hal yang sulit dari pembatalan thread ini adalah ketika terjadi situasi dimana sumber daya sudah dialokasikan untuk thread yang akan dibatalkan. Selain itu kesulitan lain adalah ketika thread yang dibatalkan sedang meng-update data yang ia bagi dengan thread lain. Hal ini akan menjadi masalah yang sulit apabila digunakan asynchronous cancellation. Sistem operasi akan mengambil kembali sumber daya dari thread yang dibatalkan tetapi seringkali sistem operasi tidak mengambil kembali semua sumber daya dari thread yang dibatalkan. Alternatifnya adalah dengan menggunakan deffered cancellation. Cara kerja dari deffered cancellation adalah dengan menggunakan satu thread yang berfungsi sebagai pengindikasi bahwa target thread hendak dibatalkan. Tetapi pembatalan hanya akan terjadi jika target thread memeriksa apakah ia harus batal atau tidak. Hal ini memperbolehkan thread untuk memeriksa apakah ia harus batal pada waktu dimana ia dapat dibatalkan secara aman yang aman. Pthread merujuk sebagai cancellation points. Pada umumnya sistem operasi memperbolehkan proses atau thread untuk dibatalkan secara asynchronous. Tetapi Pthread API menyediakan deferred cancellation. Hal ini berarti sistem operasi yang mengimplementasikan Pthread API akan mengizinkan deferred cancellation.

Thread Pools

Pada web server yang menerapkan multithreading ada dua masalah yang timbul:

  1. Ukuran waktu yang diperlukan untuk menciptakan thread yang melayani permintaan yang diajukan pada kenyataannya thread dibuang seketika sesudah ia menyelesaikan tugasnya.
  2. Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan performa dari sistem.

Solusinya adalah dengan penggunaan Thread Pools, yaitu sekumpulan thread yang mengantri untuk mengerjakan tugas 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, 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 ada thread yang tersedia pada saat dibutuhkan maka server menunggu sampai ada satu thread yang bebas.

Penjadwalan Thread

Begitu dibuat, thread baru dapat dijalankan dengan berbagai macam penjadwalan. Kebijakan penjadwalanlah yang menentukan setiap proses, di mana proses tersebut akan ditaruh dalam daftar proses sesuai proritasnya dan bagaimana ia bergerak dalam daftar proses tersebut. Untuk menjadwalkan thread, sistem dengan model multithreading many to many atau many to one menggunakan:

  1. Process Contention Scope (PCS). Pustaka thread menjadwalkan thread pengguna untuk berjalan pada LWP (lightweight process) yang tersedia.
  2. System Contention Scope (SCS). SCS berfungsi untuk memilih satu dari banyak thread, kemudian menjadwalkannya ke satu thread tertentu (CPU / Kernel).

Comments