Selasa, 05 Oktober 2021

Graph problems

Graf adalah konstruksi matematis abstrak yang digunakan untuk memodelkan masalah dunia nyata dengan membagi masalah menjadi satu set node yang terhubung. Kami menyebut setiap node sebagai simpul dan setiap koneksi sebagai tepi. Misalnya, peta kereta bawah tanah masng-masing titik mewakili stasiun, dan masing-masing garis mewakili rute antara dua stasiun

- Pengelompokan graf dapat didasarkan pada ada tidaknya sisi ganda atau sisi kalang, pada jumlah simpul,atau berdasarkan orientasi arah pada sisi.

  a. Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graph, secara umum  graf digolongkan menjadi dua jenis :

        1. Graf sederhana (simple graph)Graf yang tidak mengandung gelung maupun sisi ganda  dinamakan graph sederhana. Jaringan komputer merupakan contoh aplikasi graf sederhana.

      2. Graf tak-sederhana (unsimple graph/multigraph)Graf tak sederhana dibagi menjadi 2,yaitu graf ganda dan graf semu. Graf ganda ialah graf yang mengandung sisi ganda. Graf semu ialah graf yang mengandung gelang.

b. Berdasarkan jumlah simpul pada suatu graph, maka secara umum graph dapat digolongkan menjadi dua jenis:

       1. Graf Berhingga (Limited Graph)Graf berhingga adalah graph yang jumlah simpulnya, n, berhingga.

       2.Graf Tak-Berhingga (Unlimited Graph)Graf yang jumlah simpulnya, n, tidak berhingga             banyaknya disebut graph tak-berhingga.

 c. Berdasarkan orientasi arah pada sisi, maka secara umum graph dibedakan atas 2 jenis:

     1. Graph Tak-Berarah (Undirected Graph) Graph yang sisinya tidak mempunyai orientasi arah disebut graph tak-berarah.

     2. Graph Berhingga (Directed Graph) Graph yang setiap sisinya diberikan orientasi arah disebut sebagai graph berarah..

 

MASALAH GRAF

1.     Tingkat kerumitan yang cukup tinggi, meskipun isi dan teorinya terlihat sederhana 

2.     Harus menemukan rute terpendek (contoh kasus dalam kehidupan sehari-hari: peta/gps)

SOLUSI PEMECAHAN MASALAH GRAF

Setelah memiliki beberapa masalah yang belum terpecahkan maka untuk menemukan solusi yang tepat maka digunakanlah metode Algoritma Greedy. Karena kemungkinan akan memperoleh hasil yang cukup baik.

* Algoritma Greedy

Algoritma Greedy adalah jenis algoritma yang menggunakan langkah pendekatan penyelesaian masalah dengan cara membuat pilihan optimasi yang memungkinkan memiliki nilai yang paling mendekati nilai maksimal

Kelebihan dan Kekurangan dari Algoritma Greedy

  • Kekurangan : tidak akan mendapat nilai maksimum
  • Kelebihan : dapat memberikan solusi dalam waktu yang cepat dan memiliki nilai yang mendekati nilai maksimum

 

Source : https://tugasanalgo4blog.wordpress.com/2016/10/07/graph-problems/

                https://livebook.manning.com/book/classic-computer-science-problems-in-java/chapter-4/v-4/#:~:text=A%20graph%20is%20an%20abstract,of%20the%20connections%20an%20edge.

Minggu, 04 April 2021

Proses Design dan Life Cycle Basis Data - Tugas Rangkuman Sistem Basis Data

Design and Life Cycle Database


