Life Cycle Software

Pengertian Metode Waterfall 

       Metode air terjun atau yang sering disebut metode waterfall sering dinamakan siklus hidup klasik (classic life cycle), dimana hal ini menggambarkan pendekatan yang sistematis dan juga berurutan pada pengembangan perangkat lunak, dimulai dengan spesifikasi kebutuhan pengguna lalu berlanjut melalui tahapan-tahapan perencanaan (planning), permodelan (modeling), konstruksi (construction), serta penyerahan sistem ke para pelanggan/pengguna (deployment), yang diakhiri dengan dukungan pada perangkat lunak lengkap yang dihasilkan (Pressman, 2012). Tahapan metode waterfall dapat dilihat pada gambar di bawah ini.


Tahapan Metode Waterfall

      Dalam pengembangannya metode waterfall memiliki beberapa tahapan yang berurut yaitu:requirement (analisis kebutuhan), design system (desain sistem), Coding (pengkodean) & Testing(pengujian), Penerapan Program, pemeliharaan. Tahapan tahapan dari metode waterfall adalah sebagai berikut : 

  1.   Requirement Analisis   Tahap ini pengembang sistem diperlukan komunikasi yang bertujuan untuk memahami perangkat lunak yang diharapkan oleh pengguna dan batasan perangkat lunak tersebut. Informasi ini biasanya dapat diperoleh melalui wawancara, diskusi atau survei langsung. Informasi dianalisis untuk mendapatkan data yang dibutuhkan oleh pengguna.
    2.      System Design Spesifikasi kebutuhan dari tahap sebelumnya akan dipelajari dalam fase ini dan desain sistem disiapkan. Desain Sistem membantu dalam menentukan perangkat keras(hardware) dan sistem persyaratan dan juga membantu dalam mendefinisikan arsitektur sistem secara keseluruhan.
    3.    Implementation Pada tahap ini, sistem pertama kali dikembangkan di program kecil yang disebut unit, yang terintegrasi dalam tahap selanjutnya. Setiap unit dikembangkan dan diuji untuk fungsionalitas yang disebut sebagai unit testing.
    4.    Integration & Testing Seluruh unit yang dikembangkan dalam tahap implementasi diintegrasikan ke dalam sistem setelah pengujian yang dilakukan masing-masing unit. Setelah integrasi seluruh sistem diuji untuk mengecek  setiap kegagalan maupun kesalahan.
    5.    Operation & Maintenance Tahap akhir dalam model waterfall. Perangkat lunak yang  sudah  jadi,  dijalankan  serta dilakukan  pemeliharaan. Pemeliharaan termasuk dalam memperbaiki  kesalahan yang tidak ditemukan pada langkah sebelumnya. Perbaikan implementasi unit sistem dan peningkatan jasa sistem sebagai kebutuhan baru.

Kelebihan Metode Waterfall

 Kelebihan menggunakan metode air terjun (waterfall) adalah metode ini memungkinkan untuk departementalisasi dan kontrol. proses pengembangan model fase one by one, sehingga meminimalis kesalahan yang mungkin akan terjadi. Pengembangan bergerak dari konsep, yaitu melalui desain, implementasi, pengujian, instalasi, penyelesaian masalah, dan berakhir di operasi dan pemeliharaan.

Kekurangan Metode Waterfall

   Kekurangan menggunakan metode waterfall adalah metode ini tidak memungkinkan untuk banyak revisi jika terjadi kesalahan dalam prosesnya. Karena setelah aplikasi ini dalam tahap pengujian, sulit untuk kembali lagi dan mengubah sesuatu yang tidak terdokumentasi dengan baik dalam tahap konsep sebelumnya.

RAD Model Design

Model RAD mendistribusikan tahap analisis, perancangan, pembuatan dan pengujian ke dalam rangkaian siklus pengembangan jangka pendek yang singkat.

Berikut adalah fase-fase dari RAD :


Business Modeling (Bisnis Model)   

     Fase ini untuk perancangan dasar dari pengembangan produk berdasarkan informasi dan distribusi informasi antar saluran bisnis. Analisis bisnis yang lengkap dilakukan untuk menemukan informasi penting untuk bisnis, bagaimana hal itu dapat diperoleh, bagaimana dan kapan informasi diproses dan faktor apa yang mendorong arus informasi yang berhasil

Data Modeling (Data Model)   

    Fase ini untuk menganalisa informasi yang sudah dikumpulan dari fase Business Modeling. semua kumpulan data diidentifikasi dan didefinisikan  secara rinci untuk mencari model bisnis yang tepat.

Process Modeling (Proses Pemodelan)   

      Fase ini untuk untuk menetapkan arus informasi bisnis yang diperlukan untuk mencapai tujuan bisnis yang spesifik sesuai model bisnis. perubahan atau penyempurnaan pada kumpulan objek data didefinisikan dalam fase ini. Deskripsi proses untuk menambahkan, menghapus, mengambil atau memodifikasi objek data diberikan.

Application Generation (Generasi Aplikasi) 

     Fase ini untuk Sistem yang sebenarnya dibangun dan pengkodean dilakukan dengan menggunakan automatic tools i untuk mengubah model proses dan data menjadi prototype yang aktual

Testing and Turnover   

      Fase ini untuk pengujian keseluruhan sistem yang dibangun semua komponen perlu diuji secara menyeluruh dengan cakupan uji yang lengkap. Dengan pengujian yang lengkap dapat mengurangi risiko cacat sistem.

Kelebihan RAD (Rapid Application Development)

  • Mudah mengakomodasi peruabahan sistem
  • Progress development bisa di ukur
  • Waktu iterasi bisa di perpendek menggunakan RAD Tools
  • Mengurangi waktu development
  • Mudah dalam menentukan dasar sistem
  • Mempermudah feedback customer
  • Cocok untuk proyek yang membutuhkan waktu pengembangan yang lebih pendek.
  • Cocok untuk sistem yang berbasis komponen dan terukur.

Kekurangan RAD (Rapid Application Development)

  • Ketergantungan pada anggota bisnis tim untuk mengidentifikasi persyaratan bisnis
  • Hanya sistem yang bisa di modularized yang bisa dibangun menggunakan RAD
  • Membutuhkan developer / designer yang berpengalaman
  • Ketergantungan pada keterampilan model
  • Kompleksitas manajemen 
  • Tidak dapat diterapkan pada proyek yang kecil / murah

V MODEL     

       The V-Model adalah model SDLC dimana pelaksanaan proses yang terjadi secara berurutan dalam bentuk-V. Dikenal juga sebagai model Verifikasi dan Validasi. The V-Model merupakan perluasan dari waterfall model  dan didasarkan pada asosiasi dari fase pengujian untuk setiap tahap pengembangan yang sesuai. Ini berarti bahwa untuk setiap fase tunggal dalam siklus pengembangan, ada tahap pengujian terkait langsung. Ini adalah model yang sangat disiplin dan tahap berikutnya dimulai setelah selesainya tahap sebelumnya.

Ilustrasi berikut menggambarkan berbagai tahap dalam V-Model SDLC.


Ada beberapa tahapan verifikasi di V-Model, masing-masing dijelaskan secara rinci di bawah:

