Selasa, 01 Juni 2021

Perbedaan antara Proses dan Thread

 Proses dan Utas pada dasarnya terkait. Proses adalah eksekusi suatu program sedangkan utas adalah eksekusi program yang didorong oleh lingkungan suatu proses.

Poin utama lain yang membedakan proses dan utas adalah bahwa proses diisolasi satu sama lain sedangkan utas berbagi memori atau sumber daya satu sama lain.

Grafik perbandingan

Dasar untuk perbandinganProsesBenang
DasarProgram dalam eksekusi.Proses ringan atau bagian dari itu.
Berbagi memoriSepenuhnya terisolasi dan tidak berbagi memori.Berbagi memori satu sama lain.
Konsumsi sumber dayaLebihKurang
EfisiensiKurang efisien dibandingkan dengan proses dalam konteks komunikasi.Meningkatkan efisiensi dalam konteks komunikasi.
Waktu yang diperlukan untuk pembuatanLebih
Kurang
Waktu pengalihan konteksMembutuhkan lebih banyak waktu.Membutuhkan lebih sedikit waktu.
Pengakhiran yang tidak pastiMenghasilkan hilangnya proses.Sebuah utas dapat direklamasi.
Waktu yang dibutuhkan untuk pemutusan hubungan kerjaLebihKurang


Definisi Proses

Prosesnya adalah pelaksanaan suatu program dan melakukan tindakan yang relevan yang ditentukan dalam suatu program, atau itu adalah unit eksekusi di mana suatu program berjalan. Sistem operasi membuat, menjadwalkan dan mengakhiri proses untuk penggunaan CPU. Proses lain yang dibuat oleh proses utama dikenal sebagai proses anak.

Suatu operasi proses yang dikendalikan dengan bantuan PCB (Process control Block) dapat dianggap sebagai otak dari proses tersebut, yang berisi semua informasi penting mengenai suatu proses seperti id proses, prioritas, keadaan, PWS dan isi register CPU .

PCB juga merupakan struktur data berbasis kernel yang menggunakan tiga jenis fungsi yaitu penjadwalan, pengiriman dan penyimpanan konteks.

  • Penjadwalan - Ini adalah metode pemilihan urutan proses dalam kata-kata sederhana memilih proses yang harus dieksekusi terlebih dahulu dalam CPU.
  • Pengiriman - Ini mengatur lingkungan untuk proses yang akan dieksekusi.
  • Simpan konteks - Fungsi ini menyimpan informasi mengenai suatu proses ketika akan dilanjutkan atau diblokir.

Ada beberapa kondisi tertentu yang termasuk dalam siklus hidup proses seperti siap, berjalan, diblokir, dan diakhiri. Status Proses digunakan untuk melacak aktivitas proses secara instan.

Dari sudut pandang programmer, proses adalah media untuk mencapai eksekusi bersamaan dari suatu program. Proses utama dari program bersamaan menciptakan proses anak. Proses utama dan proses anak perlu berinteraksi dengan masing-masing untuk mencapai tujuan bersama.

Operasi interleaving dari proses meningkatkan kecepatan komputasi ketika operasi i / o dalam satu proses tumpang tindih dengan aktivitas komputasi dalam proses lain.

Properti dari Proses:

  • Pembuatan setiap proses termasuk panggilan sistem untuk setiap proses secara terpisah.
  • Suatu proses adalah entitas eksekusi yang terisolasi dan tidak berbagi data dan informasi.
  • Proses menggunakan mekanisme IPC (komunikasi antar proses) untuk komunikasi yang secara signifikan meningkatkan jumlah panggilan sistem.
  • Manajemen proses mengkonsumsi lebih banyak panggilan sistem.
  • Setiap proses memiliki memori tumpukan, dan tumpukan, instruksi, data dan peta memori.

Definisi dari Thread

Utas adalah eksekusi program yang menggunakan sumber daya proses untuk menyelesaikan tugas. Semua utas dalam satu program secara logis terkandung dalam suatu proses. Kernel mengalokasikan tumpukan dan blok kendali ulir (TCB) untuk setiap utas. Sistem operasi hanya menyimpan stack pointer dan status CPU pada saat beralih di antara utas dari proses yang sama.

Thread diimplementasikan dalam tiga cara yang berbeda; ini adalah utas tingkat kernel, utas tingkat pengguna, utas hibrida. Utas dapat membuat tiga negara berjalan, siap dan diblokir; itu hanya mencakup keadaan komputasi, bukan alokasi sumber daya dan keadaan komunikasi yang mengurangi overhead switching. Ini meningkatkan concurrency (paralelisme) maka kecepatan juga meningkat.

Multithreading juga dilengkapi dengan demerits, Multiple threads tidak menciptakan kompleksitas, tetapi interaksi di antara mereka tidak.

Sebuah utas harus memiliki properti prioritas ketika ada beberapa utas yang aktif. Waktu yang didapat untuk eksekusi masing-masing untuk utas aktif lainnya dalam proses yang sama ditentukan oleh prioritas utas.

Properti sebuah Thread:

  • Hanya satu panggilan sistem yang dapat membuat lebih dari satu utas (Proses ringan).
  • Thread berbagi data dan informasi.
  • Thread berbagi instruksi, wilayah global dan heap tetapi memiliki tumpukan dan register tersendiri.
  • Manajemen utas tidak menggunakan atau lebih sedikit panggilan sistem karena komunikasi antar utas dapat dicapai menggunakan memori bersama.
  • Properti isolasi dari proses meningkatkan overhead dalam hal konsumsi sumber daya.

