Kamis, 13 Desember 2018

Life Cycle Software

Penjelasan Tentang Model Life Cycle Software



Model Pada Life Cycle Software

Model siklus pada perangkat lunak sebenarnya sangatlah banyak, namun disini saya akan menjelaskan beberapa saja diantaranta model Waterfall, V-model, Simple Interaction Desaign Model, Star Lifecycle Model. Berikut penjelasan dari masing-masing model yang akan di jelaskan secara berurutan.

1. Model Waterfall

Model waterfall dulu dikenal dengan nama “Linear Sequential Model” merupakan model tertua dan paling handal dan sering dikenal sebagai “classic life cycle”. Model ini pertama kali diperkenalkan oleh Winston Royce sekitar tahun 1970 sehingga sering dianggap kuno, tetapi model tersebut merupakan model yang paling banyak dipakai didalam Software Engineering (SE).

Model ini mengusulkan sebuah pendekatan kepada pengembangan software yang sistematik dan sekuensial yang mulai dari tingkat kemajuan sistem pada seluruh analisis, desain, kode, pengujian dan pemeliharaan. Model ini melingkupi aktivitas-aktivitas sebagai berikut yaitu; rekayasa dan pemodelan sistem informasi, analisis kebutuhan, desain, koding, pengujian dan pemeliharaan.

Model pengembangan ini bersifat linear dari tahap awal pengembangan system yaitu tahap perencanaan sampai tahap akhir pengembangan system yaitu tahap pemeliharaan. Tahapan berikutnya tidak akan dilaksanakan sebelum tahapan sebelumnya selesai dilaksanakan dan tidak bisa kembali atau mengulang ke tahap sebelumnya.

berikut adalah gambar tahap-tahap pengembangan software menggunakan model waterfall :

                            gambar 1: Metode Waterfall

Berikut ini adalah penjelasan dari masing-masing tahapan yang terdapat pada model waterfall :

a. System Engineering :
Permodelan ini diawali dengan mencari kebutuhan dari keseluruhan sistem yang akan diaplikasikan ke dalam bentuk software. Tahap ini sering disebut dengan Project Definition.
b. Analysis 
Proses pencarian kebutuhan diintensifkan dan difokuskan pada software. Untuk mengetahui sifat dari program yang akan dibuat, maka para software engineer harus mengerti tentang domain informasi dari software, misalnya fungsi yang dibutuhkan, user interface, dsb.
c. Design 
Proses ini digunakan untuk mengubah kebutuhan-kebutuhan diatas menjadi representasi ke dalam bentuk“blueprint” software sebelum coding dimulai. Desain harus dapat mengimplementasikan kebutuhan yang telah disebutkan pada tahap sebelumnya.
d. Coding : 
Untuk dapat dimengerti oleh mesin, maka design yang ada di komputer tadi harus diubah bentuknya menjadi ke dalam bahasa pemrograman melalui proses coding. Tahap ini merupakan implementasi dari tahap design yang secara teknis nantinya dikerjakan oleh programmer.
e. Testing : 
Sesuatu yang dibuat haruslah diujicobakan. Demikian juga dengan software. Semua fungsi-fungsi software harus diujicobakan, agar software bebas dari error, dan hasilnya harus benar-benar sesuai dengan kebutuhan. Begitu saoftware berjalan dengan sempurna dan sesuai dengan kebutuhan maka akan diimplementasikan.
f. Maintenance : 
Pemeliharaan suatu software diperlukan, termasuk di dalamnya adalah pengembangan, karena software yang dibuat tidak selamanya hanya seperti itu. Pengembangan diperlukan ketika adanya perubahan dari eksternal perusahaan seperti ketika ada pergantian sistem operasi, atau perangkat lainnya.Keuntungan model waterfall :
Merupakan model pengembangan paling handal dan paling lama digunakan.
Cocok untuk system software berskala besar.
Cocok untuk system software yang bersifat generic.
Pengerjaan project system akan terjadwal dengan baik dan mudah dikontrol.Kelemahan model waterfall :
Waktu pengembangan lama. hal ini dikarenakan input tahap berikutnya adalah output dari tahap sebelumnya.
Biaya mahal, hal ini juga dikarenakan waktu pengembangan yang lama.
Terkadang perangkat lunak yang dihasilkan tidak akan digunakan karena sudah tidak sesuai dengan requirement bisnis customer. hal ini juga dikarenakan waktu pengembangan yang lama. selain itu dikarenakan waterfall merupakan aliran yang linear, sehingga jika requirement berubah proses tidak dapat diulang lagi.
Karena tahap-tahapan pada waterfall tidak dapat berulang, maka model ini tidak cocok untuk pemodelan pengembangan sebuah proyek yang memiliki kompleksitas tinggi.
Meskipun waterfall memiliki banyak kelemahan yang dinilai cukup fatal, namun model ini merupakan dasar bagi model-model lain yang dikembangkan setelahnya.

2. V-Model


