TRANSFER DATA DENGAN DMA CONTROLLER





PENJELASAN DARI GAMBAR BERIKUT.


Transfer data dengan pengontrol DMA
Selama transfer byte input byte, urutan berikut terjadi ketika data dikirim dari antarmuka ke memori :
  • I/O interface mengirimkan DMA controller sebuah permintaan untuk layanan DMA.
  • Permintaan Bus dibuat ke pin HOLD (aktif Tinggi) pada mikroprosesor 8086 dan pengendali mendapatkan kontrol bus.
  • Sebuah hibah Bus dikembalikan ke pengontrol DMA dari pin Hold Acknowledge (HLDA) (aktif High) pada mikroprosesor 8086.
  • Pengendali DMA menempatkan isi register alamat ke bus alamat.
  • Pengontrol mengirimkan antarmuka pengakuan DMA, yang memberi tahu antarmuka untuk menempatkan data pada bus data. (Untuk output, ini memberi sinyal antarmuka untuk mengunci data berikutnya yang ditempatkan di bus.)
  • Data byte ditransfer ke lokasi memori yang ditunjukkan oleh bus alamat.
  • Antarmuka mengaitkan data.
  • Permintaan Bus dijatuhkan, pin HOLD pergi Rendah, dan pengendali melepaskan bus.
  • Biaya dari mikroprosesor 8086 dijatuhkan dan pin HLDA menjadi Rendah.
  • Daftar alamat bertambah sebanyak 1.
  • Hitungan byte dikurangi dengan 1.
  • Jika jumlah byte tidak nol, kembali ke langkah 1, jika tidak hentikan


PENJELASAN LAIN TENTANG DMA CONTROLLER
transfer data dengan dma controller :
  • I/O Device terhubung dengan DMA controller memberikan instruksi yang harus di proses
  • DMA controller mengirimkan pemberitahuan ke processor akan ada proses yang dihandle oleh DMA controller
  • Processor menginformasikan ke memory bahwa DMA akan mengakses memory untuk pemrosesan suatu instruksi
  • DMA Controller terhubung dengan memory dan akses alamat, data yang diperlukan
  • DMA controller mengirimkan hasil proses kembali ke I/O device
  • Jika proses selesai, DMA controller kembali melaporkan ke processor bahwa proses telah beres dilakukan. Menurut reverensi lain cara kerja DMA sebagai berikut: CPU mengirimkan data data berikut ini ke DMA controller: Perintah read/write Alamat device yang akan diakses Alamat awal blok memori yang akan dibaca/ditulis Jumlah blok data yang akan ditransfer - CPU mengeksekusi program lain - DMA controller mengirimkan seluruh blok data (per satu word) langsung ke memori(tanpa melibatkan CPU) - DMA controller mengirm interrupt ke CPU jika selesai


  • KEGUNAAN DMA :

    Untuk membantu CPU fokus penuh untuk mengerjakan proses transfer data.Dengan DMA, CPU cukup memulai prosesnya dan bisa melakukan kerja lain selama proses transfer itu berlangsung dan tinggal menunggu informasi dari DMA controller jika proses transfer sudah selesai.Membebaskan pemroses menunggui transfer data yang dilakukan perangkat I/O.
    Saat pemroses ingin membaca atau menulis data, pemroses memerintahkan DMA controller dengan mengirim informasi berikut :
    - Perintah penulisan/pembacaan.
    - Alamat perangkat I/O.
    - Awal lokasi memori yang ditulis/dibaca.
    - Jumlah word (byte) yang ditulis/dibaca.

    Setelah mengirim informasi-informasi itu ke DMA controller, pemroses
    dapat melanjutkan kerja lain. Pemroses mendelegasikan operasi I/O ke DMA.
    DMA mentransfer seluruh data yang diminta ke/dari memori secara langsung
    tanpa melewati pemroses. Ketika transfer data selesai, DMA mengirim
    sinyal interupsi ke pemroses. Sehingga pemroses hanya dilibatkan pada
    awal dan akhir transfer data. Operasi transfer antara perangkat dan
    memori utama dilakukan sepenuhnya oleh DMA lepas dari pemroses dan hanya
    melakukan interupsi bila operasi telah selesai.

     CPU dapat melakukan pekerjaan atau instruksi yang berbeda ketika melakukan operasi baca tulis dari perangkat peripheral.
    Tanpa adanya DMA CPU akan terus sibuk melakukan operasi baca tulis (transfer data) dan tidak dapat melakukan atau menyelesaikan instruksi yang lain. Dengan adanya DMA, CPU cukup mempersiapkan DMA chip dengan cara memberikan beberapa informasi seperti jumlah data bit yang ditransfer, alamat dari device dan memory yang diperlukan dan arah dari aliran data tersebut, setelah itu DMA chip sendiri yang akan menyelesaikannya. DMA chip akan melakukan interupt, ketika pekerjaannya sudah selesai. Selama DMA chip melakukan tugasnya hingga munculnya interupt, CPU dapat menyelesaikan instruksi yang lainnya.

    Dma digunakan intra-chip untuk transfer data dalam multi-core, terutama dalam sistem multiprocessor-on-chip, di mana elemen-nya adalah proses yang dilengkapi dengan memori lokal (sering disebut alas memori) dalam sebuah elemen pemrosesan multi-core processor dapat mentransfer data ke dan dari memori tanpa menempati prosesor waktu, mesin dan membuat data tumpang tindih.

    DMA digunakan untuk mentransfer data antara lokal memori dan memori utama.
    Komputer yang ada DMA channel dapat mentransfer data dari dan ke perangkat dengan CPU overhead jauh lebih sedikit daripada komputer tanpa saluran DMA .
    Seperti yang telah disebutkan , DMA ialah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO). Untuk memulai sebuah transfer DMA, host akan menuliskan sebuah DMA command block yang berisi pointer yang menunjuk ke sumber transfer, pointer yang menunjuk ke tujuan transfer, dan jumlah byte yang ditransfer, ke memori. CPU kemudian menuliskan alamat command block ini ke pengendali DMA, sehingga pengendali DMA dapat kemudian mengoperasikan bus memori secara langsung dengan menempatkan alamatalamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.
    DMA digunakan intra-chip untuk transfer data dalam multi-core, terutama dalam sistem multiprocessor-on-chip, di mana elemen-nya adalah proses yang dilengkapi dengan memori lokal (sering disebut alas memori) dan DMA digunakan untuk mentransfer data antara lokal memori dan memori utama.
    Komputer yang ada DMA channel dapat mentransfer data dari dan ke perangkat dengan CPU overhead jauh lebih sedikit daripada komputer tanpa saluran DMA . Demikian pula di dalam sebuah elemen pemrosesan multi-core processor dapat mentransfer data ke dan dari memori tanpa menempati prosesor waktu, mesin dan membuat data tumpang tindih.


    Cara Kerja DMA :
    CPU mengirimkan CPU data-data berikut ini ke DMA controller:
    a)Perintah read/write
    b)Alamat device yang akan diakses
    c)Alamat awal blok memori yang akan dibaca atau ditulis.
    d)Jumlah blok yang akan ditransfer.
    CPU klien mengeksekusi program lain.
    DMA controller mengirimkan seluruh blok data (per satu word) langsung ke memori tanpa melibatkan CPU)
    DMA controler mengirimkan interupt ke CPU jika telah selesai.
    DMA controler mengambil alih sistem bus sebanyak 1 siklus.
    DMA men-transfer satu word data
    Pengambil alihan bus oleh DMA bukan interrupt CPU tidak perlumenyimpan context
    CPU hanya tertunda sessaat satu siklus sebelum mengakses bus yaitu sebelum operan atau data diambil atau data ditulis diagram modul DMA

    Konfigurasi Modul DMA :

    Ø Konfigurasi I
    Ø Hanya menggunakan single bus
    Ø DMA dan modul I/O terpisah
    Ø Setiap transfer harus mengakses bus 2 kali
    Ø Konfigurasi II
    Ø Hanya menggunakan single bus
    Ø DMA controller dan modul I/O terintegrasi
    Ø satu DMA controller dapat mengangani lebih dari 1 modu I/O
    Ø Setiap transfer hanya perlu mengakses bus satu kali saja
    Ø Konfigurasi III
    Ø digunakan bus I/O secara terpisah
    Ø semua modul I/O cukup dilayani dengan sebuah DMA
    Ø Setiap transfer hanya perlu mengakses bus satu kali saja

    Jalur Transfer DMA :
    Ada 3 langkah dalam transfer DMA :
    1. Prosesor menyiapkan DMA prosesor Transfer dengan menyediakan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang akan menjadi sumber, tujuan data, dan banyaknya byte yang akan ditransfer.

    2. Pengendali DMA memulai operasi dengan menyiapkan bus,menyediakan alamat, menulis, dan membaca data sampai seluruh blok sudah ditransfer.

    3. Pengendali DMA menginterupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.

    Pada dasarnya, DMA mempunyai 2 metode untuk transfer data
    1. HALT atau Burst Mode DMA ialah DMA yang memegang kontroldari sistem bus dan menstransfer semua blok data dari memori ke single burst atau sebaliknya,

    2. CYCLE STEALING DMA pada metode ini mengikutsertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosesor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus.


    Kelemahan DMA :
    Tanpa DMA, diprogram menggunakan input / Output (PIO) mode untuk berkomunikasi dengan perangkat pinggiran, atau menggunakan / menyimpan instruksi dalam kasus multicore chips,CPU biasanya penuh diduduki untuk seluruh durasi dari operasi membaca atau menulis, dan dengandemikian tidak tersedia untuk melakukan pekerjaan lain. Dengan DMA, CPU akan melakukan transfer, lakukan operasi lainnya sementara transfer yang sedang berlangsung, dan menerima mengganggu dari DMA controller setelah operasi telah selesai. Hal ini sangat berguna dalam real-time komputasi di mana aplikasi tidak stalling belakang yg berbarengan operasi adalah penting. Dan aplikasi lain yang berhubungan dengan berbagai daerah adalah bentuk streaming pemrosesan dimana perlu ada pengolahan data dan transfer paralel, untuk mencapai throughput memadai.

    Kelebihan DMA :

    Kelebihan menggunakan mode DMA sangat terasa pada sistem operasi multitasking seperti Windows, Linux, UNIX, dan sebagainya. Karena transfer data akan menghemat resource processor sehingga processor dapat mengerjakan pekerjaan lain. Keuntungan lainnya adalah kecepatan transfer data dengan menggunakan mode DMA jauh lebih cepat bila dibandingkan dengan menggunakan mode PIO.

    Hubungan DMA dengan Input dan Output :
    Hubungan antara CPU dengan main memory ataupun dengan alat-alat input atau output dilakukan dengan suatu jalur yang di sebut dengan bus. Hubungan antara CPU dengan main memory melalui jalur bus yang dilekatkan pada memory data register, memory address register dan control unit di CPU. Sedangkan bus yang menghubungkan CPU dengan alat-alat input/output tidak dilekatkan langsung ke alat-alat input/output tersebut, tapi dapat melalui suatu alat port atau DMA controller atau channel.
