Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Proses di Linux.  Proses adalah satuan eksekusi program  Proses di Linux preemptive saat:  1. Waktu kuantumnya telah habis  2. ada proses baru yang.

Presentasi serupa


Presentasi berjudul: "Proses di Linux.  Proses adalah satuan eksekusi program  Proses di Linux preemptive saat:  1. Waktu kuantumnya telah habis  2. ada proses baru yang."— Transcript presentasi:

1 Proses di Linux

2  Proses adalah satuan eksekusi program  Proses di Linux preemptive saat:  1. Waktu kuantumnya telah habis  2. ada proses baru yang masuk ke state TASK_RUNNING dan prioritasnya lebih tinggi dibandingkan dengan prioritas current proses

3  Proses yang baru->logical copy address space parent, mengeksekusi kode 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.

4  linux menggunakan lightweight process yang mendukung multithreaded application.  Umumnya, 2 lightweight process dapat men- share resource yang sama, seperti address space. Ketika 1 proses memodifikasi shared resource, proses lain dapat langsung melihat perubahannya.  Tentunya dibutuhkan sinkronisasi saat mengakses shared resource tsb.

5  linux scheduling: berdasar teknik time- sharing -> beberapa proses berjalan dalam time multiplexing karena CPU time dibagi menjadi potongan-potongan untuk setiap runnable process.

6  scheduling policy: aturan-aturan yang digunakan untuk menentukan kapan dan bagaimana memilih proses yang baru untuk dijalankan.  scheduling policy juga berdasar pada ranking proses berdasar prioritas  Di linux, prioritas proses bersifat dinamik  Scheduler menjaga proses mana yang sedang berjalan dan menyesuaikan prioritas secara periodik.

7  Saat berbicara tentang scheduling, proses diklasifikasikan sebagai IO Bound dan CPU Bound.

8  1. Interactive processes  berinteraksi secara konstan dengan user  contoh program interaktif: command shells, text editor,aplikasi berbasis grafik

9  2. Batch processes  Tidak memerlukan interaksi dengan user, kebanyakan berjalan di background  contoh program batch: programming language compiler, database search engine, scientific computation.

10  3. Real-time processes  memerlukan scheduling yang cukup rumit  proses jenis ini tidak pernah diblok oleh proses lain yang prioritasnya rendah  contoh program realtime: video and sound applications, robot controllers, dan programs yang mengumpulkan data dari physical sensors.

11

12  Scheduling algorithm adalah instruksi/kode yang mengimplmentasikan scheduling policy yang diberikan  struktur yang paling penting untuk scheduling adalah task_struct  informasi yang tersimpan di dalam task struct digunakan untuk me-restore status proses baru untuk menjalankan dan memberikan kontrol sistem ke proses tersebut

13  scheduler mengalokasikan CPU time untuk runnable processes melalui informasi di task struct  Scheduling terjadi saat schedule(), yang bertujuan untuk menemukan proses dalam queue meng-assign ke CPU

14  1. Direct invocation of schedule()  Terjadi ketika: ▪ Current process terblok karena menunggu resource tertentu ▪  current process diambil dari ready queue kemudian diletakkan di appropriate wait queue, statusnya diubah menjadi: TASK_INTERRUPTIBLE atau TASK_UNINTERRUPTIBLE ▪ Ketika resource yang diinginkan telah tersedia, proses akan dibangunkan dan di-remove dari wait queue

15  2. Lazy invocation of schedule()  Terjadi ketika: ▪ Current process telah menggunakan kuantumnya, hal ini dicek di: update_process_times() ▪ Proses ditambahkan ke ready queue dan prioritasnya lebih tinggi daripada proses yg sedang dijalankan, hal ini dicek di: wake_up_process() ▪ Proses memanggil sched_yield()  Lazy invocation menggunakan need_resched flag dari process descriptor dan akan menyebabkan schedule() dipanggil kemudian.

16  linux scheduling algorithm bekerja dengan membagi CPU time menjadi epoch.  dalam 1 epoch, tiap proses memiliki waktu kuantum yang durasinya dihitung ketika epoch dimulai  proses hanya menggunakan kuantum ketika sedang mengakses CPU, sedangkan saat proses menunggu IO, kuantum tidak digunakan

17  Sebuah proses berakhir ketika semua runnable process telah menggunakan semua kuantumnya  umumnya, proses yang berbeda memiliki waktu kuantum yang berbeda  tiap proses memiliki base-time quantum, yakni nilai kuantum waktu yang di-assign oleh scheduler ke proses jika telah menyelesaikan kuantum di epoch sebelumnya.  user dapat mengubah base-time quantum proses mereka dengan menggunakan syscall nice( ) dan setpriority( )

18  untuk memilih proses mana yang akan dijalankan berikutnya,ada 2 jenis prioritas:  1. Prioritas static-> untuk proses realtime  2. Prioritas dinamik->untuk semua proses lainnya  Prioritas statik dari proses real time selalu lebih tinggi daripada prioritas dinamik proses yg konvensional  proses yang konvensional baru akan dijalankan jika sudah tidak ada lagi proses real-time yang dijalankan

19  terjadi di Kernel Mode  kontrol eksekusi dari proses, dimana kernel dapat menghentikan eksekusi dari proses yang sedang berjalan di CPU dan melanjutkan proses lain yang telah dihentikan sebelumnya

20  Switching dibutuhkan karena :  1. Jumlah proses lebih banyak daripada jumlah CPU  2. Diperlukan cara untuk membagi waktu CPU  3. Untuk multiprocessing/tasking  4. Komputer lebih produktif

21  Prinsip umum  - simpan state dari old process  - load state dari proses baru yang telah disimpan

22  1. hardware context  2. task state segment  3. switching  4. save FPU, MMX dan XMM registers

23  - kumpulan dari data yang harus di load ke register sebelum proses melanjutkan eksekusinya di CPU  - disimpan di process descriptor dan di Kernel Mode

24  tipe segment khusus pada arsitektur 80x86 untuk menyimpan hardware context  dibutuhkan oleh CPU karena :  mengambil address dari Kernel mode stack dari TSS  akses I/O permission bitmap

25  1. switch page global directory  2. switch kernel mode stack  3. switch hardware context

26  dijalankan oleh fungsi schedule()  memiliki tiga parameter prev, next, last

27  80x86 tidak menyimpan register FPU dan XMM secara otomatis  instruksi MMX beroperasi di register FPU  kerugian : tidak dapat menggabungkan instruksi floating-point dengan instruksi MMX  keuntungan : kode untuk menyimpan FPU dapat digunakan untuk menyimpan status MMX

28 Ada pertanyaan?


Download ppt "Proses di Linux.  Proses adalah satuan eksekusi program  Proses di Linux preemptive saat:  1. Waktu kuantumnya telah habis  2. ada proses baru yang."

Presentasi serupa


Iklan oleh Google