Perbedaan Kunci Antara Proses dan Thread

  1. Semua utas program secara logis terkandung dalam suatu proses.
  2. Suatu proses berbobot berat, tetapi utas berbobot ringan.
  3. Suatu program adalah unit eksekusi yang terisolasi sedangkan utas tidak terisolasi dan berbagi memori.
  4. Utas tidak dapat memiliki keberadaan individu; itu melekat pada suatu proses. Di sisi lain, suatu proses dapat eksis secara individual.
  5. Pada saat berakhirnya utas, tumpukan yang terkait dapat dipulihkan karena setiap utas memiliki tumpukan sendiri. Sebaliknya, jika suatu proses mati, semua utas mati termasuk proses.

Kesimpulan

Proses digunakan untuk mencapai pelaksanaan program secara bersamaan dan berurutan. Sementara utas adalah unit pelaksanaan program yang menggunakan lingkungan proses ketika banyak utas menggunakan lingkungan dari proses yang sama, mereka perlu membagikan kode, data, dan sumber dayanya. Sistem operasi menggunakan fakta ini untuk mengurangi overhead dan meningkatkan perhitungan.

Multiple Processor Organization

 

PENGOLAHAN PARALEL

Salah satu cara untuk meningkatkan kinerja sistem adalah dengan menggunakan berbagai prosesor yang dapat mengeksekusi secara paralel untuk membantu kerja pemuatan yang ada. Rancangan prosesor paralel merupakan pengembangan terakhir dari ilmu pengetahuan komputer yang didasari oleh kebutuhan menyelesaikan beberapa instruksi secara paralel dalam waktu yang bersamaan dengan mengurangi masalah ketergantungan data, prosedural, unit fungsional, output dan anti ketergantungan yang menyebabkan suatu instruksi terhenti atau harus menunggu instruksi lainnya selesai untuk dapat diproses. Operasi seperti ini hanya dapat dilakukan oleh komputer yang memiliki dua atau lebih unit prosesor (CPU) yang terhubung melalui beberapa jaringan koneksitas. Dalam beberapa kasus, kita dapat menganalogikan paralel komputer sebagai suatu Bank dimana teler merupakan prosesor paralel dan transaksi dengan konsumen sebagai task yang akan diproses.
Pada organisasi paralel, berbagai unit pengolahan saling bekerja sama untuk melaksanakan aplikas-aplikasi. Pelaksanaan instruksi dilakukan pada waktu yang bersamaan. Jika sebuah prosesor superskalar memanfaatkan peluang pelaksanaan yang paralel pada tingkatan instruksi, maka pada suatu organisasi pengolahan paralel akan mencari tingkatan paralel yang lebih kasar, yaitu eksekusi yang memungkinkan suatu proses dilaksanakan oleh multipel prosesor secara paralel dan saling bekerja sama. Dua organisasi multipel prosesor yang umum adalah multipel prosesor simetris (SMPS) dan Cluster, dan kemudian adapula sistem NUMA yaitu sistem dengan akses memori yang tidak seragam.
Secara tradisional, komputer dipandang sebagai mesin yang sekuensial. Sebagian besar bahasa pemograman komputer mengharuskan pemrogram untuk menspesifikasikan algoritma sebagai rangkaian instruksi. Prosesor-prosesor mengeksekusi program dengan mengeksekusi instruksi mesin secara berurutan dan satu persatu. Masing-masing instruksi dieksekusi dalam rangkaian operasi (operasi pengambilan, pelaksanaan dan penyimpanan hasil). Cara demikian tidak seluruhnya benar. Pada tingkat operasi mikro, beberapa sinyal kontrol dibuat dalam waktu yang bersamaan. Pipelining instruksi, paling tidak yang menyangkut operasi pengambilan dan instruksi telah berlangsung lama. Kedua ini merupakan contoh fungsi yang paralel.
Dengan semakin majunya teknologi komputer dan dengan semakin murahnya harga hardware, perancang komputer mencari kemungkinan penggunaan paralelisme yang lebih banyak. Gunanya untuk meningkatkan kinerja dan sebagian lagi untuk meningkatkan reliabilitas.

1.1 Organisasi berbagai Prosesor
Jenis-jenis Sistem Prosesor paralel
Sebuah taksonomi yang pertama kali diperkenalkan oleh Flynn masih merupakan cara yang paling umum dari penggolongan sistem-sistem dengan kemampuan pengolahan yang paralel. Menurutnya kategori sistem komputer berdasarkan strukturnya adalah :
a. SISD (Single Instruction Stream, Single Data Stream) Arus instruksi tunggal, data tunggal.
Merupakan sebuah prosesor tunggal mengeksekusi arus instruksi tunggal untuk beroperasi pada data yang disimpan pada memori tunggal. Disebut juga dengan Uni-prosesor. Prosesor tunggal berada pada kategori ini.

