24
Rahmady Liyantanto [email protected] liyantanto.wordpress.com Sistem Operasi D3 Manajemen Informatika Universitas Trunojoyo

Rahmady Liyantanto [email protected] liyantanto.wordpress fileuntuk menyelesaikan tugasnya. ... ¡ Sistem Operasi mengeksekusi proses dengan dua cara yaitu Batch System yang mengeksekusi

  • Upload
    vukhue

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Rahmady [email protected]

Sistem Operasi

D3 Manajemen Informatika Universitas Trunojoyo

¡ Managemen Proses¡ Aktivitas Managemen Proses¡ Pembentukan Proses¡ Terminasi Proses¡ Status Proses¡ Process Control Block¡ Konsep Thread

¡ Proses adalah sebuah program yang sedang dieksekusi.Sebuah proses membutuhkan beberapa sumber dayauntuk menyelesaikan tugasnya.

¡ Sumber daya tersebut dapat berupa CPU time, memori,berkas-berkas, dan perangkat-perangkat I/O.

¡ Sistem operasi mengalokasikan sumber daya-sumberdaya tersebut saat proses itu diciptakan atau sedangdiproses/dijalankan.

¡ Ketika proses tersebut berhenti dijalankan, sistemoperasi akan mendapatkan kembali semua sumber dayayang bisa digunakan kembali.

¡ Proses tidak hanya sekedar suatu kode program (textsection), melainkan meliputi beberapa aktivitas yangbersangkutan seperti program counter dan stack.

¡ Sebuah proses juga melibatkan stack yang berisi datasementara (parameter fungsi/metode, return address, danvariabel lokal) dan data section yang menyimpan variabel-variabel global.

¡ Sistem Operasi mengeksekusi proses dengan dua cara yaituBatch System yang mengeksekusi jobs dan Time-sharedSystem yang mengatur pengeksekusian program pengguna(user) atau tasks.

¡ Membuat dan menghapus proses pengguna dansistem proses.

¡ Menunda atau melanjutkan proses.¡ Menyediakan mekanisme untuk proses sinkronisasi.¡ Menyediakan mekanisme untuk proses komunikasi.¡ Menyediakan mekanisme untuk penanganan

deadlock.

¡ Saat komputer berjalan, terdapat banyak prosesyang berjalan secara bersamaan. Sebuah prosesdibuat melalui system call create-process membentukproses turunan (child process) yang dilakukan olehproses induk parent process. Proses turunan tersebutjuga mampu membuat proses baru sehinggakesemua proses-proses ini pada akhirnyamembentuk pohon proses.

¡ Ada dua kemungkinan bagaimana jalannya(running) proses indukà system call fork danturunan berjalan (running)à system call exec.

¡ Suatu proses diterminasi ketika prosestersebut telah selesai mengeksekusi perintahterakhir serta meminta sistem operasi untukmenghapus perintah tersebut denganmenggunakan system call exit. Pada saat itu,proses dapat mengembalikan data keluarankepada proses induk-nya melalui system callwait.

¡ Semua sumber-daya yang digunakan olehproses akan dialokasikan kembali oleh sistemoperasi agar dapat dimanfaatkan oleh proseslain. Suatu proses juga dapat diterminasidengan sengaja oleh proses lain melaluisystem call abort. Biasanya proses indukmelakukan hal ini pada turunannya.

¡ Alasan terminasi tersebut seperti:¡ Turunan melampaui penggunaan sumber-daya

yang telah dialokasikan.¡ Task yang ditugaskan kepada turunan tidak lagi

diperlukan.¡ Proses induk selesai, dan sistem operasi tidak

mengizinkan proses turunan untuk tetap berjalan.Jadi, semua proses turunan akan berakhir pula. Halini yang disebut cascading termination.

Proses dapat memiliki tiga status utama yaitu:¡ Running: status yang dimiliki pada saat instruksi-instruksi dari

sebuah proses dieksekusi.¡ Waiting: status yang dimiliki pada saat proses menunggu

suatu sebuah event seperti proses M/K.¡ Ready: status yang dimiliki pada saat proses siap untuk

dieksekusi oleh prosesor.Terdapat dua status tambahan, yaitu saat pembentukan danterminasi:¡ New: status yang dimiliki pada saat proses baru saja dibuat.¡ Terminated: status yang dimiliki pada saat proses telah selesai

dieksekusi.

¡ Hanya satu proses yang dapat berjalan pada prosesor manapun pada satu waktu. Namun, banyakproses yang dapatberstatus Ready atau Waiting.

¡ Ada tiga kemungkinan bila sebuah proses memiliki statusRunning:

1. Jika program telah selesai dieksekusiàTerminated.2. Jika waktu yang disediakan oleh OS untuk proses tersebut

sudah habis (interrupt)à Ready.3. Jika suatu event terjadi pada saat proses dieksekusi (seperti

ada permintaan M/K) maka proses tersebut akanmenunggu event tersebut selesaiàWaiting.