V-Model merupakan pengembangan dari model Waterfall. V-Model merupakan kepanjangan dari Validasi/ Verivikasi Model.V-model pertama kali diusulkan oleh Paul Rook pada tahun 1980 dan dikenal dengan nama V-Model tradisional. V-model mendemonstrasikan hubungan antara proses pembangunan sistem (development activities) dan proses pengujian system (testing activities). Berbeda dengan pemodelan lainnya, dalam pemodelan V-Model proses pengujian jauh lebih kompleks karena dibagi menjadi beberapa bagian yang lebih detail. Proses pengembangan sistem meliputi requirement analysis, requirements specification, design specification, dan program specification. Sedangkan dalam proses pengujian meliputi acceptance testing, system testing, integration testing, dan units testing. Diantara develompment activities dan testing activities terdapat proses penulisan kode. Alur tahapan pada V-Model dapat dilihat pada gambar dibawah ini :


        gambar 2: Metode V-model


Penjelasan dari berbagai tahapan V-Model sebagai berikut :

1). Requirement & Acceptance Testing.
Requirement Analysis adalah Tahap Requirement Analysis sama seperti yang terdapat dalam model waterfall. Keluaran dari tahap ini adalah dokumentasi kebutuhan pengguna. Acceptance Testing merupakan tahap yang akan mengkaji apakah dokumentasi yang dihasilkan tersebut dapat diterima oleh para pengguna atau tidak.
2). General Design Specification & Component Testing
Dalam tahap ini analis sistem mulai merancang sistem dengan mengacu pada dokumentasi kebutuhan pengguna yang sudah dibuat pada tahap sebelumnya. Keluaran dari tahap ini adalah spesifikasi software yang meliputi organisasi sistem secara umum, struktur data, dan yang lain. Selain itu tahap ini juga menghasilkan contoh tampilan window dan juga dokumentasi teknik yang lain seperti Entity.

3). Diagram dan Data Dictionary.
Detailed Design Specification & Unit testing. Dalam Tahapan ini, perancangan dipecah menjadi modul-modul yang lebih kecil. Setiap modul tersebut diberi penjelasan yang cukup untuk memudahkan programmer melakukan coding. Tahap ini menghasilkan spesifikasi program seperti: fungsi dan logika tiap modul, pesan kesalahan, proses input-output untuk tiap modul, dan lain-lain.
4). Source Code/Coding.
merupakan tahap paling bawah pada V-Model sehingga merupakan tahapan yang terpenting. Tahapan ini berfungsi mengubah modul-modul desain yang telah dilakukan pada tahapan sebelumnya kedalam bentuk bahasa yang di mengerti oleh komputer (melakukan pengkodingan) hal ini dilakukan oleh pihak pengembang.

5). Unit Testing
merupakan tingkat pengujian perangkat lunak di mana masing-masing unit / komponen perangkat lunak diuji. Tujuannya adalah untuk memvalidasi bahwa setiap unit perangkat lunak melakukan seperti yang dirancang. Unit adalah bagian yang dapat diuji terkecil dari perangkat lunak apa pun. Biasanya memiliki satu atau beberapa input dan biasanya satu output. Dalam pemrograman prosedural, unit dapat berupa program individu, fungsi, prosedur, dll. Dalam pemrograman berorientasi objek, unit terkecil adalah metode, yang mungkin milik kelas dasar / super, kelas abstrak atau turunan / kelas anak. (Beberapa memperlakukan modul aplikasi sebagai unit. Hal ini harus dihalangi karena mungkin akan ada banyak unit individu dalam modul itu.) Kerangka kerja pengujian unit, driver, stub, dan mock / objek palsu digunakan untuk membantu dalam pengujian unit 

6). Integration testing
merupakan tingkat pengujian prangakat lunak dimana unit individu digabungkan 
dan di uji sebagai suatu kelompok. Tujuan dari level pengujian ini adalah untuk 
mengekspos kesalahan dalam interaksi antar unit terintegrasi. Test driver dan 
test bertopik digunakan untuk membantu dalam pengujian integrasi. 





7). Operational Tersting 
merupakan tingkat pengujian perangkat lunak di mana perangkat lunak yang lengkap dan 
terintegrasi diuji. Tujuan dari tes ini adalah untuk mengevaluasi kepatuhan sistem dengan 
persyaratan yang ditentukan. 

Keuntungan V-Model :

1).Sederhana dan mudah digunakan.
2).Pengujian aktivitas seperti perencanaan, pengujian perancangan terjadi sebelum coding sehingga menghemat banyak waktu. Maka memiliki keberhasilan yang lebih tinggi dari model waterfall.
3).Jika perubahan terjadi perubahan, maka proses requirement dapat diperbarui.
4).Bekerja dengan baik untuk proyek-proyek kecil di mana persyaratan mudah dipahami.
5).Meminimalisasikan kesalahan pada hasil akhir karena ada test pada setiap prosesnya Penyesuaian yang cepat pada projek yang baru Memudahkan dalam pembuatan dokumen projek Biaya yang murah dalam perawatan dan modifikasinya V-Model sangat fleksibel.
6).V-Model mendukung project tailoring dan penambahan dan pengurangan method dan tool secara dinamis. 
7).User dari V-Model berpartisipasi dalam change control board yang memproses semua change request terhadap V-Model.