Kesimpulan Komputer tersusun atas beberapa komponen penting, seperti CPU, memory, perangkat I/O. Sistem bus adalah penghubung bagi keseluruhan komponen dalam menjalankan tugasnya. Kumpulan lintasan atau saluran berbagai modul disebut interkoneksi. Direct memory access (DMA) adalah suatu alat pengendali khusus disediakan untuk memungkinkan transfes blok data langsung antar perangkat eksternal dan memori utama, tanpa intervensi terus menerus dari prosesor. Tanpa adanya DMA, maka proses input/output akan selalu membuat CPU fokus penuh untuk mengerjakan proses transfer data dan menyebabkan proses menjadi lambat. Dengan adanya DMA, CPU cukup memulai prosesnya dan bisa melakukan kerja lain selama proses transfer itu berlangsung dan tinggal menunggu informasi dari DMA controller jika proses transfer sudah selesai sehingga alur pemrosesan menjadi jauh lebih efisien.


TRANSFER DATA DENGAN DMA CONTROLLER

Penjelasan Thread

                                                           Pengertian Thread
  • Thread adalah prinsip yang memperbolehkan sebagian dari program untuk berjalan secara independen dengan sebagian program lainnya. Dalam threading anda dapat menjalankan beberapa pointer (alamat dalam komputer) sekaligus. Artinya dua atau lebih bagian dari kode dapat dijalankan secara simultan.





2.Single-Threading dan Multi-Threading Single
Threading adalah sebuah lightweight process (proses sederhana) yang mempunyai thread tunggal yang berfungsi sebagai pengendali/ controller. Multi-Threadingadalah proses dengan thread yang banyak dan mengerjakan lebih dari satu tugas dalam satu waktu.





