Pengaturan Proses Dinda Prasetia – PTKI B Proses • Proses adalah program yang sedang dieksekusi atau sofware yang sedang dilaksanakan. • Perbedaan antara program dengan proses adalah program merupakan entitas yang pasif, yaitu suatu file yang berisi kumpulan instruksi-instruksi yang disimpan di dalam disk (file executable), sedangkan proses merupakan entitas yang aktif, dengan sebuah program counter yang menyimpan alamat instruksi selanjut yang akan dieksekusi dan seperangkat sumber daya (resource) yang dibutuhkan agar sebuah proses dapat dieksekusi. Konsep Dasar Proses • Multiprogramming system Melakukan proses satu persatu secara bergantian dalam waktu yang sangat cepat (hardware level). Setiap proses mempunyai satu virtual CPU. • Pseudoparallelism Melakukan lebih dari satu pekerjaan dalam waktu yang bersamaan (user level). Hirarki Proses Pada Sistem Operasi • Create & destroy process Sistem operasi yang mendukung konsep proses, harus menyediakan suatu cara untuk membuat (create) proses dan menghilangkan (destroy) proses • FORK system call mekanisme untuk membuat (create) proses yang identik dengan proses yang memanggilnya. o Pada Unix, parent dan child process running secara parallel. o Pada DOS, parent dan child process running secara bergantian (sequential). o Process scheduler : untuk pengaturan eksekusi proses Status Proses • Meskipun tiap-tiap proses terdiri dari suatu kesatuan yang terpisah namun adakalanya prosesproses tersebut butuh untuk saling berinteraksi. Satu proses bisa dibangkitkan dari output proses lainnya sebagai input. • Pada saat proses dieksekusi, akan terjadi perubahan status. Status proses didefiniskan sebagai bagian dari aktivitas proses yang sedang berlangsung saat itu. Status Proses • Status proses terdiri dari : – New: proses sedang dibuat. – Running: proses sedang dieksekusi. – Waiting: proses sedang menunggu beberapa event yang akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal). – Ready: proses menunggu jatah waktu dari CPU untuk diproses. – Terminated: proses telah selesai dieksekusi. Penjadwalan Proses Penjadwalan adalah fungsi dasar dari sistem operasi semua resources komputer dijadwalkan sebelum digunakan. Penjadwalan CPU didasarkan pada sistem operasi yang menggunakan prinsip Multiprogramming. Penjadwalan bertugas memutuskan : Proses yang harus berjalan. Kapan dan selama berapa lama proses itu berjalan. Tipe Penjadwalan • Penjadwalan jangka pendek (short-termscheduller) Penjadwalan ini bertugas menjadwalkan alokasi pemroses diantara proses-proses ready di memori utama. • Penjadwalan jangka menengah (medium termscheduller ) Penjadwalan jangka menengah adalah menangani proses-proses swapping (aktivitas pemindahan proses yang tertunda dari memory utama ke memory sekunder). • Penjadwalan jangka panjang (long-termscheduller) Penjadwalan jangka panjang bekerja terhadap antrian batch (proses – proses dengan penggunaan sumber daya yang intensif) dan memilih batch berikutnya yang harus di eksekusi. Preemptive dan Nonpreemptive Terdapat 2 strategi penjadwalan : Penjadwalan Non Preemptive Jika proses sedang menggunakan CPU proses tersebut akan membawa CPU sampai proses tersebut melepaskannya (berhenti dalam keadaan wait). Penjadwalan Preemptive Pada saat proses sedang menggunakan CPU CPU dapat diambil alih oleh proses lain. Dalam hal ini harus selalu dilakukan perbaikan data. Kriteria Penjadwalan (1) Adil, proses-proses diperlakukan sama, dalam artian adil. Adil disini tidak berarti terdapat perlakuan yang sama kepada setiap process, melainkan terdapat beberapa variabel seperti prioritas, dll yang akan dipelajari nanti. CPU Utilization, diharapkan agar CPU selalu dalam keadaan sibuk, sehingga penggunaan CPU lebih optimal. Throughput, adalah banyaknya proses yang selesai dikerjakan dalam satu satuan waktu. Sasaran penjadwalan adalah memaksimalkan jumlah job yang diproses dalam satu satuan waktu. Kriteria Penjadwalan (2) Turn Around Time, adalah banyaknya waktu yang diperlukan untuk mengeksekusi proses, dari mulai menunggu untuk meminta tempat di memori utama, eksekusi oleh CPU dan mengerjakan I/O. Turn Around Time = waktu eksekusi + waktu tunggu. Sasaran Penjadwalan adalah meminimalkan waktu Turn Around Time. Waiting-Time, adalah waktu yang diperlukan oleh suatu proses untuk menunggu di ready queue. Sasaran Penjadwalan : meminimalkan waiting time. Response-Time, adalah waktu yang diperlukan oleh suatu proses dari minta dilayani hingga ada respon pertama menanggapi permintaan tersebut . Sasaran penjadwalan : meminimalkan waktu tanggap. Algoritma Penjadwalan • Proses yang belum mendapatkan jatah alokasi dari CPU akan mengantri di ready queue. • Algoritma Penjadwalan diperlukan untuk mengatur giliran proses-proses tersebut. • Algoritma-algoritma penjadwalan : – FCFS (First Come First Serve). – SJF (Sortest Job First). – Priority. – Round Robin. Algoritma FCFS (1) • Penjadwalan ini merupakan penjadwalan Non Preemptive. • Dalam penjadwalan FCFS (First Come First Serve) : – Proses yang pertama kali minta jatah waktu untuk menggunakan CPU akan dilayani terlebih dahulu. – Begitu proses mendapatkan jatah waktu CPU proses dijalankan sampai selesai/ sampai proses tersebut melepaskannya, yaitu jika proses tersebut berhenti atau meminta I/O. Algoritma FCFS (2) • Contoh FCFS Scheduling : Algoritma SJF (1) Mendahulukan proses dengan Burst-Time terkecil. Ada 2 Tipe : Jika ada proses P1 yang datang pada saat P0 sedang berjalan akan dilihat CPU burst P1 Preemptive, Jika CPU burst P1 lebih kecil dari sisa waktu yang dibutuhkan oleh P0 CPU ganti dialokasikan untuk P1. Non Preemptive, Akan tetap menyelesaikan P0 sampai habis CPU burstnya. Algoritma SJF (2) • Contoh SJF Scheduling Non Preemptive – Waktu kedatangan sama Algoritma SJF (3) • Contoh SJF Scheduling Non Preemptive – Waktu kedatangan tidak sama Algoritma SJF (4) • Contoh SJF Scheduling Preemptive – Waktu kedatangan tidak sama Priority Scheduling (1) Tiap proses diberi skala prioritas, proses yang mendapatkan prioritas tertinggi mendapat jatah waktu pemroses Jika beberapa proses memiliki prioritas yang sama akan digunakan algoritma FCFS Prioritas meliputi : Waktu Memori yang dibutuhkan Banyaknya file yang dibuka Perbandingan antara rata-rata I/O Burst dengan rata-rata CPU Burst Priority Scheduling (2) Algoritma Priority Scheduling dapat bersifat Preemptive atau Non Preemptive. Jika ada proses P1 yang datang pada saat P0 sedang berjalan akan dilihat prioritas P1, Jika prioritas P1>P0, maka : Pada Non Preemptive, Algoritma tetap akan menyelesaikan P0 sampai habis CPU burstnya dan meletakkan P1 pada posisi head queue. Pada Preemptive, P0 akan dihentikan dulu dan CPU ganti dialokasikan untuk P1. Priority Scheduling (3) • Contoh Priority Scheduling Round Robin (1) Konsep dasar algoritma ini menggunakan time sharing Pada dasarnya, prinsip hampir sama dengan FCFS, tapi bersifat preemptive Tiap proses akan dibatasi waktu prosesnya, yang disebut quantum time Keuntungan algoritma round robin : Adanya keseragaman waktu Kelemahannya : Jika quantum time sangat besar switching yang terjadi akan semakin sedikit (seperti FCFS) Jika quantum time terlalu kecil switching yang terjadi akan semakin banyak, sehingga banyak waktu yang terbuang Round Robin (2) Ketentuan Algoritma Round Robin adalah : Jika proses memiliki CPU Burst < Quantum Time, maka proses akan melepaskan CPU, jika telah selesai digunakan CPU dapat segera digunakan oleh proses selanjutnya Jika proses memiliki CPU Burst > Quantum Time, maka proses tersebut akan dihentikan jika sudah mencapai quantum time dan selanjutnya mengantri kembali pada posisi tail queue (ekor dari ready queue), CPU kemudian menjalankan proses berikutnya Jika quantum time belum habis dan proses menunggu suatu kejadian (selesainya operasi I/O), maka proses menjadi blocked dan CPU dialihkan ke proses lain Round Robin (3) • Contoh Round Robin Scheduling : Deadlock • Deadlock adalah keadaan dimana dua program memegang kontrol terhadap sumber daya yang dibutuhkan oleh program yang lain. Tidak ada yang dapat melanjutkan proses masing-masing sampai program yang lain memberikan sumber dayanya, tetapi tidak ada yang mengalah. • Contoh deadlock Dipersimpangan jalan Karakteristik Deadlock (1) • Mutual exclusion. Hanya ada satu proses yang boleh memakai sumber daya, dan proses lain yang ingin memakai sumber daya tersebut harus menunggu hingga sumber daya tadi dilepaskan atau tidak ada proses yang memakai sumber daya tersebut. • Hold and wait. Proses yang sedang memakai sumber daya boleh meminta sumber daya lagi maksudnya menunggu hingga benar-benar sumber daya yang diminta tidak dipakai oleh proses lain, hal ini dapat menyebabkan kelaparan sumber daya sebab dapat saja sebuah proses tidak mendapat sumber daya dalam waktu yang lama. Karakteristik Deadlock (2) • No preemption. Sumber daya yang ada pada sebuah proses tidak boleh diambil begitu saja oleh proses lainnya. Untuk mendapatkan sumber daya tersebut, maka harus dilepaskan terlebih dahulu oleh proses yang memegangnya, selain itu seluruh proses menunggu dan mempersilahkan hanya proses yang memiliki sumber daya yang boleh berjalan. • Circular wait. Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya yang dipegang proses berikutnya. Menangani Deadlock • Terdapat tiga metode untuk menangani permasalahan deadlock yaitu : – Menggunakan protocol untuk menjamin bahwa sistem tidak pernah memasuki status deadlock – Mengijinkan sistem memasuki status deadlock dan kemudian memperbaikinya. – Mengabaikan permasalahan dan seakanakan deadlock tidak pernah terjadi pada sistem. Pencegahan Deadlock (1) • Mutual Exclusion. Kondisi mutual exclusion pada sumber daya adalah sesuatu yang wajar terjadi, yaitu pada sumber daya yang tidak dapat dibagi (nonsharable). Sedangkan pada sumber daya yang bisa dibagi tidak ada istilah mutual exclusive. Jadi, pencegahan kondisi yang pertama ini sulit karena memang sifat dasar dari sumber daya yang tidak dapat dibagi. • Hold and Wait. Untuk kondisi yang kedua, sistem perlu memastikan bahwa setiap kali proses meminta sumber daya, ia tidak sedang memiliki sumber daya lain. Atau bisa dengan proses meminta dan mendapatkan sumber daya yang dimilikinya sebelum melakukan eksekusi, sehingga tidak perlu menunggu. Pencegahan Deadlock (2) • No Preemption. Pencegahan kondisi ini dengan cara membolehkan terjadinya preemption. Maksudnya bila ada proses yang sedang memiliki sumber daya dan ingin mendapatkan sumber daya tambahan, namun tidak bisa langsung dialokasikan, maka akan preempted. Sumber daya yang dimiliki proses tadi akan diberikan pada proses lain yang membutuhkan dan sedang menunggu. Proses akan mengulang kembali eksekusinya setelah mendapatkan semua sumber daya yang dibutuhkannya, termasuk sumber daya yang dimintanya terakhir. Pencegahan Deadlock (3) • Circular Wait. Kondisi 'lingkaran setan' ini dapat 'diputus' dengan jalan menentukan total kebutuhan terhadap semua tipe sumber daya yang ada. Selain itu, digunakan pula mekanisme enumerasi terhadap tipe-tipe sumber daya yang ada. Setiap proses yang akan meminta sumber daya harus meminta sumber daya dengan urutan yang menaik. Misalkan sumber daya printer memiliki nomor 1 sedangkan CD-ROM memiliki nomor 3. Proses boleh melakukan permintaan terhadap printer dan kemudian CD-ROM, namun tidak boleh sebaliknya. Pemulihan Deadlock (1) 1. Terminasi Proses • Untuk memperbaiki deadlock dengan terminasi proses, dapat diguankan salah satu dari dua metode di bawah ini : – Menghentikan (abort) semua proses yang deadlock – Menghentikan satu proses setiap waktu sampai siklus deadlock hilang. • Untuk menentukan urutan proses yang harus dihentikan ada beberapa faktor yang harus diperhatikan : – – – – – – Prioritas proses. Berapa lama proses dijalankan dan berapa lama lagi selesai. Sumber daya yang digunakan proses. Sumber daya proses yang diperlukan untuk menyelesaikan task. Berapa proses yang perlu diterminasi. Apakah proses interaktif atau batch. Pemulihan Deadlock (2) 2. Menunda Sumber Daya • Untuk menghilangkan deadlock dengan menunda sumber daya, sumber daya dari proses harus ditunda dan memberikan sumber daya tersebut ke proses lain sampai siklus deadlock hilang. • Jika penundaan dibutuhkan untuk menghilangkan deadlock, terdapat tiga hal yang perlu diperhatikan : – Pilihlah korban (sumber daya) yang mempunyai biaya minimal. – Lakukan rollback yaitu memulai kembali (restart) proses pada state yang selamat. – Harus dijamin starvation tidak akan terjadi karena kemungkinan beberapa proses selalu terpilih sebagai korban termasuk jumlah rollback sebagai faktor biaya. Concurency (Kongkurensi) • Kondisi dimana pada saat yang bersamaan terdapat lebih dari satu proses disebut dengan kongkurensi (proses-proses yang kongkuren). Proses-proses yang mengalami kongkuren dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses yang baik. Untuk penanganan kongkuren, bahasa pemograman saat ini telah memiliki mekanisme kongkurensi dimana dalam penerapannya perlu dukungan sistem operasi dimana bahasa berada. Prinsip Kongkurensi • Kongkurensi merupakan kegiatan yang berhubungan dengan : – Alokasi waktu pemroses untuk prosesproses yang aktif. – Pemakaian bersama dan persaingan untuk mendapatkan sumber daya. – Komunikasi antar proses. – Sinkronisasi aktivitas banyak proses Masalah Concurency (1) a. Banyak aplikasi. Pada sistem multiprogramming bisa terdapat banyak aplikasi sekaligus yang dijalankan di sistem komputer. b. Strukturisasi sebuah aplikasi yang terdiri dari kumpulan proses. Perluasan prinsip perancangan modular dan pemograman terstruktur adalah suatu aplikasi dapat secara efektif diimplementasikan sebagai kumpulan proses. Dengan sekumpulan proses, maka tiap proses menyediakan satu layanan spesifik tertentu. Masalah Concurency (2) c. Strukturisasi sebuah 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. • Contoh : Suatu word processor antara lain mempunyai kemampuan : – Menerima masukan dari keyboard – Menerima masukan dari mouse atau perangkat penunjuk yang lain (asinkron) – Pemisahan kata-kata – Memformat baris menjadi rata kanan, kiri atau kanan-kiri. • Aplikasi ini dapat diterapkan dengan banyak proses atau thread yang masing-masing mempunyai tugas tertentu. Dengan demikian, saat dilakukan penataan tampilan di layar, aplikasi sekaligus dapat menerima masukan dari mouse yang segera akan diteruskan ke aplikasi untuk mendapat perhatian. Masalah Concurency (3) d. Strukturisasi sistem operasi Keunggulan strukturisasi dapat diterapkan ke pemrograman sistem. Beberapa sistem operasi aktual yang dipasarkan dan yang sedang dalam riset telah diimplementasikan sebagai kumpulan proses. Sistem operasi bermodelkan client/server. Penanganan Concurency (1) a. Mengetahui proses-proses yang aktif. Sistem operasi mengelola senarai proses di sistem operasi. Senarai ini berupa senarai PCB proses. Senarai berjumlah sesuai jumlah state yang diimplementasikan sistem operasi. b. Proteksi data dan sumber daya fisik proses. Proteksi data dan sumber daya fisik masing-masing proses dari gangguan (interfensi) proses-proses lain. c. Hasil-hasil proses harus independen. Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan. Penanganan Concurency (2) d. Mengatur alokasi dan dealokasi beragam sumber daya untuk tiap proses yang aktif. Sumber daya yang harus dikelola antara lain : – – – – – Waktu pemroses Memori Berkas-berkas (file) Peralatan masukan/keluaran Dan sebagainya Thank You !!