Kelemahan V-Model :

1).Aktifitas V-Model hanya difokuskan pada projectnya saja, bukan pada keseluruhan organisasi.
2).V-Model adalah proses model yang hanya dikerjakan sekali selama project saja, bukan keseluruhan organisasi.
3).Prosesnya hanya secara sementara. Ketika project selesai, jalannya proses model dihentikan. Tidak berlangsung untuk keseluruhan organisasi.
4).Metode yang ditawarkan terbatas. Sehingga kita tidak memiliki cara pandang dari metode yang lain. Kita tidak memiliki kesempatan untuk mempertimbangkan jika ada tools lain yang lebih baik.
Tidak ada tools untuk hardware di V-Model. Tool yang dimaksud adalah “ software yang mendukung pengembangan atau pemeliharaan / modifikasi dari system IT ”.
5).V-Model adalah model yang project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.
6).V-Model terlalu fleksibel dalam arti ada beberapa activity dalam V-Model yang digambarkan terlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk dalam activity tersebut dan apa yang tidak.


3. Simple Interaction Design Model

Simple interaction design model merupakan sebuah model pengembangan software yang sederhana. Karakteristik dari model Simple interaction design adalah proses interactive design secara ekplesit antara penggabungan dari keterlibatan pengguna, iterasi, kriteria usability tertentu. Berikut ini merupakan gambar tahapan dari model Simple interaction design :

Hasil gambar untuk A simple interaction design model
                     gambar 3: metode simple interaction design

Penjelasan dari berbagai tahapan yang terdapat pada model Simple interaction design :

1. Identify needs/Establish requirement : 
pada tahap ini, kita menerima masukkan dari satu titik, lalu di identifikasi apa saja kebutuhannya dan apakah sesuai dengan kebutuhannya. Sebelum menetapkan Establish requirement ada beberapa hal yang harus dipahami yaitu siapa penggunanya, dan apa tujuan yang mereka inginkan ketika menggunakan software yang akan rancang/dikembangkan ini.

2. Design/(Re) Design : 
pada tahap ini dilakukan desain dan alternatif desain software dari kebutuhan yang diperlukan dan sesuai dengan persyaratan yang ditetapkan (dapat dengan meilhat desain orang lain sebagai referensi yang berguna). sedangkan Redesign adalah melakukan desain ulang dikarenakan hasil sebelumnya tidak sesuai dengan kebutuhan atau tidak sesuai dengan hasil evaluasi akhir.

3. Build interactive versions : 
tahapan ini membuat sebuah prototype desain interaktif yang mana dapat memiliki fungsi terbatas. Sehingga penggembang dapat berkomunikasi dengan pengguna dengan mengujicobakannya. Jika terdapat design yang memiliki kesalahan/kekurangan/belum ada maka proses akan kembali ketahapan Redesign.

4. Evaluate : 
tahapan ini, tahapan dimana pengguna mengevaluasi terhadap software yang telah di buat. Jika terdapat kekeliruan dari segi design maka tahapan akan kembali kepada tahap Redesign. Jika kesalahan terjadi karena kesalahan identifikasi kebutuhan maka akan kembali ketahapan Identify needs/Establish requirements. Jika telah sesuai kebutuhan pengguna maka ini akan menjadi final project.
Jika dilihat dari tahapan diatas, maka dapat disimpulkan bahwa model Simple interaction design memiliki 3 (tiga) prinsip yaitu :
a). Melibatkan pengguna pada proses design dan evaluation.
b).Tentukan kriteria dari quantifiable & measurable usability.
c). Akan terjadinya iterasi yang tidak dapat di hindari.


4. Star Lifecycle Model (Hartson & Hix, 1989)


Model Star life cycle diusulkan oleh Harton dan Hix di akhir 1980-an, sebagai hasil pengamatan yang luas dari pengembang di lingkungan real-time (Helms 2001).
Model ini merupakan model yang bersifat elastis tidak seperti model waterfall yang bersifat sangat kaku. Model Star life cycle memiliki karakteristik yaitu melakukan pengujian secara terus-menerus, hal ini disebabkan karena semua tahapan selalu di lakukan evaluasi. Berikut ini gambaran dari tahapan model Star life cycle :
star-model
       
                                                  gambar 4: star lifencyle model



a) Task analysis/Functional analysis : 
tahapan ini, akan melakukan functional analysis dari input yang di berikan yang kemudian akan dilakukan evaluation.

b) Requrements/Specification 
tahapan ini, akan mengumpulkan informasi terkait dengan kebutuhan dan segala sesuatu yang bersangkutan dengan software yang akan dikembangkan, lalu dilakukan tahapan evaluation.

c) Conceptual design/Formal design representation : 
tahapan ini akan mendesain sebuah desain konseptual dari software yang akan dikembangkan bersadarkan semua inputan yang masuk ketahapan ini. Kemudian dilakukan tahapan evaluation.