3. Keuntungan Multi-Threading
  1. Responsive; tanggap: Multi-Threading mengizinkan program untuk berjalan terus walau-pun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
  2. Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari proses.Ketika thread berjalan pada data yang sama, thread tersebut bisa berbagi cache memory.
  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: Keuntungan dari multi-threading dapat ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara paralel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.
4. Kerugian Multi-Threading
  1. Multiple thread bisa mengganggu satu sama lain saat berbagi hardware resource, misalnya chace memory.
  2. Execution time (waktu proses) dari sebuah single-thread tidak dapat diimprove (ditambah), tapi malah bisa diturunkan. Ini terjadi karena penurunan frequensi yang dibutuhkan ketika terjadi pergantian thread yang berjalan.
  3. Harus ada dukungan dari hardware ataupun software untuk melakukan multi-Threading.
5. Model-Model Threading
  1. Kernel-level threading; thread ini dibuat oleh pengguna yang berkorespondensi 1-1 dengan entitas-entitas yang terjadwalkan yang berada di kernel. Ini merupakan implementasi (penerapaan) paling sederhana dari threading.
  • Thread kernel didukung langsung oleh sistem operasi.
  • Pembuatan, penjadwalan, dan manajemen thread dilakukan oleh kernel pada kernel space.
  • Pengaturan thread dilakukan oleh sistem operasi, sehingga pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread.
2. User-level threading; sebuah pemetaan N-1, yang berarti bahwa semua level aplikasi thread dipetakan ke entitas tunggal yang ada di kernel. Dengan pendekatan ini, switching proses dapat dilakukan dengan sangat cepat.
  • Thread pengguna didukung kernel serta diimplementasikan dengan pustaka (library) thread pada tingkatan pengguna.
  • Pustaka (library) menyediakan fasilitas untuk pembuatan thread, penjadwalan thread, dan manajemen thread tanpa dukungan dari kernel.
  • Semua pembuatan dan penjadwalan thread dilakukan dalam ruang pengguna tanpa campur tangan kernel.
6. Thread dalam Sistem Operasi
  • Sistem operasi telah mendukung proses multithreading.
  • Setiap sistem operasi memiliki konsep tersendiri dalam pengimplementasiannya.
  • Sistem operasi dapat mendukung thread pada tingkatan kernel maupun tingkatan pengguna.
  1. Model Multi-Threading
1. Many-to-One

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








  1. One-to-One
  • Memetakan setiap thread tingkatan pengguna ke thread kernel.
  • Model ini menyediakan lebih banyak concurrency dibandingkan model Many-to-One.
  • D3 KomSI UGM Sistem Operasi



  1. Many-to-Many

  • Mengelompokkan banyak thread pengguna untuk dipetakan ke thread kernel yang
  • jumlahnya lebih sedikit atau sama dengan tingkatan pengguna.
  • Mengijinkan sistem operasi untuk membuat sejumlah thread kernel.







7. Cancellation
Thread cancellation ialah pemberhentian thread sebelum tugasnya selesai. Umpama, jika dalam program Java hendak mematikan Java Virtual Machine (JVM). Sebelum JVM dimatikan, maka seluruh thread yang berjalan harus dihentikan terlebih dahulu. Thread yang akan diberhentikan biasa disebut target thread.Pemberhentian target thread dapat terjadi melalui dua cara yang berbeda:Asynchronous cancellation: suatu thread seketika itu juga memberhentikan target thread.
Defered cancellation: target thread secara perodik memeriksa apakah dia harus berhenti, cara ini memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut.
Alternatifnya adalah dengan menggunakan deffered cancellation. Cara kerja dari deffered cancellation adalah dengan menggunakan satu thread yang berfungsi sebagai pengindikasi bahwa target thread hendak diberhentikan. Tetapi pemberhentian hanya akan terjadi jika target thread memeriksa apakah ia harus berhenti atau tidak. Hal ini memperbolehkan thread untuk memeriksa apakah ia harus berhenti pada waktu dimana ia dapat diberhentikan secara aman yang aman. Pthread merujuk tersebut sebagai cancellation points.

8.Threads Pools
Pada web server yang multithreading ada dua masalah yang timbul:Ukuran waktu yang diperlukan untuk menciptakan thread untuk melayani permintaan yang diajukan terlebih pada kenyataannya thread dibuang ketika ia seketika sesudah ia menyelesaikan tugasnya.Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan performa dari sistem.Solusinya adalah dengan penggunaan Thread Pools, cara kerjanya adalah dengan membuat beberapa thread pada proses startup dan menempatkan mereka ke pools, dimana mereka duduk diam dan menunggu untuk bekerja. Jadi ketika server menerima permintaan maka maka ia akan membangunkan thread dari pool dan jika thread tersedia maka permintaan tersebut akan dilayani.Ketika thread sudah selesai mengerjakan tugasnya maka ia kembali ke pool dan menunggu pekerjaan lainnya. Bila tidak thread yang tersedia pada saat dibutuhkan maka server menunggu sampai ada satu thread yang bebas.

9. Keuntungan thread pool:
Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada dibanding dengan menunggu thread baru dibuat.Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini pentingpada sistem yang tidak dapat mendukung banyak thread yang berjalan secara concurrent

sumber referensi :
http://www.infomugi.com/2013/05/pengertian-thread.html
https://vivimargaretha494.wordpress.com/2015/10/01/thread-pada-sistem-operasi-2/https://maungampus.blogspot.com/2013/09/pengertian-thread-dan-macam-macamnya.html

PENJELASAN THREAD SYSTEM

 Penjelasan Critical Section 


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

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. 

Struktur data umum algoritma ini adalah 
boolean choosing[n]; 
int number [n]; 
Awalnya, struktur data ini diinisialisasi masing-masing ke false dan 0, dan menggunakan notasi berikut: 

– (a, b) < (c, d) jika a < c atau jika a= c dan b < d 

– max(a0, …, an-1) adalah sebuah bilangan k, sedemikian sehingga k >= ai untuk setiap i= 0, …, n – 1 

Dengan demikian, diketahui bahwa Algoritma I dan II terbukti tidak dapat memecahkan masalah critical section untuk dua proses karena tidak memenuhi syarat progress dan bounded waiting. Algoritma yang dapat menyelesaikan masalah critical section pada dua proses adalah Algoritma III. Sedangkan untuk masalah critical section pada n-buah proses dapat diselesaikan dengan menggunakan Algoritma Tukang Roti. 