b. SIMD (Single Instruction Stream, Multiple Data Stream) Arus instruksi tunggal, data multipel.
Sebuah mesin instruksi mengatur eksekusi dari sejumlah elemen pengolahan pada sebuah basis secara simultan. Terdapat sejumlah elemen proses dimana masing-masing elemen memiliki data memori yang berhubungan, sehingga masing-masing instruksi dieksekusi pada sebuah rangkaian data (set data) yang berbeda dengan prosesor yang berbeda. Prosesor vektor dan prosesor array termasuk pada kategori ini.
SIMD merupakan salah satu bentuk dari paralel sinkron yang memproses satu instruksi dengan banyak prosesor elemen pada waktu yang sama. Di dalam paradigma SIMD yang paling penting bukanlah kontrol prosesor melainkan data. Data diproses oleh masing-masing elemen pemroses yang berbeda dari satu prosesor ke prosesor lainnya. Sehingga satu program dan satu kontrol unit bekerja secara bersamaan pada
kumpulan data yang berbeda. Untuk memproses data secara efisien, SIMD membuat pengaturan proses menjadi dua phase, yaitu : pertama memilah dan mendistribusikan data (data partitioning and distribution) dan yang kedua memproses data secara paralel (data paralel prosesing).
Jadi efisiensi akan tergantung kepada banyaknya permasalahan yang harus diselesaikan secara paralel. Cara terbaik dalam menggunakan SIMD adalah dengan mencocokan banyaknya permasalahan dengan banyaknya prosesor paralel. Banyaknya permasalahan berarti seberapa banyak jumlah data yang akan di perbaharui dan banyaknya prosesor paralel berarti jumlah prosesor yang tersedia. Jadi jika permasalahanya sebanding dengan prosesor paralel maka kecepatan tertinggi dapat terjadi, sebaliknya apabila permasalahan hanya satu dengan prosesor paralel yang banyak menyebabkan sistem SIMD menjadi tidak efektif. SIMD sering diidentikan sebagai permasalahan paralel yang sederhana, padahal tidaklah benar karena paradigma SIMD
sangat berguna dalam menyelesaikan permasalahan yang memiliki beberapa data yang perlu diperbaharui secara serempak. Khususnya sangat berguna untuk perhitungan numerik biasa seperti perhitungan matrix dan vektor.

c. MISD (Multiple Instruction Stream, Single Data Stream)
Urutan data yang diorganisir dipancarkan ke serangkaian prosesor, masing-masing prosesor mengeksekusi urutan instruksi yang berbeda. Struktur ini belum diimplementasikan secara baik.

d. MIMD (Multiple Instruction Stream, Multiple Data Stream)
Serangkaian set prosesor mengeksekusi serangkaian instruksi yang berbeda secara semultan pada rangkaian set data yang berbeda. SMP, Cluster dan siste NUMA berada pada kategori ini.
MIMD berarti banyak prosesor yang dapat mengeksekusi instruksi dan data yang berbeda-beda secara bersamaan. Lebih lanjut sebagai bagian dari komputer, prosesor memiliki otonom yang besar dalam melakukan operasinya. Secara umum MIMD digunakan ketika banyak permasalahan heterogen yang harus diselesaikan pada sangat baik digunakan untuk meneyelesaikan permasalahan yang besar, sebab melebihi data dan kontrol yang harus dilewatkan dari task ke task. Sebagai contoh dalam analogi sebuah Bank, MIMD akan menampilkan kerja terbaiknya ketika masing- waktu yang sama. MIMD masing teller memiliki beberapa transaksi yang harus diselesaikan satu persatu tanpa ada pembuangan waktu dan penghentian dari beberapa bagian transaksi. Tetapi pada sistem MIMD akan dibingungkan oleh aliran data (dataflow) paralel, karena aliran data tersebut harus dikerjakan oleh mesin MIMD secara terus menerus.
Pertama bahwa tiap-tiap prosesor bekerja secara independen kecuali untuk sistem sinkoron tertentu harus menunggu. Prosesor menjalankan task yang pendek sebagai contoh selesainya mengevaluasi vektor satu elemen sebelum prosesor memproses task lebih jauh. Tentu saja prosesor dalam waktu yang singkat dapat melakukan beberapa pekerjaan yang berbeda, seperti waiting, comparing dan sending data. Kedua, bahwa pada program paralel untuk menyelesaikan suatu task baik jumlahnya diketahui ataupun tidak, menggunakan prosesor yang jumlahnya tidak diketahui pula.

Hal tersebut menggambarkan dua ciri mendasar dari sistem MIMD, yaitu :
1. Kelamahan pada sentralisasi dan mekanisme sistem sinkron secara umum, dan
2. Penggeneralisasian task yang heterogen yang dioperasikan secara bersamaan, contohnya dalam memproses operasi yang berbeda dengan data berbeda dan dalam jangka waktu yang berbeda pula.
Secara umum MIMD meliputi paradigma reduksi/dataflow. Pada kenyataannya juga secara umum meliputi SIMD, sebab kita dapat menemui sifat SIMD pada sebagian sifat MIMD. Sehingga menghasilkan Kinerja akhir dari simulasi satu bentuk mesin dengan bentuk lainnya. Untuk menggabungkannya, mesin MIMD mengubah SIMD prosesor dimana masing-masing prosesornya mampu mengerjakan banyak task dari aplikasi yang berbeda pada waktu yang sama .
Dengan organisasi MIMD , prosesor merupakan tujuan umum dimana masing-masing prosesor dapat memproses semua instruksi yang penting untuk menampilkan transformasi data yang sesuai. MIMD dapat dibagi lagi berdasarkan cara komunikasi prosesornya. Apabila prosesor –prosesor memiliki memori yang sama, maka masing-masing prosesor mengakses program-program dan data yang disimpan dalam memori bersama, dan prosesor berkomunikasi satu sama lain melalui memori tersebut. Bentuk umum dari sistem ini adalah multiprosesor simetris (SMP). Multipel prosesor memberi satu atau sekelompok memori dengan mekanisme bus yang diberikan atau interkoneksi lainnya. Salah satu ciri yang membedakan adalah waktu akses memori ke ruang memori manapun kira-kira sama untuk masing-masing prosesor. Pengembangan yang terbaru adalah NUMA, yaitu organisaasi akses memori yang tidak seragam, seperti menurut Flynn bahwa waktu akses memori pada ruang yang berbeda dapat berbeda bila digunakan dengan prosesor NUMA. Kumpulan dari prosesor tunggal atau SMP dapat diinterkoneksi untuk membentuk sebuah cluster. Komunikasi antar komputer –komputer bisa melalui jalan yang tetap maupun melalui beberapa fasilitas jaringan