A) Life Cycle 

        Daur Hidup (Life Cycle) yang Umum dari Aplikasi Basis Data :

    • Systems Definition
    • Database Design
    • Implementation
    • Loading/Data Convertion
    • Konversi Aplikasi
    • Testing & Validasi
    • Operations
    • Control & Maintenance  

       Daur Hidup (Life Cycle) dari Aplikasi Basis Data :

             1) Definisi Sistem

    • ruang lingkup basis data
    • pemakai
    • aplikasi

            2) Design

    • logical design à ER/EER
    • physical design untuk suatu DBMS

            3) Implementasi

    • Membuat basis data
    • Membuat program aplikasi

            4) Loading/ Konversi Data

    • memasukkan data ke dalam basis data
    • mengkonversi file yang sudah ada ke dalam format basis data dan kemudian memasukkannya dalam basis data 

            5) Konversi Aplikasi

    • Semua aplikasi dari sistem sebelumnya dikonversikan ke dalam sistem basis data.

            6) Testing dan Validasi

    • Sistem yang baru harus ditest dan divalidasi (diperiksa keabsahannya).

             7) Operasi

    • Pengoperasian basis data dan aplikasinya.

            8) Monitoring dan Maintenance:

    • Selama operasi, sistem dimonitor dan diperlihara. Baik data maupun program aplikasi masih dapat terus tumbuh dan berkembang.

B) Database Design

    1) Proses Design Sistem Basis Data

        Basis Data biasanya merupakan salah satu bagian dari suatu sistem informasi yang besar            yang antara lain terdiri dari:

    • Data
    • Perangkat lunak DBMS
    • Perangkat keras komputer
    • Perangkat lunak dan sistem operasi komputer
    • Program-program aplikasi Pemrogram, dll.

        Keenam phase dalam proses design tidak perlu dilaksanakan secara mutlak, mungkin ada             umpan balik antar phase dan dalam masing-masing phase







Sistem Operasi : Process Synchronization

Sistem Operasi : Process Synchronization

 

PENGERTIAN SINKRONISASI

 Sinkronisasi merupakan suatu proses pengaturan jalannya beberapa proses pada waktu yang bersamaan untuk menyamakan waktu dan data supaya tidak terjadi inconsitensi (ketidak konsistenan) data akibat adanya akses data secara konkuren agar hasilnya bagus dan sesuai dengan apa yang diharapkan. Disini sinkronisasi diperlukan agar data tersebut tetap konsisten.
 Shared memory merupakan solusi ke masalah bounded-butter yang mengijinkan paling banyak n-1 materi dalam buffer pada waktu yang sama. Suatu solusi, jika semua N buffer digunakan tidaklah sederhana. Dimisalkan kita memodifikasi producer-consumer code dengan menambahkan suatu variable counter, dimulai dari 0 dan masing-masing waktu tambahan dari suatu item baru diberikan kepada buffer. Sinkronisasi merupakan “issue” penting dalam rancangan/implementasi OS (shared resources, data, dan multitasking).

TUJUAN SINKRONISASI

Tujuan dari sinkronisasi itu sendiri ialah untuk menghindari terjadinya inkonsistensi data karena pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan jalannya proses-proses sehinga dapat dapat berjalan dengan baik dan sesuai dengan apa yang diharapkan.

Sama seperti yang kita ketahui bahwa hidup saling berkaitan satu sama lain. Begitu juga sinkronisasi pada system operasi. Jika hal ini tidak ada penopang dalam menjalanka suatu system, maka akan menemui suatu kendala yang berakibat ketidak konsistenan pada data, sehingga data tidak menjadi konkrun.

 

Manfaat Sinkronisasi

Bermanfaat untuk menyimpan data, baik sementara atau permanen sehingga memudahkan pekerjaan.

Jadi dengan menggunakan system pekerjaan ini anda akan lebih terbantu dan lebih efektif karena bias menghemat waktu.

 