Business Requirement Analysis     

     Ini adalah tahap pertama dalam siklus pengembangan di mana persyaratan produk dipahami dari perspektif pelanggan. Fase ini melibatkan komunikasi rinci dengan pelanggan untuk memahami harapan dan kebutuhan yang tepat. Ini merupakan kegiatan yang sangat penting dan perlu dikelola dengan baik, karena sebagian besar pelanggan tidak yakin tentang apa yang sebenarnya mereka butuhkan Acceptance test desain dilakukan pada tahap ini sebagai kebutuhan bisnis dapat digunakan sebagai masukan untuk pengujian penerimaan.

System Design   

     Setelah Anda memiliki persyaratan produk yang jelas dan rinci, sekarang saatnya untuk merancangsistem yang lengkap. Desain sistem akan memiliki pemahaman dan merinci hardware lengkap dan setup komunikasi untuk produk dalam pengembangan. Rencana pengujian sistem dikembangkan berdasarkan desain sistem. Melakukan hal ini pada tahap awal membuat lebih banyak waktu untuk pelaksanaan tes yang sebenarnya nanti

Architectural Design 

      Spesifikasi arsitektur dipahami dan dirancang dalam fase ini. Biasanya lebih dari satu pendekatan teknis diusulkan dan berdasarkan kelayakan teknis dan finansial keputusan akhir diambil. Desain sistem dipecah lebih jauh ke dalam modul mengambil fungsi yang berbeda. Hal ini juga disebut sebagai “Desain Tingkat Tinggi” 

Module Design   
      Pada fase ini, desain internal rinci untuk semua modul sistem yang ditentukan, disebut “Desain Tingkat Rendah”. Penting  bahwa desain tersebut kompatibel dengan modul lain dalam arsitektur sistem dan sistem eksternal lainnya.

Coding Phase   

       Bahasa pemrograman yang paling cocok ditentukan berdasarkan sistem dan persyaratan arsitektur. pengkodean dilakukan berdasarkan pedoman coding dan standar. Kode berjalan melalui berbagai ulasan kode dan dioptimalkan untuk kinerja terbaik sebelum final membangun diperiksa ke dalam repositori


Fase Validasi berbeda dalam V-Model dijelaskan secara rinci di bawah ini:

Unit Testing   

      Unit testing adalah pengujian pada tingkat kode dan membantu menghilangkan bug pada tahap awal, meskipun semua cacat tidak dapat ditemukan oleh unit testing.

Integration Testing   

       Integration testing dikaitkan dengan fase desain arsitektur. tes integrasi dilakukan untuk menguji koeksistensi dan komunikasi dari modul internal dalam sistem.

System Testing   

      System testing secara langsung berhubungan dengan tahap desain sistem. System testing memeriksa seluruh fungsi sistem dan komunikasi sistem dalam pengembangan dengan sistem eksternal. Sebagian besar perangkat lunak dan perangkat keras masalah kompatibilitas dapat ditemukan selama pelaksanaan test ini.

Acceptance Testing   

     Acceptance testing dikaitkan dengan tahap analisis kebutuhan bisnis dan melibatkan pengujian produk di lingkungan pengguna.  Acceptance testing mengungkap masalah kompatibilitas dengan sistem lain yang tersedia di lingkungan pengguna. Juga menemukan masalah non-fungsional seperti beban dan kinerja cacat pada aktual lingkungan pengguna.

SIMPLE INTERACTION DESIGN MODEL



Terdapat dua sisi pengertian yang dapat digunakan terkait dengan desain interaksi :

  •     Sebagai suatu proses untuk mencapai suatu tujuan dengan pencarian berbagai solusi   melalui ruang lingkup sistem, materi, biaya dan kemungkinan penyelesaiannya   (feasibilitas), sebagai wujud kreativitas dan pengambilan keputusan untuk   menyeimbangkan trade-off.
  •   Sebagai representasi suatu perencanaan pengembangan yang berisikan sekumpulan   elaborasi alternatif dan suksesif.


 Empat kegiatan utama dalam desain interaksi :

·         Identifikasi kebutuhan dan persyaratan sistem

·         Pengembangan desain alternatif (desain konseptual dan fisikal)

·         Membuat versi interaktif dari desain yang dihasilkan

·         Mengevaluasi desain (usabilitas dan user experience)

Tiga karakter utama dari keempat kegiatan diatas yang perlu diperhatikan :

  •   Terfokus pada users dan evaluasi artifak
  •   Identifikasi, dokumentasi dan kesepakatan terhadap usability yang telah ada dan tujuan dari user experience
  •   Adanya perulangan dalam desain karena perlunya bereksplorasi terlebih dahulu terhadap desain yang ada terkait dengan user 

Ada teknik yang dapat digunakan untuk memilih dari sekian banyak solusi yang ada, diantaranya :

  •       Mengavaluasi desain bersama user
  •       Feasibilitas teknik
  •       threshold, tujuan usabilitas yang penilaiannya menggunakan kriteria usabilitas


Pada model rancangan interaksi sederhana ini input atau masukan hanya memiliki satu titik. yang mana masukan tersebut diidentifikasikan apakah sesuai dengan kebutuhan, lalu didesain sesuai dengan persyaratan yang telah ditetapkan. Setelah diDesain rancangan tersebut dibangun dan harus interaktif. Setelah itu barulah rancangan tersebut dievaluasi.

Evaluasi dapat dilakukan dimana saja, rancangan yang telah di evaluasi dapat kembali didesain ulang atau apakah rancangan tersebut tidak sesuai dengan kebutuhan user, maka alur tersebut akan terus berputar hingga pada tahap evaluasi tidak lagi terjadi kesalahan, baik dalam penetapan kebutuhan user maupun pendesainannya, sehingga pada tahap evaluasi terciptalah sebuah hasil akhir yang valid.

Referensi : 

http://yosuartrosihan.blogspot.com/2014/12/simple-interaction-design-model.html 

http://www.sistem-informasi.xyz/2017/04/pengertian-v-model-sdlc.html – http://www.sistem-informasi.xyz/2017/05/pengertian-rad-rapid-application.html – http://www.pengetahuandanteknologi.com/2016/09/metode-waterfall-definisi-tahapan.html

Standard proses UCD untuk sistem interaktif

Proses UCD

                UCD ( user Centered Design ) merupakan paradigma baru dalam pengembangan sistem berbasis web.  Perancangan berbasis pengguna (User Centered design = User Centered Design = UCD) adalah istilah yang yang digunakan untuk untuk menggambarkan filosofi perancangan. Konsep dari UCD adalah user sebagai pusat dari proses pengembangan sistem, dan tujuan/sifat-sifat, konteks dan lingkungan sistem semua didasarkan dari pengalaman pengguna.
Prinsip yang harus diperhatikan dalam UCD adalah:
1.  Fokus pada pengguna.
   Perancangan harus berhubungan langsung dengan pengguna sesungguhnya atau calon    pengguna melalui interview, Survey, dan partisipasi dalam workshop perancangan.