Organisasi Paralel
Pada struktur SISD ada beberapa macam unit control yang menyediakan suatu arus instruksi (IS) ke sebuah unit pengolahan (PU). Unit pengolahan mengoperasikan arus data tunggal (DS) dari suatu unit memori (MU).

SIMD, masih terdapat sebuah unit control tunggal yang sekarang memberi arus instruksi tunggal ke PU multipel. Masing-masing PU memiliki memorinya sendiri atau dapat juga suatu memori bersama.
Note : CU = Control Unit
IS = Instruction Stream (arus instruksi)
PU = Processing Unit
DS = Data Stream (arus Data)
MU = Memory unit
LM = Local Memory

Pada MIMD terdapat berbagai unit control yang masing-masing memberi arus instruksi yang terpisah ke unit pengolahan sendiri. MIMD dapat berupa multiprosesor yang berbagi atau dapat berupa multikomputer memori terdistribusi, seperti pada gambar dibawah berikut.

Permasalahan-permasalahan perancangan yang berhubungan dengan SMPs, Clusters dan NUMA merupakan permasalahan yang kompleks karena melibatkan adanya permasalahan yang berhubungan dengan organisasi fisik, struktur-struktur interkoneksi, komunikasi interprosesor, rancangan sistem operasi dan teknik-teknik aplikasi software.

1.2 Multiprosesor Simetris
Hampir semua pengguna tunggal komputer pribadi dan sebagian besar workstation menggunakan mikro prosesor tunggal yang bertujuan umum. Dengan meningkatnya permintaan kinerja dan dengan menurunnya biaya mikro prosesor, diperkenalkan sistem dengan sebuah
organisasi SMP. Istilah SMP mengacu pada sebuah arsitektur komputer hardware dan sifat operasi yang mencerminkan arsitektur tersebut. Sebuah SMP dapat didefinisikan sebagai sistem komputer yang berdiri sendiri dengan karakteristik sbb :
1. Mengandung dua atau lebih prosesor yang serupa dengan kemampuan setara.
2. Prosesor-prosesor tersebut berbagi memori utama dan fasilitas I/O dan diinterkoneksikan oleh sebuah bus atau skema hubungan internal lainnya, seperti waktu akses memori yang kira-kira sama untuk setiap prosesor.
3. Semua prosesor berbagi akses ke alat I/O, baik melalui saluran yang sama maupun melalui saluran berbeda yang menyediakan jalan ke perangkat yang sama.
4. semua prosesor dapat menampilakn fungsi-fungsi yang sama.
5. Sistem dikendalikan oleh sistem operasi yang terintegrasi yang menyediakan interaksi antara prosesor- prosesor dan program-programnya pada tingkatan pekerjaan, tugas, file dan elemen data.
Sistem operasi SMP menjadwalkan proses-proses atau thread melalui semua prosesor. Sebuah organisasi SMP memiliki sejumlah keuntungan yang potensial atas sebuah organisasi prosesor tunggal yang mencakup hal-hal berikut :
1. Kinerja :
Jika pekerjaan yang dilaksanakan oleh komputer dapat diorganisasikan sehingg beberapa bagian pekerjaan dapat dilakukan secara paralel, maka sebuah sistem dengan prosesor multipel akan menghasilkan kinerja yang lebih besar daripada bila menggunakan prosesor tunggal yang memiliki jenis yang sama.
2. Ketersediaan :
Pada multiprosesor simetris, karena semua prosesor dapat menampilkan fungsi-fungsi yang sama, kesalahan dari prosesor tunggal tidak membuat mesin tersebut berhenti melainkan sistem dapat berlanjut ke fungsi pada kinerja yang dikurangi.
3. Pertumbuhan yang meningkat :
Seorang pemakai dapat meningkat kinerja sebuah sistem dengan menambahkan sebuah prosesor tambahan.
4. Pensaklaran :
Penjual dapat menawarkan kisaran produk dengan harga dan karakteristik kinerja yang
berbeda berdasarkan jumlah prosesor-prosesor yang diatur pada sistem.

Ciri yang menarik dari SMP adalah adanya transparansi bagi pengguna mengenai keberadaan prosesor-prosesor multipel. Sistem operasi menjaga penjadwalan thread atau proses-proses pada prosesor-prosesor individual dan menjaga sinkronisasi antar prosesor.

Organisasi
Pada organisasi sistem multiprosesor terdapat dua prosesor atau lebih. Setiap prosesor adalah self contained termasuk diantaranya unit control, ALU, register dan mungkin juga cache. Setiap prosesor memiliki akses ke memori utama bersama dan perangkat-perangkat I/O dengan menggunakan beberapa bentuk mekanisme interkoneksi. Prosesor dapat berkomunikasi dengan yang lainnya melalui memori-memori. Sering kali memori diatur sedemikian rupa sehingga memungkinkan terjadinya sejumlah akses yang bersamaan ke blok-blok memori yang berlainan. Beberapa konfigurasi, prosesor juga mungkin memiliki memori utama dan saluran I/O sendiri selain sumber daya yang dapat dipakai bersama.
Pendekatan organisatoris SMP dapat digolongkan sebagai berikut:
1. Bus waktu bersama/bus umum (Time shared or common bus)
2. Memori yang memiliki sejumlah port (Multiport memory)
3. Unit kontrol pusat (Central control unit)