Penjadwalan CPU 
Penjadwalan CPU adalah suatu proses pengaturan atau penjadwalan proses-proses yang ada di dalam komputer. Dimana proses-proses tersebut berjalan dalam pola yang disebut Siklus Burst. 
Penjadwalan sangat penting dalam menentukan performance sebuah komputer karena mengatur alokasi resource dari CPU untuk menjalankan proses-proses di dalam komputer. Penjadwalan CPU merupakan suatu konsep dasar dari multiprograming, karena dengan adanya penjadwalan dari CPU itu sendiri maka proses-proses tersebut akan mendapatkan alokasi resource dari CPU. 
Penjadwalan CPU mungkin akan dijalankan ketika proses dalam keadaan: 
Berubah dari running ke waiting state. 
Berubah dari running ke ready state. 
Berubah dari waiting ke ready state. 
Dihentikan. 
Penjadwalan nomor 1 dan 4 bersifat Non Preemptive sedangkan lainnya Preemptive. 

Penjadwalan yang biasa digunakan sistem operasi dewasa ini biasanya bersifat Preemptive. Bahkan beberapa penjadwalan sistem operasi, contohnya Linux 2.6, mempunyai kemampuan Preemptive terhadap system call-nya ( preemptible kernel). 
Penjadwalan CPU secara garis besar dibagi menjadi 2, yaitu Penjadwalan Preemptive dan Penjadwalan Non Preemptive. 

1. Penjadwalan Pre-emptive
Penjadwalan Preemptive mempunyai arti kemampuan sistem operasi untuk memberhentikan sementara proses yang sedang berjalan untuk memberi ruang kepada proses yang prioritasnya lebih tinggi. Penjadwalan ini bisa saja termasuk penjadwalan proses atau I/O. 
Dengan kata lain, penjadwalan Preemptive melibatkan mekanisme interupsi yang menyela proses yang sedang berjalan dan memaksa sistem untuk menentukan proses mana yang akan dieksekusi selanjutnya. 
Penjadwalan Preemptive memungkinkan sistem untuk lebih bisa menjamin bahwa setiap proses mendapat sebuah slice waktu operasi. Dan juga membuat sistem lebih cepat merespon terhadap event dari luar (contohnya seperti ada data yang masuk) yang membutuhkan reaksi cepat dari satu atau beberapa proses. 
Lama waktu suatu proses diizinkan untuk dieksekusi dalam penjadwalan Preemptive disebut time slice/quantum. 

Penjadwalan berjalan setiap satu satuan time slice untuk memilih proses mana yang akan berjalan selanjutnya. Bila time slice terlalu pendek maka penjadwal akan memakan terlalu banyak waktu proses, tetapi bila time slice terlau lama maka memungkinkan proses untuk tidak dapat merespon terhadap event dari luar secepat yang diharapkan. 
Dalam waktu-waktu tertentu, proses dapat dikelompokkan ke dalam dua kategori: proses yang memiliki Burst I/O yang sangat lama disebut I/O Bound, dan proses yang memiliki Burst CPU yang sangat lama disebut CPU Bound. Terkadang juga suatu sistem mengalami kondisi yang disebut busywait, yaitu saat dimana sistem menunggu request input(seperti disk, keyboard, atau jaringan). Saat busywait tersebut, proses tidak melakukan sesuatu yang produktif, tetapi tetap memakan resource dari CPU. Dengan penjadwalan Preemptive, hal tersebut dapat dihindari. 

Keuntungan penggunaan penjadwalan pre-emptive: 
a. sistem lebih responsif daripada sistem yang memakai penjadwalan Non Preemptive. 
b. Sistem terhindar dari keadaan busywait. 
contoh sistem operasi yang menerapkan penjadwalan Preemptive: 
Windows 95, Windows XP, Linux, Unix, AmigaOS, MacOS X, dan Windows NT . 

2. Penjadwalan Non Pre-emptive 
Penjadwalan Non Preemptive ialah salah satu jenis penjadwalan dimana sistem operasi tidak pernah melakukan context switch dari proses yang sedang berjalan ke proses yang lain. Dengan kata lain, proses yang sedang berjalan tidak bisa di- interupt. 
Penjadwalan Non Preemptive terjadi ketika proses hanya: 
1. Berjalan dari running state sampai waiting state. 
2. Dihentikan. 

Ini berarti CPU menjaga proses sampai proses itu pindah ke waiting state ataupun dihentikan (proses tidak diganggu). Metode ini digunakan oleh Microsoft Windows 3.1 dan Macintosh. Ini adalah metode yang dapat digunakan untuk platforms hardware tertentu, karena tidak memerlukan perangkat keras khusus (misalnya timer yang digunakan untuk meng interupt pada metode penjadwalan Preemptive). 

Dispatcher 
Komponen yang lain yang terlibat dalam penjadwalan CPU adalah dispatcher. 
Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang sedang terjadwal. Fungsinya: 
Context switching 
Mengganti state dari suatu proses dan mengembalikannya untuk menghindari monopoli CPU time. Context switching dilakukan untuk menangani suatu interrupt(misalnya menunggu waktu I/O). Untuk menyimpan state dari proses-proses yang terjadwal sebuah Process Control Blockharus dibuat untuk mengingat proses-proses yang sedang diatur scheduler. Selain state suatu proses, PCB juga menyimpan process ID, program counter(posisi saat ini pada program), prioritas proses dan data-data tambahan lainnya. 
Switching to user mode dari kernel mode. 
Lompat dari suatu bagian di progam user untuk mengulang program

sumber referensi :
 https://mediekaputra.wordpress.com/2011/03/26/critical-section/
https://mardiansah29.wordpress.com/tag/masalah-critical-section/

PENJELASAN CRITICAL SECTION SYSTEM

http://id.wikipedia.org/wiki/Oracle_Solaris
Penjelasan Distributed Processing 

Distributed Processing mengerjakan semua proses pengolahan data secara bersama antara komputer pusat dengan beberapa komputer yang lebih kecil dan saling dihubungkan melalui jalur komunikasi. Setiap komputer tersebut memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian total. Jika salah satu prosesor mengalami kegagalan atau masalah yang lain akan mengambil alih tugasnya. 
Pemrosesan terdistribusi adalah penggunaan lebih dari satu prosesor untuk melakukan pengolahan untuk tugas individu. Contoh pemrosesan terdistribusi dalam sistem database Oracle muncul dalam 
Dalam Bagian A dari gambar, klien dan server yang terletak di komputer yang berbeda, komputer ini terhubung melalui jaringan. Server dan klien dari sistem database Oracle berkomunikasi melalui Net8, antarmuka jaringan Oracle. 
Dalam Bagian B dari gambar, satu komputer memiliki lebih dari satu prosesor, dan prosesor yang berbeda memisahkan pelaksanaan aplikasi klien dari Oracle. 