2.   Perancangan terintergrasi.
Perancangan harus mencakup antarmuka pengguna, sistem bantuan, dukungan teknis serta prosedur instalasi dan konfigurasi.
3.   Dari awal berlanjut pada penggujian pengguna.
Satu-satunya pendekatan yang sukses dalam perancangan sistem yang berpusat pada pengguna adalah secara empiris dibutuhkan observasi tentang kelakuan pengguna, evaluasi umpan-balik yang cermat, wawasan pemecahan terhadap masalah yang ada, dan motivasi yang kuat untuk mengubah rancangan.
4.     Perancangan interaktif.
Sistem yang sedang dikembangkan harus didefinisikan, dirancang, dan ditest berulang kali. Berdasarkan hasil test kelakuan dari fungsi, antarmuka, sistem bantuan, dokumementasi pengguna, dan pendekatan pelatihannya.
            UCD adalah tentang partisipasi dan pengalaman manusia dalam proses perancangan. Pengguna adalah orang yang akan menggunakan sistem. Pengguna langsung biasa disebut pengguna akhir ( end user ) yang menggunakan sistem untuk menyelesaikan pekerjaannya. Pengguna tidak langsung adalah pengguna yang menggunakan sistem untuk penggunaan yang lain seperti system administrators, installers, dan demonstrators.
Aturan dalam UCD
            Karat telah mendefinisikan hak pengguna untuk mentransformasi budaya yang terdapat dalam perancangan, pengembangan, dan pembuatan sistem teknologi informasi, dan untuk memastikan bahwa produk hasilnya akan tepat seperti harapan pelanggan.
Aturan dalam UCD ( User Centered Design )
1.     Perspektif
     Pengguna selalu benar. Jika terdapat masalah dalam penggunakan sistem, maka masalah ada pada sistem dan bukan pengguna.
2.     Installasi
      Pengguna mempunyai hak untuk dapat menginstall atau mengun-install perangkat lunak dan perangkat keras sistem secara mudah tanpa ada konsekuensi negatif.
3.     Pemenuhan
       Pengguna mempunyai hak untuk mendapatkan sistem dapat bekerja persis seperti yang dijanjikan.
4.     Instruksi
       Pengguna mempunyai hak untuk dapat menggunakan instruksi secara mudah ( buku petunjuk, bantuan secara on-line atau kontekstual, pesan kesalahan ), untuk memahami dan menggunakan sistem untuk mencapai tujuan yang diinginkan secara efisien dan terhindar dari masalah.
5.   Kontrol
      Pengguna mempunya hak untuk dapat mengontrol sistem dan mampu membuat sistem menanggapi dengan benar atas permintaan yang diberikan.
6.   Umpan Balik
    Pengguna mempunyai hak terhadap sistem untuk menyediakan informasi yang jelas, dapat dimengerti, dan akurat tentang tugas yang dilakukan dan kemajuan yang dicapai.
7.   Keterkaitan
     Pengguna mempunyai hak untuk mendapatkan informasi yang jelas tentang semua prasyarat yang dibutuhkan sistem untuk memperoleh hasil terbaik.
8.     Batasan
      Pengguna mempunyai hak untuk mengetahui batasan kemampuan sistem.
9.     Assistance
     Pengguna mempunyai hak untuk dapat berkomunikasi dengan penyedian teknologi dan menerima pemikiran dan tanggapan yang membantu jika diperlukan.
10.  Usability
Pengguna harus dapat menjadi penguasa teknologi perangkat lunak dan perangkat keras, dan bukan sebaliknya. Sistem harus dapat dugunakan secara alami dan ituitif.
Proses dari User Centered Design ( UCD ) terdapat lima proses yaitu seperti gambar dibawah :
proses ucd.JPG

Plan the human centered process


    Langkah pertama ini memerlukan pertemuan komitmen dari semua pihak yang bersangkutan dalam proses pengembangan dengan menggunakan metode UCD dan membuat rencana dengan waktu dan peluang yang ada untuk mengumpulkan persyaratan-persyaratan dan melakukan testingEfek samping penting dari langkah pertama yang dilakukan adalah konsensus diantara regu desaindan keterlibatan pamakai pada akhirnya akan menjadi tidak simpel. Suatu rencana pengesahan adalah hasil langkah pertama ini

Specify the context of use

Mutu kegunaan dari sistem tergantung dari pemahaman dan perencanaan dari karakteristi Pada tahap ini sistem ditingkatkan dan diperluas. Untuk sistem yang sudah berjalan, umpan balik dari pemakai dan laporan help desk akan menjadi dasar prioritas kebutuhan pemakai untuk modifikasi dan perubahan sistem. Untuk produk atau sistem baru, aka sangatlah penting untuk mengambil informasi tentang konteks kegunaan melalui pertemuan dan wawancara.

Konteks dari sistem yang digunakan akan mengidentifikasikan:

  1. Karakteristik-karakteristik dari pemakai yang diharapkan
  2. Tugas-tugas dari pemakai
  3. Suatu hirarkis uraian tugas yang global
  4. Seluruh sasaran kegunaan dari sistem untuk setiap kategori pemakai. Seperti karakteristik-karakteristik yang dapat mempengarruhi tugas dalam skenario khusus.Lingkungan dimana  pemakai akan menggunakan sistem

Specify the user and organisational requirements

Didalam kebanyakan proses desain, ada aktivitas utama dimana persyaratan fungsi dari sistem atau produk dispesifikasikan. Dalam UCD, adalah penting dalam membuat pernyataan ekplisit danpersyratan organisasi .

Berikut ini kaitannya dengan context of use :

  1. Mutu dari antarmuka komputer dan manusia dan desain stasiun kerja
  2. Mutu dan isi dari tugas-tugas pemakai yang diindentifikasikan
  3. Performa kefektifitasan suatu tugas tergantung dari ketransparanan aplikasi terhadap   pemakai
  4. Kerjasama dan komunikasi efektif antara kategori-kategori yang berbeda antara pamakai- pemakai dan pihak-pihak lain yang terkait
  5. Kinerja dari sistem baru terhadap objek operasional dan keuangan.
  6. Dari penjabaran diatas, persyaratan harus dipertimbangkan dalam suatu hal yang lebih khusus.

Produce sistem solution

    Tahapan berikutnya adalah membuat solusi desain yang potensial dengan menggambar mendesain
bentuk dari pengalaman dan pengetahuan para partisipan.