Bus waktu bersama
Bus waktu bersama merupakan mekanisme pembentukan sistem multiprosesor yang paling sederhana. Struktur dan antarmukanya pada dasarnya adalah sama seperti untuk sistem prosesor tunggal yang menggunakan interkoneksi bus.
Bus terdiri dari saluran kontrol, alamat dan data. Untuk memungkinkan transfer DMA dari prosesor-prosesor I/O disediakan ciri-ciri sebagai berikut :
• Pengalamatan : Pengalamatan harus dapat membedakan modul-modul yang ada pada bus untuk menentukan sumber dan tujuan data.
• Arbitrasi : setiap modul I/O dapat berfungsi sebagai master pada waktu tertentu. Mekanisme disediakan untuk menentukan permintaan-permintaan yang melakukan persaingan dalam memperoleh kontrol bus dengan menggunakan sejumlah teknik prioritas.
• Pembagian waktu : Bila sebuah modul sedang melakukan pengontrolan terhadap bus, maka modul-modul lainnya di kunci dan bila perlu harus menahan operasi sampai akses bus diperoleh.
Ciri-ciri ini secara langsung dapat digunakan pada konfigurasi multiprosesor. Saat ini terdapat prosesor jamak dan prosesor I/O yang berjumlah banyak yang semuanya berusaha untuk memperoleh akses ke sebuah modul memori atau lebih melalui bus.
Organisasi bus memiliki beberapa keuntungan dibandingkan dengan pendekatan lainnya, yaitu :
• Kesederhanaan : Ini merupakan pendekatan organisasi multiprosesor yang paling sederhana.
Antarmuka fisik dan logika pengalamatan, arbitrasi serta pembagian waktu seluruh prosesor tetap sama seperti pada prosesor tunggal.
• Fleksibilitas : Pada umumnya organisasi ini mudah dikembangkan dengan cara menambahkan prosesor yang lebih banyak ke bus.
• Reliabilitas : Pada dasarnya bus merupakan medium pasif dan kegagalan suatu perangkat yang terhubung tidak akan menyebabkan kegagalan bagi sistem secara keseluruhan.
Kelemahan pada organisasi bus adalah dalam hal kinerja. Seluruh referensi memori dilewatkan melalui bus umum, sehingga kecepatan sistem dibatasi oleh siklus waktu. Untuk meningkatkan kinerja, maka setiap prosesor perlu dilengkapi dengan memori cache, hal ini akan mengurangi jumlah akses bus.
Setiap cache lokal berisi suatu citra bagian memori, maka apabila suatu word diubah pada sebuah cache, perubahan ini menjadikan tidak sah word pada cache lainnya. Untuk mencegah hal ini, prosesor lain harus diberitahu bahwa telah terjadi suatu update. Masalah ini dikenal dengan koherensi cache dan biasanya dialamatkan pada hardware daripada oleh sistem operasi.

Memori Multiport
Pendekatan memori multiport memungkinkan akses modul-modul memori utama secara langsung dan independen oleh prosesor dan modul I/O. Metode yang digunakan untuk mengatasi konflik adalah dengan menetapkan prioritas yang permanen bagi semua port memori. Hanya diperlukan sedikit modifikasi prosesor atau modul I/O atau tidak sama sekali untuk mengakomodasi memori multiport.
Pendekatan memori multiport lebih kompleks dibanding dengan pendekatan bus yang memerlukan penambahan logika dalam jumlah banyak ke sistem memori. Pendekatan ini memberikan kinerja yang lebih baik karena setiap prosesor memiliki lintasan yang berdedikasi ke masing-masing modul memori. Kelebihan lainnya adalah memungkinkan untuk melakukan konfigurasi bagian memori sebagai ‘private’ bagi sebuah prosesor atau lebih dan atau bagi modul-modul I/O.

Unit Kontrol pusat
Unit kontrol pusat menyalurkan aliran data yang terpisah secara bolak-balik diantara modul-modul yang independen (prosesor, memori, I/O). Pengontrol dapat menyangga permintaan dan melakukan fungsi arbitrasi dan pewaktuan. Pengontrol juga melewatkan pesan-pesan status dan kontrol diantara prosesor-prosesor dan melakukan peringatan update cache. Seluruh logika untuk mengkoordinasikan konfigurasi multiprosesor dikonsentrasikan ke unit pusat. Hal ini memberikan fleksibilitas dan kemudahan interfacing pendekatan bus. Kelemahannya adalah unit kontrolnya cukup rumit dan merupakan penyebab terjadinya
kemacetan bagi kinerja. Struktur unit kontrol pusat umum digunakan bagi sistem mainframe berprosesor jamak, seperti IBM S/370 yang berskala besar.
Suatu sistem operasi SMP mengatur prosesor dan sumber daya komputer lainnya sedemikian rupa sehingga pemakai merasa sistem operasi tunggal yang mengendalikan sumber daya sistem. Sistem operasi multiprosesor harus menyediakan semua fungsi sistem pemrograman dan ciri-ciri tambahan lainnya untuk mengakomodasikan berbagai prosesor.
Kunci perancangan sistem operasi multiprosesor adalah sbb :
1. Proses berlangsung secara bersamaan : Rutin SO perlu untuk dimasukkan kembali agar
beberapa prosesor dapat bereksekusi pada kode IS secara bersamaan. Dengan berbagai prosesor yang mengeksekusi bagian SO yang sama atau berbeda.
2. Penjadwalan : Prosesor apapun boleh melaksanakan penjadwalan. Penjadwalan harus
menugaskan beberapa proses yang siap untuk prosesor yang tersedia.
3. Sinkronisasi : Sinkronisasi adalah sebuah fasilitas yang membuat adanya pengeluaran timbal
balik dan pengurutan peristiwa.
4. Manajemen memori : Manajemen memori pada suatu multiprosesor harus
berhubungan dengan semua masukan yang ada pada mesin uniprocessor. Mekanisme penomoran halaman pada berbagai multiprosesor yang berbeda harus dikoordinasikan untuk mendorong terjadinya konsistensi pada saat beberapa prosesor membagi sebuah halaman atau bagian dan untuk memutuskan pemindahan halaman.
5. Reliabilitas dan toleransi kesalahan : Sistem operasi harus dapat menurunkan
terjadinya kegagalan prosesor. Penjadwalan dan bagian lain sistem operasi harus mengenali hilangnya suatu prosesor dan mengatur kembali tabel manajemen dengan seksama.

