Selasa, 30 Maret 2021

MAKALAH SISTEM OPERASI

    MAKALAH SISTEM OPERASI 
                                                 
      SINKRONISASI



 

OLEH :
Nama       : Nova Istiqomah
NPM        : 20312064
Jurusan   : Informatika 

UNIVERSITAS TEKNOKRAT INDONESIA
BANDAR LAMPUNG
2021



KATA PENGANTAR

Puji syukur kehadirat ALLAH SWT yang telah memberikan rahmat dan hidayah-Nya. Dengan rahmat dan hidayah-Nya, Alhamdulillah Makalah yang berjudul “ SISTEM OPERASI SINKRONISASI” ini dapat terselesaikan. Makalah ini saya buat untuk memenuhi tugas dari mata kuliah Sistem Operasi.
     Kami berharap kepada semua pihak dengan segala kritik dan saran yang bersifat membangun, sangat kami harapkan untuk dimasa yang akan datang agar bisa menyempurnakan makalah ini, sebab makalah ini masih banyak kekurangannya.

                                                                                    Bandar Lampung , 30 Maret 2021







DAFTAR ISI

KATA PENGANTAR.......................................................................................
........i
DAFTAR ISI..........................................................................................................ii

      BAB 
I PENDAHULUAN.......................................................................................1
      1.1  Latar Belakang..................................................................................................1
1.2 Rumusan Masalah........................
.....................................................................1
1.3 Tujuan..............
..................................................................................................1

BAB II PEMBAHASAN...........................
..............................................................2
 2.1 Pengertian Sinkronisasi................................
.....................................................2
 2.2 Tujuan Sinkronisasi...........................................
................................................2
 2.3 Masalah dalam Sinkronisasi Beserta Solusinya...............
.................................2


PENUTUP........................................................................................................
........8

 3.1 Kesimpulan....................................................................................
...................8

DAFTAR PUSTAKA....
..........................................................................................9








BAB I 
PENDAHULUAN

1.1 LATAR BELAKANG
Sinkronisasi di perlukan untuk menghindari terjadinya ketidak konsistenan data akibat adanya akses secara konkuren. Proses-Proses tersebut disebut konkuren jika Proses itu ada dan berjalan pada waktu yang bersamaan.
istilah Sinkronisasi sering terdengar ketika kita menggunakan alat elektronik. Sinkronisasi sendiri berasal dari bagian sistem operasi.Sistem operasi adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasi-operasi dasar sistem, termasuk menjalankan perangkat lunak aplikasi seperti program-program pengolah kata dan peramban web.
Jadi, agar sinkronisasi bisa berjalan, sangat di butuhkan yang namanya sistem operasi. Dalam kehidupan sehari-hari tanpa di sadari, kita sering melakukan sinkronisasi dalam berbagai hal.Mulai pada saat menggunakan smartphone, komputer dan lain sebagainya.

1.2 RUMUSAN MASALAH
1. Apa pengertian dari Sinkronisasi ?
2. Apa Tujuan Sinkronisasi ?
3. Apa saja masalah Sinkronisasi dan solusinya ?

1.3 TUJUAN
1. Mengetahui apa itu Sinkronisasi.
2. Mengetahui Tujuan Sinkronisasi.
3. Mengetahui Masalah dalam Sinkronisasi dan solusinya.


 BAB II
PEMBAHASAN

2.1 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).

2.2 TUJUAN SINKRONISASI
 Tujuan dari sinkronisasi itu sendiri ialah untuk menghindari terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang berbeda serta untuk mengatur urutan jalannya proses-proses sehingga dapat berjalan dengan baik dan sesuai apa yang di harapkan.

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

PENUTUP

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


SUMBER REFERENSI  
Siteblogforu.blogspot.com. sikronisasi sistem informasi
Genggaminternet.com.
Gurupendidikan.com.



Senin, 15 Maret 2021

Tugas Array Dengan C#

Syntak Inputan

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;


namespace Tugas_Array

{

    class Program

    {

        static void Main(string[] args)

        {

            int jumlah;

            string sa;


            Console.Write("Masukan Jumlah Nama :");

            jumlah = int.Parse(Console.ReadLine());


            int[] angka = new int[jumlah];

            Console.WriteLine("");


            for (int a = 1; a <= angka.Length; a++)

            {

                Console.Write("Masukkan Nama Ke- " + a + " : ");

                sa = Console.ReadLine();

            }

            Console.ReadKey();

        }

    }

}


 Inputan