Proses ini melibatkan :

  1. Menggunakan pengetahuan yang sudah ada (standar, petunjuk, contoh-contoh dari yang lain sistem lain)
  2. Membuat penyelesaian prototipe yang lebih focus (menggunakan simulasi-simulasi, prototipe-prototipe kertas, dll.
  3. Menunjukan prototype kepada pemakai dan meneliti mereka ketika mereka melaksanakan tugas-tugas yang ditetapkan dengan atau tanpa bantuan dari evaluator
  4. Mempergunakan umpan balik ini untuk memperbaiki desain
  5.  Proses interasi sampai tujuan desain tercapai

Evaluate designs against user requirements

Evaluasi adalah suatu tahap penting dalam UCD yang terdiri dari :
Format: Untuk menyediakan umpan balik yang berguna untuk meningkatkan desain
Summatif: Untuk menilai apakah sasaran organisasi telah tercapai.

 

REFERENSI :

http://evariska2.blogspot.com/2017/12/standard-proses-ucd-untuk-sistem.htmlhttp://aldiimk.blogspot.com/p/proses-ucd.htmlhttp://dyahindriatna.blogspot.com/2017/12/standar-proses-ucd-untuk-sistem.htmlhttp://yudihermawan24.blogspot.com/2017/12/standar-proses-ucd-untuk-sistem.html

 

PENJELASAN DMA (Direct Memory Access)

A. Apa artinya Direct Memory Access (DMA) ?       

tugas

Direct memory access (DMA) adalah metode yang memungkinkan perangkat input / output (I / O) untuk mengirim atau menerima data secara langsung ke atau dari memori utama, melewati CPU untuk mempercepat operasi memori. Proses ini dikelola oleh chip yang dikenal sebagai pengontrolDirectMemory Access Control (DMAC).

Selama transfer blok byte masukan, urutan berikut terjadi sebagai byte data dikirim dari I/O Interface ke memori:

  1. I/O Interface mengirimkan pengontrol DMA permintaan DMA layanan.
  2. Permintaan Bus dibuat untuk pin terus (Tinggi aktif) pada mikroprosesor 8086 dan controller kontrol keuntungan dari bus.
  3. Dana bantuan Bus dikembalikan ke DMA controller dari Hold mengakui (HLDA) pin (aktif tinggi) pada mikroprosesor 8086.
  4. Para DMA controller tempat isi alamat register ke bus alamat.
  5. Controller mengirimkan I/O Interface pengakuan DMA, yang memberi tau I/O Interface untuk menempatkan data pada bus data. (Untuk output itu sinyal
    antarmuka untuk memalangi data berikutnya yang ditempatkan di bus)
  6. Byte data ditransfer ke lokasi memori yang ditunjukkan oleh bus alamat.
  7. I/O Interface Mengkaitkan data.
  8. Permintaan Bus terjatuh, pin HOLD pergi rendah, dan controller melepaskan bus.
  9. Bantuan Bus dari mikroprosesor 8086 dijatuhkan dan pin HLDA pergi Rendah.

 

B. Kegunaan DMA

         DMA memiliki kegunaan sebagai  berikut :

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

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

3. Supaya 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.

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

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

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.

C. Cara Kerja DMA

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

      2.  CPU klien mengeksekusi program lain.

  1.  DMA controller mengirimkan seluruh blok data (per satu word) langsung ke        memori tanpa melibatkan CPU)
  2.  DMA controler mengirimkan interupt ke CPU jika telah selesai.
  3.  DMA controler mengambil alih sistem bus sebanyak 1 siklus.
  4.  DMA men-transfer satu word data
  5.  Pengambil alihan bus oleh DMA bukan interrupt CPU tidak perlumenyimpan context
  6.  CPU hanya tertunda sessaat satu siklus sebelum mengakses bus yaitu sebelum operan atau data diambil atau data ditulis diagram modul DMA

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

E.  Jalur Transfer DMA

  1.    Ada 3 langkah dalam transfer DMA
  2.   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.
  3.   Pengendali DMA memulai operasi dengan menyiapkan bus,menyediakan alamat, menulis, dan membaca data sampai seluruh blok sudah ditransfer.

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

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

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

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

 

SUMBER :  https://www.techopedia.com/definition/2767/direct-memory-access-dma
https://taryainunhannif.blogspot.com/2014/02/normal-0-false-false-false-in-x-none-x_42.html

THREAD PADA SISTEM OPERASI

Thread

Capture

  • Thread adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh sistem operasi.
  • Merupakan sebuah status eksekusi (ready, running, suspend, block, queue, dll)
  • Kadang disebut sebagai proses ringan (lightweight).
  • Unit dasar dari dari sistem utilisasi pada processor (CPU).
  • Dalam thread terdapat: ID Thread, Program Counter, Register dan Stack.
  • Sebuah thread berbagi code section, data section dan resource sistem operasi dengan thread yang lain yang memiliki proses yang sama.

2.Single-Threading dan Multi-Threading Single

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

11

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-One2

  • 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

4

  • 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

5

  • 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 : https://vivimargaretha494.wordpress.com/2015/10/01/thread-pada-sistem-operasi-2/

 

 

APA ITU HANDHELD ?

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.

Perkembangan System Handheld

Sekitar tahun 1990-an dikembangkan sistem yang lebih kecil dari

mikrokompuer yang disebut dengan sistem handheld dalam bentuk personal digital

assistants (PDA). Pada beberapa sistem terdapat telepon selular. Sistem ini

mempunyai memory yang terbatas, prosessor dengan kecepatan rendah dan display

screen yang kecil

Sejarah Perkembangan System Handheld

  • 1993 Ponsel pintar yang pertama, IBM Simon, memiliki fitur layar sentuh, email, dan fitur PDA dirilis.
  • 1996 Palm Pilot 1000 personal digital assistant(PDA) diperkenalkan pertama kali dengan sistem operasi Palm OS.
  • 1996 PC handled pertama dengan sistem Windows CE diperkenalkan.
  • 2000 Symbian menjadi sistem operasi genggam modern pertama pada ponsel pintar dengan munculnya Ericsson R380.
  • 2001 The Kyocera 6035 menjadi ponsel pintar pertama yang menggunakan Palm OS.
  • 2002 Microsoft Windows CE versi Pocket PC untuk ponsel pintar diperkenalkan.
  • 2002 BlackBerry merilis ponsel pintar pertamanya.
  • 2007 Apple iPhone dengan iOS pertama kali diperkenalkan.
  • 2008 OHA merilis Android 1.0 dengan HTC Dream (T-Mobile G1) sebagai ponsel Android yang pertama.
  • 2009 Palm memperkenalkan webOS melalui Palm Pre.
  • 2009 Samsung memperkenalkan Bada OS melalui Samsung S8500.
  • 2010 Windows Phone OS dirilis.

Perkembangan Sytem Handheld (Cellular Telephones)

System Operasi yang terdapat dalam cellular telephones yaitu

o   Symbian

Symbian bisa dibilang sebagai sistem operasi paling populer di dunia mengingat jumlah penggunanya mencapai lebih dari 50% dari pengguna smartphone. Sistem operasi ini dikembangkan oleh Symbian, Ltd.–yang merupakan kolaborasi vendor ponsel Ericsson, Nokia, Motorola, dan Psion–dan memang dikhususkan sebagai mobile operating system. Sistem operasi ini ditulis dengan bahasa C++. Awalnya sistem operasi ini merupakan OS yang close source, namun dalam perkembangannya, sistem operasi ini berubah menjadi open source dan memungkinkan banyak pihak untuk mengembangkan aplikasi yang bisa dioperasikan di ponsel ber-OS symbian. Versi stabil terbaru dari Symbian OS adalah Symbian OS 9.5 dan versi tak-stabil terbarunya adalah Symbian^2 platform / Q3 yang dirilis pada tahun 2009.

Dalam perkembangannya Symbian OS memiliki beberapa versi, yaitu

  • Symbian OS 6.0 dan 6.1. contohnya adalah Nokia 9210 Communicator
  • Symbian OS 7.0 dan 7.0s. Pada versi ini muncul berbagai versi user interfaceseperti UIQ (Sony Ericsson P800, P900, P910, Motorola A925), Series 60(Nokia 7650, 3230, 6260, 6600, 6670, 7610, N-Gage, N-Gage QD), Series 80(Nokia 9210, 9300, 9500), series 90 (Nokia 7710), dan MOAP–Mobile Oriented Application Platform (Contohnya ponsel NTT DoComo). Symbian OS 7.0s adalah versi 7.0 yang diadaptasi agar memiliki kompatibilitas yang lebih baik dengan versi 6.x
  • Symbian OS 8.0 dan 8.1. Contohnya adalah Nokia N91
  • Symbian OS 9. Digunakan untuk keperluan internal Symbian
  • Symbian OS 9.1. Termasuk ponsel Nokia seri S60 3rd edition dan beberapa tipe Sony Ericsson seperti M600 dan P990.
  • Symbian OS 9.2. Contohnya Nokia E90, Nokia N95, Nokia N82, dan Nokia 5700
  • Symbian OS 9.3. Misalnya Nokia E72, E75, E79, dan N96
  • Symbian OS 9.4. Contohnya Samsung OMNIA HD, Nokia N97, Nokia 5800 XpressMusic, Sony Ericsson Satio, dan ponsel S60 5th edition lainnya.