Mainframe SMP
Kebanyakan PC dan stasiun kerja SMP menggunakan strategi interkoneksi satu bus. Alternatif lain digunakan implementasi terbaru dari kelompok mainframe IBM S/390. Sistem ini memiliki prosesor tunggal dengan jangkauan satu kartu memori utama untuk sistem yang tinggi dengan sepuluh prosesor dan 4 kartu memori. Konfigurasi mencakup satu atau dua prosesor tambahan yang bertindak sebagai prosesor I/O.
Konfigurasi dari komponen-komponennya adalah :
1. Unit Prosesor (PU) : Menggunakan mikroprosesor CISC yang sering menggunakan instruksi hardwired (sebagaian firmware). Masing-masing PU meliputi cache 64 KB L1 agar mencapai akses satu siklus.
2. Cache L2 :Tiap Cache L2 384 KB diatur pada cluster berpasangan dan mensuport 3 PU.
3. Adapter jaringan Bus switching (BSN) : BSN menginterkoneksi cache L2 dan memori utama, juga cache L3 dengan kapasitas 2 MB.
4. Kartu Memori : Tiap kartu memiliki 8 GB memori dengan total kapasitasnya 32 GB.

1.3 Koherensi Cache dan Protokol Mesin
Pada sistem koherensi modern tiap prosesor memiliki satu atau lebih tingkatan cache. Hal ini guna memperoleh kinerja yang tinggi. Namun hal ini menimbulkan masalah yang dikenal dengan koherensi cache.
Inti masalah tersebut adalah sejumlah salinan data yang sama dapat berada pada cache yang berbeda pada waktu yang bersamaan, dan apabila prosesor diberikan kebebasan untuk mengupdate salinannya sendiri maka akan terjadi tidak konsistensi pada memori.
Ada dua kebijakan menulis yaitu :
– Menulis kembali ; dimana operasi menulis biasanya dibuat hanya ke cache, memori utama hanya diupdate pada saat cache yang koheren dibersihkan dari cache.
– Menulis melalui ; dimana semua operasi menulis dibuat ke memori utama dan cache untuk
memastikan bahwa memori utama selalu valid.
Kebijakan menulis kembali dapat menyebabkan adanya ketidak konsistenan. Bila dua cache memiliki baris yang sama dan baris tersebut diupdate pada satu cache, maka cache lain akan memiliki nilai yang tidak sah.
Protokol koherensi cache bertujuan untuk membiarkan beberapa variabel lokal untuk bisa masuk pada cache yang cocok. Koherensi cache dibagi atas pendekatan software dan pendekatan hardware. Teknik koherensi cache software berusaha untuk menghindarkan kebutuhan akan hardware tambahan dan logika dengan mengandalkan kompiler dan sistem operasi untuk mengatasi masalah. Masalah penting akan dipindahkan dari hardware ke software. Keputusan yang diambil menyebabkan ketidakefisienan penggunaan cache. Pada pendekatan hardware, permasalahan hanya akan ditangani apabila masalah tersebut benar terjadi, maka penggunaan cache menjadi efektif dan kinerja menjadi lebih baik dibandingkan dengan pendekatan software.
Pendekatan ini juga dapat dirasakan oleh pemrograman dan kompiler yaitu mengurangi pekerjaan pembuatan software. Skema hardware dapat dibagi atas dua kategori yaitu Protokol Direktori dan protokol Snoopy .
1. Protokol Direktori

Protokol direkrory ini mengumpulkan dan menjaga informasi lokal salinan blok berada. Terdapat sejumlah pengontrol tersentralisasi yang merupakan bagian memori utama dan sebuah direktori yang tersimpan di dalam memori utama. Direktori tersebut berisi informasi status global tentang isi bermacam-macam cache lokal. Direkroti bertanggung jawab atas penyimpanan infomasi status up to date sehingga harus dilaporkan ke pengontrol sentral. Kekurangan direktori adalah adanya kemacetan terpusat dan overhead komunikasi antara
berbagai pengontrol cache dengan pengontrol sentral. Namun teknik ini efektif digunakan pada sistem berskala besar yang melibatkan bus berjumlah banyak atau pola interkoneksi yang kompleks.

2. Protokol Snoopy

Protokol snoopy ini mendistribusikan tanggung jawab untuk menjaga koherensi cache keseluruh pengontrol cache di dalam sebuah multiprosesor. Cache harus mengetahui kapan suatu blok yang ada didalamnya dapat digunakan bersama. Aksi update harus diumumkan keseluruh cache dengan menggunakan mekanisme pemancaran. Setiap pengontrol cache memiliki kemampuan untuk ‘snoop’(mengintai) jaringan dalam mengamati pemberitahuan pemancaran ini dan kemudian melakukan reaksi. Idealnya digunakan untuk multiprosesor berbasis bus. Ada dua pendekatan protokol snoopy, yaitu write invalidate dan write update.

  a. Protokol write invalidate terdapat sejumlah pembaca dan hanya satu penulis saja. Pada protokol write update terdapat beberapa penulis dan beberapa pembaca. Pada saat semua prosesor akan mengupdate blok bersama, maka word yang akan diupdate akan didistribusikan ke prosesor-prosesor lainnya dan cache yang berisi blok tersebut akan mengupdatenya. Pendekatan write invalidate merupakan pendekatan yang paling banyak digunakan pada sistem multiprosesor komersil. Pendekatan ini menandai status setiap saluran cache sebagai termodifikasi, ekslusif, digunakan bersama atau invalid. Dengan alasan ini protokol ini disebut MESI.