Hasil Output :


Outp

Selasa, 02 Maret 2021

Program Untuk Mengitung Data Karyawan Dan Nilai Inputan Dengan Bahasa C#

 Syntak inputan

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace tugas_pilihan
{
    class Program
    {
        static void Main(string[] args)
        {
            string nama;
            int lembur, total_gaji, bonus, x, data, masukkan, jumlah, nilai;



            Console.WriteLine("Pilih Program Yang Akan Dijalankan");
            Console.WriteLine(" 1. Menghitung Gaji Karyawan ");
            Console.WriteLine(" 2. Jumlah Urutan Nilai Bilangan ");
            Console.Write("Masukkan Pilihan Anda :");

            masukkan = int.Parse(Console.ReadLine());



            switch (masukkan)
            {

                case 1:

                    Console.Write("Masukan Jumlah Karyawan : ");
                    data = int.Parse(Console.ReadLine());

                    x = 1;
                    while (x <= data)
                    {
                        Console.Write("\nData Karyawan ke - {0} :", x);

                        Console.Write("\nNama : ");
                        nama = Console.ReadLine();
                        Console.Write("Jam Lembur :");
                        lembur = int.Parse(Console.ReadLine());



                        bonus = 50000 * lembur;
                        total_gaji = 2000000 + bonus;

                        Console.Write("");
                        Console.Write("Total Gaji : " + total_gaji);
                        x = x + 1;
                    }

                    break;

                case 2:

                    Console.Write("\nMasukkan jumlah Data :");
                    data = int.Parse(Console.ReadLine());


                    x = 1;

                    jumlah = 0;

                    while (x <= data)
                    {

                        Console.Write("data ke - {0} :", x);

                        nilai = int.Parse(Console.ReadLine());

                        jumlah = jumlah + nilai;

                        x = x + 1;

                    }

                    Console.Write("Jumlah Nilai Yang Diinputkan :" + jumlah);
                    break;
            }

            Console.ReadLine();

        }
    }
}




 Hasil Memilih Program ke 1




Hasil Memilih Program Ke 2




Kamis, 07 Januari 2021

Perbedaan Antara Threads dan Processes

PENGERTIAN PROSES DAN THREAD    

Proses  merupakan suatu upaya pemberian ajaran secara mendalam (tanpa kritik) atau penggemblengan mengenai suatu paham atau doktrin tertentu dng melihat suatu kebenaran dr arah tertentu saja :)

Thread adalah unit dasar dari penggunaan CPU, yang terdiri dari 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.

A. Perbedaan antara Proses dan Thread

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

Saya tekankan bahwa program itu sendiri bukanlah sebuah proses. Suatu program adalah satu entitas pasif, seperti isi dari sebuah berkas yang disimpan didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkatsumber daya/resource yang berkenaan dengannya.

Proses memiliki dua karakteristik namun kedua karakteristik dilakukan secara independen oleh sistem operasi :

- Resource ownership (kepemilikan sumber daya)

Proses mempunyai ruang alamat virtual untuk menangani image proses yang didefinisikan dalam PCB.

- Scheduling-execution (penjadwalan-eksekusi)

Mengikuti suatu path eksekusi (trace), ada pergatian dari satu proses ke lainnya Unit dari kepemilikan sumber daya diacu sebagai proses atau taskuatu thread yang salah dapat menganggu thread yang lain didalam proses yang sama,karena thread berbagai pakai ruang memori virtual dan sumber daya lain yang sama.

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.

B. Perbedaan antara Proses dan Thread

1. Proses sulit untuk membuat karena membutuhkan duplikasi proses induk dan alokasi memori sedangkan thread lebih mudah untuk membuat karena mereka tidak memerlukan ruang alamat yang terpisah.

2. Thread digunakan untuk tugas-tugas sederhana, sementara proses yang digunakan untuk tugas-tugas yang berat-berat seperti pelaksanaan aplikasi.

3. Proses tidak berbagi ruang alamat yang sama, namun thread dalam berbagi proses yang sama ruang alamat yang sama.

4. Proses yang independen satu sama lain, tetapi thread saling bergantung karena mereka berbagi ruang alamat yang sama.

6. Sebuah proses dapat terdiri dari beberapa thread.

7. Karena thread berbagi ruang alamat yang sama, virtual memori hanya terkait dengan proses tapi tidak dengan thread. Tapi prosesor virtual yang berbeda dikaitkan dengan setiap thread.