Sistem operasi Symbian juga rentan terhadap ancaman sekuriti berupa virus. Contoh virus yang sering menyerang ponsel ber-OS Symbian adalah Cabir, yang mengirimkan dirinya dari ponsel ke ponsel lain via bluetooth.

o   Windows Mobile

Windows mobile adalah versi mobile dari sistem operasi PC paling populer, Windows, keluaran Microsoft. Sistem operasi ini didesain khusus agar bisa berjalan pada smartphone dan perangkat mobile. Sistem operasi yang awalnya dirilis dengan nama Pocket PC 2000 ini hampir semuanya dilengkapi stylus pen yang digunakan sebagai ‘mouse’ pada layar ponsel. OS ini sudah berkali-kali di-update versinya dengan versi terbarunya saat ini adalah Windows Mobile 6.5 yang dirilis 5 Oktober 2009. Ke depannya akan dirilis Windows Mobile 7.0 yang akan keluar sekitar pertengahan 2010. User interface dari perangkat Windows Mobile menyerupai Windows pada PC, namun sayangnya, seperti halnya Windows pada PC, sistem operasi ini bersifat close sourcesehingga agak menyulitkan pihak ketiga untuk menyediakan aplikasi yang mendukung.

Versi-versi yang telah dirilis meliputi:

  • Pocket PC 2000
  • Pocket PC 2002
  • Windows Mobile 2003 yang memiliki 4 edisi, yaitu : Windows Mobile 2003 for Pocket PC Premium Edition, Windows Mobile 2003 for Pocket PC Professional Edition, Windows Mobile 2003 for Smartphone, dan Windows Mobile 2003 for Pocket PC Phone Edition.
  • Windows Mobile 2003 Second Edition (Windows Mobile 2003 SE)
  • Windows Mobile 5
  • Windows Mobile 6 yang memiliki 3 versi, yaitu : Windows Mobile 6 Standard for Smartphone (phone without touchscreen), Windows Mobile 6 Professional for Pocket PC with phone functionality, dan Windows Mobile 6 Classic for Pocket PCs without cellular radio.

Contoh dari perangkat yang memiliki sistem operasi ini antara lain Audiovox SMT 5600, iMate SP3i, Samsung SCH-i600, Mio 8390, Sagem myS-7, Orange SPV C500, HP iPAQ rw6100, Motorola MPx220, O2 Xphone, dan O2 Xphone II.

UPDATE 08-02-2011: Saat ini versi terbaru dari Windows Mobile adalah Windows Phone 7

o   Palm OS

Palm OS adalah sistem operasi mobile yang dikembangkan oleh Palm, Inc. yang awalnya dikhususkan sebagai sistem operasi untuk PDA. Namun dalam perkembangannya, Palm OS juga dibuat untuk smartphone. Sistem operasi ini didesain untuk kemudahan penggunaan dengan GUI (Graphical User Interface) berbasis touchscreen. Sistem operasi ini ditulis dengan bahasa pemrograman C/C++ dan bersifatclose source. Contoh perangkat yang menggunakan sistem operasi Palm adalah Palm Treo 680. Smartphone ini menggunakan system operasi Palm OS 5.4.9. Beberapa fitur yang ditawarkan adalah Pocket Express, Microsoft Media Player, Palm files, PDF viewer, Adobe Acrobat reader, eReader, Pocket Tunes, dan Document To Go.

o   Android

Android adalah sistem operasi mobile yang berjalan pada kernel Linux, yang dirilis pada 21 Oktober 2008. Awalnya, sistem operasi ini dikembangkan oleh Android, Inc, yang kemudian dibeli oleh Google, dan yang terakhir, sistem operasi ini dibeli oleh Open Handset Alliance, sebuah consortium dari 47 perusahaan hardware, software, dan telecom (termasuk Google) yang didirikan untuk membuat open standard bagi perangkat lunak mobile. Sistem operasi ini bersifat free dan open source.

Perangkat mobile yang mendukung sistem operasi ini di antaranya adalah HTC Dream dan HTC Magic, ponsel keluaran vendor asal Taiwan, HTC.

o   Blackberry OS

Blackberry OS adalah sistem operasi mobile yang dikembangkan oleh perusahaan Kanada, Research in Motion (RIM) yang dibuat untuk handheld andalan mereka dengan nama yang sama. Sistem operasi ini ditulis dalam bahasa Java dan bersifat Close Source. Versi stabil terakhir yang dikeluarkan adalah versi 5.0.0.419 (Blackberry Storm 9530).

Perangkat yang menggunakan Blackberry OS sebagai sistem operasi tentu saja adalah semua varian Blackberry seperti Blackberry Bold, Storm, Curve, Pearl, dan Tour.

o   IPhone OS (iOS)

iPhone OS adalah sistem operasi mobile yang dikembangkan oleh Apple, Inc. yang dibuat untuk produk mereka yaitu iPhone dan iPod Touch. Sistem operasi ini termasuk dalam keluarga Mac OS X / Unix-like operating system. Walaupun sistem operasinya bersifat close source, namun komponennya bersifat open source sehingga memudahkan pihak ketiga untuk mengembangkan aplikasi-aplikasi yang bisa berjalan pada sistem operasi ini.

User interface pada sistem operasi ini menggunakan konsep manipulasi langsung pada layar handheld dengan menggunakan multi-touch gesture. Kontrol pada interfacenya meliputi slider, swith, dan tombol.

Aplikasi-aplikasi yang disertakan dalam sistem operasi ini meliputi Messaging, Calendar, Photos, Camera, Youtube, Google Maps, iPhone, Safari, dan beberapa aplikasi standar lainnya.

 

SUMBER :  http://endrg.blogspot.com/2012/03/perkembangan-handheld.html

 

 

 

 

SISTEM DISTRIBUTED PROCESSING

Pengertian Distributed Processing

Distributed Processing mengerjakan semua proses pengolahan data secara bersama antara komputer pusat dengan beberapa komputer yang lebih kecil dan saling dihubungkan melalui jalur komunikasi. Setiap komputer tersebut memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian total. Jika salah satu prosesor mengalami kegagalan atau masalah yang lain akan mengambil alih tugasnya.

Pemrosesan terdistribusi adalah penggunaan lebih dari satu prosesor untuk melakukan pengolahan untuk tugas individu. Contoh pemrosesan terdistribusi dalam sistem database Oracle muncul dalam Gambar 6-1.

Dalam Bagian A dari gambar, klien dan server yang terletak di komputer yang berbeda, komputer ini terhubung melalui jaringan. Server dan klien dari sistem database Oracle berkomunikasi melalui Net8, antarmuka jaringan Oracle.