Protokol MESI cache data terdiri dari 2 bit status per-tag-nya, sehingga setiap baris dapat berada pada salah satu dari keempat keadaan berikut :
1. Termodifikasi : Baris pada cache telah dimodifikasi dan hanya tersedia hanya pada cache itu
saja.
2. Ekslusif : Baris yang berada pada cache yang sama seperti pada baris memori utama dan
tidak terdapat pada cache-cache lainnya.
3. Bersama : Baris yang berada pada cache sama seperti pada memori utama dan mungkin
terdapat pada cache lainnya.
4. Tidak valid : Bila cache tidak berisi data yang valid.
Pada saat read miss terjadi pada cache lokal, prosesor mulai melakukan pembacaan memori untuk membaca blok memori utama yang berisi alamat yang hilang. Prosesor menyisipkan sebuah sinyal pada bus yang memperingati semua unit prosesor/cache untuk melakukan snoop terhadap transaksi. Pada saat terjadi miss tulis pada cache lokal, maka prosesor akan melakukan pembacaan membaca blok yang berada di dalam memori utama yang berisi alamat yang tidak ditemukan. Untuk itu prosesor mengeluarkan sinyal pada bus yang artinya membaca dengan tujuan untuk memodifikasi. Ketika proses hit read terjadi pada sebuah baris di cache lokal, prosesor dengan mudah membaca hal yang dibutuhkan. Tidak ada perubahan status ;status tetap sama, sebagai termodifikasi, bersama atau ekslusif. Bila terjadi hit tulis, maka akibatnya akan bergantung pada status blok saat itu pada cache lokal.

1.4 Cluster
Salah satu area terpenting pada perancangan sistem komputer adalah clustering. Clustering adalah sebuah alternatif bagi pengolahan multisimetris sebagai sebuah pendekatan untuk menyajikan kinerja dan ketersediaan yang tinggi dan biasanya menarik bagi aplikasi server. Dapat didefinisikan sebuah cluster adalah sebuah group yang terinterkoneksikan dimana keseluruhan computer bekerja bersamaan sebagai satu kesatuan sumber yang dapat menciptakan ilusi sebagai satu mesin. Istilah ‘whole computer’ berarti sebuah sistem yang dapat berjalan dengan sendirinya, diluar cluster, masing-masing pada sebuah cluster disebut sebuah “node”. Menurut Brew ada empat keuntungan yang diperoleh dengan cluster ini dan dapat pula dianggap sebagai persyaratan dari rancangan, yaitu :
1. Skalabilitas absolut : sebuah cluster dapat memiliki selusin mesin yang masing-masing adalah multiprosesor.
2. Skalabilitas meningkat : sebuah cluster dikonfigurasi sedemikian rupa sehingga mungkin untuk menambahkan sistem-sistem baru ke cluster pada peningkatan yang kecil.
3. Ketersediaan tinggi : tiap node pada sebuah cluster merupakan komputer yang berdiri sendiri, maka kegagalan salah satu node tidak menyebabkan hilangnya servis. Pada sebagian besar produk toleransi kesalahan ditangani secara otomatis pada software.
4. Harga/ kinerja yang unggul : dengan menggunakan komoditas blok bangunan, kita dapat meletakkan sebuah cluster dengan tenaga komputerisasi yang sama dan lebih besar daripada sebuah mesin tunggal, dengan harga yang lebih murah.
5. Koherensi Cache NUMA (CC-NUMA) ; adalah sistem NUMA yang koherensi cachenya dijaga diantara cache-cache beberapa prosesor.