MASALAH DALAM SINKRONISASI BESERTA SOLUSINYA


 1. Race Condition
 Race Condition adalah situasi di mana beberapa proses mengakses dan memanipulasi data bersama pada saat besamaan. Nilai akhir dari data bersama tersebut tergantung pada proses yang terakhir selesai. Untuk mencegah race condition, proses-proses yang berjalan besamaan harus di disinkronisasi.
 Dalam beberapa sistem operasi, proses-proses yang berjalan bersamaan mungkin untuk membagi beberapa penyimpanan umum, masing-masing dapat melakukan proses baca (read) dan proses tulis (write). Penyimpanan bersama (shared storage) mungkin berada di memori utama atau berupa sebuah berkas bersama, lokasi dari memori bersama tidak merubah kealamian dari komunikasi atau masalah yang muncul. Untuk mengetahui bagaimana komunikasi antar proses bekerja, mari kita simak sebuah contoh sederhana, sebuah print spooler. Ketika sebuah proses ingin mencetak sebuah berkas, proses tersebut memasukkan nama berkas ke dalam sebuah spooler direktori yang khusus. Proses yang lain, printer daemon, secara periodik memeriksa untuk mengetahui jika ada banyak berkas yang akan dicetak, dan jika ada berkas yang sudah dicetak dihilangkan nama berkasnya dari direktori.


     2. Critical Section
        Kunci untuk mencegah masalah ini dan di situasi yang lain yang melibatkan shared memori, shared berkas, and shared sumber daya yang lain adalah menemukan beberapa jalan untuk mencegah lebih dari satu proses untuk melakukan proses writing dan reading kepada shared data pada saat yang sama. Dengan kata lain kita memutuhkan mutual exclusion, sebuah jalan yang menjamin jika sebuah proses sedang menggunakan shared berkas, proses lain dikeluarkan dari pekerjaan yang sama. Kesulitan yang terjadi karena proses 2 mulai menggunakan variabel bersama sebelum proses 1 menyelesaikan tugasnya.
     Masalah menghindari race conditions dapat juga diformulasikan secara abstrak. Bagian dari waktu, sebuah proses sedang sibuk melakukan perhitungan internal dan hal lain yang tidak menggiring ke kondisi race conditions. Bagaimana pun setiap kali sebuah proses mengakses shared memory atau shared berkas atau melakukan sesuatu yang kritis akan menggiring kepada race conditions. Bagian dari program dimana shaed memory diakses disebut Critical Section atau Critical Region.
Walau pun dapat mencegah race conditions, tapi tidak cukup untuk melakukan kerjasama antar proses secara pararel dengan baik dan efisien dalam menggunakan shared data. Kita butuh 4 kondisi agar menghasilkan solusi yang baik:
• Tidak ada dua proses secara bersamaan masuk ke dalam citical section.
• Tidak ada asumsi mengenai kecepatan atau jumlah cpu.
• Tidak ada proses yang berjalan di luar critical secion yang dapat mengeblok proses lain.
• Tidak ada proses yang menunggu selamamya untuk masuk critical section.
Critical Section adalah sebuah segmen kode di mana sebuah proses yang mana sumber daya bersama diakses. Terdiri dari:


1) Entry Section: kode yang digunakan untuk masuk ke dalam critical section
2) Critical Section: Kode di mana hanya ada satu proses yang dapat dieksekusi pada satu waktu
3) Exit Section: akhir dari critical section, mengizinkan proses lain
4) Remainder Section: kode istirahat setelah masuk ke critical section.

3. Solusi ke Masalah Critical-Section
Ada bebrapa Solusi untuk mengatasi masalah Critical Section, yaitu:
• Mutual exclution
Jika proses pi sedang mengeksekusi critical section-nya maka tidak ada proses lain yang dapat mengeksekusi dalam critical section mereka.


• Progress
Jika tidak ada proses yang sedang dieksekusi dalam critical section  dan ada beberapa proses yang ingin masuk ke critical section mereka, maka pemilihan proses yang akan masuk ke critical section berikutnya tidak bias ditunda.


• Bounded Waiting
Suatu keterikatan harus ada pada sejumlah proses yang diijinkan masuk ke critical section mereka, setelah adanya proses yang meminta masuk ke critical section dan sebelum  permintaan itu diterima.
a. Asumsikan bahwa tiap proses mengeksekusi pada nonzero speed.
b. Tidak ada asumsi mengenai kecepatan relative dan n proses.

Cara-cara memecahkan masalah
• Hanya dua proses, Po dan P1
• Struktur umum dari proses adalah Pi (proses lain Pj)

 4. Bakery Algorithm
Critical section untuk n proses:
a). Sebelum memasuki critical Section-nya, proses menerima nomor pemilik nomor terkecil memasuki critical section.
b). Jika proses Pi dan Pj menerima nomor yang sama, jika i < j, maka Pi dilayani duluan, lainnya Pj dilayani duluan (if i< j, then Pi is served first; else Pj is served first).
c). Skema penomoran selalu menghasilkan angka –angka yang disebutkan satu per satu, yaitu 1,2,3,3,3,3,4,5….