Dalam Bagian B dari gambar, satu komputer memiliki lebih dari satu prosesor, dan prosesor yang berbeda memisahkan pelaksanaan aplikasi klien dari Oracle.

Figure 6-1 The Client/Server Architecture and Distributed Processing

Oracle client / server arsitektur dalam lingkungan pemrosesan terdistribusi memberikan manfaat sebagai berikut

–          Aplikasi client tidak bertanggung jawab untuk melaksanakan setiap pengolahan data. Sebaliknya, mereka meminta masukan dari pengguna, data permintaan dari server, dan kemudian menganalisa dan menyajikan data ini menggunakan kemampuan tampilan dari workstation klien atau terminal (misalnya, dengan menggunakan grafik atau spreadsheet).

–          Aplikasi client tidak tergantung pada lokasi fisik dari data. Jika data tersebut akan dipindahkan atau didistribusikan ke server database lain, aplikasi terus berfungsi dengan modifikasi sedikit atau tidak ada.

–          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 :

  1. Struktur antar hubungan
  2. Kesaling tergantungan komponen-komponen.
  3. 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 :

  1. Sistem yang berisi kumpulan file
  2. Berbagai arsitektur fisik berkait dengan system multiprocessor.

Ciri sistem database distribusi

  1. Data disimpan pada sejumlah tempat. Setiap tempat secara logic terdiri dari processor tunggal.
  2. Processor pada tempat yang berbeda tersebut dihubungkan dengan jaringan computer.
  3. Bukan sekumpulan file yang berada pada berbagai tempat tetapi merupakan database pada berbagai tempat.
  4. 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 :

  1. Pengelolaan secara transparan data terdistribusi dan replicated.
  2. Mengacu pada struktur organisasi
  3. Meningkatkan kemampuan untuk share dan otonomi local
  4. Meningkatkan ketersediaan data
  5. Meningkatkan kehandalan
  6. Meningkatkan unjuk kerja
  7. Memudahkan pengembangan system

–         Kelemahan :

  1. Kompleksitas manajemen
  2. Control integritas lebih sulit
  3. Biaya pengembangan
  4. Keamanan
  5. Kurang standarisasi
  6. Menambahkan kebutuhan penyimpanan
  7. Lebih sulit dalam mengatur lingkungan data
  8. Menambah biaya pelatihan.

SUMBER :

 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

Sistem Crtical 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 section diperlukan untuk melindungi variabel dari concurrent access (pengaksesan program di saat yang bersamaan) yang dapat membuat nilai dari variabel tersebut menjadi tidak konsisten.

Seperti yang telah kita ketahui bahwa proses dapat bekerja sendiri (independent process) dan juga dapat bekerja bersama proses-proses yang lain (cooperating process). Pada umumnya ketika proses saling bekerjasama (cooperating process) maka proses-proses tersebut akan saling berbagi data. Pada saat proses-proses berbagi data, ada kemungkinan bahwa data yang dibagi secara bersama itu akan menjadi tidak konsisten dikarenakan,

adanya kemungkinan proses-proses tersebut melakukan akses secara bersamaan yang menyebabkan data tersebut berubah, hal ini dikenal dengan istilah Race Condition.

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

  1. Mutual Exclusion
  2. Progress
  3. Bounded Waiting

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

  1. Solusi Perangkat Lunak. Solusi ini menggunakan algoritma-algoritma untuk mengatasi masalah critical section.
  2. Solusi Perangkat Keras. Solusi ini tergantung pada beberapa instruksi mesin tertentu, misalnya dengan me-non-aktifkan interupsi, mengunci suatu variabel tertentu atau menggunakan instruksi level mesin seperti tes dan set.

Berikut ini algoritma-algoritma yang digunakan untuk mengatasi masalah critical section:

  1. Algoritma I

Algoritma I memberikan giliran kepada setiap proses untuk memproses critical section-nya secara bergantian.

Asumsi yang digunakan disini setiap proses secara bergantian memasuki critical section-nya.

Statement while(turn != 4) akan memeriksa apakah pada saat itu proses 4 mendapatkan turn, jika tidak maka proses 4 akan busy waiting(lihat kembali bahwa printah while diakhiri dengan “;”). Jika ternyata pada saat itu merupakan giliran proses 4 maka proses 4 akan mengerjakan critical section-nya. Sampai sini jelas terlihat bahwa mutex terpenuhi! Proses yang tidak mendapatkan turn tidak akan dapat mengerjakan critical section-nya dan turn hanya akan diberikan pada satu proses saja.

Setelah proses 4 selesai mengerjakan critical section maka turn diberikan pada proses lainnya (turn= j, j merupakan proses selanjutnya yang dapat mengerjakan critical section). Setelah turn-nya diberikan kepada proses lain, proses 4 akan mengerjakan remainder section.   Disini jelas terlihat bahwa syarat bounded waiting jelas terpenuhi. Ingat asumsi yang digunakan dalam algoritma ini adalah setiap proses secar bergantian memasuki critical section-nya, jika pada saat itu proses 4 ternyata belum mau mengerjakan critical section-nya maka proses ke-j tidak akan mendapatkan kesempatan untuk mengerjakan critical section walau saat itu sebenarnya proses ke-j akan memasuki critical section. Artinya syarat progress tidak terpenuhi pada algoritma ini.

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

  1. 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 flagmenunjukkan 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 waiting yang tidak dipenuhi pada Algoritma I dan II dapat dipenuhi oleh algoritma ini karena ketika ada proses yang ingin mengakses critical section dan tidak ada yang menggunakan critical section maka dapat dipastikan ada proses yang bisa menggunakan critical section, dan proses tidak perlu menunggu selamanya untuk dapat masuk ke critical section.

  1. Algoritma Tukang Roti

Algoritma ini didasarkan pada algoritma penjadwalan yang biasanya digunakan oleh tukang roti, dimana urutan pelayanan ditentukan dalam situasi yang sangat sibuk. Algoritma ini dapat digunakan untuk memecahkan masalah critical section untuk n buah proses, yang diilustrasikan dengan n buah pelanggan. Ketika memasuki toko, setiap pelanggan menerima

sebuah nomor. Sayangnya, algoritma tukang roti ini tidak dapat menjamin bahwa dua proses (dua pelanggan) tidak akan menerima nomor yang sama. Dalam kasus di mana dua proses menerima nomor yang sama, maka proses dengan nomor ID terkecil yang akan dilayani dahulu. Jadi, jika Pi dan Pj menerima nomor yang sama dan i < j, maka Pi dilayani dahulu. Karena setiap nama proses adalah unik dan berurut, maka algoritma ini dapat digunakan untuk memecahkan masalah critical section untuk n buah proses.

Struktur data umum algoritma ini adalah

boolean choosing[n];

int number [n];

Awalnya, struktur data ini diinisialisasi masing-masing ke false dan 0, dan menggunakan notasi berikut:

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

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

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

Penjadwalan CPU

Penjadwalan CPU adalah suatu proses pengaturan atau penjadwalan proses-proses yang ada di dalam komputer. Dimana proses-proses tersebut berjalan dalam pola yang disebut Siklus Burst.