Sistem NUMA yang tanpa koherensi cache kurang lebih ekivalen terhadap cluster. NUMA merupakan salah satu pendekatan untuk pencapaian pemrosesan dengan skala besar. Tujuan penggunaan NUMA adalah untuk memelihara
memori sistem yang luas secara transparan pada saat mengizinkan node-node berbagai multiprosesor, masing-masing dengan busnya sendiri atau dengan sistem interkoneksi internal lainnya. Gambar disamping ini
menunjukkan organisasi CC-NUMA. CC-NUMA berbeda dengan SMP dan cluster. Ada beberapa node yang independen yang masing-masing merupakan sebuah organisasi SMP. Tiap node berisi beberapa prosesor dengan cache L1 dan L2-nya dan memori utama. Node merupakan dasar dari blok bangunan organisasi CC-NUMA. Node-node terinterkoneksi dengan menggunakan beberapa fasilitas komunikasi yang bisa menjadi mekanisme pergantian.
Tiap node pada cc-NUMA meliputi beberapa Memori utama, dari sudut pandang prosesor hanya
ada satu memori tunggal, dengan masing-masing lokasi yang memiliki alamat sistem luas. Ketika suatu prosesor memulai akses memori, jika lokasi memori yang diminta tidak berada pada cache prosesor tersebut, maka cache L2 memulai suatu operasi pengambilan. Jika baris yang diinginkan pada bagian yang lokal berada pada memori utama, maka baaris akan diambil melalui bus lokal. Jika baris yang diinginkan berada pada bagian yang jauh dari memori utama, maka permintaan yang otomatis dikirimkan untuk mengambil baris melewati jaringan interkoneksi, mengirimkannya ke bus lokal dan kemudian mengirimkannya ke cache yang diminta pada bus tersebut. Semua kegiatan ini otomatis dan transparan pada prosesor dan cachenya.
Pada konfigurasi ini, koherensi cache merupakan pertimbangan yang terpenting. Walaupun implementasinya berbeda secara lebih rinci, secara umum masing-masing node harus menjaga beberapa bagian direktori yang memberikannya sebuah indikasi lokasi dari berbagai bagian memori dan juga status informasi cache. Keuntungan utama dari sistem CC-NUMA adalah dapat menyampaikan kinerja yang efektif pada tingkat yang lebih tinggi daripada SMP, tanpa perubahan sebagaian besar software. Dengan berbagai node-node NUMA, lalu lintas bus pada node individual terbatas terhadap permintaan yang dapat ditangani bus. Jika banyak akses memori ditujukan ke node-node yang jauh, maka kinerja akan menurun. Gagalnya kinerja ini dapat dihindari. Pertama kegunaan cache L1 dan cache L2 dirancang untuk meminimalkan semua akses memori termasuk yang terjauh. Jika sebagain software memiliki lokasi sementara, dan jika memori virtual digunakan, maka data yang diperlukan untuk sebuah aplikasi akan berada pada jumlah halaman yang terbatas yang dapat dimuat dari memori lokal ke memori yangsedang dilaksanakan. Akhirnya skema memori virtual dapat ditingkatkan dengan memasukkan sistem operasi mekanisme migrasi yang akan memindahkan halaman memori virtual ke sebuah node yang sering digunakan.
Kelemahan CC-NUMA, software yang berubah akan diminta untuk memindahkan sebuah sistem operasi dan aplikasi-aplikasi dari sebuah SMP ke sistem CC-NUMA.

1.5 Komputasi Vektor
Perkembangan aplikasi berada diluar kemampuan mainframe modern. Terdapat kebutuhan komputer untuk menyelesaikan masalah matematika proses yang sebenarnya seperti yang terdapat pada bidang aerodinamika, seismologi, meteorologi, fisika atom dll. Umumnya masalah tersebut ditandai dengan kebutuhan perhitungan berpresisi tinggi dan program yang secara berulang melakukan operasi-operasi aritmetik terhadap larik bilangan dalam jumlah besar. Untuk mengatasi masalah tersebut maka dibuat super komputer. Mesin ini mampu melakukan ratusan juta operasi perdetik untuk keperluan kalkulasi numerik.
Berbeda dengan mainframe yang dirancang untuk pemrograman multi dan I/O secara intensif. Ada sistem jenis lain yang dirancang untuk memenuhi kebutuhan komputasi vektor. Sistem ini dikenal dengan prosesor larik. Walaupun super komputer dioptimasikan untuk kebutuhan komputasi vektor, namun pada dasarnya ia memiliki kemamppuan menangani tugas-tugas pengolahan skalar dan pengolahan data yang umum. Pada pengolahan larik tidak mencakup pengolahan skalar, pengolah larik dipasang sebagai perangkat periperal baik oleh pengguna mainframe maupun pengguna komputer kecil untuk menjalankan bagian-bagian yang divektorkan pada suatu program.
Terdapat tiga organisasi prosesor yang penting :
– ALU pipeline
– Prosesor paralel
– ALU paralel
Operassi vektor dapat ditingkatkan lebih lanjut apabila elemen-elemen vektor terdapat didalam register seperti terlihat pada gambar (a) dibawah ini. Semua elemen operand vektor dimuatkan sebagai sebuah blok ke dalam register vektor yang sebenarnya hanya berupa bank register-register yang identik dan besar. Hasilnya juga disimpan didalam suatu register vektor. Sebagian operasi hanya melibatkan penggunaan register dan hanya operasi pemuatan dan penyimpanan awal serta akhir operasi vektor memerlukan akses ke memori.
Cara lain untuk mendapatkan pengolahan vektor adalah dengan menggunakan ALU berjumlah jamak pada prosesor tunggal dibawah kendali kontrol unit. Unit kontrol mengirimkan data ke ALU hingga ALU tersebut dapat berfungsi secara paralel. Dapat pula menggunakan pipeline pada tiap ALU yang paralel. Seperti halnya pipeline, organisasi ALU paralel cocok untuk pengolahan vektor. Unit kontrol mengirimkan elemen-elemen vektor ke ALU sampai seluruh elemen tersebut selesai diproses. Jenis organisasi ini lebih kompleks dibanding prosesor dengan ALU tunggal.
Cara yang terakhir untuk pengolahan vektor dapat diperoleh dengan menggunakan prosesor paralel berjumlah banyak. Diperlukan pembagian tugas menjadi beberapa proses yang akan dieksekusi secara paralel.
Organisasi ini efektif bila terdapat software dan hardware untuk keperluan organisasi prosesor paralel yang efektif.
Organisasi komputer dapat dibedakan menurut jumlah unit kontrolnya. Unit kontrol berjumlah banyak mengimplementasikan sejumlah prosesor. Apabila sejumlah prosesor dapat berfungsi secara kooperatif maka prosesor tersebut disebut prosesor paralel.

CONTOH CACAT SISTEM YANG TERSEMBUNYI

Kerugian Kecelakaan Kerja (Teori Gunung Es Kecelakaan Kerja)  Kerugian kecelakaan kerja diilustrasikan sebagaimana gunung es di permukaan la...