Figure 6-1 The Client/Server Architecture and Distributed Processing 
Oracle client / server arsitektur dalam lingkungan pemrosesan terdistribusi memberikan manfaat sebagai berikut 
  • Aplikasi client tidak bertanggung jawab untuk melaksanakan setiap pengolahan data. Sebaliknya, mereka meminta masukan dari pengguna, data permintaan dari server, dan kemudian menganalisa dan menyajikan data ini menggunakan kemampuan tampilan dari workstation klien atau terminal (misalnya, dengan menggunakan grafik atau spreadsheet). 
  • Aplikasi client tidak tergantung pada lokasi fisik dari data. Jika data tersebut akan dipindahkan atau didistribusikan ke server database lain, aplikasi terus berfungsi dengan modifikasi sedikit atau tidak ada.
  • Oracle memanfaatkan fasilitas multitasking dan berbagi-memori sistem operasi yang mendasarinya. Akibatnya, ini memberikan tingkat tertinggi kemungkinan konkurensi, integritas data, dan kinerja untuk aplikasi kliennya.
  • Klien workstation atau terminal dapat dioptimalkan untuk penyajian data (misalnya, dengan menyediakan grafis dan dukungan mouse) dan server dapat dioptimalkan untuk pengolahan dan penyimpanan data (misalnya, dengan memiliki sejumlah besar memori dan ruang disk) .
  • Dalam lingkungan jaringan, Anda dapat menggunakan workstation klien murah untuk mengakses data remote dari server efektif.
  • Jika perlu, Oracle dapat ditingkatkan sebagai sistem Anda tumbuh. Anda dapat menambahkan beberapa server untuk mendistribusikan beban database pengolahan seluruh jaringan (horizontal skala), atau Anda dapat memindahkan Oracle ke komputer mini atau mainframe, untuk mengambil keuntungan dari kinerja sistem yang lebih besar itu (vertikal skala). Dalam kedua kasus, semua data dan aplikasi yang dipertahankan dengan modifikasi sedikit atau tidak ada, karena Oracle adalah portabel antara sistem.
  • Dalam lingkungan jaringan, data bersama disimpan pada server, bukan pada semua komputer dalam sistem. Hal ini membuat lebih mudah dan lebih efisien untuk mengelola akses konkuren.
  • Dalam lingkungan jaringan, aplikasi client mengirimkan permintaan database ke server dengan menggunakan pernyataan SQL. Setelah diterima, pernyataan SQL diproses oleh server, dan hasilnya dikembalikan ke aplikasi klien. Jaringan lalu lintas disimpan ke minimum karena hanya permintaan dan hasilnya dikirim melalui jaringan. 

Distributed data processing / pemrosesan data terdistribusi
Merupakan sekumpulan peralatan pemrosesan yang saling terhubung melalui jaringan yang mengerjakan tugas-tugas tertentu.
Pemrosesan terdistribusi dapat dikelompokan berdasarkan beberapa kriteria yaitu :
Struktur antar hubungan
Kesaling tergantungan komponen-komponen.
Keselarasan antar komponen.

Distributed database system / system database terdistribusi
Merupakan sekumpulan database yang saling terhubung secara logical dan secara fisik terdistribusi pada berbagai tempat melalui jaringan computer. 
Sistem yang mengelola database terdistribusi dan menyediakan mekanisme agar distribusi transparent adalahdistributed database management system (DDBMS). 
Ciri-ciri untuk system yang bukan merupakan system database terdistribusi : 
Sistem yang berisi kumpulan file 
Berbagai arsitektur fisik berkait dengan system multiprocessor. 

Ciri sistem database distribusi
Data disimpan pada sejumlah tempat. Setiap tempat secara logic terdiri dari processor tunggal. 
Processor pada tempat yang berbeda tersebut dihubungkan dengan jaringan computer. 
Bukan sekumpulan file yang berada pada berbagai tempat tetapi merupakan database pada berbagai tempat. 
Setiap tempat mempunyai kemampuan untuk mandiri memproses permintaan user yang membutuhkan akses kedata ditempat tersebut, dan juga mampu untuk memproses data yang tersimpan di tempat lain 

Keuntungan dan Kelemahan sistem database distribusi
– Keuntungan :
Pengelolaan secara transparan data terdistribusi dan replicated.
Mengacu pada struktur organisasi
Meningkatkan kemampuan untuk share dan otonomi local
Meningkatkan ketersediaan data
Meningkatkan kehandalan
Meningkatkan unjuk kerja
Memudahkan pengembangan system

– Kelemahan :
Kompleksitas manajemen
Control integritas lebih sulit
Biaya pengembangan
Keamanan
Kurang standarisasi
Menambahkan kebutuhan penyimpanan
Lebih sulit dalam mengatur lingkungan data
Menambah biaya pelatihan

sumber referensi :
http://id.wikipedia.org/wiki/Oracle_Solaris
https://ranggablack89.wordpress.com/2012/01/02/distributed-processing-client-server/
http://docs.oracle.com/cd/A87860_01/doc/server.817/a76965/c29dstpr.htm#655


PENJELASAN DISTRIBUTED PROCESSING

Penjelasan Batch system



pengertian batch system
Batch Processing adalah suatu model pengolahan data, dengan menghimpun data terlebih dahulu, dan diatur pengelompokkan datanya dalam kelompok-kelompok yang disebut batch. Tiap batch ditandai dengan identitas tertentu, serta informasi mengenai data-data yang terdapat dalam batch tersebut. Setelah data-data tersebut terkumpul dalam jumlah tertentu, data-data tersebut akan langsung diproses.

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 jenis dalam Batch System yaitu : 
1. Resident Monitor 
a. Operator bertugas mengatur urutan job 
b. Job-job yg sama cukup dicetak sekali saja, cara inilah yg disebut “Batch system” 

Teknik pengurutan job secara manual ini 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” 

Overlap Operasi antara I/O dg CPU
  • a. 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
  • b. 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. 
Bentuk bentuk dari Batch System
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. 
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. 

Jenis jenis System Operasi
Sistem Operasi Real-time: Adalah sebuah sistem operasi multitasking yang bertujuan mengeksekusi aplikasi secara real-time . Real-time Operating System sering menggunakan algoritma penjadwalan khusus, sehingga mereka bisa mencapai sifat deterministik perilaku . Tujuan utama dari sistem operasi ini adalah memberikan respon cepat dan real-time, serta prediksi suatu event. Ia juga didesain dengan event-driven atau time-sharing one. Sebuah sistem switch event antara tugas-tugas yang berdasarkan prioritas, sementara sistem operasi time-sharing akan beralih tugas berdasarkan jam interupsi.

