Pertemuan 03- Konsep Proses Chandra.Tanudirja Chandra.Tanudirja@hotmail.com
Definisi Manajemen Proses: Apa itu proses? Proses adalah konsep utama dalam sistem operasi dan pertama kali dipakai pada sistem operasi MULTICS (Multiplexed Information and computing system) pada tahun 1960-an. Proses adalah unit kerja terkecil yang secara individu dijadwalkan oleh sistem operasi. Proses adalah program yang sedang dieksekusi (TASK)
Istilah Lain dari Proses Multiprogramming (Multitasking) : manajemen banyak proses dengan satu pemroses. Multiprocessing : Manajemen banyak proses dengan komputer Multiprocessor (banyak pemroses di dalamnya), dimana masing- masing pemroses melakukan pemrosesan secara independen. Saat ini Multiprocessing telah mulai digunakan pada server dan workstation desktop.
Istilah Lain dari Proses c. Distributed Processing Manajemen proses-proses yang dieksekusi dibanyak sistem komputer yang terdistribusi.
Diagram State Proses Proses Melewati serangkaiaan state- state diskrit. Ada beberapa kejadian dapat menyebabkan proses pada sistem operasi berubah state. Ada 3 state dasar yang dialami proses yaitu : State Ready : Proses siap (ready) dieksekusi , tapi pemroses tidak tersedia untuk eksekusi proses ini. State Running : Pemroses sedang mengeksekusi instruksi proses itu. State Blocked : Proses menunggu kejadian untuk melengkapi tugasnya. Contoh : selesainya operasi perangkat I/O, tersedianya memory, dsb.
Diagram State Proses
Operasi Proses Penciptaan proses (create a proses) Penghancuran / terminasi proses (destroy a process) Penundaan proses (suspend a process) Pelanjutan kembali proses (resume a process) Pengubahan Prioritas proses Mem-block proses Membangun proses Menjadwalkan proses Memungkinkan proses berkomunikasi dengan proses lain
Operasi Proses Untuk Penciptaan proses melibatkan banyak attribut, yaitu: Menamai (memberi identitas) proses Menyisipkan proses pada tabel proses Menentukan prioritas awal proses Menciptakan PCB (Process Control Block) Mengalokasikan sumber daya dengan awal bagian proses.
Operasi Proses Contoh Kejadian yang menyebabkan Penciptaan prosedur: Pada lingkungan batch, sebagai tanggapan atas pemberian satuan kerja (job) Pada lingkungan interaktif, ketika pemakai baru berusaha log-on Sebagai tanggapan suatu aplikasi, seperti permintaan pencetakan file Proses menciptakan proses-proses lainnya
Implementasi Proses a. Alokasi memori utama yang dipakai proses. Sistem Operasi Mencatat state process dengan menggunakan beragam tabel. Tabel-tabel tersebut antara lain: Tabel Memory : Digunakan untuk menjaga keutuhan antara memori utama dan memori sekunder.tabel ini memuat informasi sebagai berikut : a. Alokasi memori utama yang dipakai proses. b. Alokasi memori sekunder yang dipakai proses. (Swapping) c. Atribut segmen memori utama dan sekunder. d.Informasi-informasi lain yang digunakan untuk Manajemen memori.
Implementasi Proses 2. Tabel I/O digunakan untuk mengelola perangkat masukan / keluaran. 3. Tabel File berisi informasi mengenai ekstensi file, lokasi pada memori sekunder, status saat itu dan menyimpan atribut - atribut file - file lainnya.
Implementasi Proses 4. Tabel Proses mengelola informasi mengenai proses yang terdapat pada sistem operasi, lokasinya di memori. Tabel ini juga berisi status dan atribut - atribut proses yang lain. Proses ditempatkan pada memori utama dilokasi tertentu. proses mempunyai satu ruang alamat tersendiri. Ruang alamat yang digunakan proses disebut Citra Proses ( Process Image ), karena selain seluruh kode biner program, proses ditambahi atribut - atribut berkaitan penempatan pada suatu lokasi memori dan status eksekusi pada saat itu.
Program Control Block (PCB) Sistem Operasi memerlukan banyak informasi mengenai masing-masing proses, informasi ini ada ada pada PCB dimana dikelompokkan menjadi tiga kelompok yaitu : Identifikasi proses Identifikasi proses berkaitan dengan identitas proses yang unik. Dengan identitier ini, proses dikaitkan ke tabel-tabel lain. Identifikasi proses meliputi: (a) Identitas Proses, (b) Identitas Proses yang menciptakan, (c) Identitas Pemakai.
Program Control Block (PCB) 2. Informasi status proses Informasi ini essensinya terdiri dari isi register-register pemroses. Saat proses berstatus running, informasi- Informasi ini berada diregister-register. Ketika proses diinterupsi, semua informasi register harus disimpan agar dapat dikembalikan saat proses dieksekusi kembali. Jumlah ragam register yang terlibat bergantung arsitektur komputer. Register-register pada informasi status pemroses, meliputi: (a) Register yang terlihat pemakai (bahasa assembler), (b) Register kendali dan status (program counter, PSW), (c) Pointer Stack (Stack dan system call).
Program Control Block (PCB) (3). Informasi Kendali Proses Informasi Kendali Proses adalah informasi-informasi lain yang diperlukan sistem operasi untuk mengendalikan suatu proses. Informasi kendali proses tersebut, meliputi: (a) Informasi Penjadwalan dan status, yang meliputi status proses, Struktur Data, Prioritas, Informasi berkaitan dengan penjadwalan, kejadian, (b) Penstrukturan data, (c) Komunikasi antar proses, Kewenangan proses, (e) Manajemen memori, dan (f). Kepemilikan dan utilisasi sumber daya.
Pengendalian Proses Pengendalian atau pengalihan proses adalah suatu keadaan dimana pada suatu saat, proses running diinterupsi dan sistem operasi memberi proses lain state running, dan menggilir kendali ke proses itu. Kejadian- kejadian yang menyebabkan terjadinya pengalihan proses, adalah: (1) Interupsi Sistem, (2) Trap, dan (3)Supervisor. Interupsi sistem disebabkan oleh kejadian eksternal dan tidak bergantung pada proses saat iru sedang running. Tipe-tipe running, antara lain: (1)Interupsi clock, (2) Interupsi masukan/keluaran, (3)Page/memory fault. Trap adaah interupsi karena terjadinya kesalahan atau kondisi-kondisi perkecualian yang dihasilkan proses yang running. Supervisor call adalah panggilan meminta atau mengaktifkan bagian-bagian sistem operasi.
Pengendalian Proses Tahap- Tahap Pengalihan Proses : 1. Simpan konteks pemrosesan, termasuk register PC dan register-register lain. 2. Perbaharui PCB proses running. 3. Pindahkan PCB proses ke senarai yang cocok. 4. Pilih satu proses lain untuk dieksekusi sesuai dengan teknik penjadualan. 5. Perbaharui PCB proses yang dipilih termasuk perubahan state menjadi running. 6. Perbaharui struktur data manajemen memori.
Pengendalian Proses Tahap- Tahap Pengalihan Proses : 7. Kembalikan konteks pemroses dengan konteks simpan yang memberitahu konteks proses terakhir saat dialihkan dari state running. 8. Pengalihan proses melibatkan pengalihan konteks dan perubahan state, memerlukan usaha lebih besar daripada pengalihan konteks. 9. Pengalihan konteks dapat terjadi tanpa pengalihan state proses yang sedang running.
Threads Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali. Perbedaan antara proses dengan thread tunggal dengan proses dengan thread yang banyak adalah proses dengan thread yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.
Threads Suatu proses didefinisikan oleh resource yang digunakan dan lokasi yang akan dieksekusi. Namun adakalanya proses-proses akan menggunakan resource secara bersama-sama. Suatu unit dasar dari CPU utilization yang berisi program counter, kumpulan register, dan ruang stack disebut dengan thread atau lightweight process (LWP). Thread akan bekerjasama dengan thread yang lainnya dalam hal penggunaan bagian kode, bagian data, dan resource-resource sistem operasi, seperti open file dan sinyal secara kolektif yang sering disebut dengan task.
Threads Seperti halnya proses, thread memiliki status ready, blocked, running atau terminated, dan hanya satu thread yang aktif dalam satu waktu. Thread dapat membuat child thread. Jika satu thread dalam keadaan blocked, maka thread yang lainnya dapat dijalankan. Tidak seperti proses, antara satu thread dengan thread yang lainnya tidak saling bebas, sebab semua thread dapat mengakses setiap alamat dalam suatu task, thread dapat membaca dan menulis stack dari thread yang lainnya. Sehingga tidak ada proteksi antara satu thread terhadap thread yang lainnya.
Threads Contoh Thread: Banyak perangkat lunak yang berjalan pada PC modern dirancang secara multi-threading. Sebuah aplikasi biasanya diimplementasi sebagai proses yang terpisah dengan beberapa thread yang berfungsi sebagai pengendali. Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.
Threads Contoh Thread: Kadang kala ada situasi dimana sebuah aplikasi diperlukan untuk menjalankan beberapa tugas yang serupa. Sebagai contohnya sebuah web server dapat mempunyai ratusan klien yang mengaksesnya secara concurrent. Kalau web server berjalan sebagai proses yang hanya mempunyai thread tunggal maka ia hanya dapat melayani satu klien pada pada satu satuan waktu. Bila ada klien lain yang ingin mengajukan permintaan maka ia harus menunggu sampai klien sebelumnya selesai dilayani. Solusinya adalah dengan membuat web server menjadi multi-threading.
Threads Keuntungan Thread: Responsi: Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meskipun sebagian dari program tersebut diblok atau melakukan operasi yang panjang, karena itu dapat meningkatkan respons kepada pengguna. Sebagai contohnya dalam web browser yang multithreading, sebuah thread dapat melayani permintaan pengguna sementara thread lain berusaha menampilkan image.
Threads Keuntungan Thread: b) Berbagi sumber daya: thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
Threads Keuntungan Thread: c). Ekonomi: dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan penggunaan thread, karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switch thread. Akan susah untuk mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread, dan context switch proses 5 kali lebih lama dibandingkan context switch thread.
Threads Keuntungan Thread: d). Utilisasi arsitektur multiprocessor: Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprocessor, dimana setiap thread dapat berjalan secara pararel di atas processor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi pararel, tetapi pada kenyataannya hanya satu thread yang dijalankan CPU pada satu- satuan waktu (satu-satuan waktu pada CPU biasa disebut time slice atau quantum).