Penjadwalan sangat penting dalam menentukan performance sebuah komputer karena mengatur alokasi resource dari CPU untuk menjalankan proses-proses di dalam komputer. Penjadwalan CPU merupakan suatu konsep dasar dari multiprograming, karena dengan adanya penjadwalan dari CPU itu sendiri maka proses-proses tersebut akan mendapatkan alokasi resource dari CPU.

Penjadwalan CPU mungkin akan dijalankan ketika proses dalam keadaan:

  1. Berubah dari running ke waiting state.
  2. Berubah dari running ke ready state.
  3. Berubah dari waiting ke ready state.
  4. Dihentikan.

Penjadwalan nomor 1 dan 4 bersifat Non Preemptive sedangkan lainnya Preemptive.

Penjadwalan yang biasa digunakan sistem operasi dewasa ini biasanya bersifat Preemptive. Bahkan beberapa penjadwalan sistem operasi, contohnya Linux 2.6, mempunyai kemampuan Preemptive terhadap system call-nya ( preemptible kernel).

Penjadwalan CPU secara garis besar dibagi menjadi 2, yaitu Penjadwalan Preemptive dan Penjadwalan Non Preemptive.

  1. PenjadwalanPre-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 slicewaktu 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 diskkeyboard, 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:

  1. sistem lebih responsif daripada sistem yang memakai penjadwalanNon Preemptive.
  2. Sistem terhindar dari keadaan busywait.

contoh sistem operasi yang menerapkan penjadwalan Preemptive:

Windows 95, Windows XP, Linux, Unix, AmigaOS, MacOS X, dan Windows NT .

  1. PenjadwalanNon 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 darirunning state sampai waiting state.
  2. Dihentikan.

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

Dispatcher

Komponen yang lain yang terlibat dalam penjadwalan CPU adalah dispatcher.

Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang sedang terjadwal. Fungsinya:

  1. Context switching

Mengganti state dari suatu proses dan mengembalikannya untuk menghindari monopoli CPU timeContext switchingdilakukan untuk menangani suatu interrupt(misalnya menunggu waktu I/O). Untuk menyimpan state dari proses-proses yang terjadwal sebuah Process Control Block harus dibuat untuk mengingat proses-proses yang sedang diatur scheduler. Selain state suatu proses, PCB juga menyimpan process 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.

Dispatcher seharusnya dapat dilakukan secepat mungkin. Dispatch Latency adalah waktu yang diperlukan dispatcheruntuk menghentikan suatu proses dan memulai proses yang lain.

SUMBER :  https://mediekaputra.wordpress.com/2011/03/26/critical-section/

 

Batch System

Batch System

Batch system adalah dimana job-job yang mirip dikumpulkan dan dijalankan secara kelompok kemudian setelah kelompok yang dijalankan tadi selesai maka secara otomatis kelompok lain dijalankan. jadi dengan kata lain adalah teknologi proses komputer dari generasi ke-2. yang jika suatu tugas sedang dikerjakan pada 1 rangkaian, akan di eksekusi secara berurutan. Pada komputer generasi ke-2 sistem komputer nya maasih blum dilengkapi oleh sebuah sistem operasi. But, dalan beberapa fungsi sistem operasi, seperti os yang tengah berkembang pada jaman sekarang ini. Contohnya adlah FMS ( Fortarn Monitoring System ) dan IBSYS.

Jadi bisa disimpulkan, bahwa komputer generasi ke-2 ini merupakan generasi pertama Sistem Operasi.

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

ada 2 cara dalam Batch System yaitu :

  1. Resident Monitor
  1. Operator bertugas mengatur urutan job
  1. Job-job yg sama cukup dicetak sekali saja, cara inilah yg disebut “Batch system”

Teknik pengurutan job secara manual begini akan menyebabkan tingginya waktu

menganggur CPU. Muncul teknik pengurutan job otomatis yg mampu mentransfer secara otomatis dari suatu proses ke proses lainnya.Program kecil dan bersifat residen dimemori serta berisi urutan2 job yg akan berpindah secara otomatis, inilah “Resident Monitor”

  1. Overlap Operasi antara I/O dg CPU
  •   .  Off line Processing, data yg dibaca dari card reader disimpan dulu dalam tape driver sebelum dibawa ke CPU, demikian pula informasi yg mau dicetak, disimpan dulu di tape
  •   Spooling  adalah suatu program dapat dikerjakan walaupun I/O masih mengerjakan  proses lainnya dan disk secara bersamaan menggunakan data untuk banyak proses. Pengertian multi programming adalah kegiatan menjalankan beberapa program pada memori pada satu waktu.

 BENTUK DARI BATCH SYSTEM

  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.

 

SUMBER :  http://rochmadudinus.blogspot.com/2013/03/definisi-batch-system-multiprograming.html

SISTEM OPERASI – PCB (PROCESS CONTROL BLOCK)

PCB (process control block) dalam Sistem Operasi

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

 

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

 

Proses control block

Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block PCB – juga disebut sebuah control block. PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, termasuk hal-hal dibawah ini:
1. Status proses: status mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
2. Program counter: suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk proses ini.
3.CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer. Register  tersebut termasuk accumulator , indeks register, stack pointer , general-purposes register , ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya (lihat Gambar 2-3).
4.Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori yang digunakan oleh sistem operasi (lihat Bab Managemen memori).
5.Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun jumlah job atau proses, dan banyak lagi.
6.Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
7.PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari proses yang satu dengan yang lain.
Gambar Proses Control Blok
Elemen-elemen dari Process Control Block (PCB) :
1.Identifier : menjelaskan proses yang sedang terjadi
2.State : kondisi yang terjadi pada proses
3.Priority : urutan perintah yang jelas pad suatu proses
4.Program counter : instruksi pada proses
5.Memory pointers : media penyimpanan (penunjuk alamat) pada proses
5.Context data : data yang berkaitan dengan proses
6.I/O status information : terdapat masukan dan keluaran yang diinginkan
7Accounting information : memberikan informasi yang dibutuhkan
Macam-Macam Jenis Status Proses
Jenis status yang mungkin dapat disematkan pada suatu proses pada setiap sistem operasi dapat berbeda-beda. Tetapi paling tidak ada 3 macam status yang umum, yaitu:
1.Ready adalah status dimana proses siap untuk dieksekusi pada giliran berikutnya
2.Running adalah status dimana saat ini proses sedang dieksekusi oleh prosesor
3.Blocked adalah status dimana proses tidak dapat dijalankan pada saat prosesor siap/bebas.

SEJARAH SISTEM OPERASI ANDROID

Istilah-dalam-Sistem-Operasi-Android

     Android adalah OS (sistem operasi) yang berbasis Linux yang dikhususkan untuk perangkat layar sentuh seperti smart phone dan tablet. Android awalnya dikembangkan oleh Android Inc. dengan dukungan dari Google, kemudian google membelinya pada tahun 2005. Android pertama kali diliris pada tahun 2007. Sebernarnya tujuan utama dari pengembangan sistem Android ini adalah untuk mengembangkan sebuah teknologi canggih yang diperuntukkan untuk kamera digital, namun kemudian dengan didasari ole pasar untuk perangkat tersebut tidak cukup besar, pengembangan Androidpun kemudian dialihkan ke pasar telepon pintar untuk menyaingi Symbian dan Windows Mobile.