Windows CE , OS - 9 , Symbian dan LynxOS adalah beberapa yang dikenal sebagai sistem operasi real-time .
Sistem Operasi Multi-user dan Single-user: Sistem operasi komputer jenis ini akan memungkinkan beberapa pengguna untuk mengakses sistem komputer secara bersamaan. Sistem time sharing dapat diklasifikasikan sebagai sistem multi-user, karena mereka memungkinkan akses beberapa pengguna ke komputer melalui berbagi waktu. Sistem operasi single-user, adalah sebagai lawan dari sistem operasi multi-user, yang dapat digunakan oleh satu pengguna pada satu waktu. Pada OS windows mampu memiliki beberapa account, namun tidak membuat sistem multi-user. Sebaliknya, hanya administrator jaringanlah pengguna yang sebenarnya. Tapi untuk sistem operasi yang mirip Unix, adalah mungkin untuk dua pengguna untuk login pada satu waktu, dan kemampuan OS ini yang membuatnya menjadi sistem operasi multi-user.

Windows 95, Windows 2000 , Mac OS , dan Palm OS adalah contoh dari sistem operasi single-user. Unix dan OpenVMS adalah contoh dari sistem operasi multi-user.
Sistem operasi Multi-tasking dan Single-tasking : Ketika sebuah program tunggal yang diperbolehkan untuk berjalan pada satu waktu, sistem ini dikelompokkan di bawah kategori sistem single- tasking, sedangkan dalam kasus sistem operasi yang memungkinkan untuk pelaksanaan beberapa tugas pada satu waktu, ini diklasifikasikan sebagai sistem operasi multi - tasking. Multi-tasking masih ada dua jenis yaitu, pre-emptive atau co-operative. Pre-emptive multitasking OS memotong waktu CPU, dan mendedikasikan satu slot untuk masing-masing program. Unix - sistem operasi seperti Solaris dan Linux, yang mendukung pre-emptive multitasking. Jika Anda mengerti terminologi multi-threading, Anda dapat mempertimbangkan jenis multi-tasking yang mirip dengan multi-threading. Co-operative multitasking dicapai dengan mengandalkan setiap proses untuk memberikan waktu kepada proses lain, dengan cara yang sudah ditetapkan. Ini adalah jenis multi-tasking yang mirip dengan gagasan blok multi-threading, di mana satu thread berjalan hingga diblok oleh beberapa even lainnya. MS Windows (sebelum Windows 95) digunakan untuk mendukung multitasking co-operative.
Palm OS untuk Palm handheld adalah Multi-tasking and Single-tasking Operating Systems. Windows 9x mendukung multi- tasking. DOS Plus adalah sistem operasi multi - tasking yang relatif kurang dikenal.

Distributed Operating System: Sistem operasi yang mengelola sekelompok komputer independen, dan membuat merekaseolah hanya sebuah komputer, dikenal sebagai sistem operasi terdistribusi. Perkembangan jaringan komputer yang dapat dihubungkan, dan dibuat untuk berkomunikasi satu sama lain yang memunculkan ide komputasi terdistribusi. Perhitungan terdistribusi dilakukan oleh lebih dari satu mesin. Ketika komputer dalam suatu kelompok kerja sama, maka mereka akan membuat sistem terdistribusi .

Amoeba, Plan9 dan LOCUS ( yang dikembangkan antara tahun 1980-an ) adalah beberapa contoh Distributed Operating System.
Embedded System: Sistem operasi yang dirancang untuk digunakan dalam sistem komputer embedded, atau yang dikenal sebagai Embedded System. Ini dirancang untuk beroperasi pada perangkat kecil seperti PDA yang dengan otonomi kurang. System ini mampu beroperasi dengan jumlah sumber daya yang terbatas. Sangat compact, serta dengan desain yang sangat efisien.

Windows CE , FreeBSD dan Minix 3 adalah beberapa contoh Embedded System. Penggunaan Linux dengan sistem komputer embedded disebut sebagai Embedded Linux .
Mobile Operating System/OS Mobile: Meskipun ini bukanlah tipe yang berbeda fungsional dari sebuah sistem operasi, OS mobile juga termasuk penting untuk dimasukkan kedalam daftar jenis sistem operasi ini. OS mobile berfungsi untuk mengontrol perangkat mobile, yang memiliki desain yang mendukung untuk komunikasi nirkabel dan aplikasi mobile. Ia juga built- in dalam mendukung format multimedia pada perangkat mobile. Tablet PC dan smartphone adalah contoh perangkat yang dijalankan dengan sistem operasi mobile .

Blackberry OS , Google Android dan Apple iOS adalah beberapa nama OS Mobile yang paling dikenal .
Batch Processing dan Interactive Systems: Batch processing mengacu pada pelaksanaan program komputer dalam ' batch ' tanpa intervensi manual. Dalam sistem batch processing, program dikumpulkan, dikelompokkan dan diproses di kemudian hari. Tidak ada input data oleh user, sebagai input data dikumpulkan terlebih dahulu untuk proses selanjutnya. Input data dikumpulkan dan diproses dalam batch, maka dinamakan batch processing. IBM z / OS memiliki kemampuan pemrosesan batch. Sistem yang berlawanan dengan ini, operasi interaktif membutuhkan intervensi oleh pengguna , dan tidak dapat dijalankan tanpa pengguna.
Online dan Offline Processing: Dalam pengolahan data online, pengguna tetap berhubungan dengan komputer, dan proses dijalankan di bawah kendali central processing unit (CPU) komputer. Bila proses tidak dieksekusi di bawah kontrol langsung dari CPU, maka pengolahan ini disebut dengan offline. Mari kita ambil contoh batch processing. Di sini, batching atau pengelompokan data dapat dilakukan tanpa melibatkan pengguna dan intervensi oleh CPU, dan bisa dilakukan secara offline. Namun pelaksanaan proses yang sebenarnya mungkin terjadi di bawah kontrol prosesor langsung (yang online).
Sistem operasi juga membantu untuk menyederhanakan interaksi manusia dengan perangkat keras komputer, bertanggung jawab untuk menghubungkan antara program aplikasi dengan perangkat keras, sehingga pengguna dapat mencapai akses komputasi dengan mudah. Tanpa OS, komputer tak akan ada gunanya, atau paling tidak akan sulit untuk dioperasikan oleh kebanyakan oran

