28
Kelompok 3: 1. 13505057 - Tina Yuliani Ayuningsih 2. 13505071 - Sindy Gita Ratri 3. 13505089 - Shieny Aprilia 4. 13505119 - Nessya Callista Proses di Linux

Proses di Linux

  • Upload
    rex

  • View
    47

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Proses di  Linux

Kelompok 3:1. 13505057 - Tina Yuliani Ayuningsih 2. 13505071 - Sindy Gita Ratri 3. 13505089 - Shieny Aprilia 4. 13505119 - Nessya Callista

Proses di Linux

Page 2: Proses di  Linux

Apa itu proses?

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

Page 3: Proses di  Linux

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.

Page 4: Proses di  Linux

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.

Page 5: Proses di  Linux

Scheduling proses

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

Page 6: Proses di  Linux

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.

Page 7: Proses di  Linux

klasifikasi proses:

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

Page 8: Proses di  Linux

Alternatif klasifikasi proses: 1. Interactive processes

berinteraksi secara konstan dengan user contoh program interaktif: command

shells, text editor,aplikasi berbasis grafik

Page 9: Proses di  Linux

2. Batch processes Tidak memerlukan interaksi dengan

user, kebanyakan berjalan di background

contoh program batch: programming language compiler, database search engine, scientific computation.

Page 10: Proses di  Linux

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.

Page 11: Proses di  Linux

syscall yang berhubungan dengan scheduling

Page 12: Proses di  Linux

scheduling algorithm 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

Page 13: Proses di  Linux

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

Page 14: Proses di  Linux

Di-invoke melalui 2 cara:

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

Page 15: Proses di  Linux

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.

Page 16: Proses di  Linux

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

Page 17: Proses di  Linux

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( )

Page 18: Proses di  Linux

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

Page 19: Proses di  Linux

Process Switching

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

Page 20: Proses di  Linux

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

Page 21: Proses di  Linux

Prinsip umum - simpan state dari old process - load state dari proses baru yang telah

disimpan

Page 22: Proses di  Linux

Elemen - elemen switching 1. hardware context 2. task state segment 3. switching 4. save FPU, MMX dan XMM registers

Page 23: Proses di  Linux

Hardware context

- kumpulan dari data yang harus di load ke register sebelum proses melanjutkan eksekusinya di CPU

- disimpan di process descriptor dan di Kernel Mode

Page 24: Proses di  Linux

Task state segment 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

Page 25: Proses di  Linux

Switching

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

Page 26: Proses di  Linux

switch_to macro

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

last

Page 27: Proses di  Linux

save FPU, MMX dan XMM registers

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

Page 28: Proses di  Linux

Sekian dan terima kasih

Ada pertanyaan?