8. Setiap proses memiliki kode dan data sendiri sedangkan proses thread berbagi kode yang sama dan data.

9. Setiap proses dimulai dengan thread utama, tapi dapat membuat thread tambahan jika diperlukan.

10. Konteks beralih antara proses jauh lebih lambat dibandingkan konteks beralih antara thread dari proses yang sama.

11. Thread dapat memiliki akses langsung ke segmen data, tetapi proses memiliki salinan sendiri segmen data mereka.

12. roses memiliki overhead tapi tidak thread.

Ringkasan Proses vs Thread

Proses dan thread dua teknik yang digunakan oleh programmer untuk mengontrol prosesor dan pelaksanaan instruksi pada komputer dengan cara yang efisien dan efektif. Sebuah proses dapat berisi beberapa thread. Thread menyediakan cara yang efisien untuk berbagi memori meskipun beroperasi beberapa eksekusi dari proses. Oleh karena itu, thread merupakan alternatif untuk beberapa proses. Dengan tren yang berkembang menuju prosesor multi-core, thread akan menjadi alat yang paling penting dalam dunia programmer.


Single Instruction Stream Multiple Data Stream (SIMD)

Single Instruction Stream Multiple Data Stream (SIMD)

SIMD adalah satu unit kontrol yang mengeksekusi aliran tunggal instruksi, tetapi lebih dari satu elemen pemroses. Mesin SIMD secara umum mempunyai karakteristik sbb:
  • Mendistribusi proses ke sejumlah besar hardware 
  • Beroperasi terhadap berbagai elemen data yang berbeda 
  • Melaksanakan komputasi yang sama terhadap semua elemen data

Peningkatan kecepatan pada SIMD proporsional dengan jumlah hardware (elemen pemroses) yang tersedia. SIMD bertugas untuk menyesuaikan kontras dalam citra digital atau menyesuaikan volume audio digital. Desain CPU modern termasuk instruksi SIMD dalam rangka meningkatkan kinerja multimedia yang digunakan.

Keuntungan SIMD

  • Keuntungan SIMD antara lain sebuah aplikasi adalah salah satu dimana nilai yang sama sedang ditambahkan ke (atau dikurangkan dari) sejumlah besar titik data, operasi umum di banyak multimedia aplikasi. Salah satu contoh akan mengubah kecerahan gambar. Setiap pixel dari suatu gambar terdiri dari tiga nilai untuk kecerahan warna merah (R), hijau (G) dan biru (B) bagian warna. Untuk mengubah kecerahan, nilai-nilai R, G dan B yang dibaca dari memori, nilai yang ditambahkan dengan (atau dikurangi dari) mereka, dan nilai-nilai yang dihasilkan ditulis kembali ke memori. 
  • Dengan prosesor SIMD ada dua perbaikan proses ini. Untuk satu data dipahami dalam bentuk balok, dan sejumlah nilai-nilai dapat dimuat sekaligus. Alih-alih serangkaian instruksi mengatakan “mendapatkan pixel ini, sekarang mendapatkan pixel berikutnya”, prosesor SIMD akan memiliki instruksi tunggal yang efektif mengatakan “mendapatkan n piksel” (dimana n adalah angka yang bervariasi dari desain untuk desain). Untuk berbagai alasan, ini bisa memakan waktu lebih sedikit daripada “mendapatkan” setiap pixel secara individual, seperti desain CPU tradisional. 
  • Keuntungan lain adalah bahwa sistem SIMD biasanya hanya menyertakan instruksi yang dapat diterapkan pada semua data dalam satu operasi. Dengan kata lain, jika sistem SIMD bekerja dengan memuat delapan titik data sekaligus, add operasi yang diterapkan pada data akan terjadi pada semua delapan nilai pada waktu yang sama. Meskipun sama berlaku untuk setiap desain prosesor super-skalar, tingkat paralelisme dalam sistem SIMD biasanya jauh lebih tinggi.