sumber referensi :
http://www.academia.edu/32390341/Batch_system_multi_programming_system_time_sharing_system
http://www.infomugi.com/2013/04/pengertian-batch-processing.html
http://rochmadudinus.blogspot.com/2013/03/definisi-batch-system-multiprograming.html

PENJELASAN BATCH SYSTEM

Penjelasan PCB (process control block) 




Setiap proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process Control Block) yang memuat informasi tentang proses tersebut, yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori

pengertian PCB (process control block)
Sebagai pendahuluan kita harus mengenal dulu apa itu Sistem Operasi,Sistem operasi adalah seperangkat program yang mengelola sumber daya perangkat keras komputer, dan menyediakan layanan umum untuk aplikasi perangkat lunak. Sistem operasi adalah jenis yang paling penting dari perangkat lunak sistem dalam sistem komputer. Tanpa sistem operasi, pengguna tidak dapat menjalankan program aplikasi pada komputer mereka, kecuali program aplikasi booting. 
Sistem operasi mempunyai penjadwalan yang sistematis mencakup perhitungan penggunaan memori, pemrosesan data, penyimpanan data, dan sumber daya lainnya.Untuk fungsi-fungsi perangkat keras seperti sebagai masukan dan keluaran dan alokasi memori, sistem operasi bertindak sebagai perantara antara program aplikasi dan perangkat keras komputer,meskipun kode aplikasi biasanya dieksekusi langsung oleh perangkat keras dan seringkali akan menghubungi OS atau terputus oleh itu. Sistem operasi yang ditemukan pada hampir semua perangkat yang berisi komputer-dari ponsel dan konsol permainan video untuk superkomputer dan server web. 
Contoh sistem operasi modern adalah Linux, Android, iOS, Mac OS X, dan Microsoft Windows.

