PENGERTIAN KONKURENSI
Konkurensi
Konkurensi adalah
proses-proses (lebih dari satu proses) yang terjadi pada saat bersamaan.
Konkurensi merupakan landasan umum perancangan sistem operasi. Proses-proses
disebut konkuren jika proses-proses berada pada saat yang sama. Pada proses-proses
konkuren yang berinteraksi mempunyai beberapa masalah yang harus diselesaikan:
1.
Mutual Exclusion
2. Sinkronisasi
3. Deadlock
4. Startvation
2. Sinkronisasi
3. Deadlock
4. Startvation
A. Prinsip-prinsip Konkurensi
Konkurensi meliputi hal-hal sbb:
• Alokasi waktu pemroses untuk proses-proses
• Pemakaian bersama dan persaingan untuk mendapatkan
Konkurensi meliputi hal-hal sbb:
• Alokasi waktu pemroses untuk proses-proses
• Pemakaian bersama dan persaingan untuk mendapatkan
sumber daya
• Komunikasi antarproses
• Sinkronisasi aktivitas banyak proses.
• Komunikasi antarproses
• Sinkronisasi aktivitas banyak proses.
Konkurensi dapat
muncul pada konteks berbeda, antara lain:
1. Banyak aplikasi (multiple application).
Multiprogramming memungkinkan banyak proses sekaligus dijalankan. Proses-proses dapat berasal dari aplikasi-aplikasi berbeda. Pada sistem multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di sistem komputer.
2. Aplikasi terstruktur.
Perluasan prinsip perancangan modular dan pemrograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses. Dengan sekumpulan proses, maka tiap proses menyediakan satu layanan spesifik tertentu.
3. Struktur sistem operasi.
Keunggulan strukturisasi dapat juga diterapkan ke pemrograman sistem. Beberapa sistem operasi aktual yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai sekumpulan proses. Sistem operasi bermodelkan client/server menggunakan pendekatan ini.
4. Untuk Strukturisasi Satu Proses.
Saat ini untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses.
1. Banyak aplikasi (multiple application).
Multiprogramming memungkinkan banyak proses sekaligus dijalankan. Proses-proses dapat berasal dari aplikasi-aplikasi berbeda. Pada sistem multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di sistem komputer.
2. Aplikasi terstruktur.
Perluasan prinsip perancangan modular dan pemrograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai sekumpulan proses. Dengan sekumpulan proses, maka tiap proses menyediakan satu layanan spesifik tertentu.
3. Struktur sistem operasi.
Keunggulan strukturisasi dapat juga diterapkan ke pemrograman sistem. Beberapa sistem operasi aktual yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai sekumpulan proses. Sistem operasi bermodelkan client/server menggunakan pendekatan ini.
4. Untuk Strukturisasi Satu Proses.
Saat ini untuk peningkatan kinerja maka satu proses dapat memiliki banyak thread yang independen. Thread-thread tersebut harus dapat bekerjasama untuk mencapai tujuan proses.
B. Interaksi Antar Proses.
Pada sistem dengan banyak proses (kongkuren), terdapat 2 katagori interaksi, yaitu:
1. Proses-proses Saling Tidak Peduli (Independen).
Proses-proses ini tidak dimaksudkan untuk bekerja untukmencapai tujuan tertentu. Pada multiprogramming dengan proses-proses independen, dapat berupa batch atau sesi interaktif, atau campuran keduanya.
2. Proses-proses Saling Mempedulikan Secara Tidak Langsung.
Proses-proses tidak perlu saling mempedulikan identitas proses-proses lain, tapi sama-sama mengakses objek tertentu, seperti buffer masukan/keluaran. Proses-proses itu perlu bekerja sama (cooperation) dalam memakai bersama objek tertentu.
Pada sistem dengan banyak proses (kongkuren), terdapat 2 katagori interaksi, yaitu:
1. Proses-proses Saling Tidak Peduli (Independen).
Proses-proses ini tidak dimaksudkan untuk bekerja untukmencapai tujuan tertentu. Pada multiprogramming dengan proses-proses independen, dapat berupa batch atau sesi interaktif, atau campuran keduanya.
2. Proses-proses Saling Mempedulikan Secara Tidak Langsung.
Proses-proses tidak perlu saling mempedulikan identitas proses-proses lain, tapi sama-sama mengakses objek tertentu, seperti buffer masukan/keluaran. Proses-proses itu perlu bekerja sama (cooperation) dalam memakai bersama objek tertentu.
C. Kesulitan-kesulitan yang ditimbulkan konkurensi
Masalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi. Beberapa kemungkinan yang terjadi tidak dapat diprediksi seperti:
1. Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:
a) Aktivitas proses-proses lain
b) Cara sistem operasi menangani interupsi
c) Kebijaksanaan penjadwalan yang dilakukan oleh sistem
Masalah yang dihadapi proses-proses kongkurensi pada multiprogramming dan multiprocessing serupa, yaitu: kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi. Beberapa kemungkinan yang terjadi tidak dapat diprediksi seperti:
1. Kecepatan proses pada sistem tergantung pada beberapa hal, antara lain:
a) Aktivitas proses-proses lain
b) Cara sistem operasi menangani interupsi
c) Kebijaksanaan penjadwalan yang dilakukan oleh sistem
operasi.
2.
Beberapa kesulitan yang dapat muncul, di antaranya adalah:
a) Pemakaian bersama sumber daya global.
Jika dua proses menggunakan variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis.
b) Pengelolaan alokasi sumber daya agar optimal
Jika proses A meminta suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend sebelum menggunakan kanal itu. Jika sistem operasi mengunci kanal tersebut dan orang lain tidak dapat menggunakannya, maka akan terjadi inefisiensi.
c) Pencarian kesalahan pemrograman.
Pencarian kesalahan pada pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen.
a) Pemakaian bersama sumber daya global.
Jika dua proses menggunakan variabel global yang sama, serta keduanya membaca dan menulis variabel itu maka urutan terjadinya pembacaan dan penulisan terhadap variabel itu menjadi kritis.
b) Pengelolaan alokasi sumber daya agar optimal
Jika proses A meminta suatu kanal masukan/keluaran tertentu dan dapat terjadi kemudian proses A di suspend sebelum menggunakan kanal itu. Jika sistem operasi mengunci kanal tersebut dan orang lain tidak dapat menggunakannya, maka akan terjadi inefisiensi.
c) Pencarian kesalahan pemrograman.
Pencarian kesalahan pada pemrograman kongkuren lebih sulit dibanding pencarian kesalahan pada program-program sekuen.
3.
Proses-proses konkuren mengharuskan beberapa hal yang harus ditangani,
antara lain:
a) Sistem operasi harus mengetahui proses-proses yang aktif
b) Sistem operasi harus mengalokasikan dan mendealokasikan beragam sumber daya untuk tiap proses aktif. Sumber daya yang harus dikelola, antara lain:
(1) Waktu pemroses.
(2) Memori
(3) Berkas-berkas
(4) Perangkat I/O
c) Sistem operasi harus memproteksi data dan sumber daya
a) Sistem operasi harus mengetahui proses-proses yang aktif
b) Sistem operasi harus mengalokasikan dan mendealokasikan beragam sumber daya untuk tiap proses aktif. Sumber daya yang harus dikelola, antara lain:
(1) Waktu pemroses.
(2) Memori
(3) Berkas-berkas
(4) Perangkat I/O
c) Sistem operasi harus memproteksi data dan sumber daya
fisik masing-masing proses dari gangguan proses-proses
lain.
d) Hasil-hasil proses harus independen terhadap kecepatan
d) Hasil-hasil proses harus independen terhadap kecepatan
relatif proses-proses lain dimana eksekusi dilakukan.
D. Pokok Penyelesaian Masalah Kongkurensi
Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi 2, yaitu:
1. Mengasumsikan adanya memori yang digunakan bersama
2. Tidak mengasumsikan adanya memori yang digunakan bersama.
Adanya memori bersama lebih memudahkan penyelesaian masalah kongkurensi. Metode memori bersama dapat dipakai untuk singleprocessor ataupun multiprocessor yang mempunyai memori bersama. Penyelesaian ini tidak dapat digunakan untuk multiprocessor tanpa memori bersama atau untuk sistem tersebar.
D. Pokok Penyelesaian Masalah Kongkurensi
Pada dasarnya penyelesaian masalah kongkurensi terbagi menjadi 2, yaitu:
1. Mengasumsikan adanya memori yang digunakan bersama
2. Tidak mengasumsikan adanya memori yang digunakan bersama.
Adanya memori bersama lebih memudahkan penyelesaian masalah kongkurensi. Metode memori bersama dapat dipakai untuk singleprocessor ataupun multiprocessor yang mempunyai memori bersama. Penyelesaian ini tidak dapat digunakan untuk multiprocessor tanpa memori bersama atau untuk sistem tersebar.
Strategi untuk menghadapi deadlock dapat
dibagi menjadi tiga pendekatan, yaitu:
1. Mengabaikan adanya deadlock.
2. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi. Metode Menghindari deadlock, yaitu mengizinkan empat kondisi deadlock, tetapi menghentikan setiap proses yang kemungkinan mencapai deadlock.
3. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua metode yang saling mendukung, yaitu:
1. Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi.
2. Pemulihan deadlock, mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya.
1. Mengabaikan adanya deadlock.
2. Memastikan bahwa deadlock tidak akan pernah ada, baik dengan metode Pencegahan, dengan mencegah empat kondisi deadlock agar tidak akan pernah terjadi. Metode Menghindari deadlock, yaitu mengizinkan empat kondisi deadlock, tetapi menghentikan setiap proses yang kemungkinan mencapai deadlock.
3. Membiarkan deadlock untuk terjadi, pendekatan ini membutuhkan dua metode yang saling mendukung, yaitu:
1. Pendeteksian deadlock, untuk mengidentifikasi ketika deadlock terjadi.
2. Pemulihan deadlock, mengembalikan kembali sumber daya yang dibutuhkan pada proses yang memintanya.
Pengertian Deadlock
Deadlock adalah suatu kondisi dimana
dua proses atau lebih tidak dapat meneruskan eksekusinya
Resources (1)
Contoh resources sistem komputern
printersn
tape drivesn
Proses-proses membutuhkan akses ke resource secara teraturn
Contoh 1 : suatu proses memegang (hold) resource A dan meminta resource Bn
pada saat yang sama proses lain sedang memegang resource B dan meminta resource An
masing-masing proses melakukan block, dalam kondisi seperti ini terjadi deadlockn
Resources (2)
Contoh 2 :n
semaphores A dan B, di-inisialisasi 1n
P0 P1
wait (A); wait(B)
wait (B); wait(A)
. .
. .
. .
signal(A) signal(B)
signal(B) signal(A)
Resources (3)
Contoh 3 :n
Bridge Crossingn
Traffic hanya satu arahn
Masing-masing bagian jembatan dapat digambarkan sebagai resource.n
Jika deadlock terjadi, dapat diselesaikan dengan cara satu mobil mundur ke belakang.n
Beberapa mobil harus kembali jika terjadi deadlockn
Memungkinkan terjadinya starvationn
Resources (4)
Deadlock terjadi ketika…n
proses-proses diberikan hak akses secara eksklusif ke devices (resources)n
Preemptable resourcesn
dapat diambil dari proses tanpa menimbulkan efek yang burukn
Nonpreemptable resourcesn
akan menyebabkan proses gagal jika diambiln
4 Kondisi Terjadinya Deadlock
Kondisi Mutual exclusionn
hanya satu proses dalam satu waktu yang dapat memegang (hold) resourcen
Hold and wait conditionn
suatu proses memegang satu resource dan me-request resource yang lainn
No preemption conditionn
resource hanya dapat di-release setelah proses menyelesaikan task-nya pada resourcen tersebut
Circular wait conditionn
Masing-masing proses menunggu resource yang digunakan oleh proses lain secara berantai.n
n Terdapat himpunan proses yang sedang menunggu {P0, P1, …, P0} sedemikian sehingga P0 menunggu resource yang dipegang oleh P1 , P1 sedang menunggu resource yang dipegang oleh P2, …, Pn–1 . Pn–1 menunggu resource yang dipegang oleh Pn . Dan Pn menunggu resource yang dipegang oleh P0 .
Metode-metode Penanganan Deadlocks
Memastikan bahwa sistem tidak akan pernah masuk ke dalam kondisi (state) deadlock.n
Memungkinkan sistem untuk masuk ke dalam kondisi deadlock dan kemudian melakukan recovery (pemulihan).n
Mengabaikan masalah deadlock dan membuat deadlock tidak pernah terjadi dalam sistem; digunakan pada OS umumnya (Unix).n
Metode Pencegahan Deadlock (1)
Cara pencegahan (Prevention) dari sisi permintaan (request) resources :
n Mutual Exclusion – tidak diperlukan untuk resource-resource yang di-share; harus dipegang (hold) untuk resource-resource yang tidak di-share (nonsharable resources).
Hold and Wait – harus dijaminn bahwa kapanpun suatu permintaan proses pada resource, proses tersebut tidak memegang resource yang lain.
Membutuhkan proses untukn me-request dan mengalokasikan resources sebelum memulai eksekusi, atau membolehkan proses untuk me-request resource hanya ketika proses tidak sedang memegang resource.
Utilisasi resource yang rendah memungkinkan terjadinya starvation.n
Metode Pencegahan Deadlock (2)
No Preemptionn
n Jika suatu proses yang memegang beberapa resource me-request resource yang lain yang tidak dapat secara langsung dialokasikan, maka semua resource yang sedang dipegang dibebaskan (released).
Preempted resources ditambahkan ke list resources dimana proses sedang menunggu.n
Proses akan di-restart hanya jika dapat mengambil kembali (regain) resource, juga resource yang baru yang di-request.n
Circular Waitn
n Membuat penomoran pada proses-proses yang mengakses resource. Suatu proses dimungkinkan untuk dapat meminta resource kapanpun, tetapi permintaannya harus dibuat terurut.
Syarat Langkah Kelemahan
Mutual Exclusion Spooling resource Dapat menyebabkan chaos
Hold & Wait Meminta resource diawal Sulit memperkirakan di awal dan tidak optimal
No Pre-emptive Mengambil resource di tengah jalan Hasil proses tidak akan baik
Circular Wait Penomoran permintaan resource Tidak ada penomoran yang memuaskan semua pihak
Metode Penghindaran Deadlock (1)
Memberi kesempatan ke permintaan resource yang tidak mungkin menyebabkan deadlock.n
Jika pemberian akses tidak mungkin mengarah pada deadlock, maka resource akan diberikan pada proses yang meminta.n
Jika tidak aman, proses yang meminta akan di-suspend sampai suatu waktu permintaannya aman untuk diberikan.n
Kondisi aman (safe state)n
Jika tidak terjadi deadlockn
Kondisi tidak aman (unsafe state)n
Jika tidak terdapat cara untuk memenuhi semua permintaann
Metode Penghindaran Deadlock (2)
Membutuhkan sistem yang memiliki informasi resource yang tersedia.n
Masing-masing proses memastikan jumlah maksimum resource yang diperlukan.n
Algoritma penghindaran (avoidence) deadlock memastikan tidak akan terjadi kondisi circular wait.n
n Kondisi (state) alokasi resource didefinisikan sebagai jumlah dan alokasi resource yang tersedia dan maksimum permintaan resource oleh proses.
Basic Facts
Jika sistem dalam kondisi aman (safe state) Þ tidak ada deadlock.n
Jika sistem dalam kondisi tidak aman (unsafe state) Þ kemungkinan dapat terjadi deadlockn
Pendekatan penghindaran (avoidence) memastikan bahwa sistem tidak akan pernah masuk ke dalam kondisi unsafe state.n
Deteksi dan Pemulihan Deadlock
Menentukan apakah deadlock sedang terjadi, kemudian proses-proses dan resource yang terlibat dalam deadlock tersebut.n
Setelah kondisi deadlock terdeteksi, maka langkah pemulihan deadlock dilakukan.n
Cara Pemulihan Deadlock
Ada beberapa cara untuk pemulihan deadlock :n
Menggagalkan semua proses yang deadlockn
Mem-backup semua proses yang deadlock dan me-restart semua proses tersebutn
Menggagalkan proses-proses yang deadlock secara berturut-turut hingga tidak ada deadlock.n
Menggagalkan pengalokasian resource-resource secara berturut-turut hingga tidak ada deadlock.n
Kriteria proses-proses yang akan disingkirkan :n
Memiliki waktu proses (yang telah berjalan) kecil.n
Jumlah keluaran sedikitn
Memiliki estimasi sisa waktu eksekusi terbesar.n
Jumlah total resource terkecil yang telah dialokasikann
Memiliki prioritas terkeciln
Resources (1)
Contoh resources sistem komputern
printersn
tape drivesn
Proses-proses membutuhkan akses ke resource secara teraturn
Contoh 1 : suatu proses memegang (hold) resource A dan meminta resource Bn
pada saat yang sama proses lain sedang memegang resource B dan meminta resource An
masing-masing proses melakukan block, dalam kondisi seperti ini terjadi deadlockn
Resources (2)
Contoh 2 :n
semaphores A dan B, di-inisialisasi 1n
P0 P1
wait (A); wait(B)
wait (B); wait(A)
. .
. .
. .
signal(A) signal(B)
signal(B) signal(A)
Resources (3)
Contoh 3 :n
Bridge Crossingn
Traffic hanya satu arahn
Masing-masing bagian jembatan dapat digambarkan sebagai resource.n
Jika deadlock terjadi, dapat diselesaikan dengan cara satu mobil mundur ke belakang.n
Beberapa mobil harus kembali jika terjadi deadlockn
Memungkinkan terjadinya starvationn
Resources (4)
Deadlock terjadi ketika…n
proses-proses diberikan hak akses secara eksklusif ke devices (resources)n
Preemptable resourcesn
dapat diambil dari proses tanpa menimbulkan efek yang burukn
Nonpreemptable resourcesn
akan menyebabkan proses gagal jika diambiln
4 Kondisi Terjadinya Deadlock
Kondisi Mutual exclusionn
hanya satu proses dalam satu waktu yang dapat memegang (hold) resourcen
Hold and wait conditionn
suatu proses memegang satu resource dan me-request resource yang lainn
No preemption conditionn
resource hanya dapat di-release setelah proses menyelesaikan task-nya pada resourcen tersebut
Circular wait conditionn
Masing-masing proses menunggu resource yang digunakan oleh proses lain secara berantai.n
n Terdapat himpunan proses yang sedang menunggu {P0, P1, …, P0} sedemikian sehingga P0 menunggu resource yang dipegang oleh P1 , P1 sedang menunggu resource yang dipegang oleh P2, …, Pn–1 . Pn–1 menunggu resource yang dipegang oleh Pn . Dan Pn menunggu resource yang dipegang oleh P0 .
Metode-metode Penanganan Deadlocks
Memastikan bahwa sistem tidak akan pernah masuk ke dalam kondisi (state) deadlock.n
Memungkinkan sistem untuk masuk ke dalam kondisi deadlock dan kemudian melakukan recovery (pemulihan).n
Mengabaikan masalah deadlock dan membuat deadlock tidak pernah terjadi dalam sistem; digunakan pada OS umumnya (Unix).n
Metode Pencegahan Deadlock (1)
Cara pencegahan (Prevention) dari sisi permintaan (request) resources :
n Mutual Exclusion – tidak diperlukan untuk resource-resource yang di-share; harus dipegang (hold) untuk resource-resource yang tidak di-share (nonsharable resources).
Hold and Wait – harus dijaminn bahwa kapanpun suatu permintaan proses pada resource, proses tersebut tidak memegang resource yang lain.
Membutuhkan proses untukn me-request dan mengalokasikan resources sebelum memulai eksekusi, atau membolehkan proses untuk me-request resource hanya ketika proses tidak sedang memegang resource.
Utilisasi resource yang rendah memungkinkan terjadinya starvation.n
Metode Pencegahan Deadlock (2)
No Preemptionn
n Jika suatu proses yang memegang beberapa resource me-request resource yang lain yang tidak dapat secara langsung dialokasikan, maka semua resource yang sedang dipegang dibebaskan (released).
Preempted resources ditambahkan ke list resources dimana proses sedang menunggu.n
Proses akan di-restart hanya jika dapat mengambil kembali (regain) resource, juga resource yang baru yang di-request.n
Circular Waitn
n Membuat penomoran pada proses-proses yang mengakses resource. Suatu proses dimungkinkan untuk dapat meminta resource kapanpun, tetapi permintaannya harus dibuat terurut.
Syarat Langkah Kelemahan
Mutual Exclusion Spooling resource Dapat menyebabkan chaos
Hold & Wait Meminta resource diawal Sulit memperkirakan di awal dan tidak optimal
No Pre-emptive Mengambil resource di tengah jalan Hasil proses tidak akan baik
Circular Wait Penomoran permintaan resource Tidak ada penomoran yang memuaskan semua pihak
Metode Penghindaran Deadlock (1)
Memberi kesempatan ke permintaan resource yang tidak mungkin menyebabkan deadlock.n
Jika pemberian akses tidak mungkin mengarah pada deadlock, maka resource akan diberikan pada proses yang meminta.n
Jika tidak aman, proses yang meminta akan di-suspend sampai suatu waktu permintaannya aman untuk diberikan.n
Kondisi aman (safe state)n
Jika tidak terjadi deadlockn
Kondisi tidak aman (unsafe state)n
Jika tidak terdapat cara untuk memenuhi semua permintaann
Metode Penghindaran Deadlock (2)
Membutuhkan sistem yang memiliki informasi resource yang tersedia.n
Masing-masing proses memastikan jumlah maksimum resource yang diperlukan.n
Algoritma penghindaran (avoidence) deadlock memastikan tidak akan terjadi kondisi circular wait.n
n Kondisi (state) alokasi resource didefinisikan sebagai jumlah dan alokasi resource yang tersedia dan maksimum permintaan resource oleh proses.
Basic Facts
Jika sistem dalam kondisi aman (safe state) Þ tidak ada deadlock.n
Jika sistem dalam kondisi tidak aman (unsafe state) Þ kemungkinan dapat terjadi deadlockn
Pendekatan penghindaran (avoidence) memastikan bahwa sistem tidak akan pernah masuk ke dalam kondisi unsafe state.n
Deteksi dan Pemulihan Deadlock
Menentukan apakah deadlock sedang terjadi, kemudian proses-proses dan resource yang terlibat dalam deadlock tersebut.n
Setelah kondisi deadlock terdeteksi, maka langkah pemulihan deadlock dilakukan.n
Cara Pemulihan Deadlock
Ada beberapa cara untuk pemulihan deadlock :n
Menggagalkan semua proses yang deadlockn
Mem-backup semua proses yang deadlock dan me-restart semua proses tersebutn
Menggagalkan proses-proses yang deadlock secara berturut-turut hingga tidak ada deadlock.n
Menggagalkan pengalokasian resource-resource secara berturut-turut hingga tidak ada deadlock.n
Kriteria proses-proses yang akan disingkirkan :n
Memiliki waktu proses (yang telah berjalan) kecil.n
Jumlah keluaran sedikitn
Memiliki estimasi sisa waktu eksekusi terbesar.n
Jumlah total resource terkecil yang telah dialokasikann
Memiliki prioritas terkeciln