5. Semaphore
Semaphore adalah pendekatan yang diajukan oleh Djikstra, dengan prinsip bahwa dua proses atau lebih dapat bekerja sama dengan menggunakan penanda-penanda sederhana. Seperti proses dapat dipaksa berhenti pada suatu saat, sampai proses mendapatkan penanda tertentu itu. Sembarang kebutuhan koordinasi kompleks dapat dipenuhi dengan struktur penanda yang cocok untuk kebutuhan itu.Variabel khusus untuk penanda ini disebut semaphore.


Semaphore mempunyai dua sifat, yaitu:
a. Semaphore dapat diinisialisasi dengan nilai non-negatif.
b. Terdapat dua operasi terhadap semaphore, yaitu Down dan Up. Usulan asli yang disampaikan Djikstra adalah operasi P dan V.


• Operasi Down
Operasi ini menurunkan nilai semaphore, jika nilai semaphore menjadi non-positif maka proses yang mengeksekusinya diblocked. Operasi Down adalah atomic, tidak dapat diinterupsi sebelum diselesaikan. Menurunkan nilai, memeriksa nilai, menempatkan proses pada antrian dan memblocked sebagai instruksi tunggal. Sejak dimulai, tidak ada proses lain yang dapat mengakses semaphore sampai operasi selesai atau diblocked.


• Operasi Up
Operasi Up menaikkan nilai semaphore. Jika satu proses atau lebih diblocked pada semaphore itu tidak dapat menyelesaikan operasi Down, maka salah satu dipilih oleh system dan menyelesaikan operasi Down-nya. Urutan proses yang dipilih tidak ditentukan oleh Djikstra, dapat dipilih secara acak. Adanya semaphore mempermudah persoalan mutual exclusion. Skema penyelesaian mutual exclusion mempunyai bagian sebagai berikut:
Sebelum masuk critical section, proses melakukan Down. Bila berhasil maka proses masuk ke critical section. Bila tidak berhasil maka proses di-blocked atas semaphore itu. Proses yang diblocked akan dapat melanjutkan kembali bila proses yang ada di critical section keluar dan melakukan opersai up sehingga menjadikan proses yang diblocked ready dan melanjutkan sehingga opersi Down-nya berhasil.



6. Problem Klasik pada Sinkronisasi
Ada tiga hal yang selalu menjadi masalah pada proses sinkronisasi:
a. Problem Bounded buffer.
b. Problem Reades and Writer.
c. Problem Dining Philosophers.

 7. Monitors
 Solusi sinkronisasi ini dikemukakan oleh Hoare pada tahun 1974. Monitor adalah kumpulan prosedur, variabel dan struktur data di satu modul atau paket khusus. Proses dapat memanggil prosedur-prosedur kapan pun diinginkan. Tapi proses tidak dapat mengakses struktur data internal dalam monitor secara langsung. Hanya lewat prosedur-prosedur yang dideklarasikan minitor untuk mengakses struktur internal.


Properti-properti monitor adalah sebagai berikut:
a). Variabel-variabel data lokal, hanya dapat diakses oleh prosedur-prosedur dalam monitor dan tidak oleh prosedur di luar monitor.


b). Hanya satu proses yang dapat aktif di monitor pada satu saat. Kompilator harus mengimplementasi ini(mutual exclusion).


c). Terdapat cara agar proses yang tidak dapat berlangsung di-blocked. Menambahkan variabel-variabel kondisi, dengan dua operasi, yaitu Wait dan Signal.


d). Wait: Ketika prosedur monitor tidak dapat berkanjut (misal producer menemui buffer penuh) menyebabkan proses pemanggil diblocked dan mengizinkan proses lain masuk monitor.


e). Signal: Proses membangunkan partner-nya yang sedang diblocked dengan signal pada variabel kondisi yang sedang ditunggu partnernya.


f). Versi Hoare: Setelah signal, membangunkan proses baru agar berjalan dan menunda proses lain.


g). Versi Brinch Hansen: Setelah melakukan signal, proses segera keluar dari monitor.Dengan memaksakan disiplin hanya satu proses pada satu saat yang berjalan pada monitor, monitor menyediakan fasilitas mutual exclusion. Variabel-variabel data dalam monitor hanya dapat diakses oleh satu proses pada satu saat. Struktur data bersama dapat dilindungi dengan menempatkannya dalam monitor. Jika data pada monitor merepresentasikan sumber daya, maka monitor menyediakan fasilitas mutual exclusion dalam mengakses sumber daya itu.

 

 