d) Prototyping : 
Sama halnya seperti tahapan pada Simple interaction design model. dimana prototype merupakan desain interaktif yang memiliki fungsi terbatas yang akan di ujicobakan kepada pengguna lalu melakukan tahap evaluation.

e) Implementation 
tahapan ini merupakan tahapan dimana software diimplementasikan dan digunakan oleh pengguna lalu dilakukannya tahap evaluation.

f) Evaluation : 
tahapan ini adalah melakukan evaluasi terhadap setiap tahapan yang menggunakan tahapan ini untuk melihat apakah hal yang dilakukan pada tahapan sebelumnya telah sesuai dengan kebutuhan terbaru dari pengguna lalu memberikan feedback terhadap tahapan sebelumnya.



sumber: 

http://softwaretestingfundamentals.com/unit-testing/


Rabu, 12 Desember 2018

Standar Proses UCD untuk Sistem Interaktif

Standar Proses UCD untuk Sistem Interaktif




UCD ( User Centered Design ) merupakan paradigma baru dalam pengembangan sistem berbasis web. Perancangan berbasis pengguna ( User Centered Design / UCD ) adalah istilah yang digunakan untuk menggambarkan filosofi perancangan. Konsep dari UCD adalah User sebagai pusat dari proses pengembangan sistem, tujuan, sifat-sifat, dan lingkungan sistem semua didasarkan dari pengalaman pengguna. 

Proses dari User Centered Design ( UCD ) terdapat lima proses yaitu seperti gambar dibawah :




1.      Plan the human-centered design process
Pada tahap ini dilakukan diskusi terhadap orang-orang yang akan mengerjakan proyek, untuk mendapatkan komitmen bahwa proses pembangunan proyek adalah berpusat kepada pengguna atau user. Proyek akan memiliki waktu dan tugas untuk melibatkan pengguna atau user dalam awal dan akhir proses atau di mana mereka dibutuhkan. Dan juga orang-orang yang mengerjakan proyek harus mengetahui betul tentang metode User Centered Design (UCD) ini melalui studi literatur, pelatihan atau seminar. metode ini dilakukan dengan cara membaca dan memahami buku - buku referensi, jurnal, dan media lain yang berkaitan dengan pengolahan data secara  umum yang mendukung dan mempertegas teori - teori yang ada, sehingga dapat menanamkan komitmen bahwa perancangan menggunakan User Centered Design (UCD) dapat memenuhi keinginan pengguna.

2.      Understand and Specifying the Context of Use
Pada tahap ini, Proses UCD Mengidentifikasi orang yang akan menggunakan produk. Ini akan menjelaskan untuk apa dan dalam kondisi seperti apa mereka akan menggunakan produk. Dalam memahami dan menentukan konteks pengguna meliputi :
·         Karakteristik pengguna yang diharapkan
·         Pekerjaan yang dilakukan pengguna
·         Pemecahan secara hirarki atas pekerjaan global
·         Tujuan global penggunaan sistem untuk setiap kategori pengguna, termasuk karakteristik tugas yang mungkin mengganggu penggunaan dalam scenario   khusus, seperti frekuensi dan lama kinerja.
·         Deskripsi harus mencakup alokasi aktifitas dan langkah operasional antara   manusia dan sumber daya teknologi.
·         Pahami lingkungan tempat pengguna akan menggunakan system.
·         Sangat penting awal langkah untuk menentukan kebutuhan sistem minimal dan optimal dengan memperhatikan.

3.      Specify  the user and organizational requirements
Mengidentifikasi kebutuhan pengguna dan kebutuhan organisasi.  pada tahap ini adalah tahap penggalian informasi atau data untuk menggumpulkan kebutuhan dari pengguna, kemudian setelah informasi/data telah terkumpul, dilakukanlah penataan informasi dari data kebutuhan pengguna tersebut, lalu kebutuhan pengguna digambarkan ke dalam berbagai bentuk/teknik, seperti narasi, gambar, atau diagram, dll. Dalam hubungannya dengan konteks pengguna yaitu :
·         Kualitas perancangan interaksi manusia dan komputer serta workstation.
·         Kualitas dan isi tugas pengguna ( termasuk alokasi tugas diantara kategori pengguna yang berbeda ).
·         Kinerja tugas yang efektif khususnya dalam hal transparansi aplikasi ke pengguna.
·         Kerjasama dan komunikasi yang efektif diantara pengguna dan pihak ketiga yang relevan.
·         Dibutuhkan kinerja sistem baru terhadap tujuan finansial.

4.      Produce Design Solutions
Tahap ini merupakan tahap perancangan solusi. Dimana peneliti akan membangun desain sebagai solusi dari sistem yang sedang dianalisis dengan teknik prototyping yang digunakan untuk membuat ide-ide terlihat dan memfasilitasi komunikasi yang efisien dengan pengguna. Ini mencegah kemungkinan kebutuhan dan biaya tinggi yang terkait untuk pengerjaan ulang produk pada langkah berikutnya dari siklus hidup. Ketika solusi desain disajikan kepada pengguna, mereka juga harus diperbolehkan untuk melaksanakan tugas-tugas. Umpan balik pengguna yang dikumpulkan harus dimasukkan dalam perbaikan solusi desain. Ini harus iterasi terus sampai tujuan desain telah dipenuhi