PCB berisikan banyak bagian dari informasi yang berhubungandengan sebuah proses yang bisa pesifik, termasuk hal-hal dibawah ini:¡ Status proses: status mungkin, new, ready, running, waiting,

halted, dan juga banyak lagi.¡ Program counter: suatu stack yang berisi alamat dari instruksi

selanjutnya untuk dieksekusi untuk proses ini.¡ CPU register: Register bervariasi dalam jumlah dan jenis,

tergantung pada rancangan komputer.¡ Informasi manajemen memori: Informasi ini dapat termasuk

suatu informasi sebagai nilai dari dasar dan batas register,tabel page/halaman, atau tabel segmen tergantung padasistem memori yang digunakan oleh sistem operasi.

¡ Informasi pencatatan: Informasi ini termasuk jumlah dariCPU dan waktu riil yang digunakan, batas waktu, jumlahakun jumlah job atau proses, dan banyak lagi.

¡ Informasi status M/K: Informasi termasuk daftar dariperangkat M/K yang di gunakan pada proses ini, suatu daftarberkas-berkas yang sedang diakses dan banyak lagi.

¡ PCB hanya berfungsi sebagai tempat penyimpananinformasi yang dapat bervariasi dari proses yang satudengan yang lain.

¡ Sejauh ini, proses merupakan sebuah program yangmengeksekusi thread tunggal. Kendali thread tunggal inihanya memungkinkan proses untuk menjalankan satutugas pada satu waktu.

¡ Banyak sistem operasi modern telah memiliki konsepyang dikembangkan agar memungkinkan sebuah prosesuntuk mengeksekusi multi-threads.

¡ Thread merupakan unit dasar dari penggunaan CPU, yangterdiri dari Thread_ID, program counter,register set, danstack.

¡ Sebuah thread berbagi code section, data section,dan sumber daya sistem operasi dengan Threadlain yang dimiliki oleh proses yang sama.

¡ Thread adalah sebuah alur kontrol dari sebuahproses. Suatu proses yang multithreadedmengandung beberapa perbedaan alur kontroldengan ruang alamat yang sama.

1. Responsif. Aplikasi interaktif menjadi tetap responsif meski punsebagian dari program sedang diblok atau melakukan operasi yangpanjang kepada pengguna.

2. Berbagi sumber daya. Thread berbagi memori dan sumber dayadengan thread lain yang dimiliki oleh proses yang sama.

3. Ekonomis. Pembuatan sebuah proses memerlukan dibutuhkanpengalokasian memori dan sumber daya. Alternatifnya adalahdengan penggunaan thread, karena thread berbagi memori dansumber daya proses yang memilikinya maka akan lebih ekonomisuntuk membuat dan context switch thread.

4. Utilisasi arsitektur multiprocessor. Keuntungan dari multithreadingdapat sangat meningkat pada arsitektur multiprocessor, dimanasetiap thread dapat berjalan secara pararel di atas processor yangberbeda.

¡ Thread PenggunaThread pengguna didukung kernel serta diimplementasikandengan pustaka thread pada tingkatan pengguna. Pustakamenyediakan fasilitas untuk pembuatan thread, penjadwalanthread, dan manajemen thread tanpa dukungan dari kernel.¡ Thread KernelThread kernel didukung langsung oleh sistem operasi.Pembuatan, penjadwalan, dan manajemen thread dilakukan olehkernel pada kernel space. Karena pengaturan thread dilakukanoleh sistem operasi maka pembuatan dan pengaturan kernelthread lebih lambat dibandingkan user thread.

1. Model Many-to-One: memetakan beberapapengguna level thread hanya ke satu buah kernelthread.

2. Model One-to-One: memetakan setiap threadpengguna ke dalam satu kernel thread berakhir.

3. Model Many-to-Many: mengizinkan pengembanguntuk membuat thread pengguna sebanyakmungkin, konkurensi tidak dapat tercapai karenahanya satu thread yang dapat dijadwalkan olehkernel dalam satu waktu.

¡ Thread cancellation adalah tugas untukmemberhentikan thread sebelum ia menyelesaikantugasnya. Thread yang akan diberhentikan disebuttarget thread.

¡ Pemberhentian target thread dapat terjadi melalui duacara yang berbeda:

1. Asynchronous cancellation: suatu thread seketika itu jugamemberhentikan target thread.

2. Deffered cancellation: target thread secara periodikmemeriksa apakah dia harus berhenti, cara inimemperbolehkan target thread untuk memberhentikandirinya sendiri secara terurut.

¡ Thread Pools adalah cara kerja dengan membuatbeberapa thread pada proses startup danmenempatkan mereka ke pools.

¡ Keuntungan Thread Pools• Biasanya lebih cepat untuk melayani permintaan

dengan thread yang ada dibanding denganmenunggu thread baru dibuat.

• Thread pool membatasi jumlah thread yang ada padasuatu waktu. Hal ini penting pada sistem yang tidakdapat mendukung banyak thread yang berjalansecara concurrent