KESIMPULAN

 Sinkronisasi adalah proses pengaturan jalannya beberapa proses pada saat yang bersamaan. Tujuan utama sinkronisasi adalah menghindari terjadinya inkonsistensi data karena pengaksesan oleh beberapa proses yang berbeda (mutualexclusion) serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan lancar dan terhindar dari deadlock atau starvation.
Sinkronisasi umumnya dilakukan dengan bantuan perangkat sinkronisasi.Beberapa perangkat sinkronisasi, yaitu : TestAndSet(), Semafor, dan Monitor.

 

Minggu, 07 Maret 2021

Konsep Sistem Basis Data - Tugas Rangkuman Miss Debby Alita

Pengertian Sistem Basis Data

        Sistem Basis Data merupakan sistem yang terdiri atas kumpulan file/tabel yang saling     berhubungan (dalam sebuah database sistem komputer) dan sekumpulan program (DBMS) yang     memungkinkan beberapa pemakai dan/atau program lain untuk mengakses dan memanipulasi file-file/tabel-tabel tersebut.

        DBMS : Database Management Systems

  • Merupakan program aplikasi untuk pengolahan/proses database
  • Memiliki kemampuan manajerial (POAC) layaknya manajemen secara umum.

        Contoh: Ms.Acces, Ms. SQL Server, MySQL, Oracle Database, Postgree SQL,  dst.

 Komponen DBMS dan Pemakai

        DBMS, memiliki fungsi;

  • Organisasi data
  • Menyediakan antar muka pemakai (interface)
  • Cara Penyimpanan data
  • Ubah dan Pengambilan data
  • Mekanisme Pengaman Data
  • Pengaturan pemakaian secara bersama
  • Menjaga keakuratan data/konsistensi data, dll

    Pemakai, berdasarkan cara interkasi terhadap sistem, dibedakan menjadi:

  1. Programer Aplikasi à melalui DML yang disertakan dalam program induk seperti Pascal, C, Cobol, dll
  2. User Mahir (casual User) à melalui bahasa query yang disertakan oleh suatu DBMS, tanpa menulis modul program.
  3. User Umum (end User/Native User) à melalui aplikasi permanen yang telah disediakan oleh Programer Aplikasi
  4. User Khusus (Specialized User) à melalui aplikasi basis data non konvensional untuk aplikasi-aplikasi khusus, seperti aplikasi AI, Sistem Pakar, Pengolahan Citra, dll yang menggunakan sistem basis data tanpa/dengan menggunakan DBM          

 Abstraksi Data  

Merupakan tingkatan/level dalam bagaimana melihat data dalam sebuah SBD

Level-Level abstraksi data:

  • Level Fisik (Physical Level)
    • Merupakan Level terendah, yg menunjukkan bagaimana data disimpan melalui struktur dan jenis datanya sendiri.
    • Data sebagai teks, Angka, Simbol, atau bahkan sebagai himpunan data.
    • Alat yang dipakai dalam alat manual (seperti formulir, nota, daftar isian, dll)
  • Level Lojik/Konseptual (Logical/Conceptual Level)
  • Menggambarkan data apa (secara fungsional) yang disimpan dalam basis data dan hubungannya dengan data yang lain. 
  • Data digambarkan/direprentasikan/disimpan dalam beberapa file/tabel seperti tabel dosen, tabel mahasiswa, dll 
  • Level Penampakan(View Level)
  • Merupakan level tertinggi dalam abstraksi data. Hanya menunjukkan sebagian dari basis data.
  • Contoh; diketahui bahwa jumlah hari terdapat 7 (tujuh), Senin s/d Minggu. Sebenarnya akan lebih efisien media penyimpan jika yang kita simpan dalam database hanya angka 1 s/d 7 sebagai gambaran hari

        Database Relasional

  • Menggunakan kumpulan tabel untuk merepresentasikan data dan hubungan antar data tersebut. 
  • Setiap tabel memiliki beberapa kolom, dan setiap kolom memiliki nama yang unik
  • Tabel juga dikenal sebagai relasi 
  • Model berbasis rekaman dinamai demikian karena database rekaman berformat 
  • infiks terstruktur dari beberapa jenis. 
  • Setiap tabel berisi record dari tipe tertentu. Setiap tipe record menentukan jumlah 
  • field atau atribut yang tetap
  • Kolom dari tabel sesuai dengan atribut dari tipe record.
  •  Model data relasional adalah model data yang paling banyak digunakan, dan
  •  sebagian besar sistem database saat ini didasarkan pada mode relasional
 

       Struktur Database Relasional

  • Setiap tabel diberi nama unik
  • Setiap tabel memiliki kolom untuk merepresentasikan atribut data 
  • Setiap tabel memiliki record data 
  • Setiap record memiliki nilai untuk setiap kolom 
  • Baris / record dalam tabel merepresentasikan hubungan antara sekumpulan nilai
 