Definisi Proses
Proses adalah program yang sedang dieksekusi. Menurut SilberSchatz, suatu proses adalah lebih dari sebuah kode program, yang terkadang disebut text section . Proses juga mencakup program counter , yaitu sebuah stack untuk menyimpan alamat dari instruksi yang akan dieksekusi selanjutnya dan register. Sebuah proses pada umumnya juga memiliki sebuah stack yang berisikan data-data yang dibutuhkan selama proses dieksekusi (seperti parameter method, alamat return dan variabel lokal), dan sebuah data section yang menyimpan variabel global. 
Kami tekankan bahwa program itu sendiri bukanlah sebuah proses; suatu program adalah satu entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam disket. Sedangkan sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang menyimpan alamat instruksi selanjut yang akan dieksekusi dan seperangkat sumber daya ( resource yang dibutuhkan agar sebuah proses dapat dieksekusi. 
Setiap proses dalam sebuah sistem operasi mendapatkan sebuah PCB (Process Control Block) yang memuat informasi tentang proses tersebut, yaitu: sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori. Prioritas proses merupakan suatu nilai atau besaran yang menunjukkan seberapa sering proses harus dijalankan oleh prosesor. Proses yang memiliki prioritas lebih tinggi, akan dijalankan lebih sering atau dieksekusi lebih dulu dibandingkan dengan proses yang berprioritas lebih rendah. Suatu sistem operasi dapat saja menentukan semua proses dengan prioritas yang sama, sehingga setiap proses memiliki kesempatan yang sama. Suatu sistem operasi dapat juga mengubah nilai prioritas proses tertentu, agar proses tersebut akan dapat memiliki kesempatan lebih besar pada eksekusi berikutnya (misalnya: pada proses yang sudah sangat terlalu lama menunggu eksekusi, sistem operasi menaikkan nilai prioritasnya). 

Proses control block
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block PCB - juga disebut sebuah control block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal dibawah ini:
  1. Status proses: status mungkin, new, ready, running, waiting, halted, dan juga banyak lagi. 
  2. Program counter: suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini. 
  3. CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk accumulator , indeks register, stack pointer , general-purposes register , ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya (lihat Gambar 2-3). 
  4. Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi (lihat Bab Managemen memori). 
  5. Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun jumlah job atau proses, dan banyak lagi. 
  6. Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
  7. PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain. 
Gambar Proses Control Blok

Elemen-elemen dari Process Control Block (PCB) :
  1. Identifier : menjelaskan proses yang sedang terjadi
  2. State : kondisi yang terjadi pada proses
  3. Priority : urutan perintah yang jelas pad suatu proses
  4. 4.Program counter : instruksi pada proses
  5. Memory pointers : media penyimpanan (penunjuk       alamat) pada proses
  6. Context data : data yang berkaitan dengan proses 
  7. I/O status information : terdapat masukan dan keluaran yang diinginkan 
  8. ccounting information : memberikan informasi yang dibutuhkan 



Macam-Macam Jenis Status Proses
Jenis status yang mungkin dapat disematkan pada suatu proses pada setiap sistem operasi dapat berbeda-beda. Tetapi paling tidak ada 3 macam status yang umum, yaitu:
  1. .Ready adalah status dimana proses siap untuk dieksekusi pada giliran berikutnya
  2. Running adalah status dimana saat ini proses sedang dieksekusi oleh prosesor
  3. 3.Blocked adalah status dimana proses tidak dapat dijalankan pada saat prosesor siap
Informasi Kendali Pemroses meliputi 
Informasi penjadwalan dan status yaitu Informasi-informasi yang dipakai untuk menjalankan fungsi penjadwalan a.l : 
Status proses. Mendefinisikan status proses (running,ready,block, dsb) 
Prioritas. Menjelaskan prioritas proses 
Informasi berkaitan penjadwalan. Informasi ini seperti lama menunggu, lama proses terakhir dieksekusi dsb. 
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 : 
Berkas yang dibuka 
Pemakaian pemroses 

PENJELASAN PCB (process control block) SYSTEM



PENGERTIAN DAN SEJARAH SISTEM OPERASI LUNOX


PENGERTIAN LUNOX


Linux adalah salah satu OS populer digunakan dengan pengembangan open source pendukung perangkat lunak gratis. Awalnya dirancang untuk mikroprosesor Intel 80386, Linux sekarang berjalan pada berbagai arsitektur komputer dan telah menyebar secara luas.
Sistem operasi komputer bertipe Unix yang menggunakan Linux kernel dikenal sebagai sistem operasi Linux. Dalam sejarah Linux, Pada tahun 1991, Linus Torvalds mulai menulis kernel Linux, setelah sekitar 250 programmer berkontribusi dengan kode kernel. Richarad Stallman seorang pengembang software Amerika, yang merupakan bagian dari proyek GNU, menciptakan General Public License, yang didistribusikan Linux. Utilitas dan Pustaka Linux datang dari sistem operasi GNU.
Dengan istilah perangkat lunak bebas, berarti bahwa Sistem Operasi Linux dapat disalin dan disebarluaskan dalam bentuk modifikasi atau tidak tanpa banyak pembatasan. Linux dilisensikan dibawah hakcipta GNU General Public License (GPL) salah satu jenis lisensi open source. Lisensi ini telah dicatat oleh Free Software Foundation (FSF) guna bertujuan untuk mencegah setiap individu atau perusahaan dari pembatasab penyebaran kode-kode aplikasi.
Distribusi sistem operasi Linux merupakan sebuah proyek yang mengelola koleksi perangkat lunak Linux dan instalasi OS. Termasuk perangkat lunak sistem dan aplikasi perangkat lunak dalam bentuk paket dan instalasi dan konfigurasi awal rincian. Ada sekitar 300 distribusi sistem operasi Linux yang berbeda, yang paling menonjol dari distribusi sistem operasi Linux adalah Fedora, Red Hat, dan Mandrake. Sebagian besar yang didistribusikan sistem operasi Linux mendukung berbagai bahasa pemrograman misalnya Perl, Python, Ruby dan bahasa pemrograman dinamis lainnya. sistem opersi Linux mendukung sejumlah Java virtual machine dan pengembangan kit dan juga C++ compiler.
Sejarah dan Perkembangan Linux
Awal Mula.
Sistem Operasi Unix diimplementasikan oleh para peneliti di AT&T’s Bell Laboratories pada tahun 1969. Lalu dirilis untuk pertama kalinya di tahun 1971 dalam bahasa assembly, sebelum diubah menjadi bahasa C di tahun 1973. Penggunaan bahasa tingkat tinggi membuat Unix bisa digunakan di berbagai platform komputer yang berbeda. Unix menjadi berkembang pesat karena AT&T memberikan lisensi secara gratis. Namun pada tahun 1984 AT&T memisahkan diri dari Bell Lab, sejak itu Bell Lab mulai menjual Unix sebagai produk yang berbayar.

Pada tahun 1983, Richard Stallman memulai GNU Project yang bertujuan untuk menciptakan versi lengkap dari sistem Unix yang seluruhnya memakai software gratis. Di tahun 1985 terciptalah Free Software Foundation dan lisensi umum dari GNU ditulis pada tahun 1989. Pada awal 1990, beberapa program yang dibutuhkan dalam Sistem Operasi telah berhasil dilengkapi, meskipun masih ada beberapa elemen yang belum komplit termasuk kernelnya. Linus Torvalds menyatakan jika pada tahun itu telah tersedia kernel GNU maka dia tidak akan membuat sendiri versinya
Andrew S. Tanenbaum merilis MINIX pada tahun 1987 sebagai versi mini dari OS Unix yang ditujukan kepada para pelajar yang ingin memahami prinsip OS. Inilah yang dijadikan referensi oleh Linus Torvalds yang saat itu masih menjadi mahasiswa.

Pembuatan
Pada tahun 1991, Linus Torvalds yang masih kuliah di Universitas Helsinki menjadi penasaran dengan OS dan merasa frustasi gara-gara lisensi MINIX yang saat itu hanya bisa digunakan untuk keperluan pendidikan. Akhirnya dia mulai membuat kernel sendiri yang kemudian menjadi Linux Kernel.
Linus memulai pengembangan Linux Kernel di MINIX sampai menjadi semakin matang. Aplikasi GNU menggantikan semua komponen MINIX agar lebih bebas menggunakan kode gratis milik GNU Project, karena lisensi GNU GPL bisa dipakai di program komputer lain selama dirilis memakai lisensi yang sama.
Linus pun mengganti lisensi MINIX menjadi lisensi GNU GPL. Para pengembang mulai melakukan integrasi antara komponen GNU dengan Linux Kernel dan menghasilkan OS gratis yang berfungsi secara utuh.
Penamaan
Awalnya Linus Torvalds ingin memberi nama Freax yang berasal dari campuran antara free, freak, dan x dari Unix. Pada awal pekerjaannya, beberapa file memakai nama Freax selama hampir setengah tahun. Linus sebenarnya juga mempertimbangkan nama Linux, tetapi tidak memakainya karena dianggap terlalu egois.
Pada masa pengembangan, file yang dihasilkan diunggah ke FTP Server. Salah satu rekan kerja Linus yang bertugas sebagai admin FTP Server menganggap nama Freax kurang bagus, sehingga dia merubah nama project menjadi Linux tanpa konsultasi dengan Linus. Namun akhirnya Linus juga setuju dengan nama itu dan dipakai sampai sekarang.

Pengembangan
Penerapan Linux di lingkungan produksi justru diawali oleh komunitas super komputer, dimana organisasi seperti NASA mulai mengganti mesin mereka yang berharga mahal dengan komputer yang memakai Linux. Penggunaan dalam bidang komersial menyusul saat Dell, IBM dan HP memberikan penawaran dukungan terhadap Linux untuk melepaskan diri dari monopoli Microsoft dalam pasaran OS untuk desktop.
Kini Linux telah digunakan dalam berbagai perangkat komputer, mulai dari sistem tertanam (embedded) sampai super komputer, bahkan Linux telah dipercaya menjadi OS untuk pemasangan Server dibandingkan OS lainnya. Penggunaan untuk komputer desktop pun semakin meningkat dan distro Linux semakin populer di pasaran.
Itulah pembahasan mengenai pengertian linux beserta sejarah perkembangannya yang harus anda ketahui sebagai pengguna komputer. Meskipun kalah dengan sistem operasi windows dalam hal kepopulerannya, pengguna linux juga tergolong cukup banyak, terutama bagi yang bekerja dalam bidang jaringan. Semoga artikel mengenai pengertian linux diatas mudah dipahami. Terima kasih dan sampai jumpa lagi!

sumber referensi :
https://id.wikipedia.org/wiki/Linux
https://erlanggablc.blogspot.com/2017/03/sejarah-sistem-operasi-dan-macam-macam.html

SEJARAH SISTEM OPERASI LUNOX

- Copyright © Sistem Operasi - Blogger Templates - Powered by Blogger - Designed by Johanes Djogan -