5.      Evaluate design against requirements
Tahap ini merupakan tahap evaluasi terhadap perancangan yang telah disesuaikan dengan kebutuhan pengguna. Evaluasi ini dilakukan untuk mengetahui sejauh mana perancangan yang dihasilkan sesuai dengan kebutuhan pengguna dengan teknik kuesioner. Tujuannya adalah untuk menghasilkan umpan balik untuk lebih meningkatkan produk dan untuk menentukan apakah desain memenuhi kebutuhan pengguna yang ditentukan, tujuan kegunaan dan sesuai dengan pedoman kegunaan umum. Siklus proses UCD terus berlangsung selama tujuan kegunaan belum dipenuhi.

sumber:

Kamis, 01 November 2018

DATA TRANSFER DENGAN DMA CONTROLLER

DIRECT MEMORY ACCESS



Direct memory access (DMA) adalah suatu alat pengendali khusus disediakan untuk memungkinkan transfer blok data langsung antara perangkat eksternal dan memori utama,tanpa interversi terus menerus dari prosesor.Selain itu, Direct memory access (DMA) adalah suatu metode dimana beberapa hardware tertentu bisa mengakses memori sistem unruk proses baca/tulis tanpa melibatkan kerja dari CPU.  Beberapa hardware yang dapat menggunakan teknik ini yaitu disk drive, kartu grafis, network card dan sound card.      
                                
Fungsi DMA
Adalah 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.
Cara kerja DMA
Transfer DMA dilakukan oleh sirkuit kontrol yang merupakan bagian dari antar muka perangkat    I/O. Istilah ini yang sering banyak kita ketahui adalah sebagai kontroler DMA. Kontroler DMA    melakukan fungsi yang biasanya dilakukan oleh prosesor pada saat mengakses memori utama (yang   sering disebut : RAM). Untuk setiap word yang ditransfer, kontroler ini menyediakan alamat     memori dan semua sinyal bus yang mengontrol transfer data. Karena harus mentransfer sejumlah    blok data, maka kontroler DMA harus menaikkan alamat memori untuk word yang berurutan dan   mencatat jumlah transfer.
Kerja DMA terkait dengan : DMA controller, Processor, Memory, I/O Device

Berdasarkan gambar diatas, cara kerjanya adalah sebagai berikut : 
  1.  I/O Device terhubung dengan DMA controller memberikan instruksi yang harus di proses
  2. DMA controller mengirimkan pemberitahuan ke processor (CPU) akan ada proses yang dihandle oleh DMA controller
  3. Processor menginformasikan ke memory bahwa DMA akan mengakses memory untuk pemrosesan suatu instruksi 
  4. DMA Controller terhubung dengan memory dan akses alamat, data yang diperlukan
  5. DMA controller mengirimkan hasil proses kembali ke I/O device
  6. Jika proses selesai, DMA controller kembali melaporkan ke processor (CPU) bahwa proses telah beres dilakukan. 
  7.   I/O interface adalah peralatan yang dimana informasi dapat masuk  dan keluar dari perangkat seperti computer. Dalam komputasi input output adalah komunikasi antara system pengolahan informasi dan dunia luar. Input adalah sinyal atau data yang diterima oleh system dan output adalah sinyal atau data yang dikirim dari itu. Contoh alat input yaitu keyboard , mouse , scanner, joystick , camera digital, bar code reader, webcam . dan contoh dari alat output adalah monitor, printer,  proyektor, dan speaker.
  8. kemudian 8237 mengaktifkan sinyal pada bus kendali, yaitu MEMW (memory write), yang akan mengaktifkan memori dengan alamat yang dituju untuk menerima data, dan (I/O read), yang akan mengaktifkan disk controller untuk mengirimkan data. 

    9. data kemudian ditransfer secara langsung dari port I/O ke memori tanpa melalui mikroprosesor maupun DMA controller. 

Dapat disimpulkan prinsip sederhanya  : 
DMA controller mengambil alih kerja processor dalam memproses instruksi yang masuk melalui I/O device. Processor cukup mendapatkan laporan saja bahwa akan ada tugas yang dihandle oleh DMA controller, dan setelah beres, tinggal nunggu laporan ” tugas beres”.


sumber :
 

Rabu, 24 Oktober 2018

PENGERTIAN DAN CONTOH BATCH SYSTEM, CRITICAL SECTION, PROCESS CONTROL BLOCK, DISTRIBUTED PROCESSING, HANDHELD DAN THREAD


PENGERTIAN DAN CONTOH BATCH SYSTEM, CRITICAL SECTION, PROCESS CONTROL BLOCK, DISTRIBUTED PROCESSING, HANDHELD DAN THREAD


PENGERTIAN DAN CONTOH BATCH SYSTEM

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

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

 BENTUK DARI BATCH SYSTEM