Key
Satu gabungan dari beberapa atribut yang dapat membedakan semua basis data (row) dalam tabel secara unik, berfungsi sebagai  suatu cara untuk mengidentifikasi dan menghubungkan satu tabel data dengan tabel yang lain. 
Jenis - Jenis Key
Primary Key ( Kunci Primer)
uatu atribut atau satu set minimal 
atribut yang tidak hanya mendefinisikan secara unik suatu kejadian 
spesifik tetapi juga dapat mewakili setiap kejadian dari suatu kejadian.
Nilai field yang menjadi primary key harus:
  • Unik atau tidak boleh ganda
  • Tidak boleh Null (kosong, tidak diketahui, tidak dapat ditentukan)
  • Key tersebut lebih natural untuk dijadikan acuan
Foreign Key

Foreign Key adalah satu set atribut atau set atribut sebagai key penghubung kedua tabel dan melengkapi satu relationship (hubungan) terhadap primary key yang menunjukan keinduknya.
Jika sebuah primary key terhubungan ke table/entity lain, maka keberadaan primary key pada entity tersebut di sebut sebagai foreign key.
 
Candidat key (Kunci kandidat/kunci calon)
Adalah suatu atribut atau satu set minimal atribut yang hanya mengidentifikasikan secara unik untuk suatu kejadian spesifik dari entitas.
Candidate key ini harus memenuhi syarat sbb:
  • Unique Identifier, untuk setiap row/tuple candidate key harus secara unik dapat menjadi identifier. Artinya, setiap non candidate key atribut secara fungsional bergantung pada candidate tersebut.
  • Non Redudancy, tidak ada duplikasi candidate key untuk menjadi unique identifier, dimana tidak dapat dilakukan penghapusan pada candidate key dimana tidak merusak sifat unique identifier.
Composite Key
Dalam desain database, composite key adalah kunci yang terdiri dari 2 atau lebih atribut yang secara unik mengidentifikasi suatu kejadian entitas. Setiap atribut yang membentuk kunci senyawa adalah kunci sederhana dalam haknya sendiri.
composite setidaknya satu atribut yang membentuk kunci komposit bukanlah kunci sederhana.
 
Alternative Key 
Alternative Key adalah candidate key yang tidak dipilih sebagai primary key.
Sekunder key adalah sebuah atribut atau kombinasi yang digunakan hanya untuk tujuan pengambilan data.
 

 

 
 

 

 

     

Menghitung Gaji Karyawan dengan menggunakan bahasa pemrograman C#

 Menghitung Gaji Karyawan menggunakan bahasa pemrograman C# dengan ketentuan sebagai berikut :

-Input Nama karyawan dan Lama jam lembur 

-Output berupa nama karyawan, bonus dan total gaji

Keterangan tambahan :

  1. Gaji pokok = Rp.2.000.000.
  2. Jika jam lembur kurang dari sama dengan 2 maka  bonus sebesar Rp.50.000/jam lembur.
  3. Jika jam lembur lebih dari sama dengan 3 maka bonus sebesar Rp.100.000./jam lembur.
  4. Total gaji diperoleh dari gaji pokok + bonus.

Program C# nya sebagai berikut :

Rabu, 13 Januari 2021