Kekurangan SIMD

  1. Tidak semua algoritma dapat vectorized. Misalnya, tugas aliran-kontrol-berat seperti kode parsing tidak akan mendapat manfaat dari SIMD.
  2. Ia juga memiliki file-file register besar yang meningkatkan konsumsi daya dan area chip.
  3. Saat ini, menerapkan algoritma dengan instruksi SIMD biasanya membutuhkan tenaga manusia, sebagian besar kompiler tidak menghasilkan instruksi SIMD dari khas Program C, misalnya vektorisasi dalam kompiler merupakan daerah aktif penelitian ilmu komputer.
  4. Pemrograman dengan khusus SIMD set instruksi dapat melibatkan berbagai tantangan tingkat rendah.
  5. SSE (Streaming SIMD Ekstensi) memiliki pembatasan data alignment, programmer akrab dengan arsitektur x86 mungkin tidak mengharapkan ini.
  6. Mengumpulkan data ke dalam register SIMD dan hamburan itu ke lokasi tujuan yang benar adalah rumit dan dapat menjadi tidak efisien.
  7. Instruksi tertentu seperti rotasi atau penambahan tiga operan tidak tersedia dalam beberapa set instruksi SIMD.
  8. Set instruksi adalah arsitektur-spesifik: prosesor lama dan prosesor non-x86 kekurangan SSE seluruhnya, misalnya, jadi programmer harus menyediakan implementasi non-Vectorized (atau implementasi vectorized berbeda) untuk mereka.
  9. Awal MMX set instruksi berbagi register file dengan tumpukan floating-point, yang menyebabkan inefisiensi saat pencampuran kode floating-point dan MMX. Namun, SSE2 mengoreksi ini.

SIMD dibagi menjadi beberapa bentuk lagi yaitu :
  • Exclusive-Read, Exclusive-Write (EREW) SM SIMD 
  • Concurent-Read, Exclusive-Write (CREW) SM SIMD 
  • Exclusive-Read, Concurrent-Write (ERCW) SM SIMD 
  • Concurrent-Read, Concurrent-Write (CRCW) SM SIMD

Rabu, 23 Desember 2020

Sejarah dan Perkembangan Random Access Memory (RAM)

Sejarah dan Perkembangan Random Access Memory (RAM)

A. RAM


RAM adalah singkatan dari Random Access Memory. Sebuah bagian dari sistem komputer yang sangat penting. Tidak hanya pada komputer PC maupun notebook saja yang membutuhkan RAM, PDA dan banyak perangkat elektronik lain pun ikut membutuhkan bagian ini.

Dan untuk setiap peralatan memiliki tingkat kebutuhan yang berbeda-beda. Misalkan saja sebuah komputer yang masih menggunakan operating system lama contohnya Windows 98, maka RAM yang dibutuhkan tidak akan sebesar komputer yang menggunakan Windows XP sebagai operating system-nya.

Selain operating system, aplikasi yang dijalankan pun sangat bergantung kepada RAM. Semakin berat aplikasi yang akan dijalankan, maka bobot RAM akan semakin besar. Karena pada RAM-lah untuk sementara aplikasi atau data yang tengah Anda akses tersimpan.

Sedangkan untuk membeli sebuah RAM, bukan bobot saja yang akan menjadi pertimbangan utama. Tapi juga ada aspek lain yang tidak kalah pentingnya harus ikut dipikirkan. Seperti kecepatan, tipe, jenis soket, dan motherboard yang digunakan.

Karena saat ini, selain setiap aplikasi memiliki kebutuhan sistem yang berbeda-beda, kehadiran RAM pun sudah sangat beragam. Sedangkan harganya semakin hari semakin terjangkau. Teknologi yang ada pada RAM pun terus berkembang. Mulai ditemukannya DDR, sistem dual-channel,DDR2,dll.

Belum lagi kecepatannya yang juga semakin lama semakin cepat. Dari hanya 66 MHz sampai kini telah mencapai 600 MHz. Begitu pula dengan kapasitas. Sepuluh tahun yang lalu RAM 8 MB masih sangat mudah ditemukan, tetapi sekarang RAM ini sangat sulit ditemui. Para penjual perangkat komputer lebih banyak menawarkan RAM dengan memory minimal 128 MB per kepingnya. Betapa langkah yang sangat jauh telah dilalui RAM dalam perkembangannya.

B. PERKEMBANGAN

1. Pada tahun 1987, RAM jenis FPM (Fast Page Mode) diperkenalkan. FPM merupakan bentuk RAM yang paling kerap digunakan dalam system komputer pada masa itu. FPM juga turut dikenali sebagai DRAM (Dynamic Random Access Memory) sahaja. FPM menggunakan modul memori SIMM (Single Inline Memory Module) 30 pin dan SIMM 72 pin.