ada 2 cara dalam Batch System yaitu :

  1. Multi-programming adalah salah satu teknik penjadwalan dimana tugas (task) yang sedang  berjalan tetap berjalan sampai ia melakukan operasi yang membutuhkan waktu untuk menunggu respon dari luar (external event), misalnya membaca data dari disket/CD/dsb, atau sampai komputer memaksa untuk menukar tugas yang sedang berjalan dengan tugas lainnya. Sistem operasi yang yang menggunakan multi-program sebagai scheduler-nya bertujuan untuk memaksimalkan penggunaan CPU. 
  2. Multiprocessing adalah istilah teknologi informasi dalam bahasa Inggris yang merujuk kepada kemampuan pemrosesan komputer yang dilakukan secara serentak. Hal ini dimungkinkan dengan menggunakan dua CPU atau lebih dalam sebuah sistem komputer. Istilah ini juga dapat  merujuk kepada dukungan sebuah sistem untuk mendukung lebih dari satu prosesor dan mengalokasikan tugas kepada prosesor-prosesor tersebut.
(sumber : http://onepersen4ever.blogspot.com/2014/04/pengertian-batch-system-bentuk-batch.html)




PENGERTIAN DAN CONTOH 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.

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

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.


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





PENGERTIAN DAN CONTOH 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.

Process Control Block adalah informasi-informasi lain yang diperlukan SO untuk mengendalikan dan koordinasi beragam proses aktif, termasuk ini:
  • Keadaan proses: Keadaan mungkin, new ,ready ,running, waiting, halted, dan juga banyak lagi.
  • Program counter: Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk ditambah code information pada kondisi apapun. Besertaan dengan program counter, keadaan/ status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya.
  • Informasi manajemen memori: Informasi ini dapat termasuk suatu informasi sebagai nilai dari dasardan batas register. tabel page/ halaman, atau tabel segmen tergantung pada sistem memori yangdigunakan oleh sistem operasi (ch 9).
  • Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan bataswaktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
  • Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini,suatu daftar open file dan banyak lagi.
  • PCB hanya berfungsi sebagai tempat menyimpan/gudang untuk informasi apapun yang dapatbervariasi dari prose ke proses.proses ini.
  • CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.Register tersebut termasuk accumulator, index register, stack pointer, general-puposes register.


Elemen-elemen dari PCB itu sendiri adalah :
Identifikasi Proses yaitu Identifier numerik yang meliputi
  1. Identifier proses
  2. Identifier proses yang menciptakan
  3. Identifier pemakai
Informasi Status Pemroses yang meliputi
  • Register-register yang terlihat pemakai yaitu Register-register yang dapat ditunjuk instruksi bahasa assembly untuk diproses pemroses
  • Register-register kendali dan status yaitu Register-register yang digunakan untuk mengendalikan operasi pemroses, a.l.:
1.      Program counter
2.      PSW, dsb.
  • Pointer stack yaitu Tiap proses mempunyai satu stack atau lebih. Stack digunakan untuk parameter atau alamat prosedur pemanggil dan system call. Pointer stack menunjuk posisi paling atas dari stack
Informasi Kendali Pemroses meliputi
  • Informasi penjadwalan dan status yaitu Informasi-informasi yang dipakai untuk menjalankan fungsi penjadwalan a.l :
1.      Status proses. Mendefinisikan status proses (running,ready,block, dsb)
2.      Prioritas. Menjelaskan prioritas proses
3.   Informasi berkaitan penjadwalan. Informasi ini seperti lama menunggu, lama proses terakhir dieksekusi dsb.
4.      Kejadian (Event). Identitas kejadian yang ditunggu proses
  • Penstrukturan data yaitu Suatu proses dapat dikaitkan dengan proses lain dalam satu antrian atau ring, atau struktur lainnya. PCB harus memiliki pointer untuk mendukung struktur ini.
  • Komunikasi antar proses yaitu Beragam flag, sinyal dan pesan dapat diasosiasikan dengan komunikasi antara dua proses yang terpisah. Informasi ini disimpan dalam PCB
  • Kewenangan proses yaitu Proses dapat mempunyai kewenangan berkaitan dengan memori dan tipe instruksi yang dapat dijalankan
  • Manajemen memori Bagian ini berisi pointer ke tabel segmen atau page yang menyatakan memori virtual proses
  • Kepemilikan dan utilisasi sumber daya yaitu Sumber daya yang dikendalikan proses harus diberi tanda, misalnya :
1.      Berkas yang dibuka
2.      Pemakaian pemroses
3.      Pemakaian sumberdaya lainnya

sumber: https://uniquesciences.wordpress.com/2012/10/04/process-control-block-pcb/
              http://femmifirdausahdiat.blogspot.com/2012/09/pcb-process-control-block.html 





PENGERTIAN DAN CONTOH DISTRIBUTED PROCESSING



Distributed Data Processing System  (Sistem pengolahan data terdistribusi ) merupakan Sekumpulan komputer yang saling berkoneksi untuk memenuhi kebutuhan pengolahan informasi dari satu entity perusahaan atau organisasi modern. Didukung oleh komputer dan komunikasi, sistem pengolahan data terdistribusi merupakan media pelayanan data.
Sistem pengolahan data terdistribusi dalam arti lain yaitu meletakan sumber daya komputer pada tempat dimana  user berada, dimana sumber daya tersebut secara  geografis terpisah dan saling interkoneksi secara on-line atau secara langsung
Adapun yang dimaksud dengan Sumber daya yang didistribusikan  yaitu berupa sumber daya Platform (Hardware dan Software System), Aplikasi atau Proses dan Data atau Database. Terminologi sistem pengolahan datanya dapat berbentuk distribusi horisontal (setiap node komputer atau jaringan mempunyai kedudukan yang sama dengan node lainnya).Sedangkan distribusi vertical dimana ada penjenjangan atau hirarki antar node di setiap lokasi, misalnya kantor pusat, kantor wilayah, kantor cabang dan unit lebih kecil lainnya yang terdistribusi hirachical secara komputasi.
Diperlukan jaringan komunikasi komputer pada sistem pengolahan data terdistribusi untuk dapat saling berhubungan antar site. Jaringan komputer adalah interkoneksi antara sejumlah komputer autonomous yang dapat saling bertukar informasi antara komputer yang  saling terhubung. Bentuk komputer yang saling terhubung biasanya disebut dengan Node, Host atau Site. Bentuk hubungan antar komputer tidak hanya melalui kawat tembaga saja, tetapi dapat melalui serat optic, gelombang mikro dan satelit komunikasi
Sistem pengolahan data terdidtribusi dibangun pada top of network, sedemikian rupa sehingga jaringan tidak nampak pada user.  User tidak perlu tahu kerumitan pengelolaan jaringan, semuanya sudah dilakukan secara otomatik oleh sistem.
Sistem pengolahan data terdistribusi dapat diakses oleh pengguna dengan menggunakan dua aplikasi yaitu berupa aplikasi lokal dan aplikasi global, sehingga distributed data processing system memiliki karakteristik yaitu :
  • Kumpulan dari data logik yang digunakan bersama-sama.
  • Data di bagi menjadi beberapa fragment.
  • Fragment mungkin mempunyai copy ( replika ).
  • Fragment / replika nya di alokasikan pada yang digunakan.
  • Setiap site berhubungan dengan jaringan komunikasi.
  • Data pada masing-masing site dibawah pengawasan DBMS.
  • DBMS pada masing-masing site dapat mengatasi aplikasi lokal, secara otonomi.
  • Masing-masing DBMS berpastisipasi paling tidak satu global aplikasi.

Persyaratan & Tujuan pendukung System Pengolahan Data Terdistribusi
  • Penggunaan komputer Mini & Mikro(dimana interkoneksi micro computer, mini computer dan large computer lebih efektif biayanya).
  • Pemakaian teknik Database. (dapat sharing data oleh banyak user).
  • Corporation wide work.
  • Struktur jaringan yang fleksibel.
  • Penggunaan standard line control & network architecture.
Contoh Sistem Pengolahan Data terdistribusi
  1. Internet
·           Jaringan komputer dan aplikasi yang heterogen.
·            Mengimplementasikan protokol internet.
  1. Intranet
·          Jaringan yang teradminitrasi secara lokal.
·          Terhubung ke internet melalui feriwall.
·          Menyediakan layanan internet dan eksternal.
  1. Mobile Computing ( Sistem Komunikasi telepon seluler)
·          Menggunakan frekuensi radio sebagai media transmisi
·          Perangkat dapat bergerak kemanapun asal masih terjangkau dengan frekuensinya
·          Dapat menghandle/dihububngkan dengan perangkat lain
  1. Sistem Telepon
·         ISDN atau yang biasa disebut jaringan telpon tetap (dengan kabel).
·         PSTN jaringan telepon/telekomunikasi yang semuanya digital.
  1. Network File System (NTFS)
·          WWW
  1. Arsitektur client server yang diterpakan dalam infrastruktur internet

Contoh Impementasi Distributed Data Processing System
Aplikasi facebook.Com yang biasa anda gunakan untuk bersosialisai dengan saudara, kawan dan orang di seluruh dunia melalui internet. Bila kita lihat aplikasi tersebut, database tidak didistribusikan, tetapi proses sistem dan penggunaan fungsi-fungsi atau feature pada sistem terpisah-pisah prosesnya tidak satu proses saja dalam satu waktu. Pada waktu tertentu ada orang yang sedang isi status, dan mungkin di waktu yang sama ada sedang mencari teman, ada yang mengupload foto dan sebagainya.  Tampak disini beberapa proses pada sistem terdistribusi pada setiap client yang berbeda.
Pada penggunaan aplikasi pembayaran / transaksi online pada suatu perusahaan, misalnya saja tiket pesawat terbang. Aplikasi tersebut juga contoh dari aplikasi pengolahan data terdistribusi, dimana data pembayaran ada tersimpan di database bank, sementara data tiketnya tersimpan di database server maskapai yang menyediakan aplikasi tiket online tersebut. Jadi dapat dikatakan bila aplikasi yang digunakan menggunakan database yang terpisah tidak satu database saja, maka dapat dikatakan itu adalah aplikasi pengolahan data terdistribusi atau dikenal juga dengan distributed  data processing system.

(Sumber : https://fskita.com/2018/07/13/distributed-data-processing-system-berserta-contoh-implementasi/) 





PENGERTIAN DAN CONTOH 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.



PENGERTIAN DAN CONTOH THREAD



Thread dalam sistem operasi dapat diartikan sebagai sekumpulan perintah (instruksi) yang dapatdilaksanakan (dieksekusi) secara sejajar dengan ulir lainnya, dengan menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya) atau multiprocess (ketika ulir-ulir tersebut dilaksanakan oleh CPU yang berbeda dalam satu sistem). 
Ulir sebenarnya mirip dengan proses, tapi cara berbagi sumber daya antara proses dengan ulir sangat berbeda. Multiplethread  dapat dilaksanakan secara sejajar pada sistem komputer. Secaraumum multithreading   melakukan time-slicing (sama dengan time-division multipleks), di manasebuah CPU bekerja pada ulir yang berbeda, di mana suatu kasus ditangani tidak sepenuhnyasecara serempak, untuk CPU tunggal pada dasarnya benar-benar melakukan sebuah pekerjaan pada satu waktu.
Thread saling berbagi bagian program, bagian data dan sumber daya sistem operasi dengan thread lain yang mengacu pada proses yang sama. Thread terdiri atas ID thread, program counter,himpunan register, dan stack. Dengan banyak kontrol thread proses dapat melakukan lebih darisatu pekerjaan pada waktu yang sama.

Model Multithread

Beberapa terminologi yang akan di bahas , yaitu :
• User (pengguna) thread User thread didukung di atas kernel dan diimplementasi oleh thread library pada user level. library menyediakan fasilitas untuk pembuatan thread, penjadualan thread, dan managemen thread tanpa dukungan dari kernel.
Adapun kelemahannya yang dialami yaitu apabila kernelnya merupakan thread tunggal maka apabila salah satu user-level thread menjalankan blocking system call maka akan mengakibatkan seluruh proses diblok walau pun ada thread lain yang dapat jalan dalam aplikasi tersebut
  
 Contoh sistem operasi yang mendukung kernel thread adalah windows NT, Solaris, digital UNIX.. 

Berdasarkan Pemetaan Thread 

Model multithreading  berdasarkan dengan pemetaan dibedakan menjadi tiga bagian, yaitu:

1). Many to One
      Model ini memetakan beberapa thread   tingkatan user ke sebuah thread  tingkatan kernel. Pengaturan thread dilakukan dalam ruang user  sehingga efisien hanya satu thread user  yang dapat mengakses thread  kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor.