Definisi dan Perbedaan Tentang Threads dan Processes

  •  Definisi Thread

          Thread adalah unit dasar dari penggunaan CPU, thread mengandung Thread ID, program counter,
    register set, dan stack. Sebuah Thread berbagi code section, data section, dan sumber daya sistem
    operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut
    lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal
    yang berfungsi sebagai pengendali. Perbedaan antara proses dengan thread tunggal dengan proses
    dengan thread yang banyak adalah proses dengan thread yang banyak dapat mengerjakan lebih dari
    satu tugas pada satu satuan waktu.

  • Definisi Processes

       Processes atau proses adalah sebuah peristiwa adanya sebuah program yang dapat dieksekusi. Sebagai sebuah eksekusi proses, maka hal tersebut membutuhkan perubahan keadaan. Keadaan dari sebuah proses dapat didefinisikan oleh aktivitas proses tersebut. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global. Setiap proses mungkin menjadi satu dari beberapa state berikut, antara lain: new, ready, running, waiting, atau terminated. Setiap proses direpresentasikan ada sistem operasi berdasarkan proses-control-block (PCB)-nya.


  • Perbedaaan dari keduanya ?

        Perbedaan dari keduanya adalah sebagai berikut:

  1. Pembentukan Thread membutuhkan waktu yang lebih sedikit daripada pembentukan process.
  2. Membutuhkan waktu yang lebih sedikit untuk menhakhiri Thread daripada process.
  3. Lebih mudah dan cepat untuk melakukan switch antar Thread daripada switch antar process.
  4. Thread menggunakan secara bersama ruang alamat dari proses yang menciptakannya. Proses
    memiliki ruang alamat sendiri-sendiri.
  5. Thread memiliki akses langsung ke segemen data dari prosesnya. Masing-masing proses memiliki
    salinan segmen data dari parent process-nya.
  6. Thread dapat saling komunikasi dengan thread lain dalam satu process. Antar proses harus
    menggunakan komunikasi antar proses.
  7. Thread hampir tidak memiliki overhead. Proses memiliki overhead.
  8. Thread dapat memiliki pengaruh kontrol yang besar terhadap thread lain dalam satu proses. Proses
    hanya dapat mengendalikan proses anakannya.
  9. Perubahan pada thread utama seperti pembatalan atau perubahan prioritas dapat mempengaruhi
    tingkah laku thread lain dalam satu proses. 
  10. Perubahan pada parent proses tidak mempengaruhi proses anakan.

Sabtu, 09 Januari 2021

MIMD Multiple Instruction Multiple Data

MIMD  (Multiple Instruction Multiple Data)

MIMD adalah teknik yang digunakan untuk mencapai paralelisme. Mesin yang menggunakan MIMD memiliki sejumlah prosesor yang berfungsi secara sinkron dan mandiri. Kapan saja, prosesor yang berbeda dapat menjalankan instruksi yang berbeda pada bagian data yang berbeda

MIMD Memiliki karakteristik sebagai berikut :

  • Proses didistribusikan ke beberapa prosesor independent
  • Berbagi sumbar daya, termasuk memori, processor
  • Operasi tiap processor secara independent dan simultan
  • Tiap processor menjalankan programnya sendiri

Komputer MIMD: sistem tightly coupled (global memory) dan loosely coupled (local
memory). 

 

 

 

Contoh MIMD :

  • Intel iPSC Machines
    Sistem iPSC terdiri dari: 1, 2 atau 4 unit komputesi (cube) dan prosesor host (cube manager).
    Cube merupakan processing nodes yang terinterkoneksi hypercube yang mempunyai memori
    dan prosesor sendiri.
    Contoh: iPSC/1 terdiri dari 32 nodes, cube manager dan 16 Mbytes memory unshared. Tiap
    node mempunyai arsitektur seperti pada gambar berikut: 
  • Symmetry Machine
    SM dapat memperkejakan 30 processor, dimana merupakan contoh UMA MIMD (tightly
    coupled) 
  • Carnegie-Mellon Multi-Mini_Processor (C.mmp)

 

Processor dikelompokkan ke dalam cluster local dan diorganisasikan kedalam struktur tree
dan berkoneksi lewat Inter-Cluster Buses. Seperti terlihat pada gambar berikut :