Penemu Android pertama kali adalah Andrew E. Rubin ia adalah pendiri dan mantan CEO Danger Inc. dan Android Inc. Andy Rubin bersama-sama dengan Nick Sears ,  Chris White, Rich Miner mendirikan Android.inc dengan tujuan untuk mengembangkan “perangkat seluler pintar yang lebih sadar akan lokasi dan preferensi penggunanya.

Android memungkinkan penggunanya untuk memasang aplikasi pihak ketiga, baik yang diperoleh dari toko aplikasi seperti Google Play, ataupun dengan mengunduh dan memasang berkas APK dari situs pihak ketiga. Di Google Play, pengguna bisa menjelajah, mengunduh, dan memperbarui aplikasi yang diterbitkan oleh Google dan pengembang pihak ketiga, sesuai dengan persyaratan kompatibilitas Google. Google Play akan menyaring daftar aplikasi yang tersedia berdasarkan kompatibilitasnya dengan perangkat pengguna,  Pada bulan September 2012, ada lebih dari 675.000 aplikasi yang tersedia untuk Android, dan perkiraan jumlah aplikasi yang diunduh dari Play Store adalah 25 miliar.

Ini lah Daftar Versi dari Android :

1. Apple Pie / Alpha v1.0

applepie

Untuk OS pertama yang dimiliki oleh Android adlah Apple Pie, OS ini dirilis pada tanggal 23 September 2008.

2.Banana Bread v1.1

Android-Banana-bread
Dan untuk OS Android yang kedua adalah Banana Bread yang dirilis pada bulan Februari 2009 yang digunakan oleh Smartphone pengadopsi Android, HTC dengan merk Dream.

3. CupCake v1.5

3
Untuk OS yang selanjutnya adalah Cupcake,  mulai dari sini nih versi Android CupCake mulai menunjukkan kecanggihannya sebagai Sistem Operasi Android, dan ini kali pertama Google menjadikan nama makanan.

4. Donut v1.6

03_Donut
Versi Donut ini dirilis pada bulan September 2009, di versi ini Google mulai memperbaiki masalah/bug yang membuat Android ini lebih sempurna ditambah lagi dengan fitur nafigasi turn-by-turn

5. Eclair v2.0-2.1

bb2014x06x18xx01x06x09x933857caee3ecb3d5d000d311cab8068xfstxupld
Dirilis pada Oktober 2009 diversi 2.0 dengan nama Eclair yang menjadi awal diaplikasikan Bluetooth 2.1 di Android. Setelah merilis versi 2.0 diupdate lagi ke versi 2.1 yang mendapat fitur tambahan seperti multi-touch, Live Wallpaper dan juga Blitz kamera.

6. Froyo/Forzen Yogurt v2.2

android_2.2_froyo
Pada bulan Mei 2010 Paduan antara Google Chroome dengan Android mulai nampak dengan ditambahkanya script Chroome dengan upaya untuk meningkatkan kecepatan kinerja.
Forzen Yogurt sendiri yakni memiliki makna Yogurt yang dibekukan, jadi seperti Ice Cream.

7. Gingerbread v2.3

android-23-3-hd-wallpaper
Bulan Desember 2010 seiring dirilisnya versi Gingerbread, Android kedatangan salah satu merk Platform raksasa Smartphone yakni Samsung yang meluncurkan Samsung Nexus.
Di android versi 2.3 ini Google menambahkan fitur baru yaituNFC, internet Calling, Download Manager

8. Honeycomb v3.0-3.2

honeycomb
Lanjutan dari Huruf berabjad H adalah Honeycomb yang dirilis pada Februari 2014 , untuk android versi ini diperuntukkan dan spesialis Tablet dimana era Tablet sedang menjadi-jadi di tahun ini, Update tak hanya berhenti di versi 3.0 saja namun juga dikembangkan ke versi 3.1 dan 3.2.

9. Ice Cream Sandwich v4.0

android-ice-cream-sandwich
Revormasi Android mulai terlihat dengan adanya Ice Cream Sandwich dimana OS versi ini mulai bekerja disemua jenis platform dan smartphone seperti tablet , fiturnya juga menjadi bertambah diantaranya adalah ekstra multitasking dan notifikasi yang lebih banyak.

10. Jelly bean v4.1.2

jelly_bean
Android versi Jelly Bean ini dirilis pada 27 Juni 2014 lewat konferensi I/O Google. Jelly Bean menjadi versi Android yang mendapatkan banyak update, tercatat 2 kali sudah mendapatkan update di Jelly Bean yakni versi 4.1.2 dimana berbeda dibandingkan versi sebelumnya adalah segi User Interface yang lebih elegan seta penambahan fitur Google Search.

11. KitKat v4.4.2

10_KitKat
Android Versi 4.42 atau bernama KitKat ini paling banyak dipakai pada smartphone masa kini.

12. Lolipop v5.0

Android-5.0-Lollipop.png
Android Lolipop adalah Android versi terbaru yang diluncurkan Google pada tahun 2014. Versi Lollipop pertama kali ditanamkan di Smartphone Google Nexus 6

13. Marsmelow v6.0

thumb21
Rilis Terbaru Android 6.0 Bernama Marshmallow | Pasti sobat sudah pada tahu nih OS Smartphone terlaris jaman ini selalu menghadirkan nama nama unik setiap versi yang dirilisnya untuk versi lengkap dari awal sudah pernah saya bahas di Urutan Nama Nama Versi Android Dari..
Banyak yang mengira bahwa versi android seteleah versi 5.0 Lollipop adalah Milkshake, namun google membantah akan dugaan itu.
Google secara resmi mengeluarkan Android versi 6.0 yang diberi nama yaitu Marshmallow. Selain itu Android Marshmallow juga mendapatkan fitur fitur terbarunya.

14. Nougat v7.0 

android-7-0-nougat-13-2
Nougat adalah versi Android termutakhir yang baru diperkenalkan pada ajang kumpul developer Google I/O, pertengahan 2016 ini. Setelah beberapa lamanya, Google menghadirkan OS Nougat secara resmi untuk publik.Pembaruan yang paling mendasar pada versi Nougat adalah kehadiran Google Assistant yang menggantikan Google Now. Asisten tersebut lebih bisa diandalkan untuk menjalankan berbagai fungsi.
Fitur-fitur baru lainnya mencakup layar split-screen saat dipakai multitasking, serta fitur Doze yang telah dikenalkan sebelum di versi Android Marshmallow namun telah ditingkatkan. Android versi 7.0 atau Nougat juga memiliki dukungan terhadap platform virtual reality terbaru Google.

15. Oreo v8.0

main-qimg-ad72e547e67b493d5423c5f03a77beac-c
untuk pengguna android sekarang lagi booming booming nya nih tentang OS terbaru, ya itu adalah OS android versi 8.0 atau yang sering disebut sebagai Android O atau Android Oreo. Versi android ini resmi diperkenalkan ole Google pada tanggal 22 Agustus 2017 yang lalu dan juga sudah secara resmi bisa diluncurkan langsung ke lapangan, tapi sebelum diresmikan versi android ini oleh google, nama “Oreo” tersebut sudah terendus sejak Android O pertama kali diperkenalkan di ajang Google I/O 2017 pada Mei 2017 lalu.

Baiklah Itu Saja Artikel Untuk Pembahasan Tentang Android , Semoga artikel ini bisa membantu Para Pembaca , Terima Kasih , See You Next Time