280 likes | 453 Views
Proses di Linux. Kelompok 3: 1. 13505057 - Tina Yuliani Ayuningsih 2. 13505071 - Sindy Gita Ratri 3. 13505089 - Shieny Aprilia 4. 13505119 - Nessya Callista. Apa itu proses ?. Proses adalah satuan eksekusi program Proses di Linux preemptive saat : 1. Waktu kuantumnya telah habis
E N D
Prosesdi Linux Kelompok 3:1. 13505057 - Tina YulianiAyuningsih2. 13505071 - SindyGitaRatri3. 13505089 - ShienyAprilia4. 13505119 - NessyaCallista
Apaituproses? • Proses adalah satuan eksekusi program • Prosesdi Linux preemptive saat: • 1. Waktukuantumnyatelahhabis • 2. adaprosesbaru yang masukke state TASK_RUNNING danprioritasnyalebihtinggidibandingkandenganprioritas current proses
Proses yang baru->logical copy address space parent, mengeksekusikode yang sama dengan parent • Meskipun parent dan child men-share halaman yang mengandung program kode(text), namun memiliki data(stack dan heap) yang terpisah, sehingga perubahan oleh child ke lokasi memori tidak dapat diketahui oeh parent, dan begitu lah sebaliknya.
linuxmenggunakan lightweight process yang mendukung multithreaded application. • Umumnya, 2 lightweight process dapat men-share resource yang sama, seperti address space. Ketika 1 prosesmemodifikasi shared resource, proses lain dapatlangsungmelihatperubahannya. • Tentunyadibutuhkansinkronisasisaatmengakses shared resource tsb.
Scheduling proses • linux scheduling: berdasarteknik time-sharing -> beberapaprosesberjalandalam time multiplexing karena CPU time dibagimenjadipotongan-potonganuntuksetiaprunnable process.
scheduling policy: aturan-aturan yang digunakanuntukmenentukankapandanbagaimanamemilihproses yang baruuntukdijalankan. • scheduling policy jugaberdasarpada ranking prosesberdasarprioritas • Di linux, prioritasprosesbersifatdinamik • Scheduler menjagaprosesmana yang sedangberjalandanmenyesuaikanprioritassecaraperiodik.
klasifikasiproses: • Saatberbicaratentang scheduling, prosesdiklasifikasikansebagai IO Bound dan CPU Bound.
Alternatifklasifikasiproses: • 1. Interactive processes • berinteraksisecarakonstandengan user • contoh program interaktif: command shells, text editor,aplikasiberbasisgrafik
2. Batch processes • Tidakmemerlukaninteraksidengan user, kebanyakanberjalandi background • contoh program batch: programming language compiler, database search engine, scientific computation.
3. Real-time processes • memerlukan scheduling yang cukuprumit • prosesjenisinitidakpernahdiblokolehproses lain yang prioritasnyarendah • contoh program realtime: video and sound applications, robot controllers, dan programs yang mengumpulkandata dari physical sensors.
scheduling algorithm • Scheduling algorithm adalahinstruksi/kode yang mengimplmentasikan scheduling policy yang diberikan • strukturyang paling pentinguntuk scheduling adalahtask_struct • informasi yang tersimpandidalam task structdigunakanuntuk me-restore status prosesbaruuntukmenjalankandanmemberikankontrolsistemkeprosestersebut
scheduler mengalokasikan CPU time untukrunnable processes melaluiinformasidi task struct • Scheduling terjadisaat schedule(), yang bertujuanuntukmenemukanprosesdalam queue meng-assign ke CPU
Di-invoke melalui 2 cara: • 1. Direct invocation of schedule() • Terjadiketika: • Current process terblokkarenamenunggu resource tertentu • current process diambildari ready queue kemudiandiletakkandi appropriate wait queue, statusnyadiubahmenjadi: TASK_INTERRUPTIBLE atau TASK_UNINTERRUPTIBLE • Ketika resource yang diinginkantelahtersedia, prosesakandibangunkandandi-remove dari wait queue
2. Lazy invocation of schedule() • Terjadiketika: • Current process telahmenggunakankuantumnya, halinidicekdi: update_process_times() • Prosesditambahkanke ready queue danprioritasnyalebihtinggidaripadaprosesygsedangdijalankan, halinidicekdi: wake_up_process() • Prosesmemanggilsched_yield() • Lazy invocation menggunakanneed_resched flag dari process descriptor danakanmenyebabkan schedule() dipanggilkemudian.
linux scheduling algorithm bekerjadenganmembagi CPU time menjadi epoch. • dalam 1 epoch, tiapprosesmemilikiwaktukuantum yang durasinyadihitungketika epoch dimulai • proseshanyamenggunakankuantumketikasedangmengakses CPU, sedangkansaatprosesmenunggu IO, kuantumtidakdigunakan
Sebuahprosesberakhirketikasemuarunnable process telahmenggunakansemuakuantumnya • umumnya, proses yang berbedamemilikiwaktukuantum yang berbeda • tiapprosesmemiliki base-time quantum, yakninilaikuantumwaktu yang di-assign oleh scheduler keprosesjikatelahmenyelesaikankuantumdi epoch sebelumnya. • user dapatmengubah base-time quantum prosesmerekadenganmenggunakansyscall nice( ) dansetpriority( )
untukmemilihprosesmana yang akandijalankanberikutnya,ada 2 jenisprioritas: • 1. Prioritas static-> untukprosesrealtime • 2. Prioritasdinamik->untuksemuaproseslainnya • Prioritasstatikdariproses real time selalulebihtinggidaripadaprioritasdinamikprosesygkonvensional • proses yang konvensionalbaruakandijalankanjikasudahtidakadalagiprosesreal-time yang dijalankan
Process Switching • terjadidi Kernel Mode • kontroleksekusidariproses, dimana kernel dapatmenghentikaneksekusidariproses yang sedangberjalandi CPU danmelanjutkanproses lain yang telahdihentikansebelumnya
Switching dibutuhkankarena : • 1. Jumlahproseslebihbanyakdaripadajumlah CPU • 2. Diperlukancarauntukmembagiwaktu CPU • 3. Untuk multiprocessing/tasking • 4. Komputerlebihproduktif
Prinsipumum • - simpan state dari old process • - load state dariprosesbaru yang telahdisimpan
Elemen - elemen switching • 1. hardware context • 2. task state segment • 3. switching • 4. save FPU, MMX dan XMM registers
Hardware context • - kumpulandari data yang harusdi load ke register sebelumprosesmelanjutkaneksekusinyadi CPU • - disimpandi process descriptor dandi Kernel Mode
Task state segment • tipe segment khususpadaarsitektur 80x86 untukmenyimpan hardware context • dibutuhkanoleh CPU karena : • mengambil address dari Kernel mode stack dari TSS • akses I/O permission bitmap
Switching • 1. switch page global directory • 2. switch kernel mode stack • 3. switch hardware context
switch_to macro • dijalankanolehfungsi schedule() • memilikitiga parameter prev, next, last
save FPU, MMX dan XMM registers • 80x86 tidakmenyimpan register FPU dan XMM secaraotomatis • instruksi MMX beroperasidi register FPU • kerugian : tidakdapatmenggabungkaninstruksi floating-point denganinstruksi MMX • keuntungan : kodeuntukmenyimpan FPU dapatdigunakanuntukmenyimpan status MMX
Sekiandanterimakasih Adapertanyaan?