2. Pada tahun 1995, perkembangan teknologi maklumat telah menghasilkan modul memori yang seterusnya yaitu EDO (Extended Data Out). EDO mirip dengan FPM, cuma ia diubah sedikit untuk membolehkan akses memori berturutan berlaku dengan labih pantas. Ini bermakna ‘pengawal memori’ boleh menjimatkan masa dengan mengurangkan beberapa langkah dalam proses pengalamatan (addressing). EDO juga membolehkan CPU mengakses memori 10% hingga 15% lebih pantas berbanding dengan FPM.

3. Pada tahun 1997, SDRAM diperkenalkan, dengan clock speed (kecepatan putaran) 66 MHz, SDRAM ini mampu menghantarkan data dengan kecepatan maksimal 533 MB/det. Lalu seiring dengan clock speed yang bertambah kencang, kecepatan pengantaran datapun menjadi semakin cepat.Untuk SDRAM dengan clock speed 133 MHz, data yang dihantarkan dapat mencapai 1,066 GB/det.

4. Pada tahun 1999, RDRAM diperkenalkan, RDRAM lebih banyak ditujukan untuk atau user lain yang memang sangat membutukan memory berkecepatan tinggi.Kualitas yang dimiliki oleh RDRAM mengakibatkan harganya sangat tinggi. Dan untuk mencarinya pun tidak semudah SDRAM atau DDR. RDRAM menggunakan modul yang disebut RIMM. Berbeda dengan modul yang dimiliki SRAM atau DDR yang menggunakan transfer data secara paralel pada data bus 64-bit. RDRAM menggunakan transfer data secara serial pada data bus 16-bit.RDRAM yang paling umum digunakan adalah RDRAM yang memiliki kecepatan 1,6 GB/det. 
RDRAM ini lebih dikenal dengan sebutan RIMM1600.Sedangkan RDRAM yang menggunakan data bus 16-bit saat ini sudah dapat mencapai kecepatan 2,4 GB/det (RIMM2400).Sedangkan untuk jenisnya, RDRAM ada dua macam yang pertama adalah yang bekerja pada data bus 16-bit dan yang kedua adalah RDRAM yang bekerja pada data bus 32-bit. Jika RDRAM yang bekerja pada data bus 16-bit memiliki jumlah pin sebanyak 184 pin dan diperuntukkan untuk sistem single-channel, maka RDRAM yang bekerja pada data bus 32-bit memiliki jumlah pin sebanyak 242 pin, dan diperuntukkan bagi sistem dual-channel. Serta satu lagi yang menjadi ciri khas dari RDRAM adalah adanya fasilitas yang dapat menjaga agar memory tidak panas.Sebenarnya dari performa mungkin tidak jauh berbeda, namun untuk beberapa sistem menggunakan RDRAM akan sangat mendukung terlebih lagi server. Oleh sebab itu, yang paling banyak menggunakan RDRAM adalah server.

5. Pada tahun 2000, DDR-SDRAM diperkenalkan. RAM ini merupakan inovasi daripada SDRAM di mana ia menjanjikan DDR yang kali pertama muncul, memang memiliki clock speed yang sama dengan SDRAM yaitu 100 MHz, tetapi meskipun sama kecepatan pengantaran datanya jauh lebih besar DDR. Hal ini disebabkan dalam satu putarannya DDR melakukan sekaligus dua pekerjaan (pengoperasionalan). Berbeda pada SDRAM yang hanya melakukan satu pengoperasionalan. Hasilnya: pada DDR dengan clock speed 100 MHz, data yang dihasilkan dapat mencapai 2,1 GB/det. Nilai inilah yang menjadi alasan mengapa DDR ini disebut DDR dengan tipe PC2100.

Sampai saat ini, nilai maksimal yang diakui oleh The JEDEC Solid State Technology Association, sebuah asosiasi yang bertanggung jawab tentang standar memory ini adalah nilai yang dimiliki oleh DDR400 PC3200, yaitu 3,2 GB/det. Padahal saat ini ada beberapa produsen RAM yang menawarkan RAM dengan kecepatan yang jauh lebih besar lagi. Seperti Corsair, Kingston, Mushkin, dan beberapa produsen lainnya sudah ada yang berani menawarkan DDR dengan tipe PC3700 dan PC4000 yang masing-masing sanggup menghantarkan data dengan kecepatan 3,7 GB/det dan 4 GB/det. Sayangnya, DDR ini masih sulit dicari di pasaran, khususnya di Indonesia.