2). One to One
       Model ini memetakan setiap thread tingkatan user ke setiap thread. One to One menyediakan lebih banyak concurrency dibandingkan model Many to One
Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model iniialah setiap pembuatan thread user  memerlukan tambahan thread kernel.Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem.


3). Many to Many
        Model ini memultipleks banyak thread tingkatan user ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan user Model ini mengizinkan developer  membuat  thread sebanyak yang developer  inginkan tetapi concurrency tidak dapat diperoleh karena hanya satu thread  yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor.

Jenis jenis proses Thread :

1.      Single Thread Process
Sebuah proses tradisional atau heavyweight process mempunyai single thread yang berfungsi sebagai pengendali. Dapat diartikan sebagai proses yang bekerja secara berurutan sesuai dengan urutan masing-masing thread (terstruktur) dan hanya mengerjakan satu tugas dalam satu waktu.

2.      Multithread Process
merupakan satu atau beberapa thread yang dijalankan secara bersamaan(multiproses), dimana masing-masing thread tersebut dijalankan pada jalur masing-masing. Setiap thread pada multithread menjalankan kode atau script program secara berurutan. Multithread dapat diartikan juga sebagai suatu proses dengan thread banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.

Keuntungan Thread

      Terdapat beberapa keuntungan utama dari program yang multithreading, yaitu sebagai berikut:

1.              *   Responsiveness
Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meski pun sebagian dari program tersebut diblok atau melakukan operasi yang panjang, karena itu dapat meningkatkan respons kepada user. Sebagai contohnya dalam Web browser yang multithreading, sebuah thread dapat melayani permintaan user sementara thread lain berusaha menampilkan image.

2.               *  Resource sharing 
Thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh prose yang sama. Keuntungan dari berbagi kode adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.

3.               *  Economy
Dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan useran thread, karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switch thread. Akan sulit untuk mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread, dan context  switch proses 5 kali lebih lama dibandingkan context  switch thread.
Sumber:



Life Cycle Software

Penjelasan Tentang Model Life Cycle Software Model Pada Life Cycle Software Model siklus pada perangkat lunak sebenarnya sangatlah...