SMP Arsitektur

Kernel Linux 2.0 adalah kernel Linux pertama yang stabil untuk mendukung perangkat keras symmetric multiprocessor (SMP). Proses mau pun thread yang berbeda dapat dieksekusi secara paralel dengan processor yang berbeda. Tapi bagaimana pun juga untuk menjaga kelangsungan kebutuhan sinkronisasi yang tidak dapat di-preemptive dari kernel, penerapan SMP ini menerapkan aturan dimana hanya satu processor yang dapat dieksekusi dengan kode mode kernel pada suatu saat. SMP menggunakan kernel spinlock tunggal untuk menjalankan aturan ini. Spinlock ini tidak memunculkan permasalahan untuk pekerjaan yang banyak menghabiskan waktu untuk menunggu proses komputasi, tapi untuk pekerjaan yang melibatkan banyak aktifitas kernel, spinlock dapat menjadi sangat mengkhawatirkan.

Sebuah proyek yang besar dalam pengembangan kernel Linux 2.1 adalah untuk menciptakan penerapan SMP yang lebih masuk akal, dengan membagi kernel spinlock tunggal menjadi banyak kunci yang masing-masing melindungi terhadap masuknya kembali sebagian kecil data struktur kernel. Dengan menggunakan teknik ini, pengembangan kernel yang terbaru mengizinkan banyak processor untuk dieksekusi oleh kode mode kernel secara bersamaan.

Hal ini berguna untuk melihat di mana SMP arsitektur muat ke dalam kategori keseluruhan paralel prosesor. Sebuah taksonomi yang menyoroti sistem prosesor paralel pertama kali diperkenalkan oleh Flynn [FLYN72] masih merupakan cara paling umum mengkategorikan sistem tersebut. Flynn
diusulkan dengan kategori sebagai berikut sistem komputer:
instruksi tunggal data tunggal (SISD) stream: Sebuah prosesor tunggal menjalankan sebuah aliran instruksi untuk beroperasi pada data yang tersimpan dalam memori tunggal.

Single instruksi multiple data (SIMD) stream: Sebuah mesin tunggal instruksi mengontrol eksekusi simultan dari sejumlah elemen pengolahan pada dasar berbaris. Setiap elemen pemrosesan memiliki memori data yang terkait, sehingga bahwa setiap instruksi dieksekusi pada satu set data yang berbeda oleh berbagai prosesor. Array prosesor vektor dan termasuk dalam kategori ini.
Beberapa instruksi data tunggal (MISD) stream: Sebuah urutan data ditransmisikan ke satu set prosesor, masing-masing melaksanakan instruksi yang berbeda urutan. Struktur ini tidak pernah dilaksanakan.
Beberapa instruksi multiple data (MIMD) stream: Satu set prosesor secara simultan mengeksekusi urutan instruksi yang berbeda pada set data yang berbeda.

Organisasi SMP

Ada multiprosesor, masing-masing berisi kontrol unit sendiri, unit aritmatika-logika, dan register. Setiap prosesor memiliki akses ke memori utama bersama dan perangkat I / O melalui beberapa bentuk mekanisme interkoneksi; bus bersama adalah fasilitas umum. Itu prosesor dapat berkomunikasi satu sama lain melalui memori (pesan dan status informasi yang tersisa dalam ruang alamat bersama-sama). Hal ini juga dapat dibuat untuk prosesor untuk pertukaran sinyal secara langsung. memori ini sering diselenggarakan simultan sehingga akses ganda untuk blok terpisah dari memori yang mungkin. Pada komputer modern, prosesor umumnya memiliki setidaknya satu tingkat cache memori yang swasta untuk prosesor. Penggunaan cache ini memperkenalkan beberapa pertimbangan desain baru. Karena setiap cache lokal berisi gambar sebagian utama memori, jika sebuah kata berubah dalam satu cache, itu menurut pikiran bisa membatalkan kata dalam cache lain. Untuk mencegah hal ini, prosesor lain harus diberitahu bahwa pembaruan telah terjadi. Masalah ini dikenal sebagai masalah koherensi cache dan biasanya dibahas dalam perangkat keras daripada oleh OS.7

Multiprosesor Sistem Operasi Pertimbangan Desain

Sebuah sistem operasi SMP mengelola sumber daya prosesor dan komputer lainnya sehingga pengguna dapat melihat sistem dengan cara yang sama sebagai sistem uniprocessor multiprogramming. Seorang pengguna dapat membangun aplikasi yang menggunakan beberapa proses atau beberapa benang dalam proses tanpa memperhatikan apakah prosesor tunggal atau beberapa prosesor akan tersedia. Jadi multiprosesor OS harus menyediakan semua fungsi sistem multiprogramming ditambah fitur-fitur tambahan untuk mengakomodasi beberapa prosesor. Isu-isu kunci perancangan meliputi:
simultan bersamaan proses atau thread: Kernel rutinitas perlu reentrant untuk memungkinkan beberapa prosesor untuk menjalankan kode kernel yang sama simultneously. Dengan prosesor menjalankan beberapa bagian yang sama atau berbeda dari kernel, kernel tabel dan struktur manajemen harus dikelola dengan baik untuk menghindari jalan buntu atau operasi yang tidak valid.
Penjadwalan: Penjadwalan dapat dilakukan oleh prosesor, jadi konflik harus dihindari. Jika kernel-tingkat multithreading digunakan, maka ada kesempatan untuk jadwal beberapa benang dari proses yang sama secara bersamaan pada beberapa prosesor. Multiprosesor penjadwalan diperiksa dalam Bab 10.
Sinkronisasi: Dengan beberapa proses yang aktif memiliki akses yang potensial berkaitan alamat ruang bersama atau bersama I / O sumber daya, perhatian harus diambil untuk memberikan efektif sinkronisasi. Sinkronisasi adalah fasilitas yang saling memaksa pengecualian dan acara pemesanan. Mekanisme yang umum digunakan dalam sinkronisasi multiprosesor sistem operasi adalah kunci, dijelaskan dalam Bab 5.

Manajemen memori: Memori manajemen pada multiprosesor harus berurusan dengan semua masalah yang ditemukan pada komputer uniprocessor dan dibahas dalam Bagian Tiga. Selain itu, perlu OS mengeksploitasi paralelisme perangkat keras yang tersedia, seperti kenangan multiported, untuk mencapai kinerja terbaik. paging ini mekanisme pada prosesor yang berbeda harus dikoordinasikan untuk menegakkan konsistensi ketika beberapa prosesor berbagi halaman atau segmen dan memutuskan pada halaman penggantian.

Keandalan dan toleransi kesalahan: OS harus menyediakan degradasi anggun wajah kegagalan prosesor. Scheduler dan bagian-bagian lain dari OS harus mengakui kehilangan prosesor dan merestrukturisasi manajemen sesuai tabel.
Karena OS multiprocessor masalah desain umumnya melibatkan ekstensi untuk solusi untuk multiprogramming uniprocessor masalah desain, kita tidak memperlakukan multiprosesor sistem operasi terpisah.

sumber

William Stallings.2001.THREADS, SMP, AND MICROKERNELS, Fourth Edition. Prentice Hall.

Anggota Kelompok

Joko Saputra (08.04.111.00019)

Lynda Octavia S (08.04.111.00120)

Rendra Rizky P(08.04.111.00017)