Jumat, 13 Desember 2013

Software lockout


Dalam multiprosesor sistem komputer, software lockout adalah masalah penurunan kinerja karena menunggu kali menganggur dihabiskan oleh CPU dalam kernel -level bagian kritis . Software lockout adalah penyebab utama dari skalabilitas degradasi dalam sistem multiprosesor, berpose batas pada jumlah maksimum yang berguna prosesor. Untuk mengurangi fenomena tersebut, kernel harus dirancang untuk memiliki nya bagian penting sesingkat mungkin, karena itu membusuk setiap struktur data dalam substruktur yang lebih kecil.

Kernel-level bagian kritis
Pada kebanyakan sistem multiprosesor, masing-masing jadwal prosesor dan kontrol itu sendiri, oleh karena itu tidak ada "pengawas" prosesor, dan kernel struktur data secara global bersama, bagian dari kode yang mengakses struktur-struktur data bersama adalah bagian penting . Pilihan desain ini dibuat untuk meningkatkan scaling, keandalan dan modularitas. Contoh struktur data kernel tersebut siap daftar dan saluran komunikasi .


"Konflik" terjadi ketika lebih dari satu prosesor sedang mencoba untuk mengakses sumber daya yang sama (sebagian memori) pada waktu yang sama. Untuk mencegah ras kritis dan inkonsistensi , hanya satu prosesor ( CPU ) pada waktu tertentu diperbolehkan untuk mengakses tertentu struktur data (sebagian memori), sementara CPU lain mencoba untuk mengakses pada saat yang sama adalah terkunci-out , menunggu dalam status siaga .

Tiga kasus dapat dibedakan saat ini menunggu idle (1) yang diperlukan (2) nyaman dan (3) tidak nyaman. The menganggur menunggu diperlukan ketika akses adalah untuk daftar siap untuk tingkat rendah penjadwalan operasi. The menganggur menunggu tidak diperlukan tapi nyaman dalam hal bagian kritis untuk sinkronisasi / IPC operasi, yang membutuhkan waktu kurang dari satu context switch (executing lain proses untuk menghindari menganggur menunggu). Menganggur menunggu bukannya tidak nyaman dalam kasus bagian kritis kernel untuk manajemen perangkat , hadir dalam kernel monolitik saja. Sebuah mikrokernel bukan jatuh pada hanya dua yang pertama dari kasus di atas.

Dalam sistem multiprosesor, sebagian besar konflik adalah kernel konflik-tingkat, karena akses ke bagian level kernel kritis, dan dengan demikian periode menunggu menganggur yang dihasilkan oleh mereka memiliki dampak yang besar dalam penurunan kinerja. Kali ini menunggu menganggur meningkatkan jumlah rata-rata prosesor menganggur dan dengan demikian menurunkan skalabilitas dan efisiensi relatif .

Studi analitis
Mengambil sebagai parameter rata-rata selang waktu yang dihabiskan oleh processor di level kernel bagian kritis (L, untuk waktu dalam keadaan terkunci), dan rata-rata selang waktu yang dihabiskan oleh prosesor dalam tugas-tugas di luar bagian kritis (E), rasio L / E sangat penting dalam mengevaluasi software lockout.

Nilai-nilai khas untuk L / E berkisar 0,01-0,1. Dalam sistem dengan rasio L / E 0,05, misalnya, jika ada 15 CPU, diharapkan bahwa rata-rata 1 CPU akan selalu idle, dengan 21 CPU, 2,8 akan menganggur, dengan 40 CPU, 19 akan menganggur, dengan 41 CPU, 20 akan menganggur. Oleh karena itu menambahkan lebih dari 40 CPU untuk sistem yang akan sia-sia. Secara umum, untuk setiap nilai L / E, ada ambang batas untuk jumlah maksimum CPU yang berguna.

Mitigasi Software lockout
Untuk mengurangi degradasi kinerja perangkat lunak lockout ke tingkat yang wajar (L / E antara 0,05 dan 0,1), kernel dan / atau sistem operasi harus dirancang sesuai. Secara konseptual, solusi yang paling valid adalah untuk menguraikan setiap struktur data kernel di substruktur independen yang lebih kecil, masing-masing memiliki waktu elaborasi lebih pendek. Hal ini memungkinkan lebih dari satu CPU untuk mengakses struktur data asli.

Banyak uniprocessor sistem dengan domain perlindungan hirarkis , telah diperkirakan menghabiskan sampai 50% dari waktu melakukan "mode supervisor" operasi. Jika sistem seperti ini diadaptasi untuk multiprocessing dengan menetapkan kunci pada setiap akses ke "negara pengawas", L / E akan mudah lebih besar dari 1, sehingga sistem dengan bandwidth yang sama dari uniprocessor meskipun jumlah CPU.

Tidak ada komentar:

Posting Komentar