DDR dengan kecepatan tinggi tersebut sangat cocok digunakan untuk kebutuhan-kebutuhan para gamers dan untuk para pengguna yang sangat sering menggunakan sistem overclock. Karena DDR dengan kecepatan tinggi ini mampu menangani pengoperasian yang membutuhkan panas tinggi, seperti penerapan overclocking.

6. Pada tahun 2004 di perkenalkanlah DDR2 SDRAM, Energi: DDR2 membutuhkan energi setengah lebih kecil dari energi yang dibutuhkan DDR biasa beroperasi, sehingga dapat mengurangi panas pada komputer. Apalagi pada notebook yang secara otomatis juga akan lebih menghemat baterai.
High clock speed: DDR2 menggunakan clock speed awal sebesar 400 MHz. Nilai ini juga masih bisa di tingkatkan menjadi 800 MHz. Ketahanan: Dengan DDR2, Anda dapat memiliki satu keeping 2 GB dan dipasangkan pada single bank module.

Karena daya tahan DDR2 masih lebih baik dari DDR biasa.
* Ukuran: Dari segi ukuran, DDR2 juga masih lebih kecil dibandingkan DDR biasa.
* Teknologi koneksi: DDR2 menggunakan teknologi koneksi yang dinamakan Ball Grid Array (BGA), yang belum digunakan pada DDR biasa.

7. Pada tahun 2007 hingga sekarang muncul DDR3 SRAM. Memori jenis ini memiliki kebutuhan daya yang berkurang sekitar 16% dibanding DDR2. Hal ini disebabkan memori jenis ini memakai teknologi 90 nm sehingga hanya membutuhkan tegangan 1.5 volt saja. Memori ini memiliki kecepatan yang baik dibanding memori – memori generasi awal.

8. Dual Core adalah penggunaan dua buah inti (core) prosesor dalam sebuah kemasan prosesor konvensional. Dual core (inti prosesor) ditempatkan pada sebuah CPU untuk meningkatkan kinerjanya. Setiap core ini tidak lebih cepat dibanding CPU biasa dengan clockspeed yang sama, tetapi semua proses perhitungan dibagi kepada 2 inti prosesor tersebut.

Logikanya, menggunakan prosesor multi-core akan mempercepat perhitungan algoritma yang dikerjakan sebuah sistem PC. Diibaratkan, berpikir sebuah pekerjaan dengan menggunakan dua otak, tentunya pekerjaan itu akan lebih cepat selesai. Produsen prosesor terkemuka di dunia (Intel dan AMD), mengembangkan teknologi dual core ini karena tuntutan aplikasi-aplikasi yang semakin tinggi atas prosesor yang memiliki tingkat komputasi yang tinggi. Karena pengembangan prosesor dengan menggunakan satu inti sudah mulai stagnan, maka mulai dikembangkan prosesor yang memiliki inti prosesor lebih dari satu.

9. CORE 2 DUO Pada tahun 2006 di luncurkanlah Intel Core 2 Duo yang pertama diberi kode nama Conroe. Processor ini dibangun dengan menggunakan teknologi 65 nm dan ditujukan untuk penggunaan desktop menggantikan jajaran Pentium 4 dan Pentium D. Bahkan pihak Intel mengklaim bahwa Conroe mempunyai performa 40% lebih baik dibandingkan dengan Pentium D yang tentunya sudah menggunakan dual core juga. Core 2 Duo hanya membutuhkan daya yang lebih kecil 40% dibandingkan dengan Pentium D untuk menghasilkan performa yang sudah disebutkan di atas.

Processor yang sudah menggunakan core Conroe diberi label dengan “E6×00”. Beberapa jenis Conroe yang sudah beredar di pasaran adalah tipe E6300 dengan clock speed sebesar1.86 GHz, tipe E6400 dengan clock speed sebesar 2.13 GHz, tipe E6600 dengan clock speed sebesar 2.4 GHz, dan tipe E6700 dengan clock speed sebesar 2.67 GHz. Untuk processor dengan tipe E6300 dan E6400 mempunyai Shared L2 Cache sebesar 2 MB, sedangkan tipe yang lainnya mempunyai L2 cache sebesar 4 MB. Jajaran dari processor ini memiliki FSB (Front Side BUS) sebesar 1066 MT/s (Megatransfer) dan daya yang dibutuhkan hanya sebesar 65 Watt TDP (Thermal Design Power).

DASAR-DASAR PEMROGRAMAN

Authentication dan Authorization

Authentication merupakan proses untuk memastikan suatu pengenalan atau memastikan suatu pengakuan. Jadi pada authentication ini akan memasti...