Selasa, 23 Oktober 2018

Batch Processing

1.   Batch System


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. Tapi, dalam beberapa fungsi sistem operasi, seperti os yang tengah berkembang pada jaman sekarang ini. Contohnya adlah FMS ( Fortarn Monitoring System ) dan IBSYS.

     Contoh sebuah Batch System adalah sebuah e-mail dan transaksi batch processing. Dalam suatu sistem batch processing, transaksi secara individual dientri melalui peralatan terminal, dilakukan validasi tertentu, dan ditambahkan ke transaction file yang berisi transaksi lain, dan kemudian dientri ke dalam sistem secara periodik. Di waktu kemudian, selama siklus pengolahan berikutnya, transaction file dapat divalidasi lebih lanjut dan kemudian digunakan untuk meng-up date master file yang berkaitan.


BENTUK DARI BATCH SYSTEM

Ada 2 cara dalam Batch System yaitu :

1. Multi-programming adalah salah satu teknik penjadwalan dimana tugas (task) yang sedang berjalan tetap berjalan sampai ia melakukan operasi yang membutuhkan waktu untuk menunggu respon dari luar (external event), misalnya membaca data dari disket/CD/dsb, atau sampai komputer memaksa untuk menukar tugas yang sedang berjalan dengan tugas lainnya. Sistem operasi yang yang menggunakan multi-program sebagai scheduler-nya bertujuan untuk memaksimalkan penggunaan CPU. 

2. Multiprocessing adalah istilah teknologi informasi dalam bahasa Inggris yang merujuk kepada kemampuan pemrosesan komputer yang dilakukan secara serentak. Hal ini dimungkinkan dengan menggunakan dua CPU atau lebih dalam sebuah sistem komputer. Istilah ini juga dapat merujuk kepada dukungan sebuah sistem untuk mendukung lebih dari satu prosesor dan mengalokasikan tugas kepada prosesor-prosesor tersebut.

SYSTEM OPERASI

A. Sistem Operasi Komputer PC

Berikut Jenis-Jenis Sistem Operasi pada Komputer Pc

1. DOS
2. Unix
3. Linux
4. Windows
5. Mac OS
6. Ubuntu


B. Sistem Operasi SmartPhone, dll

Sedagkan untuk Jenis Sistem Operasi pada Handphone, dll adalah Sbb:

1. Symbian
2. Windows Mobile
3. Mobile Linux
4. OS BlackBerry
5. Palm
6. Java
7. Android 

Sumber : http://onepersen4ever.blogspot.com


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.

Oleh karena itu, dibutuhkan solusi yang tepat untuk menghindari munculnya Race Condition. Solusi tersebut harus memenuhi ketiga syarat berikut:
Mutual Exclusion
Progress
Bounded Waiting

Ada dua jenis solusi untuk memecahkan masalah critical section, yaitu.

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] = 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.


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.

Sumber : https://mediekaputra.wordpress.com


3.   Process 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.   Pointer merupakan petunjuk yang dinamis dimana suatu peubah yang akan dialokasikan hanya pada saat diperlukan.

2.   Status proses
a. New adalah status yang dimiliki pada saat proses baru saja dibuat.
b. Ready adalah status yang dimiliki pada saat proses siap untuk dieksekusi oleh prosesor.
c. Running adalah status yang dimiliki pada saat intruksi-intruksi dari sebuah proses eksekusi.
d. Waiting adalah status yang dimiliki pada saat proses menunggu sebuah event seperti proses input/output.

3.  Program counter adalah suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini.

4.   CPU register

     Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk accumulator, register indeks,stack pointer, general-purposes register, ditambah code information pada kondisi apa pun. Beserta dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya.

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

.
6.   Informasi pencatatan
     Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun jumlah job atau proses, dan sebagainya.

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

8.   PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.

Elemen-elemen dari PCB itu sendiri adalah :

Identifikasi Proses yaitu Identifier numerik yang meliputi
1. Identifier proses
2. Identifier proses yang menciptakan
3. 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 :

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 :

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
Adapun proses-proses yang terjadi pada PCB adalah:

· Mutual Exclusion adalah jaminan bahwa hanya satu proses yang mengakses sumber daya pada suatu interval waktu tertentu.
· Deadlock adalah proses tunggu dimana proses tersebut tidak pernah terjadi.
Deadlock biasa juga disebut hang.
· Stravation situasi dimana proses-proses menunggu secara tidak tentu dengan menggunakan semaphore. Semaphore adalah pendekatan dimana dua atau lebih dapat bekerjasama menggunakan penanda-penanda sederhana.
· Strategi preemtive yaitu suatu strategi dimana proses yang sedang dieksekusi dapat diambil alih oleh proses lain.
· Strategi Non Preemtive yaitu suatu strategi dimana proses sedang di eksekusi, maka proses tidak dapat dihentikan atau diambil alih oleh proses lain.
· Multiprocessing system yaitu dapat menjalankan beberapa proses dalam waktu yang bersamaan.
· Multiprogramming yaitu menjalankan suatu program dalam waktu yang bersamaan.

Sumber : http://drohmani24.blogspot.com


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.

Sumber : http://xditx32.blogspot.com


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.


Sumber : Wikipedia



6.   Thread


Thread merupakan alur kontrol dari sebuah proses

Multithread bisa meningkatkan pembagian sumber daya proses, ekonomis dan kemampuan mengambil keuntungan dari arsitektur multiprosesor
User level thread thread rule yang di kode oleh user dan tidak diketahui oleh kernel (misal koding dalam bahasa C yaitu library thread)
Kernel Level Thread dikelola oleh kernel sistem operasi secara umum
Thread sendiri terbagi menjadi 2 macam
Single Thread Proses hanya mengeksekusi satu thread saja pada satu waktu --> proses hanya dapat melalukan satu perintah pada satu waktu

   Multi ThreadProses dapat mengeksekusi banyak thread pada satu waktu --> proses dapat menjalankan lebih dari satu thread pada waktu yang sama
Case Example
Anda adalah seorang user yang ingin mengerjakan sebuah dokumen sambil mendengarkan lagu untuk mengurangi kesepian.

     Single Thread Anda harus selesai menginput string dahulu baru bisa mendengarkan sebuah lagu, karena thread yang ada bersifat sequential
Multi Thread Anda bisa secara bersama-sama mendengar lagu sambil menginput sebuah string karena thread yang ada banyak dan bersesuaian dengan arsitektur multiprosesor komputer anda
Deklarasi Thread
Kita akan memulai membuat sebuah User Thread yang didasarkan pada Bahasa C. Seperti biasanya, kita akan mendeklarasikan Thread layaknya sebuah tipe data primitif
Deklarasi Thread

Pada dasarnya, setiap program yang dijalankan dan menjadi proses, ia akan mempunyai default thread (single thread). Diatas kita sudah menambahkan thread tambahan sebagai multi thread

Thread Creation


4 parameter diatas:

&threadX = alamat dari variabel yang kita deklarasi, berupada ID thread yang baru dibuat
NULL (yang pertama) = atribut yang kita ingin tambahkan ke thread
print_message_functionX = alamat Fungsi yang akan dijalankan oleh thread
NULL (yang kedua) = parameter yang akan di pass ke fungsi
Contoh program dengan Thread


Single Thread
Output:

Penjelasan:
Program di atas menggunakan Single Thread untuk masing-masing fungsi (print_message_function). Sehingga outputnya tidak bisa diprediksi sesuai komputer masing-masing menjalankan thread yang mana dahulu.




Sumber : http://amazingharry.blogspot.com

0 komentar:

Posting Komentar